[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