Skip to content

Commit

Permalink
add method loadFileByUrn(...) into XmlEnvironment.java for loadin sch…
Browse files Browse the repository at this point in the history
…ema.xsd and namespace files

git-svn-id: http://anonsvn.jboss.org/repos/weld/ri/trunk@2178 1c488680-804c-0410-94cd-c6b725194a0e
  • Loading branch information
Victor Yarmolovich committed Mar 24, 2009
1 parent 7ea2e32 commit c356c60
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 18 deletions.
20 changes: 5 additions & 15 deletions impl/src/main/java/org/jboss/webbeans/xml/ParseXmlHelper.java
Expand Up @@ -66,7 +66,7 @@ public static void checkProduces(Element element, AnnotatedClass<?> beanClass)
{
}

public static void checkRootAttributes(Element root, Map<String, Set<String>> packagesMap)
public static void checkRootAttributes(Element root, Map<String, Set<String>> packagesMap, XmlEnvironment environment)
{
Iterator<?> rootAttrIterator = root.attributeIterator();
while (rootAttrIterator.hasNext())
Expand All @@ -82,14 +82,14 @@ public static void checkRootAttributes(Element root, Map<String, Set<String>> pa
if (attrVal.startsWith(XmlConstants.URN_PREFIX))
{
urn = attrVal;
URL namespaceFile = loadFile(urn, XmlConstants.NAMESPACE_FILE_NAME);
URL namespaceFile = environment.loadFileByUrn(urn, XmlConstants.NAMESPACE_FILE_NAME);
if (namespaceFile == null)
throw new DefinitionException("Could not find '" + XmlConstants.NAMESPACE_FILE_NAME + "' file according to specified URN '" + urn + "'");
packagesSet.addAll(parseNamespaceFile(namespaceFile));
}
if (attribute.getName().equalsIgnoreCase(XmlConstants.SCHEMA_LOCATION) && attrVal.startsWith(XmlConstants.HTTP_PREFIX) && urn.trim().length() > 0)
{
URL schemaFile = loadFile(urn, XmlConstants.SCHEMA_FILE_NAME);
URL schemaFile = environment.loadFileByUrn(urn, XmlConstants.SCHEMA_FILE_NAME);
if (schemaFile == null)
throw new DefinitionException("Could not find '" + XmlConstants.SCHEMA_FILE_NAME + "' file according to specified URN '" + urn + "'");
}
Expand All @@ -99,7 +99,7 @@ public static void checkRootAttributes(Element root, Map<String, Set<String>> pa
}
}

public static void checkRootDeclaredNamespaces(Element root, Map<String, Set<String>> packagesMap)
public static void checkRootDeclaredNamespaces(Element root, Map<String, Set<String>> packagesMap, XmlEnvironment environment)
{
Iterator<?> namespacesIterator = root.declaredNamespaces().iterator();
while (namespacesIterator.hasNext())
Expand All @@ -111,7 +111,7 @@ public static void checkRootDeclaredNamespaces(Element root, Map<String, Set<Str
{
Set<String> packagesSet = new HashSet<String>();

URL namespaceFile = loadFile(uri, XmlConstants.NAMESPACE_FILE_NAME);
URL namespaceFile = environment.loadFileByUrn(uri, XmlConstants.NAMESPACE_FILE_NAME);
if (namespaceFile != null)
{
packagesSet.addAll(parseNamespaceFile(namespaceFile));
Expand Down Expand Up @@ -166,16 +166,6 @@ public static boolean isMethod(Element element, AnnotatedClass<?> beanClass, Ann
return false;
}

private static URL loadFile(String urn, String fileName)
{
char separator = '/';
String packageName = urn.replaceFirst(XmlConstants.URN_PREFIX, "");
String path = packageName.replace('.', separator);
String filePath = separator + path + separator + fileName;
URL namespaceFile = ParseXmlHelper.class.getResource(filePath);
return namespaceFile;
}

private static Set<String> parseNamespaceFile(URL namespaceFile)
{
Set<String> packages = new HashSet<String>();
Expand Down
9 changes: 9 additions & 0 deletions impl/src/main/java/org/jboss/webbeans/xml/XmlEnvironment.java
Expand Up @@ -74,4 +74,13 @@ public URL loadNamespaceFile(String namespace)
return serviceRegistry.get(ResourceLoader.class).getResource(filePath);
}

public URL loadFileByUrn(String urn, String fileName)
{
char separator = '/';
String packageName = urn.replaceFirst(XmlConstants.URN_PREFIX, "");
String path = packageName.replace('.', separator);
String filePath = separator + path + separator + fileName;
return serviceRegistry.get(ResourceLoader.class).getResource(filePath);
}

}
5 changes: 2 additions & 3 deletions impl/src/main/java/org/jboss/webbeans/xml/XmlParser.java
Expand Up @@ -14,7 +14,6 @@

import javax.inject.DefinitionException;
import javax.inject.DeploymentException;
import javax.inject.manager.Bean;

import org.dom4j.Document;
import org.dom4j.DocumentException;
Expand Down Expand Up @@ -219,7 +218,7 @@ public void checkProduces(Element beanElement, AnnotatedClass<?> beanClass)
private void fullFillPackagesMap(Document document)
{
Element root = document.getRootElement();
ParseXmlHelper.checkRootAttributes(root, packagesMap);
ParseXmlHelper.checkRootDeclaredNamespaces(root, packagesMap);
ParseXmlHelper.checkRootAttributes(root, packagesMap, environment);
ParseXmlHelper.checkRootDeclaredNamespaces(root, packagesMap, environment);
}
}

0 comments on commit c356c60

Please sign in to comment.