You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jl...@apache.org on 2008/11/04 23:30:29 UTC
svn commit: r711452 - in /openejb/trunk/openejb3/container/openejb-core/src:
main/java/org/apache/openejb/config/rules/
test/java/org/apache/openejb/config/rules/
Author: jlaskowski
Date: Tue Nov 4 14:30:28 2008
New Revision: 711452
URL: http://svn.apache.org/viewvc?rev=711452&view=rev
Log:
Fixed some mistakes I made earlier. Hopefully build works fine now (for everybody)
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckUserTransactionRefs.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckInjectionTargetsTest.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckUserTransactionRefsTest.java
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckUserTransactionRefs.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckUserTransactionRefs.java?rev=711452&r1=711451&r2=711452&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckUserTransactionRefs.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckUserTransactionRefs.java Tue Nov 4 14:30:28 2008
@@ -19,6 +19,7 @@
import org.apache.openejb.config.EjbModule;
import org.apache.openejb.jee.EnterpriseBean;
import org.apache.openejb.jee.ResourceEnvRef;
+import org.apache.openejb.jee.ResourceRef;
import static org.apache.openejb.jee.TransactionType.CONTAINER;
import java.util.Collection;
@@ -34,15 +35,14 @@
* @version $Rev$ $Date$
*/
public class CheckUserTransactionRefs extends ValidationBase {
- // FIXME: Shouldn't the parent method be protected?
+
public void validate(EjbModule ejbModule) {
for (EnterpriseBean bean : ejbModule.getEjbJar().getEnterpriseBeans()) {
if (bean.getTransactionType() == CONTAINER) {
- // FIXME: I think bean.getRes should be used instead, but OpenEJB doesn't allow it atm
- Collection<ResourceEnvRef> resRefs = bean.getResourceEnvRef();
- for (ResourceEnvRef resRef : resRefs) {
- if ("javax.transaction.UserTransaction".equals(resRef.getResourceEnvRefType())) {
- warn(bean, "userResourceRef.forbiddenForCmtdBeans", resRef.getResourceEnvRefName());
+ Collection<ResourceRef> resRefs = bean.getResourceRef();
+ for (ResourceRef resRef : resRefs) {
+ if ("javax.transaction.UserTransaction".equals(resRef.getResType())) {
+ error(bean, "userResourceRef.forbiddenForCmtdBeans", resRef.getName());
}
}
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckInjectionTargetsTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckInjectionTargetsTest.java?rev=711452&r1=711451&r2=711452&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckInjectionTargetsTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckInjectionTargetsTest.java Tue Nov 4 14:30:28 2008
@@ -27,11 +27,12 @@
import org.apache.openejb.jee.StatelessBean;
import org.junit.Before;
import org.junit.Test;
+import org.junit.Assert;
/**
* @version $Rev$ $Date$
*/
-public class CheckInjectionTargetsTest extends TestCase {
+public class CheckInjectionTargetsTest {
private EjbModule module;
private StatelessBean bean;
@@ -46,9 +47,10 @@
rule = new CheckInjectionTargets();
rule.module = module;
}
-
- public void test() {
+ @Test
+ public void test() {
+
// Valid
EnvEntry envEntry = new EnvEntry("count", Integer.class.getName(), "10");
envEntry.getInjectionTarget().add(new InjectionTarget("org.acme.CheeseEjb", "org.acme.CheeseEjb/count"));
@@ -67,23 +69,7 @@
rule.validate(module);
ValidationWarning[] warnings = module.getValidation().getWarnings();
- assertEquals(warnings.length, 2);
+ Assert.assertEquals(warnings.length, 2);
}
-
- @Test
- public void testUserTransaction() {
- // 16.12 UserTransaction Interface
- // only session and message-driven beans with bean-managed transaction demarcation are allowed to use this interface
- ResourceEnvRef resEnvEntry = new ResourceEnvRef("jta/UserTransaction", "javax.transaction.UserTransaction");
- bean.getResourceEnvRef().add(resEnvEntry);
-
- rule.validate(module);
-
- ValidationError[] errors = module.getValidation().getErrors();
- assertEquals(errors.length, 1);
-
- // The authenticationType and shareable elements of the Resource annotation must not be specified
- }
-
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckUserTransactionRefsTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckUserTransactionRefsTest.java?rev=711452&r1=711451&r2=711452&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckUserTransactionRefsTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckUserTransactionRefsTest.java Tue Nov 4 14:30:28 2008
@@ -16,13 +16,15 @@
*/
package org.apache.openejb.config.rules;
-import org.apache.openejb.config.AppModule;
import org.apache.openejb.config.EjbModule;
import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.jee.InjectionTarget;
import org.apache.openejb.jee.ResourceRef;
import org.apache.openejb.jee.StatelessBean;
import static org.apache.openejb.jee.TransactionType.CONTAINER;
+import static org.hamcrest.CoreMatchers.is;
import org.junit.After;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -31,44 +33,42 @@
*/
public class CheckUserTransactionRefsTest {
- AppModule appModule;
+ private EjbModule module;
+ private StatelessBean bean;
- @Before
- public void setUp() {
- // Stateless session bean with container-managed transaction demarcation
- StatelessBean cmtdSlsb = new StatelessBean("CheckUserTransactionRefsTest", "nopackage.CheckUserTransactionRefsTestBean");
- cmtdSlsb.setTransactionType(CONTAINER);
-
- // "@Resource UserTransaction tx" declaration
- ResourceRef resourceRef = new ResourceRef();
- resourceRef.setName("nopackage.CheckUserTransactionRefsTestBean/tx");
- resourceRef.setResType("javax.transaction.UserTransaction");
-
- cmtdSlsb.getResourceRef().add(resourceRef);
+ private CheckUserTransactionRefs rule;
- EjbJar ejbJar = new EjbJar();
- ejbJar.addEnterpriseBean(cmtdSlsb);
- EjbModule ejbModule = new EjbModule(ejbJar);
+ @Before
+ public void initialize() {
+ bean = new StatelessBean("CheeseEjb", "org.acme.CheeseEjb");
+ bean.setTransactionType(CONTAINER);
- appModule = new AppModule(getClass().getClassLoader(), "some/path");
- appModule.getEjbModules().add(ejbModule);
+ module = new EjbModule(new EjbJar());
+ module.getEjbJar().addEnterpriseBean(bean);
+ rule = new CheckUserTransactionRefs();
+ rule.module = module;
}
@Test
public void testSLSBwithUserTransaction() {
- CheckUserTransactionRefs checkUserTransactionRefs = new CheckUserTransactionRefs();
- // FIXME: It's not possible to run validate(ejbModule) with warn without setting up module in the validate first
- checkUserTransactionRefs.validate(appModule);
-
- assert appModule.getValidation().getErrors().length == 0;
- assert appModule.getValidation().getWarnings().length == 1;
- assert appModule.getValidation().getFailures().length == 0;
+ // "@Resource UserTransaction tx" declaration
+ ResourceRef resourceRef = new ResourceRef();
+ resourceRef.setResRefName("org.acme.CheeseEjb/tx");
+ resourceRef.setResType("javax.transaction.UserTransaction");
+ resourceRef.getInjectionTarget().add(new InjectionTarget("org.acme.CheeseEjb", "org.acme.CheeseEjb/tx"));
+ bean.getResourceRef().add(resourceRef);
+
+ rule.validate(module);
+
+ Assert.assertThat(module.getValidation().getErrors().length, is(1));
+ Assert.assertThat(module.getValidation().getWarnings().length, is(0));
+ Assert.assertThat(module.getValidation().getFailures().length, is(0));
}
@After
public void cleanUp() {
- appModule = null;
+ module = null;
}
}