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);
     }