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/11/11 18:47:40 UTC

isis git commit: ISIS-1245: check for non-enhanced entities during bootstrapping.

Repository: isis
Updated Branches:
  refs/heads/master aedbd56b1 -> 1b1298605


ISIS-1245: check for non-enhanced entities during bootstrapping.


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

Branch: refs/heads/master
Commit: 1b129860555065563d67db525a752b3efc1469c0
Parents: aedbd56
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Nov 11 17:46:41 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Nov 11 17:46:41 2015 +0000

----------------------------------------------------------------------
 .../isis/objectstore/jdo/service/RegisterEntities.java    | 10 ++++++++++
 1 file changed, 10 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/1b129860/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java
index 54b896f..70fe50c 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java
@@ -26,6 +26,7 @@ import java.util.Set;
 import javax.jdo.annotations.PersistenceCapable;
 
 import com.google.common.base.Function;
+import com.google.common.base.Joiner;
 import com.google.common.base.Predicate;
 import com.google.common.base.Splitter;
 import com.google.common.base.Strings;
@@ -67,12 +68,21 @@ public class RegisterEntities {
             persistenceCapableTypes = searchForPersistenceCapables(configuration);
         }
 
+        final List<String> classNamesNotEnhanced = Lists.newArrayList();
         for (Class<?> persistenceCapableType : persistenceCapableTypes) {
             if(ignore(persistenceCapableType)) {
                 continue;
             }
+            if(!org.datanucleus.enhancement.Persistable.class.isAssignableFrom(persistenceCapableType)) {
+                classNamesNotEnhanced.add(persistenceCapableType.getCanonicalName());
+            }
             this.entityTypes.add(persistenceCapableType.getCanonicalName());
         }
+
+        if(!classNamesNotEnhanced.isEmpty()) {
+            final String classNamesNotEnhancedStr = Joiner.on("\n* ").join(classNamesNotEnhanced);
+            throw new IllegalStateException("Non-enhanced @PersistenceCapable classes found, will abort.  The classes in error are:\n\n* " + classNamesNotEnhancedStr + "\n\nDid the DataNucleus enhancer run correctly?\n");
+        }
     }
 
     /**