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/12 12:39:14 UTC
[isis] branch 2033-IoC updated: ISIS-2033: further remove uses of
PersistenceSession
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 1d1db68 ISIS-2033: further remove uses of PersistenceSession
1d1db68 is described below
commit 1d1db682068f906b50379528c97fe66ac5fd2934
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Feb 12 12:13:53 2019 +0100
ISIS-2033: further remove uses of PersistenceSession
Task-Url: https://issues.apache.org/jira/browse/ISIS-2033
---
.../java/org/apache/isis/applib/value/Blob.java | 3 +-
.../java/org/apache/isis/applib/value/Clob.java | 3 +-
.../isis/applib/value/NamedWithMimeType.java | 4 +-
.../core/runtime/system/context/IsisContext.java | 15 ++++++
.../wicket/model/mementos/CollectionMemento.java | 14 +++---
.../model/mementos/ObjectAdapterMemento.java | 8 +--
.../wicket/model/mementos/PropertyMemento.java | 14 +++---
.../viewer/wicket/model/models/ActionModel.java | 20 ++++----
.../wicket/model/models/EntityCollectionModel.java | 19 +++----
.../viewer/wicket/model/models/EntityModel.java | 22 +++-----
.../viewer/wicket/model/models/ModelAbstract.java | 12 ++---
.../viewer/wicket/model/models/ScalarModel.java | 15 ++++--
.../model/models/ScalarModelWithMultiPending.java | 12 ++---
.../models/whereami/WhereAmIModelDefault.java | 12 +++--
.../actionresponse/ActionResultResponseType.java | 27 +++++-----
.../actionmenu/serviceactions/CssMenuItem.java | 28 ++++-------
.../serviceactions/ServiceActionUtil.java | 30 +++++------
.../columns/ObjectAdapterPropertyColumn.java | 2 +-
.../components/entity/fieldset/PropertyGroup.java | 4 +-
.../ui/components/scalars/ScalarPanelAbstract.java | 8 ---
.../scalars/ScalarPanelTextFieldAbstract.java | 33 ++++++------
.../scalars/ScalarPanelTextFieldNumeric.java | 3 +-
.../ui/components/scalars/TextFieldValueModel.java | 11 ++--
.../isisapplib/IsisBlobOrClobPanelAbstract.java | 28 +++++------
.../components/scalars/primitive/BooleanPanel.java | 21 ++++----
.../components/tree/IsisToWicketTreeAdapter.java | 58 +++++++++++-----------
.../ObjectAdapterMementoProviderAbstract.java | 19 +++----
.../wicket/ui/panels/FormExecutorDefault.java | 4 --
.../viewer/wicket/ui/panels/PanelAbstract.java | 7 ++-
29 files changed, 212 insertions(+), 244 deletions(-)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/value/Blob.java b/core/applib/src/main/java/org/apache/isis/applib/value/Blob.java
index ca60faa..79f0b48 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/value/Blob.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/value/Blob.java
@@ -21,14 +21,13 @@ package org.apache.isis.applib.value;
import java.io.IOException;
import java.io.OutputStream;
-import java.io.Serializable;
import java.util.Arrays;
import java.util.Objects;
import javax.activation.MimeType;
import javax.activation.MimeTypeParseException;
-public final class Blob implements NamedWithMimeType, Serializable {
+public final class Blob implements NamedWithMimeType {
/**
* Computed for state:
diff --git a/core/applib/src/main/java/org/apache/isis/applib/value/Clob.java b/core/applib/src/main/java/org/apache/isis/applib/value/Clob.java
index e694577..b326950 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/value/Clob.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/value/Clob.java
@@ -20,14 +20,13 @@
package org.apache.isis.applib.value;
import java.io.IOException;
-import java.io.Serializable;
import java.io.Writer;
import java.util.Objects;
import javax.activation.MimeType;
import javax.activation.MimeTypeParseException;
-public final class Clob implements NamedWithMimeType, Serializable {
+public final class Clob implements NamedWithMimeType {
private static final long serialVersionUID = 8694189924062378527L;
diff --git a/core/applib/src/main/java/org/apache/isis/applib/value/NamedWithMimeType.java b/core/applib/src/main/java/org/apache/isis/applib/value/NamedWithMimeType.java
index db2493a..8910174 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/value/NamedWithMimeType.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/value/NamedWithMimeType.java
@@ -19,9 +19,11 @@
package org.apache.isis.applib.value;
+import java.io.Serializable;
+
import javax.activation.MimeType;
-public interface NamedWithMimeType {
+public interface NamedWithMimeType extends Serializable {
public String getName();
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
index 418a117..1f3de95 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
@@ -25,6 +25,7 @@ import java.util.Objects;
import java.util.Optional;
import java.util.TreeMap;
import java.util.concurrent.CompletableFuture;
+import java.util.function.Function;
import java.util.function.Supplier;
import org.apache.isis.applib.AppManifest;
@@ -36,6 +37,8 @@ import org.apache.isis.commons.internal.context._Context;
import org.apache.isis.config.ConfigurationConstants;
import org.apache.isis.config.IsisConfiguration;
import org.apache.isis.config.internal._Config;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelDeficiencies;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelInvalidException;
@@ -183,6 +186,7 @@ public interface IsisContext {
}
/**
+ * TODO [2033] decouple from JDO
* @return framework's current PersistenceSession (if any)
* @throws IllegalStateException - if IsisSessionFactory not resolvable
*/
@@ -192,6 +196,7 @@ public interface IsisContext {
}
/**
+ * TODO [2033] decouple from JDO
* @return framework's current IsisTransactionManager (if any)
* @throws IllegalStateException - if IsisSessionFactory not resolvable
*/
@@ -200,6 +205,16 @@ public interface IsisContext {
.map(PersistenceSession::getTransactionManager);
}
+ //TODO [2033] decouple from JDO
+ public static Function<Object, ObjectAdapter> pojoToAdapter() {
+ return getPersistenceSession().get()::adapterFor;
+ }
+
+ //TODO [2033] decouple from JDO
+ public static Function<RootOid, ObjectAdapter> rootOidToAdapter() {
+ return getPersistenceSession().get()::adapterFor;
+ }
+
/**
* @return framework's current AuthenticationSession (if any)
* @throws IllegalStateException - if IsisSessionFactory not resolvable
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/CollectionMemento.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/CollectionMemento.java
index 32ceba3..a1bc24b 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/CollectionMemento.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/CollectionMemento.java
@@ -25,7 +25,9 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
+import org.apache.isis.core.runtime.system.context.IsisContext;
+
+import lombok.val;
/**
* {@link Serializable} representation of a {@link OneToManyAssociation} (a
@@ -36,9 +38,9 @@ public class CollectionMemento implements Serializable {
private static final long serialVersionUID = 1L;
private static ObjectSpecification owningSpecFor(
- final OneToManyAssociation association,
- final IsisSessionFactory isisSessionFactory) {
- final SpecificationLoader specificationLoader = isisSessionFactory.getSpecificationLoader();
+ final OneToManyAssociation association) {
+
+ val specificationLoader = IsisContext.getSpecificationLoader();
return specificationLoader.loadSpecification(association.getIdentifier().toClassIdentityString());
}
@@ -49,8 +51,8 @@ public class CollectionMemento implements Serializable {
private transient OneToManyAssociation collection;
- public CollectionMemento(final OneToManyAssociation collection, final IsisSessionFactory isisSessionFactory) {
- this(owningSpecFor(collection, isisSessionFactory).getSpecId(), collection.getIdentifier().toNameIdentityString(), collection);
+ public CollectionMemento(final OneToManyAssociation collection) {
+ this(owningSpecFor(collection).getSpecId(), collection.getIdentifier().toNameIdentityString(), collection);
}
private CollectionMemento(final ObjectSpecId owningType, final String id, final OneToManyAssociation collection) {
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 bba9dac..609578e 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
@@ -25,16 +25,10 @@ import java.util.ArrayList;
import java.util.Collection;
import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.commons.internal.debug._Probe;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-import org.apache.isis.core.metamodel.spec.ManagedObject.SimpleManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.runtime.system.context.managers.Converters;
-import org.apache.isis.core.runtime.system.context.managers.UniversalObjectManager;
-import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
import org.apache.isis.core.runtime.system.session.IsisSession;
import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento_Legacy.Sort;
import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento_Legacy.Type;
@@ -89,7 +83,7 @@ public interface ObjectAdapterMemento extends Serializable {
// }
@Deprecated
- default void resetVersion(PersistenceSession persistenceSession, SpecificationLoader specificationLoader) {
+ default void resetVersion() {
// no longer supported
}
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PropertyMemento.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PropertyMemento.java
index 8dc1a05..47cb086 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PropertyMemento.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PropertyMemento.java
@@ -25,17 +25,18 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
+import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
+import lombok.val;
+
public class PropertyMemento implements Serializable {
private static final long serialVersionUID = 1L;
private static ObjectSpecification owningSpecFor(
- final OneToOneAssociation property,
- final IsisSessionFactory isisSessionFactory) {
- final SpecificationLoader specificationLoader = isisSessionFactory.getSpecificationLoader();
+ final OneToOneAssociation property) {
+ val specificationLoader = IsisContext.getSpecificationLoader();
return specificationLoader.loadSpecification(property.getIdentifier().toClassIdentityString());
}
@@ -43,10 +44,9 @@ public class PropertyMemento implements Serializable {
private final String identifier;
private final ObjectSpecId specId;
- public PropertyMemento(
- final OneToOneAssociation property, final IsisSessionFactory isisSessionFactory) {
+ public PropertyMemento(final OneToOneAssociation property) {
this(
- owningSpecFor(property, isisSessionFactory).getSpecId(),
+ owningSpecFor(property).getSpecId(),
property.getIdentifier().toNameIdentityString(),
property.getSpecification().getSpecId()
);
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index 8d88624..baeb85a 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -39,6 +39,8 @@ import org.apache.wicket.util.resource.IResourceStream;
import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
import org.apache.wicket.util.resource.StringResourceStream;
+import lombok.val;
+
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.BookmarkPolicy;
import org.apache.isis.applib.annotation.PromptStyle;
@@ -69,6 +71,7 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.common.PageParametersUtils;
import org.apache.isis.viewer.wicket.model.mementos.ActionMemento;
import org.apache.isis.viewer.wicket.model.mementos.ActionParameterMemento;
@@ -391,8 +394,9 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> implements For
}
try {
- final RootOid oid = RootOid.deStringEncoded(encoded);
- return getPersistenceSession().adapterFor(oid);
+ val rootOid = RootOid.deStringEncoded(encoded);
+ val rootOidToAdapter = IsisContext.rootOidToAdapter();
+ return rootOidToAdapter.apply(rootOid);
} catch (final Exception e) {
return null;
}
@@ -466,11 +470,13 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> implements For
final Stream<RoutingService> routingServices = getServicesInjector().streamServices(RoutingService.class);
final Object result = resultAdapter != null ? resultAdapter.getPojo() : null;
+ val pojoToAdapter = IsisContext.pojoToAdapter();
+
return routingServices
.filter(routingService->routingService.canRoute(result))
.map(routingService->routingService.route(result))
.filter(_NullSafe::isPresent)
- .map(routeTo->getPersistenceSession().adapterFor(routeTo))
+ .map(pojoToAdapter)
.filter(_NullSafe::isPresent)
.findFirst()
.orElse(resultAdapter);
@@ -719,13 +725,5 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> implements For
this.inlinePromptContext = inlinePromptContext;
}
- //////////////////////////////////////////////////
- // Dependencies (from context)
- //////////////////////////////////////////////////
-
-
- ServiceInjector getServicesInjector() {
- return getIsisSessionFactory().getServiceInjector();
- }
}
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 f8b33c0..420104b 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
@@ -47,7 +47,6 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.context.managers.UniversalObjectManager;
-import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
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;
@@ -176,13 +175,14 @@ UiHintContainer {
if(sortedBy != null) {
@SuppressWarnings("unchecked")
final Comparator<Object> comparator = (Comparator<Object>) InstanceUtil.createInstance(sortedBy);
- entityCollectionModel.getIsisSessionFactory().getServiceInjector().injectServicesInto(comparator);
+ IsisContext.getServiceInjector().injectServicesInto(comparator);
Collections.sort(objectList, comparator);
}
+
+ val pojoToAdapter = IsisContext.pojoToAdapter();
final List<ObjectAdapter> adapterList =
- _Lists.map(objectList,
- entityCollectionModel.getPersistenceSession()::adapterFor);
+ _Lists.map(objectList, pojoToAdapter);
return adapterList;
}
@@ -240,8 +240,7 @@ UiHintContainer {
* Factory.
*/
public static EntityCollectionModel createStandalone(
- final ObjectAdapter collectionAsAdapter,
- final IsisSessionFactory sessionFactory) {
+ final ObjectAdapter collectionAsAdapter) {
// dynamically determine the spec of the elements
// (ie so a List<Object> can be rendered according to the runtime type of its elements,
@@ -253,8 +252,10 @@ UiHintContainer {
.map(ObjectAdapterMemento::ofPojo)
.collect(Collectors.toList());
+ val specificationLoader = IsisContext.getSpecificationLoader();
+
final ObjectSpecification elementSpec = lowestCommonSuperclassFinder.getLowestCommonSuperclass()
- .map(sessionFactory.getSpecificationLoader()::loadSpecification)
+ .map(specificationLoader::loadSpecification)
.orElse(collectionAsAdapter.getSpecification().getElementSpecification());
final Class<?> elementType;
@@ -360,7 +361,7 @@ UiHintContainer {
final OneToManyAssociation collection = collectionFor(entityModel.getObjectAdapterMemento(), getLayoutData());
this.typeOf = forName(collection.getSpecification());
- this.collectionMemento = new CollectionMemento(collection, entityModel.getIsisSessionFactory());
+ this.collectionMemento = new CollectionMemento(collection);
this.pageSize = pageSize(collection.getFacet(PagedFacet.class), PAGE_SIZE_DEFAULT_FOR_PARENTED);
@@ -379,7 +380,7 @@ UiHintContainer {
}
final String collectionId = collectionLayoutData.getId();
final ObjectSpecId objectSpecId = parentObjectAdapterMemento.getObjectSpecId();
- final ObjectSpecification objectSpec = getIsisSessionFactory().getSpecificationLoader().lookupBySpecId(objectSpecId);
+ final ObjectSpecification objectSpec = IsisContext.getSpecificationLoader().lookupBySpecId(objectSpecId);
final OneToManyAssociation otma = (OneToManyAssociation) objectSpec.getAssociation(collectionId);
return otma;
}
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 d4f46b5..a8858ff 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
@@ -22,11 +22,6 @@ package org.apache.isis.viewer.wicket.model.models;
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;
-
import org.apache.isis.applib.annotation.BookmarkPolicy;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.layout.component.CollectionLayoutData;
@@ -49,6 +44,9 @@ import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
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.wicket.Component;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
/**
* Backing model to represent a {@link ObjectAdapter}.
@@ -57,7 +55,8 @@ import org.apache.isis.viewer.wicket.model.util.ComponentHintKey;
* So that the model is {@link Serializable}, the {@link ObjectAdapter} is
* stored as a {@link ObjectAdapterMemento}.
*/
-public class EntityModel extends BookmarkableModel<ObjectAdapter> implements ObjectAdapterModel, UiHintContainer {
+public class EntityModel extends BookmarkableModel<ObjectAdapter>
+implements ObjectAdapterModel, UiHintContainer {
private static final long serialVersionUID = 1L;
@@ -91,9 +90,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements Obj
if(getObjectAdapterMemento() == null) {
return;
}
- final PersistenceSession persistenceSession = getPersistenceSession();
- final SpecificationLoader specificationLoader = getSpecificationLoader();
- getObjectAdapterMemento().resetVersion(persistenceSession, specificationLoader);
+ getObjectAdapterMemento().resetVersion();
}
public enum RenderingHint {
@@ -358,10 +355,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements Obj
adapterMemento = ObjectAdapterMemento.ofAdapter(adapter);
}
- public void setObjectMemento(
- final ObjectAdapterMemento memento,
- final PersistenceSession persistenceSession,
- final SpecificationLoader specificationLoader) {
+ public void setObjectMemento(final ObjectAdapterMemento memento) {
super.setObject(
memento != null
? memento.getObjectAdapter()
@@ -397,7 +391,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements Obj
* {@link #getObject() entity}.
*/
public void resetPropertyModels() {
- adapterMemento.resetVersion(getPersistenceSession(), getSpecificationLoader());
+ adapterMemento.resetVersion();
for (final PropertyMemento pm : propertyScalarModels.keySet()) {
OneToOneAssociation otoa = pm.getProperty(getSpecificationLoader());
final ScalarModel scalarModel = propertyScalarModels.get(pm);
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java
index a409626..5e13cd7 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java
@@ -19,6 +19,7 @@
package org.apache.isis.viewer.wicket.model.models;
+import org.apache.isis.applib.services.inject.ServiceInjector;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
@@ -48,7 +49,7 @@ public abstract class ModelAbstract<T> extends LoadableDetachableModel<T> {
// //////////////////////////////////////////////////////////////
protected AuthenticationSession getAuthenticationSession() {
- return getCurrentSession().getAuthenticationSession();
+ return IsisContext.getAuthenticationSession().orElse(null);
}
@Deprecated //TODO [2033] should not be needed in viewer, improve API!
@@ -60,14 +61,13 @@ public abstract class ModelAbstract<T> extends LoadableDetachableModel<T> {
return IsisSession.currentIfAny();
}
- @Deprecated //TODO [2033] should not be needed in viewer, improve API!
- public IsisSessionFactory getIsisSessionFactory() {
- return IsisContext.getSessionFactory();
- }
-
public SpecificationLoader getSpecificationLoader() {
return IsisContext.getSpecificationLoader();
}
+
+ protected ServiceInjector getServicesInjector() {
+ return IsisContext.getServiceInjector();
+ }
}
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 e3c6e03..4c08d70 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
@@ -51,6 +51,7 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
+import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.security.authentication.AuthenticationSession;
import org.apache.isis.core.security.authentication.AuthenticationSessionProvider;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
@@ -60,6 +61,8 @@ import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
import org.apache.isis.viewer.wicket.model.mementos.PropertyMemento;
import org.apache.isis.viewer.wicket.model.mementos.SpecUtils;
+import lombok.val;
+
/**
* Represents a scalar of an entity, either a {@link Kind#PROPERTY property} or
* a {@link Kind#PARAMETER parameter}.
@@ -816,7 +819,7 @@ public class ScalarModel extends EntityModel implements LinksProvider, FormExecu
.collect(Collectors.toList());
final ObjectAdapterMemento memento =
ObjectAdapterMemento.ofMementoList(listOfMementos, getTypeOfSpecification().getSpecId());
- super.setObjectMemento(memento, getPersistenceSession(), getSpecificationLoader()); // associated value
+ super.setObjectMemento(memento); // associated value
} else {
super.setObject(adapter); // associated value
}
@@ -855,8 +858,9 @@ public class ScalarModel extends EntityModel implements LinksProvider, FormExecu
*/
@Override
protected AuthenticationSession getAuthenticationSession() {
- return getPersistenceSession().getServiceInjector()
- .lookupServiceElseFail(AuthenticationSessionProvider.class).getAuthenticationSession();
+ return IsisContext.getServiceRegistry()
+ .lookupServiceElseFail(AuthenticationSessionProvider.class)
+ .getAuthenticationSession();
}
public boolean isRequired() {
@@ -1069,8 +1073,9 @@ public class ScalarModel extends EntityModel implements LinksProvider, FormExecu
final Object viewModel = adapter.getPojo();
final boolean cloneable = recreatableObjectFacet.isCloneable(viewModel);
if(cloneable) {
- final Object newViewModel = recreatableObjectFacet.clone(viewModel);
- adapter = getPersistenceSession().adapterFor(newViewModel);
+ val newViewModelPojo = recreatableObjectFacet.clone(viewModel);
+ val pojoToAdapter = IsisContext.pojoToAdapter();
+ adapter = pojoToAdapter.apply(newViewModelPojo);
}
}
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
index 518cbc3..5ff91e5 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
@@ -19,16 +19,13 @@ package org.apache.isis.viewer.wicket.model.models;
import java.io.Serializable;
import java.util.ArrayList;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
+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.spec.ObjectSpecId;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
-import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
-
/**
* For widgets that use a <tt>org.wicketstuff.select2.Select2MultiChoice</tt>;
* synchronizes the {@link Model} of the <tt>Select2MultiChoice</tt>
@@ -76,8 +73,6 @@ public interface ScalarModelWithMultiPending extends Serializable {
owner.setMultiPending(adapterMemento);
final ScalarModel ownerScalarModel = owner.getScalarModel();
- final PersistenceSession persistenceSession = ownerScalarModel.getPersistenceSession();
- final SpecificationLoader specificationLoader = ownerScalarModel.getSpecificationLoader();
if(adapterMemento == null) {
ownerScalarModel.setObject(null);
@@ -87,8 +82,7 @@ public interface ScalarModelWithMultiPending extends Serializable {
LOG.debug("setting to pending: {}", ownerPending.toString());
final ObjectSpecId objectSpecId = ownerScalarModel.getTypeOfSpecification().getSpecId();
ownerScalarModel.setObjectMemento(
- ObjectAdapterMemento.ofMementoList(adapterMemento, objectSpecId),
- persistenceSession, specificationLoader);
+ ObjectAdapterMemento.ofMementoList(adapterMemento, objectSpecId));
}
}
}
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/whereami/WhereAmIModelDefault.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/whereami/WhereAmIModelDefault.java
index f148936..eaed58c 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/whereami/WhereAmIModelDefault.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/whereami/WhereAmIModelDefault.java
@@ -28,6 +28,8 @@ import org.apache.isis.core.metamodel.util.pchain.ParentChain;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
+import lombok.val;
+
/**
*
* @since 2.0.0
@@ -45,12 +47,12 @@ class WhereAmIModelDefault implements WhereAmIModel {
public WhereAmIModelDefault(EntityModel startOfChain) {
this.startOfChain = startOfChain;
- overrideFromConfigIfNew(startOfChain.getPersistenceSession().getConfiguration());
+ overrideFromConfigIfNew(IsisContext.getConfiguration());
final ObjectAdapter adapter = startOfChain.getObject();
final Object startNode = adapter.getPojo();
- ParentChain.of(IsisContext.getSessionFactory().getSpecificationLoader()::loadSpecification)
+ ParentChain.of(IsisContext.getSpecificationLoader()::loadSpecification)
.streamParentChainOf(startNode, maxChainLength)
.forEach(reversedChainOfParents::addFirst);
}
@@ -80,9 +82,9 @@ class WhereAmIModelDefault implements WhereAmIModel {
// -- HELPER
private EntityModel toEntityModel(Object domainObject) {
- return new EntityModel(
- startOfChain.getPersistenceSession()
- .adapterFor(domainObject) );
+ val pojoToAdapter = IsisContext.pojoToAdapter();
+ val objectAdapter = pojoToAdapter.apply(domainObject);
+ return new EntityModel(objectAdapter);
}
private void overrideFromConfigIfNew(IsisConfiguration configuration) {
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java
index b28b3e1..579b730 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java
@@ -21,9 +21,6 @@ import java.util.Collection;
import java.util.List;
import java.util.concurrent.Callable;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.request.IRequestHandler;
-
import org.apache.isis.applib.value.Blob;
import org.apache.isis.applib.value.Clob;
import org.apache.isis.commons.internal.collections._Lists;
@@ -32,7 +29,7 @@ import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
+import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.models.ActionModel;
import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
import org.apache.isis.viewer.wicket.model.models.ValueModel;
@@ -41,12 +38,16 @@ import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
import org.apache.isis.viewer.wicket.ui.pages.standalonecollection.StandaloneCollectionPage;
import org.apache.isis.viewer.wicket.ui.pages.value.ValuePage;
import org.apache.isis.viewer.wicket.ui.pages.voidreturn.VoidReturnPage;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.request.IRequestHandler;
+
+import lombok.val;
public enum ActionResultResponseType {
OBJECT {
@Override
public ActionResultResponse interpretResult(final ActionModel model, final AjaxRequestTarget target, final ObjectAdapter resultAdapter) {
- final ObjectAdapter actualAdapter = determineActualAdapter(resultAdapter, model.getIsisSessionFactory());
+ final ObjectAdapter actualAdapter = determineActualAdapter(resultAdapter);
return toEntityPage(model, actualAdapter, null);
}
@@ -59,7 +60,7 @@ public enum ActionResultResponseType {
COLLECTION {
@Override
public ActionResultResponse interpretResult(final ActionModel actionModel, final AjaxRequestTarget target, final ObjectAdapter resultAdapter) {
- final EntityCollectionModel collectionModel = EntityCollectionModel.createStandalone(resultAdapter, actionModel.getIsisSessionFactory());
+ final EntityCollectionModel collectionModel = EntityCollectionModel.createStandalone(resultAdapter);
// take a copy of the actionModel, because the original can get mutated (specifically: its arguments cleared)
final ActionModel actionModelCopy = actionModel.copy();
collectionModel.setActionHint(actionModelCopy);
@@ -128,24 +129,20 @@ public enum ActionResultResponseType {
}
private static ObjectAdapter determineActualAdapter(
- final ObjectAdapter resultAdapter,
- final IsisSessionFactory isisSessionFactory) {
+ final ObjectAdapter resultAdapter) {
+
if (resultAdapter.getSpecification().isNotCollection()) {
return resultAdapter;
} else {
// will only be a single element
final List<Object> pojoList = asList(resultAdapter);
final Object pojo = pojoList.get(0);
- return adapterFor(pojo, isisSessionFactory);
+
+ val pojoToAdapter = IsisContext.pojoToAdapter();
+ return pojoToAdapter.apply(pojo);
}
}
- private static ObjectAdapter adapterFor(
- final Object pojo,
- final IsisSessionFactory isisSessionFactory) {
- return isisSessionFactory.getCurrentSession().getPersistenceSession().adapterFor(pojo);
- }
-
private static ActionResultResponse toEntityPage(final ActionModel model, final ObjectAdapter actualAdapter, final ConcurrencyException exIfAny) {
// this will not preserve the URL (because pageParameters are not copied over)
// but trying to preserve them seems to cause the 302 redirect to be swallowed somehow
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
index 239ea17..4f6172b 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
@@ -23,16 +23,6 @@ import java.util.List;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Lists;
-
-import org.apache.wicket.AttributeModifier;
-import org.apache.wicket.Component;
-import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.Page;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.SubmitLink;
-import org.apache.wicket.markup.html.link.AbstractLink;
-import org.apache.wicket.model.Model;
-
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.core.metamodel.consent.Consent;
@@ -43,7 +33,6 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
import org.apache.isis.core.security.authentication.AuthenticationSession;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
@@ -55,6 +44,14 @@ 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.wicket.AttributeModifier;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.Page;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.SubmitLink;
+import org.apache.wicket.markup.html.link.AbstractLink;
+import org.apache.wicket.model.Model;
class CssMenuItem implements Serializable {
@@ -502,16 +499,11 @@ class CssMenuItem implements Serializable {
// //////////////////////////////////////////////////////////////
AuthenticationSession getAuthenticationSession() {
- return getIsisSessionFactory().getCurrentSession().getAuthenticationSession();
+ return IsisContext.getAuthenticationSession().orElse(null);
}
SpecificationLoader getSpecificationLoader() {
- return getIsisSessionFactory().getSpecificationLoader();
- }
-
-
- PersistenceSession getPersistenceSession() {
- return getIsisSessionFactory().getCurrentSession().getPersistenceSession();
+ return IsisContext.getSpecificationLoader();
}
IsisSessionFactory getIsisSessionFactory() {
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
index fd65ec9..60801ab 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
@@ -25,23 +25,12 @@ import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-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.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
import org.apache.isis.applib.layout.menubars.MenuBars;
import org.apache.isis.applib.layout.menubars.MenuSection;
import org.apache.isis.applib.layout.menubars.bootstrap3.BS3Menu;
import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBar;
import org.apache.isis.applib.services.i18n.TranslationService;
-import org.apache.isis.applib.services.inject.ServiceInjector;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -53,10 +42,20 @@ import org.apache.isis.viewer.wicket.model.models.ServiceActionsModel;
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.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.slf4j.Logger;
+import org.slf4j.LoggerFactory;
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;
public final class ServiceActionUtil {
@@ -94,9 +93,7 @@ public final class ServiceActionUtil {
//XXX ISIS-1626, confirmation dialog for no-parameter menu actions
if (menuItem.requiresImmediateConfirmation()) {
- addConfirmationDialog(
- subMenuItemLink,
- menuItem.getPersistenceSession().getServiceInjector());
+ addConfirmationDialog(subMenuItemLink);
}
}
@@ -265,10 +262,9 @@ public final class ServiceActionUtil {
private static void addConfirmationDialog(
- final Component component,
- final ServiceInjector servicesInjector) {
+ final Component component) {
- final TranslationService translationService =
+ val translationService =
IsisContext.getServiceRegistry().lookupServiceElseFail(TranslationService.class);
ConfirmationConfig confirmationConfig = new ConfirmationConfig();
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java
index 1ee6be8..72a138a 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java
@@ -104,7 +104,7 @@ public final class ObjectAdapterPropertyColumn extends ColumnAbstract<ObjectAdap
final ObjectAdapter adapter = rowModel.getObject();
final EntityModel entityModel = new EntityModel(adapter);
final OneToOneAssociation property = (OneToOneAssociation) adapter.getSpecification().getAssociation(propertyExpression);
- final PropertyMemento pm = new PropertyMemento(property, entityModel.getIsisSessionFactory());
+ final PropertyMemento pm = new PropertyMemento(property);
final ScalarModel scalarModel = entityModel.getPropertyModel(pm, EntityModel.Mode.VIEW, type.renderingHint());
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
index 4a04f00..dd93875 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
@@ -205,7 +205,7 @@ public class PropertyGroup extends PanelAbstract<EntityModel> implements HasDyna
final WebMarkupContainer container,
final List<LinkAndLabel> entityActions) {
- final PropertyMemento pm = new PropertyMemento(otoa, entityModel.getIsisSessionFactory());
+ final PropertyMemento pm = new PropertyMemento(otoa);
final ScalarModel scalarModel =
entityModel.getPropertyModel(pm, EntityModel.Mode.VIEW, EntityModel.RenderingHint.REGULAR);
@@ -213,7 +213,7 @@ public class PropertyGroup extends PanelAbstract<EntityModel> implements HasDyna
final Component component = getComponentFactoryRegistry()
.addOrReplaceComponent(container, ID_PROPERTY, ComponentType.SCALAR_NAME_AND_VALUE, scalarModel);
- final ObjectAdapter adapter = entityModel.load(ConcurrencyChecking.NO_CHECK);
+ final ObjectAdapter adapter = entityModel.load();
final List<ObjectAction> associatedActions =
ObjectAction.Util.findForAssociation(adapter, otoa);
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index d06bab9..63ccdb1 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -383,12 +383,4 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
target.add(this);
}
-
- // ///////////////////////////////////////////////////////////////////
-
- @Override
- public ObjectAdapterProvider getObjectAdapterProvider() {
- return getPersistenceSession();
- }
-
}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index 511cc77..f1710d3 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -20,9 +20,20 @@
package org.apache.isis.viewer.wicket.ui.components.scalars;
import java.io.Serializable;
+import java.util.function.Function;
import javax.inject.Inject;
+import org.apache.isis.commons.internal.base._Casts;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.facets.SingleIntValueFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
+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.bootstrap.FormGroup;
+import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
+import org.apache.isis.viewer.wicket.ui.util.Tooltips;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
@@ -38,18 +49,6 @@ import org.apache.wicket.validation.IValidatable;
import org.apache.wicket.validation.IValidator;
import org.apache.wicket.validation.ValidationError;
-import org.apache.isis.commons.internal.base._Casts;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
-import org.apache.isis.core.metamodel.facets.SingleIntValueFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
-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.bootstrap.FormGroup;
-import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
-import org.apache.isis.viewer.wicket.ui.util.Tooltips;
-
/**
* Adapter for {@link PanelAbstract panel}s that use a {@link ScalarModel} as
* their backing model.
@@ -63,7 +62,8 @@ import org.apache.isis.viewer.wicket.ui.util.Tooltips;
* This implementation is for panels that use a textfield/text area.
* </p>
*/
-public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> extends ScalarPanelAbstract2 implements TextFieldValueModel.ScalarModelProvider {
+public abstract class ScalarPanelTextFieldAbstract<T extends Serializable>
+extends ScalarPanelAbstract2 implements TextFieldValueModel.ScalarModelProvider {
private static final long serialVersionUID = 1L;
@@ -218,7 +218,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
@Override
public void validate(final IValidatable<T> validatable) {
final T proposedValue = validatable.getValue();
- final ObjectAdapter proposedAdapter = getPersistenceSession().adapterFor(proposedValue);
+ final ObjectAdapter proposedAdapter = pojoToAdapter().apply(proposedValue);
final String reasonIfAny = scalarModel.validate(proposedAdapter);
if (reasonIfAny != null) {
final ValidationError error = new ValidationError();
@@ -360,10 +360,5 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
return settings;
}
- @Override
- public ObjectAdapterProvider getObjectAdapterProvider() {
- return getPersistenceSession();
- }
-
}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
index 118155e..4c41374 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
@@ -36,7 +36,8 @@ import org.apache.isis.viewer.wicket.model.models.ScalarModel;
/**
* Panel for rendering numeric scalars.
*/
-public abstract class ScalarPanelTextFieldNumeric<T extends Serializable> extends ScalarPanelTextFieldAbstract<T> {
+public abstract class ScalarPanelTextFieldNumeric<T extends Serializable>
+extends ScalarPanelTextFieldAbstract<T> {
private static final long serialVersionUID = 1L;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java
index 4db0201..53d07da 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java
@@ -19,13 +19,12 @@
package org.apache.isis.viewer.wicket.ui.components.scalars;
import java.io.Serializable;
-
-import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.model.Model;
+import java.util.function.Function;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.model.Model;
/**
* For custom {@link ScalarPanelTextFieldAbstract}s to use as the {@link Model}
@@ -37,7 +36,7 @@ public class TextFieldValueModel<T extends Serializable> extends Model<T> {
public interface ScalarModelProvider {
ScalarModel getModel();
- ObjectAdapterProvider getObjectAdapterProvider();
+ Function<Object, ObjectAdapter> pojoToAdapter();
}
private final ScalarModelProvider scalarModelProvider;
@@ -63,7 +62,7 @@ public class TextFieldValueModel<T extends Serializable> extends Model<T> {
if (object == null) {
scalarModelProvider.getModel().setObject(null);
} else {
- final ObjectAdapter objectAdapter = scalarModelProvider.getObjectAdapterProvider().adapterFor(object);
+ final ObjectAdapter objectAdapter = scalarModelProvider.pojoToAdapter().apply(object);
scalarModelProvider.getModel().setObject(objectAdapter);
}
}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
index 9df561f..f5a131d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
@@ -26,6 +26,15 @@ import java.util.List;
import javax.activation.MimeType;
import javax.imageio.ImageIO;
+import org.apache.isis.applib.value.Blob;
+import org.apache.isis.applib.value.NamedWithMimeType;
+import org.apache.isis.core.commons.lang.CloseableExtensions;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.runtime.persistence.adapter.PojoAdapter;
+import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract2;
+import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
+import org.apache.isis.viewer.wicket.ui.util.Components;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
@@ -43,17 +52,6 @@ import org.apache.wicket.markup.html.link.ResourceLink;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.request.resource.IResource;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.isis.applib.value.Blob;
-import org.apache.isis.applib.value.NamedWithMimeType;
-import org.apache.isis.core.commons.lang.CloseableExtensions;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract2;
-import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
-import org.apache.isis.viewer.wicket.ui.util.Components;
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.fileinput.BootstrapFileInputField;
@@ -62,9 +60,6 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
private static final long serialVersionUID = 1L;
- @SuppressWarnings("unused")
- private static final Logger LOG = LoggerFactory.getLogger(IsisBlobOrClobPanelAbstract.class);
-
private static final String ID_SCALAR_IF_REGULAR = "scalarIfRegular";
private static final String ID_SCALAR_IF_REGULAR_DOWNLOAD = "scalarIfRegularDownload";
private static final String ID_FILE_NAME = "fileName";
@@ -207,7 +202,8 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
}
private FileUploadField createFileUploadField(String componentId) {
- final BootstrapFileInputField fileUploadField = new BootstrapFileInputField(componentId, new IModel<List<FileUpload>>() {
+ final BootstrapFileInputField fileUploadField = new BootstrapFileInputField(
+ componentId, new IModel<List<FileUpload>>() {
private static final long serialVersionUID = 1L;
@@ -219,7 +215,7 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
final T blob = getBlobOrClobFrom(fileUploads);
- final ObjectAdapter adapter = getPersistenceSession().adapterFor(blob);
+ final ObjectAdapter adapter = PojoAdapter.ofValue(blob);
getModel().setObject(adapter);
}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
index ef7ccbd..375b60c 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
@@ -19,27 +19,28 @@
package org.apache.isis.viewer.wicket.ui.components.scalars.primitive;
-import org.apache.wicket.Component;
-import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.markup.ComponentTag;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
-
import org.apache.isis.applib.annotation.LabelPosition;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.runtime.persistence.adapter.PojoAdapter;
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.components.scalars.ScalarPanelAbstract2;
import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
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.markup.ComponentTag;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.checkboxx.CheckBoxX;
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.checkboxx.CheckBoxXConfig;
import de.agilecoders.wicket.jquery.Key;
+import lombok.val;
/**
* Panel for rendering scalars of type {@link Boolean} or <tt>boolean</tt>.
@@ -138,8 +139,8 @@ public class BooleanPanel extends ScalarPanelAbstract2 {
@Override
public void setObject(final Boolean object) {
- final ObjectAdapter adapter = getPersistenceSession().adapterFor(object);
- getModel().setObject(adapter);
+ val objectAdapter = PojoAdapter.ofValue(object);
+ getModel().setObject(objectAdapter);
}
}) {
@@ -177,7 +178,7 @@ public class BooleanPanel extends ScalarPanelAbstract2 {
final ObjectSpecification objectSpecification = getModel().getTypeOfSpecification();
if(objectSpecification.getFullIdentifier().equals("boolean")) {
if(getModel().getObject() == null) {
- getModel().setObject(getPersistenceSession().adapterFor(false));
+ getModel().setObject(PojoAdapter.ofValue(false));
}
}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/tree/IsisToWicketTreeAdapter.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/tree/IsisToWicketTreeAdapter.java
index d1b35d3..4f17dae 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/tree/IsisToWicketTreeAdapter.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/tree/IsisToWicketTreeAdapter.java
@@ -16,6 +16,8 @@
*/
package org.apache.isis.viewer.wicket.ui.components.tree;
+import static org.apache.isis.commons.internal.base._With.requires;
+
import java.io.Serializable;
import java.util.Iterator;
import java.util.NoSuchElementException;
@@ -26,19 +28,6 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import javax.resource.spi.IllegalStateException;
-
-import org.apache.wicket.Component;
-import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxFallbackLink;
-import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider;
-import org.apache.wicket.extensions.markup.html.repeater.tree.NestedTree;
-import org.apache.wicket.extensions.markup.html.repeater.tree.Node;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.LoadableDetachableModel;
-import org.apache.wicket.model.Model;
-
import org.apache.isis.applib.services.factory.FactoryService;
import org.apache.isis.applib.tree.TreeAdapter;
import org.apache.isis.applib.tree.TreeNode;
@@ -49,12 +38,23 @@ import org.apache.isis.commons.internal.functions._Functions;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.ModelAbstract;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.model.models.ValueModel;
import org.apache.isis.viewer.wicket.ui.components.entity.icontitle.EntityIconAndTitlePanel;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.AjaxFallbackLink;
+import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider;
+import org.apache.wicket.extensions.markup.html.repeater.tree.NestedTree;
+import org.apache.wicket.extensions.markup.html.repeater.tree.Node;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.LoadableDetachableModel;
+import org.apache.wicket.model.Model;
+
+import lombok.val;
class IsisToWicketTreeAdapter {
@@ -263,8 +263,10 @@ class IsisToWicketTreeAdapter {
}
private TreeModel wrap(Object pojo, TreePath treePath) {
- Objects.requireNonNull(pojo);
- return new TreeModel(persistenceSession().adapterFor(pojo), treePath);
+ requires(pojo, "pojo");
+ val pojoToAdapter = IsisContext.pojoToAdapter();
+ val objectAdapter = pojoToAdapter.apply(pojo);
+ return new TreeModel(objectAdapter, treePath);
}
private Object unwrap(TreeModel model) {
@@ -272,10 +274,6 @@ class IsisToWicketTreeAdapter {
return model.getObject().getPojo();
}
- private PersistenceSession persistenceSession() {
- return IsisContext.getPersistenceSession().orElse(null);
- }
-
private Function<Object, TreeModel> newPojoToTreeModelMapper(TreeModel parent) {
return _Functions.indexAwareToFunction((indexWithinSiblings, pojo)->
wrap(pojo, parent.getTreePath().append(indexWithinSiblings)));
@@ -371,14 +369,18 @@ class IsisToWicketTreeAdapter {
*/
@Override
protected TreeModel load() {
-
- final PersistenceSession persistenceSession = IsisContext.getPersistenceSession()
- .orElseThrow(()->new RuntimeException(new IllegalStateException(
- String.format("Tree creation: missing a PersistenceSession to recreate TreeModel "
- + "from Oid: '%s'", id)))
- );
-
- final ObjectAdapter objAdapter = persistenceSession.adapterFor(id);
+
+ val rootOid = id;
+ val rootOidToAdapter = IsisContext.rootOidToAdapter();
+
+//TODO [2033] remove
+// final PersistenceSession persistenceSession = IsisContext.getPersistenceSession()
+// .orElseThrow(()->new RuntimeException(new IllegalStateException(
+// String.format("Tree creation: missing a PersistenceSession to recreate TreeModel "
+// + "from Oid: '%s'", id)))
+// );
+
+ val objAdapter = rootOidToAdapter.apply(rootOid);
if(objAdapter==null) {
throw new NoSuchElementException(
String.format("Tree creation: could not recreate TreeModel from Oid: '%s'", id));
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 fbfcb3a..f83cfee 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
@@ -20,23 +20,20 @@ import java.util.Collection;
import java.util.List;
import java.util.Locale;
-import org.apache.wicket.Session;
-import org.apache.wicket.util.convert.IConverter;
-import org.apache.wicket.util.string.Strings;
-import org.wicketstuff.select2.ChoiceProvider;
-
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.specloader.SpecificationLoader;
import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
import org.apache.isis.core.security.authentication.AuthenticationSession;
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.ScalarModel;
import org.apache.isis.viewer.wicket.ui.components.scalars.IsisConverterLocator;
+import org.apache.wicket.Session;
+import org.apache.wicket.util.convert.IConverter;
+import org.apache.wicket.util.string.Strings;
+import org.wicketstuff.select2.ChoiceProvider;
public abstract class ObjectAdapterMementoProviderAbstract extends ChoiceProvider<ObjectAdapterMemento> {
@@ -129,11 +126,7 @@ public abstract class ObjectAdapterMementoProviderAbstract extends ChoiceProvide
protected SpecificationLoader getSpecificationLoader() {
- return getIsisSessionFactory().getSpecificationLoader();
- }
-
- PersistenceSession getPersistenceSession() {
- return getIsisSessionFactory().getCurrentSession().getPersistenceSession();
+ return IsisContext.getSpecificationLoader();
}
protected IsisSessionFactory getIsisSessionFactory() {
@@ -141,7 +134,7 @@ public abstract class ObjectAdapterMementoProviderAbstract extends ChoiceProvide
}
public AuthenticationSession getAuthenticationSession() {
- return getIsisSessionFactory().getCurrentSession().getAuthenticationSession();
+ return IsisContext.getAuthenticationSession().orElse(null);
}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
index 0ee4e7c..af24007 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
@@ -523,10 +523,6 @@ implements FormExecutor {
return IsisSession.currentIfAny();
}
- protected PersistenceSession getPersistenceSession() {
- return getCurrentSession().getPersistenceSession();
- }
-
protected ServiceRegistry getServiceRegistry() {
return IsisContext.getServiceRegistry();
}
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 389538a..c0b1ec1 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
@@ -19,6 +19,8 @@
package org.apache.isis.viewer.wicket.ui.panels;
+import java.util.function.Function;
+
import javax.inject.Inject;
import org.apache.wicket.Component;
@@ -29,6 +31,7 @@ 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.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
@@ -162,8 +165,8 @@ public abstract class PanelAbstract<T extends IModel<?>> extends Panel {
// Dependencies (from IsisContext)
// ///////////////////////////////////////////////////////////////////
- public PersistenceSession getPersistenceSession() {
- return IsisContext.getPersistenceSession().orElse(null);
+ public Function<Object, ObjectAdapter> pojoToAdapter() {
+ return IsisContext.pojoToAdapter();
}
protected IsisConfiguration getConfiguration() {