[jboss-cvs] JBossAS SVN: r104046 - projects/scanning/trunk/plugins/src/main/java/org/jboss/scanning/jsf.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Apr 16 07:22:08 EDT 2010
Author: alesj
Date: 2010-04-16 07:22:07 -0400 (Fri, 16 Apr 2010)
New Revision: 104046
Modified:
projects/scanning/trunk/plugins/src/main/java/org/jboss/scanning/jsf/JBossAnnotationProvider.java
Log:
Allow for default to kick in, if our index impl is not found.
Modified: projects/scanning/trunk/plugins/src/main/java/org/jboss/scanning/jsf/JBossAnnotationProvider.java
===================================================================
--- projects/scanning/trunk/plugins/src/main/java/org/jboss/scanning/jsf/JBossAnnotationProvider.java 2010-04-16 11:22:06 UTC (rev 104045)
+++ projects/scanning/trunk/plugins/src/main/java/org/jboss/scanning/jsf/JBossAnnotationProvider.java 2010-04-16 11:22:07 UTC (rev 104046)
@@ -71,18 +71,26 @@
JSF_ANNOTATIONS.add(FacesBehaviorRenderer.class);
}
- /**
- * The annotations index
- */
+ /** The annotations index */
private AnnotationIndex index;
- public JBossAnnotationProvider(ServletContext sc)
+ /** The default provider */
+ private AnnotationProvider defaultProvider;
+
+ public JBossAnnotationProvider(ServletContext sc, AnnotationProvider defaultProvider)
{
super(sc);
- index = readIndex();
+ this.defaultProvider = defaultProvider;
+ this.index = readIndex(sc);
}
- protected AnnotationIndex readIndex()
+ /**
+ * Read annotations index from underlying deployment unit.
+ *
+ * @param sc the servlet context
+ * @return found annotation index or exception if not found
+ */
+ protected AnnotationIndex readIndex(ServletContext sc)
{
VDFConnector<AnnotationIndex> connector = new BaseAttachmentVDFConnector<AnnotationIndex>(sc)
{
@@ -91,24 +99,28 @@
return AnnotationIndex.class;
}
};
- if (connector.isValid() == false)
- throw new IllegalArgumentException("No annotation index found in deployment: " + sc);
-
return connector.getUtility();
}
public Map<Class<? extends Annotation>, Set<Class<?>>> getAnnotatedClasses(Set<URL> urls)
{
- Map<Class<? extends Annotation>, Set<Class<?>>> result = new HashMap<Class<? extends Annotation>, Set<Class<?>>>();
- for (URL url : urls)
+ if (index != null)
{
- for (Class<? extends Annotation> annotationClass : JSF_ANNOTATIONS)
+ Map<Class<? extends Annotation>, Set<Class<?>>> result = new HashMap<Class<? extends Annotation>, Set<Class<?>>>();
+ for (URL url : urls)
{
- fillResults(result, annotationClass, url);
+ for (Class<? extends Annotation> annotationClass : JSF_ANNOTATIONS)
+ {
+ fillResults(result, annotationClass, url);
+ }
}
+ return result;
}
- return result;
+ else
+ {
+ return defaultProvider.getAnnotatedClasses(urls);
+ }
}
protected <T extends Annotation> void fillResults(Map<Class<? extends Annotation>, Set<Class<?>>> result, Class<T> annotationClass, URL url)
More information about the jboss-cvs-commits
mailing list