You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by jc...@apache.org on 2013/04/19 17:10:36 UTC

git commit: ISIS-386: adding the 'refreshRoot' backdoor to enable a domain service to be able to force a reload of a domain object by the DataNucleusObjectStore.

Updated Branches:
  refs/heads/master 02fe0e304 -> f6386b443


ISIS-386: adding the 'refreshRoot' backdoor to enable a domain service to be able to force a reload of a domain object by the DataNucleusObjectStore.

Also related changes to FacetFactory's.


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

Branch: refs/heads/master
Commit: f6386b443d6f1add6a746919e19b07c21345ebdd
Parents: 02fe0e3
Author: Jeroen van der Wal <je...@stromboli.it>
Authored: Fri Apr 19 17:01:31 2013 +0200
Committer: Jeroen van der Wal <je...@stromboli.it>
Committed: Fri Apr 19 17:01:31 2013 +0200

----------------------------------------------------------------------
 .../jdo/datanucleus/DataNucleusObjectStore.java    |   11 +++++-
 .../DataNucleusPersistenceMechanismInstaller.java  |   30 +++++----------
 .../dflt/ProgrammingModelFacetsJava5.java          |    6 +++
 3 files changed, 26 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/f6386b44/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusObjectStore.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusObjectStore.java b/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusObjectStore.java
index 490cdb4..c363add 100644
--- a/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusObjectStore.java
+++ b/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusObjectStore.java
@@ -458,9 +458,18 @@ public class DataNucleusObjectStore implements ObjectStoreSpi {
             return;
         }
 
-        // REVIEW: is this possible?
+        refreshRoot(adapter);
+    }
+
+    /**
+     * Not API; provides the ability to force a reload (refresh in JDO terms)
+     * of the domain object wrapped in the {@link ObjectAdapter}.
+     */
+    public void refreshRoot(final ObjectAdapter adapter) {
+        
         final Object domainObject = adapter.getObject();
 		if (domainObject == null) {
+		    // REVIEW: is this possible?
             throw new ObjectNotFoundException(adapter.getOid());
         }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/f6386b44/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java b/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
index 7c99588..e2a9b52 100644
--- a/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
+++ b/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
@@ -177,27 +177,17 @@ public class DataNucleusPersistenceMechanismInstaller extends PersistenceMechani
 
     @Override
     public void refineProgrammingModel(ProgrammingModel programmingModel, IsisConfiguration configuration) {
-        addJdoFacetFactoriesTo(programmingModel);
-        addDataNucleusFacetFactoriesTo(programmingModel);
-    }
-
-    private void addJdoFacetFactoriesTo(ProgrammingModel baseProgrammingModel) {
-        baseProgrammingModel.addFactory(JdoPersistenceCapableAnnotationFacetFactory.class);
-        baseProgrammingModel.addFactory(JdoDatastoreIdentityAnnotationFacetFactory.class);
-        baseProgrammingModel.addFactory(JdoEmbeddedOnlyAnnotationFacetFactory.class);
-
-        baseProgrammingModel.addFactory(JdoPrimaryKeyAnnotationFacetFactory.class);
-        baseProgrammingModel.addFactory(JdoDiscriminatorAnnotationFacetFactory.class);
-
-        baseProgrammingModel.addFactory(JdoQueryAnnotationFacetFactory.class);
+        programmingModel.addFactory(JdoPersistenceCapableAnnotationFacetFactory.class);
+        programmingModel.addFactory(JdoDatastoreIdentityAnnotationFacetFactory.class);
+        programmingModel.addFactory(JdoEmbeddedOnlyAnnotationFacetFactory.class);
         
-        baseProgrammingModel.addFactory(AuditableAnnotationInJdoApplibFacetFactory.class);
-        baseProgrammingModel.addFactory(AuditableMarkerInterfaceInJdoApplibFacetFactory.class);
-    }
-
-    private void addDataNucleusFacetFactoriesTo(ProgrammingModel baseProgrammingModel) {
-        baseProgrammingModel.addFactory(RemoveJdoEnhancementTypesFacetFactory.class);
-        baseProgrammingModel.addFactory(RemoveJdoPrefixedMethodsFacetFactory.class);
+        programmingModel.addFactory(JdoPrimaryKeyAnnotationFacetFactory.class);
+        programmingModel.addFactory(JdoDiscriminatorAnnotationFacetFactory.class);
+        
+        programmingModel.addFactory(JdoQueryAnnotationFacetFactory.class);
+        
+        programmingModel.addFactory(AuditableAnnotationInJdoApplibFacetFactory.class);
+        programmingModel.addFactory(AuditableMarkerInterfaceInJdoApplibFacetFactory.class);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/f6386b44/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
index cded2ec..cf39798 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
@@ -21,6 +21,7 @@ package org.apache.isis.progmodels.dflt;
 
 import org.apache.isis.core.metamodel.facets.object.audit.annotation.AuditableAnnotationFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.audit.markerifc.AuditableMarkerInterfaceFacetFactory;
+import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModelAbstract;
 import org.apache.isis.core.progmodel.facets.actions.bulk.annotation.BulkAnnotationFacetFactory;
 import org.apache.isis.core.progmodel.facets.actions.debug.annotation.DebugAnnotationFacetFactory;
@@ -93,6 +94,7 @@ import org.apache.isis.core.progmodel.facets.object.ignore.javalang.RemoveJavaLa
 import org.apache.isis.core.progmodel.facets.object.ignore.javalang.RemoveSuperclassMethodsFacetFactory;
 import org.apache.isis.core.progmodel.facets.object.ignore.javalang.SyntheticMethodFilteringFacetFactory;
 import org.apache.isis.core.progmodel.facets.object.ignore.jdo.RemoveJdoEnhancementTypesFacetFactory;
+import org.apache.isis.core.progmodel.facets.object.ignore.jdo.RemoveJdoPrefixedMethodsFacetFactory;
 import org.apache.isis.core.progmodel.facets.object.immutable.annotation.ImmutableAnnotationFacetFactory;
 import org.apache.isis.core.progmodel.facets.object.immutable.markerifc.ImmutableMarkerInterfaceFacetFactory;
 import org.apache.isis.core.progmodel.facets.object.mask.annotation.MaskAnnotationForTypeFacetFactory;
@@ -218,7 +220,11 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
         addFactory(RemoveStaticGettersAndSettersFacetFactory.class);
         addFactory(RemoveGetClassMethodFacetFactory.class);
         addFactory(RemoveProgrammaticOrIgnoreAnnotationMethodsFacetFactory.class);
+        
+        // come what may, we have to ignore the PersistenceCapable supertype.
         addFactory(RemoveJdoEnhancementTypesFacetFactory.class);
+        // so we may as well also just ignore any 'jdo' prefixed methods here also.
+        addFactory(RemoveJdoPrefixedMethodsFacetFactory.class);
 
         // must be before any other FacetFactories that install
         // MandatoryFacet.class facets