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/10 18:12:34 UTC

[34/34] isis git commit: ISIS-1194: law of demeter for PersistenceQueryProcessor impls and JDO PersistenceManager ... moved to PersistenceSession

ISIS-1194: law of demeter for PersistenceQueryProcessor impls and JDO PersistenceManager ... moved to PersistenceSession


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

Branch: refs/heads/ISIS-1194
Commit: 4616a3739db4e30a7cc9f746dae14e2cbfd18877
Parents: 75dc630
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 17:11:49 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 17:11:49 2015 +0100

----------------------------------------------------------------------
 .../system/persistence/PersistenceSession.java  | 20 ++++++++++++----
 .../persistence/IsisLifecycleListener.java      |  5 +---
 ...rsistenceQueryFindAllInstancesProcessor.java |  9 +++-----
 ...tenceQueryFindUsingApplibQueryProcessor.java | 15 +++++-------
 .../PersistenceQueryProcessorAbstract.java      | 24 ++------------------
 5 files changed, 27 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/4616a373/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 112bc3f..b093812 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
@@ -234,17 +234,15 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
 
         persistenceManager = applicationComponents.getPersistenceManagerFactory().getPersistenceManager();
 
-        final IsisLifecycleListener isisLifecycleListener = new IsisLifecycleListener(this, frameworkSynchronizer);
+        final IsisLifecycleListener2 isisLifecycleListener = new IsisLifecycleListener2(this);
         persistenceManager.addInstanceLifecycleListener(isisLifecycleListener, (Class[])null);
 
         persistenceQueryProcessorByClass.put(
                 PersistenceQueryFindAllInstances.class,
-                new PersistenceQueryFindAllInstancesProcessor(this,
-                        persistenceManager));
+                new PersistenceQueryFindAllInstancesProcessor(this));
         persistenceQueryProcessorByClass.put(
                 PersistenceQueryFindUsingApplibQueryDefault.class,
-                new PersistenceQueryFindUsingApplibQueryProcessor(this,
-                        persistenceManager));
+                new PersistenceQueryFindUsingApplibQueryProcessor(this));
 
         initServices();
 
@@ -1175,6 +1173,18 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
     public Object getJdoObjectId(Object pojo) {
         return persistenceManager.getObjectId(pojo);
     }
+
+    public javax.jdo.Query newJdoQuery(Class<?> cls) {
+        return persistenceManager.newQuery(cls);
+    }
+
+    public javax.jdo.Query newJdoNamedQuery (Class<?> cls, String queryName) {
+        return persistenceManager.newNamedQuery(cls, queryName);
+    }
+
+    public javax.jdo.Query newJdoQuery (Class<?> cls, String filter) {
+        return persistenceManager.newQuery(cls, filter);
+    }
     // endregion
 
     //region > AdapterManager delegate methods

http://git-wip-us.apache.org/repos/asf/isis/blob/4616a373/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
index e25ecf5..3d71527 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
@@ -21,7 +21,6 @@ package org.apache.isis.objectstore.jdo.datanucleus.persistence;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.isis.core.runtime.system.persistence.FrameworkSynchronizer;
 import org.apache.isis.core.runtime.system.persistence.IsisLifecycleListener2;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 
@@ -33,9 +32,7 @@ public class IsisLifecycleListener extends IsisLifecycleListener2 {
 
     public static final Logger LOG = LoggerFactory.getLogger(IsisLifecycleListener.class);
 
-    public IsisLifecycleListener(
-            final PersistenceSession persistenceSession,
-            final FrameworkSynchronizer synchronizer) {
+    public IsisLifecycleListener(final PersistenceSession persistenceSession) {
         super(persistenceSession);
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/4616a373/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 bf10feb..c9830e6 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
@@ -20,7 +20,6 @@ package org.apache.isis.objectstore.jdo.datanucleus.persistence.queries;
 
 import java.util.List;
 
-import javax.jdo.PersistenceManager;
 import javax.jdo.Query;
 
 import org.slf4j.Logger;
@@ -35,10 +34,8 @@ public class PersistenceQueryFindAllInstancesProcessor extends PersistenceQueryP
 
     private static final Logger LOG = LoggerFactory.getLogger(PersistenceQueryFindAllInstancesProcessor.class);
 
-    public PersistenceQueryFindAllInstancesProcessor(
-            final PersistenceSession persistenceSession,
-            final PersistenceManager persistenceManager) {
-        super(persistenceSession, persistenceManager);
+    public PersistenceQueryFindAllInstancesProcessor(final PersistenceSession persistenceSession) {
+        super(persistenceSession);
     }
 
     public List<ObjectAdapter> process(final PersistenceQueryFindAllInstances persistenceQuery) {
@@ -46,7 +43,7 @@ public class PersistenceQueryFindAllInstancesProcessor extends PersistenceQueryP
         final ObjectSpecification specification = persistenceQuery.getSpecification();
         
         Class<?> cls = specification.getCorrespondingClass();
-        final Query jdoQuery = getPersistenceManager().newQuery(cls);
+        final Query jdoQuery = persistenceSession.newJdoQuery(cls);
         
         // http://www.datanucleus.org/servlet/jira/browse/NUCCORE-1103
         jdoQuery.addExtension("datanucleus.multivaluedFetch", "none");

http://git-wip-us.apache.org/repos/asf/isis/blob/4616a373/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 65e7e1a..d5a65b7 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
@@ -22,7 +22,6 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
-import javax.jdo.PersistenceManager;
 import javax.jdo.Query;
 
 import com.google.common.collect.Lists;
@@ -43,10 +42,8 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
     
     private static final Logger LOG = LoggerFactory.getLogger(PersistenceQueryFindUsingApplibQueryProcessor.class);
 
-    public PersistenceQueryFindUsingApplibQueryProcessor(
-            final PersistenceSession persistenceSession,
-            final PersistenceManager persistenceManager) {
-        super(persistenceSession, persistenceManager);
+    public PersistenceQueryFindUsingApplibQueryProcessor(final PersistenceSession persistenceSession) {
+        super(persistenceSession);
     }
 
     public List<ObjectAdapter> process(final PersistenceQueryFindUsingApplibQueryDefault persistenceQuery) {
@@ -77,7 +74,7 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
         final OneToOneAssociation pkOtoa = JdoPropertyUtils.getPrimaryKeyPropertyFor(objectSpec);
         final String pkOtoaId = pkOtoa.getId();
         final String filter = pkOtoaId + "==" + map.get(pkOtoaId);
-        final Query jdoQuery = getPersistenceManager().newQuery(cls, filter);
+        final Query jdoQuery = persistenceSession.newJdoQuery(cls, filter);
 
         // http://www.datanucleus.org/servlet/jira/browse/NUCCORE-1103
         jdoQuery.addExtension("datanucleus.multivaluedFetch", "none");
@@ -97,13 +94,13 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
     private List<?> getResults(final PersistenceQueryFindUsingApplibQueryDefault persistenceQuery) {
         
         final String queryName = persistenceQuery.getQueryName();
-        final Map<String, Object> argumentsByParameterName = unwrap(persistenceQuery.getArgumentsAdaptersByParameterName());
+        final Map<String, Object> argumentsByParameterName = unwrap(
+                persistenceQuery.getArgumentsAdaptersByParameterName());
         final QueryCardinality cardinality = persistenceQuery.getCardinality();
         final ObjectSpecification objectSpec = persistenceQuery.getSpecification();
 
-        final PersistenceManager persistenceManager = persistenceSession.getPersistenceManager();
         final Class<?> cls = objectSpec.getCorrespondingClass();
-        final Query jdoQuery = persistenceManager.newNamedQuery(cls, queryName);
+        final Query jdoQuery = persistenceSession.newJdoNamedQuery(cls, queryName);
         
         // http://www.datanucleus.org/servlet/jira/browse/NUCCORE-1103
         jdoQuery.addExtension("datanucleus.multivaluedFetch", "none");

http://git-wip-us.apache.org/repos/asf/isis/blob/4616a373/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 f169a6b..c144e11 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
@@ -20,10 +20,7 @@ package org.apache.isis.objectstore.jdo.datanucleus.persistence.queries;
 
 import java.util.List;
 
-import javax.jdo.PersistenceManager;
-import javax.jdo.PersistenceManagerFactory;
 import javax.jdo.listener.InstanceLifecycleEvent;
-import javax.jdo.metadata.TypeMetadata;
 
 import com.google.common.collect.Lists;
 
@@ -40,33 +37,16 @@ public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQue
         implements PersistenceQueryProcessor<T> {
 
     final PersistenceSession persistenceSession;
-    private final PersistenceManager persistenceManager;
 
-    protected PersistenceQueryProcessorAbstract(
-            final PersistenceSession persistenceSession,
-            final PersistenceManager persistenceManager) {
+    protected PersistenceQueryProcessorAbstract(final PersistenceSession persistenceSession) {
         this.persistenceSession = persistenceSession;
-        this.persistenceManager = persistenceManager;
     }
 
-    protected PersistenceManager getPersistenceManager() {
-        return persistenceManager;
-    }
-    
-    
+
     // /////////////////////////////////////////////////////////////
     // helpers for subclasses
     // /////////////////////////////////////////////////////////////
 
-    protected PersistenceManagerFactory getPersistenceManagerFactory() {
-        return getPersistenceManager().getPersistenceManagerFactory();
-    }
-
-    // TODO: unused?
-    protected TypeMetadata getTypeMetadata(final String classFullName) {
-        return getPersistenceManagerFactory().getMetadata(classFullName);
-    }
-    
     /**
      * Traversing the provided list causes (or should cause) the
      * {@link IsisLifecycleListener#postLoad(InstanceLifecycleEvent) {