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