Skip to content

Commit

Permalink
add tests for 9.2.1
Browse files Browse the repository at this point in the history
git-svn-id: http://anonsvn.jboss.org/repos/weld/ri/trunk@2327 1c488680-804c-0410-94cd-c6b725194a0e
  • Loading branch information
Victor Yarmolovich committed Apr 7, 2009
1 parent b7e431c commit 67dadaf
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 0 deletions.
2 changes: 2 additions & 0 deletions impl/src/main/java/org/jboss/webbeans/xml/XmlConstants.java
Expand Up @@ -57,4 +57,6 @@ public class XmlConstants
public static final String PRODUCES = "Produces";

public static final String VALUE = "value";

public static final String ARRAY = "Array";
}
27 changes: 27 additions & 0 deletions impl/src/main/java/org/jboss/webbeans/xml/XmlParser.java
Expand Up @@ -61,13 +61,40 @@ public void parse()
Document document = createDocument(url);
if (document != null)
{
parseForArrays(document);
parseForAnnotationTypes(document);
parseForBeans(document);
parseForDeploy(document);
}
}
}

private void parseForArrays(Document document)
{
Element root = document.getRootElement();
checkChildrenForArray(root);
}

private void checkChildrenForArray(Element element)
{
Iterator<?> childIterator = element.elementIterator();
while(childIterator.hasNext())
{
Element child = (Element)childIterator.next();

if(child.getName().equalsIgnoreCase(XmlConstants.ARRAY))
{
if(child.elements().size() != 1)
throw new DefinitionException("<Array> element must have only one child");

Element arrayChild = (Element)child.elements().get(0);
ParseXmlHelper.loadElementClass(arrayChild, Object.class, environment, packagesMap);
}
else
checkChildrenForArray(child);
}
}

private void parseForAnnotationTypes(Document document)
{
Element root = document.getRootElement();
Expand Down
Expand Up @@ -96,6 +96,8 @@ private void checkBeanChild(Element beanChildElement, AnnotatedClass<?> beanClas
{
try
{
if(beanChildElement.getName().equalsIgnoreCase(XmlConstants.ARRAY))
return;
AnnotatedClass<?> beanChildClass = ParseXmlHelper.loadElementClass(beanChildElement, Object.class, environment, packagesMap);
Class<?> beanChildType = beanChildClass.getRawType();
boolean isJavaClass = !beanChildType.isEnum() && !beanChildType.isPrimitive() && !beanChildType.isInterface();
Expand Down

0 comments on commit 67dadaf

Please sign in to comment.