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/03/21 12:19:57 UTC
git commit: ISIS-370: Service for eagerly registering entity types
Updated Branches:
refs/heads/master 5c27066dd -> e00abc7fd
Updated Tags: refs/tags/isis-1.1.0-RC1 [created] 4859004d0
refs/tags/isis-security-shiro-1.1.0-RC1 [created] 340f5709d
refs/tags/isis-viewer-wicket-1.1.0-RC1 [created] e11c74411
refs/tags/quickstart_wicket_restful_jdo-archetype-1.0.2-RC1 [created] 87c2b682c
refs/tags/upstream/isis-0.1.2-RC2-incubating [created] 073e279a0
refs/tags/upstream/isis-0.1.2-RC3-incubating [created] 0b09a4c2e
refs/tags/upstream/isis-0.1.2-RC4-incubating [created] 234a55fb5
refs/tags/upstream/isis-0.1.2-incubating [created] 40c529018
refs/tags/upstream/isis-0.2.0-incubating [created] 6dce716dd
refs/tags/upstream/isis-1.0.0 [created] 53dddebcb
refs/tags/upstream/isis-1.0.0-RC1 [created] 771f7e393
refs/tags/upstream/isis-1.0.0-RC2 [created] 53dddebcb
refs/tags/upstream/isis-1.1.0 [created] 4859004d0
refs/tags/upstream/isis-objectstore-jdo-1.0.0 [created] 423f7a110
refs/tags/upstream/isis-objectstore-jdo-1.0.0-RC1 [created] 1a2b468b2
refs/tags/upstream/isis-objectstore-jdo-1.0.0-RC2 [created] 423f7a110
refs/tags/upstream/isis-security-file-1.0.0 [created] b71ec3d05
refs/tags/upstream/isis-security-file-1.0.0-RC1 [created] ad852d3ef
refs/tags/upstream/isis-security-file-1.0.0-RC2 [created] b71ec3d05
refs/tags/upstream/isis-security-shiro-1.0.0 [created] d7afb7606
refs/tags/upstream/isis-security-shiro-1.0.0-RC1 [created] d7afb7606
refs/tags/upstream/isis-security-shiro-1.1.0 [created] 340f5709d
refs/tags/upstream/isis-viewer-restfulobjects-1.0.0 [created] e21e1f19f
refs/tags/upstream/isis-viewer-restfulobjects-1.0.0-RC1 [created] 6916f21e3
refs/tags/upstream/isis-viewer-restfulobjects-1.0.0-RC2 [created] e21e1f19f
refs/tags/upstream/isis-viewer-wicket-1.0.0 [created] f12423d73
refs/tags/upstream/isis-viewer-wicket-1.0.0-RC1 [created] 8f8a549a0
refs/tags/upstream/isis-viewer-wicket-1.0.0-RC2 [created] f12423d73
refs/tags/upstream/isis-viewer-wicket-1.1.0 [created] e11c74411
refs/tags/upstream/origin/isis-0.1.2-RC2-incubating [created] 073e279a0
refs/tags/upstream/origin/isis-0.1.2-RC3-incubating [created] 0b09a4c2e
refs/tags/upstream/origin/isis-0.1.2-RC4-incubating [created] 234a55fb5
refs/tags/upstream/origin/isis-0.1.2-incubating [created] 40c529018
refs/tags/upstream/origin/isis-0.2.0-incubating [created] 6dce716dd
refs/tags/upstream/origin/isis-1.0.0 [created] 53dddebcb
refs/tags/upstream/origin/isis-1.0.0-RC1 [created] 771f7e393
refs/tags/upstream/origin/isis-1.0.0-RC2 [created] 53dddebcb
refs/tags/upstream/origin/isis-1.1.0 [created] 4859004d0
refs/tags/upstream/origin/isis-objectstore-jdo-1.0.0 [created] 423f7a110
refs/tags/upstream/origin/isis-objectstore-jdo-1.0.0-RC1 [created] 1a2b468b2
refs/tags/upstream/origin/isis-objectstore-jdo-1.0.0-RC2 [created] 423f7a110
refs/tags/upstream/origin/isis-security-file-1.0.0 [created] b71ec3d05
refs/tags/upstream/origin/isis-security-file-1.0.0-RC1 [created] ad852d3ef
refs/tags/upstream/origin/isis-security-file-1.0.0-RC2 [created] b71ec3d05
refs/tags/upstream/origin/isis-security-shiro-1.0.0 [created] d7afb7606
refs/tags/upstream/origin/isis-security-shiro-1.0.0-RC1 [created] d7afb7606
refs/tags/upstream/origin/isis-security-shiro-1.1.0 [created] 340f5709d
refs/tags/upstream/origin/isis-viewer-restfulobjects-1.0.0 [created] e21e1f19f
refs/tags/upstream/origin/isis-viewer-restfulobjects-1.0.0-RC1 [created] 6916f21e3
refs/tags/upstream/origin/isis-viewer-restfulobjects-1.0.0-RC2 [created] e21e1f19f
refs/tags/upstream/origin/isis-viewer-wicket-1.0.0 [created] f12423d73
refs/tags/upstream/origin/isis-viewer-wicket-1.0.0-RC1 [created] 8f8a549a0
refs/tags/upstream/origin/isis-viewer-wicket-1.0.0-RC2 [created] f12423d73
refs/tags/upstream/origin/isis-viewer-wicket-1.1.0 [created] e11c74411
refs/tags/upstream/origin/origin/isis-0.1.2-RC2-incubating [created] 073e279a0
refs/tags/upstream/origin/origin/isis-0.1.2-RC3-incubating [created] 0b09a4c2e
refs/tags/upstream/origin/origin/isis-0.1.2-RC4-incubating [created] 234a55fb5
refs/tags/upstream/origin/origin/isis-0.1.2-incubating [created] 40c529018
refs/tags/upstream/origin/origin/isis-0.2.0-incubating [created] 6dce716dd
refs/tags/upstream/origin/origin/isis-1.0.0 [created] 53dddebcb
refs/tags/upstream/origin/origin/isis-1.1.0 [created] 4859004d0
refs/tags/upstream/origin/origin/isis-objectstore-jdo-1.0.0 [created] 423f7a110
refs/tags/upstream/origin/origin/isis-security-file-1.0.0 [created] b71ec3d05
refs/tags/upstream/origin/origin/isis-security-shiro-1.0.0 [created] d7afb7606
refs/tags/upstream/origin/origin/isis-security-shiro-1.1.0 [created] 340f5709d
refs/tags/upstream/origin/origin/isis-viewer-restfulobjects-1.0.0 [created] e21e1f19f
refs/tags/upstream/origin/origin/isis-viewer-wicket-1.0.0 [created] f12423d73
refs/tags/upstream/origin/origin/isis-viewer-wicket-1.1.0 [created] e11c74411
refs/tags/upstream/origin/origin/quickstart_wicket_restful_jdo-archetype-1.0.0 [created] cdb171f80
refs/tags/upstream/origin/origin/quickstart_wicket_restful_jdo-archetype-1.0.1 [created] 86878f4c3
refs/tags/upstream/origin/origin/quickstart_wicket_restful_jdo-archetype-1.0.2 [created] 87c2b682c
refs/tags/upstream/origin/quickstart_wicket_restful_jdo-archetype-1.0.0 [created] cdb171f80
refs/tags/upstream/origin/quickstart_wicket_restful_jdo-archetype-1.0.0-RC1 [created] cdb171f80
refs/tags/upstream/origin/quickstart_wicket_restful_jdo-archetype-1.0.1 [created] 86878f4c3
refs/tags/upstream/origin/quickstart_wicket_restful_jdo-archetype-1.0.1-RC1 [created] e1c22b22a
refs/tags/upstream/origin/quickstart_wicket_restful_jdo-archetype-1.0.1-RC2 [created] 86878f4c3
refs/tags/upstream/origin/quickstart_wicket_restful_jdo-archetype-1.0.2 [created] 87c2b682c
refs/tags/upstream/quickstart_wicket_restful_jdo-archetype-1.0.0 [created] cdb171f80
refs/tags/upstream/quickstart_wicket_restful_jdo-archetype-1.0.0-RC1 [created] cdb171f80
refs/tags/upstream/quickstart_wicket_restful_jdo-archetype-1.0.1 [created] 86878f4c3
refs/tags/upstream/quickstart_wicket_restful_jdo-archetype-1.0.1-RC1 [created] e1c22b22a
refs/tags/upstream/quickstart_wicket_restful_jdo-archetype-1.0.1-RC2 [created] 86878f4c3
refs/tags/upstream/quickstart_wicket_restful_jdo-archetype-1.0.2 [created] 87c2b682c
ISIS-370: Service for eagerly registering entity types
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/e00abc7f
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/e00abc7f
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/e00abc7f
Branch: refs/heads/master
Commit: e00abc7fd9f352efbfacf7d1c7c5134240fdd260
Parents: 5c27066
Author: Jeroen van der Wal <je...@stromboli.it>
Authored: Thu Mar 21 12:19:04 2013 +0100
Committer: Jeroen van der Wal <je...@stromboli.it>
Committed: Thu Mar 21 12:19:04 2013 +0100
----------------------------------------------------------------------
component/objectstore/jdo/jdo-datanucleus/pom.xml | 6 ++
.../objectstore/jdo/service/RegisterEntities.java | 58 +++++++++++++++
core/pom.xml | 9 ++
3 files changed, 73 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/e00abc7f/component/objectstore/jdo/jdo-datanucleus/pom.xml
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-datanucleus/pom.xml b/component/objectstore/jdo/jdo-datanucleus/pom.xml
index 89979b2..85ed1c2 100644
--- a/component/objectstore/jdo/jdo-datanucleus/pom.xml
+++ b/component/objectstore/jdo/jdo-datanucleus/pom.xml
@@ -58,6 +58,12 @@
<artifactId>isis-objectstore-jdo-metamodel</artifactId>
</dependency>
+ <!-- for the RegisterEntities service -->
+ <dependency>
+ <groupId>org.reflections</groupId>
+ <artifactId>reflections</artifactId>
+ </dependency>
+
<dependency>
<groupId>javax.jdo</groupId>
<artifactId>jdo-api</artifactId>
http://git-wip-us.apache.org/repos/asf/isis/blob/e00abc7f/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java b/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java
new file mode 100644
index 0000000..d3d7e9c
--- /dev/null
+++ b/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java
@@ -0,0 +1,58 @@
+package org.apache.isis.objectstore.jdo.service;
+
+import java.util.Map;
+import java.util.Set;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.jdo.annotations.PersistenceCapable;
+
+import com.google.common.base.Splitter;
+
+import org.apache.log4j.Logger;
+import org.reflections.Reflections;
+
+import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.core.runtime.system.context.IsisContext;
+
+@Hidden
+public class RegisterEntities {
+
+ private final static Logger LOG = Logger.getLogger(RegisterEntities.class);
+
+ private final static String PACKAGE_PREFIX_KEY = "isis.persistor.datanucleus.RegisterEntities.packagePrefix";
+
+ private String packagePrefixes;
+
+ @PostConstruct
+ public void init(Map<String,String> props) {
+ packagePrefixes = props.get(PACKAGE_PREFIX_KEY);
+ }
+
+ @PreDestroy
+ public void shutdown() {
+ }
+
+
+ @PostConstruct
+ public void registerAllPersistenceCapables() {
+
+ if(packagePrefixes == null) {
+ LOG.warn("Did not find key '" + PACKAGE_PREFIX_KEY + "' and so entities will not be eagerly registered in the Isis metamodel");
+ return;
+ }
+
+ for (String packagePrefix : Splitter.on(",").split(packagePrefixes)) {
+ Reflections reflections = new Reflections(packagePrefix);
+
+ Set<Class<?>> entityTypes =
+ reflections.getTypesAnnotatedWith(PersistenceCapable.class);
+
+ for (Class<?> entityType : entityTypes) {
+ IsisContext.getSpecificationLoader().loadSpecification(entityType);
+ }
+ }
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/e00abc7f/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index fb587b3..a5a0a2f 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -1118,6 +1118,15 @@ ${license.additional-notes}
<version>1.3</version>
</dependency>
+
+ <!-- Other Common Utils -->
+ <dependency>
+ <groupId>org.reflections</groupId>
+ <artifactId>reflections</artifactId>
+ <version>0.9.8</version>
+ </dependency>
+
+
<!-- Google Guava (collections and commons) -->
<dependency>
<groupId>com.google.guava</groupId>