[jboss-cvs] JBossAS SVN: r77708 - projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Aug 31 05:57:38 EDT 2008


Author: emuckenhuber
Date: 2008-08-31 05:57:38 -0400 (Sun, 31 Aug 2008)
New Revision: 77708

Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/JBoss50Creator.java
Log:
[JBMETA-99] cleanup

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/JBoss50Creator.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/JBoss50Creator.java	2008-08-31 05:30:46 UTC (rev 77707)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/JBoss50Creator.java	2008-08-31 09:57:38 UTC (rev 77708)
@@ -100,11 +100,11 @@
       // Create meta data
       JBoss50MetaData metaData = create();
 
+      // Process classes specified in the xml without top-level annotations
+      processClassesWithoutTopLevelAnnotations(metaData, classes);
+      
       // Process annotations
       processMetaData(classes, metaData);
-      
-      // Process classes specified in the xml without top-level annotations
-      processClassesWithoutTopLevelAnnotations(metaData, classes);
 
       return metaData;
    }
@@ -117,27 +117,35 @@
       return metaData;
    }
    
+   /**
+    * Process classes which are defined in the xml and don't have a top-level annotation.
+    * TODO - this should not really be handled here.
+    * 
+    * @param metaData
+    * @param classes
+    */
    private void processClassesWithoutTopLevelAnnotations(JBossMetaData metaData, Collection<Class<?>> classes)
    {
-      if(ejbJarMetaData == null || classLoader == null) return;
-      if(ejbJarMetaData.getEnterpriseBeans() == null) return;
-      for(EnterpriseBeanMetaData bean : ejbJarMetaData.getEnterpriseBeans())
+      if (ejbJarMetaData == null || classLoader == null)return;
+      if (ejbJarMetaData.getEnterpriseBeans() == null) return;
+      for (EnterpriseBeanMetaData bean : ejbJarMetaData.getEnterpriseBeans())
       {
-         if(bean.getEjbName() == null || bean.getEjbClass() == null) continue;
-         
-         try
+         if (bean.getEjbName() == null || bean.getEjbClass() == null)
+            continue;
+
+         if (containsClass(classes, bean.getEjbClass()) == false)
          {
-            Class<?> ejbClass = classLoader.loadClass(bean.getEjbClass());
-            if(! classes.contains(ejbClass))
+            try
             {
-               if(bean.isSession())
+               Class<?> ejbClass = classLoader.loadClass(bean.getEjbClass());
+               if (bean.isSession())
                {
                   SessionBeanMetaData sb = (SessionBeanMetaData) bean;
                   JBossSessionBeanMetaData sessionBean = new JBossSessionBeanMetaData();
                   sessionBean.setEjbName(sb.getEjbName());
                   sessionBean.setEjbClass(sb.getEjbClass());
-                  
-                  if(sb.isStateful())
+
+                  if (sb.isStateful())
                   {
                      StatefulProcessor processor = new StatefulProcessor(finder);
                      sessionBean.setSessionType(SessionType.Stateful);
@@ -152,7 +160,7 @@
 
                   metaData.getEnterpriseBeans().add(sessionBean);
                }
-               else if(bean.isMessageDriven())
+               else if (bean.isMessageDriven())
                {
                   JBossMessageDrivenBeanMetaData messageDriven = new JBossMessageDrivenBeanMetaData();
                   messageDriven.setEjbClass(bean.getEjbClass());
@@ -162,11 +170,12 @@
                   metaData.getEnterpriseBeans().add(messageDriven);
                }
             }
+            catch (ClassNotFoundException e)
+            {
+               throw new RuntimeException("could not find class: " + bean.getEjbClass(), e);
+            }
          }
-         catch(ClassNotFoundException e)
-         {
-            throw new RuntimeException("could not find class: "+ bean.getEjbClass(), e);
-         }
+
       }
    }
    
@@ -177,7 +186,7 @@
     */
    protected boolean validateClass(Class<?> clazz)
    {
-      // The AnnotationDeployer picks up only classes based on to the AnnotationContext, therefore no further validation
+      // The AnnotationDeployer picks up only classes based on the AnnotationContext, therefore no further validation
       return true;
    }
    
@@ -203,4 +212,17 @@
          
       };
    }
+   
+   private boolean containsClass(Collection<Class<?>> classes, String className)
+   {
+      if(className == null)
+        throw new IllegalArgumentException("null class name.");
+      
+      if(classes == null || classes.isEmpty()) return false;
+      
+      for(Class<?> clazz : classes)
+         if(clazz.getName().equals(className)) return true;
+      
+      return false;
+   }
 }




More information about the jboss-cvs-commits mailing list