[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