diff --git a/pom.xml b/pom.xml
index 6ef8e0d190..1f2372a83e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -82,6 +82,9 @@
rapidoid-commons
rapidoid-test-commons
rapidoid-buffer
+ rapidoid-jpa
+ rapidoid-inject
+ rapidoid-render
rapidoid-net
rapidoid-http-fast
rapidoid-http-client
diff --git a/rapidoid-commons/pom.xml b/rapidoid-commons/pom.xml
index f1368cb30e..f4820460e1 100644
--- a/rapidoid-commons/pom.xml
+++ b/rapidoid-commons/pom.xml
@@ -59,12 +59,6 @@
${validation-api.version}
true
-
- org.springframework
- spring-context
- ${spring.version}
- true
-
javax.inject
javax.inject
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/ctx/Ctxs.java b/rapidoid-commons/src/main/java/org/rapidoid/ctx/Ctxs.java
index a3f7e565e2..016449fc92 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/ctx/Ctxs.java
+++ b/rapidoid-commons/src/main/java/org/rapidoid/ctx/Ctxs.java
@@ -4,7 +4,6 @@
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.commons.Coll;
-import org.rapidoid.jpa.JPAPersisterProvider;
import org.rapidoid.log.Log;
import org.rapidoid.u.U;
@@ -34,7 +33,7 @@ public class Ctxs extends RapidoidThing {
private static final ThreadLocal CTXS = new ThreadLocal();
- private static volatile PersisterProvider persisterProvider = new JPAPersisterProvider();
+ private static volatile PersisterProvider persisterProvider;
private Ctxs() {
}
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/util/Msc.java b/rapidoid-commons/src/main/java/org/rapidoid/util/Msc.java
index 2a6ecf8060..407339afd9 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/util/Msc.java
+++ b/rapidoid-commons/src/main/java/org/rapidoid/util/Msc.java
@@ -737,6 +737,10 @@ public static boolean hasJPA() {
return Cls.exists("javax.persistence.Entity");
}
+ public static boolean hasRapidoidJPA() {
+ return Cls.exists("org.rapidoid.jpa.JPA");
+ }
+
public static boolean hasInject() {
return Cls.exists("javax.inject.Inject");
}
diff --git a/rapidoid-commons/src/main/resources/rapidoid-classes.txt b/rapidoid-commons/src/main/resources/rapidoid-classes.txt
index a545ce177b..8be30615a3 100644
--- a/rapidoid-commons/src/main/resources/rapidoid-classes.txt
+++ b/rapidoid-commons/src/main/resources/rapidoid-classes.txt
@@ -355,6 +355,7 @@ org.rapidoid.insight.PercentMeasure
org.rapidoid.insight.StatsMeasure
org.rapidoid.integrate.Integrate
org.rapidoid.integrate.MustacheViewRenderer
+org.rapidoid.integrate.SpringIntegrator
org.rapidoid.ioc.BeanProvider
org.rapidoid.ioc.ClassMetadata
org.rapidoid.ioc.IoC
@@ -363,6 +364,7 @@ org.rapidoid.ioc.IoCContextChanges
org.rapidoid.ioc.IoCContextImpl
org.rapidoid.ioc.IoCContextWrapper
org.rapidoid.ioc.IoCState
+org.rapidoid.ioc.OptionalJPAUtil
org.rapidoid.io.CustomizableClassLoader
org.rapidoid.io.IO
org.rapidoid.io.Res
@@ -469,6 +471,9 @@ org.rapidoid.pool.SynchronizedArrayPool
org.rapidoid.pool.SynchronizedPool
org.rapidoid.pool.ThreadSafeArrayPool
org.rapidoid.RapidoidThing
+org.rapidoid.reload.ClassReloader
+org.rapidoid.reload.OptionalJPAUtil
+org.rapidoid.reload.Reload
org.rapidoid.render.Getter
org.rapidoid.render.RapidoidTemplate
org.rapidoid.render.Render
@@ -523,7 +528,6 @@ org.rapidoid.sql.NoConnectionPool
org.rapidoid.test.TestCommons
org.rapidoid.util.AbstractMapImpl
org.rapidoid.util.Bufs
-org.rapidoid.util.ClassReloader
org.rapidoid.util.CommonWords
org.rapidoid.util.Constants
org.rapidoid.util.D
@@ -532,7 +536,6 @@ org.rapidoid.util.MapEntry
org.rapidoid.util.Msc
org.rapidoid.util.NullOutputStream
org.rapidoid.util.RapidoidProcess
-org.rapidoid.util.Reload
org.rapidoid.util.Resetable
org.rapidoid.util.Role
org.rapidoid.util.RuntimeInfo
@@ -540,7 +543,6 @@ org.rapidoid.util.SimpleHashTable
org.rapidoid.util.SimpleList
org.rapidoid.util.SimpleMap
org.rapidoid.util.SimplePersisterProvider
-org.rapidoid.util.SpringIntegrator
org.rapidoid.util.SuccessException
org.rapidoid.util.Usage
org.rapidoid.u.U
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/cls/ClsTest.java b/rapidoid-commons/src/test/java/org/rapidoid/cls/ClsTest.java
index e3a44d77af..e4581e6b95 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/cls/ClsTest.java
+++ b/rapidoid-commons/src/test/java/org/rapidoid/cls/ClsTest.java
@@ -4,10 +4,6 @@
import org.rapidoid.annotation.*;
import org.rapidoid.commons.Dates;
import org.rapidoid.http.HttpVerb;
-import org.rapidoid.ioc.Logger;
-import org.rapidoid.ioc.db.Database;
-import org.rapidoid.ioc.db.Table;
-import org.rapidoid.ioc.db.Transactor;
import org.rapidoid.test.AbstractCommonsTest;
import org.rapidoid.test.TestCommons;
import org.rapidoid.u.U;
@@ -44,10 +40,6 @@ public class ClsTest extends AbstractCommonsTest {
@Test
public void testIsBeanType() {
isTrue(Cls.isBeanType(Foo.class));
- isTrue(Cls.isBeanType(Logger.class));
- isTrue(Cls.isBeanType(Database.class));
- isTrue(Cls.isBeanType(Table.class));
- isTrue(Cls.isBeanType(Transactor.class));
isFalse(Cls.isBeanType(Object.class));
isFalse(Cls.isBeanType(HttpVerb.class));
@@ -60,10 +52,6 @@ public void testIsBeanType() {
@Test
public void testIsRapidoidClass() {
isFalse(Cls.isRapidoidClass(Foo.class));
- isFalse(Cls.isRapidoidClass(Logger.class));
- isFalse(Cls.isRapidoidClass(Database.class));
- isFalse(Cls.isRapidoidClass(Table.class));
- isFalse(Cls.isRapidoidClass(Transactor.class));
isFalse(Cls.isRapidoidClass(Object.class));
isFalse(Cls.isRapidoidClass(Runnable.class));
isFalse(Cls.isRapidoidClass(ArrayList.class));
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/test/AbstractCommonsTest.java b/rapidoid-commons/src/test/java/org/rapidoid/test/AbstractCommonsTest.java
index 51f815be6b..4a1dc979d6 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/test/AbstractCommonsTest.java
+++ b/rapidoid-commons/src/test/java/org/rapidoid/test/AbstractCommonsTest.java
@@ -25,7 +25,6 @@
import org.rapidoid.config.Conf;
import org.rapidoid.data.JSON;
import org.rapidoid.io.Res;
-import org.rapidoid.ioc.IoC;
import org.rapidoid.log.Log;
import org.rapidoid.log.LogLevel;
@@ -37,7 +36,6 @@ public void openContext() {
Conf.reset();
Conf.setPath(getTestName());
Log.setLogLevel(LogLevel.INFO);
- IoC.defaultContext().reset();
Env.profiles().clear();
Env.profiles().add("default");
}
@@ -46,21 +44,4 @@ protected void verify(String name, Object actual) {
super.verifyCase(name, JSON.prettify(actual), name);
}
- protected void verifyIoC() {
- verify("ioc", IoC.defaultContext().info());
- }
-
- protected void verifyIoC(String name) {
- verify(name, IoC.defaultContext().info());
- }
-
- protected void noIocBean(Class> clazz) {
- try {
- IoC.singleton(clazz);
- fail("Expected IoC exception for class: " + clazz);
- } catch (RuntimeException e) {
- // ok
- }
- }
-
}
diff --git a/rapidoid-http-fast/pom.xml b/rapidoid-http-fast/pom.xml
index d57342eb32..dc82a400c2 100644
--- a/rapidoid-http-fast/pom.xml
+++ b/rapidoid-http-fast/pom.xml
@@ -17,6 +17,21 @@
rapidoid-net
${project.version}
+
+ org.rapidoid
+ rapidoid-render
+ ${project.version}
+
+
+ org.rapidoid
+ rapidoid-jpa
+ ${project.version}
+
+
+ org.rapidoid
+ rapidoid-inject
+ ${project.version}
+
org.apache.httpcomponents
httpasyncclient
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 01eda5d043..006aec4945 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
@@ -10,6 +10,7 @@
import org.rapidoid.config.Conf;
import org.rapidoid.config.Config;
import org.rapidoid.config.RapidoidInitializer;
+import org.rapidoid.ctx.Ctxs;
import org.rapidoid.data.JSON;
import org.rapidoid.http.*;
import org.rapidoid.http.customize.Customization;
@@ -22,15 +23,16 @@
import org.rapidoid.ioc.IoCContext;
import org.rapidoid.job.Jobs;
import org.rapidoid.jpa.JPA;
+import org.rapidoid.jpa.JPAPersisterProvider;
import org.rapidoid.lambda.NParamLambda;
import org.rapidoid.log.Log;
import org.rapidoid.net.Server;
+import org.rapidoid.reload.Reload;
import org.rapidoid.scan.ClasspathUtil;
import org.rapidoid.security.Roles;
import org.rapidoid.u.U;
import org.rapidoid.util.Constants;
import org.rapidoid.util.Msc;
-import org.rapidoid.util.Reload;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
@@ -75,6 +77,10 @@ public void run() {
JSON.warmup();
}
});
+
+ if (Ctxs.getPersisterProvider() == null) {
+ Ctxs.setPersisterProvider(new JPAPersisterProvider());
+ }
}
private static volatile String mainClassName;
diff --git a/rapidoid-inject/pom.xml b/rapidoid-inject/pom.xml
new file mode 100644
index 0000000000..6827e4b039
--- /dev/null
+++ b/rapidoid-inject/pom.xml
@@ -0,0 +1,50 @@
+
+ 4.0.0
+
+
+ org.rapidoid
+ rapidoid
+ 5.1.0-SNAPSHOT
+
+
+ rapidoid-inject
+ jar
+ Rapidoid Inject
+
+
+
+
+ org.rapidoid
+ rapidoid-commons
+ ${project.version}
+
+
+
+
+
+ org.rapidoid
+ rapidoid-jpa
+ ${project.version}
+ true
+
+
+
+ javax.inject
+ javax.inject
+ 1
+ true
+
+
+
+
+
+ org.rapidoid
+ rapidoid-test-commons
+ ${project.version}
+ test
+
+
+
+
+
\ No newline at end of file
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/ioc/BeanProvider.java b/rapidoid-inject/src/main/java/org/rapidoid/ioc/BeanProvider.java
similarity index 97%
rename from rapidoid-commons/src/main/java/org/rapidoid/ioc/BeanProvider.java
rename to rapidoid-inject/src/main/java/org/rapidoid/ioc/BeanProvider.java
index 99cf59e034..b56d7e7554 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/ioc/BeanProvider.java
+++ b/rapidoid-inject/src/main/java/org/rapidoid/ioc/BeanProvider.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/ioc/ClassMetadata.java b/rapidoid-inject/src/main/java/org/rapidoid/ioc/ClassMetadata.java
similarity index 98%
rename from rapidoid-commons/src/main/java/org/rapidoid/ioc/ClassMetadata.java
rename to rapidoid-inject/src/main/java/org/rapidoid/ioc/ClassMetadata.java
index 8bf24f920d..fd5223c9cc 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/ioc/ClassMetadata.java
+++ b/rapidoid-inject/src/main/java/org/rapidoid/ioc/ClassMetadata.java
@@ -11,7 +11,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/ioc/IoC.java b/rapidoid-inject/src/main/java/org/rapidoid/ioc/IoC.java
similarity index 98%
rename from rapidoid-commons/src/main/java/org/rapidoid/ioc/IoC.java
rename to rapidoid-inject/src/main/java/org/rapidoid/ioc/IoC.java
index 28ec66d77d..8b45d10f69 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/ioc/IoC.java
+++ b/rapidoid-inject/src/main/java/org/rapidoid/ioc/IoC.java
@@ -8,7 +8,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/ioc/IoCContext.java b/rapidoid-inject/src/main/java/org/rapidoid/ioc/IoCContext.java
similarity index 98%
rename from rapidoid-commons/src/main/java/org/rapidoid/ioc/IoCContext.java
rename to rapidoid-inject/src/main/java/org/rapidoid/ioc/IoCContext.java
index eea8851934..a995f08d4b 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/ioc/IoCContext.java
+++ b/rapidoid-inject/src/main/java/org/rapidoid/ioc/IoCContext.java
@@ -9,7 +9,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/ioc/IoCContextChanges.java b/rapidoid-inject/src/main/java/org/rapidoid/ioc/IoCContextChanges.java
similarity index 98%
rename from rapidoid-commons/src/main/java/org/rapidoid/ioc/IoCContextChanges.java
rename to rapidoid-inject/src/main/java/org/rapidoid/ioc/IoCContextChanges.java
index 1065a4857d..9fe4840673 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/ioc/IoCContextChanges.java
+++ b/rapidoid-inject/src/main/java/org/rapidoid/ioc/IoCContextChanges.java
@@ -8,7 +8,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/ioc/IoCContextImpl.java b/rapidoid-inject/src/main/java/org/rapidoid/ioc/IoCContextImpl.java
similarity index 97%
rename from rapidoid-commons/src/main/java/org/rapidoid/ioc/IoCContextImpl.java
rename to rapidoid-inject/src/main/java/org/rapidoid/ioc/IoCContextImpl.java
index 6a1cf5013b..7e109112f3 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/ioc/IoCContextImpl.java
+++ b/rapidoid-inject/src/main/java/org/rapidoid/ioc/IoCContextImpl.java
@@ -8,16 +8,12 @@
import org.rapidoid.commons.Env;
import org.rapidoid.config.Conf;
import org.rapidoid.config.Config;
-import org.rapidoid.jpa.SharedContextAwareEntityManagerProxy;
-import org.rapidoid.jpa.SharedEntityManagerFactoryProxy;
import org.rapidoid.lambda.Lmbd;
import org.rapidoid.lambda.Mapper;
import org.rapidoid.log.Log;
import org.rapidoid.u.U;
import org.rapidoid.util.Msc;
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Iterator;
@@ -27,7 +23,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
@@ -272,16 +268,18 @@ private boolean isClass(Object obj) {
private Object provideSpecialInstance(Class> type, String name) {
+ String cls = type.getName();
+
if (type.equals(IoCContext.class)) {
return U.or(wrapper, this);
}
- if (type.equals(EntityManagerFactory.class)) {
- return SharedEntityManagerFactoryProxy.INSTANCE;
+ if (cls.equals("javax.persistence.EntityManager") && Msc.hasRapidoidJPA()) {
+ return OptionalJPAUtil.getSharedContextAwareEntityManagerProxy();
}
- if (type.equals(EntityManager.class)) {
- return SharedContextAwareEntityManagerProxy.INSTANCE;
+ if (cls.equals("javax.persistence.EntityManagerFactory") && Msc.hasRapidoidJPA()) {
+ return OptionalJPAUtil.getSharedEntityManagerFactoryProxy();
}
return null;
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/ioc/IoCContextWrapper.java b/rapidoid-inject/src/main/java/org/rapidoid/ioc/IoCContextWrapper.java
similarity index 99%
rename from rapidoid-commons/src/main/java/org/rapidoid/ioc/IoCContextWrapper.java
rename to rapidoid-inject/src/main/java/org/rapidoid/ioc/IoCContextWrapper.java
index 6d08734d49..cfed495355 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/ioc/IoCContextWrapper.java
+++ b/rapidoid-inject/src/main/java/org/rapidoid/ioc/IoCContextWrapper.java
@@ -10,7 +10,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/ioc/IoCState.java b/rapidoid-inject/src/main/java/org/rapidoid/ioc/IoCState.java
similarity index 99%
rename from rapidoid-commons/src/main/java/org/rapidoid/ioc/IoCState.java
rename to rapidoid-inject/src/main/java/org/rapidoid/ioc/IoCState.java
index ed3792d277..573945ac60 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/ioc/IoCState.java
+++ b/rapidoid-inject/src/main/java/org/rapidoid/ioc/IoCState.java
@@ -13,7 +13,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-inject/src/main/java/org/rapidoid/ioc/OptionalJPAUtil.java b/rapidoid-inject/src/main/java/org/rapidoid/ioc/OptionalJPAUtil.java
new file mode 100644
index 0000000000..5694e9bdcf
--- /dev/null
+++ b/rapidoid-inject/src/main/java/org/rapidoid/ioc/OptionalJPAUtil.java
@@ -0,0 +1,41 @@
+package org.rapidoid.ioc;
+
+/*
+ * #%L
+ * rapidoid-inject
+ * %%
+ * Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
+ * %%
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * #L%
+ */
+
+import org.rapidoid.RapidoidThing;
+import org.rapidoid.annotation.Authors;
+import org.rapidoid.annotation.Since;
+import org.rapidoid.jpa.SharedContextAwareEntityManagerProxy;
+import org.rapidoid.jpa.SharedEntityManagerFactoryProxy;
+
+@Authors("Nikolche Mihajlovski")
+@Since("5.1.0")
+public class OptionalJPAUtil extends RapidoidThing {
+
+ public static Object getSharedEntityManagerFactoryProxy() {
+ return SharedEntityManagerFactoryProxy.INSTANCE;
+ }
+
+ public static Object getSharedContextAwareEntityManagerProxy() {
+ return SharedContextAwareEntityManagerProxy.INSTANCE;
+ }
+
+}
diff --git a/rapidoid-inject/src/test/java/org/rapidoid/ioc/AbstractInjectTest.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/AbstractInjectTest.java
new file mode 100644
index 0000000000..13b01174df
--- /dev/null
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/AbstractInjectTest.java
@@ -0,0 +1,66 @@
+package org.rapidoid.ioc;
+
+/*
+ * #%L
+ * rapidoid-inject
+ * %%
+ * Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
+ * %%
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * #L%
+ */
+
+import org.junit.Before;
+import org.rapidoid.commons.Env;
+import org.rapidoid.config.Conf;
+import org.rapidoid.data.JSON;
+import org.rapidoid.io.Res;
+import org.rapidoid.log.Log;
+import org.rapidoid.log.LogLevel;
+import org.rapidoid.test.TestCommons;
+
+public abstract class AbstractInjectTest extends TestCommons {
+
+ @Before
+ public void openContext() {
+ Res.reset();
+ Conf.reset();
+ Conf.setPath(getTestName());
+ Log.setLogLevel(LogLevel.INFO);
+ IoC.defaultContext().reset();
+ Env.profiles().clear();
+ Env.profiles().add("default");
+ }
+
+ protected void verify(String name, Object actual) {
+ super.verifyCase(name, JSON.prettify(actual), name);
+ }
+
+ protected void verifyIoC() {
+ verify("ioc", IoC.defaultContext().info());
+ }
+
+ protected void verifyIoC(String name) {
+ verify(name, IoC.defaultContext().info());
+ }
+
+ protected void noIocBean(Class> clazz) {
+ try {
+ IoC.singleton(clazz);
+ fail("Expected IoC exception for class: " + clazz);
+ } catch (RuntimeException e) {
+ // ok
+ }
+ }
+
+}
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/Bar.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/Bar.java
similarity index 97%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/Bar.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/Bar.java
index 9570d53a72..1544520055 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/Bar.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/Bar.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/Logger.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/Logger.java
similarity index 97%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/Logger.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/Logger.java
index 8ca0d9412a..1b199bafda 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/Logger.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/Logger.java
@@ -5,7 +5,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/app/App.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/app/App.java
similarity index 98%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/app/App.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/app/App.java
index b07c3953d9..333f6b4482 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/app/App.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/app/App.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/app/AppInjectionTest.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/app/AppInjectionTest.java
similarity index 91%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/app/AppInjectionTest.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/app/AppInjectionTest.java
index 2cb42f73a3..aa372d35e6 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/app/AppInjectionTest.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/app/AppInjectionTest.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
@@ -23,12 +23,12 @@
import org.junit.Test;
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
+import org.rapidoid.ioc.AbstractInjectTest;
import org.rapidoid.ioc.IoC;
-import org.rapidoid.test.AbstractCommonsTest;
@Authors("Nikolche Mihajlovski")
@Since("2.0.0")
-public class AppInjectionTest extends AbstractCommonsTest {
+public class AppInjectionTest extends AbstractInjectTest {
@Test
public void shouldInjectAndCallPostConstruct() {
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/app/BookDao.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/app/BookDao.java
similarity index 97%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/app/BookDao.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/app/BookDao.java
index 4f8ee4ce83..7b42a0abd0 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/app/BookDao.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/app/BookDao.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/app/BookService.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/app/BookService.java
similarity index 97%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/app/BookService.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/app/BookService.java
index 7f433aa7de..133b894c76 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/app/BookService.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/app/BookService.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/app/PersonService.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/app/PersonService.java
similarity index 97%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/app/PersonService.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/app/PersonService.java
index a434506af1..b6389ee850 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/app/PersonService.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/app/PersonService.java
@@ -5,7 +5,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/app/PersonServiceImpl.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/app/PersonServiceImpl.java
similarity index 97%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/app/PersonServiceImpl.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/app/PersonServiceImpl.java
index b803310f41..f1f422822f 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/app/PersonServiceImpl.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/app/PersonServiceImpl.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/basic/CallableInjectionTest.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/basic/CallableInjectionTest.java
similarity index 90%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/basic/CallableInjectionTest.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/basic/CallableInjectionTest.java
index a3e9e7db30..ae77646092 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/basic/CallableInjectionTest.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/basic/CallableInjectionTest.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
@@ -23,12 +23,12 @@
import org.junit.Test;
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
+import org.rapidoid.ioc.AbstractInjectTest;
import org.rapidoid.ioc.IoC;
-import org.rapidoid.test.AbstractCommonsTest;
@Authors("Nikolche Mihajlovski")
@Since("2.0.0")
-public class CallableInjectionTest extends AbstractCommonsTest {
+public class CallableInjectionTest extends AbstractInjectTest {
@Test
public void shouldInject() throws Exception {
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/basic/Foo.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/basic/Foo.java
similarity index 97%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/basic/Foo.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/basic/Foo.java
index 4515d07de2..00d2606399 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/basic/Foo.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/basic/Foo.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/basic/MyCallable.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/basic/MyCallable.java
similarity index 98%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/basic/MyCallable.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/basic/MyCallable.java
index 02e4cd084d..51e1899a5e 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/basic/MyCallable.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/basic/MyCallable.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/db/Database.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/db/Database.java
similarity index 98%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/db/Database.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/db/Database.java
index 6f9ba99a69..002a2604b5 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/db/Database.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/db/Database.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/db/DbInjectionTest.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/db/DbInjectionTest.java
similarity index 91%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/db/DbInjectionTest.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/db/DbInjectionTest.java
index 017bdfe739..18202a854f 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/db/DbInjectionTest.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/db/DbInjectionTest.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
@@ -23,12 +23,12 @@
import org.junit.Test;
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
+import org.rapidoid.ioc.AbstractInjectTest;
import org.rapidoid.ioc.IoC;
-import org.rapidoid.test.AbstractCommonsTest;
@Authors("Nikolche Mihajlovski")
@Since("2.0.0")
-public class DbInjectionTest extends AbstractCommonsTest {
+public class DbInjectionTest extends AbstractInjectTest {
@Test
public void shouldInject() throws Exception {
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/db/Relat.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/db/Relat.java
similarity index 97%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/db/Relat.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/db/Relat.java
index 2aac5cc648..3dc8fdc004 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/db/Relat.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/db/Relat.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/db/Table.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/db/Table.java
similarity index 97%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/db/Table.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/db/Table.java
index c7b75e755d..8d3fb191c2 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/db/Table.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/db/Table.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/db/Transactor.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/db/Transactor.java
similarity index 97%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/db/Transactor.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/db/Transactor.java
index fe023c0a81..a09010c796 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/db/Transactor.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/db/Transactor.java
@@ -5,7 +5,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/mandatory/MandatoryInjectionTest.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/mandatory/MandatoryInjectionTest.java
similarity index 94%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/mandatory/MandatoryInjectionTest.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/mandatory/MandatoryInjectionTest.java
index 2c35888cab..887fe58ad9 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/mandatory/MandatoryInjectionTest.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/mandatory/MandatoryInjectionTest.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
@@ -24,12 +24,12 @@
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Inject;
import org.rapidoid.annotation.Since;
+import org.rapidoid.ioc.AbstractInjectTest;
import org.rapidoid.ioc.IoC;
-import org.rapidoid.test.AbstractCommonsTest;
@Authors("Nikolche Mihajlovski")
@Since("5.1.0")
-public class MandatoryInjectionTest extends AbstractCommonsTest {
+public class MandatoryInjectionTest extends AbstractInjectTest {
private static final String ERR_MSG = "Didn't find a value for type 'interface java.lang.Runnable' and name 'runnable'!";
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/profiles/BazA.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/profiles/BazA.java
similarity index 98%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/profiles/BazA.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/profiles/BazA.java
index 5601f7f6a0..5ecee30809 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/profiles/BazA.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/profiles/BazA.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/profiles/BazB.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/profiles/BazB.java
similarity index 98%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/profiles/BazB.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/profiles/BazB.java
index a993f674e2..4fe4c30615 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/profiles/BazB.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/profiles/BazB.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/profiles/BazC.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/profiles/BazC.java
similarity index 98%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/profiles/BazC.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/profiles/BazC.java
index de5aafa04b..b02a167816 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/profiles/BazC.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/profiles/BazC.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/profiles/BazWrapper.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/profiles/BazWrapper.java
similarity index 98%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/profiles/BazWrapper.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/profiles/BazWrapper.java
index b8262f2a7d..f54fae92ac 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/profiles/BazWrapper.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/profiles/BazWrapper.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/ioc/profiles/InjectionProfilesTest.java b/rapidoid-inject/src/test/java/org/rapidoid/ioc/profiles/InjectionProfilesTest.java
similarity index 94%
rename from rapidoid-commons/src/test/java/org/rapidoid/ioc/profiles/InjectionProfilesTest.java
rename to rapidoid-inject/src/test/java/org/rapidoid/ioc/profiles/InjectionProfilesTest.java
index b2feba1805..80c79ee636 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/ioc/profiles/InjectionProfilesTest.java
+++ b/rapidoid-inject/src/test/java/org/rapidoid/ioc/profiles/InjectionProfilesTest.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-inject
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
@@ -24,12 +24,12 @@
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.commons.Env;
+import org.rapidoid.ioc.AbstractInjectTest;
import org.rapidoid.ioc.IoC;
-import org.rapidoid.test.AbstractCommonsTest;
@Authors("Nikolche Mihajlovski")
@Since("5.1.0")
-public class InjectionProfilesTest extends AbstractCommonsTest {
+public class InjectionProfilesTest extends AbstractInjectTest {
@Test
public void shouldFailOnNonMatchingProfile() throws Exception {
diff --git a/rapidoid-commons/src/test/resources/test-results/AppInjectionTest/shouldInjectAndCallPostConstruct/ioc b/rapidoid-inject/src/test/resources/test-results/AppInjectionTest/shouldInjectAndCallPostConstruct/ioc
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/AppInjectionTest/shouldInjectAndCallPostConstruct/ioc
rename to rapidoid-inject/src/test/resources/test-results/AppInjectionTest/shouldInjectAndCallPostConstruct/ioc
diff --git a/rapidoid-commons/src/test/resources/test-results/CallableInjectionTest/shouldInject/ioc b/rapidoid-inject/src/test/resources/test-results/CallableInjectionTest/shouldInject/ioc
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/CallableInjectionTest/shouldInject/ioc
rename to rapidoid-inject/src/test/resources/test-results/CallableInjectionTest/shouldInject/ioc
diff --git a/rapidoid-commons/src/test/resources/test-results/DbInjectionTest/shouldInject/ioc b/rapidoid-inject/src/test/resources/test-results/DbInjectionTest/shouldInject/ioc
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/DbInjectionTest/shouldInject/ioc
rename to rapidoid-inject/src/test/resources/test-results/DbInjectionTest/shouldInject/ioc
diff --git a/rapidoid-commons/src/test/resources/test-results/InjectionProfilesTest/shouldFailOnNonMatchingProfile/ioc b/rapidoid-inject/src/test/resources/test-results/InjectionProfilesTest/shouldFailOnNonMatchingProfile/ioc
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/InjectionProfilesTest/shouldFailOnNonMatchingProfile/ioc
rename to rapidoid-inject/src/test/resources/test-results/InjectionProfilesTest/shouldFailOnNonMatchingProfile/ioc
diff --git a/rapidoid-commons/src/test/resources/test-results/InjectionProfilesTest/shouldInjectInProfileAAA/ioc b/rapidoid-inject/src/test/resources/test-results/InjectionProfilesTest/shouldInjectInProfileAAA/ioc
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/InjectionProfilesTest/shouldInjectInProfileAAA/ioc
rename to rapidoid-inject/src/test/resources/test-results/InjectionProfilesTest/shouldInjectInProfileAAA/ioc
diff --git a/rapidoid-commons/src/test/resources/test-results/InjectionProfilesTest/shouldInjectInProfileBBB/ioc b/rapidoid-inject/src/test/resources/test-results/InjectionProfilesTest/shouldInjectInProfileBBB/ioc
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/InjectionProfilesTest/shouldInjectInProfileBBB/ioc
rename to rapidoid-inject/src/test/resources/test-results/InjectionProfilesTest/shouldInjectInProfileBBB/ioc
diff --git a/rapidoid-commons/src/test/resources/test-results/InjectionProfilesTest/shouldInjectInProfileCCC/ioc b/rapidoid-inject/src/test/resources/test-results/InjectionProfilesTest/shouldInjectInProfileCCC/ioc
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/InjectionProfilesTest/shouldInjectInProfileCCC/ioc
rename to rapidoid-inject/src/test/resources/test-results/InjectionProfilesTest/shouldInjectInProfileCCC/ioc
diff --git a/rapidoid-commons/src/test/resources/test-results/MandatoryInjectionTest/testMandatoryInjection/ioc b/rapidoid-inject/src/test/resources/test-results/MandatoryInjectionTest/testMandatoryInjection/ioc
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/MandatoryInjectionTest/testMandatoryInjection/ioc
rename to rapidoid-inject/src/test/resources/test-results/MandatoryInjectionTest/testMandatoryInjection/ioc
diff --git a/rapidoid-commons/src/test/resources/test-results/MandatoryInjectionTest/testMandatoryInjection2/ioc b/rapidoid-inject/src/test/resources/test-results/MandatoryInjectionTest/testMandatoryInjection2/ioc
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/MandatoryInjectionTest/testMandatoryInjection2/ioc
rename to rapidoid-inject/src/test/resources/test-results/MandatoryInjectionTest/testMandatoryInjection2/ioc
diff --git a/rapidoid-commons/src/test/resources/test-results/MandatoryInjectionTest/testTransitiveMandatoryInjection/ioc b/rapidoid-inject/src/test/resources/test-results/MandatoryInjectionTest/testTransitiveMandatoryInjection/ioc
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/MandatoryInjectionTest/testTransitiveMandatoryInjection/ioc
rename to rapidoid-inject/src/test/resources/test-results/MandatoryInjectionTest/testTransitiveMandatoryInjection/ioc
diff --git a/rapidoid-commons/src/test/resources/test-results/MandatoryInjectionTest/testTransitiveMandatoryInjection2/ioc b/rapidoid-inject/src/test/resources/test-results/MandatoryInjectionTest/testTransitiveMandatoryInjection2/ioc
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/MandatoryInjectionTest/testTransitiveMandatoryInjection2/ioc
rename to rapidoid-inject/src/test/resources/test-results/MandatoryInjectionTest/testTransitiveMandatoryInjection2/ioc
diff --git a/rapidoid-integrate/pom.xml b/rapidoid-integrate/pom.xml
index 1f819c2d37..06ca7cb83c 100644
--- a/rapidoid-integrate/pom.xml
+++ b/rapidoid-integrate/pom.xml
@@ -17,15 +17,44 @@
rapidoid-http-fast
${project.version}
+
+ org.rapidoid
+ rapidoid-jpa
+ ${project.version}
+
+
+ org.hibernate
+ hibernate-entitymanager
+ ${hibernate.version}
+ true
+
+
+ javax.validation
+ validation-api
+ ${validation-api.version}
+ true
+
+
+ javax.inject
+ javax.inject
+ 1
+ true
+
com.github.spullara.mustache.java
compiler
${mustache.java.version}
true
+
+ org.springframework
+ spring-context
+ ${spring.version}
+ true
+
org.rapidoid
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/util/SpringIntegrator.java b/rapidoid-integrate/src/main/java/org/rapidoid/integrate/SpringIntegrator.java
similarity index 96%
rename from rapidoid-commons/src/main/java/org/rapidoid/util/SpringIntegrator.java
rename to rapidoid-integrate/src/main/java/org/rapidoid/integrate/SpringIntegrator.java
index 9f8035af1e..34913e1b06 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/util/SpringIntegrator.java
+++ b/rapidoid-integrate/src/main/java/org/rapidoid/integrate/SpringIntegrator.java
@@ -1,4 +1,4 @@
-package org.rapidoid.util;
+package org.rapidoid.integrate;
import org.rapidoid.RapidoidThing;
import org.rapidoid.annotation.Authors;
@@ -8,6 +8,7 @@
import org.rapidoid.ioc.IoC;
import org.rapidoid.jpa.JPA;
import org.rapidoid.u.U;
+import org.rapidoid.util.Msc;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.stereotype.Component;
@@ -18,7 +19,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-integrate
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-jpa/pom.xml b/rapidoid-jpa/pom.xml
new file mode 100644
index 0000000000..1bdffb4de6
--- /dev/null
+++ b/rapidoid-jpa/pom.xml
@@ -0,0 +1,65 @@
+
+ 4.0.0
+
+
+ org.rapidoid
+ rapidoid
+ 5.1.0-SNAPSHOT
+
+
+ rapidoid-jpa
+ jar
+ Rapidoid JPA
+
+
+
+ org.rapidoid
+ rapidoid-commons
+ ${project.version}
+
+
+
+
+
+ org.hibernate
+ hibernate-entitymanager
+ ${hibernate.version}
+ true
+
+
+ javax.inject
+ javax.inject
+ 1
+ true
+
+
+
+
+
+ org.rapidoid
+ rapidoid-test-commons
+ ${project.version}
+ test
+
+
+ mysql
+ mysql-connector-java
+ ${mysql-connector.version}
+ test
+
+
+ com.h2database
+ h2
+ ${h2.version}
+ test
+
+
+ org.hsqldb
+ hsqldb
+ ${hsqldb.version}
+ test
+
+
+
+
+
\ No newline at end of file
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/jpa/AbstractEntity.java b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/AbstractEntity.java
similarity index 98%
rename from rapidoid-commons/src/main/java/org/rapidoid/jpa/AbstractEntity.java
rename to rapidoid-jpa/src/main/java/org/rapidoid/jpa/AbstractEntity.java
index 0f60323edc..83c50c9fc5 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/jpa/AbstractEntity.java
+++ b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/AbstractEntity.java
@@ -10,7 +10,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-jpa
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/jpa/CustomDescriptor.java b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/CustomDescriptor.java
similarity index 99%
rename from rapidoid-commons/src/main/java/org/rapidoid/jpa/CustomDescriptor.java
rename to rapidoid-jpa/src/main/java/org/rapidoid/jpa/CustomDescriptor.java
index 7b91968d92..7af22e1c02 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/jpa/CustomDescriptor.java
+++ b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/CustomDescriptor.java
@@ -14,7 +14,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-jpa
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/jpa/CustomHibernatePersistenceProvider.java b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/CustomHibernatePersistenceProvider.java
similarity index 98%
rename from rapidoid-commons/src/main/java/org/rapidoid/jpa/CustomHibernatePersistenceProvider.java
rename to rapidoid-jpa/src/main/java/org/rapidoid/jpa/CustomHibernatePersistenceProvider.java
index c3721042b4..225854552b 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/jpa/CustomHibernatePersistenceProvider.java
+++ b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/CustomHibernatePersistenceProvider.java
@@ -13,7 +13,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-jpa
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/jpa/DAO.java b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/DAO.java
similarity index 99%
rename from rapidoid-commons/src/main/java/org/rapidoid/jpa/DAO.java
rename to rapidoid-jpa/src/main/java/org/rapidoid/jpa/DAO.java
index 59338a6071..459c12d638 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/jpa/DAO.java
+++ b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/DAO.java
@@ -9,7 +9,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-jpa
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/jpa/EM.java b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/EM.java
similarity index 99%
rename from rapidoid-commons/src/main/java/org/rapidoid/jpa/EM.java
rename to rapidoid-jpa/src/main/java/org/rapidoid/jpa/EM.java
index 3834b4a64c..761c1a3ff2 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/jpa/EM.java
+++ b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/EM.java
@@ -19,7 +19,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-jpa
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/jpa/EMFUtil.java b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/EMFUtil.java
similarity index 98%
rename from rapidoid-commons/src/main/java/org/rapidoid/jpa/EMFUtil.java
rename to rapidoid-jpa/src/main/java/org/rapidoid/jpa/EMFUtil.java
index 669ba10217..a154910937 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/jpa/EMFUtil.java
+++ b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/EMFUtil.java
@@ -14,7 +14,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-jpa
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/jpa/JPA.java b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/JPA.java
similarity index 99%
rename from rapidoid-commons/src/main/java/org/rapidoid/jpa/JPA.java
rename to rapidoid-jpa/src/main/java/org/rapidoid/jpa/JPA.java
index beecedd64b..9ce49d6d5a 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/jpa/JPA.java
+++ b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/JPA.java
@@ -14,7 +14,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-jpa
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/jpa/JPAPersisterProvider.java b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/JPAPersisterProvider.java
similarity index 98%
rename from rapidoid-commons/src/main/java/org/rapidoid/jpa/JPAPersisterProvider.java
rename to rapidoid-jpa/src/main/java/org/rapidoid/jpa/JPAPersisterProvider.java
index d21a9b6b55..5417fe29d3 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/jpa/JPAPersisterProvider.java
+++ b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/JPAPersisterProvider.java
@@ -11,7 +11,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-jpa
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/jpa/JPAUtil.java b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/JPAUtil.java
similarity index 99%
rename from rapidoid-commons/src/main/java/org/rapidoid/jpa/JPAUtil.java
rename to rapidoid-jpa/src/main/java/org/rapidoid/jpa/JPAUtil.java
index 301a9ec62a..c842d91a49 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/jpa/JPAUtil.java
+++ b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/JPAUtil.java
@@ -18,7 +18,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-jpa
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/jpa/SharedContextAwareEntityManagerProxy.java b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/SharedContextAwareEntityManagerProxy.java
similarity index 99%
rename from rapidoid-commons/src/main/java/org/rapidoid/jpa/SharedContextAwareEntityManagerProxy.java
rename to rapidoid-jpa/src/main/java/org/rapidoid/jpa/SharedContextAwareEntityManagerProxy.java
index 2918ed7ff3..199abeeff6 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/jpa/SharedContextAwareEntityManagerProxy.java
+++ b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/SharedContextAwareEntityManagerProxy.java
@@ -15,7 +15,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-jpa
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/jpa/SharedEntityManagerFactoryProxy.java b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/SharedEntityManagerFactoryProxy.java
similarity index 99%
rename from rapidoid-commons/src/main/java/org/rapidoid/jpa/SharedEntityManagerFactoryProxy.java
rename to rapidoid-jpa/src/main/java/org/rapidoid/jpa/SharedEntityManagerFactoryProxy.java
index d51a7b844a..e83ca828fd 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/jpa/SharedEntityManagerFactoryProxy.java
+++ b/rapidoid-jpa/src/main/java/org/rapidoid/jpa/SharedEntityManagerFactoryProxy.java
@@ -11,7 +11,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-jpa
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-render/pom.xml b/rapidoid-render/pom.xml
new file mode 100644
index 0000000000..b9e9f41447
--- /dev/null
+++ b/rapidoid-render/pom.xml
@@ -0,0 +1,32 @@
+
+ 4.0.0
+
+
+ org.rapidoid
+ rapidoid
+ 5.1.0-SNAPSHOT
+
+
+ rapidoid-render
+ jar
+ Rapidoid Render
+
+
+
+ org.rapidoid
+ rapidoid-commons
+ ${project.version}
+
+
+
+
+
+ org.rapidoid
+ rapidoid-test-commons
+ ${project.version}
+ test
+
+
+
+
+
\ No newline at end of file
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/render/Getter.java b/rapidoid-render/src/main/java/org/rapidoid/render/Getter.java
similarity index 97%
rename from rapidoid-commons/src/main/java/org/rapidoid/render/Getter.java
rename to rapidoid-render/src/main/java/org/rapidoid/render/Getter.java
index 64e4c28d79..47c7e36ce4 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/render/Getter.java
+++ b/rapidoid-render/src/main/java/org/rapidoid/render/Getter.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/render/RapidoidTemplate.java b/rapidoid-render/src/main/java/org/rapidoid/render/RapidoidTemplate.java
similarity index 98%
rename from rapidoid-commons/src/main/java/org/rapidoid/render/RapidoidTemplate.java
rename to rapidoid-render/src/main/java/org/rapidoid/render/RapidoidTemplate.java
index 1b2821b5b1..915b16ccec 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/render/RapidoidTemplate.java
+++ b/rapidoid-render/src/main/java/org/rapidoid/render/RapidoidTemplate.java
@@ -9,7 +9,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/render/Render.java b/rapidoid-render/src/main/java/org/rapidoid/render/Render.java
similarity index 98%
rename from rapidoid-commons/src/main/java/org/rapidoid/render/Render.java
rename to rapidoid-render/src/main/java/org/rapidoid/render/Render.java
index 4cf36036f0..e0cb1ad1df 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/render/Render.java
+++ b/rapidoid-render/src/main/java/org/rapidoid/render/Render.java
@@ -6,7 +6,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/render/RenderCtx.java b/rapidoid-render/src/main/java/org/rapidoid/render/RenderCtx.java
similarity index 98%
rename from rapidoid-commons/src/main/java/org/rapidoid/render/RenderCtx.java
rename to rapidoid-render/src/main/java/org/rapidoid/render/RenderCtx.java
index 59ddca8aec..cd7341b97e 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/render/RenderCtx.java
+++ b/rapidoid-render/src/main/java/org/rapidoid/render/RenderCtx.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/render/RenderCtxImpl.java b/rapidoid-render/src/main/java/org/rapidoid/render/RenderCtxImpl.java
similarity index 99%
rename from rapidoid-commons/src/main/java/org/rapidoid/render/RenderCtxImpl.java
rename to rapidoid-render/src/main/java/org/rapidoid/render/RenderCtxImpl.java
index 28a09b8e63..0fd45d1702 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/render/RenderCtxImpl.java
+++ b/rapidoid-render/src/main/java/org/rapidoid/render/RenderCtxImpl.java
@@ -17,7 +17,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/render/RenderDSL.java b/rapidoid-render/src/main/java/org/rapidoid/render/RenderDSL.java
similarity index 98%
rename from rapidoid-commons/src/main/java/org/rapidoid/render/RenderDSL.java
rename to rapidoid-render/src/main/java/org/rapidoid/render/RenderDSL.java
index d69359ed24..3de3b05161 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/render/RenderDSL.java
+++ b/rapidoid-render/src/main/java/org/rapidoid/render/RenderDSL.java
@@ -6,7 +6,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/render/Template.java b/rapidoid-render/src/main/java/org/rapidoid/render/Template.java
similarity index 97%
rename from rapidoid-commons/src/main/java/org/rapidoid/render/Template.java
rename to rapidoid-render/src/main/java/org/rapidoid/render/Template.java
index 9da8dc14d2..08b7a32b3c 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/render/Template.java
+++ b/rapidoid-render/src/main/java/org/rapidoid/render/Template.java
@@ -7,7 +7,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/render/TemplateCompiler.java b/rapidoid-render/src/main/java/org/rapidoid/render/TemplateCompiler.java
similarity index 99%
rename from rapidoid-commons/src/main/java/org/rapidoid/render/TemplateCompiler.java
rename to rapidoid-render/src/main/java/org/rapidoid/render/TemplateCompiler.java
index b21e12ec3e..bc7dd11ecd 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/render/TemplateCompiler.java
+++ b/rapidoid-render/src/main/java/org/rapidoid/render/TemplateCompiler.java
@@ -10,7 +10,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/render/TemplateParser.java b/rapidoid-render/src/main/java/org/rapidoid/render/TemplateParser.java
similarity index 99%
rename from rapidoid-commons/src/main/java/org/rapidoid/render/TemplateParser.java
rename to rapidoid-render/src/main/java/org/rapidoid/render/TemplateParser.java
index 459badbf0f..66d2d13e08 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/render/TemplateParser.java
+++ b/rapidoid-render/src/main/java/org/rapidoid/render/TemplateParser.java
@@ -11,7 +11,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/render/TemplateRenderer.java b/rapidoid-render/src/main/java/org/rapidoid/render/TemplateRenderer.java
similarity index 97%
rename from rapidoid-commons/src/main/java/org/rapidoid/render/TemplateRenderer.java
rename to rapidoid-render/src/main/java/org/rapidoid/render/TemplateRenderer.java
index d842026208..616c07fb9f 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/render/TemplateRenderer.java
+++ b/rapidoid-render/src/main/java/org/rapidoid/render/TemplateRenderer.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/render/TemplateToCode.java b/rapidoid-render/src/main/java/org/rapidoid/render/TemplateToCode.java
similarity index 99%
rename from rapidoid-commons/src/main/java/org/rapidoid/render/TemplateToCode.java
rename to rapidoid-render/src/main/java/org/rapidoid/render/TemplateToCode.java
index 3894b614fa..585a82f287 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/render/TemplateToCode.java
+++ b/rapidoid-render/src/main/java/org/rapidoid/render/TemplateToCode.java
@@ -11,7 +11,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/render/Templates.java b/rapidoid-render/src/main/java/org/rapidoid/render/Templates.java
similarity index 98%
rename from rapidoid-commons/src/main/java/org/rapidoid/render/Templates.java
rename to rapidoid-render/src/main/java/org/rapidoid/render/Templates.java
index f470a2ba35..054da04fe1 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/render/Templates.java
+++ b/rapidoid-render/src/main/java/org/rapidoid/render/Templates.java
@@ -11,7 +11,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/render/XNode.java b/rapidoid-render/src/main/java/org/rapidoid/render/XNode.java
similarity index 98%
rename from rapidoid-commons/src/main/java/org/rapidoid/render/XNode.java
rename to rapidoid-render/src/main/java/org/rapidoid/render/XNode.java
index f2eabf4864..69bbcdd148 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/render/XNode.java
+++ b/rapidoid-render/src/main/java/org/rapidoid/render/XNode.java
@@ -9,7 +9,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-render/src/test/java/org/rapidoid/render/AbstractRenderTest.java b/rapidoid-render/src/test/java/org/rapidoid/render/AbstractRenderTest.java
new file mode 100644
index 0000000000..9b6483c37f
--- /dev/null
+++ b/rapidoid-render/src/test/java/org/rapidoid/render/AbstractRenderTest.java
@@ -0,0 +1,47 @@
+package org.rapidoid.render;
+/*
+ * #%L
+ * rapidoid-render
+ * %%
+ * Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
+ * %%
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * #L%
+ */
+
+import org.junit.Before;
+import org.rapidoid.commons.Env;
+import org.rapidoid.config.Conf;
+import org.rapidoid.data.JSON;
+import org.rapidoid.io.Res;
+import org.rapidoid.log.Log;
+import org.rapidoid.log.LogLevel;
+import org.rapidoid.test.TestCommons;
+
+public abstract class AbstractRenderTest extends TestCommons {
+
+ @Before
+ public void openContext() {
+ Res.reset();
+ Conf.reset();
+ Conf.setPath(getTestName());
+ Log.setLogLevel(LogLevel.INFO);
+ Env.profiles().clear();
+ Env.profiles().add("default");
+ }
+
+ protected void verify(String name, Object actual) {
+ super.verifyCase(name, JSON.prettify(actual), name);
+ }
+
+}
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/render/MultiTemplateRenderTest.java b/rapidoid-render/src/test/java/org/rapidoid/render/MultiTemplateRenderTest.java
similarity index 98%
rename from rapidoid-commons/src/test/java/org/rapidoid/render/MultiTemplateRenderTest.java
rename to rapidoid-render/src/test/java/org/rapidoid/render/MultiTemplateRenderTest.java
index 99bb84f5ac..618e345be5 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/render/MultiTemplateRenderTest.java
+++ b/rapidoid-render/src/test/java/org/rapidoid/render/MultiTemplateRenderTest.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/render/RenderTest.java b/rapidoid-render/src/test/java/org/rapidoid/render/RenderTest.java
similarity index 96%
rename from rapidoid-commons/src/test/java/org/rapidoid/render/RenderTest.java
rename to rapidoid-render/src/test/java/org/rapidoid/render/RenderTest.java
index d97fa525e4..cb68c8cc47 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/render/RenderTest.java
+++ b/rapidoid-render/src/test/java/org/rapidoid/render/RenderTest.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
@@ -23,12 +23,11 @@
import org.junit.Test;
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
-import org.rapidoid.test.AbstractCommonsTest;
import org.rapidoid.u.U;
@Authors("Nikolche Mihajlovski")
@Since("5.1.0")
-public class RenderTest extends AbstractCommonsTest {
+public class RenderTest extends AbstractRenderTest {
private final static Object[] VALUES = {"abc", 123, 3.14, true, false, U.list(), U.set(1, 2), U.map(1, "one", "two", 2)};
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/render/TemplateFormattingTest.java b/rapidoid-render/src/test/java/org/rapidoid/render/TemplateFormattingTest.java
similarity index 91%
rename from rapidoid-commons/src/test/java/org/rapidoid/render/TemplateFormattingTest.java
rename to rapidoid-render/src/test/java/org/rapidoid/render/TemplateFormattingTest.java
index 188b0e354f..d5161d6333 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/render/TemplateFormattingTest.java
+++ b/rapidoid-render/src/test/java/org/rapidoid/render/TemplateFormattingTest.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
@@ -23,7 +23,6 @@
import org.junit.Test;
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
-import org.rapidoid.test.AbstractCommonsTest;
import org.rapidoid.u.U;
import java.util.List;
@@ -31,7 +30,7 @@
@Authors("Nikolche Mihajlovski")
@Since("5.1.0")
-public class TemplateFormattingTest extends AbstractCommonsTest {
+public class TemplateFormattingTest extends AbstractRenderTest {
@Test
public void testLinesRendering() {
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/render/TemplatesTest.java b/rapidoid-render/src/test/java/org/rapidoid/render/TemplatesTest.java
similarity index 93%
rename from rapidoid-commons/src/test/java/org/rapidoid/render/TemplatesTest.java
rename to rapidoid-render/src/test/java/org/rapidoid/render/TemplatesTest.java
index f24b123449..1a20582d13 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/render/TemplatesTest.java
+++ b/rapidoid-render/src/test/java/org/rapidoid/render/TemplatesTest.java
@@ -2,7 +2,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-render
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
@@ -23,7 +23,6 @@
import org.junit.Test;
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
-import org.rapidoid.test.AbstractCommonsTest;
import org.rapidoid.u.U;
import java.util.List;
@@ -32,7 +31,7 @@
@Authors("Nikolche Mihajlovski")
@Since("5.1.0")
-public class TemplatesTest extends AbstractCommonsTest {
+public class TemplatesTest extends AbstractRenderTest {
@Test
public void testPatterns() {
diff --git a/rapidoid-commons/src/test/resources/extra-lines.txt b/rapidoid-render/src/test/resources/extra-lines.txt
similarity index 100%
rename from rapidoid-commons/src/test/resources/extra-lines.txt
rename to rapidoid-render/src/test/resources/extra-lines.txt
diff --git a/rapidoid-commons/src/test/resources/lines.txt b/rapidoid-render/src/test/resources/lines.txt
similarity index 100%
rename from rapidoid-commons/src/test/resources/lines.txt
rename to rapidoid-render/src/test/resources/lines.txt
diff --git a/rapidoid-commons/src/test/resources/p1.txt b/rapidoid-render/src/test/resources/p1.txt
similarity index 100%
rename from rapidoid-commons/src/test/resources/p1.txt
rename to rapidoid-render/src/test/resources/p1.txt
diff --git a/rapidoid-commons/src/test/resources/p2.txt b/rapidoid-render/src/test/resources/p2.txt
similarity index 100%
rename from rapidoid-commons/src/test/resources/p2.txt
rename to rapidoid-render/src/test/resources/p2.txt
diff --git a/rapidoid-commons/src/test/resources/partials.txt b/rapidoid-render/src/test/resources/partials.txt
similarity index 100%
rename from rapidoid-commons/src/test/resources/partials.txt
rename to rapidoid-render/src/test/resources/partials.txt
diff --git a/rapidoid-commons/src/test/resources/sub.html b/rapidoid-render/src/test/resources/sub.html
similarity index 100%
rename from rapidoid-commons/src/test/resources/sub.html
rename to rapidoid-render/src/test/resources/sub.html
diff --git a/rapidoid-commons/src/test/resources/templates/templ1.html b/rapidoid-render/src/test/resources/templates/templ1.html
similarity index 100%
rename from rapidoid-commons/src/test/resources/templates/templ1.html
rename to rapidoid-render/src/test/resources/templates/templ1.html
diff --git a/rapidoid-commons/src/test/resources/templates/templ2.html b/rapidoid-render/src/test/resources/templates/templ2.html
similarity index 100%
rename from rapidoid-commons/src/test/resources/templates/templ2.html
rename to rapidoid-render/src/test/resources/templates/templ2.html
diff --git a/rapidoid-commons/src/test/resources/templates/templ3.html b/rapidoid-render/src/test/resources/templates/templ3.html
similarity index 100%
rename from rapidoid-commons/src/test/resources/templates/templ3.html
rename to rapidoid-render/src/test/resources/templates/templ3.html
diff --git a/rapidoid-commons/src/test/resources/test-results/TemplateFormattingTest/partialsShouldntAffectLines/partials b/rapidoid-render/src/test/resources/test-results/TemplateFormattingTest/partialsShouldntAffectLines/partials
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/TemplateFormattingTest/partialsShouldntAffectLines/partials
rename to rapidoid-render/src/test/resources/test-results/TemplateFormattingTest/partialsShouldntAffectLines/partials
diff --git a/rapidoid-commons/src/test/resources/test-results/TemplateFormattingTest/testLinesRendering/lines b/rapidoid-render/src/test/resources/test-results/TemplateFormattingTest/testLinesRendering/lines
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/TemplateFormattingTest/testLinesRendering/lines
rename to rapidoid-render/src/test/resources/test-results/TemplateFormattingTest/testLinesRendering/lines
diff --git a/rapidoid-commons/src/test/resources/test-results/TemplateFormattingTest/testLinesRendering2/extra-lines b/rapidoid-render/src/test/resources/test-results/TemplateFormattingTest/testLinesRendering2/extra-lines
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/TemplateFormattingTest/testLinesRendering2/extra-lines
rename to rapidoid-render/src/test/resources/test-results/TemplateFormattingTest/testLinesRendering2/extra-lines
diff --git a/rapidoid-commons/src/test/resources/test-results/TemplateFormattingTest/testWordsRendering/words b/rapidoid-render/src/test/resources/test-results/TemplateFormattingTest/testWordsRendering/words
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/TemplateFormattingTest/testWordsRendering/words
rename to rapidoid-render/src/test/resources/test-results/TemplateFormattingTest/testWordsRendering/words
diff --git a/rapidoid-commons/src/test/resources/test-results/TemplatesTest/testFileTemplatesAPI/tmpl b/rapidoid-render/src/test/resources/test-results/TemplatesTest/testFileTemplatesAPI/tmpl
similarity index 100%
rename from rapidoid-commons/src/test/resources/test-results/TemplatesTest/testFileTemplatesAPI/tmpl
rename to rapidoid-render/src/test/resources/test-results/TemplatesTest/testFileTemplatesAPI/tmpl
diff --git a/rapidoid-commons/src/test/resources/tmpl.html b/rapidoid-render/src/test/resources/tmpl.html
similarity index 100%
rename from rapidoid-commons/src/test/resources/tmpl.html
rename to rapidoid-render/src/test/resources/tmpl.html
diff --git a/rapidoid-commons/src/test/resources/words.txt b/rapidoid-render/src/test/resources/words.txt
similarity index 100%
rename from rapidoid-commons/src/test/resources/words.txt
rename to rapidoid-render/src/test/resources/words.txt
diff --git a/rapidoid-watch/pom.xml b/rapidoid-watch/pom.xml
index ad4b6ed01f..030eb78326 100644
--- a/rapidoid-watch/pom.xml
+++ b/rapidoid-watch/pom.xml
@@ -16,11 +16,24 @@
+
org.rapidoid
rapidoid-commons
${project.version}
+
+
+
+
+ org.rapidoid
+ rapidoid-jpa
+ ${project.version}
+ true
+
+
+
+
org.rapidoid
rapidoid-test-commons
diff --git a/rapidoid-watch/src/main/java/org/rapidoid/io/watch/WatchingRefresherThread.java b/rapidoid-watch/src/main/java/org/rapidoid/io/watch/WatchingRefresherThread.java
index b5df7c9a07..c4c5700310 100644
--- a/rapidoid-watch/src/main/java/org/rapidoid/io/watch/WatchingRefresherThread.java
+++ b/rapidoid-watch/src/main/java/org/rapidoid/io/watch/WatchingRefresherThread.java
@@ -4,8 +4,8 @@
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.log.Log;
+import org.rapidoid.reload.Reload;
import org.rapidoid.u.U;
-import org.rapidoid.util.Reload;
import java.io.File;
import java.util.Collection;
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/util/ClassReloader.java b/rapidoid-watch/src/main/java/org/rapidoid/reload/ClassReloader.java
similarity index 93%
rename from rapidoid-commons/src/main/java/org/rapidoid/util/ClassReloader.java
rename to rapidoid-watch/src/main/java/org/rapidoid/reload/ClassReloader.java
index b15b860457..e6df894755 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/util/ClassReloader.java
+++ b/rapidoid-watch/src/main/java/org/rapidoid/reload/ClassReloader.java
@@ -1,12 +1,12 @@
-package org.rapidoid.util;
+package org.rapidoid.reload;
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.cls.Cls;
import org.rapidoid.io.IO;
-import org.rapidoid.jpa.JPA;
import org.rapidoid.log.Log;
import org.rapidoid.u.U;
+import org.rapidoid.util.Msc;
import java.io.File;
import java.net.URISyntaxException;
@@ -16,7 +16,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-watch
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
@@ -121,7 +121,7 @@ public Class> loadClass(String classname) throws ClassNotFoundException {
}
if (names.contains(classname) || (!Cls.isRapidoidClass(classname) && !Cls.isJREClass(classname)
- && !JPA.entities().contains(classname) && findOnClasspath(classname) != null)) {
+ && !isEntity(classname) && findOnClasspath(classname) != null)) {
try {
return findClass(classname);
@@ -137,6 +137,10 @@ public Class> loadClass(String classname) throws ClassNotFoundException {
}
}
+ private boolean isEntity(String classname) {
+ return Msc.hasRapidoidJPA() && OptionalJPAUtil.isEntity(classname);
+ }
+
private static String getClassRelativePath(String classname) {
return classname.replace('.', File.separatorChar) + ".class";
}
diff --git a/rapidoid-watch/src/main/java/org/rapidoid/reload/OptionalJPAUtil.java b/rapidoid-watch/src/main/java/org/rapidoid/reload/OptionalJPAUtil.java
new file mode 100644
index 0000000000..bb686dd2c9
--- /dev/null
+++ b/rapidoid-watch/src/main/java/org/rapidoid/reload/OptionalJPAUtil.java
@@ -0,0 +1,36 @@
+package org.rapidoid.reload;
+
+/*
+ * #%L
+ * rapidoid-watch
+ * %%
+ * Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
+ * %%
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * #L%
+ */
+
+import org.rapidoid.RapidoidThing;
+import org.rapidoid.annotation.Authors;
+import org.rapidoid.annotation.Since;
+import org.rapidoid.jpa.JPA;
+
+@Authors("Nikolche Mihajlovski")
+@Since("5.1.0")
+public class OptionalJPAUtil extends RapidoidThing {
+
+ public static boolean isEntity(String classname) {
+ return JPA.entities().contains(classname);
+ }
+
+}
diff --git a/rapidoid-commons/src/main/java/org/rapidoid/util/Reload.java b/rapidoid-watch/src/main/java/org/rapidoid/reload/Reload.java
similarity index 97%
rename from rapidoid-commons/src/main/java/org/rapidoid/util/Reload.java
rename to rapidoid-watch/src/main/java/org/rapidoid/reload/Reload.java
index f6bf2bc6cb..7e8517a370 100644
--- a/rapidoid-commons/src/main/java/org/rapidoid/util/Reload.java
+++ b/rapidoid-watch/src/main/java/org/rapidoid/reload/Reload.java
@@ -1,4 +1,4 @@
-package org.rapidoid.util;
+package org.rapidoid.reload;
import org.rapidoid.RapidoidThing;
import org.rapidoid.annotation.Authors;
@@ -12,7 +12,7 @@
/*
* #%L
- * rapidoid-commons
+ * rapidoid-watch
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/util/ClassReloaderTest.java b/rapidoid-watch/src/test/java/org/rapidoid/reload/ClassReloaderTest.java
similarity index 96%
rename from rapidoid-commons/src/test/java/org/rapidoid/util/ClassReloaderTest.java
rename to rapidoid-watch/src/test/java/org/rapidoid/reload/ClassReloaderTest.java
index a2ed4612c8..5ba7337058 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/util/ClassReloaderTest.java
+++ b/rapidoid-watch/src/test/java/org/rapidoid/reload/ClassReloaderTest.java
@@ -1,8 +1,8 @@
-package org.rapidoid.util;
+package org.rapidoid.reload;
/*
* #%L
- * rapidoid-commons
+ * rapidoid-watch
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-commons/src/test/java/org/rapidoid/util/FooClass.java b/rapidoid-watch/src/test/java/org/rapidoid/reload/FooClass.java
similarity index 93%
rename from rapidoid-commons/src/test/java/org/rapidoid/util/FooClass.java
rename to rapidoid-watch/src/test/java/org/rapidoid/reload/FooClass.java
index 4887c448c6..b59f18fad3 100644
--- a/rapidoid-commons/src/test/java/org/rapidoid/util/FooClass.java
+++ b/rapidoid-watch/src/test/java/org/rapidoid/reload/FooClass.java
@@ -1,8 +1,8 @@
-package org.rapidoid.util;
+package org.rapidoid.reload;
/*
* #%L
- * rapidoid-commons
+ * rapidoid-watch
* %%
* Copyright (C) 2014 - 2016 Nikolche Mihajlovski and contributors
* %%
diff --git a/rapidoid-web/src/main/java/org/rapidoid/goodies/Goodies.java b/rapidoid-web/src/main/java/org/rapidoid/goodies/Goodies.java
index 481d6712aa..0a13f3bea2 100644
--- a/rapidoid-web/src/main/java/org/rapidoid/goodies/Goodies.java
+++ b/rapidoid-web/src/main/java/org/rapidoid/goodies/Goodies.java
@@ -120,12 +120,8 @@ public static void bootstrap(Setup setup) {
setup.page("/_/").mvc(Goodies.overview());
- setup.page("/_/data").mvc(Goodies.data());
-
- for (Class> type : JPA.getEntityJavaTypes()) {
- String uri = GUI.typeUri(type);
- String contextPath = HttpUtils.getContextPath(setup.custom(), setup.segment());
- X.scaffold(setup, Msc.uri(contextPath, uri), type);
+ if (Msc.hasJPA()) {
+ jpaGoodies(setup);
}
setup.page("/_/routes").mvc(Goodies.routes());
@@ -148,4 +144,14 @@ public static void bootstrap(Setup setup) {
setup.get("/_logout").roles(Roles.LOGGED_IN).json(Goodies.logout());
}
+ private static void jpaGoodies(Setup setup) {
+ setup.page("/_/data").mvc(Goodies.data());
+
+ for (Class> type : JPA.getEntityJavaTypes()) {
+ String uri = GUI.typeUri(type);
+ String contextPath = HttpUtils.getContextPath(setup.custom(), setup.segment());
+ X.scaffold(setup, Msc.uri(contextPath, uri), type);
+ }
+ }
+
}