@Override protected void initializeProvider(InterceptorProvider provider, Bus bus) { if (inXSLTPath != null) { XSLTInInterceptor in = new XSLTInInterceptor(inXSLTPath); provider.getInInterceptors().add(in); } if (outXSLTPath != null) { XSLTOutInterceptor out = new XSLTOutInterceptor(outXSLTPath); provider.getOutInterceptors().add(out); provider.getOutFaultInterceptors().add(out); } }
@Override public void handleMessage(Message message) { if (checkContextProperty(message)) { return; } // 1. Try to get and transform XMLStreamWriter message content XMLStreamWriter xWriter = message.getContent(XMLStreamWriter.class); if (xWriter != null) { transformXWriter(message, xWriter); } else { // 2. Try to get and transform OutputStream message content OutputStream out = message.getContent(OutputStream.class); if (out != null) { transformOS(message, out); } else { // 3. Try to get and transform Writer message content (actually used for JMS TextMessage) Writer writer = message.getContent(Writer.class); if (writer != null) { transformWriter(message, writer); } } } }
protected void transformWriter(Message message, Writer writer) { XSLTCachedWriter wrapper = new XSLTCachedWriter(getXSLTTemplate(), writer); message.setContent(Writer.class, wrapper); }
@Override public void handleMessage(Message message) { if (checkContextProperty(message)) { return; } // 1. Try to get and transform XMLStreamWriter message content XMLStreamWriter xWriter = message.getContent(XMLStreamWriter.class); if (xWriter != null) { transformXWriter(message, xWriter); } else { // 2. Try to get and transform OutputStream message content OutputStream out = message.getContent(OutputStream.class); if (out != null) { transformOS(message, out); } else { // 3. Try to get and transform Writer message content (actually used for JMS TextMessage) Writer writer = message.getContent(Writer.class); if (writer != null) { transformWriter(message, writer); } } } }
protected void transformWriter(Message message, Writer writer) { XSLTCachedWriter wrapper = new XSLTCachedWriter(getXSLTTemplate(), writer); message.setContent(Writer.class, wrapper); }
@Override protected void initializeProvider(InterceptorProvider provider, Bus bus) { if (inXSLTPath != null) { XSLTInInterceptor in = new XSLTInInterceptor(inXSLTPath); provider.getInInterceptors().add(in); } if (outXSLTPath != null) { XSLTOutInterceptor out = new XSLTOutInterceptor(outXSLTPath); provider.getOutInterceptors().add(out); provider.getOutFaultInterceptors().add(out); } }
@Override public void handleMessage(Message message) { if (checkContextProperty(message)) { return; } // 1. Try to get and transform XMLStreamWriter message content XMLStreamWriter xWriter = message.getContent(XMLStreamWriter.class); if (xWriter != null) { transformXWriter(message, xWriter); } else { // 2. Try to get and transform OutputStream message content OutputStream out = message.getContent(OutputStream.class); if (out != null) { transformOS(message, out); } else { // 3. Try to get and transform Writer message content (actually used for JMS TextMessage) Writer writer = message.getContent(Writer.class); if (writer != null) { transformWriter(message, writer); } } } }
protected void transformWriter(Message message, Writer writer) { XSLTCachedWriter wrapper = new XSLTCachedWriter(getXSLTTemplate(), writer); message.setContent(Writer.class, wrapper); }
@Override protected void initializeProvider(InterceptorProvider provider, Bus bus) { if (inXSLTPath != null) { XSLTInInterceptor in = new XSLTInInterceptor(inXSLTPath); provider.getInInterceptors().add(in); } if (outXSLTPath != null) { XSLTOutInterceptor out = new XSLTOutInterceptor(outXSLTPath); provider.getOutInterceptors().add(out); provider.getOutFaultInterceptors().add(out); } }
@Override public void handleMessage(Message message) { if (checkContextProperty(message)) { return; } // 1. Try to get and transform XMLStreamWriter message content XMLStreamWriter xWriter = message.getContent(XMLStreamWriter.class); if (xWriter != null) { transformXWriter(message, xWriter); } else { // 2. Try to get and transform OutputStream message content OutputStream out = message.getContent(OutputStream.class); if (out != null) { transformOS(message, out); } else { // 3. Try to get and transform Writer message content (actually used for JMS TextMessage) Writer writer = message.getContent(Writer.class); if (writer != null) { transformWriter(message, writer); } } } }
protected void transformWriter(Message message, Writer writer) { XSLTCachedWriter wrapper = new XSLTCachedWriter(getXSLTTemplate(), writer); message.setContent(Writer.class, wrapper); }
@Override protected void initializeProvider(InterceptorProvider provider, Bus bus) { if (inXSLTPath != null) { XSLTInInterceptor in = new XSLTInInterceptor(inXSLTPath); provider.getInInterceptors().add(in); } if (outXSLTPath != null) { XSLTOutInterceptor out = new XSLTOutInterceptor(outXSLTPath); provider.getOutInterceptors().add(out); provider.getOutFaultInterceptors().add(out); } }
protected void transformOS(Message message, OutputStream out) { CachedOutputStream wrapper = new CachedOutputStream(); CachedOutputStreamCallback callback = new XSLTCachedOutputStreamCallback(getXSLTTemplate(), out); wrapper.registerCallback(callback); message.setContent(OutputStream.class, wrapper); }
@Test public void testClientOutTransformation() { Service service = Service.create(SERVICE_NAME); String endpoint = "http://localhost:" + PORT + "/EchoContext/EchoPort"; service.addPort(PORT_NAME, SOAPBinding.SOAP11HTTP_BINDING, endpoint); Echo port = service.getPort(PORT_NAME, Echo.class); Client client = ClientProxy.getClient(port); XSLTOutInterceptor outInterceptor = new XSLTOutInterceptor(XSLT_REQUEST_PATH); client.getOutInterceptors().add(outInterceptor); String response = port.echo("test"); assertTrue("Request was not transformed", response.contains(TRANSFORMED_CONSTANT)); }
protected void transformOS(Message message, OutputStream out) { CachedOutputStream wrapper = new CachedOutputStream(); CachedOutputStreamCallback callback = new XSLTCachedOutputStreamCallback(getXSLTTemplate(), out); wrapper.registerCallback(callback); message.setContent(OutputStream.class, wrapper); }
@Test public void testClientOutTransformationOnNonExistingEndpoint() { Service service = Service.create(SERVICE_NAME); String endpoint = "http://localhost:" + PORT + "/NonExistent"; service.addPort(PORT_NAME, SOAPBinding.SOAP11HTTP_BINDING, endpoint); Echo port = service.getPort(PORT_NAME, Echo.class); Client client = ClientProxy.getClient(port); XSLTOutInterceptor outInterceptor = new XSLTOutInterceptor(XSLT_REQUEST_PATH); client.getOutInterceptors().add(outInterceptor); try { port.echo("test"); fail("404 Not found was expected"); } catch (Exception e) { String exceptionMessage = e.getMessage(); assertTrue(exceptionMessage.toLowerCase().contains("404: not found")); } }
protected void transformOS(Message message, OutputStream out) { CachedOutputStream wrapper = new CachedOutputStream(); CachedOutputStreamCallback callback = new XSLTCachedOutputStreamCallback(getXSLTTemplate(), out); wrapper.registerCallback(callback); message.setContent(OutputStream.class, wrapper); }
protected void transformOS(Message message, OutputStream out) { CachedOutputStream wrapper = new CachedOutputStream(); CachedOutputStreamCallback callback = new XSLTCachedOutputStreamCallback(getXSLTTemplate(), out); wrapper.registerCallback(callback); message.setContent(OutputStream.class, wrapper); }
protected void transformXWriter(Message message, XMLStreamWriter xWriter) { CachedWriter writer = new CachedWriter(); XMLStreamWriter delegate = StaxUtils.createXMLStreamWriter(writer); XSLTStreamWriter wrapper = new XSLTStreamWriter(getXSLTTemplate(), writer, delegate, xWriter); message.setContent(XMLStreamWriter.class, wrapper); message.put(AbstractOutDatabindingInterceptor.DISABLE_OUTPUTSTREAM_OPTIMIZATION, Boolean.TRUE); }
protected void transformXWriter(Message message, XMLStreamWriter xWriter) { CachedWriter writer = new CachedWriter(); XMLStreamWriter delegate = StaxUtils.createXMLStreamWriter(writer); XSLTStreamWriter wrapper = new XSLTStreamWriter(getXSLTTemplate(), writer, delegate, xWriter); message.setContent(XMLStreamWriter.class, wrapper); message.put(AbstractOutDatabindingInterceptor.DISABLE_OUTPUTSTREAM_OPTIMIZATION, Boolean.TRUE); }