Search in sources :

Example 16 with OMNamespace

use of org.apache.axiom.om.OMNamespace in project webservices-axiom by apache.

the class TestGetHeadersToProcessWithNamespace method runTest.

@Override
protected void runTest() throws Throwable {
    SOAPEnvelope envelope = soapFactory.createSOAPEnvelope();
    SOAPHeader header = soapFactory.createSOAPHeader(envelope);
    OMNamespace ns1 = soapFactory.createOMNamespace("urn:ns1", "ns1");
    OMNamespace ns2 = soapFactory.createOMNamespace("urn:ns2", "ns2");
    String myRole = "urn:myRole";
    String otherRole = "urn:otherRole";
    SOAPHeaderBlock headerBlock1 = header.addHeaderBlock("header1", ns1);
    headerBlock1.setRole(myRole);
    SOAPHeaderBlock headerBlock2 = header.addHeaderBlock("header2", ns2);
    headerBlock2.setRole(myRole);
    SOAPHeaderBlock headerBlock3 = header.addHeaderBlock("header3", ns1);
    headerBlock3.setRole(myRole);
    SOAPHeaderBlock headerBlock4 = header.addHeaderBlock("header4", ns1);
    headerBlock4.setRole(otherRole);
    Iterator<SOAPHeaderBlock> it = header.getHeadersToProcess(new MyRolePlayer(false, new String[] { myRole }), ns1.getNamespaceURI());
    assertTrue(it.hasNext());
    assertSame(headerBlock1, it.next());
    assertTrue(it.hasNext());
    assertSame(headerBlock3, it.next());
    assertFalse(it.hasNext());
}
Also used : OMNamespace(org.apache.axiom.om.OMNamespace) SOAPHeaderBlock(org.apache.axiom.soap.SOAPHeaderBlock) SOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope) SOAPHeader(org.apache.axiom.soap.SOAPHeader)

Example 17 with OMNamespace

use of org.apache.axiom.om.OMNamespace in project webservices-axiom by apache.

the class TestBlobOMDataSource method runTest.

@Override
protected void runTest() throws Throwable {
    SOAPEnvelope soapEnvelope = soapFactory.createSOAPEnvelope();
    SOAPHeader soapHeader = soapFactory.createSOAPHeader(soapEnvelope);
    String localName = "myPayload";
    String encoding = "utf-8";
    String payload = "<tns:myPayload xmlns:tns=\"urn://test\">Payload One</tns:myPayload>";
    OMNamespace ns = soapFactory.createOMNamespace("urn://test", "tns");
    BlobOMDataSource ds = new BlobOMDataSource(Blobs.createBlob(payload.getBytes(encoding)), encoding);
    // Set an empty MustUnderstand property on the data source
    ds.setProperty(SOAPHeaderBlock.MUST_UNDERSTAND_PROPERTY, null);
    OMSourcedElement omse = soapFactory.createSOAPHeaderBlock(localName, ns, ds);
    soapHeader.addChild(omse);
    OMNode firstChild = soapHeader.getFirstOMChild();
    assertTrue("Expected OMSourcedElement child", firstChild instanceof SOAPHeaderBlock);
    SOAPHeaderBlock child = (SOAPHeaderBlock) firstChild;
    assertTrue("OMSourcedElement is expanded.  This is unexpected", !child.isExpanded());
    assertThat(child.getDataSource()).isSameAs(ds);
    // Make sure that getting the MustUnderstand property does not cause expansion.
    assertTrue(!child.getMustUnderstand());
    assertTrue("OMSourcedElement is expanded.  This is unexpected", !child.isExpanded());
    assertThat(child.getDataSource()).isSameAs(ds);
    // A BlobOMDataSource does not consume the backing object when read.
    // Thus getting the XMLStreamReader of the BlobOMDataSource should not 
    // cause expansion of the OMSourcedElement.
    XMLStreamReader reader = child.getXMLStreamReader();
    reader.next();
    assertTrue("OMSourcedElement is expanded.  This is unexpected", !child.isExpanded());
    // Likewise, a BlobOMDataSource does not consume the backing object when 
    // written.  Thus serializing the OMSourcedElement should not cause the expansion
    // of the OMSourcedElement.
    assertTrue("The payload was not present in the output", soapHeader.toString().indexOf(payload) > 0);
    assertTrue("OMSourcedElement is expanded.  This is unexpected", !child.isExpanded());
    assertThat(child.getDataSource()).isSameAs(ds);
}
Also used : OMNode(org.apache.axiom.om.OMNode) OMNamespace(org.apache.axiom.om.OMNamespace) XMLStreamReader(javax.xml.stream.XMLStreamReader) BlobOMDataSource(org.apache.axiom.om.ds.BlobOMDataSource) SOAPHeaderBlock(org.apache.axiom.soap.SOAPHeaderBlock) SOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope) OMSourcedElement(org.apache.axiom.om.OMSourcedElement) SOAPHeader(org.apache.axiom.soap.SOAPHeader)

Example 18 with OMNamespace

use of org.apache.axiom.om.OMNamespace in project webservices-axiom by apache.

the class CreateSOAPElementWithoutParentTestCase method runTest.

@Override
protected final void runTest() throws Throwable {
    QName expectedName = type.getQName(spec);
    if (expectedName == null) {
        try {
            createSOAPElement();
            fail("Expect UnsupportedOperationException");
        } catch (UnsupportedOperationException ex) {
        // Expected
        }
    } else {
        String expectedPrefix = expectedName.getNamespaceURI().length() == 0 ? "" : SOAPConstants.SOAP_DEFAULT_NAMESPACE_PREFIX;
        OMElement element = createSOAPElement();
        assertTrue(element.isComplete());
        QName actualName = element.getQName();
        assertEquals(expectedName, actualName);
        assertEquals(expectedPrefix, actualName.getPrefix());
        assertNull(element.getParent());
        Iterator<OMNamespace> it = element.getAllDeclaredNamespaces();
        if (expectedPrefix.length() != 0) {
            assertTrue(it.hasNext());
            OMNamespace ns = it.next();
            assertEquals(expectedName.getNamespaceURI(), ns.getNamespaceURI());
            assertEquals(expectedPrefix, ns.getPrefix());
        }
        assertFalse(it.hasNext());
        assertFalse(element.getAllAttributes().hasNext());
        assertNull(element.getFirstOMChild());
    }
}
Also used : OMNamespace(org.apache.axiom.om.OMNamespace) QName(javax.xml.namespace.QName) OMElement(org.apache.axiom.om.OMElement)

Example 19 with OMNamespace

use of org.apache.axiom.om.OMNamespace in project webservices-axiom by apache.

the class TestCreateSOAPEnvelopeWithCustomPrefix method runTest.

@Override
protected void runTest() throws Throwable {
    String prefix = "my-soap";
    OMNamespace ns = soapFactory.createOMNamespace(spec.getEnvelopeNamespaceURI(), prefix);
    SOAPEnvelope env = soapFactory.createSOAPEnvelope(ns);
    assertEquals(prefix, env.getNamespace().getPrefix());
    assertEquals(spec.getEnvelopeNamespaceURI(), env.getNamespace().getNamespaceURI());
    assertEquals(SOAPConstants.SOAPENVELOPE_LOCAL_NAME, env.getLocalName());
    Iterator<OMNamespace> it = env.getAllDeclaredNamespaces();
    assertTrue(it.hasNext());
    assertEquals(ns, it.next());
    assertFalse(it.hasNext());
}
Also used : OMNamespace(org.apache.axiom.om.OMNamespace) SOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope)

Example 20 with OMNamespace

use of org.apache.axiom.om.OMNamespace in project webservices-axiom by apache.

the class TestGetNamespace method runTest.

@Override
protected void runTest() throws Throwable {
    OMNamespace ns = soapFactory.getNamespace();
    assertEquals(SOAPConstants.SOAP_DEFAULT_NAMESPACE_PREFIX, ns.getPrefix());
    assertEquals(spec.getEnvelopeNamespaceURI(), ns.getNamespaceURI());
}
Also used : OMNamespace(org.apache.axiom.om.OMNamespace)

Aggregations

OMNamespace (org.apache.axiom.om.OMNamespace)164 OMElement (org.apache.axiom.om.OMElement)101 OMFactory (org.apache.axiom.om.OMFactory)94 QName (javax.xml.namespace.QName)33 SOAPEnvelope (org.apache.axiom.soap.SOAPEnvelope)20 OMAttribute (org.apache.axiom.om.OMAttribute)18 PullOMDataSource (org.apache.axiom.ts.om.sourcedelement.util.PullOMDataSource)16 StringWriter (java.io.StringWriter)15 SOAPHeaderBlock (org.apache.axiom.soap.SOAPHeaderBlock)13 SOAPHeader (org.apache.axiom.soap.SOAPHeader)12 OMSourcedElement (org.apache.axiom.om.OMSourcedElement)9 XMLStreamReader (javax.xml.stream.XMLStreamReader)8 OMText (org.apache.axiom.om.OMText)7 Iterator (java.util.Iterator)6 SOAPBody (org.apache.axiom.soap.SOAPBody)6 StringReader (java.io.StringReader)5 StringOMDataSource (org.apache.axiom.om.ds.StringOMDataSource)5 HashSet (java.util.HashSet)4 OMDataSource (org.apache.axiom.om.OMDataSource)4 OMNode (org.apache.axiom.om.OMNode)4