You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/04/20 18:56:59 UTC
svn commit: r1588793 - in /tomee/tomee/trunk/container/openejb-junit/src:
main/java/org/apache/openejb/junit/jee/
main/java/org/apache/openejb/junit/jee/rule/
test/java/org/apache/openejb/junit/
Author: rmannibucau
Date: Sun Apr 20 16:56:58 2014
New Revision: 1588793
URL: http://svn.apache.org/r1588793
Log:
OPENEJB-2090 EJBContainer junit rules - some helper methods
Added:
tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/InjectRule.java
- copied, changed from r1588792, tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/rule/InjectRule.java
tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestResourceEJBContainerRule.java
- copied, changed from r1588792, tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestEJBContainerRule.java
Removed:
tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/rule/
Modified:
tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/EJBContainerRule.java
tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/EJBContainerRunner.java
tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestEJBContainerRule.java
tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestEJBContainerRuleSimpleRule.java
Modified: tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/EJBContainerRule.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/EJBContainerRule.java?rev=1588793&r1=1588792&r2=1588793&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/EJBContainerRule.java (original)
+++ tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/EJBContainerRule.java Sun Apr 20 16:56:58 2014
@@ -17,13 +17,18 @@
package org.apache.openejb.junit.jee;
import org.apache.openejb.OpenEJBRuntimeException;
+import org.apache.openejb.assembler.classic.Assembler;
import org.apache.openejb.junit.jee.statement.InjectStatement;
import org.apache.openejb.junit.jee.statement.ShutingDownStatement;
import org.apache.openejb.junit.jee.statement.StartingStatement;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.spi.ContainerSystem;
import org.junit.rules.TestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
+import javax.naming.NamingException;
+
// @Rule works but mainly designed for @ClassRule for perf reasons
public class EJBContainerRule implements TestRule {
private final Object test;
@@ -56,6 +61,7 @@ public class EJBContainerRule implements
return new ShutingDownStatement(startingStatement, startingStatement);
}
+ // inject in test class or a class of org.apache.openejb.OpenEjbContainer.Provider.OPENEJB_ADDITIONNAL_CALLERS_KEY list
public void inject(final Object target) {
try { // reuse this logic to get @TestResource for free
new InjectStatement(null, target.getClass(), target, startingStatement).evaluate();
@@ -64,7 +70,19 @@ public class EJBContainerRule implements
}
}
- public StartingStatement getStartingStatement() {
+ // helper method to get a resource
+ public <T> T resource(final Class<T> type, final String name) {
+ try {
+ return type.cast(
+ SystemInstance.get().getComponent(ContainerSystem.class)
+ .getJNDIContext().lookup("java:" + Assembler.OPENEJB_RESOURCE_JNDI_PREFIX + name));
+ } catch (final NamingException e) {
+ throw new OpenEJBRuntimeException(e);
+ }
+ }
+
+ // internal API to make it easily integrated
+ StartingStatement getStartingStatement() {
return startingStatement;
}
}
Modified: tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/EJBContainerRunner.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/EJBContainerRunner.java?rev=1588793&r1=1588792&r2=1588793&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/EJBContainerRunner.java (original)
+++ tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/EJBContainerRunner.java Sun Apr 20 16:56:58 2014
@@ -16,7 +16,6 @@
*/
package org.apache.openejb.junit.jee;
-import org.apache.openejb.junit.jee.rule.InjectRule;
import org.apache.openejb.junit.jee.statement.ShutingDownStatement;
import org.apache.openejb.junit.jee.statement.StartingStatement;
import org.apache.openejb.junit.jee.transaction.TransactionRule;
Copied: tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/InjectRule.java (from r1588792, tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/rule/InjectRule.java)
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/InjectRule.java?p2=tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/InjectRule.java&p1=tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/rule/InjectRule.java&r1=1588792&r2=1588793&rev=1588793&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/rule/InjectRule.java (original)
+++ tomee/tomee/trunk/container/openejb-junit/src/main/java/org/apache/openejb/junit/jee/InjectRule.java Sun Apr 20 16:56:58 2014
@@ -1,6 +1,5 @@
-package org.apache.openejb.junit.jee.rule;
+package org.apache.openejb.junit.jee;
-import org.apache.openejb.junit.jee.EJBContainerRule;
import org.apache.openejb.junit.jee.statement.InjectStatement;
import org.apache.openejb.junit.jee.statement.StartingStatement;
import org.junit.rules.TestRule;
Modified: tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestEJBContainerRule.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestEJBContainerRule.java?rev=1588793&r1=1588792&r2=1588793&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestEJBContainerRule.java (original)
+++ tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestEJBContainerRule.java Sun Apr 20 16:56:58 2014
@@ -19,8 +19,7 @@ package org.apache.openejb.junit;
import org.apache.openejb.junit.ejbs.BasicEjbLocal;
import org.apache.openejb.junit.jee.EJBContainerRule;
import org.apache.openejb.junit.jee.config.Properties;
-import org.apache.openejb.junit.jee.config.Property;
-import org.apache.openejb.junit.jee.rule.InjectRule;
+import org.apache.openejb.junit.jee.InjectRule;
import org.apache.openejb.config.DeploymentFilterable;
import org.junit.ClassRule;
import org.junit.Rule;
Modified: tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestEJBContainerRuleSimpleRule.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestEJBContainerRuleSimpleRule.java?rev=1588793&r1=1588792&r2=1588793&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestEJBContainerRuleSimpleRule.java (original)
+++ tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestEJBContainerRuleSimpleRule.java Sun Apr 20 16:56:58 2014
@@ -32,7 +32,6 @@ import static org.junit.Assert.assertEqu
import static org.junit.Assert.assertNotNull;
@Properties({
- // FallbackPropertyInjector for ejb to test config
@Property(key = DeploymentFilterable.CLASSPATH_EXCLUDE, value = "jar:.*"),
@Property(key = DeploymentFilterable.CLASSPATH_INCLUDE, value = ".*openejb-junit.*")
})
Copied: tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestResourceEJBContainerRule.java (from r1588792, tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestEJBContainerRule.java)
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestResourceEJBContainerRule.java?p2=tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestResourceEJBContainerRule.java&p1=tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestEJBContainerRule.java&r1=1588792&r2=1588793&rev=1588793&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestEJBContainerRule.java (original)
+++ tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestResourceEJBContainerRule.java Sun Apr 20 16:56:58 2014
@@ -16,61 +16,32 @@
*/
package org.apache.openejb.junit;
-import org.apache.openejb.junit.ejbs.BasicEjbLocal;
+import org.apache.openejb.config.DeploymentFilterable;
import org.apache.openejb.junit.jee.EJBContainerRule;
import org.apache.openejb.junit.jee.config.Properties;
-import org.apache.openejb.junit.jee.config.Property;
-import org.apache.openejb.junit.jee.rule.InjectRule;
-import org.apache.openejb.config.DeploymentFilterable;
import org.junit.ClassRule;
-import org.junit.Rule;
import org.junit.Test;
-import javax.ejb.EJB;
-import javax.ejb.embeddable.EJBContainer;
-import javax.naming.Context;
+import javax.annotation.Resource;
+import javax.sql.DataSource;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
@Properties({
- // FallbackPropertyInjector for ejb to test config
- @org.apache.openejb.junit.jee.config.Property(key = DeploymentFilterable.CLASSPATH_EXCLUDE, value = "jar:.*")
+ @org.apache.openejb.junit.jee.config.Property(key = DeploymentFilterable.CLASSPATH_EXCLUDE, value = "jar:.*"),
+ @org.apache.openejb.junit.jee.config.Property(key = DeploymentFilterable.CLASSPATH_INCLUDE, value = ".*openejb-junit.*"),
+ @org.apache.openejb.junit.jee.config.Property(key = "r", value = "new://Resource?type=DataSource")
})
-public class TestEJBContainerRule {
+public class TestResourceEJBContainerRule {
@ClassRule
public static final EJBContainerRule CONTAINER_RULE = new EJBContainerRule();
- @Rule
- public final InjectRule injectRule = new InjectRule(this, CONTAINER_RULE);
-
- @org.apache.openejb.junit.jee.resources.TestResource
- private Context ctx;
-
- @org.apache.openejb.junit.jee.resources.TestResource
- private java.util.Properties props;
-
- @org.apache.openejb.junit.jee.resources.TestResource
- private EJBContainer container;
-
- @EJB
- private BasicEjbLocal ejb;
-
- private void doChecks() {
- assertNotNull(ctx);
- assertNotNull(props);
- assertNotNull(container);
- assertNotNull(ejb);
- assertEquals("a b", ejb.concat("a", "b"));
- }
-
- @Test
- public void checkAllIsFine() {
- doChecks();
- }
+ @Resource(name = "r")
+ private DataSource ds;
@Test
- public void checkAllIsStillFine() {
- doChecks();
+ public void checkResource() {
+ CONTAINER_RULE.inject(this);
+ assertEquals(ds, CONTAINER_RULE.resource(DataSource.class, "r"));
}
}