You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by dj...@apache.org on 2011/07/08 08:22:16 UTC
svn commit: r1144167 -
/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
Author: djencks
Date: Fri Jul 8 06:22:16 2011
New Revision: 1144167
URL: http://svn.apache.org/viewvc?rev=1144167&view=rev
Log:
GERONIMO-6043 Not being able to load a class means it's not a managed bean, not deployment failure
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java?rev=1144167&r1=1144166&r2=1144167&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java Fri Jul 8 06:22:16 2011
@@ -83,50 +83,60 @@ public class CdiScanner implements Scann
if (beans == null) continue;
for (String className : beans.interceptors) {
- Class<?> clazz = load(className, "interceptor", classLoader);
+ Class<?> clazz = load(className, classLoader);
- // TODO: Move check to validation phase
- if (AnnotationUtil.hasAnnotation(clazz.getDeclaredAnnotations(), Interceptor.class) && !annotationManager.hasInterceptorBindingMetaAnnotation(
- clazz.getDeclaredAnnotations())) {
- throw new WebBeansConfigurationException("Interceptor class : " + clazz.getName() + " must have at least one @InterceptorBindingType");
- }
+ if (clazz != null) {
+// TODO: Move check to validation phase
+ if (AnnotationUtil.hasAnnotation(clazz.getDeclaredAnnotations(), Interceptor.class) && !annotationManager.hasInterceptorBindingMetaAnnotation(
+ clazz.getDeclaredAnnotations())) {
+ throw new WebBeansConfigurationException("Interceptor class : " + clazz.getName() + " must have at least one @InterceptorBindingType");
+ }
+
+ if (interceptorsManager.isInterceptorEnabled(clazz)) {
+ throw new WebBeansConfigurationException("Interceptor class : " + clazz.getName() + " is already defined");
+ }
- if (interceptorsManager.isInterceptorEnabled(clazz)) {
- throw new WebBeansConfigurationException("Interceptor class : " + clazz.getName() + " is already defined");
+ interceptorsManager.addNewInterceptor(clazz);
+ classes.add(clazz);
}
-
- interceptorsManager.addNewInterceptor(clazz);
- classes.add(clazz);
}
for (String className : beans.decorators) {
- Class<?> clazz = load(className, "decorator", classLoader);
+ Class<?> clazz = load(className, classLoader);
- if (decoratorsManager.isDecoratorEnabled(clazz)) {
- throw new WebBeansConfigurationException("Decorator class : " + clazz.getName() + " is already defined");
- }
+ if (clazz != null) {
+ if (decoratorsManager.isDecoratorEnabled(clazz)) {
+ throw new WebBeansConfigurationException("Decorator class : " + clazz.getName() + " is already defined");
+ }
- decoratorsManager.addNewDecorator(clazz);
- classes.add(clazz);
+ decoratorsManager.addNewDecorator(clazz);
+ classes.add(clazz);
+ }
}
for (String className : beans.alternativeStereotypes) {
- Class<?> clazz = load(className, "alternative-stereotype", classLoader);
- alternativesManager.addStereoTypeAlternative(clazz, null, null);
- classes.add(clazz);
+ Class<?> clazz = load(className, classLoader);
+ if (clazz != null) {
+ alternativesManager.addStereoTypeAlternative(clazz, null, null);
+ classes.add(clazz);
+ }
}
for (String className : beans.alternativeClasses) {
- Class<?> clazz = load(className, "alternative-class", classLoader);
- alternativesManager.addClazzAlternative(clazz, null, null);
- classes.add(clazz);
+ Class<?> clazz = load(className, classLoader);
+ if (clazz != null) {
+ alternativesManager.addClazzAlternative(clazz, null, null);
+ classes.add(clazz);
+ }
}
for (String className : beans.managedClasses) {
if (ejbClasses.contains(className)) continue;
- final Class clazz = load(className, "managed", classLoader);
- classes.add(clazz);
+ final Class clazz = load(className, classLoader);
+ if (clazz != null) {
+ classes.add(clazz);
+ }
}
}
@@ -140,12 +150,19 @@ public class CdiScanner implements Scann
return null;
}
- private Class load(String className, String type, ClassLoader classLoader) {
-// System.out.println("cdi.load = " + className);
+ /**
+ *
+ * @param className name of class to load
+ * @param classLoader classloader to (try to) load it from
+ * @return the loaded class if possible, or null if loading fails.
+ */
+ private Class load(String className, ClassLoader classLoader) {
try {
return classLoader.loadClass(className);
} catch (ClassNotFoundException e) {
- throw new RuntimeException("Unable to load class: "+className, e);
+ return null;
+ } catch (NoClassDefFoundError e) {
+ return null;
}
}