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