use of org.apache.cxf.resource.ExtendedURIResolver in project cxf by apache.
the class PolicyAnnotationListener method loadRemotePolicy.
private Element loadRemotePolicy(String uri, String defName) {
ExtendedURIResolver resolver = new ExtendedURIResolver();
InputSource src = resolver.resolve(uri, "classpath:");
if (null == src) {
return null;
}
XMLStreamReader reader = null;
try {
reader = StaxUtils.createXMLStreamReader(src);
Document doc = StaxUtils.read(reader);
uri = getPolicyId(doc.getDocumentElement());
if (StringUtils.isEmpty(uri)) {
Attr att = doc.createAttributeNS(PolicyConstants.WSU_NAMESPACE_URI, "wsu:" + PolicyConstants.WSU_ID_ATTR_NAME);
att.setNodeValue(defName);
doc.getDocumentElement().setAttributeNodeNS(att);
}
return doc.getDocumentElement();
} catch (XMLStreamException e) {
LOG.log(Level.WARNING, e.getMessage());
return null;
} finally {
try {
StaxUtils.close(reader);
} catch (XMLStreamException e) {
LOG.log(Level.WARNING, e.getMessage());
}
}
}
use of org.apache.cxf.resource.ExtendedURIResolver in project cxf by apache.
the class CatalogTest method testCatalog.
@Test
public void testCatalog() throws Exception {
OASISCatalogManager catalogManager = new OASISCatalogManager();
URL jaxwscatalog = getClass().getResource("/META-INF/jax-ws-catalog.xml");
assertNotNull(jaxwscatalog);
catalogManager.loadCatalog(jaxwscatalog);
String xsd = "http://www.w3.org/2005/08/addressing/ws-addr.xsd";
String resolvedSchemaLocation = catalogManager.resolveSystem(xsd);
assertEquals("classpath:/schemas/wsdl/ws-addr.xsd", resolvedSchemaLocation);
ExtendedURIResolver resolver = new ExtendedURIResolver();
InputSource in = resolver.resolve(resolvedSchemaLocation, null);
assertTrue(in.getSystemId(), in.getSystemId().indexOf("core") != -1);
assertTrue(in.getSystemId(), in.getSystemId().indexOf("/schemas/wsdl/ws-addr.xsd") != -1);
}
use of org.apache.cxf.resource.ExtendedURIResolver in project cxf by apache.
the class RemoteReferenceResolver method resolveReference.
public Policy resolveReference(String uri) {
int pos = uri.indexOf('#');
String documentURI = pos == -1 ? uri : uri.substring(0, pos);
ExtendedURIResolver resolver = new ExtendedURIResolver();
InputSource is = resolver.resolve(documentURI, baseURI);
if (null == is) {
return null;
}
Document doc = null;
try {
doc = StaxUtils.read(is.getByteStream());
} catch (Exception ex) {
throw new PolicyException(ex);
} finally {
resolver.close();
}
if (pos == -1) {
return builder.getPolicy(doc.getDocumentElement());
}
String id = uri.substring(pos + 1);
for (Element elem : PolicyConstants.findAllPolicyElementsOfLocalName(doc, Constants.ELEM_POLICY)) {
if (id.equals(elem.getAttributeNS(PolicyConstants.WSU_NAMESPACE_URI, PolicyConstants.WSU_ID_ATTR_NAME))) {
return builder.getPolicy(elem);
}
}
return null;
}
Aggregations