You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2019/12/05 00:41:10 UTC

[isis] 01/02: ISIS-2213: just moves some classes around in viewer-wicket-viewer

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit c22e4c92b3ba8afaccc0bd9acb096b98dc4f9dd3
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Dec 5 00:31:37 2019 +0000

    ISIS-2213: just moves some classes around in viewer-wicket-viewer
---
 .../imagecache/ImageResourceCacheClassPath.java    | 171 ++++++++++++++++++
 .../viewer/imagecache/ImageResourceCacheKey.java   | 194 ---------------------
 .../{wicket => }/AnonymousWebSessionForIsis.java   |   2 +-
 .../AuthenticatedWebSessionForIsis.java            |   2 +-
 .../{wicket => }/ConverterForObjectAdapter.java    |   2 +-
 .../ConverterForObjectAdapterMemento.java          |   2 +-
 .../integration/{wicket => }/LocalizerForIsis.java |   4 +-
 .../{wicket => }/WebRequestCycleForIsis.java       |   2 +-
 .../{services => mixins}/Object_clearHints.java    |   3 +-
 .../viewer/services/BookmarkUiServiceWicket.java   |   2 +-
 .../services/TranslationsResolverWicket.java       |   2 +-
 .../WicketViewerSettingsDefault.java               |   2 +-
 .../viewer/{ => webmodule}/WebModuleWicket.java    |   2 +-
 .../{ => wicketapp}/IsisWicketApplication.java     |  11 +-
 .../IsisWicketApplication_Experimental.java        |   2 +-
 .../IsisWicketApplication_newPageFactory.java      |   2 +-
 .../IsisWicketApplication_newSession.java          |   4 +-
 .../imagecache/ImageResourceCacheKeyTest.java      |  44 ++---
 ...uthenticatedWebSessionForIsis_Authenticate.java |   2 +-
 ...ionForIsis_DownCastsInheritedFunctionality.java |   2 +-
 ...thenticatedWebSessionForIsis_Instantiation.java |   4 +-
 ...ticatedWebSessionForIsis_NotYetImplemented.java |   2 +-
 .../AuthenticatedWebSessionForIsis_SignIn.java     |   2 +-
 ...uthenticatedWebSessionForIsis_TestAbstract.java |   4 +-
 .../pages/PageClassListDefault_Instantiation.java  |  68 --------
 ...ageClassListDefault_RegistrationAndCaching.java |   2 +-
 .../IsisWicketApplication_Defaults.java            |   6 +-
 .../IsisWicketApplication_Pages.java               |   3 +-
 28 files changed, 230 insertions(+), 318 deletions(-)

diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheClassPath.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheClassPath.java
index 0fc780c..2f0b8df 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheClassPath.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheClassPath.java
@@ -20,10 +20,14 @@ package org.apache.isis.viewer.wicket.viewer.imagecache;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.Serializable;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.metamodel.commons.ClassUtil;
 import org.apache.wicket.request.resource.PackageResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.springframework.stereotype.Service;
@@ -117,4 +121,171 @@ public class ImageResourceCacheClassPath implements ImageResourceCache {
             // ignore
         }
     }
+
+    static final class ImageResourceCacheKey implements Serializable {
+
+        ImageResourceCacheKey(
+                final Class<?> resourceClass,
+                final String resourceName) {
+            this.resourceName = resourceName;
+            this.resourceClass = resourceClass;
+            this.toString = calcToString();
+        }
+
+        // -- getResourceClass, getResourceName
+
+        private final Class<?> resourceClass;
+        private final String resourceName;
+
+        public final Class<?> getResourceClass() {
+            return resourceClass;
+        }
+
+        public final String getResourceName() {
+            return resourceName;
+        }
+
+
+        // -- superKey
+
+        ImageResourceCacheKey superKey() {
+            if(resourceClass == null) {
+                return null;
+            }
+            final Class<?> superclass = resourceClass.getSuperclass();
+            if(superclass == Object.class) {
+                return null;
+            }
+            return new ImageResourceCacheKey(superclass, resourceName);
+        }
+
+
+
+        // -- resourcePaths
+
+        List<ImageResourceCacheKey> resourcePaths(final String... suffices) {
+            return resourcePaths(Arrays.asList(suffices));
+        }
+
+        List<ImageResourceCacheKey> resourcePaths(final List<String> suffices) {
+
+            ImageResourceCacheKey key;
+            final List<ImageResourceCacheKey> resourcePaths = _Lists.newArrayList();
+
+
+            boolean generated = false;
+
+            if(resourceName != null) {
+
+                final Class<?> resourceClass = ClassUtil.forNameElseNull(resourceName);
+
+                if(resourceClass != null) {
+                    for (String suffix : suffices) {
+                        resourcePaths.add(new ImageResourceCacheKey(resourceClass, resourceClass.getSimpleName() + "." + suffix));
+                    }
+                    generated = true;
+                }
+            }
+
+            if(!generated && resourceClass != null) {
+                // with the iconName
+                if(resourceName != null) {
+                    key = this;
+                    do {
+                        for (String suffix : suffices) {
+                            resourcePaths.add(new ImageResourceCacheKey(key.getResourceClass(), key.getResourceClass().getSimpleName() + "-" + resourceName + "." + suffix));
+                        }
+                        for (String suffix : suffices) {
+                            resourcePaths.add(new ImageResourceCacheKey(key.getResourceClass(), resourceName + "." + suffix));
+                        }
+                    } while ((key = key.superKey()) != null);
+                    key = this;
+                    do {
+                        for (String suffix : suffices) {
+                            resourcePaths.add(new ImageResourceCacheKey(null, key.getResourceClass().getSimpleName() + "-" + resourceName + "." + suffix));
+                        }
+                    } while ((key = key.superKey()) != null);
+                    for (String suffix : suffices) {
+                        resourcePaths.add(new ImageResourceCacheKey(null, resourceName + "." + suffix));
+                    }
+                }
+
+                // without the iconName
+                key = this;
+                do {
+                    for (String suffix : suffices) {
+                        resourcePaths.add(new ImageResourceCacheKey(key.getResourceClass(), key.getResourceClass().getSimpleName() + "." + suffix));
+                    }
+                } while ((key = key.superKey()) != null);
+                key = this;
+                do {
+                    for (String suffix : suffices) {
+                        resourcePaths.add(new ImageResourceCacheKey(null, key.getResourceClass().getSimpleName() + "." + suffix));
+                    }
+                } while ((key = key.superKey()) != null);
+
+                generated = true;
+            }
+
+            if(!generated && resourceName != null) {
+
+                for (String suffix : suffices) {
+                    resourcePaths.add(new ImageResourceCacheKey(null, resourceName + "." + suffix));
+                }
+
+            }
+
+            // fallback
+            for (String suffix : suffices) {
+                resourcePaths.add(new ImageResourceCacheKey(null, "Default" + "." + suffix));
+            }
+
+
+            return Collections.unmodifiableList(resourcePaths);
+        }
+
+
+
+        // -- equals, hashCode
+
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) return true;
+            if (o == null || getClass() != o.getClass()) return false;
+            ImageResourceCacheKey key = (ImageResourceCacheKey) o;
+            if (toString != null ? !toString.equals(key.toString) : key.toString != null) return false;
+            return true;
+        }
+
+        @Override
+        public int hashCode() {
+            return toString != null ? toString.hashCode() : 0;
+        }
+
+
+
+        // -- toString
+
+        private final String toString;
+
+        @Override
+        public String toString() {
+            return toString;
+        }
+
+        private String calcToString() {
+            final StringBuilder buf = new StringBuilder();
+            if(resourceClass != null) {
+                buf.append(resourceClass.getName()).append("/").append(resourceClass.getSimpleName());
+            }
+            if(buf.length() > 0) {
+                buf.append("-");
+            }
+            if(resourceName != null) {
+                buf.append(resourceName);
+            }
+            return buf.toString();
+        }
+
+    }
 }
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheKey.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheKey.java
deleted file mode 100644
index 54c7ba5..0000000
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheKey.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.isis.viewer.wicket.viewer.imagecache;
-
-import java.io.Serializable;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.metamodel.commons.ClassUtil;
-
-final class ImageResourceCacheKey implements Serializable {
-
-    ImageResourceCacheKey(
-            final Class<?> resourceClass,
-            final String resourceName) {
-        this.resourceName = resourceName;
-        this.resourceClass = resourceClass;
-        this.toString = calcToString();
-    }
-
-    // -- getResourceClass, getResourceName
-
-    private final Class<?> resourceClass;
-    private final String resourceName;
-
-    public final Class<?> getResourceClass() {
-        return resourceClass;
-    }
-
-    public final String getResourceName() {
-        return resourceName;
-    }
-
-
-    // -- superKey
-
-    ImageResourceCacheKey superKey() {
-        if(resourceClass == null) {
-            return null;
-        }
-        final Class<?> superclass = resourceClass.getSuperclass();
-        if(superclass == Object.class) {
-            return null;
-        }
-        return new ImageResourceCacheKey(superclass, resourceName);
-    }
-
-
-
-    // -- resourcePaths
-
-    List<ImageResourceCacheKey> resourcePaths(final String... suffices) {
-        return resourcePaths(Arrays.asList(suffices));
-    }
-
-    List<ImageResourceCacheKey> resourcePaths(final List<String> suffices) {
-
-        ImageResourceCacheKey key;
-        final List<ImageResourceCacheKey> resourcePaths = _Lists.newArrayList();
-
-
-        boolean generated = false;
-
-        if(resourceName != null) {
-
-            final Class<?> resourceClass = ClassUtil.forNameElseNull(resourceName);
-
-            if(resourceClass != null) {
-                for (String suffix : suffices) {
-                    resourcePaths.add(new ImageResourceCacheKey(resourceClass, resourceClass.getSimpleName() + "." + suffix));
-                }
-                generated = true;
-            }
-        }
-
-        if(!generated && resourceClass != null) {
-            // with the iconName
-            if(resourceName != null) {
-                key = this;
-                do {
-                    for (String suffix : suffices) {
-                        resourcePaths.add(new ImageResourceCacheKey(key.getResourceClass(), key.getResourceClass().getSimpleName() + "-" + resourceName + "." + suffix));
-                    }
-                    for (String suffix : suffices) {
-                        resourcePaths.add(new ImageResourceCacheKey(key.getResourceClass(), resourceName + "." + suffix));
-                    }
-                } while ((key = key.superKey()) != null);
-                key = this;
-                do {
-                    for (String suffix : suffices) {
-                        resourcePaths.add(new ImageResourceCacheKey(null, key.getResourceClass().getSimpleName() + "-" + resourceName + "." + suffix));
-                    }
-                } while ((key = key.superKey()) != null);
-                for (String suffix : suffices) {
-                    resourcePaths.add(new ImageResourceCacheKey(null, resourceName + "." + suffix));
-                }
-            }
-
-            // without the iconName
-            key = this;
-            do {
-                for (String suffix : suffices) {
-                    resourcePaths.add(new ImageResourceCacheKey(key.getResourceClass(), key.getResourceClass().getSimpleName() + "." + suffix));
-                }
-            } while ((key = key.superKey()) != null);
-            key = this;
-            do {
-                for (String suffix : suffices) {
-                    resourcePaths.add(new ImageResourceCacheKey(null, key.getResourceClass().getSimpleName() + "." + suffix));
-                }
-            } while ((key = key.superKey()) != null);
-
-            generated = true;
-        }
-
-        if(!generated && resourceName != null) {
-
-            for (String suffix : suffices) {
-                resourcePaths.add(new ImageResourceCacheKey(null, resourceName + "." + suffix));
-            }
-
-        }
-
-        // fallback
-        for (String suffix : suffices) {
-            resourcePaths.add(new ImageResourceCacheKey(null, "Default" + "." + suffix));
-        }
-
-
-        return Collections.unmodifiableList(resourcePaths);
-    }
-
-
-
-    // -- equals, hashCode
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        ImageResourceCacheKey key = (ImageResourceCacheKey) o;
-        if (toString != null ? !toString.equals(key.toString) : key.toString != null) return false;
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        return toString != null ? toString.hashCode() : 0;
-    }
-
-
-
-    // -- toString
-
-    private final String toString;
-
-    @Override
-    public String toString() {
-        return toString;
-    }
-
-    private String calcToString() {
-        final StringBuilder buf = new StringBuilder();
-        if(resourceClass != null) {
-            buf.append(resourceClass.getName()).append("/").append(resourceClass.getSimpleName());
-        }
-        if(buf.length() > 0) {
-            buf.append("-");
-        }
-        if(resourceName != null) {
-            buf.append(resourceName);
-        }
-        return buf.toString();
-    }
-
-}
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AnonymousWebSessionForIsis.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AnonymousWebSessionForIsis.java
similarity index 96%
rename from core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AnonymousWebSessionForIsis.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AnonymousWebSessionForIsis.java
index 90c6c72..41e28e1 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AnonymousWebSessionForIsis.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AnonymousWebSessionForIsis.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer.integration.wicket;
+package org.apache.isis.viewer.wicket.viewer.integration;
 
 import org.apache.wicket.Session;
 import org.apache.wicket.request.Request;
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
similarity index 99%
rename from core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
index e8afac0..b2981c4 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer.integration.wicket;
+package org.apache.isis.viewer.wicket.viewer.integration;
 
 import java.util.Date;
 import java.util.Objects;
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapter.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapter.java
similarity index 97%
rename from core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapter.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapter.java
index 6bae930..ac01cbe 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapter.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapter.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer.integration.wicket;
+package org.apache.isis.viewer.wicket.viewer.integration;
 
 import java.util.Locale;
 
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapterMemento.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapterMemento.java
similarity index 97%
rename from core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapterMemento.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapterMemento.java
index 558c470..490355f 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapterMemento.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapterMemento.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer.integration.wicket;
+package org.apache.isis.viewer.wicket.viewer.integration;
 
 import java.util.Locale;
 
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/LocalizerForIsis.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/LocalizerForIsis.java
similarity index 97%
rename from core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/LocalizerForIsis.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/LocalizerForIsis.java
index da48491..403f5a8 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/LocalizerForIsis.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/LocalizerForIsis.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.viewer.wicket.viewer.integration.wicket;
+package org.apache.isis.viewer.wicket.viewer.integration;
 
 import java.util.Locale;
 import java.util.MissingResourceException;
@@ -36,7 +36,7 @@ import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.runtime.system.session.IsisSession;
 import org.apache.isis.runtime.system.session.IsisSessionFactory;
-import org.apache.isis.viewer.wicket.viewer.IsisWicketApplication;
+import org.apache.isis.viewer.wicket.viewer.wicketapp.IsisWicketApplication;
 
 /**
  * Implementation integrates Isis' own i18n support ({@link TranslationService}) with Wicket's equivalent i18n
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/WebRequestCycleForIsis.java
similarity index 99%
rename from core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/WebRequestCycleForIsis.java
index 3a359a5..1713cc7 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/WebRequestCycleForIsis.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer.integration.wicket;
+package org.apache.isis.viewer.wicket.viewer.integration;
 
 import java.lang.reflect.Constructor;
 import java.util.List;
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/Object_clearHints.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/mixins/Object_clearHints.java
similarity index 95%
rename from core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/Object_clearHints.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/mixins/Object_clearHints.java
index 026f7f7..1ee3bbd 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/Object_clearHints.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/mixins/Object_clearHints.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.viewer.wicket.viewer.services;
+package org.apache.isis.viewer.wicket.viewer.mixins;
 
 import javax.inject.Inject;
 
@@ -30,6 +30,7 @@ import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.hint.HintStore;
+import org.apache.isis.viewer.wicket.viewer.services.HintStoreUsingWicketSession;
 
 @Mixin(method="act")
 public class Object_clearHints {
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/BookmarkUiServiceWicket.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/BookmarkUiServiceWicket.java
index 39f8273..04be85c 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/BookmarkUiServiceWicket.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/BookmarkUiServiceWicket.java
@@ -21,7 +21,7 @@ package org.apache.isis.viewer.wicket.viewer.services;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.services.bookmarkui.BookmarkUiService;
-import org.apache.isis.viewer.wicket.viewer.integration.wicket.AuthenticatedWebSessionForIsis;
+import org.apache.isis.viewer.wicket.viewer.integration.AuthenticatedWebSessionForIsis;
 
 @DomainService(
         nature = NatureOfService.DOMAIN
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
index 391b6f2..90b091d 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
@@ -35,7 +35,7 @@ import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.services.i18n.TranslationsResolver;
 import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.viewer.wicket.viewer.IsisWicketApplication;
+import org.apache.isis.viewer.wicket.viewer.wicketapp.IsisWicketApplication;
 
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/WicketViewerSettingsDefault.java
similarity index 98%
rename from core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/WicketViewerSettingsDefault.java
index 3b7aa18..d296b30 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/WicketViewerSettingsDefault.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer.settings;
+package org.apache.isis.viewer.wicket.viewer.services;
 
 import javax.inject.Inject;
 
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/WebModuleWicket.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/webmodule/WebModuleWicket.java
similarity index 98%
rename from core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/WebModuleWicket.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/webmodule/WebModuleWicket.java
index 64a6e89..8dc4fa8 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/WebModuleWicket.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/webmodule/WebModuleWicket.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.viewer.wicket.viewer;
+package org.apache.isis.viewer.wicket.viewer.webmodule;
 
 import javax.inject.Inject;
 import javax.servlet.Filter;
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
similarity index 98%
rename from core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
index 4dd2e1a..8b7f4ec 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer;
+package org.apache.isis.viewer.wicket.viewer.wicketapp;
 
 import java.util.Collections;
 import java.util.ServiceLoader;
@@ -27,6 +27,7 @@ import java.util.function.Function;
 
 import javax.inject.Inject;
 
+import org.apache.isis.viewer.wicket.viewer.TargetRespondListenerToResetQueryResultCache;
 import org.apache.wicket.Application;
 import org.apache.wicket.ConverterLocator;
 import org.apache.wicket.IConverterLocator;
@@ -86,10 +87,10 @@ import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor;
 import org.apache.isis.viewer.wicket.ui.pages.accmngt.AccountConfirmationMap;
 import org.apache.isis.viewer.wicket.ui.pages.login.WicketLogoutPage;
 import org.apache.isis.viewer.wicket.ui.panels.PanelUtil;
-import org.apache.isis.viewer.wicket.viewer.integration.wicket.AuthenticatedWebSessionForIsis;
-import org.apache.isis.viewer.wicket.viewer.integration.wicket.ConverterForObjectAdapter;
-import org.apache.isis.viewer.wicket.viewer.integration.wicket.ConverterForObjectAdapterMemento;
-import org.apache.isis.viewer.wicket.viewer.integration.wicket.WebRequestCycleForIsis;
+import org.apache.isis.viewer.wicket.viewer.integration.AuthenticatedWebSessionForIsis;
+import org.apache.isis.viewer.wicket.viewer.integration.ConverterForObjectAdapter;
+import org.apache.isis.viewer.wicket.viewer.integration.ConverterForObjectAdapterMemento;
+import org.apache.isis.viewer.wicket.viewer.integration.WebRequestCycleForIsis;
 import org.apache.isis.viewer.wicket.viewer.settings.IsisResourceSettings;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
 
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_Experimental.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Experimental.java
similarity index 98%
rename from core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_Experimental.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Experimental.java
index e5d4173..e397a87 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_Experimental.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Experimental.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.viewer.wicket.viewer;
+package org.apache.isis.viewer.wicket.viewer.wicketapp;
 
 import java.util.Map;
 import java.util.Set;
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_newPageFactory.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_newPageFactory.java
similarity index 98%
rename from core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_newPageFactory.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_newPageFactory.java
index d9603bb..c441d76 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_newPageFactory.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_newPageFactory.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer;
+package org.apache.isis.viewer.wicket.viewer.wicketapp;
 
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
 import org.apache.wicket.IPageFactory;
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_newSession.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_newSession.java
similarity index 90%
rename from core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_newSession.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_newSession.java
index 260ec04..66cb878 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_newSession.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_newSession.java
@@ -17,11 +17,11 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer;
+package org.apache.isis.viewer.wicket.viewer.wicketapp;
 
 import org.apache.wicket.Session;
 
-import org.apache.isis.viewer.wicket.viewer.integration.wicket.AuthenticatedWebSessionForIsis;
+import org.apache.isis.viewer.wicket.viewer.integration.AuthenticatedWebSessionForIsis;
 
 import lombok.RequiredArgsConstructor;
 
diff --git a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheKeyTest.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheKeyTest.java
index 5932902..a40f05c 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheKeyTest.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheKeyTest.java
@@ -30,7 +30,7 @@ import static org.junit.Assert.assertThat;
 
 public class ImageResourceCacheKeyTest {
 
-    ImageResourceCacheKey key;
+    ImageResourceCacheClassPath.ImageResourceCacheKey key;
 
     public static class SomeSuperclass {
     }
@@ -47,8 +47,8 @@ public class ImageResourceCacheKeyTest {
         @Test
         public void whenSubclass() throws Exception {
 
-            key = new ImageResourceCacheKey(SomeSubclass.class, "foo");
-            final ImageResourceCacheKey superKey = key.superKey();
+            key = new ImageResourceCacheClassPath.ImageResourceCacheKey(SomeSubclass.class, "foo");
+            final ImageResourceCacheClassPath.ImageResourceCacheKey superKey = key.superKey();
 
             assertEquals(SomeSuperclass.class, superKey.getResourceClass());
             assertEquals("foo", key.getResourceName());
@@ -57,8 +57,8 @@ public class ImageResourceCacheKeyTest {
         @Test
         public void whenSuperClass() throws Exception {
 
-            key = new ImageResourceCacheKey(SomeSuperclass.class, null);
-            final ImageResourceCacheKey superKey = key.superKey();
+            key = new ImageResourceCacheClassPath.ImageResourceCacheKey(SomeSuperclass.class, null);
+            final ImageResourceCacheClassPath.ImageResourceCacheKey superKey = key.superKey();
 
             assertNull(superKey);
         }
@@ -69,11 +69,11 @@ public class ImageResourceCacheKeyTest {
 
         @Test
         public void withIconName() throws Exception {
-            key = new ImageResourceCacheKey(SomeSubclass.class, "foo");
+            key = new ImageResourceCacheClassPath.ImageResourceCacheKey(SomeSubclass.class, "foo");
 
-            final List<ImageResourceCacheKey> keys = key.resourcePaths("png", "jpg", "jpeg");
+            final List<ImageResourceCacheClassPath.ImageResourceCacheKey> keys = key.resourcePaths("png", "jpg", "jpeg");
 
-            final Iterator<ImageResourceCacheKey> iterator = keys.iterator();
+            final Iterator<ImageResourceCacheClassPath.ImageResourceCacheKey> iterator = keys.iterator();
 
             assertNext(iterator, SomeSubclass.class, "SomeSubclass-foo.png");
             assertNext(iterator, SomeSubclass.class, "SomeSubclass-foo.jpg");
@@ -127,11 +127,11 @@ public class ImageResourceCacheKeyTest {
 
         @Test
         public void withoutIconName() throws Exception {
-            key = new ImageResourceCacheKey(SomeSubclass.class, null);
+            key = new ImageResourceCacheClassPath.ImageResourceCacheKey(SomeSubclass.class, null);
 
-            final List<ImageResourceCacheKey> keys = key.resourcePaths("png", "jpg", "jpeg");
+            final List<ImageResourceCacheClassPath.ImageResourceCacheKey> keys = key.resourcePaths("png", "jpg", "jpeg");
 
-            final Iterator<ImageResourceCacheKey> iterator = keys.iterator();
+            final Iterator<ImageResourceCacheClassPath.ImageResourceCacheKey> iterator = keys.iterator();
 
             assertNext(iterator, SomeSubclass.class, "SomeSubclass.png");
             assertNext(iterator, SomeSubclass.class, "SomeSubclass.jpg");
@@ -157,11 +157,11 @@ public class ImageResourceCacheKeyTest {
 
         @Test
         public void withoutClass() throws Exception {
-            key = new ImageResourceCacheKey(null, "foo");
+            key = new ImageResourceCacheClassPath.ImageResourceCacheKey(null, "foo");
 
-            final List<ImageResourceCacheKey> keys = key.resourcePaths("png", "jpg", "jpeg");
+            final List<ImageResourceCacheClassPath.ImageResourceCacheKey> keys = key.resourcePaths("png", "jpg", "jpeg");
 
-            final Iterator<ImageResourceCacheKey> iterator = keys.iterator();
+            final Iterator<ImageResourceCacheClassPath.ImageResourceCacheKey> iterator = keys.iterator();
 
             assertNext(iterator, null, "foo.png");
             assertNext(iterator, null, "foo.jpg");
@@ -177,11 +177,11 @@ public class ImageResourceCacheKeyTest {
          */
         @Test
         public void withoutClassButIconNameSpecifyingADifferentContextClassAndClassName() throws Exception {
-            key = new ImageResourceCacheKey(SomeOtherContextClass.class, SomeSuperclass.class.getName());
+            key = new ImageResourceCacheClassPath.ImageResourceCacheKey(SomeOtherContextClass.class, SomeSuperclass.class.getName());
 
-            final List<ImageResourceCacheKey> keys = key.resourcePaths("png", "jpg", "jpeg");
+            final List<ImageResourceCacheClassPath.ImageResourceCacheKey> keys = key.resourcePaths("png", "jpg", "jpeg");
 
-            final Iterator<ImageResourceCacheKey> iterator = keys.iterator();
+            final Iterator<ImageResourceCacheClassPath.ImageResourceCacheKey> iterator = keys.iterator();
 
             assertNext(iterator, SomeSuperclass.class, "SomeSuperclass.png");
             assertNext(iterator, SomeSuperclass.class, "SomeSuperclass.jpg");
@@ -195,11 +195,11 @@ public class ImageResourceCacheKeyTest {
 
         @Test
         public void withoutClassButIconNameSpecifyingAClassName() throws Exception {
-            key = new ImageResourceCacheKey(null, SomeSuperclass.class.getName());
+            key = new ImageResourceCacheClassPath.ImageResourceCacheKey(null, SomeSuperclass.class.getName());
 
-            final List<ImageResourceCacheKey> keys = key.resourcePaths("png", "jpg", "jpeg");
+            final List<ImageResourceCacheClassPath.ImageResourceCacheKey> keys = key.resourcePaths("png", "jpg", "jpeg");
 
-            final Iterator<ImageResourceCacheKey> iterator = keys.iterator();
+            final Iterator<ImageResourceCacheClassPath.ImageResourceCacheKey> iterator = keys.iterator();
 
             assertNext(iterator, SomeSuperclass.class, "SomeSuperclass.png");
             assertNext(iterator, SomeSuperclass.class, "SomeSuperclass.jpg");
@@ -211,9 +211,9 @@ public class ImageResourceCacheKeyTest {
 
         }
 
-        private static void assertNext(Iterator<ImageResourceCacheKey> iterator, Class<?> resourceClass, String resourceName) {
+        private static void assertNext(Iterator<ImageResourceCacheClassPath.ImageResourceCacheKey> iterator, Class<?> resourceClass, String resourceName) {
             assertThat(iterator.hasNext(), is(true));
-            final ImageResourceCacheKey next = iterator.next();
+            final ImageResourceCacheClassPath.ImageResourceCacheKey next = iterator.next();
             assertEquals(resourceClass, next.getResourceClass());
             assertEquals(resourceName, next.getResourceName());
         }
diff --git a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_Authenticate.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Authenticate.java
similarity index 97%
rename from core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_Authenticate.java
rename to core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Authenticate.java
index 48ae1f9..a560257 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_Authenticate.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Authenticate.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer.app.wicket;
+package org.apache.isis.viewer.wicket.viewer.integration;
 
 import org.jmock.Expectations;
 import org.junit.Before;
diff --git a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_DownCastsInheritedFunctionality.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_DownCastsInheritedFunctionality.java
similarity index 95%
rename from core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_DownCastsInheritedFunctionality.java
rename to core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_DownCastsInheritedFunctionality.java
index 7d5b133..7d13f0d 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_DownCastsInheritedFunctionality.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_DownCastsInheritedFunctionality.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer.app.wicket;
+package org.apache.isis.viewer.wicket.viewer.integration;
 
 import org.junit.Before;
 import org.junit.Ignore;
diff --git a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_Instantiation.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Instantiation.java
similarity index 92%
rename from core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_Instantiation.java
rename to core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Instantiation.java
index ac01719..fa54e22 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_Instantiation.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Instantiation.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer.app.wicket;
+package org.apache.isis.viewer.wicket.viewer.integration;
 
 import java.util.Locale;
 
@@ -29,7 +29,7 @@ import org.junit.Test;
 
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
-import org.apache.isis.viewer.wicket.viewer.integration.wicket.AuthenticatedWebSessionForIsis;
+import org.apache.isis.viewer.wicket.viewer.integration.AuthenticatedWebSessionForIsis;
 
 public class AuthenticatedWebSessionForIsis_Instantiation {
 
diff --git a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_NotYetImplemented.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_NotYetImplemented.java
similarity index 95%
rename from core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_NotYetImplemented.java
rename to core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_NotYetImplemented.java
index 8c4f56b..cf290e5 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_NotYetImplemented.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_NotYetImplemented.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer.app.wicket;
+package org.apache.isis.viewer.wicket.viewer.integration;
 
 import org.junit.Before;
 import org.junit.Ignore;
diff --git a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_SignIn.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_SignIn.java
similarity index 96%
rename from core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_SignIn.java
rename to core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_SignIn.java
index 61f4252..a9e030b 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_SignIn.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_SignIn.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer.app.wicket;
+package org.apache.isis.viewer.wicket.viewer.integration;
 
 import org.jmock.Expectations;
 import org.junit.Before;
diff --git a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_TestAbstract.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_TestAbstract.java
similarity index 95%
rename from core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_TestAbstract.java
rename to core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_TestAbstract.java
index dd475ce..b2cbe03 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_TestAbstract.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_TestAbstract.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer.app.wicket;
+package org.apache.isis.viewer.wicket.viewer.integration;
 
 import java.util.Locale;
 import java.util.Optional;
@@ -33,7 +33,7 @@ import org.apache.isis.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.security.api.authentication.manager.AuthenticationManager;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
-import org.apache.isis.viewer.wicket.viewer.integration.wicket.AuthenticatedWebSessionForIsis;
+import org.apache.isis.viewer.wicket.viewer.integration.AuthenticatedWebSessionForIsis;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
 
 public abstract class AuthenticatedWebSessionForIsis_TestAbstract {
diff --git a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/pages/PageClassListDefault_Instantiation.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/pages/PageClassListDefault_Instantiation.java
deleted file mode 100644
index 000bc51..0000000
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/pages/PageClassListDefault_Instantiation.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.viewer.wicket.viewer.pages;
-
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JMock;
-import org.jmock.integration.junit4.JUnit4Mockery;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import org.apache.isis.viewer.wicket.ui.pages.PageClassList;
-import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistrySpi;
-import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassRegistryDefault;
-
-@RunWith(JMock.class)
-public class PageClassListDefault_Instantiation {
-
-    private final Mockery context = new JUnit4Mockery();
-
-    @Before
-    public void setUp() throws Exception {
-    }
-
-    @After
-    public void tearDown() throws Exception {
-    }
-
-    @Test
-    public void shouldCauseAllPagesToBeRegistered() {
-        // necessary to provide an implementation that will register
-        // all pages with the registry.
-        //[2112] final PageClassListDefault pageClassList = new PageClassListDefault();
-        new PageClassRegistryDefault();
-    }
-
-    @Test(expected = IllegalStateException.class)
-    public void shouldFailIfNoPagesRegistered() {
-        // no side effects, ie doesn't register
-        final PageClassList mockPageClassList = context.mock(PageClassList.class);
-        context.checking(new Expectations() {
-            {
-                mockPageClassList.registerPages(with(any(PageClassRegistrySpi.class)));
-            }
-        });
-        new PageClassRegistryDefault();
-    }
-
-}
diff --git a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/pages/PageClassListDefault_RegistrationAndCaching.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassListDefault_RegistrationAndCaching.java
similarity index 97%
rename from core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/pages/PageClassListDefault_RegistrationAndCaching.java
rename to core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassListDefault_RegistrationAndCaching.java
index a15435a..2ea7acf 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/pages/PageClassListDefault_RegistrationAndCaching.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassListDefault_RegistrationAndCaching.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer.pages;
+package org.apache.isis.viewer.wicket.viewer.registries.pages;
 
 import org.apache.wicket.Page;
 import org.junit.Before;
diff --git a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_Defaults.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Defaults.java
similarity index 93%
rename from core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_Defaults.java
rename to core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Defaults.java
index fe1f3d6..7387d9e 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_Defaults.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Defaults.java
@@ -17,8 +17,9 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer;
+package org.apache.isis.viewer.wicket.viewer.wicketapp;
 
+import org.apache.isis.viewer.wicket.viewer.wicketapp.IsisWicketApplication;
 import org.apache.wicket.IConverterLocator;
 import org.apache.wicket.authroles.authentication.AuthenticatedWebSession;
 import org.junit.After;
@@ -27,12 +28,11 @@ import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.runtime.memento.ObjectAdapterMemento;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
-import org.apache.isis.viewer.wicket.viewer.integration.wicket.AuthenticatedWebSessionForIsis;
+import org.apache.isis.viewer.wicket.viewer.integration.AuthenticatedWebSessionForIsis;
 
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.not;
diff --git a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_Pages.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Pages.java
similarity index 96%
rename from core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_Pages.java
rename to core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Pages.java
index 6ad7e9a..1c81cc4 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_Pages.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Pages.java
@@ -17,8 +17,9 @@
  *  under the License.
  */
 
-package org.apache.isis.viewer.wicket.viewer;
+package org.apache.isis.viewer.wicket.viewer.wicketapp;
 
+import org.apache.isis.viewer.wicket.viewer.wicketapp.IsisWicketApplication;
 import org.apache.wicket.Page;
 import org.apache.wicket.markup.html.WebPage;
 import org.jmock.Expectations;