diff --git a/rapidoid-commons/src/main/java/org/rapidoid/jpa/JPA.java b/rapidoid-commons/src/main/java/org/rapidoid/jpa/JPA.java index 54c4b881f7..9a0e13ff6b 100644 --- a/rapidoid-commons/src/main/java/org/rapidoid/jpa/JPA.java +++ b/rapidoid-commons/src/main/java/org/rapidoid/jpa/JPA.java @@ -2,8 +2,10 @@ import org.rapidoid.annotation.Authors; import org.rapidoid.annotation.Since; +import org.rapidoid.cls.Cls; import org.rapidoid.concurrent.Callback; import org.rapidoid.ctx.Ctxs; +import org.rapidoid.log.Log; import javax.persistence.EntityManager; import java.util.List; @@ -104,4 +106,11 @@ public static E get(Class clazz, Object id) { return with(em()).get(clazz, id); } + public static void bootstrap(String[] path, Class... entities) { + if (Cls.exists("org.hibernate.cfg.Configuration")) { + Log.info("Bootstrapping JPA (Hibernate)"); + Ctxs.setPersisterProvider(new QuickJPA(QuickJPA.emf(path, entities))); + } + } + } diff --git a/rapidoid-commons/src/main/java/org/rapidoid/jpa/QuickJPA.java b/rapidoid-commons/src/main/java/org/rapidoid/jpa/QuickJPA.java index 5582945c78..07bdc27cfe 100644 --- a/rapidoid-commons/src/main/java/org/rapidoid/jpa/QuickJPA.java +++ b/rapidoid-commons/src/main/java/org/rapidoid/jpa/QuickJPA.java @@ -27,9 +27,7 @@ import org.hibernate.jpa.internal.EntityManagerFactoryImpl; import org.rapidoid.annotation.Authors; import org.rapidoid.annotation.Since; -import org.rapidoid.cls.Cls; import org.rapidoid.config.Conf; -import org.rapidoid.ctx.Ctxs; import org.rapidoid.ctx.PersisterProvider; import org.rapidoid.io.IO; import org.rapidoid.log.Log; @@ -53,7 +51,7 @@ public QuickJPA(HibernateEntityManagerFactory emf) { this.emf = emf; } - private static synchronized org.hibernate.ejb.HibernateEntityManagerFactory emFactory(String path[], Class... entities) { + public static synchronized org.hibernate.ejb.HibernateEntityManagerFactory emf(String path[], Class... entities) { org.hibernate.cfg.AnnotationConfiguration cfg = new org.hibernate.cfg.AnnotationConfiguration(); @@ -116,11 +114,4 @@ public void closePersister(Object persister) { em.close(); } - public static void bootstrap(String[] path, Class... entities) { - if (Cls.exists("org.hibernate.cfg.Configuration")) { - Log.info("Bootstrapping JPA (Hibernate)"); - Ctxs.setPersisterProvider(new QuickJPA(emFactory(path, entities))); - } - } - } diff --git a/rapidoid-http-server/src/main/java/org/rapidoid/setup/Setup.java b/rapidoid-http-server/src/main/java/org/rapidoid/setup/Setup.java index 8147ceea6c..a7d0bc30d7 100644 --- a/rapidoid-http-server/src/main/java/org/rapidoid/setup/Setup.java +++ b/rapidoid-http-server/src/main/java/org/rapidoid/setup/Setup.java @@ -18,7 +18,7 @@ import org.rapidoid.ioc.IoC; import org.rapidoid.ioc.IoCContext; import org.rapidoid.job.Jobs; -import org.rapidoid.jpa.QuickJPA; +import org.rapidoid.jpa.JPA; import org.rapidoid.lambda.NParamLambda; import org.rapidoid.log.Log; import org.rapidoid.net.Server; @@ -363,7 +363,7 @@ public Setup bootstrap(String... args) { this.args(args); beans(annotated(Controller.class).in(path()).loadAll().toArray()); - QuickJPA.bootstrap(path()); + JPA.bootstrap(path()); Log.info("Completed bootstrap", "context", getIoCContext()); return this; diff --git a/rapidoid-integration-tests/src/test/java/org/rapidoid/http/HttpTestCommons.java b/rapidoid-integration-tests/src/test/java/org/rapidoid/http/HttpTestCommons.java index e9865a0e10..babcc0ebd5 100644 --- a/rapidoid-integration-tests/src/test/java/org/rapidoid/http/HttpTestCommons.java +++ b/rapidoid-integration-tests/src/test/java/org/rapidoid/http/HttpTestCommons.java @@ -69,6 +69,8 @@ public void openContext() { On.setup().http().resetConfig(); On.setup().listen(); + Setup.resetGlobalState(); + System.out.println("--- SERVER STARTED ---"); notFound("/"); diff --git a/rapidoid-integration-tests/src/test/java/org/rapidoid/jpa/JPATest.java b/rapidoid-integration-tests/src/test/java/org/rapidoid/jpa/JPATest.java index 7fa267b5e4..19c7281ba2 100644 --- a/rapidoid-integration-tests/src/test/java/org/rapidoid/jpa/JPATest.java +++ b/rapidoid-integration-tests/src/test/java/org/rapidoid/jpa/JPATest.java @@ -6,7 +6,6 @@ import org.rapidoid.fluent.Do; import org.rapidoid.http.HttpTestCommons; import org.rapidoid.job.Jobs; -import org.rapidoid.setup.On; import org.rapidoid.u.U; import org.rapidoid.util.UTILS; @@ -39,7 +38,8 @@ public class JPATest extends HttpTestCommons { @Test public void testBasicCRUD() { - QuickJPA.bootstrap(On.path()); + String[] path = {JPATest.class.getPackage().getName()}; + JPA.bootstrap(path); Book b1 = new Book("book 1"); Book b2 = new Book("book 2");