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/03/03 21:22:58 UTC
[06/20] isis git commit: Refactored PersistenceCapable to Persistable
Refactored PersistenceCapable to Persistable
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/fe4ee423
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/fe4ee423
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/fe4ee423
Branch: refs/heads/ISIS-789
Commit: fe4ee42342523e772c29cbd81c8bcf18d1bc7a4f
Parents: 9752a09
Author: jdbranham <Je...@Sprint.com>
Authored: Mon Dec 29 21:47:15 2014 -0600
Committer: jdb6853 <jd...@hotmail.com>
Committed: Wed Dec 31 17:42:04 2014 -0600
----------------------------------------------------------------------
core/metamodel/pom.xml | 14 -----
...DatanucleusPersistableTypesFacetFactory.java | 14 +++++
.../AbstractRemoveMethodsFacetFactory.java | 1 +
...PersistableEnhancementTypesFacetFactory.java | 14 +++++
.../jdo/datanucleus/DataNucleusObjectStore.java | 11 ++--
...ataNucleusPersistenceMechanismInstaller.java | 4 ++
.../IsisConfigurationForJdoIntegTests.java | 11 ++--
.../jdo/datanucleus/JDOStateManagerForIsis.java | 60 ++++++++++++++++++--
.../persistence/FrameworkSynchronizer.java | 42 +++++++-------
.../persistence/IsisLifecycleListener.java | 19 +++----
.../jdo/datanucleus/persistence/Utils.java | 13 +++--
.../PersistenceQueryProcessorAbstract.java | 9 ++-
.../src/main/webapp/WEB-INF/isis.properties | 11 ++--
.../WEB-INF/persistor_datanucleus.properties | 9 ++-
.../integration/tests/ToDoItemIntegTest.java | 1 +
.../src/main/webapp/WEB-INF/isis.properties | 11 ++--
.../WEB-INF/persistor_datanucleus.properties | 8 +--
17 files changed, 166 insertions(+), 86 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/core/metamodel/pom.xml
----------------------------------------------------------------------
diff --git a/core/metamodel/pom.xml b/core/metamodel/pom.xml
index f4cb1bc..7c7b1b0 100644
--- a/core/metamodel/pom.xml
+++ b/core/metamodel/pom.xml
@@ -105,20 +105,6 @@
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.apache.isis.core</groupId>
- <artifactId>isis-core-applib</artifactId>
- </dependency>
- <dependency>
- <groupId>org.datanucleus</groupId>
- <artifactId>datanucleus-accessplatform-jdo-rdbms</artifactId>
- <type>pom</type>
- </dependency>
- <dependency>
- <groupId>org.datanucleus</groupId>
- <artifactId>datanucleus-jodatime</artifactId>
- </dependency>
-
</dependencies>
</project>
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/datanucleus/RemoveDatanucleusPersistableTypesFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/datanucleus/RemoveDatanucleusPersistableTypesFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/datanucleus/RemoveDatanucleusPersistableTypesFacetFactory.java
new file mode 100644
index 0000000..67402d1
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/datanucleus/RemoveDatanucleusPersistableTypesFacetFactory.java
@@ -0,0 +1,14 @@
+package org.apache.isis.core.metamodel.facets.object.ignore.datanucleus;
+
+import org.apache.isis.core.metamodel.facets.object.ignore.javalang.AbstractRemoveMethodsFacetFactory;
+
+/**
+ * Removes all methods inherited from <tt>org.datanucleus.enhancer.Persistable</tt> (if datanucleus 4.x is on the classpath).
+ */
+public class RemoveDatanucleusPersistableTypesFacetFactory extends AbstractRemoveMethodsFacetFactory {
+
+ public RemoveDatanucleusPersistableTypesFacetFactory() {
+ super("org.datanucleus.enhancer.Persistable");
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/javalang/AbstractRemoveMethodsFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/javalang/AbstractRemoveMethodsFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/javalang/AbstractRemoveMethodsFacetFactory.java
index 87c139d..ab4665c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/javalang/AbstractRemoveMethodsFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/javalang/AbstractRemoveMethodsFacetFactory.java
@@ -61,6 +61,7 @@ public abstract class AbstractRemoveMethodsFacetFactory extends FacetFactoryAbst
addMethodsToBeIgnored(typeToIgnore);
} catch(Exception ex) {
// ignore
+ System.out.println(ex.getMessage());
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/jdo/RemoveJdoPersistableEnhancementTypesFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/jdo/RemoveJdoPersistableEnhancementTypesFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/jdo/RemoveJdoPersistableEnhancementTypesFacetFactory.java
new file mode 100644
index 0000000..070d722
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ignore/jdo/RemoveJdoPersistableEnhancementTypesFacetFactory.java
@@ -0,0 +1,14 @@
+package org.apache.isis.core.metamodel.facets.object.ignore.jdo;
+
+import org.apache.isis.core.metamodel.facets.object.ignore.javalang.AbstractRemoveMethodsFacetFactory;
+
+/**
+ * Removes all methods inherited from <tt>javax.jdo.spi.Persistable</tt> (if JDO is on the classpath).
+ */
+public class RemoveJdoPersistableEnhancementTypesFacetFactory extends AbstractRemoveMethodsFacetFactory {
+
+ public RemoveJdoPersistableEnhancementTypesFacetFactory() {
+ super("javax.jdo.spi.Persistable");
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusObjectStore.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusObjectStore.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusObjectStore.java
index aa0d2c7..fdf36b8 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusObjectStore.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusObjectStore.java
@@ -22,13 +22,15 @@ import java.sql.Connection;
import java.text.MessageFormat;
import java.util.List;
import java.util.Map;
+
import javax.jdo.FetchGroup;
import javax.jdo.FetchPlan;
import javax.jdo.PersistenceManager;
import javax.jdo.Query;
-import javax.jdo.spi.PersistenceCapable;
+
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
@@ -71,6 +73,7 @@ import org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.DataNucl
import org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.*;
import org.apache.isis.objectstore.jdo.datanucleus.persistence.spi.JdoObjectIdSerializer;
import org.apache.isis.objectstore.jdo.metamodel.facets.object.query.JdoNamedQuery;
+import org.datanucleus.enhancer.Persistable;
import static org.apache.isis.core.commons.ensure.Ensure.*;
import static org.hamcrest.CoreMatchers.is;
@@ -426,10 +429,10 @@ public class DataNucleusObjectStore implements ObjectStore {
public ObjectAdapter lazilyLoaded(Object pojo) {
- if(!(pojo instanceof PersistenceCapable)) {
+ if(!(pojo instanceof Persistable)) {
return null;
}
- final PersistenceCapable persistenceCapable = (PersistenceCapable) pojo;
+ final Persistable persistenceCapable = (Persistable) pojo;
return frameworkSynchronizer.lazilyLoaded(persistenceCapable, CalledFrom.OS_LAZILYLOADED);
}
@@ -493,7 +496,7 @@ public class DataNucleusObjectStore implements ObjectStore {
// listener, but (with JPA impl) found it was required if we were ever to
// get an eager left-outer-join as the result of a refresh (sounds possible).
- frameworkSynchronizer.postLoadProcessingFor((PersistenceCapable) domainObject, CalledFrom.OS_RESOLVE);
+ frameworkSynchronizer.postLoadProcessingFor((Persistable) domainObject, CalledFrom.OS_RESOLVE);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
index 1b7ca82..b55f1b7 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
@@ -22,11 +22,14 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
+
import com.google.common.collect.Sets;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.isis.core.commons.components.Installer;
import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.metamodel.facets.object.ignore.datanucleus.RemoveDatanucleusPersistableTypesFacetFactory;
import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
@@ -206,6 +209,7 @@ public class DataNucleusPersistenceMechanismInstaller extends PersistenceMechani
programmingModel.addFactory(AuditableAnnotationInJdoApplibFacetFactory.class);
programmingModel.addFactory(AuditableMarkerInterfaceInJdoApplibFacetFactory.class);
+ programmingModel.addFactory(RemoveDatanucleusPersistableTypesFacetFactory.class);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/IsisConfigurationForJdoIntegTests.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/IsisConfigurationForJdoIntegTests.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/IsisConfigurationForJdoIntegTests.java
index 6df273f..ca69c8e 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/IsisConfigurationForJdoIntegTests.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/IsisConfigurationForJdoIntegTests.java
@@ -63,15 +63,18 @@ public class IsisConfigurationForJdoIntegTests extends IsisConfigurationDefault
// run-in memory
addDataNucleusProperty("javax.jdo.option.ConnectionURL", "jdbc:hsqldb:mem:test");
+ addDataNucleusProperty("javax.jdo.option.ConnectionDriverName", "org.hsqldb.jdbcDriver");
+ addDataNucleusProperty("javax.jdo.option.ConnectionUserName", "sa");
+ addDataNucleusProperty("javax.jdo.option.ConnectionPassword", "");
// Don't do validations that consume setup time.
- addDataNucleusProperty("datanucleus.autoCreateSchema", "true");
- addDataNucleusProperty("datanucleus.validateTables", "false");
- addDataNucleusProperty("datanucleus.validateConstraints", "false");
+ addDataNucleusProperty("datanucleus.schema.autoCreateAll", "true");
+ addDataNucleusProperty("datanucleus.schmema.validateTables", "true");
+ addDataNucleusProperty("datanucleus.schema.validateConstraints", "false");
// other properties as per WEB-INF/persistor_datanucleus.properties
addDataNucleusProperty("datanucleus.persistenceByReachabilityAtCommit", "false");
- addDataNucleusProperty("datanucleus.identifier.case", "PreserveCase");
+ addDataNucleusProperty("datanucleus.identifier.case", "MixedCase");
addDataNucleusProperty("datanucleus.cache.level2.type","none");
addDataNucleusProperty("datanucleus.cache.level2.mode","ENABLE_SELECTIVE");
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/JDOStateManagerForIsis.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/JDOStateManagerForIsis.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/JDOStateManagerForIsis.java
index b3dfe7a..fc71c7a 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/JDOStateManagerForIsis.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/JDOStateManagerForIsis.java
@@ -19,18 +19,22 @@
package org.apache.isis.objectstore.jdo.datanucleus;
-import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.objectstore.jdo.datanucleus.service.eventbus.EventBusServiceJdo;
+import javax.jdo.spi.PersistenceCapable;
+import javax.jdo.spi.StateManager;
+
import org.datanucleus.ExecutionContext;
import org.datanucleus.cache.CachedPC;
import org.datanucleus.enhancer.Persistable;
import org.datanucleus.metadata.AbstractClassMetaData;
import org.datanucleus.state.ObjectProvider;
import org.datanucleus.state.ReferentialStateManagerImpl;
+import org.datanucleus.store.FieldValues;
import org.datanucleus.store.fieldmanager.FieldManager;
+import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
+import org.apache.isis.core.runtime.system.context.IsisContext;
+import org.apache.isis.objectstore.jdo.datanucleus.service.eventbus.EventBusServiceJdo;
-public class JDOStateManagerForIsis extends ReferentialStateManagerImpl implements ObjectProvider<Persistable> {
+public class JDOStateManagerForIsis extends ReferentialStateManagerImpl {
public JDOStateManagerForIsis(ExecutionContext ec, AbstractClassMetaData cmd) {
super(ec, cmd);
@@ -51,7 +55,51 @@ public class JDOStateManagerForIsis extends ReferentialStateManagerImpl implemen
};
};
+ public void initialiseForHollow(Object id, FieldValues fv, Class pcClass) {
+ super.initialiseForHollow(id, fv, pcClass);
+ mapIntoIsis(myPC);
+ }
+
+ public void initialiseForHollowAppId(FieldValues fv, Class pcClass) {
+ super.initialiseForHollowAppId(fv, pcClass);
+ mapIntoIsis(myPC);
+ }
+
+ public void initialiseForHollowPreConstructed(Object id, Persistable pc) {
+ super.initialiseForHollowPreConstructed(id, pc);
+ mapIntoIsis(myPC);
+ }
+
+ public void initialiseForPersistentClean(Object id, Persistable pc) {
+ super.initialiseForPersistentClean(id, pc);
+ mapIntoIsis(myPC);
+ }
+
+ public void initialiseForEmbedded(Persistable pc, boolean copyPc) {
+ super.initialiseForEmbedded(pc, copyPc);
+ mapIntoIsis(myPC);
+ }
+
+ public void initialiseForPersistentNew(Persistable pc,
+ FieldValues preInsertChanges) {
+ super.initialiseForPersistentNew(pc, preInsertChanges);
+ mapIntoIsis(myPC);
+ }
+ public void initialiseForTransactionalTransient(Persistable pc) {
+ super.initialiseForTransactionalTransient(pc);
+ mapIntoIsis(myPC);
+ }
+
+ public void initialiseForDetached(Persistable pc, Object id, Object version) {
+ super.initialiseForDetached(pc, id, version);
+ mapIntoIsis(myPC);
+ }
+
+ public void initialiseForPNewToBeDeleted(Persistable pc) {
+ super.initialiseForPNewToBeDeleted(pc);
+ mapIntoIsis(myPC);
+ }
public void initialiseForCachedPC(CachedPC cachedPC, Object id) {
super.initialiseForCachedPC(cachedPC, id);
@@ -101,8 +149,8 @@ public class JDOStateManagerForIsis extends ReferentialStateManagerImpl implemen
}
}
- protected void mapIntoIsis(Persistable myPC) {
- getServicesInjector().injectServicesInto(myPC);
+ protected void mapIntoIsis(Persistable pc) {
+ getServicesInjector().injectServicesInto(pc);
}
protected ServicesInjectorSpi getServicesInjector() {
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/FrameworkSynchronizer.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/FrameworkSynchronizer.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/FrameworkSynchronizer.java
index 66b7f1c..2baa776 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/FrameworkSynchronizer.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/FrameworkSynchronizer.java
@@ -20,9 +20,10 @@ package org.apache.isis.objectstore.jdo.datanucleus.persistence;
import java.text.MessageFormat;
import java.util.concurrent.Callable;
+
import javax.jdo.JDOHelper;
import javax.jdo.PersistenceManager;
-import javax.jdo.spi.PersistenceCapable;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
@@ -43,6 +44,7 @@ import org.apache.isis.core.runtime.system.persistence.OidGenerator;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
import org.apache.isis.core.runtime.system.transaction.IsisTransaction;
import org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore;
+import org.datanucleus.enhancer.Persistable;
public class FrameworkSynchronizer {
@@ -68,12 +70,12 @@ public class FrameworkSynchronizer {
}
- public void postLoadProcessingFor(final PersistenceCapable pojo, CalledFrom calledFrom) {
+ public void postLoadProcessingFor(final Persistable pojo, CalledFrom calledFrom) {
withLogging(pojo, new Runnable() {
@Override
public void run() {
- final PersistenceCapable pc = pojo;
+ final Persistable pc = pojo;
// need to do eagerly, because (if a viewModel then) a
// viewModel's #viewModelMemento might need to use services
@@ -131,7 +133,7 @@ public class FrameworkSynchronizer {
PersistorUtil.toEndState(adapter);
}
adapter.setVersion(datastoreVersion);
- if(pojo.jdoIsDeleted()) {
+ if(pojo.dnIsDeleted()) {
adapter.changeState(ResolveState.DESTROYED);
}
@@ -149,7 +151,7 @@ public class FrameworkSynchronizer {
* The implementation therefore uses Isis' {@link org.apache.isis.core.metamodel.adapter.oid.Oid#isTransient() oid}
* to determine which callback to fire.
*/
- public void preStoreProcessingFor(final PersistenceCapable pojo, final CalledFrom calledFrom) {
+ public void preStoreProcessingFor(final Persistable pojo, final CalledFrom calledFrom) {
withLogging(pojo, new Runnable() {
@Override
public void run() {
@@ -183,14 +185,14 @@ public class FrameworkSynchronizer {
* The implementation therefore uses Isis' {@link org.apache.isis.core.metamodel.adapter.oid.Oid#isTransient() oid}
* to determine which callback to fire.
*/
- public void postStoreProcessingFor(final PersistenceCapable pojo, CalledFrom calledFrom) {
+ public void postStoreProcessingFor(final Persistable pojo, CalledFrom calledFrom) {
withLogging(pojo, new Runnable() {
@Override
public void run() {
ensureRootObject(pojo);
// assert is persistent
- if(!pojo.jdoIsPersistent()) {
+ if(!pojo.dnIsPersistent()) {
throw new IllegalStateException("Pojo JDO state is not persistent! pojo dnOid: " + JDOHelper.getObjectId(pojo));
}
@@ -225,7 +227,7 @@ public class FrameworkSynchronizer {
}, calledFrom);
}
- public void preDirtyProcessingFor(final PersistenceCapable pojo, CalledFrom calledFrom) {
+ public void preDirtyProcessingFor(final Persistable pojo, CalledFrom calledFrom) {
withLogging(pojo, new Runnable() {
@Override
public void run() {
@@ -265,7 +267,7 @@ public class FrameworkSynchronizer {
}
- public ObjectAdapter lazilyLoaded(final PersistenceCapable pojo, CalledFrom calledFrom) {
+ public ObjectAdapter lazilyLoaded(final Persistable pojo, CalledFrom calledFrom) {
return withLogging(pojo, new Callable<ObjectAdapter>() {
@Override
public ObjectAdapter call() {
@@ -280,7 +282,7 @@ public class FrameworkSynchronizer {
}
- public void preDeleteProcessingFor(final PersistenceCapable pojo, final CalledFrom calledFrom) {
+ public void preDeleteProcessingFor(final Persistable pojo, final CalledFrom calledFrom) {
withLogging(pojo, new Runnable() {
@Override
public void run() {
@@ -296,7 +298,7 @@ public class FrameworkSynchronizer {
}
- public void postDeleteProcessingFor(final PersistenceCapable pojo, final CalledFrom calledFrom) {
+ public void postDeleteProcessingFor(final Persistable pojo, final CalledFrom calledFrom) {
withLogging(pojo, new Runnable() {
@Override
public void run() {
@@ -327,7 +329,7 @@ public class FrameworkSynchronizer {
// Helpers
// /////////////////////////////////////////////////////////
- private <T> T withLogging(PersistenceCapable pojo, Callable<T> runnable, CalledFrom calledFrom) {
+ private <T> T withLogging(Persistable pojo, Callable<T> runnable, CalledFrom calledFrom) {
if (LOG.isDebugEnabled()) {
LOG.debug(logString(calledFrom, LoggingLocation.ENTRY, pojo));
}
@@ -342,7 +344,7 @@ public class FrameworkSynchronizer {
}
}
- private void withLogging(PersistenceCapable pojo, final Runnable runnable, CalledFrom calledFrom) {
+ private void withLogging(Persistable pojo, final Runnable runnable, CalledFrom calledFrom) {
withLogging(pojo, new Callable<Void>() {
@Override
@@ -354,7 +356,7 @@ public class FrameworkSynchronizer {
}, calledFrom);
}
- private String logString(CalledFrom calledFrom, LoggingLocation location, PersistenceCapable pojo) {
+ private String logString(CalledFrom calledFrom, LoggingLocation location, Persistable pojo) {
final AdapterManager adapterManager = getAdapterManager();
final ObjectAdapter adapter = adapterManager.getAdapterFor(pojo);
// initial spaces just to look better in log when wrapped by IsisLifecycleListener...
@@ -366,11 +368,11 @@ public class FrameworkSynchronizer {
// More Helpers...
// /////////////////////////////////////////////////////////
- void ensureFrameworksInAgreement(final PersistenceCapable pojo) {
+ void ensureFrameworksInAgreement(final Persistable pojo) {
final ObjectAdapter adapter = getAdapterManager().getAdapterFor(pojo);
final Oid oid = adapter.getOid();
- if(!pojo.jdoIsPersistent()) {
+ if(!pojo.dnIsPersistent()) {
// make sure the adapter is transient
if (!adapter.getResolveState().isTransient()) {
throw new IsisException(MessageFormat.format("adapter oid={0} has resolve state in invalid state; should be transient but is {1}; pojo: {2}", oid, adapter.getResolveState(), pojo));
@@ -381,7 +383,7 @@ public class FrameworkSynchronizer {
throw new IsisException(MessageFormat.format("adapter oid={0} has oid in invalid state; should be transient; pojo: {1}", oid, pojo));
}
- } else if(pojo.jdoIsDeleted()) {
+ } else if(pojo.dnIsDeleted()) {
// make sure the adapter is destroyed
if (!adapter.getResolveState().isDestroyed()) {
@@ -406,19 +408,19 @@ public class FrameworkSynchronizer {
// make sure the entity is known to Isis and is a root
// TODO: will probably need to handle aggregated entities at some point...
- void ensureRootObject(final PersistenceCapable pojo) {
+ void ensureRootObject(final Persistable pojo) {
final Oid oid = getAdapterManager().adapterFor(pojo).getOid();
if (!(oid instanceof RootOid)) {
throw new IsisException(MessageFormat.format("Not a RootOid: oid={0}, for {1}", oid, pojo));
}
}
- private Version getVersionIfAny(final PersistenceCapable pojo) {
+ private Version getVersionIfAny(final Persistable pojo) {
return Utils.getVersionIfAny(pojo, getAuthenticationSession());
}
@SuppressWarnings("unused")
- private void ensureObjectNotLoaded(final PersistenceCapable pojo) {
+ private void ensureObjectNotLoaded(final Persistable pojo) {
final ObjectAdapter adapter = getAdapterManager().getAdapterFor(pojo);
if(adapter != null) {
final Oid oid = adapter.getOid();
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/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 33c7680..dc8a5e7 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
@@ -29,17 +29,16 @@ import javax.jdo.listener.DirtyLifecycleListener;
import javax.jdo.listener.InstanceLifecycleEvent;
import javax.jdo.listener.LoadLifecycleListener;
import javax.jdo.listener.StoreLifecycleListener;
-import javax.jdo.spi.PersistenceCapable;
import com.google.common.collect.Maps;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.CalledFrom;
+import org.datanucleus.enhancer.Persistable;
public class IsisLifecycleListener implements AttachLifecycleListener, ClearLifecycleListener, CreateLifecycleListener, DeleteLifecycleListener, DetachLifecycleListener, DirtyLifecycleListener, LoadLifecycleListener, StoreLifecycleListener, SuspendableListener {
@@ -76,7 +75,7 @@ public class IsisLifecycleListener implements AttachLifecycleListener, ClearLife
withLogging(Phase.POST, event, new RunnableAbstract(event){
@Override
protected void doRun() {
- final PersistenceCapable pojo = Utils.persistenceCapableFor(event);
+ final Persistable pojo = Utils.persistenceCapableFor(event);
synchronizer.postLoadProcessingFor(pojo, CalledFrom.EVENT_LOAD);
}});
}
@@ -86,7 +85,7 @@ public class IsisLifecycleListener implements AttachLifecycleListener, ClearLife
withLogging(Phase.PRE, event, new RunnableAbstract(event){
@Override
protected void doRun() {
- final PersistenceCapable pojo = Utils.persistenceCapableFor(event);
+ final Persistable pojo = Utils.persistenceCapableFor(event);
synchronizer.preStoreProcessingFor(pojo, CalledFrom.EVENT_PRESTORE);
}});
@@ -97,7 +96,7 @@ public class IsisLifecycleListener implements AttachLifecycleListener, ClearLife
withLogging(Phase.POST, event, new RunnableAbstract(event){
@Override
protected void doRun() {
- final PersistenceCapable pojo = Utils.persistenceCapableFor(event);
+ final Persistable pojo = Utils.persistenceCapableFor(event);
synchronizer.postStoreProcessingFor(pojo, CalledFrom.EVENT_POSTSTORE);
}});
}
@@ -107,7 +106,7 @@ public class IsisLifecycleListener implements AttachLifecycleListener, ClearLife
withLogging(Phase.PRE, event, new RunnableAbstract(event){
@Override
protected void doRun() {
- final PersistenceCapable pojo = Utils.persistenceCapableFor(event);
+ final Persistable pojo = Utils.persistenceCapableFor(event);
synchronizer.preDirtyProcessingFor(pojo, CalledFrom.EVENT_PREDIRTY);
}});
}
@@ -129,7 +128,7 @@ public class IsisLifecycleListener implements AttachLifecycleListener, ClearLife
withLogging(Phase.PRE, event, new RunnableAbstract(event){
@Override
protected void doRun() {
- final PersistenceCapable pojo = Utils.persistenceCapableFor(event);
+ final Persistable pojo = Utils.persistenceCapableFor(event);
synchronizer.preDeleteProcessingFor(pojo, CalledFrom.EVENT_PREDELETE);
}
});
@@ -140,7 +139,7 @@ public class IsisLifecycleListener implements AttachLifecycleListener, ClearLife
withLogging(Phase.POST, event, new RunnableAbstract(event){
@Override
protected void doRun() {
- final PersistenceCapable pojo = Utils.persistenceCapableFor(event);
+ final Persistable pojo = Utils.persistenceCapableFor(event);
synchronizer.postDeleteProcessingFor(pojo, CalledFrom.EVENT_POSTDELETE);
}
});
@@ -221,7 +220,7 @@ public class IsisLifecycleListener implements AttachLifecycleListener, ClearLife
super(event);
}
protected void doRun() {
- final PersistenceCapable pojo = Utils.persistenceCapableFor(event);
+ final Persistable pojo = Utils.persistenceCapableFor(event);
synchronizer.ensureRootObject(pojo);
synchronizer.ensureFrameworksInAgreement(pojo);
}
@@ -268,7 +267,7 @@ public class IsisLifecycleListener implements AttachLifecycleListener, ClearLife
}
private String logString(Phase phase, LoggingLocation location, InstanceLifecycleEvent event) {
- final PersistenceCapable pojo = Utils.persistenceCapableFor(event);
+ final Persistable pojo = Utils.persistenceCapableFor(event);
final AdapterManager adapterManager = getAdapterManager();
final ObjectAdapter adapter = adapterManager.getAdapterFor(pojo);
return phase + " " + location.prefix + " " + LifecycleEventType.lookup(event.getEventType()) + ": oid=" + (adapter !=null? adapter.getOid(): "(null)") + " ,pojo " + pojo;
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/Utils.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/Utils.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/Utils.java
index 2577708..6577788 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/Utils.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/Utils.java
@@ -27,26 +27,27 @@ import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.version.SerialNumberVersion;
import org.apache.isis.core.metamodel.adapter.version.Version;
+import org.datanucleus.enhancer.Persistable;
public class Utils {
@SuppressWarnings("unused")
private static Object jdoObjectIdFor(InstanceLifecycleEvent event) {
- PersistenceCapable persistenceCapable = Utils.persistenceCapableFor(event);
- Object jdoObjectId = persistenceCapable.jdoGetObjectId();
+ Persistable persistenceCapable = Utils.persistenceCapableFor(event);
+ Object jdoObjectId = persistenceCapable.dnGetObjectId();
return jdoObjectId;
}
- static PersistenceCapable persistenceCapableFor(InstanceLifecycleEvent event) {
- return (PersistenceCapable)event.getSource();
+ static Persistable persistenceCapableFor(InstanceLifecycleEvent event) {
+ return (Persistable)event.getSource();
}
static void clearDirtyFor(final ObjectAdapter adapter) {
adapter.getSpecification().clearDirty(adapter);
}
- static Version getVersionIfAny(final PersistenceCapable pojo, final AuthenticationSession authenticationSession) {
- Object jdoVersion = pojo.jdoGetVersion();
+ static Version getVersionIfAny(final Persistable pojo, final AuthenticationSession authenticationSession) {
+ Object jdoVersion = pojo.dnGetVersion();
if(jdoVersion instanceof Long) {
return SerialNumberVersion.create((Long) jdoVersion, authenticationSession.getUserName(), null);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/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 d6d3eeb..e7bb229 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
@@ -19,12 +19,14 @@
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 javax.jdo.spi.PersistenceCapable;
+
import com.google.common.collect.Lists;
+
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;
@@ -36,6 +38,7 @@ import org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore;
import org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer;
import org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.CalledFrom;
import org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener;
+import org.datanucleus.enhancer.Persistable;
public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQuery>
implements PersistenceQueryProcessor<T> {
@@ -77,9 +80,9 @@ public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQue
// ought not to be necessary, however for some queries it seems that the
// lifecycle listener is not called
ObjectAdapter adapter;
- if(pojo instanceof PersistenceCapable) {
+ if(pojo instanceof Persistable) {
// an entity
- frameworkSynchronizer.postLoadProcessingFor((PersistenceCapable) pojo, CalledFrom.OS_QUERY);
+ frameworkSynchronizer.postLoadProcessingFor((Persistable) pojo, CalledFrom.OS_QUERY);
adapter = getAdapterManager().getAdapterFor(pojo);
} else {
// a value type
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
index 9387f00..c0c87e4 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
@@ -79,7 +79,8 @@ isis.authorization=shiro
# additional programming model facets
#
-#isis.reflector.facets.include=
+isis.reflector.facets.include=org.apache.isis.core.metamodel.facets.object.ignore.jdo.RemoveJdoPersistableEnhancementTypesFacetFactory, \
+org.apache.isis.core.metamodel.facets.object.ignore.datanucleus.RemoveDatanucleusPersistableTypesFacetFactory
#isis.reflector.facets.exclude=
@@ -102,7 +103,7 @@ isis.authorization=shiro
#
# patterns for applying CssClassFa facet (font-awesome icons) to member names
#
-isis.reflector.facet.cssClassFa.patterns=\
+isis.reflector.facet.cssClassFa.patterns=new.*\:fa-plus,add.*\:fa-plus-square,create.*\:fa-plus,update.*\:fa-edit,change.*\:fa-edit,remove.*\:fa-minus-square,move.*\:fa-exchange,first.*\:fa-star,find.*\:fa-search,lookup.*\:fa-search,clear.*\:fa-remove,previous.*\:fa-step-backward,next.*\:fa-step-forward,list.*\:fa-list, all.*\:fa-list, download.*\:fa-download, upload.*\:fa-upload, execute.*\:fa-bolt, run.*\:fa-bolt, calculate.*\:fa-calculator, verify.*\:fa-check-circle, refresh.*\:fa-refresh, install.*\:fa-wrench
new.*:fa-plus,\
add.*:fa-plus-square,\
create.*:fa-plus,\
@@ -128,7 +129,7 @@ isis.reflector.facet.cssClassFa.patterns=\
install.*:fa-wrench
-isis.reflector.facet.cssClass.patterns=\
+isis.reflector.facet.cssClass.patterns=update.*\:btn-default,delete.*\:btn-warning,.*\:btn-primary
update.*:btn-default,\
delete.*:btn-warning,\
.*:btn-primary
@@ -176,11 +177,11 @@ isis.reflector.facet-decorators=org.apache.isis.core.metamodel.facetdecorator.i1
# end-user gains access to other domain objects by invoking the actions of the domain services.
#
isis.services-installer=configuration-and-annotation
-isis.services.ServicesInstallerFromAnnotation.packagePrefix=dom.simple,\
+isis.services.ServicesInstallerFromAnnotation.packagePrefix=dom.simple,fixture.simple,webapp.prototyping
fixture.simple,\
webapp.prototyping
-isis.services = \
+isis.services = org.apache.isis.applib.services.bookmark.BookmarkHolderActionContributions,\# customizable exception handling, org.apache.isis.objectstore.jdo.applib.service.exceprecog.ExceptionRecognizerCompositeForJdoObjectStore,\#
org.apache.isis.applib.services.bookmark.BookmarkHolderActionContributions,\
\
# customizable exception handling, \
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
index 1ad6572..22ee6d0 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
@@ -37,9 +37,9 @@ isis.persistor.datanucleus.RegisterEntities.packagePrefix=dom
#
#####################################################################
-isis.persistor.datanucleus.impl.datanucleus.autoCreateSchema=true
-isis.persistor.datanucleus.impl.datanucleus.validateTables=true
-isis.persistor.datanucleus.impl.datanucleus.validateConstraints=true
+isis.persistor.datanucleus.impl.datanucleus.schema.autoCreateAll=true
+isis.persistor.datanucleus.impl.datanucleus.schema.validateTables=true
+isis.persistor.datanucleus.impl.datanucleus.schema.validateConstraints=true
#
@@ -53,8 +53,7 @@ isis.persistor.datanucleus.impl.datanucleus.persistenceByReachabilityAtCommit=fa
# How column names are identified
# (http://www.datanucleus.org/products/datanucleus/jdo/orm/datastore_identifiers.html)
#
-isis.persistor.datanucleus.impl.datanucleus.identifier.case=PreserveCase
-
+isis.persistor.datanucleus.impl.datanucleus.identifier.case=MixedCase
#
# L2 cache
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/example/application/todoapp/integtests/src/test/java/integration/tests/ToDoItemIntegTest.java
----------------------------------------------------------------------
diff --git a/example/application/todoapp/integtests/src/test/java/integration/tests/ToDoItemIntegTest.java b/example/application/todoapp/integtests/src/test/java/integration/tests/ToDoItemIntegTest.java
index d4eab58..6998f93 100644
--- a/example/application/todoapp/integtests/src/test/java/integration/tests/ToDoItemIntegTest.java
+++ b/example/application/todoapp/integtests/src/test/java/integration/tests/ToDoItemIntegTest.java
@@ -65,6 +65,7 @@ public class ToDoItemIntegTest extends AbstractToDoIntegTest {
@Before
public void setUpData() throws Exception {
+ final ToDoItem testToDo = toDoItems.newToDo("new todo", ToDoItem.Category.Professional, ToDoItem.Subcategory.OpenSource, null, null);
fixtureScript = new ToDoItemsRecreateAndCompleteSeveral();
fixtureScripts.runFixtureScript(fixtureScript, null);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/example/application/todoapp/webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/application/todoapp/webapp/src/main/webapp/WEB-INF/isis.properties b/example/application/todoapp/webapp/src/main/webapp/WEB-INF/isis.properties
index bb0d6dd..5b10931 100644
--- a/example/application/todoapp/webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/application/todoapp/webapp/src/main/webapp/WEB-INF/isis.properties
@@ -79,7 +79,8 @@ isis.authorization=shiro
# additional programming model facets
#
-#isis.reflector.facets.include=
+isis.reflector.facets.include=org.apache.isis.core.metamodel.facets.object.ignore.jdo.RemoveJdoPersistableEnhancementTypesFacetFactory, \
+org.apache.isis.core.metamodel.facets.object.ignore.datanucleus.RemoveDatanucleusPersistableTypesFacetFactory
#isis.reflector.facets.exclude=
@@ -102,7 +103,7 @@ isis.authorization=shiro
#
# patterns for applying CssClassFa facet (font-awesome icons) to member names
#
-isis.reflector.facet.cssClassFa.patterns=\
+isis.reflector.facet.cssClassFa.patterns=new.*\:fa-plus,add.*\:fa-plus-square,create.*\:fa-plus,update.*\:fa-edit,change.*\:fa-edit,remove.*\:fa-minus-square,move.*\:fa-exchange,first.*\:fa-star,find.*\:fa-search,lookup.*\:fa-search,clear.*\:fa-remove,previous.*\:fa-step-backward,next.*\:fa-step-forward,list.*\:fa-list, all.*\:fa-list, download.*\:fa-download, upload.*\:fa-upload, execute.*\:fa-bolt, run.*\:fa-bolt, calculate.*\:fa-calculator, verify.*\:fa-check-circle, refresh.*\:fa-refresh, install.*\:fa-wrench
new.*:fa-plus,\
add.*:fa-plus-square,\
create.*:fa-plus,\
@@ -127,7 +128,7 @@ isis.reflector.facet.cssClassFa.patterns=\
refresh.*:fa-refresh, \
install.*:fa-wrench
-isis.reflector.facet.cssClass.patterns=\
+isis.reflector.facet.cssClass.patterns=delete.*\:btn-warning,.*\:btn-default
delete.*:btn-warning,\
.*:btn-default
@@ -173,13 +174,13 @@ isis.reflector.facet-decorators=org.apache.isis.core.metamodel.facetdecorator.i1
# end-user gains access to other domain objects by invoking the actions of the domain services.
#
isis.services-installer=configuration-and-annotation
-isis.services.ServicesInstallerFromAnnotation.packagePrefix=app,\
+isis.services.ServicesInstallerFromAnnotation.packagePrefix=app,dom.todo,fixture.todo,webapp.admin,webapp.prototyping
dom.todo,\
fixture.todo,\
webapp.admin,\
webapp.prototyping
-isis.services = \
+isis.services = org.apache.isis.applib.services.bookmark.BookmarkHolderActionContributions,\# customizable exception handling, org.apache.isis.objectstore.jdo.applib.service.exceprecog.ExceptionRecognizerCompositeForJdoObjectStore,\#,1\:webapp.CustomMementoService,1\:webapp.CustomRepresentationService
org.apache.isis.applib.services.bookmark.BookmarkHolderActionContributions,\
\
# customizable exception handling, \
http://git-wip-us.apache.org/repos/asf/isis/blob/fe4ee423/example/application/todoapp/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
----------------------------------------------------------------------
diff --git a/example/application/todoapp/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties b/example/application/todoapp/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
index a60a733..051d1dc 100644
--- a/example/application/todoapp/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
+++ b/example/application/todoapp/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
@@ -38,9 +38,9 @@ isis.persistor.datanucleus.RegisterEntities.packagePrefix=dom
#
#####################################################################
-isis.persistor.datanucleus.impl.datanucleus.autoCreateSchema=true
-isis.persistor.datanucleus.impl.datanucleus.validateTables=true
-isis.persistor.datanucleus.impl.datanucleus.validateConstraints=true
+isis.persistor.datanucleus.impl.datanucleus.schema.autoCreateAll=true
+isis.persistor.datanucleus.impl.datanucleus.schema.validateTables=true
+isis.persistor.datanucleus.impl.datanucleus.schema.validateConstraints=true
#
@@ -54,7 +54,7 @@ isis.persistor.datanucleus.impl.datanucleus.persistenceByReachabilityAtCommit=fa
# How column names are identified
# (http://www.datanucleus.org/products/datanucleus/jdo/orm/datastore_identifiers.html)
#
-isis.persistor.datanucleus.impl.datanucleus.identifier.case=PreserveCase
+isis.persistor.datanucleus.impl.datanucleus.identifier.case=MixedCase
#