Search in sources :

Example 1 with ExtendedURIResolver

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());
        }
    }
}
Also used : InputSource(org.xml.sax.InputSource) XMLStreamReader(javax.xml.stream.XMLStreamReader) XMLStreamException(javax.xml.stream.XMLStreamException) ExtendedURIResolver(org.apache.cxf.resource.ExtendedURIResolver) Document(org.w3c.dom.Document) Attr(org.w3c.dom.Attr)

Example 2 with ExtendedURIResolver

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);
}
Also used : InputSource(org.xml.sax.InputSource) ExtendedURIResolver(org.apache.cxf.resource.ExtendedURIResolver) OASISCatalogManager(org.apache.cxf.catalog.OASISCatalogManager) URL(java.net.URL) Test(org.junit.Test)

Example 3 with ExtendedURIResolver

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;
}
Also used : InputSource(org.xml.sax.InputSource) PolicyException(org.apache.cxf.ws.policy.PolicyException) ExtendedURIResolver(org.apache.cxf.resource.ExtendedURIResolver) Element(org.w3c.dom.Element) Document(org.w3c.dom.Document) PolicyException(org.apache.cxf.ws.policy.PolicyException)

Aggregations

ExtendedURIResolver (org.apache.cxf.resource.ExtendedURIResolver)3 InputSource (org.xml.sax.InputSource)3 Document (org.w3c.dom.Document)2 URL (java.net.URL)1 XMLStreamException (javax.xml.stream.XMLStreamException)1 XMLStreamReader (javax.xml.stream.XMLStreamReader)1 OASISCatalogManager (org.apache.cxf.catalog.OASISCatalogManager)1 PolicyException (org.apache.cxf.ws.policy.PolicyException)1 Test (org.junit.Test)1 Attr (org.w3c.dom.Attr)1 Element (org.w3c.dom.Element)1