You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/09/11 00:09:08 UTC

[44/50] isis git commit: ISIS-1194: passing PersistenceSession through to PersistenceQueryProcessor implementations

ISIS-1194: passing PersistenceSession through to PersistenceQueryProcessor implementations


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/75dc6301
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/75dc6301
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/75dc6301

Branch: refs/heads/master
Commit: 75dc6301aef2e8a11a1f7be8c44548a0feb195bc
Parents: be852c9
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 17:00:45 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 17:00:45 2015 +0100

----------------------------------------------------------------------
 .../system/persistence/PersistenceSession.java  |  8 ++---
 ...rsistenceQueryFindAllInstancesProcessor.java | 10 +++---
 ...tenceQueryFindUsingApplibQueryProcessor.java | 12 +++++---
 .../PersistenceQueryProcessorAbstract.java      | 32 +++++++-------------
 4 files changed, 28 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/75dc6301/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
----------------------------------------------------------------------
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 80795e7..112bc3f 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
@@ -239,12 +239,12 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
 
         persistenceQueryProcessorByClass.put(
                 PersistenceQueryFindAllInstances.class,
-                new PersistenceQueryFindAllInstancesProcessor(
-                        persistenceManager, frameworkSynchronizer));
+                new PersistenceQueryFindAllInstancesProcessor(this,
+                        persistenceManager));
         persistenceQueryProcessorByClass.put(
                 PersistenceQueryFindUsingApplibQueryDefault.class,
-                new PersistenceQueryFindUsingApplibQueryProcessor(
-                        persistenceManager, frameworkSynchronizer));
+                new PersistenceQueryFindUsingApplibQueryProcessor(this,
+                        persistenceManager));
 
         initServices();
 

http://git-wip-us.apache.org/repos/asf/isis/blob/75dc6301/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
index 1b59683..bf10feb 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
@@ -29,14 +29,16 @@ import org.slf4j.LoggerFactory;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.runtime.persistence.query.PersistenceQueryFindAllInstances;
-import org.apache.isis.core.runtime.system.persistence.FrameworkSynchronizer;
+import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 
 public class PersistenceQueryFindAllInstancesProcessor extends PersistenceQueryProcessorAbstract<PersistenceQueryFindAllInstances> {
 
     private static final Logger LOG = LoggerFactory.getLogger(PersistenceQueryFindAllInstancesProcessor.class);
 
-    public PersistenceQueryFindAllInstancesProcessor(final PersistenceManager persistenceManager, final FrameworkSynchronizer frameworkSynchronizer) {
-        super(persistenceManager);
+    public PersistenceQueryFindAllInstancesProcessor(
+            final PersistenceSession persistenceSession,
+            final PersistenceManager persistenceManager) {
+        super(persistenceSession, persistenceManager);
     }
 
     public List<ObjectAdapter> process(final PersistenceQueryFindAllInstances persistenceQuery) {
@@ -55,7 +57,7 @@ public class PersistenceQueryFindAllInstancesProcessor extends PersistenceQueryP
 
         try {
             final List<?> pojos = (List<?>) jdoQuery.execute();
-            return loadAdapters(specification, pojos);
+            return loadAdapters(pojos);
         } finally {
             jdoQuery.closeAll();
         }

http://git-wip-us.apache.org/repos/asf/isis/blob/75dc6301/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
index afd04a6..65e7e1a 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
@@ -36,15 +36,17 @@ import org.apache.isis.core.metamodel.services.container.query.QueryCardinality;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 import org.apache.isis.core.runtime.persistence.query.PersistenceQueryFindUsingApplibQueryDefault;
+import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.objectstore.jdo.datanucleus.metamodel.JdoPropertyUtils;
-import org.apache.isis.core.runtime.system.persistence.FrameworkSynchronizer;
 
 public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQueryProcessorAbstract<PersistenceQueryFindUsingApplibQueryDefault> {
     
     private static final Logger LOG = LoggerFactory.getLogger(PersistenceQueryFindUsingApplibQueryProcessor.class);
 
-    public PersistenceQueryFindUsingApplibQueryProcessor(final PersistenceManager persistenceManager, final FrameworkSynchronizer frameworkSynchronizer) {
-        super(persistenceManager);
+    public PersistenceQueryFindUsingApplibQueryProcessor(
+            final PersistenceSession persistenceSession,
+            final PersistenceManager persistenceManager) {
+        super(persistenceSession, persistenceManager);
     }
 
     public List<ObjectAdapter> process(final PersistenceQueryFindUsingApplibQueryDefault persistenceQuery) {
@@ -58,7 +60,7 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
             results = getResults(persistenceQuery);
         }
         
-        return loadAdapters(objectSpec, results);
+        return loadAdapters(results);
     }
 
     // special case handling
@@ -99,7 +101,7 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
         final QueryCardinality cardinality = persistenceQuery.getCardinality();
         final ObjectSpecification objectSpec = persistenceQuery.getSpecification();
 
-        final PersistenceManager persistenceManager = getPersistenceSession().getPersistenceManager();
+        final PersistenceManager persistenceManager = persistenceSession.getPersistenceManager();
         final Class<?> cls = objectSpec.getCorrespondingClass();
         final Query jdoQuery = persistenceManager.newNamedQuery(cls, queryName);
         

http://git-wip-us.apache.org/repos/asf/isis/blob/75dc6301/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
index 05db979..f169a6b 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
@@ -31,9 +31,6 @@ import org.datanucleus.enhancement.Persistable;
 
 import org.apache.isis.core.commons.ensure.Assert;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.persistence.FrameworkSynchronizer.CalledFrom;
 import org.apache.isis.core.runtime.system.persistence.PersistenceQuery;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
@@ -42,9 +39,13 @@ import org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleList
 public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQuery>
         implements PersistenceQueryProcessor<T> {
 
+    final PersistenceSession persistenceSession;
     private final PersistenceManager persistenceManager;
 
-    protected PersistenceQueryProcessorAbstract(final PersistenceManager persistenceManager) {
+    protected PersistenceQueryProcessorAbstract(
+            final PersistenceSession persistenceSession,
+            final PersistenceManager persistenceManager) {
+        this.persistenceSession = persistenceSession;
         this.persistenceManager = persistenceManager;
     }
 
@@ -60,7 +61,8 @@ public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQue
     protected PersistenceManagerFactory getPersistenceManagerFactory() {
         return getPersistenceManager().getPersistenceManagerFactory();
     }
-    
+
+    // TODO: unused?
     protected TypeMetadata getTypeMetadata(final String classFullName) {
         return getPersistenceManagerFactory().getMetadata(classFullName);
     }
@@ -70,8 +72,7 @@ public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQue
      * {@link IsisLifecycleListener#postLoad(InstanceLifecycleEvent) {
      * to be called.
      */
-    protected List<ObjectAdapter> loadAdapters(
-            final ObjectSpecification specification, final List<?> pojos) {
+    protected List<ObjectAdapter> loadAdapters(final List<?> pojos) {
         final List<ObjectAdapter> adapters = Lists.newArrayList();
         for (final Object pojo : pojos) {
         	// ought not to be necessary, however for some queries it seems that the 
@@ -79,11 +80,11 @@ public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQue
             ObjectAdapter adapter;
             if(pojo instanceof Persistable) {
                 // an entity
-                getPersistenceSession().postLoadProcessingFor((Persistable) pojo, CalledFrom.OS_QUERY);
-                adapter = getAdapterManager().getAdapterFor(pojo);
+                persistenceSession.postLoadProcessingFor((Persistable) pojo, CalledFrom.OS_QUERY);
+                adapter = persistenceSession.getAdapterFor(pojo);
             } else {
                 // a value type
-                adapter = getAdapterManager().adapterFor(pojo);
+                adapter = persistenceSession.adapterFor(pojo);
             }
             Assert.assertNotNull(adapter);
             adapters.add(adapter);
@@ -91,16 +92,5 @@ public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQue
         return adapters;
     }
 
-    // /////////////////////////////////////////////////////////////
-    // Dependencies (from context)
-    // /////////////////////////////////////////////////////////////
-
-    protected PersistenceSession getPersistenceSession() {
-        return IsisContext.getPersistenceSession();
-    }
-
-    protected AdapterManager getAdapterManager() {
-        return IsisContext.getPersistenceSession().getAdapterManager();
-    }
 
 }