[webbeans-commits] Webbeans SVN: r2179 - ri/trunk/impl/src/main/java/org/jboss/webbeans/xml.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Tue Mar 24 08:54:58 EDT 2009


Author: pete.muir at jboss.org
Date: 2009-03-24 08:54:58 -0400 (Tue, 24 Mar 2009)
New Revision: 2179

Modified:
   ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/ParseXmlHelper.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/XmlParser.java
Log:
minor

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/ParseXmlHelper.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/ParseXmlHelper.java	2009-03-24 10:41:17 UTC (rev 2178)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/ParseXmlHelper.java	2009-03-24 12:54:58 UTC (rev 2179)
@@ -1,6 +1,7 @@
 package org.jboss.webbeans.xml;
 
 import java.io.IOException;
+import java.lang.annotation.Annotation;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -61,7 +62,41 @@
 
       throw new DefinitionException("There are multiple packages containing a Java type with the same name '" + className + "'");
    }
+   
+   public static <T extends Annotation> Class<? extends T> loadAnnotationClass(Element element, Class<T> expectedType, XmlEnvironment environment, Map<String, Set<String>> packagesMap)
+   {
+      List<Class<? extends T>> classesList = new ArrayList<Class<? extends T>>();
+      String className = element.getName();
+      String prefix = element.getNamespacePrefix();
 
+      for (Map.Entry<String, Set<String>> packagesEntry : packagesMap.entrySet())
+      {
+         if (prefix.equalsIgnoreCase(packagesEntry.getKey()))
+         {
+            Set<String> packages = packagesEntry.getValue();
+            for (String packageName : packages)
+            {
+               String classPath = packageName + "." + element.getName();
+               try
+               {
+                  classesList.add(environment.loadAnnotation(classPath, expectedType));
+               }
+               catch (ResourceLoadingException e)
+               {
+               }
+            }
+         }
+      }
+
+      if (classesList.size() == 0)
+         throw new DefinitionException("Could not find '" + className + "'");
+
+      if (classesList.size() == 1)
+         return classesList.get(0);
+
+      throw new DefinitionException("There are multiple packages containing a Java type with the same name '" + className + "'");
+   }
+
    public static void checkProduces(Element element, AnnotatedClass<?> beanClass)
    {
    }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/XmlParser.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/XmlParser.java	2009-03-24 10:41:17 UTC (rev 2178)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/xml/XmlParser.java	2009-03-24 12:54:58 UTC (rev 2179)
@@ -175,12 +175,12 @@
       List<Element> children = element.elements();
       for (Element child : children)
       {         
-         AnnotatedClass<? extends Annotation> deploymentClass = ParseXmlHelper.loadElementClass(child, Annotation.class, environment, packagesMap);
+         Class<? extends Annotation> deploymentClass = ParseXmlHelper.loadAnnotationClass(child, Annotation.class, environment, packagesMap);
          
 //         if(deploymentClass.getAnnotation(DeploymentType.class) == null)
 //            throw new DefinitionException("<Deploy> child <" + element.getName() + "> must be a deployment type");
                   
-         deploymentClasses.add(deploymentClass.getRawType());
+         deploymentClasses.add(deploymentClass);
       }
       haveAnyDeployElement = true;
       return deploymentClasses;




More information about the weld-commits mailing list