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/02/11 23:39:06 UTC

[isis] branch 2033-IoC updated: ISIS-2033: cleanup, ObjectAdapterMemento's ConcurrencyChecking removed

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

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


The following commit(s) were added to refs/heads/2033-IoC by this push:
     new cfd66c2  ISIS-2033: cleanup, ObjectAdapterMemento's ConcurrencyChecking removed
cfd66c2 is described below

commit cfd66c2ae2b1cf46c6fdc9cd1ed54adeced163ba
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Feb 12 00:38:59 2019 +0100

    ISIS-2033: cleanup, ObjectAdapterMemento's ConcurrencyChecking removed
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-2033
---
 .../model/mementos/ObjectAdapterMemento.java       | 14 ++++-----
 .../wicket/model/models/EntityCollectionModel.java |  6 +---
 .../viewer/wicket/model/models/EntityModel.java    | 23 +++++++--------
 .../viewer/wicket/model/models/ScalarModel.java    |  3 +-
 .../model/models/ScalarModelWithPending.java       |  8 ++---
 .../viewer/wicket/model/models/ValueModel.java     |  4 +--
 .../collection/AssociatedWithActionsHelper.java    |  6 +---
 .../CollectionContentsAsAjaxTablePanel.java        |  6 ++--
 .../entity/icontitle/EntityIconAndTitlePanel.java  | 32 +++++++++-----------
 .../scalars/ScalarPanelSelect2Abstract.java        | 16 +---------
 .../scalars/reference/ReferencePanel.java          | 34 ++++++++++------------
 .../widgets/breadcrumbs/BreadcrumbPanel.java       | 27 ++++++++---------
 .../linkandlabel/ActionLinkFactoryAbstract.java    |  9 +-----
 .../ObjectAdapterMementoProviderAbstract.java      |  7 ++---
 .../viewer/wicket/ui/panels/PanelAbstract.java     |  5 ++++
 15 files changed, 74 insertions(+), 126 deletions(-)

diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java
index 0060aa9..bba9dac 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java
@@ -80,13 +80,13 @@ public interface ObjectAdapterMemento extends Serializable {
 	
 	// -- DEPRECATIONS
 	
-	@Deprecated
-	default ObjectAdapter getObjectAdapter(
-			ConcurrencyChecking noCheck, 
-			PersistenceSession persistenceSession,
-			SpecificationLoader specificationLoader) {
-		return getObjectAdapter();
-	}
+//	@Deprecated
+//	default ObjectAdapter getObjectAdapter(
+//			ConcurrencyChecking noCheck, 
+//			PersistenceSession persistenceSession,
+//			SpecificationLoader specificationLoader) {
+//		return getObjectAdapter();
+//	}
 	
 	@Deprecated
 	default void resetVersion(PersistenceSession persistenceSession, SpecificationLoader specificationLoader) {
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
index bea8f05..f8b33c0 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
@@ -37,7 +37,6 @@ import org.apache.isis.commons.internal.debug._Probe;
 import org.apache.isis.core.commons.factory.InstanceUtil;
 import org.apache.isis.core.commons.lang.ClassUtil;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.collections.sortedby.SortedByFacet;
 import org.apache.isis.core.metamodel.facets.object.paged.PagedFacet;
@@ -164,10 +163,7 @@ UiHintContainer {
             List<ObjectAdapter> load(final EntityCollectionModel entityCollectionModel) {
 
                 final ObjectAdapter adapter = entityCollectionModel.getParentObjectAdapterMemento()
-                		.getObjectAdapter(
-                				ConcurrencyChecking.NO_CHECK, 
-                				entityCollectionModel.getPersistenceSession(),
-                				entityCollectionModel.getSpecificationLoader());
+                		.getObjectAdapter();
 
                 final OneToManyAssociation collection = entityCollectionModel.collectionMemento.getCollection(
                         entityCollectionModel.getSpecificationLoader());
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index c7824e7..b8151fe 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -23,6 +23,7 @@ import java.io.Serializable;
 import java.util.Map;
 
 import org.apache.wicket.Component;
+import org.apache.wicket.model.LoadableDetachableModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 
@@ -85,7 +86,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements Obj
         return pageParameters;
     }
 
-    @Deprecated
+    @Deprecated //TODO [2033] remove
     public void resetVersion() {
         if(getObjectAdapterMemento() == null) {
             return;
@@ -328,17 +329,11 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements Obj
      * when rendering after post-and-redirect.
      * @return
      */
+    @Deprecated //TODO [2033] remove
     public ObjectAdapter load(ConcurrencyChecking concurrencyChecking) {
-        if (adapterMemento == null) {
-            return null;
-        }
-
-        final ObjectAdapter objectAdapter =
-                adapterMemento.getObjectAdapter(concurrencyChecking, getPersistenceSession(), getSpecificationLoader());
-        return objectAdapter;
+        return load();
     }
 
-
     /**
      * Callback from {@link #getObject()}, defaults to loading the object
      * using {@link ConcurrencyChecking#CHECK strict} checking.
@@ -349,7 +344,10 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements Obj
      */
     @Override
     public ObjectAdapter load() {
-        final ObjectAdapter objectAdapter = load(ConcurrencyChecking.CHECK);
+        if (adapterMemento == null) {
+            return null;
+        }
+        final ObjectAdapter objectAdapter = adapterMemento.getObjectAdapter();
         return objectAdapter;
     }
 
@@ -366,7 +364,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements Obj
             final SpecificationLoader specificationLoader) {
         super.setObject(
                 memento != null
-                ? memento.getObjectAdapter(ConcurrencyChecking.CHECK, persistenceSession, specificationLoader)
+                ? memento.getObjectAdapter()
                         : null);
         adapterMemento = memento;
     }
@@ -550,8 +548,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements Obj
         private ObjectAdapter getPendingAdapter() {
             final ObjectAdapterMemento memento = getObject();
             return memento != null
-                    ? memento.getObjectAdapter(ConcurrencyChecking.NO_CHECK,
-                            entityModel.getPersistenceSession(), entityModel.getSpecificationLoader())
+                    ? memento.getObjectAdapter()
                             : null;
         }
 
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index 4235f48..e3c6e03 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -708,8 +708,7 @@ public class ScalarModel extends EntityModel implements LinksProvider, FormExecu
     private void getAndStore(final EntityModel parentEntityModel) {
         final ObjectAdapterMemento parentAdapterMemento = parentEntityModel.getObjectAdapterMemento();
         final OneToOneAssociation property = propertyMemento.getProperty(getSpecificationLoader());
-        final ObjectAdapter parentAdapter = parentAdapterMemento.getObjectAdapter(ConcurrencyChecking.CHECK,
-                getPersistenceSession(), getSpecificationLoader());
+        final ObjectAdapter parentAdapter = parentAdapterMemento.getObjectAdapter();
 
         setObjectFromPropertyIfVisible(ScalarModel.this, property, parentAdapter);
     }
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java
index 4193c65..7e90263 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java
@@ -18,14 +18,12 @@ package org.apache.isis.viewer.wicket.model.models;
 
 import java.io.Serializable;
 
+import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
-import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
-
 /**
  * For widgets that use a <tt>org.wicketstuff.select2.Select2Choice</tt>;
  * synchronizes the {@link Model} of the <tt>Select2Choice</tt>
@@ -78,9 +76,7 @@ public interface ScalarModelWithPending extends Serializable {
                             if (ownerPending != null) {
                                 LOG.debug("setting to pending: {}", ownerPending.toString());
                                 ownerScalarModel.setObject(
-                                        ownerPending.getObjectAdapter(
-                                                ConcurrencyChecking.NO_CHECK,
-                                                ownerScalarModel.getPersistenceSession(), ownerScalarModel.getSpecificationLoader()));
+                                        ownerPending.getObjectAdapter());
                             }
                         }
                     }
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java
index 9c98f57..16210db 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java
@@ -20,7 +20,6 @@
 package org.apache.isis.viewer.wicket.model.models;
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 
@@ -39,8 +38,7 @@ public class ValueModel extends ModelAbstract<ObjectAdapter> {
 
     @Override
     protected ObjectAdapter load() {
-        return adapterMemento.getObjectAdapter(ConcurrencyChecking.NO_CHECK, getPersistenceSession(),
-                getSpecificationLoader());
+        return adapterMemento.getObjectAdapter();
     }
 
     // //////////////////////////////////////
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/AssociatedWithActionsHelper.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/AssociatedWithActionsHelper.java
index c10ad2e..8773f23 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/AssociatedWithActionsHelper.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/AssociatedWithActionsHelper.java
@@ -27,7 +27,6 @@ import java.util.stream.Stream;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.spec.ActionType;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
@@ -69,10 +68,7 @@ public class AssociatedWithActionsHelper implements Serializable {
 
     private ObjectSpecification getObjectSpecification(final IsisSessionFactory isisSessionFactory) {
         final ObjectAdapterMemento parentOam = collectionModel.getParentObjectAdapterMemento();
-        final ObjectAdapter parentAdapter = parentOam.getObjectAdapter(
-                ConcurrencyChecking.NO_CHECK,
-                isisSessionFactory.getCurrentSession().getPersistenceSession(),
-                isisSessionFactory.getSpecificationLoader());
+        final ObjectAdapter parentAdapter = parentOam.getObjectAdapter();
         return parentAdapter.getSpecification();
     }
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
index 4dc7dda..624ddf8 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
@@ -214,8 +214,7 @@ extends PanelAbstract<EntityCollectionModel> implements CollectionCountProvider
 
         final ObjectSpecification parentSpecIfAny =
                 getModel().isParented()
-                ? getModel().getParentObjectAdapterMemento().getObjectAdapter(ConcurrencyChecking.NO_CHECK,
-                        getPersistenceSession(), getSpecificationLoader()).getSpecification()
+                ? getModel().getParentObjectAdapterMemento().getObjectAdapter().getSpecification()
                         : null;
 
         final Predicate<ObjectAssociation> predicate = ObjectAssociation.Predicates.PROPERTIES
@@ -274,8 +273,7 @@ extends PanelAbstract<EntityCollectionModel> implements CollectionCountProvider
 
         final ObjectAdapterMemento parentObjectAdapterMemento = getModel().getParentObjectAdapterMemento();
         if(parentObjectAdapterMemento != null) {
-            final ObjectAdapter parentObjectAdapter = parentObjectAdapterMemento
-                    .getObjectAdapter(ConcurrencyChecking.NO_CHECK, getPersistenceSession(), getSpecificationLoader());
+            final ObjectAdapter parentObjectAdapter = parentObjectAdapterMemento.getObjectAdapter();
             final Object parent = parentObjectAdapter.getPojo();
             final String collectionId = getModel().getCollectionMemento().getId();
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
index 7e5839f..d0a5a79 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
@@ -21,20 +21,9 @@ package org.apache.isis.viewer.wicket.ui.components.entity.icontitle;
 
 import javax.inject.Inject;
 
-import org.apache.wicket.Page;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.image.Image;
-import org.apache.wicket.markup.html.link.AbstractLink;
-import org.apache.wicket.markup.html.link.BookmarkablePageLink;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.request.resource.ResourceReference;
-
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.object.projection.ProjectionFacet;
-import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
@@ -48,6 +37,14 @@ 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.wicket.Page;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.image.Image;
+import org.apache.wicket.markup.html.link.AbstractLink;
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.resource.ResourceReference;
 
 /**
  * {@link PanelAbstract Panel} representing the icon and title of an entity,
@@ -222,8 +219,9 @@ public class EntityIconAndTitlePanel extends PanelAbstract<ObjectAdapterModel> {
     public ObjectAdapter getContextAdapterIfAny() {
         ObjectAdapterModel model = getModel();
         ObjectAdapterMemento contextAdapterMementoIfAny = model.getContextAdapterIfAny();
-        return contextAdapterMementoIfAny != null? contextAdapterMementoIfAny.getObjectAdapter(ConcurrencyChecking.NO_CHECK,
-                isisSessionFactory.getCurrentSession().getPersistenceSession(), isisSessionFactory.getSpecificationLoader()): null;
+        return contextAdapterMementoIfAny != null
+        		? contextAdapterMementoIfAny.getObjectAdapter()
+        				: null;
     }
 
     static String abbreviated(final String str, final int maxLength) {
@@ -250,17 +248,13 @@ public class EntityIconAndTitlePanel extends PanelAbstract<ObjectAdapterModel> {
     // Dependency Injection
     // ///////////////////////////////////////////////
 
-    @Inject
-    private transient IsisSessionFactory isisSessionFactory;
 
-    @Inject
-    private ImageResourceCache imageCache;
+    @Inject private ImageResourceCache imageCache;
     protected ImageResourceCache getImageCache() {
         return imageCache;
     }
 
-    @Inject
-    private WicketViewerSettings settings;
+    @Inject private WicketViewerSettings settings;
     @Override
     protected WicketViewerSettings getSettings() {
         return settings;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
index df3b1a4..05922bc 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
@@ -212,9 +212,7 @@ public abstract class ScalarPanelSelect2Abstract extends ScalarPanelAbstract2 {
                 proposedValue = (ObjectAdapterMemento) proposedValueObj;
             }
 
-            final ObjectAdapter proposedAdapter = proposedValue.getObjectAdapter(
-                    ConcurrencyChecking.NO_CHECK,
-                    getPersistenceSession(), getSpecificationLoader());
+            final ObjectAdapter proposedAdapter = proposedValue.getObjectAdapter();
 
             final String reasonIfAny = scalarModel.validate(proposedAdapter);
             if (reasonIfAny != null) {
@@ -224,17 +222,5 @@ public abstract class ScalarPanelSelect2Abstract extends ScalarPanelAbstract2 {
             }
         }
 
-        PersistenceSession getPersistenceSession() {
-            return getIsisSessionFactory().getCurrentSession().getPersistenceSession();
-        }
-
-        SpecificationLoader getSpecificationLoader() {
-            return getIsisSessionFactory().getSpecificationLoader();
-        }
-
-        IsisSessionFactory getIsisSessionFactory() {
-            return IsisContext.getSessionFactory();
-        }
-
     }
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index f875ecb..ee24f3b 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -23,20 +23,8 @@ import java.util.List;
 
 import javax.inject.Inject;
 
-import org.apache.wicket.Component;
-import org.apache.wicket.MarkupContainer;
-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.markup.html.form.FormComponent;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
-import org.wicketstuff.select2.ChoiceProvider;
-import org.wicketstuff.select2.Settings;
-
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
@@ -58,6 +46,16 @@ 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.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+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.markup.html.form.FormComponent;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.wicketstuff.select2.ChoiceProvider;
+import org.wicketstuff.select2.Settings;
 
 /**
  * Panel for rendering scalars which of are of reference type (as opposed to
@@ -171,9 +169,7 @@ public class ReferencePanel extends ScalarPanelSelect2Abstract implements PanelW
                 if(oam == null) {
                     return null;
                 }
-                ObjectAdapter objectAdapter = oam
-                        .getObjectAdapter(ConcurrencyChecking.NO_CHECK, getPersistenceSession(),
-                                getSpecificationLoader());
+                ObjectAdapter objectAdapter = oam.getObjectAdapter();
                 return objectAdapter != null ? objectAdapter.titleString(null) : null;
             }
 
@@ -394,8 +390,9 @@ public class ReferencePanel extends ScalarPanelSelect2Abstract implements PanelW
                 select2.getModel().setObject(convertedInput);
             }
 
-            final ObjectAdapter adapter = convertedInput!=null?convertedInput.getObjectAdapter(ConcurrencyChecking.NO_CHECK,
-                    getPersistenceSession(), getSpecificationLoader()):null;
+            final ObjectAdapter adapter = convertedInput!=null
+            		? convertedInput.getObjectAdapter()
+            				:null;
             getModel().setObject(adapter);
         }
 
@@ -452,8 +449,7 @@ public class ReferencePanel extends ScalarPanelSelect2Abstract implements PanelW
 
     // //////////////////////////////////////
 
-    @Inject
-    WicketViewerSettings wicketViewerSettings;
+    @Inject WicketViewerSettings wicketViewerSettings;
 
 }
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
index ecc0ee2..813ec5d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
@@ -19,9 +19,15 @@ package org.apache.isis.viewer.wicket.ui.components.widgets.breadcrumbs;
 import java.util.Collection;
 import java.util.List;
 
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-
+import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
+import org.apache.isis.core.security.authentication.MessageBroker;
+import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
+import org.apache.isis.viewer.wicket.model.models.EntityModel;
+import org.apache.isis.viewer.wicket.ui.errors.JGrowlUtil;
+import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
+import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
 import org.apache.wicket.model.IModel;
@@ -32,16 +38,8 @@ import org.wicketstuff.select2.Response;
 import org.wicketstuff.select2.Select2Choice;
 import org.wicketstuff.select2.Settings;
 
-import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
-import org.apache.isis.core.metamodel.adapter.oid.Oid;
-import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-import org.apache.isis.core.security.authentication.MessageBroker;
-import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
-import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.ui.errors.JGrowlUtil;
-import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
-import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
 
 public class BreadcrumbPanel extends PanelAbstract<IModel<Void>> {
 
@@ -76,8 +74,7 @@ public class BreadcrumbPanel extends PanelAbstract<IModel<Void>> {
             }
 
             private String titleFor(final EntityModel model) {
-                return model.getObjectAdapterMemento().getObjectAdapter(ConcurrencyChecking.NO_CHECK,
-                        model.getPersistenceSession(), model.getSpecificationLoader()).titleString(null);
+                return model.getObjectAdapterMemento().getObjectAdapter().titleString(null);
             }
 
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
index a3ec9ce..9cec449 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
@@ -98,11 +98,6 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
 
                 if(toggledMementosProviderIfAny != null) {
 
-                    final PersistenceSession persistenceSession = getIsisSessionFactory()
-                            .getCurrentSession().getPersistenceSession();
-                    final SpecificationLoader specificationLoader =
-                            getIsisSessionFactory().getSpecificationLoader();
-
                     final List<ObjectAdapterMemento> selectedMementos =
                             toggledMementosProviderIfAny.getToggles();
 
@@ -111,9 +106,7 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
                                     if(input == null) {
                                         return null;
                                     }
-                                    final ObjectAdapter objectAdapter = input.getObjectAdapter(
-                                            ConcurrencyChecking.NO_CHECK,
-                                            persistenceSession, specificationLoader);
+                                    final ObjectAdapter objectAdapter = input.getObjectAdapter();
                                     return objectAdapter != null ? objectAdapter.getPojo() : null;
                             })
                             .filter(_NullSafe::isPresent)
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
index 65fd70b..fbfcb3a 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
@@ -59,9 +59,7 @@ public abstract class ObjectAdapterMementoProviderAbstract extends ChoiceProvide
             return NULL_DISPLAY_TEXT;
         }
 
-        final ObjectAdapter objectAdapter =
-                choice.getObjectAdapter(
-                        ConcurrencyChecking.NO_CHECK, getPersistenceSession(), getSpecificationLoader());
+        final ObjectAdapter objectAdapter = choice.getObjectAdapter();
         final IConverter<Object> converter = findConverter(objectAdapter);
         return converter != null
                 ? converter.convertToString(objectAdapter.getPojo(), getLocale())
@@ -108,8 +106,7 @@ public abstract class ObjectAdapterMementoProviderAbstract extends ChoiceProvide
             matches.addAll(choicesMementos);
         } else {
             for (ObjectAdapterMemento candidate : choicesMementos) {
-                ObjectAdapter objectAdapter = candidate.getObjectAdapter(ConcurrencyChecking.NO_CHECK,
-                        getPersistenceSession(), getSpecificationLoader());
+                ObjectAdapter objectAdapter = candidate.getObjectAdapter();
                 String title = objectAdapter.titleString(objectAdapter);
                 if (title.toLowerCase().contains(term.toLowerCase())) {
                     matches.add(candidate);
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
index b5ca626..389538a 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
@@ -27,6 +27,7 @@ import org.apache.wicket.model.IModel;
 
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.inject.ServiceInjector;
+import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -177,6 +178,10 @@ public abstract class PanelAbstract<T extends IModel<?>> extends Panel {
         return IsisContext.getServiceInjector();
     }
 
+    protected ServiceRegistry getServiceRegistry() {
+        return IsisContext.getServiceRegistry();
+    }
+    
     protected IsisSessionFactory getIsisSessionFactory() {
         return IsisContext.getSessionFactory();
     }