Search in sources :

Example 1 with SwAService

use of org.apache.cxf.swa.SwAService in project cxf by apache.

the class ClientServerSwaTest method testSwa.

@Test
public void testSwa() throws Exception {
    SwAService service = new SwAService();
    SwAServiceInterface port = service.getSwAServiceHttpPort();
    setAddress(port, "http://localhost:" + serverPort + "/swa");
    Holder<String> textHolder = new Holder<String>();
    Holder<DataHandler> data = new Holder<DataHandler>();
    ByteArrayDataSource source = new ByteArrayDataSource("foobar".getBytes(), "application/octet-stream");
    DataHandler handler = new DataHandler(source);
    data.value = handler;
    textHolder.value = "Hi";
    port.echoData(textHolder, data);
    InputStream bis = null;
    bis = data.value.getDataSource().getInputStream();
    byte[] b = new byte[10];
    bis.read(b, 0, 10);
    String string = IOUtils.newStringFromBytes(b);
    assertEquals("testfoobar", string);
    assertEquals("Hi", textHolder.value);
}
Also used : SwAService(org.apache.cxf.swa.SwAService) SwAServiceInterface(org.apache.cxf.swa.SwAServiceInterface) InputStream(java.io.InputStream) Holder(javax.xml.ws.Holder) DataHandler(javax.activation.DataHandler) ByteArrayDataSource(javax.mail.util.ByteArrayDataSource) Test(org.junit.Test)

Example 2 with SwAService

use of org.apache.cxf.swa.SwAService in project cxf by apache.

the class ClientServerSwaTest method testSwaDataStruct.

@Test
public void testSwaDataStruct() throws Exception {
    SwAService service = new SwAService();
    SwAServiceInterface port = service.getSwAServiceHttpPort();
    setAddress(port, "http://localhost:" + serverPort + "/swa");
    Holder<DataStruct> structHolder = new Holder<DataStruct>();
    ByteArrayDataSource source = new ByteArrayDataSource("foobar".getBytes(), "application/octet-stream");
    DataHandler handler = new DataHandler(source);
    DataStruct struct = new DataStruct();
    struct.setDataRef(handler);
    structHolder.value = struct;
    port.echoDataRef(structHolder);
    handler = structHolder.value.getDataRef();
    InputStream bis = handler.getDataSource().getInputStream();
    byte[] b = new byte[10];
    bis.read(b, 0, 10);
    String string = IOUtils.newStringFromBytes(b);
    assertEquals("testfoobar", string);
    bis.close();
}
Also used : SwAService(org.apache.cxf.swa.SwAService) DataStruct(org.apache.cxf.swa.types.DataStruct) SwAServiceInterface(org.apache.cxf.swa.SwAServiceInterface) InputStream(java.io.InputStream) Holder(javax.xml.ws.Holder) DataHandler(javax.activation.DataHandler) ByteArrayDataSource(javax.mail.util.ByteArrayDataSource) Test(org.junit.Test)

Example 3 with SwAService

use of org.apache.cxf.swa.SwAService in project cxf by apache.

the class ClientServerSwaTest method testSwaTypesWithDispatchAPI.

@Test
public void testSwaTypesWithDispatchAPI() throws Exception {
    URL url1 = this.getClass().getResource("resources/attach.text");
    URL url2 = this.getClass().getResource("resources/attach.html");
    URL url3 = this.getClass().getResource("resources/attach.xml");
    URL url4 = this.getClass().getResource("resources/attach.jpeg1");
    URL url5 = this.getClass().getResource("resources/attach.jpeg2");
    byte[] bytes = IOUtils.readBytesFromStream(url1.openStream());
    byte[] bigBytes = new byte[bytes.length * 50];
    for (int x = 0; x < 50; x++) {
        System.arraycopy(bytes, 0, bigBytes, x * bytes.length, bytes.length);
    }
    DataHandler dh1 = new DataHandler(new ByteArrayDataSource(bigBytes, "text/plain"));
    DataHandler dh2 = new DataHandler(url2);
    DataHandler dh3 = new DataHandler(url3);
    DataHandler dh4 = new DataHandler(url4);
    DataHandler dh5 = new DataHandler(url5);
    SwAService service = new SwAService();
    Dispatch<SOAPMessage> disp = service.createDispatch(SwAService.SwAServiceHttpPort, SOAPMessage.class, Service.Mode.MESSAGE);
    setAddress(disp, "http://localhost:" + serverPort + "/swa");
    SOAPMessage msg = MessageFactory.newInstance().createMessage();
    SOAPBody body = msg.getSOAPPart().getEnvelope().getBody();
    body.addBodyElement(new QName("http://cxf.apache.org/swa/types", "VoidRequest"));
    AttachmentPart att = msg.createAttachmentPart(dh1);
    att.setContentId("<attach1=c187f5da-fa5d-4ab9-81db-33c2bb855201@apache.org>");
    msg.addAttachmentPart(att);
    att = msg.createAttachmentPart(dh2);
    att.setContentId("<attach2=c187f5da-fa5d-4ab9-81db-33c2bb855202@apache.org>");
    msg.addAttachmentPart(att);
    att = msg.createAttachmentPart(dh3);
    att.setContentId("<attach3=c187f5da-fa5d-4ab9-81db-33c2bb855203@apache.org>");
    msg.addAttachmentPart(att);
    att = msg.createAttachmentPart(dh4);
    att.setContentId("<attach4=c187f5da-fa5d-4ab9-81db-33c2bb855204@apache.org>");
    msg.addAttachmentPart(att);
    att = msg.createAttachmentPart(dh5);
    att.setContentId("<attach5=c187f5da-fa5d-4ab9-81db-33c2bb855205@apache.org>");
    msg.addAttachmentPart(att);
    // Test for CXF-
    msg = disp.invoke(msg);
    assertEquals(5, msg.countAttachments());
}
Also used : SwAService(org.apache.cxf.swa.SwAService) SOAPBody(javax.xml.soap.SOAPBody) QName(javax.xml.namespace.QName) AttachmentPart(javax.xml.soap.AttachmentPart) DataHandler(javax.activation.DataHandler) ByteArrayDataSource(javax.mail.util.ByteArrayDataSource) SOAPMessage(javax.xml.soap.SOAPMessage) URL(java.net.URL) Test(org.junit.Test)

Example 4 with SwAService

use of org.apache.cxf.swa.SwAService in project cxf by apache.

the class ClientServerSwaTest method testSwaTypes.

@Test
public void testSwaTypes() throws Exception {
    SwAService service = new SwAService();
    SwAServiceInterface port = service.getSwAServiceHttpPort();
    setAddress(port, "http://localhost:" + serverPort + "/swa");
    URL url1 = this.getClass().getResource("resources/attach.text");
    URL url2 = this.getClass().getResource("resources/attach.html");
    URL url3 = this.getClass().getResource("resources/attach.xml");
    URL url4 = this.getClass().getResource("resources/attach.jpeg1");
    URL url5 = this.getClass().getResource("resources/attach.gif");
    DataHandler dh1 = new DataHandler(url1);
    DataHandler dh2 = new DataHandler(url2);
    DataHandler dh3 = new DataHandler(url3);
    // DataHandler dh4 = new DataHandler(url4);
    // DataHandler dh5 = new DataHandler(url5);
    Holder<DataHandler> attach1 = new Holder<DataHandler>();
    attach1.value = dh1;
    Holder<DataHandler> attach2 = new Holder<DataHandler>();
    attach2.value = dh2;
    Holder<Source> attach3 = new Holder<Source>();
    attach3.value = new StreamSource(dh3.getInputStream());
    Holder<Image> attach4 = new Holder<Image>();
    Holder<Image> attach5 = new Holder<Image>();
    attach4.value = ImageIO.read(url4);
    attach5.value = ImageIO.read(url5);
    VoidRequest request = new VoidRequest();
    OutputResponseAll response = port.echoAllAttachmentTypes(request, attach1, attach2, attach3, attach4, attach5);
    assertNotNull(response);
    Map<?, ?> map = CastUtils.cast((Map<?, ?>) ((BindingProvider) port).getResponseContext().get(MessageContext.INBOUND_MESSAGE_ATTACHMENTS));
    assertNotNull(map);
    assertEquals(5, map.size());
}
Also used : VoidRequest(org.apache.cxf.swa.types.VoidRequest) SwAServiceInterface(org.apache.cxf.swa.SwAServiceInterface) Holder(javax.xml.ws.Holder) StreamSource(javax.xml.transform.stream.StreamSource) DataHandler(javax.activation.DataHandler) Image(java.awt.Image) OutputResponseAll(org.apache.cxf.swa.types.OutputResponseAll) URL(java.net.URL) ByteArrayDataSource(javax.mail.util.ByteArrayDataSource) StreamSource(javax.xml.transform.stream.StreamSource) Source(javax.xml.transform.Source) SwAService(org.apache.cxf.swa.SwAService) Test(org.junit.Test)

Example 5 with SwAService

use of org.apache.cxf.swa.SwAService in project cxf by apache.

the class ClientServerSwaTest method testSwaWithHeaders.

@Test
public void testSwaWithHeaders() throws Exception {
    SwAService service = new SwAService();
    SwAServiceInterface port = service.getSwAServiceHttpPort();
    setAddress(port, "http://localhost:" + serverPort + "/swa");
    Holder<String> textHolder = new Holder<String>();
    Holder<String> headerHolder = new Holder<String>();
    Holder<DataHandler> data = new Holder<DataHandler>();
    ByteArrayDataSource source = new ByteArrayDataSource("foobar".getBytes(), "application/octet-stream");
    DataHandler handler = new DataHandler(source);
    data.value = handler;
    textHolder.value = "Hi";
    headerHolder.value = "Header";
    port.echoDataWithHeader(textHolder, data, headerHolder);
    InputStream bis = null;
    bis = data.value.getDataSource().getInputStream();
    byte[] b = new byte[10];
    bis.read(b, 0, 10);
    String string = IOUtils.newStringFromBytes(b);
    assertEquals("testfoobar", string);
    assertEquals("Hi", textHolder.value);
    assertEquals("Header", headerHolder.value);
}
Also used : SwAService(org.apache.cxf.swa.SwAService) SwAServiceInterface(org.apache.cxf.swa.SwAServiceInterface) InputStream(java.io.InputStream) Holder(javax.xml.ws.Holder) DataHandler(javax.activation.DataHandler) ByteArrayDataSource(javax.mail.util.ByteArrayDataSource) Test(org.junit.Test)

Aggregations

DataHandler (javax.activation.DataHandler)5 ByteArrayDataSource (javax.mail.util.ByteArrayDataSource)5 SwAService (org.apache.cxf.swa.SwAService)5 Test (org.junit.Test)5 Holder (javax.xml.ws.Holder)4 SwAServiceInterface (org.apache.cxf.swa.SwAServiceInterface)4 InputStream (java.io.InputStream)3 URL (java.net.URL)2 Image (java.awt.Image)1 QName (javax.xml.namespace.QName)1 AttachmentPart (javax.xml.soap.AttachmentPart)1 SOAPBody (javax.xml.soap.SOAPBody)1 SOAPMessage (javax.xml.soap.SOAPMessage)1 Source (javax.xml.transform.Source)1 StreamSource (javax.xml.transform.stream.StreamSource)1 DataStruct (org.apache.cxf.swa.types.DataStruct)1 OutputResponseAll (org.apache.cxf.swa.types.OutputResponseAll)1 VoidRequest (org.apache.cxf.swa.types.VoidRequest)1