You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/11/19 09:29:18 UTC
[isis] branch 2177-object-manager updated: ISIS-2177: let
PersistenceSessionServiceInternal no longer extend ObjectAdapterProvider
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch 2177-object-manager
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/2177-object-manager by this push:
new 3ca1131 ISIS-2177: let PersistenceSessionServiceInternal no longer extend ObjectAdapterProvider
3ca1131 is described below
commit 3ca11319dc5853b266095dd20428d4e56553a084
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Nov 19 10:29:10 2019 +0100
ISIS-2177: let PersistenceSessionServiceInternal no longer extend
ObjectAdapterProvider
---
.../PersistenceSessionServiceInternal.java | 3 +--
.../repository/RepositoryServiceDefault.java | 6 ++---
.../PersistenceSessionServiceInternalDefault.java | 29 +++++++++-------------
3 files changed, 15 insertions(+), 23 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/persistsession/PersistenceSessionServiceInternal.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/persistsession/PersistenceSessionServiceInternal.java
index b8001b4..25a4b0c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/persistsession/PersistenceSessionServiceInternal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/persistsession/PersistenceSessionServiceInternal.java
@@ -20,9 +20,8 @@ package org.apache.isis.metamodel.services.persistsession;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.applib.services.bookmark.BookmarkService;
-import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
-public interface PersistenceSessionServiceInternal extends ObjectAdapterProvider {
+public interface PersistenceSessionServiceInternal {
/**
* Provided by <tt>PersistenceSession</tt> when used by framework.
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/repository/RepositoryServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/repository/RepositoryServiceDefault.java
index 430ae75..7dcff0f 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/repository/RepositoryServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/repository/RepositoryServiceDefault.java
@@ -42,7 +42,6 @@ import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.config.IsisConfiguration;
import org.apache.isis.metamodel.MetaModelContext;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.services.persistsession.PersistenceSessionServiceInternal;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.runtime.system.persistence.PersistenceSession;
@@ -55,7 +54,6 @@ public class RepositoryServiceDefault implements RepositoryService {
@Inject private WrapperFactory wrapperFactory;
@Inject private TransactionService transactionService;
@Inject private MetaModelContext metaModelContext;
- @Inject private PersistenceSessionServiceInternal persistenceSessionServiceInternal;
@Inject private IsisConfiguration isisConfiguration;
private boolean autoFlush;
@@ -106,7 +104,7 @@ public class RepositoryServiceDefault implements RepositoryService {
if (isPersistent(object)) {
return object;
}
- final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(object));
+ val adapter = getPersistenceSession().adapterFor(unwrapped(object));
if(adapter == null) {
throw new PersistFailedException("Object not known to framework (unable to create/obtain an adapter)");
@@ -143,7 +141,7 @@ public class RepositoryServiceDefault implements RepositoryService {
if (object == null) {
throw new IllegalArgumentException("Must specify a reference for disposing an object");
}
- final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(object));
+ val adapter = getPersistenceSession().adapterFor(unwrapped(object));
if (!isPersistent(object)) {
throw new RepositoryException("Object not persistent: " + adapter);
}
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/PersistenceSessionServiceInternalDefault.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/PersistenceSessionServiceInternalDefault.java
index e9d9c50..ba58e56 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/PersistenceSessionServiceInternalDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/PersistenceSessionServiceInternalDefault.java
@@ -26,17 +26,17 @@ import org.apache.isis.applib.NonRecoverableException;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.applib.services.bookmark.BookmarkService;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.oid.Oid;
import org.apache.isis.metamodel.adapter.oid.Oid.Factory;
import org.apache.isis.metamodel.adapter.oid.RootOid;
import org.apache.isis.metamodel.services.persistsession.PersistenceSessionServiceInternal;
-import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.specloader.SpecificationLoader;
import org.apache.isis.runtime.system.persistence.PersistenceSession;
import static org.apache.isis.commons.internal.base._With.acceptIfPresent;
import static org.apache.isis.commons.internal.base._With.mapIfPresentElse;
+import lombok.val;
+
@Service
public class PersistenceSessionServiceInternalDefault
implements PersistenceSessionServiceInternal {
@@ -44,17 +44,12 @@ implements PersistenceSessionServiceInternal {
@Inject private SpecificationLoader specificationLoader;
@Override
- public ObjectAdapter adapterFor(Object pojo) {
- return getPersistenceSession().adapterFor(pojo);
- }
-
- @Override
public Object lookup(
final Bookmark bookmark,
final BookmarkService.FieldResetPolicy fieldResetPolicy) {
- final RootOid rootOid = Factory.ofBookmark(bookmark);
- final PersistenceSession ps = getPersistenceSession();
+ val rootOid = Factory.ofBookmark(bookmark);
+ val ps = getPersistenceSession();
final boolean denyRefresh = fieldResetPolicy == BookmarkService.FieldResetPolicy.DONT_REFRESH;
if(rootOid.isViewModel()) {
@@ -65,13 +60,13 @@ implements PersistenceSessionServiceInternal {
} else if(denyRefresh) {
- final Object pojo = ps.fetchPersistentPojoInTransaction(rootOid);
+ val pojo = ps.fetchPersistentPojoInTransaction(rootOid);
return pojo;
} else {
- final ObjectAdapter adapter = ps.adapterFor(rootOid);
+ val adapter = ps.adapterFor(rootOid);
- final Object pojo = mapIfPresentElse(adapter, ObjectAdapter::getPojo, null);
+ val pojo = mapIfPresentElse(adapter, ObjectAdapter::getPojo, null);
acceptIfPresent(pojo, ps::refreshRootInTransaction);
return pojo;
}
@@ -80,24 +75,24 @@ implements PersistenceSessionServiceInternal {
@Override
public Bookmark bookmarkFor(Object domainObject) {
- final ObjectAdapter adapter = getPersistenceSession().adapterFor(domainObject);
+ val adapter = getPersistenceSession().adapterFor(domainObject);
if(adapter.isValue()) {
// values cannot be bookmarked
return null;
}
- final Oid oid = adapter.getOid();
+ val oid = adapter.getOid();
if(!(oid instanceof RootOid)) {
// must be root
return null;
}
- final RootOid rootOid = (RootOid) oid;
+ val rootOid = (RootOid) oid;
return rootOid.asBookmark();
}
@Override
public Bookmark bookmarkFor(Class<?> cls, String identifier) {
- final ObjectSpecification objectSpec = specificationLoader.loadSpecification(cls);
- String objectType = objectSpec.getSpecId().asString();
+ val spec = specificationLoader.loadSpecification(cls);
+ val objectType = spec.getSpecId().asString();
return new Bookmark(objectType, identifier);
}