You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/12/06 15:39:03 UTC

[isis] branch master updated: ISIS-2177: splitting memento code into API/Impl

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 6361ba8  ISIS-2177: splitting memento code into API/Impl
6361ba8 is described below

commit 6361ba860afa93f08170649aedde6c6e7afb3cc8
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Dec 6 16:38:53 2019 +0100

    ISIS-2177: splitting memento code into API/Impl
    
    moving API to core/webapp
    moving Impl to wicket/viewer
---
 .../services/IsisModuleRuntimeServices.java        |  6 +--
 .../org/apache/isis/runtime/IsisModuleRuntime.java |  8 ++--
 .../viewer/wicket/model/IsisModuleWicketModel.java |  3 +-
 .../wicket/model/models/EntityCollectionModel.java | 12 ++---
 .../viewer/wicket/model/models/EntityModel.java    |  6 +--
 .../model/models/EntityModelForReference.java      |  4 +-
 .../model/models/HintPageParameterSerializer.java  |  2 +-
 .../wicket/model/models/ObjectAdapterModel.java    |  2 +-
 .../viewer/wicket/model/models/ScalarModel.java    |  4 +-
 .../model/models/ScalarModelWithMultiPending.java  |  2 +-
 .../model/models/ScalarModelWithPending.java       |  2 +-
 .../model/models/ToggledMementosProvider.java      |  2 +-
 .../viewer/wicket/model/models/ValueModel.java     |  4 +-
 .../wicket/model/models/EntityModel_hintsTest.java |  2 +-
 .../ScalarModel_isScalarSubtypingAnyOf_Test.java   |  4 +-
 .../isis/viewer/wicket/ui/IsisModuleWicketUi.java  |  5 +-
 .../actionmenu/serviceactions/CssMenuItem.java     |  2 +-
 .../serviceactions/ServiceActionUtil.java          | 27 ++++++-----
 .../serviceactions/TertiaryActionsPanel.java       |  8 ++--
 .../actions/ActionFormExecutorStrategy.java        |  1 -
 .../components/actions/ActionParametersPanel.java  |  4 --
 .../ui/components/collection/CollectionPanel.java  |  2 +-
 .../CollectionContentsAsAjaxTablePanel.java        |  2 +-
 .../columns/ObjectAdapterTitleColumn.java          |  4 +-
 .../entity/icontitle/EntityIconAndTitlePanel.java  |  2 +-
 .../ui/components/property/PropertyEditPanel.java  |  3 --
 .../scalars/ScalarPanelSelect2Abstract.java        |  2 +-
 .../scalars/reference/ReferencePanel.java          |  2 +-
 .../valuechoices/ValueChoicesSelect2Panel.java     |  2 +-
 .../wicket/ui/components/welcome/WelcomePanel.java |  2 +-
 .../linkandlabel/ActionLinkFactoryAbstract.java    |  2 +-
 .../ui/components/widgets/select2/ChoiceExt.java   |  2 +-
 .../ui/components/widgets/select2/Select2.java     |  2 +-
 .../widgets/select2/Select2ChoiceExt.java          |  2 +-
 .../widgets/select2/Select2MultiChoiceExt.java     |  2 +-
 .../select2/providers/EmptyChoiceProvider.java     |  2 +-
 .../ObjectAdapterMementoProviderAbstract.java      |  2 +-
 .../ObjectAdapterMementoProviderForChoices.java    |  2 +-
 ...tAdapterMementoProviderForReferenceChoices.java |  2 +-
 ...entoProviderForReferenceObjectAutoComplete.java |  2 +-
 ...derForReferenceParamOrPropertyAutoComplete.java |  2 +-
 ...bjectAdapterMementoProviderForValueChoices.java |  2 +-
 .../isis/viewer/wicket/ui/pages/PageAbstract.java  |  2 +-
 .../isis/viewer/wicket/ui/pages/WebPageBase.java   |  2 +-
 .../accmngt/signup/RegistrationFormPanel.java      |  2 +-
 .../wicket/ui/panels/FormExecutorDefault.java      |  2 +-
 .../isis/viewer/wicket/ui/panels/PanelBase.java    |  2 +-
 .../isis/viewer/wicket/ui/panels/PanelUtil.java    | 17 +++----
 .../isis/viewer/wicket/ui/util/Components.java     |  8 ----
 .../ui/ComponentFactoryAbstractTest_init.java      |  2 +-
 ...ollectionContentsSelectorDropdownPanelTest.java |  2 +-
 ...tAdapterMementoProviderForValueChoicesTest.java |  2 +-
 .../wicket/viewer/IsisModuleWicketViewer.java      | 19 +++++---
 .../AuthenticatedWebSessionForIsis.java            |  2 +-
 .../ConverterForObjectAdapterMemento.java          |  2 +-
 .../viewer/services/BookmarkUiServiceWicket.java   |  9 ++--
 .../services/HintStoreUsingWicketSession.java      |  8 ++--
 .../services/ImageResourceCacheClassPath.java      |  4 +-
 .../viewer/services/mementos}/CollectionData.java  |  2 +-
 .../wicket/viewer/services/mementos}/Data.java     |  2 +-
 .../viewer/services/mementos}/ObjectData.java      |  2 +-
 .../services/mementos}/ObjectMarshaller.java       |  4 +-
 .../services/mementos}/ObjectMementoLegacy.java    |  2 +-
 .../mementos}/ObjectMementoServiceDefault.java     | 56 ++++++++++++++++++----
 .../services/mementos}/ObjectUnmarshaller.java     |  4 +-
 .../viewer/services/mementos}/StandaloneData.java  |  2 +-
 .../wicket/viewer/webmodule/WebModuleWicket.java   |  2 +-
 .../viewer/wicketapp/IsisWicketApplication.java    |  4 +-
 .../IsisWicketApplication_newPageFactory.java      |  2 +-
 ...thenticatedWebSessionForIsis_Instantiation.java |  1 -
 ...uthenticatedWebSessionForIsis_TestAbstract.java |  1 -
 ...ageClassListDefault_RegistrationAndCaching.java |  3 --
 .../wicketapp/IsisWicketApplication_Defaults.java  |  3 +-
 .../wicketapp/IsisWicketApplication_Pages.java     |  1 -
 .../webapp/context/IsisWebAppCommonContext.java    | 15 ++----
 .../webapp/context}/memento/ObjectMemento.java     | 16 +++----
 .../context}/memento/ObjectMementoCollection.java  | 21 +-------
 .../context}/memento/ObjectMementoService.java     | 18 ++-----
 78 files changed, 188 insertions(+), 213 deletions(-)

diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/IsisModuleRuntimeServices.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/IsisModuleRuntimeServices.java
index b87b3dc..f569f15 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/IsisModuleRuntimeServices.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/IsisModuleRuntimeServices.java
@@ -18,6 +18,9 @@
  */
 package org.apache.isis.runtime.services;
 
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
 import org.apache.isis.codegen.bytebuddy.IsisModuleCodegenByteBuddy;
 import org.apache.isis.runtime.IsisModuleRuntime;
 import org.apache.isis.runtime.services.auth.AuthenticationSessionProviderDefault;
@@ -47,9 +50,6 @@ import org.apache.isis.runtime.services.userreg.EmailNotificationServiceDefault;
 import org.apache.isis.runtime.services.wrapper.WrapperFactoryDefault;
 import org.apache.isis.runtime.services.xactn.TransactionServiceSpring;
 import org.apache.isis.runtime.services.xmlsnapshot.XmlSnapshotServiceDefault;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
 
 @Configuration
 @Import({
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/IsisModuleRuntime.java b/core/runtime/src/main/java/org/apache/isis/runtime/IsisModuleRuntime.java
index 56152c1..389ab00 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/IsisModuleRuntime.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/IsisModuleRuntime.java
@@ -18,8 +18,10 @@
  */
 package org.apache.isis.runtime;
 
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
 import org.apache.isis.metamodel.IsisModuleMetamodel;
-import org.apache.isis.runtime.memento.ObjectMementoServiceDefault;
 import org.apache.isis.runtime.system.context.session.RuntimeEventService;
 import org.apache.isis.runtime.system.context.session.RuntimeEventSupport_Spring;
 import org.apache.isis.runtime.system.persistence.events.PersistenceEventService;
@@ -28,9 +30,6 @@ import org.apache.isis.runtime.system.persistence.events.TimestampService;
 import org.apache.isis.runtime.system.session.IsisSessionFactoryDefault;
 import org.apache.isis.runtime.system.transaction.AuditingServiceInternal;
 import org.apache.isis.runtime.system.transaction.ChangedObjectsServiceInternal;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
 
 @Configuration
 @Import({
@@ -38,7 +37,6 @@ import org.springframework.context.annotation.Import;
         IsisModuleMetamodel.class,
 
         // @Service's
-        ObjectMementoServiceDefault.class,
         RuntimeEventService.class,
         PersistenceEventService.class,
         TimestampService.class,
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/IsisModuleWicketModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/IsisModuleWicketModel.java
index 38aea94..9cefcde 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/IsisModuleWicketModel.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/IsisModuleWicketModel.java
@@ -1,9 +1,10 @@
 package org.apache.isis.viewer.wicket.model;
 
-import org.apache.isis.webapp.IsisModuleWebapp;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
+import org.apache.isis.webapp.IsisModuleWebapp;
+
 @Configuration
 @Import({
         // modules
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
index b04c7bc..62a3781 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
@@ -26,7 +26,6 @@ import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import org.apache.isis.metamodel.specloader.SpecificationLoader;
 import org.apache.wicket.Component;
 
 import org.apache.isis.applib.layout.component.CollectionLayoutData;
@@ -47,19 +46,18 @@ import org.apache.isis.metamodel.spec.ObjectSpecId;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.metamodel.spec.feature.OneToManyAssociation;
-import org.apache.isis.runtime.memento.ObjectMemento;
-import org.apache.isis.runtime.memento.ObjectMementoService;
+import org.apache.isis.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.isis.viewer.wicket.model.links.LinksProvider;
 import org.apache.isis.viewer.wicket.model.mementos.CollectionMemento;
 import org.apache.isis.viewer.wicket.model.models.Util.LowestCommonSuperclassFinder;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
+import org.apache.isis.webapp.context.memento.ObjectMementoService;
 
 import static org.apache.isis.commons.internal.base._NullSafe.stream;
 
-import lombok.val;
-
 /**
  * Model representing a collection of entities, either {@link Type#STANDALONE
  * standalone} (eg result of invoking an action) or {@link Type#PARENTED
@@ -201,7 +199,7 @@ implements LinksProvider, UiHintContainer {
                 final ObjectMementoService mementoService = colModel.getMementoService();
 
                 colModel.mementoList = _NullSafe.stream(adapterList)
-                        .map(mementoService::mementoForAdapter)
+                        .map(mementoService::mementoForObject)
                         .filter(_NullSafe::isPresent)
                         .collect(Collectors.toList());
             }
@@ -515,7 +513,7 @@ implements LinksProvider, UiHintContainer {
 
     public void toggleSelectionOn(ManagedObject selectedAdapter) {
         //XXX lombok issue, cannot use val here
-        final ObjectMemento selectedAsMemento = super.getMementoService().mementoForAdapter(selectedAdapter);
+        final ObjectMemento selectedAsMemento = super.getMementoService().mementoForObject(selectedAdapter);
 
         // try to remove; if couldn't, then mustn't have been in there, in which case add.
         boolean removed = toggledMementosList.remove(selectedAsMemento);
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index abfe613..2805a67 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -40,13 +40,13 @@ import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecId;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.common.PageParametersUtils;
 import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
 import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
 import org.apache.isis.viewer.wicket.model.mementos.PropertyMemento;
 import org.apache.isis.viewer.wicket.model.util.ComponentHintKey;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import static org.apache.isis.commons.internal.base._With.requires;
 
@@ -341,7 +341,7 @@ implements ObjectAdapterModel, UiHintContainer {
     @Override
     public void setObject(ManagedObject adapter) {
         super.setObject(adapter);
-        adapterMemento = super.getMementoService().mementoForAdapter(adapter); 
+        adapterMemento = super.getMementoService().mementoForObject(adapter); 
     }
 
     public void setObjectMemento(final ObjectMemento adapterMemento) {
@@ -491,7 +491,7 @@ implements ObjectAdapterModel, UiHintContainer {
                 return pending;
             }
             val adapter = entityModel.getObject();
-            return entityModel.getMementoService().mementoForAdapter(adapter);
+            return entityModel.getMementoService().mementoForObject(adapter);
         }
 
         @Override
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModelForReference.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModelForReference.java
index bb3e966..ddec032 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModelForReference.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModelForReference.java
@@ -23,7 +23,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.isis.applib.services.hint.HintStore;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtime.memento.ObjectMemento;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import static org.apache.isis.viewer.wicket.model.models.EntityModel.createPageParameters;
 
@@ -99,7 +99,7 @@ public class EntityModelForReference implements ObjectAdapterModel {
         val hintStore = scalarModel.getCommonContext().lookupServiceElseFail(HintStore.class); 
         
         val pageParameters = createPageParameters(getObject());
-        val objectAdapterMemento = mementoService.mementoForAdapter(getObject()); 
+        val objectAdapterMemento = mementoService.mementoForObject(getObject()); 
         
         HintPageParameterSerializer.hintStoreToPageParameters(pageParameters, objectAdapterMemento, hintStore);
         return pageParameters;
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/HintPageParameterSerializer.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/HintPageParameterSerializer.java
index 6750f2d..7c87d58 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/HintPageParameterSerializer.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/HintPageParameterSerializer.java
@@ -25,8 +25,8 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.hint.HintStore;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.util.ComponentHintKey;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.val;
 
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ObjectAdapterModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ObjectAdapterModel.java
index 81683f5..21c3504 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ObjectAdapterModel.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ObjectAdapterModel.java
@@ -23,7 +23,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtime.memento.ObjectMemento;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 public interface ObjectAdapterModel extends IModel<ManagedObject> {
 
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index 59ed097..1991b7f 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -50,12 +50,12 @@ import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.metamodel.spec.feature.ObjectActionParameter;
 import org.apache.isis.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.security.api.authentication.AuthenticationSession;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.isis.viewer.wicket.model.links.LinksProvider;
 import org.apache.isis.viewer.wicket.model.mementos.ActionParameterMemento;
 import org.apache.isis.viewer.wicket.model.mementos.PropertyMemento;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.val;
 
@@ -869,7 +869,7 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
             setPending(memento);
         } else {
             val memento = super.getMementoService()
-                    .mementoForAdapter(objectAdapter);
+                    .mementoForObject(objectAdapter);
             setPending(memento);
         }
     }
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
index 33c0d10..082481b 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
@@ -25,7 +25,7 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 
 import org.apache.isis.metamodel.spec.ObjectSpecId;
-import org.apache.isis.runtime.memento.ObjectMemento;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java
index 5c011e0..e6ae447 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java
@@ -23,7 +23,7 @@ import java.io.Serializable;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 
-import org.apache.isis.runtime.memento.ObjectMemento;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.extern.log4j.Log4j2;
 
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ToggledMementosProvider.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ToggledMementosProvider.java
index dbee2a0..dc353ae 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ToggledMementosProvider.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ToggledMementosProvider.java
@@ -23,7 +23,7 @@ import java.io.Serializable;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 
 import org.apache.isis.commons.collections.Can;
-import org.apache.isis.runtime.memento.ObjectMemento;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 public interface ToggledMementosProvider extends Serializable {
     
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java
index c5f7ed1..3701c60 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java
@@ -21,8 +21,8 @@ package org.apache.isis.viewer.wicket.model.models;
 
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 /**
  * Represents a standalone value.
@@ -35,7 +35,7 @@ public class ValueModel extends ModelAbstract<ManagedObject> {
 
     public ValueModel(IsisWebAppCommonContext commonContext, ManagedObject adapter) {
         super(commonContext);
-        adapterMemento = super.getMementoService().mementoForAdapter(adapter);
+        adapterMemento = super.getMementoService().mementoForObject(adapter);
     }
 
     @Override
diff --git a/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/EntityModel_hintsTest.java b/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/EntityModel_hintsTest.java
index 85ca37e..65f2372 100644
--- a/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/EntityModel_hintsTest.java
+++ b/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/EntityModel_hintsTest.java
@@ -27,8 +27,8 @@ import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
 
diff --git a/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ScalarModel_isScalarSubtypingAnyOf_Test.java b/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ScalarModel_isScalarSubtypingAnyOf_Test.java
index 730838f..f870aa3 100644
--- a/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ScalarModel_isScalarSubtypingAnyOf_Test.java
+++ b/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ScalarModel_isScalarSubtypingAnyOf_Test.java
@@ -24,13 +24,13 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtime.memento.ObjectMementoService;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.webapp.context.memento.ObjectMementoService;
 
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.is;
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleWicketUi.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleWicketUi.java
index 7cf134d..7d68e7c 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleWicketUi.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleWicketUi.java
@@ -1,10 +1,11 @@
 package org.apache.isis.viewer.wicket.ui;
 
-import org.apache.isis.viewer.wicket.model.IsisModuleWicketModel;
-import org.apache.isis.viewer.wicket.ui.components.widgets.themepicker.IsisWicketThemeSupportDefault;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
+import org.apache.isis.viewer.wicket.model.IsisModuleWicketModel;
+import org.apache.isis.viewer.wicket.ui.components.widgets.themepicker.IsisWicketThemeSupportDefault;
+
 @Configuration
 @Import({
         // modules
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
index 06abe68..867fd0e 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
@@ -38,7 +38,6 @@ import org.apache.isis.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.metamodel.facets.members.cssclassfa.CssClassFaPosition;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.runtime.system.context.IsisContext;
 import org.apache.isis.security.api.authentication.AuthenticationSession;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
@@ -49,6 +48,7 @@ import org.apache.isis.viewer.wicket.ui.pages.PageAbstract;
 import org.apache.isis.viewer.wicket.ui.util.Components;
 import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
 import org.apache.isis.viewer.wicket.ui.util.Tooltips;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.val;
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
index 4321ee2..3200ec8 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
@@ -19,14 +19,16 @@
 
 package org.apache.isis.viewer.wicket.ui.components.actionmenu.serviceactions;
 
-import de.agilecoders.wicket.core.markup.html.bootstrap.components.TooltipConfig;
-import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationBehavior;
-import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationConfig;
-import lombok.extern.log4j.Log4j2;
-import lombok.val;
-
 import java.util.List;
 
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.AbstractLink;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.markup.html.panel.Fragment;
+
 import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
 import org.apache.isis.applib.layout.menubars.MenuBars;
 import org.apache.isis.applib.layout.menubars.MenuSection;
@@ -43,13 +45,12 @@ import org.apache.isis.viewer.wicket.ui.components.actionmenu.CssClassFaBehavior
 import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
 import org.apache.isis.viewer.wicket.ui.util.Tooltips;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
-import org.apache.wicket.Component;
-import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.link.AbstractLink;
-import org.apache.wicket.markup.html.list.ListItem;
-import org.apache.wicket.markup.html.list.ListView;
-import org.apache.wicket.markup.html.panel.Fragment;
+
+import de.agilecoders.wicket.core.markup.html.bootstrap.components.TooltipConfig;
+import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationBehavior;
+import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationConfig;
+import lombok.val;
+import lombok.extern.log4j.Log4j2;
 
 @Log4j2
 public final class ServiceActionUtil {
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.java
index a703ea9..3e54680 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.java
@@ -22,10 +22,6 @@ import java.util.List;
 
 import javax.inject.Inject;
 
-import org.apache.isis.webapp.wormhole.AuthenticationSessionWormhole;
-import org.apache.isis.security.api.authentication.AuthenticationSession;
-import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
-import org.apache.isis.viewer.wicket.ui.util.Tooltips;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.Page;
 import org.apache.wicket.markup.head.CssHeaderItem;
@@ -37,9 +33,13 @@ import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.request.resource.CssResourceReference;
 
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.security.api.authentication.AuthenticationSession;
 import org.apache.isis.viewer.wicket.model.models.PageType;
 import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
 import org.apache.isis.viewer.wicket.ui.panels.PanelBase;
+import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
+import org.apache.isis.viewer.wicket.ui.util.Tooltips;
+import org.apache.isis.webapp.wormhole.AuthenticationSessionWormhole;
 
 /**
  * A panel responsible to render the application actions as menu in a navigation bar.
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionFormExecutorStrategy.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionFormExecutorStrategy.java
index b34e7a1..e12c426 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionFormExecutorStrategy.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionFormExecutorStrategy.java
@@ -20,7 +20,6 @@ package org.apache.isis.viewer.wicket.ui.components.actions;
 
 import org.apache.wicket.ajax.AjaxRequestTarget;
 
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.viewer.wicket.model.models.ActionModel;
 import org.apache.isis.viewer.wicket.model.models.ActionPrompt;
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersPanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersPanel.java
index 97f42c9..7505a55 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersPanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersPanel.java
@@ -23,18 +23,14 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.model.Model;
 
-import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.viewer.wicket.model.models.ActionModel;
 import org.apache.isis.viewer.wicket.model.models.ActionPrompt;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
-import org.apache.isis.viewer.wicket.ui.actionresponse.ActionResultResponse;
-import org.apache.isis.viewer.wicket.ui.actionresponse.ActionResultResponseType;
 import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditPanel;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 
 import lombok.Setter;
-import lombok.val;
 
 /**
  * {@link PanelAbstract Panel} representing an action invocation, backed by an
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
index 04c35f6..a7c045f 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
@@ -32,7 +32,6 @@ import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.metamodel.spec.feature.OneToManyAssociation;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.common.OnSelectionHandler;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
@@ -46,6 +45,7 @@ import org.apache.isis.viewer.wicket.ui.components.collection.selector.Collectio
 import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ObjectAdapterToggleboxColumn;
 import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract2;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import lombok.val;
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
index c393e30..1ef2447 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
@@ -47,7 +47,6 @@ import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.Contributed;
 import org.apache.isis.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.ui.components.collection.bulk.BulkActionsProvider;
@@ -57,6 +56,7 @@ import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.
 import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ObjectAdapterTitleColumn;
 import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ObjectAdapterToggleboxColumn;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import static org.apache.isis.commons.internal.base._With.mapIfPresentElse;
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java
index 8fed490..b48eaa8 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java
@@ -25,13 +25,13 @@ import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.model.IModel;
 
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.model.models.ValueModel;
 import org.apache.isis.viewer.wicket.model.models.EntityModel.RenderingHint;
+import org.apache.isis.viewer.wicket.model.models.ValueModel;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
 import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.val;
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
index e39a822..0ed281d 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
@@ -31,7 +31,6 @@ import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.isis.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.metamodel.facets.object.projection.ProjectionFacet;
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.model.models.ObjectAdapterModel;
 import org.apache.isis.viewer.wicket.model.models.PageType;
@@ -40,6 +39,7 @@ import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.isis.viewer.wicket.ui.util.Components;
 import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
 import org.apache.isis.viewer.wicket.ui.util.Tooltips;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.val;
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditPanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditPanel.java
index 6cfb634..33ecc72 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditPanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditPanel.java
@@ -29,11 +29,8 @@ import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
 import org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersPanel;
-import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 
-import lombok.val;
-
 /**
  * Corresponding component to prompt for action (parameters) is {@link ActionParametersPanel}.
  */
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
index 0999ee4..8ef8945 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
@@ -33,7 +33,6 @@ import org.apache.wicket.validation.ValidationError;
 import org.wicketstuff.select2.ChoiceProvider;
 
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ActionModel;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
@@ -41,6 +40,7 @@ import org.apache.isis.viewer.wicket.ui.components.widgets.select2.Select2;
 import org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForChoices;
 import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
 import org.apache.isis.viewer.wicket.ui.util.Tooltips;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.val;
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index 83c6ae7..efb0921 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -37,7 +37,6 @@ import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.metamodel.facets.object.autocomplete.AutoCompleteFacet;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.model.models.EntityModelForReference;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
@@ -54,6 +53,7 @@ import org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.Obj
 import org.apache.isis.viewer.wicket.ui.util.Components;
 import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
 import org.apache.isis.viewer.wicket.ui.util.Tooltips;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.val;
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
index 0e8ea72..9b2d1e2 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
@@ -34,13 +34,13 @@ import org.wicketstuff.select2.ChoiceProvider;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelSelect2Abstract;
 import org.apache.isis.viewer.wicket.ui.components.widgets.select2.Select2;
 import org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForValueChoices;
 import org.apache.isis.viewer.wicket.ui.util.Tooltips;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.val;
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/welcome/WelcomePanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/welcome/WelcomePanel.java
index 87082cd..c31baa5 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/welcome/WelcomePanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/welcome/WelcomePanel.java
@@ -23,8 +23,8 @@ import javax.inject.Inject;
 
 import org.apache.wicket.markup.html.basic.Label;
 
-import org.apache.isis.viewer.wicket.model.models.WelcomeModel;
 import org.apache.isis.config.viewer.wicket.WebAppConfiguration;
+import org.apache.isis.viewer.wicket.model.models.WelcomeModel;
 import org.apache.isis.viewer.wicket.ui.pages.home.HomePage;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
index 6177a34..ea1b807 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
@@ -42,7 +42,6 @@ import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.metamodel.specloader.specimpl.ObjectActionMixedIn;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettingsAccessor;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
@@ -68,6 +67,7 @@ import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
 import org.apache.isis.viewer.wicket.ui.panels.FormExecutorDefault;
 import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.val;
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/ChoiceExt.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/ChoiceExt.java
index 1d9ca1c..4982165 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/ChoiceExt.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/ChoiceExt.java
@@ -24,7 +24,7 @@ import org.wicketstuff.select2.Select2MultiChoice;
 import org.wicketstuff.select2.Settings;
 
 import org.apache.isis.metamodel.spec.ObjectSpecId;
-import org.apache.isis.runtime.memento.ObjectMemento;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 /**
  * Represents functionality that is common to both {@link Select2Choice} and {@link Select2MultiChoice}, but for
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java
index cb9c3b9..5ddf28e 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java
@@ -32,10 +32,10 @@ import org.wicketstuff.select2.Select2Choice;
 import org.wicketstuff.select2.Select2MultiChoice;
 import org.wicketstuff.select2.Settings;
 
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.model.models.ScalarModelWithMultiPending;
 import org.apache.isis.viewer.wicket.model.models.ScalarModelWithPending;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 /**
  * Wrapper around either a {@link Select2Choice} or a {@link Select2MultiChoice}.
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
index d50a856..3269e7c 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
@@ -22,9 +22,9 @@ import org.apache.wicket.model.IModel;
 import org.wicketstuff.select2.Select2Choice;
 
 import org.apache.isis.metamodel.spec.ObjectSpecId;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.EmptyChoiceProvider;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 public class Select2ChoiceExt extends Select2Choice<ObjectMemento> implements ChoiceExt {
     
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
index 51d1de0..366633a 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
@@ -25,9 +25,9 @@ import org.apache.wicket.model.IModel;
 import org.wicketstuff.select2.Select2MultiChoice;
 
 import org.apache.isis.metamodel.spec.ObjectSpecId;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.EmptyChoiceProvider;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 public class Select2MultiChoiceExt
 extends Select2MultiChoice<ObjectMemento>
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/EmptyChoiceProvider.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/EmptyChoiceProvider.java
index d8135cb..b50a097 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/EmptyChoiceProvider.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/EmptyChoiceProvider.java
@@ -23,7 +23,7 @@ import java.util.Collection;
 import org.wicketstuff.select2.ChoiceProvider;
 import org.wicketstuff.select2.Response;
 
-import org.apache.isis.runtime.memento.ObjectMemento;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 public class EmptyChoiceProvider extends ChoiceProvider<ObjectMemento> {
     private static final long serialVersionUID = 1L;
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
index f1ec775..681c644 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
@@ -31,11 +31,11 @@ import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecId;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.scalars.IsisConverterLocator;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.Getter;
 import lombok.val;
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForChoices.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForChoices.java
index 360048c..ff26e8c 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForChoices.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForChoices.java
@@ -38,7 +38,7 @@ package org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers;
 
 import java.util.List;
 
-import org.apache.isis.runtime.memento.ObjectMemento;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 public interface ObjectAdapterMementoProviderForChoices {
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
index ce60425..f1c0050 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
@@ -43,8 +43,8 @@ import java.util.stream.Collectors;
 
 import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.val;
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
index 557e555..030ec21 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
@@ -47,8 +47,8 @@ import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.metamodel.facets.object.autocomplete.AutoCompleteFacet;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.val;
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
index 935b0c8..eea9829 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
@@ -45,8 +45,8 @@ import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.val;
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
index 7909e2a..ee298d5 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
@@ -41,8 +41,8 @@ import java.util.List;
 import java.util.function.Predicate;
 
 import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 public class ObjectAdapterMementoProviderForValueChoices
 extends ObjectAdapterMementoProviderAbstract implements ObjectAdapterMementoProviderForChoices {
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index 111946d..c6228e7 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@ -62,6 +62,7 @@ import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
 import org.apache.isis.commons.internal.ioc.BeanSort;
+import org.apache.isis.config.viewer.wicket.DialogMode;
 import org.apache.isis.security.api.authentication.AuthenticationSession;
 import org.apache.isis.viewer.wicket.model.common.PageParametersUtils;
 import org.apache.isis.viewer.wicket.model.hints.IsisEnvelopeEvent;
@@ -75,7 +76,6 @@ import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.model.models.PageType;
 import org.apache.isis.viewer.wicket.ui.ComponentFactory;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
-import org.apache.isis.config.viewer.wicket.DialogMode;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
 import org.apache.isis.viewer.wicket.ui.components.actionprompt.ActionPromptModalWindow;
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java
index 5131de4..1d2756d 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java
@@ -22,9 +22,9 @@ import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 
+import org.apache.isis.config.viewer.wicket.WebAppConfiguration;
 import org.apache.isis.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.viewer.wicket.model.common.CommonContextUtils;
-import org.apache.isis.config.viewer.wicket.WebAppConfiguration;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
 
 /**
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/signup/RegistrationFormPanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/signup/RegistrationFormPanel.java
index b6abbe8..bfe3c69 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/signup/RegistrationFormPanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/signup/RegistrationFormPanel.java
@@ -34,8 +34,8 @@ import org.apache.wicket.validation.validator.EmailAddressValidator;
 
 import org.apache.isis.applib.services.userreg.EmailNotificationService;
 import org.apache.isis.applib.services.userreg.events.EmailRegistrationEvent;
-import org.apache.isis.viewer.wicket.model.models.PageType;
 import org.apache.isis.config.viewer.wicket.WebAppConfiguration;
+import org.apache.isis.viewer.wicket.model.models.PageType;
 import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
 import org.apache.isis.viewer.wicket.ui.pages.EmailVerificationUrlService;
 import org.apache.isis.viewer.wicket.ui.pages.PageNavigationService;
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
index fb27400..f22fc94 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
@@ -48,7 +48,6 @@ import org.apache.isis.metamodel.facets.actions.redirect.RedirectFacet;
 import org.apache.isis.metamodel.facets.properties.renderunchanged.UnchangingFacet;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.runtime.system.session.IsisRequestCycle;
 import org.apache.isis.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.security.api.authentication.AuthenticationSession;
@@ -64,6 +63,7 @@ import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisBlobOr
 import org.apache.isis.viewer.wicket.ui.errors.JGrowlUtil;
 import org.apache.isis.viewer.wicket.ui.util.Components;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
index 4d847e3..75052d8 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
@@ -27,6 +27,7 @@ import org.apache.wicket.model.IModel;
 
 import org.apache.isis.applib.services.i18n.LocaleProvider;
 import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.config.viewer.wicket.WebAppConfiguration;
 import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.security.api.authentication.MessageBroker;
@@ -34,7 +35,6 @@ import org.apache.isis.viewer.wicket.model.common.CommonContextUtils;
 import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
-import org.apache.isis.config.viewer.wicket.WebAppConfiguration;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
 import org.apache.isis.viewer.wicket.ui.components.tree.themes.TreeThemeProvider;
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelUtil.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelUtil.java
index b5ccfa3..d74a6b6 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelUtil.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelUtil.java
@@ -18,14 +18,6 @@
  */
 package org.apache.isis.viewer.wicket.ui.panels;
 
-import de.agilecoders.wicket.core.markup.html.bootstrap.components.TooltipConfig;
-import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationBehavior;
-import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationConfig;
-
-import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.services.i18n.TranslationService;
-import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.config.messages.MessageRegistry;
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.attributes.AjaxCallListener;
 import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
@@ -34,6 +26,15 @@ import org.apache.wicket.markup.head.CssReferenceHeaderItem;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.request.resource.CssResourceReference;
 
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.config.messages.MessageRegistry;
+
+import de.agilecoders.wicket.core.markup.html.bootstrap.components.TooltipConfig;
+import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationBehavior;
+import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationConfig;
+
 public final class PanelUtil {
 
     private PanelUtil(){}
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Components.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Components.java
index b1a7522..c6187fb 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Components.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Components.java
@@ -19,24 +19,16 @@
 
 package org.apache.isis.viewer.wicket.ui.util;
 
-import java.util.Set;
-
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.Page;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.page.PartialPageUpdate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
-import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.commons.internal.exceptions._Exceptions.FluentException;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
 
-import lombok.val;
-
 public final class Components {
 
     private Components() {
diff --git a/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/ComponentFactoryAbstractTest_init.java b/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/ComponentFactoryAbstractTest_init.java
index 68aaae7..c746fc3 100644
--- a/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/ComponentFactoryAbstractTest_init.java
+++ b/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/ComponentFactoryAbstractTest_init.java
@@ -25,8 +25,8 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 
-import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
 
 public class ComponentFactoryAbstractTest_init {
diff --git a/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/collection/selector/CollectionContentsSelectorDropdownPanelTest.java b/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/collection/selector/CollectionContentsSelectorDropdownPanelTest.java
index 10d2cf3..b15965b 100644
--- a/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/collection/selector/CollectionContentsSelectorDropdownPanelTest.java
+++ b/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/collection/selector/CollectionContentsSelectorDropdownPanelTest.java
@@ -26,8 +26,8 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
 import org.apache.isis.viewer.wicket.ui.ComponentFactory;
diff --git a/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java b/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
index 607bf5f..b314338 100644
--- a/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
+++ b/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
@@ -33,12 +33,12 @@ import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.metamodel.spec.ObjectSpecId;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForValueChoices;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import static org.hamcrest.CoreMatchers.is;
 
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisModuleWicketViewer.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisModuleWicketViewer.java
index c136d6f..cf953c7 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisModuleWicketViewer.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisModuleWicketViewer.java
@@ -19,6 +19,9 @@
 
 package org.apache.isis.viewer.wicket.viewer;
 
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
 import org.apache.isis.viewer.wicket.ui.IsisModuleWicketUi;
 import org.apache.isis.viewer.wicket.viewer.mixins.Object_clearHints;
 import org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistrarDefault;
@@ -26,14 +29,15 @@ import org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFacto
 import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassListDefault;
 import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassRegistryDefault;
 import org.apache.isis.viewer.wicket.viewer.registries.pages.PageNavigationServiceDefault;
-import org.apache.isis.viewer.wicket.viewer.services.*;
+import org.apache.isis.viewer.wicket.viewer.services.BookmarkUiServiceWicket;
+import org.apache.isis.viewer.wicket.viewer.services.DeepLinkServiceWicket;
+import org.apache.isis.viewer.wicket.viewer.services.HintStoreUsingWicketSession;
+import org.apache.isis.viewer.wicket.viewer.services.ImageResourceCacheClassPath;
+import org.apache.isis.viewer.wicket.viewer.services.LocaleProviderWicket;
+import org.apache.isis.viewer.wicket.viewer.services.TranslationsResolverWicket;
+import org.apache.isis.viewer.wicket.viewer.services.WicketViewerSettingsDefault;
+import org.apache.isis.viewer.wicket.viewer.services.mementos.ObjectMementoServiceDefault;
 import org.apache.isis.viewer.wicket.viewer.webmodule.WebModuleWicket;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-import org.apache.isis.viewer.wicket.ui.components.widgets.themepicker.IsisWicketThemeSupportDefault;
-import org.apache.isis.webapp.IsisModuleWebapp;
 
 /**
  * 
@@ -52,6 +56,7 @@ import org.apache.isis.webapp.IsisModuleWebapp;
         ImageResourceCacheClassPath.class,
         LocaleProviderWicket.class,
         HintStoreUsingWicketSession.class,
+        ObjectMementoServiceDefault.class,
         PageClassListDefault.class,
         PageClassRegistryDefault.class,
         PageNavigationServiceDefault.class,
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
index b2981c4..c3e6215 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
@@ -30,7 +30,6 @@ import org.apache.wicket.request.cycle.RequestCycle;
 
 import org.apache.isis.applib.clock.Clock;
 import org.apache.isis.applib.services.session.SessionLoggingService;
-import org.apache.isis.webapp.wormhole.AuthenticationSessionWormhole;
 import org.apache.isis.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.security.api.authentication.AuthenticationRequest;
 import org.apache.isis.security.api.authentication.AuthenticationRequestPassword;
@@ -41,6 +40,7 @@ import org.apache.isis.viewer.wicket.ui.components.widgets.breadcrumbs.Breadcrum
 import org.apache.isis.viewer.wicket.ui.components.widgets.breadcrumbs.BreadcrumbModelProvider;
 import org.apache.isis.viewer.wicket.ui.pages.BookmarkedPagesModelProvider;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.webapp.wormhole.AuthenticationSessionWormhole;
 
 import lombok.Getter;
 import lombok.val;
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapterMemento.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapterMemento.java
index 651e532..ebffbb9 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapterMemento.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapterMemento.java
@@ -27,8 +27,8 @@ import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.metamodel.adapter.oid.Oid;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import lombok.RequiredArgsConstructor;
 import lombok.val;
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 af0befd..2fc172f 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
@@ -18,15 +18,14 @@
  */
 package org.apache.isis.viewer.wicket.viewer.services;
 
-import lombok.extern.log4j.Log4j2;
-
 import javax.inject.Named;
 
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
+import org.springframework.stereotype.Service;
+
 import org.apache.isis.applib.services.bookmarkui.BookmarkUiService;
 import org.apache.isis.viewer.wicket.viewer.integration.AuthenticatedWebSessionForIsis;
-import org.springframework.stereotype.Service;
+
+import lombok.extern.log4j.Log4j2;
 
 @Service
 @Named("isisWicketViewer.BookmarkUiServiceWicket")
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java
index 39125f7..ece2f3e 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java
@@ -22,19 +22,17 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Set;
 
+import javax.inject.Named;
+
 import org.apache.wicket.Session;
+import org.springframework.stereotype.Service;
 
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.hint.HintStore;
 import org.apache.isis.commons.internal.collections._Maps;
-import org.springframework.stereotype.Service;
 
 import lombok.extern.log4j.Log4j2;
 
-import javax.inject.Named;
-
 @Service
 @Named("isisWicketViewer.HintStoreUsingWicketSession")
 @Log4j2
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/ImageResourceCacheClassPath.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/ImageResourceCacheClassPath.java
index a0042a8..9830b7a 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/ImageResourceCacheClassPath.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/ImageResourceCacheClassPath.java
@@ -26,13 +26,13 @@ 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;
 
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Maps;
+import org.apache.isis.metamodel.commons.ClassUtil;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.Specification;
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/CollectionData.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/CollectionData.java
similarity index 96%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/CollectionData.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/CollectionData.java
index fbec284..f135f6e 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/CollectionData.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/CollectionData.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.runtime.memento;
+package org.apache.isis.viewer.wicket.viewer.services.mementos;
 
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/Data.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/Data.java
similarity index 95%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/Data.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/Data.java
index a819601..0032767 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/Data.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/Data.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.runtime.memento;
+package org.apache.isis.viewer.wicket.viewer.services.mementos;
 
 import java.io.Serializable;
 
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectData.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectData.java
similarity index 97%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectData.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectData.java
index f4469f1..8514599 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectData.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectData.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.runtime.memento;
+package org.apache.isis.viewer.wicket.viewer.services.mementos;
 
 import java.io.Serializable;
 import java.util.HashMap;
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMarshaller.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMarshaller.java
similarity index 98%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMarshaller.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMarshaller.java
index 976545c..1a33734 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMarshaller.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMarshaller.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.runtime.memento;
+package org.apache.isis.viewer.wicket.viewer.services.mementos;
 
 import java.util.Set;
 
@@ -44,7 +44,7 @@ import lombok.extern.log4j.Log4j2;
  * @since 2.0
  */
 @Log4j2
-class ObjectMarshaller {
+final class ObjectMarshaller {
 
     Data toData(ManagedObject adapter) {
         val data = (adapter == null) ? null : createData(adapter);
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoLegacy.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoLegacy.java
similarity index 99%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoLegacy.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoLegacy.java
index 7ef60eb..7d021ee 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoLegacy.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoLegacy.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.runtime.memento;
+package org.apache.isis.viewer.wicket.viewer.services.mementos;
 
 import java.io.Serializable;
 import java.util.ArrayList;
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoServiceDefault.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoServiceDefault.java
similarity index 63%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoServiceDefault.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoServiceDefault.java
index 34c7c2d..e4a32a0 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoServiceDefault.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoServiceDefault.java
@@ -16,7 +16,10 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.runtime.memento;
+package org.apache.isis.viewer.wicket.viewer.services.mementos;
+
+import java.util.ArrayList;
+import java.util.stream.Collectors;
 
 import javax.inject.Inject;
 import javax.inject.Named;
@@ -25,11 +28,16 @@ import javax.inject.Singleton;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
 import org.apache.isis.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecId;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
+import org.apache.isis.webapp.context.memento.ObjectMementoCollection;
+import org.apache.isis.webapp.context.memento.ObjectMementoService;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
@@ -41,11 +49,11 @@ import lombok.val;
  *
  */
 @Service
-@Named("isisRuntime.ObjectMementoServiceDefault")
+@Named("isisRuntimeServices.ObjectMementoServiceDefault")
 @Singleton
 public class ObjectMementoServiceDefault
 implements ObjectMementoService {
-    
+
     @Inject @Getter private SpecificationLoader specificationLoader;
     @Inject private ObjectManager objectManager;
     private ObjectUnmarshaller objectUnmarshaller;
@@ -57,7 +65,7 @@ implements ObjectMementoService {
     }
 
     @Override
-    public ObjectMemento mementoForAdapter(ManagedObject adapter) {
+    public ObjectMemento mementoForObject(ManagedObject adapter) {
         val mementoAdapter = ObjectMementoLegacy.createOrNull(adapter);
         if(mementoAdapter==null) {
             return null;
@@ -68,7 +76,16 @@ implements ObjectMementoService {
     @Override
     public ObjectMemento mementoForPojo(Object pojo) {
         val managedObject = objectManager.adapt(pojo);
-        return mementoForAdapter(managedObject);
+        return mementoForObject(managedObject);
+    }
+    
+    @Override
+    public ObjectMemento mementoForPojos(Iterable<Object> iterablePojos, ObjectSpecId specId) {
+        val listOfMementos = _NullSafe.stream(iterablePojos)
+                .map(pojo->mementoForPojo(pojo))
+                .collect(Collectors.toCollection(ArrayList::new)); // ArrayList is serializable
+
+        return ObjectMementoCollection.of(listOfMementos, specId);
     }
 
     @Override
@@ -79,8 +96,26 @@ implements ObjectMementoService {
         if(objectUnmarshaller==null) {
             objectUnmarshaller = new ObjectUnmarshaller(objectManager, specificationLoader);
         }
-        
-        return memento.reconstructObject(objectUnmarshaller);
+
+        if(memento instanceof ObjectMementoCollection) {
+            val objectMementoCollection = (ObjectMementoCollection) memento;
+
+            val listOfPojos = objectMementoCollection.unwrapList().stream()
+                    .map(this::reconstructObject)
+                    .filter(_NullSafe::isPresent)
+                    .map(ManagedObject::getPojo)
+                    .filter(_NullSafe::isPresent)
+                    .collect(Collectors.toCollection(ArrayList::new));
+
+            return objectUnmarshaller.adapterForListOfPojos(listOfPojos);
+        }
+
+        if(memento instanceof ObjectMementoAdapter) {
+            val objectMementoAdapter = (ObjectMementoAdapter) memento;
+            return objectMementoAdapter.reconstructObject(objectUnmarshaller);
+        }
+
+        throw _Exceptions.unrecoverableFormatted("unsupported ObjectMemento type %s", memento.getClass());
     }
 
     @RequiredArgsConstructor(staticName = "of")
@@ -110,11 +145,10 @@ implements ObjectMementoService {
             return delegate.getObjectSpecId();
         }
 
-        @Override
-        public ManagedObject reconstructObject(ObjectUnmarshaller objectUnmarshaller) {
+        ManagedObject reconstructObject(ObjectUnmarshaller objectUnmarshaller) {
             return delegate.reconstructObject(objectUnmarshaller, objectUnmarshaller.getSpecificationLoader());
         }
-        
+
         @Override
         public String toString() {
             return delegate.toString();
@@ -122,4 +156,6 @@ implements ObjectMementoService {
 
     }
 
+
+
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectUnmarshaller.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectUnmarshaller.java
similarity index 99%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectUnmarshaller.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectUnmarshaller.java
index 34bd80c..5121ec8 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectUnmarshaller.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectUnmarshaller.java
@@ -1,4 +1,4 @@
-package org.apache.isis.runtime.memento;
+package org.apache.isis.viewer.wicket.viewer.services.mementos;
 
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -47,7 +47,7 @@ import lombok.extern.log4j.Log4j2;
  */
 @RequiredArgsConstructor
 @Log4j2
-class ObjectUnmarshaller {
+final class ObjectUnmarshaller {
 
     private final ObjectManager objectManager;
     @Getter private final SpecificationLoader specificationLoader; 
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/StandaloneData.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/StandaloneData.java
similarity index 97%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/StandaloneData.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/StandaloneData.java
index 3312bb2..d8c04c6 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/StandaloneData.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/StandaloneData.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.runtime.memento;
+package org.apache.isis.viewer.wicket.viewer.services.mementos;
 
 import java.io.Serializable;
 
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/webmodule/WebModuleWicket.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/webmodule/WebModuleWicket.java
index a2dd919..77a7d0f 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/webmodule/WebModuleWicket.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/webmodule/WebModuleWicket.java
@@ -25,12 +25,12 @@ import javax.servlet.ServletContext;
 import javax.servlet.ServletContextListener;
 import javax.servlet.ServletException;
 
-import org.apache.isis.config.IsisConfiguration;
 import org.apache.wicket.protocol.http.WicketFilter;
 import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.webapp.modules.WebModule;
 import org.apache.isis.webapp.modules.WebModuleContext;
 
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
index f069dbe..ebd9595 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
@@ -69,7 +69,6 @@ import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
 import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettingsAccessor;
 import org.apache.isis.viewer.wicket.model.models.PageType;
@@ -89,9 +88,10 @@ import org.apache.isis.viewer.wicket.ui.panels.PanelUtil;
 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.integration.IsisResourceSettings;
+import org.apache.isis.viewer.wicket.viewer.integration.WebRequestCycleForIsis;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 import static java.util.Objects.requireNonNull;
 import static org.apache.isis.commons.internal.base._With.requires;
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_newPageFactory.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_newPageFactory.java
index c441d76..c92d40f 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_newPageFactory.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_newPageFactory.java
@@ -19,7 +19,6 @@
 
 package org.apache.isis.viewer.wicket.viewer.wicketapp;
 
-import org.apache.isis.webapp.context.IsisWebAppCommonContext;
 import org.apache.wicket.IPageFactory;
 import org.apache.wicket.request.component.IRequestablePage;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
@@ -27,6 +26,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.viewer.wicket.model.models.PageType;
 import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
+import org.apache.isis.webapp.context.IsisWebAppCommonContext;
 
 import lombok.RequiredArgsConstructor;
 import lombok.val;
diff --git a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Instantiation.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Instantiation.java
index fa54e22..0c543db 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Instantiation.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Instantiation.java
@@ -29,7 +29,6 @@ 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.AuthenticatedWebSessionForIsis;
 
 public class AuthenticatedWebSessionForIsis_Instantiation {
 
diff --git a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_TestAbstract.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_TestAbstract.java
index b2cbe03..a3bbad1 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_TestAbstract.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_TestAbstract.java
@@ -33,7 +33,6 @@ 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.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/registries/pages/PageClassListDefault_RegistrationAndCaching.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassListDefault_RegistrationAndCaching.java
index 2ea7acf..46ea522 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassListDefault_RegistrationAndCaching.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassListDefault_RegistrationAndCaching.java
@@ -26,9 +26,6 @@ import org.junit.Test;
 import org.apache.isis.viewer.wicket.model.models.ActionModel;
 import org.apache.isis.viewer.wicket.model.models.PageType;
 import org.apache.isis.viewer.wicket.ui.pages.actionprompt.ActionPromptPage;
-import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassListDefault;
-import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassListDefault_Instantiation;
-import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassRegistryDefault;
 
 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/wicketapp/IsisWicketApplication_Defaults.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Defaults.java
index f4596c2..7f04d51 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Defaults.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Defaults.java
@@ -19,7 +19,6 @@
 
 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;
@@ -29,10 +28,10 @@ import org.junit.Rule;
 import org.junit.Test;
 
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
 import org.apache.isis.viewer.wicket.viewer.integration.AuthenticatedWebSessionForIsis;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
 
 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/wicketapp/IsisWicketApplication_Pages.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Pages.java
index 1c81cc4..9f93d1d 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Pages.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Pages.java
@@ -19,7 +19,6 @@
 
 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;
diff --git a/core/webapp/src/main/java/org/apache/isis/webapp/context/IsisWebAppCommonContext.java b/core/webapp/src/main/java/org/apache/isis/webapp/context/IsisWebAppCommonContext.java
index 206895d..d0bb697 100644
--- a/core/webapp/src/main/java/org/apache/isis/webapp/context/IsisWebAppCommonContext.java
+++ b/core/webapp/src/main/java/org/apache/isis/webapp/context/IsisWebAppCommonContext.java
@@ -28,13 +28,13 @@ import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.menu.MenuBarsService;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.runtime.memento.ObjectMemento;
-import org.apache.isis.runtime.memento.ObjectMementoService;
 import org.apache.isis.runtime.system.session.IsisSession;
+import org.apache.isis.webapp.context.memento.ObjectMemento;
+import org.apache.isis.webapp.context.memento.ObjectMementoService;
 
 import lombok.AccessLevel;
 import lombok.Getter;
@@ -93,7 +93,7 @@ public class IsisWebAppCommonContext implements MetaModelContext.Delegating {
     }
     
     public ObjectMemento mementoFor(ManagedObject adapter) {
-        return getMementoService().mementoForAdapter(adapter);
+        return getMementoService().mementoForObject(adapter);
     }
     
     public ObjectMemento mementoFor(RootOid rootOid) {
@@ -141,14 +141,7 @@ public class IsisWebAppCommonContext implements MetaModelContext.Delegating {
             return getCommonContext().getServiceInjector();
         }
         
-        
     }
-
-
-
-    
-
-    
     
     
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMemento.java b/core/webapp/src/main/java/org/apache/isis/webapp/context/memento/ObjectMemento.java
similarity index 85%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMemento.java
rename to core/webapp/src/main/java/org/apache/isis/webapp/context/memento/ObjectMemento.java
index 98cc68c..6622d6f 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMemento.java
+++ b/core/webapp/src/main/java/org/apache/isis/webapp/context/memento/ObjectMemento.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.runtime.memento;
+package org.apache.isis.webapp.context.memento;
 
 import java.io.Serializable;
 import java.util.ArrayList;
@@ -27,9 +27,9 @@ import java.util.Optional;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.commons.collections.Cardinality;
 import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecId;
 
+
 /**
  * @since 2.0
  */
@@ -38,26 +38,22 @@ public interface ObjectMemento extends Serializable {
     String asString();
 
     /**
-     * TODO[2112] outdated
      * Returns a bookmark only if 
-     * {@link org.apache.isis.runtime.memento.ObjectMementoLegacy.RecreateStrategy#LOOKUP} and 
+     * {@link org.apache.isis.runtime.services.memento.ObjectMementoLegacy.RecreateStrategy#LOOKUP} and 
      * {@link #getCardinality() sort} is {@link Cardinality#SCALAR scalar}.
      * Returns {@code null} otherwise. 
      */
     Bookmark asBookmarkIfSupported();
 
     /**
-     * TODO[2112] outdated 
      * Returns a bookmark only if 
-     * {@link org.apache.isis.runtime.memento.ObjectMementoLegacy.RecreateStrategy#LOOKUP} and 
+     * {@link org.apache.isis.runtime.services.memento.ObjectMementoLegacy.RecreateStrategy#LOOKUP} and 
      * {@link #getCardinality() sort} is {@link Cardinality#SCALAR scalar}.
      * Returns {@code null} otherwise. 
      */
     Bookmark asHintingBookmarkIfSupported();
 
     ObjectSpecId getObjectSpecId();
-    
-    ManagedObject reconstructObject(ObjectUnmarshaller objectUnmarshaller);
 
     // -- FACTORIES
 
@@ -82,6 +78,6 @@ public interface ObjectMemento extends Serializable {
         }
         return Optional.ofNullable(((ObjectMementoCollection)memento).unwrapList());
     }
-
-
+    
+    
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoCollection.java b/core/webapp/src/main/java/org/apache/isis/webapp/context/memento/ObjectMementoCollection.java
similarity index 69%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoCollection.java
rename to core/webapp/src/main/java/org/apache/isis/webapp/context/memento/ObjectMementoCollection.java
index 44fdaee..e00e89b 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoCollection.java
+++ b/core/webapp/src/main/java/org/apache/isis/webapp/context/memento/ObjectMementoCollection.java
@@ -16,20 +16,16 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.runtime.memento;
+package org.apache.isis.webapp.context.memento;
 
 import java.util.ArrayList;
-import java.util.stream.Collectors;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecId;
 
 import lombok.Getter;
 import lombok.Value;
-import lombok.val;
 
 /**
  * 
@@ -37,7 +33,7 @@ import lombok.val;
  *
  */
 @Value(staticConstructor = "of")
-final class ObjectMementoCollection implements ObjectMemento {
+public final class ObjectMementoCollection implements ObjectMemento {
 
     private static final long serialVersionUID = 1L;
 
@@ -45,19 +41,6 @@ final class ObjectMementoCollection implements ObjectMemento {
     @Getter(onMethod = @__({@Override})) private final ObjectSpecId objectSpecId;
 
     @Override
-    public ManagedObject reconstructObject(ObjectUnmarshaller objectUnmarshaller) {
-        
-        val listOfPojos = getContainer().stream()
-              .map(memento->memento.reconstructObject(objectUnmarshaller))
-              .filter(_NullSafe::isPresent)
-              .map(ManagedObject::getPojo)
-              .filter(_NullSafe::isPresent)
-              .collect(Collectors.toCollection(ArrayList::new));
-        
-        return objectUnmarshaller.adapterForListOfPojos(listOfPojos);
-    }
-
-    @Override
     public String asString() {
         return getContainer().toString();
     }
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoService.java b/core/webapp/src/main/java/org/apache/isis/webapp/context/memento/ObjectMementoService.java
similarity index 67%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoService.java
rename to core/webapp/src/main/java/org/apache/isis/webapp/context/memento/ObjectMementoService.java
index 8931e4b..02d1bb2 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoService.java
+++ b/core/webapp/src/main/java/org/apache/isis/webapp/context/memento/ObjectMementoService.java
@@ -16,17 +16,12 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.runtime.memento;
+package org.apache.isis.webapp.context.memento;
 
-import java.util.stream.Collectors;
-
-import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecId;
 
-import lombok.val;
-
 /**
  * @since 2.0
  * 
@@ -36,18 +31,11 @@ public interface ObjectMementoService {
 
     ObjectMemento mementoForRootOid(RootOid rootOid);
 
-    ObjectMemento mementoForAdapter(ManagedObject adapter);
+    ObjectMemento mementoForObject(ManagedObject adapter);
 
     ObjectMemento mementoForPojo(Object pojo);
     
-    default ObjectMemento mementoForPojos(Iterable<Object> iterablePojos, ObjectSpecId specId) {
-        val listOfMementos = _NullSafe.stream(iterablePojos)
-                .map(pojo->mementoForPojo(pojo))
-                .collect(Collectors.toList());
-        val memento =
-                ObjectMemento.wrapMementoList(listOfMementos, specId);
-        return memento;
-    }
+    ObjectMemento mementoForPojos(Iterable<Object> iterablePojos, ObjectSpecId specId);
 
     ManagedObject reconstructObject(ObjectMemento memento);