Search in sources :

Example 1 with JAXBOMDataSource

use of org.apache.axiom.om.ds.jaxb.JAXBOMDataSource in project webservices-axiom by apache.

the class TestDataHandlerSerializationWithMTOM method runTest.

@Override
protected void runTest() throws Throwable {
    SOAPFactory factory = metaFactory.getSOAP11Factory();
    JAXBContext context = JAXBContext.newInstance(DocumentBean.class);
    // Construct the original message
    DocumentBean object = new DocumentBean();
    object.setId("123456");
    object.setContent(new DataHandler("some content", "text/plain; charset=utf-8"));
    SOAPEnvelope orgEnvelope = factory.getDefaultEnvelope();
    OMSourcedElement element = factory.createOMElement(new JAXBOMDataSource(context, object));
    orgEnvelope.getBody().addChild(element);
    // Serialize the message
    OMOutputFormat format = new OMOutputFormat();
    format.setDoOptimize(true);
    MemoryBlob blob = Blobs.createMemoryBlob();
    OutputStream out = blob.getOutputStream();
    orgEnvelope.serialize(out, format);
    out.close();
    assertFalse(element.isExpanded());
    // Parse the serialized message
    MultipartBody mb = MultipartBody.builder().setInputStream(blob.getInputStream()).setContentType(format.getContentType()).build();
    assertEquals(2, mb.getPartCount());
    SOAPEnvelope envelope = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, mb).getSOAPEnvelope();
    OMElement contentElement = envelope.getBody().getFirstElement().getFirstChildWithName(new QName("http://ws.apache.org/axiom/test/jaxb", "content"));
    OMText content = (OMText) contentElement.getFirstOMChild();
    assertTrue(content.isBinary());
    assertTrue(content.isOptimized());
    DataHandler dh = content.getDataHandler();
    assertEquals("some content", dh.getContent());
}
Also used : MemoryBlob(org.apache.axiom.blob.MemoryBlob) QName(javax.xml.namespace.QName) OutputStream(java.io.OutputStream) JAXBContext(javax.xml.bind.JAXBContext) OMElement(org.apache.axiom.om.OMElement) DataHandler(javax.activation.DataHandler) SOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope) OMSourcedElement(org.apache.axiom.om.OMSourcedElement) SOAPFactory(org.apache.axiom.soap.SOAPFactory) JAXBOMDataSource(org.apache.axiom.om.ds.jaxb.JAXBOMDataSource) MultipartBody(org.apache.axiom.mime.MultipartBody) DocumentBean(org.apache.axiom.ts.jaxb.beans.DocumentBean) OMText(org.apache.axiom.om.OMText) OMOutputFormat(org.apache.axiom.om.OMOutputFormat)

Example 2 with JAXBOMDataSource

use of org.apache.axiom.om.ds.jaxb.JAXBOMDataSource in project webservices-axiom by apache.

the class TestGetNameFromJAXBElement method runTest.

@Override
protected void runTest() throws Throwable {
    OMFactory omFactory = metaFactory.getOMFactory();
    ObjectFactory objectFactory = new ObjectFactory();
    JAXBContext context = JAXBContext.newInstance(ObjectFactory.class);
    JAXBElement<LinkIdentitiesType> jaxbElement = objectFactory.createLinkIdentities(new LinkIdentitiesType());
    OMSourcedElement element = omFactory.createOMElement(new JAXBOMDataSource(context, jaxbElement));
    assertEquals("http://www.example.org/identity", element.getNamespaceURI());
    assertEquals("LinkIdentities", element.getLocalName());
    assertFalse(element.isExpanded());
    // Force expansion so that OMSourcedElement compares the namespace URI and local name
    // provided by JAXBOMDataSource with the actual name of the element
    element.getFirstOMChild();
}
Also used : OMFactory(org.apache.axiom.om.OMFactory) ObjectFactory(org.example.identity.ObjectFactory) JAXBContext(javax.xml.bind.JAXBContext) LinkIdentitiesType(org.example.identity.LinkIdentitiesType) OMSourcedElement(org.apache.axiom.om.OMSourcedElement) JAXBOMDataSource(org.apache.axiom.om.ds.jaxb.JAXBOMDataSource)

Example 3 with JAXBOMDataSource

use of org.apache.axiom.om.ds.jaxb.JAXBOMDataSource in project webservices-axiom by apache.

the class JAXBTest method test.

@Test
public void test() throws Exception {
    OMFactory factory = OMAbstractFactory.getOMFactory();
    JAXBContext context = JAXBContext.newInstance(DummyBean.class);
    OMSourcedElement element = factory.createOMElement(new JAXBOMDataSource(context, new DummyBean()));
    element.serialize(new ByteArrayOutputStream());
}
Also used : OMFactory(org.apache.axiom.om.OMFactory) JAXBContext(javax.xml.bind.JAXBContext) OMSourcedElement(org.apache.axiom.om.OMSourcedElement) ByteArrayOutputStream(java.io.ByteArrayOutputStream) JAXBOMDataSource(org.apache.axiom.om.ds.jaxb.JAXBOMDataSource) Test(org.junit.Test)

Example 4 with JAXBOMDataSource

use of org.apache.axiom.om.ds.jaxb.JAXBOMDataSource in project webservices-axiom by apache.

the class TestUnmarshalWithDataHandler method runTest.

@Override
protected void runTest() throws Throwable {
    OMFactory factory = metaFactory.getOMFactory();
    JAXBContext context = JAXBContext.newInstance(DocumentBean.class);
    DocumentBean orgBean = new DocumentBean();
    orgBean.setId("AB23498");
    orgBean.setContent(new DataHandler("test content", "text/plain"));
    OMElement element = factory.createOMElement(new JAXBOMDataSource(context, orgBean));
    DocumentBean bean = (DocumentBean) element.unmarshal(context, null, true);
    assertEquals(orgBean.getId(), bean.getId());
    assertEquals(orgBean.getContent(), bean.getContent());
}
Also used : OMFactory(org.apache.axiom.om.OMFactory) DocumentBean(org.apache.axiom.ts.jaxb.beans.DocumentBean) JAXBContext(javax.xml.bind.JAXBContext) OMElement(org.apache.axiom.om.OMElement) DataHandler(javax.activation.DataHandler) JAXBOMDataSource(org.apache.axiom.om.ds.jaxb.JAXBOMDataSource)

Example 5 with JAXBOMDataSource

use of org.apache.axiom.om.ds.jaxb.JAXBOMDataSource in project webservices-axiom by apache.

the class TestDataHandlerExpansion method runTest.

@Override
protected void runTest() throws Throwable {
    OMFactory factory = metaFactory.getOMFactory();
    JAXBContext context = JAXBContext.newInstance(DocumentBean.class);
    DataHandler dh = new DataHandler("some content", "text/plain");
    DocumentBean object = new DocumentBean();
    object.setId("123456");
    object.setContent(dh);
    OMElement element = factory.createOMElement(new JAXBOMDataSource(context, object));
    OMElement child = (OMElement) element.getFirstOMChild();
    assertEquals("id", child.getLocalName());
    assertEquals("123456", child.getText());
    child = (OMElement) child.getNextOMSibling();
    assertEquals("content", child.getLocalName());
    OMText content = (OMText) child.getFirstOMChild();
    assertTrue(content.isBinary());
    assertTrue(content.isOptimized());
    assertSame(dh, content.getDataHandler());
}
Also used : OMFactory(org.apache.axiom.om.OMFactory) DocumentBean(org.apache.axiom.ts.jaxb.beans.DocumentBean) OMText(org.apache.axiom.om.OMText) JAXBContext(javax.xml.bind.JAXBContext) OMElement(org.apache.axiom.om.OMElement) DataHandler(javax.activation.DataHandler) JAXBOMDataSource(org.apache.axiom.om.ds.jaxb.JAXBOMDataSource)

Aggregations

JAXBContext (javax.xml.bind.JAXBContext)8 JAXBOMDataSource (org.apache.axiom.om.ds.jaxb.JAXBOMDataSource)8 OMFactory (org.apache.axiom.om.OMFactory)6 OMSourcedElement (org.apache.axiom.om.OMSourcedElement)6 DocumentBean (org.apache.axiom.ts.jaxb.beans.DocumentBean)6 DataHandler (javax.activation.DataHandler)4 OMElement (org.apache.axiom.om.OMElement)3 ByteArrayOutputStream (java.io.ByteArrayOutputStream)2 OMText (org.apache.axiom.om.OMText)2 SOAPEnvelope (org.apache.axiom.soap.SOAPEnvelope)2 SOAPFactory (org.apache.axiom.soap.SOAPFactory)2 ByteArrayInputStream (java.io.ByteArrayInputStream)1 OutputStream (java.io.OutputStream)1 QName (javax.xml.namespace.QName)1 XMLStreamException (javax.xml.stream.XMLStreamException)1 MemoryBlob (org.apache.axiom.blob.MemoryBlob)1 MultipartBody (org.apache.axiom.mime.MultipartBody)1 OMOutputFormat (org.apache.axiom.om.OMOutputFormat)1 LinkIdentitiesType (org.example.identity.LinkIdentitiesType)1 ObjectFactory (org.example.identity.ObjectFactory)1