Skip to content

Commit

Permalink
minor
Browse files Browse the repository at this point in the history
git-svn-id: http://anonsvn.jboss.org/repos/weld/ri/trunk@2179 1c488680-804c-0410-94cd-c6b725194a0e
  • Loading branch information
pmuir committed Mar 24, 2009
1 parent c356c60 commit 3740a1c
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 2 deletions.
35 changes: 35 additions & 0 deletions impl/src/main/java/org/jboss/webbeans/xml/ParseXmlHelper.java
@@ -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;
Expand Down Expand Up @@ -61,6 +62,40 @@ public static <T> AnnotatedClass<? extends T> loadElementClass(Element element,

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)
{
Expand Down
4 changes: 2 additions & 2 deletions impl/src/main/java/org/jboss/webbeans/xml/XmlParser.java
Expand Up @@ -175,12 +175,12 @@ private List<Class<? extends Annotation>> obtainDeploymentTypes(Element element)
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;
Expand Down

0 comments on commit 3740a1c

Please sign in to comment.