in xbean-spring/src/main/java/org/apache/xbean/spring/context/v2/XBeanBeanDefinitionDocumentReader.java [61:105]
protected void parseBeanDefinitions(Element root, BeanDefinitionParserDelegate delegate) {
String namespaceUri = root.getNamespaceURI();
if (!DomUtils.nodeNameEquals(root, "beans") &&
!delegate.isDefaultNamespace(namespaceUri)) {
try {
try {
Method m = BeanDefinitionParserDelegate.class.getMethod("parseCustomElement", new Class[] { Element.class });
m.invoke(delegate, new Object[] { root });
} catch (NoSuchMethodException e) {
try {
Method m = BeanDefinitionParserDelegate.class.getMethod("parseCustomElement", new Class[] { Element.class, boolean.class });
m.invoke(delegate, new Object[] { root, Boolean.FALSE });
} catch (NoSuchMethodException e2) {
throw new IllegalStateException(e);
}
}
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
} catch (IllegalArgumentException e) {
throw new RuntimeException(e);
} catch (InvocationTargetException e) {
if (e.getCause() instanceof RuntimeException) {
throw (RuntimeException) e.getCause();
}
throw new RuntimeException(e);
}
} else if (DomUtils.nodeNameEquals(root, "beans")) {
NodeList nl = root.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
Node node = nl.item(i);
if (node instanceof Element) {
Element ele = (Element) node;
String childNamespaceUri = ele.getNamespaceURI();
if (delegate.isDefaultNamespace(childNamespaceUri)) {
parseDefaultElement(ele, delegate);
}
else {
delegate.parseCustomElement(ele);
}
}
}
} else {
super.parseBeanDefinitions(root, delegate);
}
}