You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2010/10/16 02:26:24 UTC
svn commit: r1023159 - in /openejb/trunk/openejb3: ./
container/openejb-core/src/main/java/org/apache/openejb/config/
container/openejb-core/src/main/java/org/apache/openejb/core/
container/openejb-core/src/main/resources/org/apache/openejb/config/rule...
Author: dblevins
Date: Sat Oct 16 00:26:23 2010
New Revision: 1023159
URL: http://svn.apache.org/viewvc?rev=1023159&view=rev
Log:
svn merge -r 1022374:1022375 https://svn.apache.org/repos/asf/openejb/branches/openejb-3.1.x
http://svn.apache.org/viewvc?view=revision&revision=1022375
------------------------------------------------------------------------
r1022375 | dblevins | 2010-10-13 21:32:52 -0700 (Wed, 13 Oct 2010) | 3 lines
OPENEJB-1373: Validation: <ejb-class> omitted with no corresponding annotated bean
OPENEJB-1372: Default openejb.descriptors.output to true when there are validation failures
------------------------------------------------------------------------
Modified:
openejb/trunk/openejb3/ (props changed)
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OutputGeneratedDescriptors.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/rules/Messages.properties
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java (props changed)
openejb/trunk/openejb3/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml (props changed)
Propchange: openejb/trunk/openejb3/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Oct 16 00:26:23 2010
@@ -1,3 +1,3 @@
/openejb/branches/openejb-3.1.1:779593
-/openejb/branches/openejb-3.1.x:945409,945448,1004381,1005322,1021880,1021903,1021955,1021961,1021965,1021975,1021979,1021990
+/openejb/branches/openejb-3.1.x:945409,945448,1004381,1005322,1021880,1021903,1021955,1021961,1021965,1021975,1021979,1021990,1022375
/openejb/branches/openejb-jcdi:984659-985270
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1023159&r1=1023158&r2=1023159&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Sat Oct 16 00:26:23 2010
@@ -1053,12 +1053,21 @@ public class AnnotationDeployer implemen
EnterpriseBean[] enterpriseBeans = ejbModule.getEjbJar().getEnterpriseBeans();
for (EnterpriseBean bean : enterpriseBeans) {
final String ejbName = bean.getEjbName();
+ final String ejbClassName = bean.getEjbClass();
+ if (ejbClassName == null) {
+ List<String> others = new ArrayList<String>();
+ for (EnterpriseBean otherBean : enterpriseBeans) {
+ others.add(otherBean.getEjbName());
+ }
+ fail(ejbName, "xml.noEjbClass", ejbName, join(", ", others));
+ }
+
Class<?> clazz;
try {
- clazz = classLoader.loadClass(bean.getEjbClass());
+ clazz = classLoader.loadClass(ejbClassName);
} catch (ClassNotFoundException e) {
- throw new OpenEJBException("Unable to load bean class: " + bean.getEjbClass(), e);
+ throw new OpenEJBException("Unable to load bean class: " + ejbClassName, e);
}
ClassFinder classFinder = new ClassFinder(clazz);
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OutputGeneratedDescriptors.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OutputGeneratedDescriptors.java?rev=1023159&r1=1023158&r2=1023159&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OutputGeneratedDescriptors.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OutputGeneratedDescriptors.java Sat Oct 16 00:26:23 2010
@@ -38,7 +38,7 @@ import java.io.IOException;
public class OutputGeneratedDescriptors implements DynamicDeployer {
private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP_CONFIG, "org.apache.openejb.util.resources");
- private static final String OUTPUT_DESCRIPTORS = "openejb.descriptors.output";
+ public static final String OUTPUT_DESCRIPTORS = "openejb.descriptors.output";
public AppModule deploy(AppModule appModule) throws OpenEJBException {
boolean output = SystemInstance.get().getOptions().get(OUTPUT_DESCRIPTORS, false);
@@ -51,7 +51,12 @@ public class OutputGeneratedDescriptors
for (EjbModule ejbModule : appModule.getEjbModules()) {
Options options = new Options(ejbModule.getOpenejbJar().getProperties(), SystemInstance.get().getOptions());
- output = options.get(OUTPUT_DESCRIPTORS, false);
+ final ValidationContext context = ejbModule.getValidation();
+
+ // output descriptors by default if there are validation errors
+ final boolean invalid = context.hasErrors() || context.hasFailures();
+
+ output = options.get(OUTPUT_DESCRIPTORS, invalid);
if (output){
if (ejbModule.getEjbJar() != null) {
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java?rev=1023159&r1=1023158&r2=1023159&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java Sat Oct 16 00:26:23 2010
@@ -67,6 +67,8 @@ public class TempClassLoader extends URL
}
protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException {
+ if (name == null) throw new NullPointerException("name cannot be null");
+
// see if we've already loaded it
Class c = findLoadedClass(name);
if (c != null) {
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/rules/Messages.properties
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/rules/Messages.properties?rev=1023159&r1=1023158&r2=1023159&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/rules/Messages.properties (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/rules/Messages.properties Sat Oct 16 00:26:23 2010
@@ -856,3 +856,7 @@ public interface {0} extends {2}'{}'
1.userTransactionRef.forbiddenForCmtdBeans = Container-Managed Transaction beans cannot use UserTransaction
2.userTransactionRef.forbiddenForCmtdBeans = Container-Managed Transaction beans cannot use UserTransaction: fix ref {0}
3.userTransactionRef.forbiddenForCmtdBeans = Only session and message-driven beans with bean-managed transaction demarcation are allowed to use UserTransaction. Fix @Resource or resource-env-ref {0}
+
+1.xml.noEjbClass = Element <ejb-class> unspecified.
+2.xml.noEjbClass = Element <ejb-class> unspecified. No annotated bean discovered with <ejb-name>{0}</ejb-name>
+3.xml.noEjbClass = The <ejb-class> element is only optional if there is a matching annotated bean in the module with the bean name {0}. No such bean was found. Other beans in this module are: {1}
Propchange: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Oct 16 00:26:23 2010
@@ -1,3 +1,3 @@
/openejb/branches/openejb-3.1.1/container/openejb-core/src/test/java/org/apache/openejb/config/UberInterfaceTest.java:779593
-/openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:945409,945448,1005322,1021880,1021903,1021955,1021961,1021965,1021975,1021979,1021990
+/openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:945409,945448,1005322,1021880,1021903,1021955,1021961,1021965,1021975,1021979,1021990,1022375
/openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:984659-985270
Propchange: openejb/trunk/openejb3/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Oct 16 00:26:23 2010
@@ -1,3 +1,3 @@
/openejb/branches/openejb-3.1.1/examples/alternate-descriptors/src/main/resources/META-INF/ejb-jar.xml:779593
-/openejb/branches/openejb-3.1.x/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:945409,945448,1005322,1021880,1021903,1021955,1021961,1021965,1021975,1021979,1021990
+/openejb/branches/openejb-3.1.x/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:945409,945448,1005322,1021880,1021903,1021955,1021961,1021965,1021975,1021979,1021990,1022375
/openejb/branches/openejb-jcdi/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:984659-985270