@Override public void handleMessage(Message message) { if (!isRequestor(message) && isGET(message) || checkContextProperty(message)) { return; } // 1. Try to get and transform XMLStreamReader message content XMLStreamReader xReader = message.getContent(XMLStreamReader.class); if (xReader != null) { transformXReader(message, xReader); } else { // 2. Try to get and transform InputStream message content InputStream is = message.getContent(InputStream.class); if (is != null) { transformIS(message, is); } else { // 3. Try to get and transform Reader message content (actually used for JMS TextMessage) Reader reader = message.getContent(Reader.class); if (reader != null) { transformReader(message, reader); } } } }
protected void transformIS(Message message, InputStream is) { try { InputStream transformedIS = XSLTUtils.transform(getXSLTTemplate(), is); message.setContent(InputStream.class, transformedIS); } finally { try { is.close(); } catch (IOException e) { LOG.warning("Cannot close stream after transformation: " + e.getMessage()); } } }
@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 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 (!isRequestor(message) && isGET(message) || checkContextProperty(message)) { return; } // 1. Try to get and transform XMLStreamReader message content XMLStreamReader xReader = message.getContent(XMLStreamReader.class); if (xReader != null) { transformXReader(message, xReader); } else { // 2. Try to get and transform InputStream message content InputStream is = message.getContent(InputStream.class); if (is != null) { transformIS(message, is); } else { // 3. Try to get and transform Reader message content (actually used for JMS TextMessage) Reader reader = message.getContent(Reader.class); if (reader != null) { transformReader(message, reader); } } } }
protected void transformIS(Message message, InputStream is) { try { InputStream transformedIS = XSLTUtils.transform(getXSLTTemplate(), is); message.setContent(InputStream.class, transformedIS); } finally { try { is.close(); } catch (IOException e) { LOG.warning("Cannot close stream after transformation: " + e.getMessage()); } } }
@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 (!isRequestor(message) && isGET(message) || checkContextProperty(message)) { return; } // 1. Try to get and transform XMLStreamReader message content XMLStreamReader xReader = message.getContent(XMLStreamReader.class); if (xReader != null) { transformXReader(message, xReader); } else { // 2. Try to get and transform InputStream message content InputStream is = message.getContent(InputStream.class); if (is != null) { transformIS(message, is); } else { // 3. Try to get and transform Reader message content (actually used for JMS TextMessage) Reader reader = message.getContent(Reader.class); if (reader != null) { transformReader(message, reader); } } } }
protected void transformIS(Message message, InputStream is) { try { InputStream transformedIS = XSLTUtils.transform(getXSLTTemplate(), is); message.setContent(InputStream.class, transformedIS); } finally { try { is.close(); } catch (IOException e) { LOG.warning("Cannot close stream after transformation: " + e.getMessage()); } } }
@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 (!isRequestor(message) && isGET(message) || checkContextProperty(message)) { return; } // 1. Try to get and transform XMLStreamReader message content XMLStreamReader xReader = message.getContent(XMLStreamReader.class); if (xReader != null) { transformXReader(message, xReader); } else { // 2. Try to get and transform InputStream message content InputStream is = message.getContent(InputStream.class); if (is != null) { transformIS(message, is); } else { // 3. Try to get and transform Reader message content (actually used for JMS TextMessage) Reader reader = message.getContent(Reader.class); if (reader != null) { transformReader(message, reader); } } } }
protected void transformIS(Message message, InputStream is) { try { InputStream transformedIS = XSLTUtils.transform(getXSLTTemplate(), is); message.setContent(InputStream.class, transformedIS); } finally { try { is.close(); } catch (IOException e) { LOG.warning("Cannot close stream after transformation: " + e.getMessage()); } } }
@Test public void testClientInTransformation() { 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); XSLTInInterceptor inInterceptor = new XSLTInInterceptor(XSLT_RESPONSE_PATH); client.getInInterceptors().add(inInterceptor); String response = port.echo("test"); assertTrue(response.contains(TRANSFORMED_CONSTANT)); } }
protected void transformReader(Message message, Reader reader) { try { Reader transformedReader = XSLTUtils.transform(getXSLTTemplate(), reader); message.setContent(Reader.class, transformedReader); } finally { try { reader.close(); } catch (IOException e) { LOG.warning("Cannot close stream after transformation: " + e.getMessage()); } } } }
protected void transformReader(Message message, Reader reader) { try { Reader transformedReader = XSLTUtils.transform(getXSLTTemplate(), reader); message.setContent(Reader.class, transformedReader); } finally { try { reader.close(); } catch (IOException e) { LOG.warning("Cannot close stream after transformation: " + e.getMessage()); } } } }
protected void transformReader(Message message, Reader reader) { try { Reader transformedReader = XSLTUtils.transform(getXSLTTemplate(), reader); message.setContent(Reader.class, transformedReader); } finally { try { reader.close(); } catch (IOException e) { LOG.warning("Cannot close stream after transformation: " + e.getMessage()); } } } }
protected void transformReader(Message message, Reader reader) { try { Reader transformedReader = XSLTUtils.transform(getXSLTTemplate(), reader); message.setContent(Reader.class, transformedReader); } finally { try { reader.close(); } catch (IOException e) { LOG.warning("Cannot close stream after transformation: " + e.getMessage()); } } } }
protected void transformXReader(Message message, XMLStreamReader xReader) { CachedOutputStream cachedOS = new CachedOutputStream(); try { StaxUtils.copy(xReader, cachedOS); InputStream transformedIS = XSLTUtils.transform(getXSLTTemplate(), cachedOS.getInputStream()); XMLStreamReader transformedReader = StaxUtils.createXMLStreamReader(transformedIS); message.setContent(XMLStreamReader.class, transformedReader); } catch (XMLStreamException e) { throw new Fault("STAX_COPY", LOG, e, e.getMessage()); } catch (IOException e) { throw new Fault("GET_CACHED_INPUT_STREAM", LOG, e, e.getMessage()); } finally { StaxUtils.close(xReader); try { cachedOS.close(); } catch (IOException e) { LOG.warning("Cannot close stream after transformation: " + e.getMessage()); } } }
protected void transformXReader(Message message, XMLStreamReader xReader) { CachedOutputStream cachedOS = new CachedOutputStream(); try { StaxUtils.copy(xReader, cachedOS); InputStream transformedIS = XSLTUtils.transform(getXSLTTemplate(), cachedOS.getInputStream()); XMLStreamReader transformedReader = StaxUtils.createXMLStreamReader(transformedIS); message.setContent(XMLStreamReader.class, transformedReader); } catch (XMLStreamException e) { throw new Fault("STAX_COPY", LOG, e, e.getMessage()); } catch (IOException e) { throw new Fault("GET_CACHED_INPUT_STREAM", LOG, e, e.getMessage()); } finally { StaxUtils.close(xReader); try { cachedOS.close(); } catch (IOException e) { LOG.warning("Cannot close stream after transformation: " + e.getMessage()); } } }
protected void transformXReader(Message message, XMLStreamReader xReader) { CachedOutputStream cachedOS = new CachedOutputStream(); try { StaxUtils.copy(xReader, cachedOS); InputStream transformedIS = XSLTUtils.transform(getXSLTTemplate(), cachedOS.getInputStream()); XMLStreamReader transformedReader = StaxUtils.createXMLStreamReader(transformedIS); message.setContent(XMLStreamReader.class, transformedReader); } catch (XMLStreamException e) { throw new Fault("STAX_COPY", LOG, e, e.getMessage()); } catch (IOException e) { throw new Fault("GET_CACHED_INPUT_STREAM", LOG, e, e.getMessage()); } finally { try { StaxUtils.close(xReader); } catch (XMLStreamException ex) { throw new Fault(ex); } try { cachedOS.close(); } catch (IOException e) { LOG.warning("Cannot close stream after transformation: " + e.getMessage()); } } }