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 2018/09/04 20:25:57 UTC
[isis] 15/24: ISIS-1976: further decouple factets
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch ISIS-1976-rethink-object-adapters
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 48e4be128611018a65feba029076e2604d888491
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Sep 3 14:57:31 2018 +0200
ISIS-1976: further decouple factets
Task-Url: https://issues.apache.org/jira/browse/ISIS-1976
---
.../annotcfg/EncodableFacetAnnotation.java | 4 +-
...bleFacetAnnotationElseConfigurationFactory.java | 8 ++--
.../container/DomainObjectContainerDefault.java | 13 ++++--
.../RepositoryServiceLegacyInternalDefault.java | 13 +++---
.../metamodel/adapter/ObjectAdapterProvider.java | 53 ++--------------------
...ctionInvocationFacetForDomainEventAbstract.java | 16 ++++---
.../CollectionAccessorFacetViaAccessorFactory.java | 8 ++--
.../clear/CollectionClearFacetFactory.java | 4 +-
.../javautilcollection/CollectionFacetFactory.java | 4 +-
.../DomainObjectAnnotationFacetFactory.java | 12 +++--
.../annotcfg/EncodableFacetFromConfiguration.java | 4 +-
...ObjectFacetDeclarativeInitializingAbstract.java | 5 +-
.../recreatable/RecreatableObjectFacetFactory.java | 8 ++--
.../annotation/TitleAnnotationFacetFactory.java | 4 +-
...ParameterAutoCompleteFacetViaMethodFactory.java | 8 ++--
...ChoicesFacetDerivedFromChoicesFacetFactory.java | 4 +-
.../method/ActionChoicesFacetViaMethodFactory.java | 8 ++--
...ctionParameterChoicesFacetViaMethodFactory.java | 7 +--
...tionParameterDefaultsFacetViaMethodFactory.java | 4 +-
.../PropertyAccessorFacetViaAccessorFactory.java | 4 +-
.../PropertyAutoCompleteFacetMethodFactory.java | 4 +-
.../PropertyChoicesFacetViaMethodFactory.java | 4 +-
...PropertyDefaultFacetDerivedFromTypeFactory.java | 4 +-
.../PropertyDefaultFacetViaMethodFactory.java | 4 +-
...onParameterDefaultsAndChoicesPostProcessor.java | 4 +-
.../PersistenceSessionServiceInternal.java | 35 ++++++++++++++
.../PersistenceSessionServiceInternalNoop.java | 19 ++------
.../RepositoryServiceInternalDefault.java | 15 +++---
.../services/title/TitleServiceDefault.java | 14 +++---
.../specloader/specimpl/ObjectMemberAbstract.java | 7 ++-
.../specimpl/OneToManyAssociationContributee.java | 2 -
.../specimpl/OneToManyAssociationDefault.java | 2 +-
.../specimpl/OneToOneAssociationDefault.java | 19 ++------
.../CollectionAnnotationFacetFactoryTest.java | 3 +-
.../PropertyAnnotationFacetFactoryTest.java | 3 +-
.../ValueSemanticsProviderAbstractTestCase.java | 32 +++++++------
.../system/persistence/PersistenceSession4.java | 10 +++-
.../system/persistence/PersistenceSession5.java | 11 +++--
.../PersistenceSessionServiceInternalDefault.java | 18 +-------
.../system/persistence/PersistenceSession.java | 6 ++-
.../adaptermanager/ObjectAdapterContext.java | 48 ++++++++++++++++++--
.../adaptermanager/ObjectAdapterLegacy.java | 5 --
.../handlers/DomainObjectInvocationHandler.java | 13 ++++--
43 files changed, 254 insertions(+), 219 deletions(-)
diff --git a/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/annotcfg/EncodableFacetAnnotation.java b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/annotcfg/EncodableFacetAnnotation.java
index 7e6c280..72a8632 100644
--- a/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/annotcfg/EncodableFacetAnnotation.java
+++ b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/annotcfg/EncodableFacetAnnotation.java
@@ -46,7 +46,9 @@ public class EncodableFacetAnnotation extends EncodableFacetAbstract {
}
public EncodableFacetAnnotation(final Class<?> annotatedClass, final FacetHolder holder, final ServicesInjector servicesInjector) {
- this(encoderDecoderName(annotatedClass, servicesInjector.getConfigurationServiceInternal()), encoderDecoderClass(annotatedClass), holder, servicesInjector.getPersistenceSessionServiceInternal(), servicesInjector);
+ this(encoderDecoderName(annotatedClass, servicesInjector.getConfigurationServiceInternal()),
+ encoderDecoderClass(annotatedClass), holder,
+ servicesInjector.getPersistenceSessionServiceInternal(), servicesInjector);
}
private EncodableFacetAnnotation(final String candidateEncoderDecoderName, final Class<?> candidateEncoderDecoderClass, final FacetHolder holder, final ObjectAdapterProvider adapterProvider, final ServicesInjector dependencyInjector) {
diff --git a/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/annotcfg/ParseableFacetAnnotationElseConfigurationFactory.java b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/annotcfg/ParseableFacetAnnotationElseConfigurationFactory.java
index 624d046..7d82149 100644
--- a/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/annotcfg/ParseableFacetAnnotationElseConfigurationFactory.java
+++ b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/annotcfg/ParseableFacetAnnotationElseConfigurationFactory.java
@@ -19,7 +19,10 @@
package org.apache.isis.core.metamodel.facets.object.parseable.annotcfg;
+import com.google.common.base.Strings;
+
import org.apache.isis.applib.annotation.Parseable;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -28,9 +31,6 @@ import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacetAbstract;
import org.apache.isis.core.metamodel.facets.object.parseable.ParserUtil;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
-
-import com.google.common.base.Strings;
/**
* @deprecated because {@link Parseable} was deprecated
@@ -79,6 +79,6 @@ public class ParseableFacetAnnotationElseConfigurationFactory extends FacetFacto
adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterProvider;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
index c1ac5d3..08c03b8 100644
--- a/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
+++ b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
@@ -29,6 +29,7 @@ import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.applib.services.wrapper.WrapperFactory;
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.consent.InteractionResult;
import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
@@ -71,7 +72,7 @@ public class DomainObjectContainerDefault implements DomainObjectContainer {
if (persistentObject == null) {
throw new IllegalArgumentException("Must specify a reference for disposing an object");
}
- final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(persistentObject));
+ final ObjectAdapter adapter = getObjectAdapterProvider().adapterFor(unwrapped(persistentObject));
if (!repositoryService.isPersistent(persistentObject)) {
throw new RepositoryException("Object not persistent: " + adapter);
}
@@ -156,7 +157,7 @@ public class DomainObjectContainerDefault implements DomainObjectContainer {
@Programmatic
@Override
public String validate(final Object domainObject) {
- final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(domainObject));
+ final ObjectAdapter adapter = getObjectAdapterProvider().adapterFor(unwrapped(domainObject));
final InteractionResult validityResult =
adapter.getSpecification().isValidResult(adapter, InteractionInitiatedBy.FRAMEWORK);
return validityResult.getReason();
@@ -170,7 +171,7 @@ public class DomainObjectContainerDefault implements DomainObjectContainer {
@Programmatic
@Override
public boolean isViewModel(final Object domainObject) {
- final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(domainObject));
+ final ObjectAdapter adapter = getObjectAdapterProvider().adapterFor(unwrapped(domainObject));
return adapter.getSpecification().isViewModel();
}
@@ -184,7 +185,7 @@ public class DomainObjectContainerDefault implements DomainObjectContainer {
@Programmatic
@Override
public void persist(final Object domainObject) {
- final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(domainObject));
+ final ObjectAdapter adapter = getObjectAdapterProvider().adapterFor(unwrapped(domainObject));
if(adapter == null) {
throw new PersistFailedException("Object not known to framework; instantiate using newTransientInstance(...) rather than simply new'ing up.");
@@ -216,7 +217,9 @@ public class DomainObjectContainerDefault implements DomainObjectContainer {
return wrapperFactory != null ? wrapperFactory.unwrap(domainObject) : domainObject;
}
-
+ private ObjectAdapterProvider getObjectAdapterProvider() {
+ return persistenceSessionServiceInternal;
+ }
// -- service dependencies
diff --git a/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceLegacyInternalDefault.java b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceLegacyInternalDefault.java
index 27ba440..f5ba840 100644
--- a/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceLegacyInternalDefault.java
+++ b/core/legacy/metamodel-legacy/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceLegacyInternalDefault.java
@@ -22,8 +22,6 @@ package org.apache.isis.core.metamodel.services.repository;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.function.Predicate;
-import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
@@ -38,8 +36,8 @@ import org.apache.isis.applib.services.factory.FactoryService;
import org.apache.isis.applib.services.repository.RepositoryServiceLegacy;
import org.apache.isis.applib.services.wrapper.WrapperFactory;
import org.apache.isis.applib.services.xactn.TransactionService;
-import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
/**
@@ -76,7 +74,7 @@ public class RepositoryServiceLegacyInternalDefault implements RepositoryService
@Programmatic
@Override
public boolean isPersistent(final Object domainObject) {
- final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(domainObject));
+ final ObjectAdapter adapter = getObjectAdapterProvider().adapterFor(unwrapped(domainObject));
return adapter.representsPersistent();
}
@@ -86,7 +84,7 @@ public class RepositoryServiceLegacyInternalDefault implements RepositoryService
if (isPersistent(object)) {
return object;
}
- final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(object));
+ final ObjectAdapter adapter = getObjectAdapterProvider().adapterFor(unwrapped(object));
if(adapter == null) {
throw new PersistFailedException("Object not known to framework (unable to create/obtain an adapter)");
@@ -124,7 +122,7 @@ public class RepositoryServiceLegacyInternalDefault implements RepositoryService
if (object == null) {
throw new IllegalArgumentException("Must specify a reference for disposing an object");
}
- final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(object));
+ final ObjectAdapter adapter = getObjectAdapterProvider().adapterFor(unwrapped(object));
if (!isPersistent(object)) {
throw new RepositoryException("Object not persistent: " + adapter);
}
@@ -244,6 +242,9 @@ public class RepositoryServiceLegacyInternalDefault implements RepositoryService
return wrapperFactory != null ? wrapperFactory.unwrap(domainObject) : domainObject;
}
+ private ObjectAdapterProvider getObjectAdapterProvider() {
+ return persistenceSessionServiceInternal;
+ }
@javax.inject.Inject
FactoryService factoryService;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapterProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapterProvider.java
index 57ce4fc..cb87353 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapterProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapterProvider.java
@@ -18,16 +18,12 @@
*/
package org.apache.isis.core.metamodel.adapter;
-import java.util.UUID;
import java.util.function.Function;
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
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;
/**
*
@@ -39,63 +35,24 @@ public interface ObjectAdapterProvider {
/**
* @return standalone (value) or root adapter
*/
- @Programmatic
ObjectAdapter adapterFor(Object domainObject);
/**
* @return collection adapter.
*/
- @Programmatic
ObjectAdapter adapterFor(
final Object pojo,
final ObjectAdapter parentAdapter,
OneToManyAssociation collection);
- @Programmatic
- default ObjectSpecification specificationForViewModel(
- final SpecificationLoader specificationLoader,
- final Object viewModelPojo) {
-
- //FIXME[ISIS-1976]
- // this is horrible, but there's a catch-22 here...
- // we need an adapter in order to query the state of the object via the metamodel, on the other hand
- // we can't create an adapter without the identifier, which is what we're trying to derive
- // so... we create a temporary transient adapter, use it to wrap this adapter and interrogate this pojo,
- // then throw away that adapter (remove from the adapter map)
- final boolean[] createdTemporaryAdapter = {false};
- final ObjectAdapter viewModelAdapter = adapterForViewModel(
- specificationLoader,
- viewModelPojo,
- (ObjectSpecId objectSpecId)->{
- createdTemporaryAdapter[0] = true;
- return RootOid.create(objectSpecId, UUID.randomUUID().toString()); });
+ ObjectSpecification specificationForViewModel(final Object viewModelPojo);
- final ObjectSpecification spec = viewModelAdapter.getSpecification();
-
- if(createdTemporaryAdapter[0]) {
- adapterManager().removeAdapterFromCache(viewModelAdapter);
- }
- return spec;
- }
-
- default ObjectAdapter adapterForViewModel(
- final SpecificationLoader specificationLoader,
+ ObjectAdapter adapterForViewModel(
final Object viewModelPojo,
- final Function<ObjectSpecId, RootOid> rootOidFactory) {
-
- ObjectAdapter viewModelAdapter = adapterManager().lookupAdapterFor(viewModelPojo);
- if(viewModelAdapter == null) {
- final ObjectSpecification objectSpecification =
- specificationLoader.loadSpecification(viewModelPojo.getClass());
- final ObjectSpecId objectSpecId = objectSpecification.getSpecId();
- final RootOid newRootOid = rootOidFactory.apply(objectSpecId);
+ final Function<ObjectSpecId, RootOid> rootOidFactory);
+
- viewModelAdapter = adapterManager().addRecreatedPojoToCache(newRootOid, viewModelPojo);
- }
- return viewModelAdapter;
- }
- @Deprecated // don't expose caching
- AdapterManager adapterManager();
+
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
index bf94a59..997ef69 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
@@ -62,6 +62,7 @@ import org.apache.isis.core.commons.lang.ArrayExtensions;
import org.apache.isis.core.commons.lang.MethodInvocationPreprocessor;
import org.apache.isis.core.commons.lang.ThrowableExtensions;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -202,7 +203,7 @@ implements ImperativeFacet {
"Unable to persist command for action '%s'; CommandService does not support persistent commands ",
actionId));
}
- returnedAdapter = getPersistenceSessionServiceInternal().adapterFor(command);
+ returnedAdapter = getObjectAdapterProvider().adapterFor(command);
} else {
// otherwise, go ahead and execute action in the 'foreground'
@@ -321,7 +322,7 @@ implements ImperativeFacet {
final Object returnedPojo = priorExecution.getReturned();
- returnedAdapter = persistenceSessionServiceInternal.adapterFor(returnedPojo);
+ returnedAdapter = getObjectAdapterProvider().adapterFor(returnedPojo);
// sync DTO with result
getInteractionDtoServiceInternal().updateResult(priorExecution.getDto(), owningAction, returnedPojo);
@@ -408,7 +409,7 @@ implements ImperativeFacet {
// to remove boilerplate from the domain, we automatically clone the returned object if it is a view model.
if (resultPojo != null) {
- final ObjectAdapter resultAdapter = getPersistenceSessionServiceInternal().adapterFor(resultPojo);
+ final ObjectAdapter resultAdapter = getObjectAdapterProvider().adapterFor(resultPojo);
return cloneIfViewModelElse(resultAdapter, resultAdapter);
} else {
// if void or null, attempt to clone the original target, else return null.
@@ -425,7 +426,7 @@ implements ImperativeFacet {
final ViewModelFacet viewModelFacet = adapter.getSpecification().getFacet(ViewModelFacet.class);
final Object clone = viewModelFacet.clone(adapter.getObject());
- final ObjectAdapter clonedAdapter = getPersistenceSessionServiceInternal().adapterFor(clone);
+ final ObjectAdapter clonedAdapter = getObjectAdapterProvider().adapterFor(clone);
// copy over TypeOfFacet if required
final TypeOfFacet typeOfFacet = getFacetHolder().getFacet(TypeOfFacet.class);
@@ -511,7 +512,7 @@ implements ImperativeFacet {
.collect(Collectors.toList()),
method.getReturnType());
if (visibleObjects != null) {
- return getPersistenceSessionServiceInternal().adapterFor(visibleObjects);
+ return getObjectAdapterProvider().adapterFor(visibleObjects);
}
// would be null if unable to take a copy (unrecognized return type)
@@ -587,7 +588,10 @@ implements ImperativeFacet {
// Dependencies (from constructor)
// /////////////////////////////////////////////////////////
-
+ private ObjectAdapterProvider getObjectAdapterProvider() {
+ return persistenceSessionServiceInternal;
+ }
+
private PersistenceSessionServiceInternal getPersistenceSessionServiceInternal() {
return persistenceSessionServiceInternal;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java
index 814c873..78007c7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java
@@ -23,6 +23,7 @@ import java.lang.reflect.Method;
import java.util.Collection;
import java.util.List;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -32,7 +33,6 @@ import org.apache.isis.core.metamodel.facets.PropertyOrCollectionIdentifyingFace
import org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacetDefault;
import org.apache.isis.core.metamodel.methodutils.MethodScope;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
public class CollectionAccessorFacetViaAccessorFactory
@@ -61,7 +61,7 @@ extends PropertyOrCollectionIdentifyingFacetFactoryAbstract {
new CollectionAccessorFacetViaAccessor(
typeSpec, accessorMethod, holder,
getDeploymentCategory(), getConfiguration(), getSpecificationLoader(),
- getAuthenticationSessionProvider(), adapterManager
+ getAuthenticationSessionProvider(), adapterProvider
));
FacetUtil.addFacet(CollectionSemanticsFacetDefault.forCollection(accessorMethod, holder));
@@ -115,9 +115,9 @@ extends PropertyOrCollectionIdentifyingFacetFactoryAbstract {
@Override public void setServicesInjector(final ServicesInjector servicesInjector) {
super.setServicesInjector(servicesInjector);
- adapterManager = servicesInjector.getPersistenceSessionServiceInternal();
+ adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterManager;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/clear/CollectionClearFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/clear/CollectionClearFacetFactory.java
index 3ab2f6a..b2d21f6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/clear/CollectionClearFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/clear/CollectionClearFacetFactory.java
@@ -22,6 +22,7 @@ package org.apache.isis.core.metamodel.facets.collections.clear;
import java.lang.reflect.Method;
import org.apache.isis.core.commons.lang.StringExtensions;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -31,7 +32,6 @@ import org.apache.isis.core.metamodel.facets.MethodPrefixConstants;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionClearFacet;
import org.apache.isis.core.metamodel.methodutils.MethodScope;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
public class CollectionClearFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
@@ -82,7 +82,7 @@ public class CollectionClearFacetFactory extends MethodPrefixBasedFacetFactoryAb
adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterProvider;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/CollectionFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/CollectionFacetFactory.java
index 55b8e26..7a605e4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/CollectionFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/CollectionFacetFactory.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.metamodel.facets.collections.javautilcollection;
import org.apache.isis.commons.internal.collections._Arrays;
import org.apache.isis.commons.internal.collections._Collections;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
@@ -30,7 +31,6 @@ import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredF
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
public class CollectionFacetFactory extends FacetFactoryAbstract {
@@ -96,6 +96,6 @@ public class CollectionFacetFactory extends FacetFactoryAbstract {
adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterProvider;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
index 6100ba0..5cf7e73 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
@@ -26,6 +26,8 @@ import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
+import com.google.common.collect.Maps;
+
import org.apache.isis.applib.annotation.DomainObject;
import org.apache.isis.applib.annotation.Nature;
import org.apache.isis.applib.events.lifecycle.ObjectCreatedEvent;
@@ -80,8 +82,6 @@ import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
import org.apache.isis.core.metamodel.util.EventUtil;
import org.apache.isis.objectstore.jdo.metamodel.facets.object.persistencecapable.JdoPersistenceCapableFacet;
-import com.google.common.collect.Maps;
-
public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
implements MetaModelValidatorRefiner, PostConstructMethodCache {
@@ -290,8 +290,12 @@ implements MetaModelValidatorRefiner, PostConstructMethodCache {
final PostConstructMethodCache postConstructMethodCache = this;
final ViewModelFacet recreatableObjectFacet = RecreatableObjectFacetForDomainObjectAnnotation.create(
- domainObjects, getSpecificationLoader(), persistenceSessionServiceInternal, servicesInjector,
- facetHolder, postConstructMethodCache);
+ domainObjects,
+ getSpecificationLoader(),
+ persistenceSessionServiceInternal,
+ servicesInjector,
+ facetHolder,
+ postConstructMethodCache);
if(recreatableObjectFacet != null) {
FacetUtil.addFacet(recreatableObjectFacet);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/annotcfg/EncodableFacetFromConfiguration.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/annotcfg/EncodableFacetFromConfiguration.java
index 806ea7e..69f6d20 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/annotcfg/EncodableFacetFromConfiguration.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/annotcfg/EncodableFacetFromConfiguration.java
@@ -19,7 +19,6 @@
package org.apache.isis.core.metamodel.facets.object.encodeable.annotcfg;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacetAbstract;
import org.apache.isis.core.metamodel.services.ServicesInjector;
@@ -27,7 +26,8 @@ import org.apache.isis.core.metamodel.services.ServicesInjector;
public class EncodableFacetFromConfiguration extends EncodableFacetAbstract {
public EncodableFacetFromConfiguration(final String candidateEncoderDecoderName, final FacetHolder holder, final ServicesInjector servicesInjector) {
- super(candidateEncoderDecoderName, null, holder, servicesInjector.getPersistenceSessionServiceInternal(), servicesInjector);
+ super(candidateEncoderDecoderName, null, holder,
+ servicesInjector.getPersistenceSessionServiceInternal(), servicesInjector);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
index 9393db0..3042d6f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
@@ -43,7 +43,7 @@ import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
public abstract class RecreatableObjectFacetDeclarativeInitializingAbstract
extends RecreatableObjectFacetAbstract {
- private final SpecificationLoader specificationLoader;
+ private final SpecificationLoader specificationLoader; //FIXME[ISIS-1976] remove
private final ObjectAdapterProvider adapterProvider;
public RecreatableObjectFacetDeclarativeInitializingAbstract(
@@ -71,7 +71,6 @@ extends RecreatableObjectFacetAbstract {
final Set<String> mementoKeys = memento.keySet();
final ObjectAdapter viewModelAdapter = adapterProvider.adapterForViewModel(
- specificationLoader,
viewModelPojo,
(ObjectSpecId objectSpecId)->
new RootOid(objectSpecId, mementoStr, Oid.State.VIEWMODEL) );
@@ -102,7 +101,7 @@ extends RecreatableObjectFacetAbstract {
final _Mementos.Memento memento = _Mementos.create(codec, serializer);
- final ObjectSpecification spec = adapterProvider.specificationForViewModel(specificationLoader, viewModelPojo);
+ final ObjectSpecification spec = adapterProvider.specificationForViewModel(viewModelPojo);
final List<OneToOneAssociation> properties = spec.getProperties(Contributed.EXCLUDED);
for (OneToOneAssociation property : properties) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java
index facd04d..70089bd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java
@@ -26,9 +26,12 @@ import java.util.Optional;
import javax.annotation.PostConstruct;
import javax.xml.bind.annotation.XmlRootElement;
+import com.google.common.collect.Maps;
+
import org.apache.isis.applib.RecreatableDomainObject;
import org.apache.isis.applib.ViewModel;
import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
@@ -40,14 +43,11 @@ import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
-import com.google.common.collect.Maps;
-
public class RecreatableObjectFacetFactory extends FacetFactoryAbstract
implements MetaModelValidatorRefiner, PostConstructMethodCache {
@@ -139,6 +139,6 @@ implements MetaModelValidatorRefiner, PostConstructMethodCache {
adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterProvider;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java
index 3f38112..9e6ae7f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java
@@ -29,6 +29,7 @@ import com.google.common.collect.Lists;
import org.apache.isis.applib.annotation.Title;
import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -39,7 +40,6 @@ import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
import org.apache.isis.core.metamodel.facets.fallback.FallbackFacetFactory;
import org.apache.isis.core.metamodel.methodutils.MethodScope;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
@@ -196,6 +196,6 @@ public class TitleAnnotationFacetFactory extends FacetFactoryAbstract implements
adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterProvider;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
index 59fa9c3..1d9645f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
@@ -26,6 +26,7 @@ import java.util.List;
import java.util.Set;
import org.apache.isis.core.commons.lang.StringExtensions;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
@@ -35,7 +36,6 @@ import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstra
import org.apache.isis.core.metamodel.facets.MethodPrefixConstants;
import org.apache.isis.core.metamodel.methodutils.MethodScope;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
public class ActionParameterAutoCompleteFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
@@ -87,7 +87,7 @@ public class ActionParameterAutoCompleteFacetViaMethodFactory extends MethodPref
new ActionParameterAutoCompleteFacetViaMethod(
autoCompleteMethod, paramType, paramAsHolder,
getDeploymentCategory(), getSpecificationLoader(),
- getAuthenticationSessionProvider(), adapterManager));
+ getAuthenticationSessionProvider(), adapterProvider));
}
}
@@ -111,9 +111,9 @@ public class ActionParameterAutoCompleteFacetViaMethodFactory extends MethodPref
@Override
public void setServicesInjector(final ServicesInjector servicesInjector) {
super.setServicesInjector(servicesInjector);
- adapterManager = servicesInjector.getPersistenceSessionServiceInternal();
+ adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterManager;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/enums/ActionParameterChoicesFacetDerivedFromChoicesFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/enums/ActionParameterChoicesFacetDerivedFromChoicesFacetFactory.java
index 7c2de6e..4a5d1c6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/enums/ActionParameterChoicesFacetDerivedFromChoicesFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/enums/ActionParameterChoicesFacetDerivedFromChoicesFacetFactory.java
@@ -19,6 +19,7 @@
package org.apache.isis.core.metamodel.facets.param.choices.enums;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
@@ -26,7 +27,6 @@ import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
import org.apache.isis.core.metamodel.facets.objectvalue.choices.ChoicesFacet;
import org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacet;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
public class ActionParameterChoicesFacetDerivedFromChoicesFacetFactory extends FacetFactoryAbstract {
@@ -65,6 +65,6 @@ public class ActionParameterChoicesFacetDerivedFromChoicesFacetFactory extends F
adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterProvider;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java
index e556973..756d052 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java
@@ -24,6 +24,7 @@ import java.util.Collection;
import org.apache.isis.commons.internal._Constants;
import org.apache.isis.core.commons.lang.StringExtensions;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
@@ -33,7 +34,6 @@ import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstra
import org.apache.isis.core.metamodel.facets.MethodPrefixConstants;
import org.apache.isis.core.metamodel.methodutils.MethodScope;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
public class ActionChoicesFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
@@ -84,7 +84,7 @@ public class ActionChoicesFacetViaMethodFactory extends MethodPrefixBasedFacetFa
final Class<?> returnType = actionMethod.getReturnType();
final FacetHolder action = processMethodContext.getFacetHolder();
final ActionChoicesFacetViaMethod facet = new ActionChoicesFacetViaMethod(choicesMethod, returnType, action,
- getDeploymentCategory(), getSpecificationLoader(), getAuthenticationSessionProvider(), adapterManager);
+ getDeploymentCategory(), getSpecificationLoader(), getAuthenticationSessionProvider(), adapterProvider);
FacetUtil.addFacet(facet);
}
@@ -109,9 +109,9 @@ public class ActionChoicesFacetViaMethodFactory extends MethodPrefixBasedFacetFa
@Override
public void setServicesInjector(final ServicesInjector servicesInjector) {
super.setServicesInjector(servicesInjector);
- adapterManager = servicesInjector.getPersistenceSessionServiceInternal();
+ adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterManager;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
index 7dffec3..37f6623 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
@@ -26,6 +26,7 @@ import java.util.List;
import org.apache.isis.core.commons.lang.ListExtensions;
import org.apache.isis.core.commons.lang.StringExtensions;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.exceptions.MetaModelException;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
@@ -95,7 +96,7 @@ public class ActionParameterChoicesFacetViaMethodFactory extends MethodPrefixBas
// add facets directly to parameters, not to actions
final FacetedMethodParameter paramAsHolder = parameters.get(i);
FacetUtil.addFacet(new ActionParameterChoicesFacetViaMethod(choicesMethod, arrayOfParamType, paramAsHolder,
- getDeploymentCategory(), getSpecificationLoader(), getAuthenticationSessionProvider(), adapterManager
+ getDeploymentCategory(), getSpecificationLoader(), getAuthenticationSessionProvider(), adapterProvider
));
}
}
@@ -151,9 +152,9 @@ public class ActionParameterChoicesFacetViaMethodFactory extends MethodPrefixBas
@Override
public void setServicesInjector(final ServicesInjector servicesInjector) {
super.setServicesInjector(servicesInjector);
- adapterManager = servicesInjector.getPersistenceSessionServiceInternal();
+ adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterManager;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
index f7f8178..4bc23bb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.isis.core.commons.lang.ListExtensions;
import org.apache.isis.core.commons.lang.StringExtensions;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.exceptions.MetaModelException;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
@@ -36,7 +37,6 @@ import org.apache.isis.core.metamodel.facets.MethodPrefixConstants;
import org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet;
import org.apache.isis.core.metamodel.methodutils.MethodScope;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
/**
* Sets up all the {@link Facet}s for an action in a single shot.
@@ -140,6 +140,6 @@ public class ActionParameterDefaultsFacetViaMethodFactory extends MethodPrefixBa
adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterProvider;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/accessor/PropertyAccessorFacetViaAccessorFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/accessor/PropertyAccessorFacetViaAccessorFactory.java
index 3fbd438..5fe8a84 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/accessor/PropertyAccessorFacetViaAccessorFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/accessor/PropertyAccessorFacetViaAccessorFactory.java
@@ -22,6 +22,7 @@ package org.apache.isis.core.metamodel.facets.properties.accessor;
import java.lang.reflect.Method;
import java.util.List;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -30,7 +31,6 @@ import org.apache.isis.core.metamodel.facets.MethodPrefixConstants;
import org.apache.isis.core.metamodel.facets.PropertyOrCollectionIdentifyingFacetFactoryAbstract;
import org.apache.isis.core.metamodel.methodutils.MethodScope;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
public class PropertyAccessorFacetViaAccessorFactory extends PropertyOrCollectionIdentifyingFacetFactoryAbstract {
@@ -119,6 +119,6 @@ public class PropertyAccessorFacetViaAccessorFactory extends PropertyOrCollectio
adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterProvider;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java
index 0522c17..5b7f9a6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java
@@ -22,6 +22,7 @@ package org.apache.isis.core.metamodel.facets.properties.autocomplete.method;
import java.lang.reflect.Method;
import org.apache.isis.core.commons.lang.StringExtensions;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -30,7 +31,6 @@ import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstra
import org.apache.isis.core.metamodel.facets.MethodPrefixConstants;
import org.apache.isis.core.metamodel.methodutils.MethodScope;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
public class PropertyAutoCompleteFacetMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
@@ -77,6 +77,6 @@ public class PropertyAutoCompleteFacetMethodFactory extends MethodPrefixBasedFac
adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterProvider;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java
index 062c194..c0ccb9b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java
@@ -22,6 +22,7 @@ package org.apache.isis.core.metamodel.facets.properties.choices.method;
import java.lang.reflect.Method;
import org.apache.isis.core.commons.lang.StringExtensions;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -30,7 +31,6 @@ import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstra
import org.apache.isis.core.metamodel.facets.MethodPrefixConstants;
import org.apache.isis.core.metamodel.methodutils.MethodScope;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
public class PropertyChoicesFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
@@ -74,6 +74,6 @@ public class PropertyChoicesFacetViaMethodFactory extends MethodPrefixBasedFacet
adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterProvider;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/fromtype/PropertyDefaultFacetDerivedFromTypeFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/fromtype/PropertyDefaultFacetDerivedFromTypeFactory.java
index ba40c18..a4b845e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/fromtype/PropertyDefaultFacetDerivedFromTypeFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/fromtype/PropertyDefaultFacetDerivedFromTypeFactory.java
@@ -19,13 +19,13 @@
package org.apache.isis.core.metamodel.facets.properties.defaults.fromtype;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacet;
import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
public class PropertyDefaultFacetDerivedFromTypeFactory extends FacetFactoryAbstract {
@@ -73,6 +73,6 @@ public class PropertyDefaultFacetDerivedFromTypeFactory extends FacetFactoryAbst
adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterProvider;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java
index 3ccfd58..0055a59 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java
@@ -22,6 +22,7 @@ package org.apache.isis.core.metamodel.facets.properties.defaults.method;
import java.lang.reflect.Method;
import org.apache.isis.core.commons.lang.StringExtensions;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -30,7 +31,6 @@ import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstra
import org.apache.isis.core.metamodel.facets.MethodPrefixConstants;
import org.apache.isis.core.metamodel.methodutils.MethodScope;
import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
public class PropertyDefaultFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
@@ -75,6 +75,6 @@ public class PropertyDefaultFacetViaMethodFactory extends MethodPrefixBasedFacet
adapterProvider = servicesInjector.getPersistenceSessionServiceInternal();
}
- PersistenceSessionServiceInternal adapterProvider;
+ ObjectAdapterProvider adapterProvider;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionCollectionParameterDefaultsAndChoicesPostProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionCollectionParameterDefaultsAndChoicesPostProcessor.java
index 1ee26fc..287b88c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionCollectionParameterDefaultsAndChoicesPostProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionCollectionParameterDefaultsAndChoicesPostProcessor.java
@@ -27,6 +27,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -37,7 +38,6 @@ import org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefau
import org.apache.isis.core.metamodel.progmodel.ObjectSpecificationPostProcessor;
import org.apache.isis.core.metamodel.services.ServicesInjector;
import org.apache.isis.core.metamodel.services.ServicesInjectorAware;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
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;
@@ -55,7 +55,7 @@ ServicesInjectorAware {
private DeploymentCategoryProvider deploymentCategoryProvider;
private SpecificationLoader specificationLoader;
private AuthenticationSessionProvider authenticationSessionProvider;
- private PersistenceSessionServiceInternal adapterProvider;
+ private ObjectAdapterProvider adapterProvider;
@Override
public void postProcess(final ObjectSpecification objectSpecification) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternal.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternal.java
index 544d809..933ef1e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternal.java
@@ -18,6 +18,7 @@ package org.apache.isis.core.metamodel.services.persistsession;
import java.util.List;
import java.util.concurrent.CountDownLatch;
+import java.util.function.Function;
import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.query.Query;
@@ -28,11 +29,45 @@ import org.apache.isis.applib.services.xactn.Transaction;
import org.apache.isis.applib.services.xactn.TransactionState;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
+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.runtime.system.transaction.TransactionalClosure;
public interface PersistenceSessionServiceInternal extends ObjectAdapterProvider {
+ // -- ObjectAdapterProvider
+
+ @Programmatic
+ ObjectAdapterProvider getObjectAdapterProvider();
+
+ @Programmatic
+ default ObjectAdapter adapterFor(Object domainObject) {
+ return getObjectAdapterProvider().adapterFor(domainObject);
+ }
+
+ @Programmatic
+ default ObjectAdapter adapterFor(
+ final Object pojo,
+ final ObjectAdapter parentAdapter,
+ OneToManyAssociation collection) {
+ return getObjectAdapterProvider().adapterFor(pojo, parentAdapter, collection);
+ }
+
+ @Programmatic
+ default ObjectSpecification specificationForViewModel(final Object viewModelPojo) {
+ return getObjectAdapterProvider().specificationForViewModel(viewModelPojo);
+ }
+
+ @Programmatic
+ default ObjectAdapter adapterForViewModel(
+ final Object viewModelPojo,
+ final Function<ObjectSpecId, RootOid> rootOidFactory) {
+ return getObjectAdapterProvider().adapterForViewModel(viewModelPojo, rootOidFactory);
+ }
+
+
// -- instantiate
/**
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternalNoop.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternalNoop.java
index ced85e4..86dfefb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternalNoop.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternalNoop.java
@@ -29,11 +29,9 @@ import org.apache.isis.applib.services.bookmark.BookmarkService;
import org.apache.isis.applib.services.command.Command;
import org.apache.isis.applib.services.xactn.Transaction;
import org.apache.isis.applib.services.xactn.TransactionState;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.runtime.system.transaction.TransactionalClosure;
@DomainService(
@@ -43,15 +41,7 @@ import org.apache.isis.core.runtime.system.transaction.TransactionalClosure;
public class PersistenceSessionServiceInternalNoop implements PersistenceSessionServiceInternal {
@Override
- public ObjectAdapter adapterFor(
- final Object pojo,
- final ObjectAdapter ownerAdapter,
- final OneToManyAssociation collection) {
- throw new UnsupportedOperationException("Not supported by this implementation of PersistenceSessionServiceInternal");
- }
-
- @Override
- public ObjectAdapter adapterFor(final Object domainObject) {
+ public ObjectAdapterProvider getObjectAdapterProvider() {
throw new UnsupportedOperationException("Not supported by this implementation of PersistenceSessionServiceInternal");
}
@@ -157,10 +147,7 @@ public class PersistenceSessionServiceInternalNoop implements PersistenceSession
throw new UnsupportedOperationException("Not supported by this implementation of PersistenceSessionServiceInternal");
}
- @Override
- public AdapterManager adapterManager() {
- throw _Exceptions.notImplemented();
- }
+
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceInternalDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceInternalDefault.java
index 9b1dc1c..aa513f1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceInternalDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceInternalDefault.java
@@ -22,12 +22,11 @@ package org.apache.isis.core.metamodel.services.repository;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-
-import javax.annotation.PostConstruct;
-
import java.util.function.Predicate;
import java.util.stream.Collectors;
+import javax.annotation.PostConstruct;
+
import org.apache.isis.applib.PersistFailedException;
import org.apache.isis.applib.RepositoryException;
import org.apache.isis.applib.annotation.DomainService;
@@ -41,6 +40,7 @@ import org.apache.isis.applib.services.wrapper.WrapperFactory;
import org.apache.isis.applib.services.xactn.TransactionService;
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
@DomainService(
@@ -72,7 +72,7 @@ public class RepositoryServiceInternalDefault implements RepositoryService {
@Programmatic
@Override
public boolean isPersistent(final Object domainObject) {
- final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(domainObject));
+ final ObjectAdapter adapter = getObjectAdapterProvider().adapterFor(unwrapped(domainObject));
return adapter.representsPersistent();
}
@@ -82,7 +82,7 @@ public class RepositoryServiceInternalDefault implements RepositoryService {
if (isPersistent(object)) {
return object;
}
- final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(object));
+ final ObjectAdapter adapter = getObjectAdapterProvider().adapterFor(unwrapped(object));
if(adapter == null) {
throw new PersistFailedException("Object not known to framework (unable to create/obtain an adapter)");
@@ -120,7 +120,7 @@ public class RepositoryServiceInternalDefault implements RepositoryService {
if (object == null) {
throw new IllegalArgumentException("Must specify a reference for disposing an object");
}
- final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(object));
+ final ObjectAdapter adapter = getObjectAdapterProvider().adapterFor(unwrapped(object));
if (!isPersistent(object)) {
throw new RepositoryException("Object not persistent: " + adapter);
}
@@ -206,6 +206,9 @@ public class RepositoryServiceInternalDefault implements RepositoryService {
return wrapperFactory != null ? wrapperFactory.unwrap(domainObject) : domainObject;
}
+ private ObjectAdapterProvider getObjectAdapterProvider() {
+ return persistenceSessionServiceInternal;
+ }
@javax.inject.Inject
FactoryService factoryService;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/title/TitleServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/title/TitleServiceDefault.java
index d3abc3e..83e6e68 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/title/TitleServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/title/TitleServiceDefault.java
@@ -25,6 +25,7 @@ import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.services.title.TitleService;
import org.apache.isis.applib.services.wrapper.WrapperFactory;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
@DomainService(
@@ -36,7 +37,7 @@ public class TitleServiceDefault implements TitleService {
@Programmatic
@Override
public String titleOf(final Object domainObject) {
- final ObjectAdapter objectAdapter = adapterManager.adapterFor(unwrapped(domainObject));
+ final ObjectAdapter objectAdapter = getObjectAdapterProvider().adapterFor(unwrapped(domainObject));
final boolean destroyed = objectAdapter.isDestroyed();
if(!destroyed) {
return objectAdapter.getSpecification().getTitle(null, objectAdapter);
@@ -48,13 +49,10 @@ public class TitleServiceDefault implements TitleService {
@Programmatic
@Override
public String iconNameOf(final Object domainObject) {
- final ObjectAdapter objectAdapter = adapterManager.adapterFor(unwrapped(domainObject));
+ final ObjectAdapter objectAdapter = getObjectAdapterProvider().adapterFor(unwrapped(domainObject));
return objectAdapter.getSpecification().getIconName(objectAdapter);
}
-
-
-
// //////////////////////////////////////
private Object unwrapped(Object domainObject) {
@@ -63,8 +61,12 @@ public class TitleServiceDefault implements TitleService {
// //////////////////////////////////////
+ private ObjectAdapterProvider getObjectAdapterProvider() {
+ return sessionServiceInternal;
+ }
+
@javax.inject.Inject
- PersistenceSessionServiceInternal adapterManager;
+ PersistenceSessionServiceInternal sessionServiceInternal;
@javax.inject.Inject
WrapperFactory wrapperFactory;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
index b6d12bf..2393eb8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
@@ -31,6 +31,7 @@ import org.apache.isis.applib.services.command.Command;
import org.apache.isis.applib.services.command.CommandContext;
import org.apache.isis.core.commons.lang.StringExtensions;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.consent.InteractionResult;
@@ -330,7 +331,7 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
final ObjectSpecification objectSpecification = getSpecificationLoader().loadSpecification(mixinType);
final MixinFacet mixinFacet = objectSpecification.getFacet(MixinFacet.class);
final Object mixinPojo = mixinFacet.instantiate(mixedInAdapter.getObject());
- return getPersistenceSessionService().adapterFor(mixinPojo);
+ return getObjectAdapterProvider().adapterFor(mixinPojo);
}
public static String determineNameFrom(final ObjectAction mixinAction) {
@@ -394,6 +395,10 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
return servicesInjector;
}
+ protected ObjectAdapterProvider getObjectAdapterProvider() {
+ return getPersistenceSessionService();
+ }
+
public PersistenceSessionServiceInternal getPersistenceSessionService() {
return persistenceSessionServiceInternal;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java
index 3d122af..2ec841b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java
@@ -166,8 +166,6 @@ public class OneToManyAssociationContributee extends OneToManyAssociationDefault
return facetHolder;
}
-
-
private ObjectAdapter getServiceAdapter() {
return getPersistenceSessionService().adapterFor(servicePojo);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
index e4dd54e..4ecdb15 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
@@ -165,7 +165,7 @@ public class OneToManyAssociationDefault extends ObjectAssociationAbstract imple
if (collection == null) {
return null;
}
- return getPersistenceSessionService().adapterFor(collection, ownerAdapter, this);
+ return getObjectAdapterProvider().adapterFor(collection, ownerAdapter, this);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
index a9f75f8..bd313fa 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
@@ -148,27 +148,14 @@ public class OneToOneAssociationDefault extends ObjectAssociationAbstract implem
return null;
}
- return getPersistenceSessionService().adapterFor(referencedPojo);
+ return getObjectAdapterProvider().adapterFor(referencedPojo);
}
- // REVIEW: UNUSED
- //TODO [ahuber] remove?
- // private PropertyAccessContext createAccessInteractionContext(
- // final ObjectAdapter ownerAdapter,
- // final InteractionInitiatedBy interactionInitiatedBy) {
- // final ObjectAdapter referencedAdapter = get(ownerAdapter, interactionInitiatedBy);
- // return new PropertyAccessContext(
- // ownerAdapter, getIdentifier(), referencedAdapter, interactionInitiatedBy
- // );
- // }
-
@Override
public boolean isEmpty(final ObjectAdapter ownerAdapter, final InteractionInitiatedBy interactionInitiatedBy) {
return get(ownerAdapter, interactionInitiatedBy) == null;
}
-
-
// -- Set
@Override
public void set(
@@ -285,7 +272,7 @@ public class OneToOneAssociationDefault extends ObjectAssociationAbstract implem
getSpecificationLoader(),
interactionInitiatedBy);
List<ObjectAdapter> adapters = _NullSafe.stream(pojoOptions)
- .map( ObjectAdapter.Functions.adapterForUsing(getPersistenceSessionService()) )
+ .map( ObjectAdapter.Functions.adapterForUsing( getObjectAdapterProvider() ) )
.collect(Collectors.toList());
return adapters.toArray(new ObjectAdapter[]{});
}
@@ -308,7 +295,7 @@ public class OneToOneAssociationDefault extends ObjectAssociationAbstract implem
if (pojoOptions != null) {
final ObjectAdapter[] options = new ObjectAdapter[pojoOptions.length];
for (int i = 0; i < options.length; i++) {
- options[i] = getPersistenceSessionService().adapterFor(pojoOptions[i]);
+ options[i] = getObjectAdapterProvider().adapterFor(pojoOptions[i]);
}
return options;
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java
index 8b60acb..da938f6 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java
@@ -108,7 +108,8 @@ public class CollectionAnnotationFacetFactoryTest extends AbstractFacetFactoryJU
private void addGetterFacet(final FacetHolder holder) {
FacetUtil.addFacet(new PropertyOrCollectionAccessorFacetAbstract(mockOnType, holder, mockDeploymentCategoryProvider.getDeploymentCategory(),
mockConfiguration,
- mockSpecificationLoader, mockAuthenticationSessionProvider,
+ mockSpecificationLoader,
+ mockAuthenticationSessionProvider,
mockPersistenceSessionServiceInternal
) {
@Override
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java
index a73be2d..ff774f7 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java
@@ -118,7 +118,8 @@ public class PropertyAnnotationFacetFactoryTest extends AbstractFacetFactoryJUni
private void addGetterFacet(final FacetHolder holder) {
FacetUtil.addFacet(new PropertyOrCollectionAccessorFacetAbstract(mockOnType, holder, mockDeploymentCategoryProvider.getDeploymentCategory(),
mockConfiguration,
- mockSpecificationLoader, mockAuthenticationSessionProvider,
+ mockSpecificationLoader,
+ mockAuthenticationSessionProvider,
mockPersistenceSessionServiceInternal
) {
@Override
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
index aa47c93..df614fd 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
@@ -19,10 +19,16 @@
package org.apache.isis.core.metamodel.facets.value;
+import static org.apache.isis.core.unittestsupport.jmocking.JMockActions.returnArgument;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
import java.util.Locale;
-import org.apache.isis.core.metamodel.services.configinternal.ConfigurationServiceInternal;
-import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
import org.jmock.Expectations;
import org.jmock.auto.Mock;
import org.junit.After;
@@ -39,20 +45,13 @@ import org.apache.isis.core.metamodel.facets.object.encodeable.encoder.Encodable
import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
import org.apache.isis.core.metamodel.facets.object.parseable.parser.ParseableFacetUsingParser;
import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderAndFacetAbstract;
-
import org.apache.isis.core.metamodel.services.ServicesInjector;
+import org.apache.isis.core.metamodel.services.configinternal.ConfigurationServiceInternal;
+import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
-import static org.apache.isis.core.unittestsupport.jmocking.JMockActions.returnArgument;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.nullValue;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
-
public abstract class ValueSemanticsProviderAbstractTestCase {
@Rule
@@ -69,7 +68,7 @@ public abstract class ValueSemanticsProviderAbstractTestCase {
@Mock
protected ServicesInjector mockServicesInjector;
@Mock
- protected PersistenceSessionServiceInternal mockAdapterManager;
+ protected PersistenceSessionServiceInternal mockSessionServiceInternal;
@Mock
protected SpecificationLoader mockSpecificationLoader;
@Mock
@@ -99,7 +98,7 @@ public abstract class ValueSemanticsProviderAbstractTestCase {
will(returnValue(mockAuthenticationSessionProvider));
allowing(mockServicesInjector).getPersistenceSessionServiceInternal();
- will(returnValue(mockAdapterManager));
+ will(returnValue(mockSessionServiceInternal));
allowing(mockServicesInjector).lookupService(AuthenticationSessionProvider.class);
will(returnValue(mockAuthenticationSessionProvider));
@@ -107,7 +106,7 @@ public abstract class ValueSemanticsProviderAbstractTestCase {
allowing(mockServicesInjector).injectServicesInto(with(any(Object.class)));
never(mockAuthenticationSessionProvider);
- never(mockAdapterManager);
+ never(mockSessionServiceInternal);
}
});
}
@@ -128,7 +127,10 @@ public abstract class ValueSemanticsProviderAbstractTestCase {
protected void setValue(final ValueSemanticsProviderAndFacetAbstract<?> value) {
this.valueSemanticsProvider = value;
- this.encodeableFacet = new EncodableFacetUsingEncoderDecoder(value, mockFacetHolder, mockAdapterManager,
+ this.encodeableFacet = new EncodableFacetUsingEncoderDecoder(
+ value,
+ mockFacetHolder,
+ mockSessionServiceInternal,
mockServicesInjector);
this.parseableFacet = new ParseableFacetUsingParser(value, mockFacetHolder, mockServicesInjector);
}
diff --git a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java
index 313c5e0..ecf5bef 100644
--- a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java
+++ b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java
@@ -32,6 +32,7 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;
+import java.util.function.Function;
import javax.jdo.FetchGroup;
import javax.jdo.FetchPlan;
@@ -1946,8 +1947,13 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
}
@Override
- public AdapterManager adapterManager() {
- return this;
+ public ObjectSpecification specificationForViewModel(Object viewModelPojo) {
+ return objectAdapterContext.specificationForViewModel(viewModelPojo);
+ }
+
+ @Override
+ public ObjectAdapter adapterForViewModel(Object viewModelPojo, Function<ObjectSpecId, RootOid> rootOidFactory) {
+ return objectAdapterContext.adapterForViewModel(viewModelPojo, rootOidFactory);
}
}
diff --git a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java
index b38da77..f5ab46b 100644
--- a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java
+++ b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java
@@ -32,6 +32,7 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;
+import java.util.function.Function;
import javax.jdo.FetchGroup;
import javax.jdo.FetchPlan;
@@ -1939,11 +1940,15 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
}
@Override
- public AdapterManager adapterManager() {
- return this;
+ public ObjectSpecification specificationForViewModel(Object viewModelPojo) {
+ return objectAdapterContext.specificationForViewModel(viewModelPojo);
}
-
+ @Override
+ public ObjectAdapter adapterForViewModel(Object viewModelPojo, Function<ObjectSpecId, RootOid> rootOidFactory) {
+ return objectAdapterContext.adapterForViewModel(viewModelPojo, rootOidFactory);
+ }
+
}
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/persistsession/PersistenceSessionServiceInternalDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/persistsession/PersistenceSessionServiceInternalDefault.java
index 2638611..f7d944c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/persistsession/PersistenceSessionServiceInternalDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/persistsession/PersistenceSessionServiceInternalDefault.java
@@ -35,12 +35,11 @@ import org.apache.isis.applib.services.command.Command;
import org.apache.isis.applib.services.xactn.Transaction;
import org.apache.isis.applib.services.xactn.TransactionState;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
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.persistence.PersistenceSession;
import org.apache.isis.core.runtime.system.session.IsisSession;
@@ -56,17 +55,7 @@ import org.apache.isis.core.runtime.system.transaction.TransactionalClosure;
public class PersistenceSessionServiceInternalDefault implements PersistenceSessionServiceInternal {
@Override
- public ObjectAdapter adapterFor(Object domainObject) {
- return getPersistenceSession().adapterFor(domainObject);
- }
-
- @Override
- public ObjectAdapter adapterFor(Object pojo, ObjectAdapter parentAdapter, OneToManyAssociation collection) {
- return getPersistenceSession().adapterFor(pojo, parentAdapter, collection);
- }
-
- @Override
- public AdapterManager adapterManager() {
+ public ObjectAdapterProvider getObjectAdapterProvider() {
return getPersistenceSession();
}
@@ -220,7 +209,4 @@ public class PersistenceSessionServiceInternalDefault implements PersistenceSess
@javax.inject.Inject
IsisSessionFactory isisSessionFactory;
-
-
-
}
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
index b5d5a59..4caa08d 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
@@ -27,6 +27,7 @@ import org.apache.isis.applib.services.bookmark.BookmarkService.FieldResetPolicy
import org.apache.isis.core.commons.components.SessionScopedComponent;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.adapter.oid.ParentedCollectionOid;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
@@ -60,6 +61,10 @@ public interface PersistenceSession extends AdapterManager, TransactionalResourc
// -- INTERFACE DECLARATION
+ default ObjectAdapterProvider getObjectAdapterProvider() {
+ return this;
+ }
+
ObjectAdapter adapterFor(RootOid rootOid);
ObjectAdapter adapterFor(RootOid oid, ConcurrencyChecking concurrencyChecking);
@@ -151,5 +156,4 @@ public interface PersistenceSession extends AdapterManager, TransactionalResourc
boolean isDestroyed(Object pojo);
-
}
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java
index 7d9c90d..c3cdc1d 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java
@@ -18,12 +18,16 @@
*/
package org.apache.isis.core.runtime.system.persistence.adaptermanager;
+import java.util.UUID;
+import java.util.function.Function;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.ensure.IsisAssertException;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.ParentedCollectionOid;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
@@ -47,14 +51,20 @@ public class ObjectAdapterContext {
private final PojoAdapterHashMap pojoAdapterMap = new PojoAdapterHashMap();
private final OidAdapterHashMap oidAdapterMap = new OidAdapterHashMap();
+ private final AdapterManager adapterManager; //FIXME[ISIS-1976] remove
private final ServicesInjector servicesInjector;
+ private final SpecificationLoader specificationLoader;
ObjectAdapterContext(
ServicesInjector servicesInjector,
AuthenticationSession authenticationSession,
SpecificationLoader specificationLoader,
PersistenceSession persistenceSession) {
+
+ this.adapterManager = persistenceSession;
this.servicesInjector = servicesInjector;
+ this.specificationLoader = specificationLoader;
+
this.objectAdapterFactories = new ObjectAdapterContext_Factories(
authenticationSession,
specificationLoader,
@@ -191,6 +201,41 @@ public class ObjectAdapterContext {
oidAdapterMap.add(adapter.getOid(), adapter);
}
+ public ObjectSpecification specificationForViewModel(Object viewModelPojo) {
+ //FIXME[ISIS-1976]
+ // this is horrible, but there's a catch-22 here...
+ // we need an adapter in order to query the state of the object via the metamodel, on the other hand
+ // we can't create an adapter without the identifier, which is what we're trying to derive
+ // so... we create a temporary transient adapter, use it to wrap this adapter and interrogate this pojo,
+ // then throw away that adapter (remove from the adapter map)
+ final boolean[] createdTemporaryAdapter = {false};
+ final ObjectAdapter viewModelAdapter = adapterForViewModel(
+ viewModelPojo,
+ (ObjectSpecId objectSpecId)->{
+ createdTemporaryAdapter[0] = true;
+ return RootOid.create(objectSpecId, UUID.randomUUID().toString()); });
+
+ final ObjectSpecification spec = viewModelAdapter.getSpecification();
+
+ if(createdTemporaryAdapter[0]) {
+ adapterManager.removeAdapterFromCache(viewModelAdapter);
+ }
+ return spec;
+ }
+
+ public ObjectAdapter adapterForViewModel(Object viewModelPojo, Function<ObjectSpecId, RootOid> rootOidFactory) {
+ ObjectAdapter viewModelAdapter = adapterManager.lookupAdapterFor(viewModelPojo);
+ if(viewModelAdapter == null) {
+ final ObjectSpecification objectSpecification =
+ specificationLoader.loadSpecification(viewModelPojo.getClass());
+ final ObjectSpecId objectSpecId = objectSpecification.getSpecId();
+ final RootOid newRootOid = rootOidFactory.apply(objectSpecId);
+
+ viewModelAdapter = adapterManager.addRecreatedPojoToCache(newRootOid, viewModelPojo);
+ }
+ return viewModelAdapter;
+ }
+
/**
* was in PersisenceSessionX, temporarily moved here to successfully compile
*
@@ -317,7 +362,4 @@ public class ObjectAdapterContext {
-
-
-
}
\ No newline at end of file
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterLegacy.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterLegacy.java
index 6ff463d..2f01ffa 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterLegacy.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterLegacy.java
@@ -19,7 +19,6 @@
package org.apache.isis.core.runtime.system.persistence.adaptermanager;
import java.util.List;
-import java.util.function.Supplier;
import com.google.common.collect.Lists;
@@ -79,10 +78,6 @@ public class ObjectAdapterLegacy {
return objectAdapterContext;
}
- public static interface ObjectAdapterProvider extends Supplier<ObjectAdapter> {
-
- }
-
// -- CommandExecutorServiceDefault --------------------------------------------------------
public static class __CommandExecutorServiceDefault {
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
index 8d6b07a..6092a5a 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -26,6 +26,9 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.services.wrapper.DisabledException;
import org.apache.isis.applib.services.wrapper.HiddenException;
@@ -45,6 +48,7 @@ import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
import org.apache.isis.core.metamodel.IsisJdoMetamodelPlugin;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.consent.InteractionResult;
@@ -68,9 +72,6 @@ import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionMixedIn;
import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-
public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandlerDefault<T> {
private final AuthenticationSessionProvider authenticationSessionProvider;
@@ -683,7 +684,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
}
private ObjectAdapter adapterFor(final Object obj) {
- return obj != null ? getPersistenceSessionService().adapterFor(obj) : null;
+ return obj != null ? getObjectAdapterProvider().adapterFor(obj) : null;
}
private Object underlying(final Object arg) {
@@ -825,6 +826,10 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
return getAuthenticationSessionProvider().getAuthenticationSession();
}
+ protected ObjectAdapterProvider getObjectAdapterProvider() {
+ return persistenceSessionServiceInternal;
+ }
+
protected PersistenceSessionServiceInternal getPersistenceSessionService() {
return persistenceSessionServiceInternal;
}