Search in sources :

Example 1 with XmlTap

use of nl.nn.adapterframework.stream.xml.XmlTap in project iaf by ibissource.

the class XsltSender method sendMessage.

/*
	 * alternative implementation of send message, that should do the same as the original, but reuses the streaming content handler
	 */
@Override
public PipeRunResult sendMessage(Message message, PipeLineSession session, IForwardTarget next) throws SenderException {
    if (message == null) {
        throw new SenderException(getLogPrefix() + "got null input");
    }
    try {
        try (ThreadConnector threadConnector = streamingXslt ? new ThreadConnector(this, threadLifeCycleEventListener, txManager, session) : null) {
            try (MessageOutputStream target = MessageOutputStream.getTargetStream(this, session, next)) {
                ContentHandler handler = createHandler(message, threadConnector, session, target);
                if (isDebugInput() && log.isDebugEnabled()) {
                    handler = new XmlTap(handler) {

                        @Override
                        public void endDocument() throws SAXException {
                            super.endDocument();
                            log.debug(getLogPrefix() + " xml input [" + getWriter() + "]");
                        }
                    };
                }
                XMLReader reader = getXmlReader(session, handler);
                InputSource source = message.asInputSource();
                reader.parse(source);
                return target.getPipeRunResult();
            }
        }
    } catch (Exception e) {
        throw new SenderException(getLogPrefix() + "Exception on transforming input", e);
    }
}
Also used : XmlTap(nl.nn.adapterframework.stream.xml.XmlTap) MessageOutputStream(nl.nn.adapterframework.stream.MessageOutputStream) InputSource(org.xml.sax.InputSource) ThreadConnector(nl.nn.adapterframework.stream.ThreadConnector) SenderException(nl.nn.adapterframework.core.SenderException) ContentHandler(org.xml.sax.ContentHandler) XMLReader(org.xml.sax.XMLReader) StreamingException(nl.nn.adapterframework.stream.StreamingException) ConfigurationException(nl.nn.adapterframework.configuration.ConfigurationException) ParserConfigurationException(javax.xml.parsers.ParserConfigurationException) SAXException(org.xml.sax.SAXException) SenderException(nl.nn.adapterframework.core.SenderException) SAXException(org.xml.sax.SAXException)

Aggregations

ParserConfigurationException (javax.xml.parsers.ParserConfigurationException)1 ConfigurationException (nl.nn.adapterframework.configuration.ConfigurationException)1 SenderException (nl.nn.adapterframework.core.SenderException)1 MessageOutputStream (nl.nn.adapterframework.stream.MessageOutputStream)1 StreamingException (nl.nn.adapterframework.stream.StreamingException)1 ThreadConnector (nl.nn.adapterframework.stream.ThreadConnector)1 XmlTap (nl.nn.adapterframework.stream.xml.XmlTap)1 ContentHandler (org.xml.sax.ContentHandler)1 InputSource (org.xml.sax.InputSource)1 SAXException (org.xml.sax.SAXException)1 XMLReader (org.xml.sax.XMLReader)1