[webbeans-commits] Webbeans SVN: r1529 - ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Sun Feb 15 17:37:46 EST 2009
Author: pete.muir at jboss.org
Date: 2009-02-15 17:37:46 -0500 (Sun, 15 Feb 2009)
New Revision: 1529
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/BeansXmlParser.java
Log:
Allow an empty beans.xml
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/BeansXmlParser.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/BeansXmlParser.java 2009-02-15 22:08:56 UTC (rev 1528)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/BeansXmlParser.java 2009-02-15 22:37:46 UTC (rev 1529)
@@ -1,6 +1,7 @@
package org.jboss.webbeans.bootstrap;
import java.io.IOException;
+import java.io.InputStream;
import java.lang.annotation.Annotation;
import java.net.URL;
import java.util.ArrayList;
@@ -100,50 +101,64 @@
List<DeployElement> deployElements = new ArrayList<DeployElement>();
for (URL url : beansXml)
{
- Document document;
+ InputStream is;
+ boolean fileHasContents;
try
{
- document = documentBuilder.parse(url.openStream());
- document.normalize();
+ is = url.openStream();
+ fileHasContents = is.available() > 0;
}
- catch (SAXException e)
- {
- throw new DeploymentException("Error parsing beans.xml " + url.toString());
- }
catch (IOException e)
{
- throw new DeploymentException("Error loading beans.xml " + url.toString());
+ throw new DeploymentException("Error loading beans.xml " + url.toString(), e);
}
- Element beans = document.getDocumentElement();
- Map<String, String> namespaces = new HashMap<String, String>();
- for (int i = 0; i < beans.getAttributes().getLength(); i++)
+ if (fileHasContents)
{
- Node child = beans.getAttributes().item(i);
- if (child instanceof Attr)
+ Document document;
+ try
{
- Attr attr = (Attr) child;
- if (attr.getName().startsWith("xmlns"))
+ document = documentBuilder.parse(is);
+ document.normalize();
+ }
+ catch (SAXException e)
+ {
+ throw new DeploymentException("Error parsing beans.xml " + url.toString(), e);
+ }
+ catch (IOException e)
+ {
+ throw new DeploymentException("Error loading beans.xml " + url.toString(), e);
+ }
+ Element beans = document.getDocumentElement();
+ Map<String, String> namespaces = new HashMap<String, String>();
+ for (int i = 0; i < beans.getAttributes().getLength(); i++)
+ {
+ Node child = beans.getAttributes().item(i);
+ if (child instanceof Attr)
{
- String namespacePrefix;
- if (attr.getName().length() == 5)
+ Attr attr = (Attr) child;
+ if (attr.getName().startsWith("xmlns"))
{
- namespacePrefix = "";
+ String namespacePrefix;
+ if (attr.getName().length() == 5)
+ {
+ namespacePrefix = "";
+ }
+ else
+ {
+ namespacePrefix = attr.getName().substring(6);
+ }
+
+ String namespace = attr.getValue();
+ namespaces.put(namespacePrefix, namespace);
}
- else
- {
- namespacePrefix = attr.getName().substring(6);
- }
-
- String namespace = attr.getValue();
- namespaces.put(namespacePrefix, namespace);
}
}
- }
- for (Node child : new NodeListIterable(beans.getChildNodes()))
- {
- if (child instanceof Element && "Deploy".equals(child.getNodeName()))
+ for (Node child : new NodeListIterable(beans.getChildNodes()))
{
- deployElements.add(new DeployElement(url, (Element) child, namespaces));
+ if (child instanceof Element && "Deploy".equals(child.getNodeName()))
+ {
+ deployElements.add(new DeployElement(url, (Element) child, namespaces));
+ }
}
}
}
More information about the weld-commits
mailing list