This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch xpath in repository https://gitbox.apache.org/repos/asf/camel.git
commit d57cae2d5bcec291ef7ca91fd7ab7943c3da8e32 Author: Claus Ibsen <[email protected]> AuthorDate: Tue Apr 23 12:45:16 2019 +0200 CAMEL-13442: camel3 - Move xpath out of camel-core --- components/camel-saxon/pom.xml | 4 +-- .../camel/component/xquery/XQueryBuilder.java | 41 ++++++++++++---------- .../camel/component/xquery/XQueryEndpoint.java | 5 +-- .../camel/component/xslt/SaxonXsltDTDTest.java | 5 ++- 4 files changed, 28 insertions(+), 27 deletions(-) diff --git a/components/camel-saxon/pom.xml b/components/camel-saxon/pom.xml index 9ef3b31..ffe3e9f 100644 --- a/components/camel-saxon/pom.xml +++ b/components/camel-saxon/pom.xml @@ -40,11 +40,9 @@ <dependencies> - <!-- TODO: camel-xpath and avoid the IOConverter dependency --> - <!-- requires camel-core --> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-core</artifactId> + <artifactId>camel-xpath</artifactId> </dependency> <dependency> <groupId>org.apache.camel</groupId> diff --git a/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java index 016f3d2..5ac3761 100644 --- a/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java +++ b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java @@ -23,7 +23,6 @@ import java.io.InputStream; import java.io.Reader; import java.io.StringWriter; import java.math.BigInteger; -import java.net.URL; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -72,7 +71,6 @@ import org.apache.camel.Predicate; import org.apache.camel.Processor; import org.apache.camel.RuntimeExpressionException; import org.apache.camel.StringSource; -import org.apache.camel.converter.IOConverter; import org.apache.camel.spi.NamespaceAware; import org.apache.camel.support.MessageHelper; import org.apache.camel.util.IOHelper; @@ -257,7 +255,11 @@ public abstract class XQueryBuilder implements Expression, Predicate, NamespaceA return new XQueryBuilder() { protected XQueryExpression createQueryExpression(StaticQueryContext staticQueryContext) throws XPathException, IOException { - return staticQueryContext.compileQuery(reader); + try { + return staticQueryContext.compileQuery(reader); + } finally { + IOHelper.close(reader); + } } }; } @@ -265,26 +267,27 @@ public abstract class XQueryBuilder implements Expression, Predicate, NamespaceA public static XQueryBuilder xquery(final InputStream in, final String characterSet) { return new XQueryBuilder() { protected XQueryExpression createQueryExpression(StaticQueryContext staticQueryContext) - throws XPathException, IOException { - return staticQueryContext.compileQuery(in, characterSet); + throws XPathException { + try { + return staticQueryContext.compileQuery(in, characterSet); + } finally { + IOHelper.close(in); + } } }; } - public static XQueryBuilder xquery(File file, String characterSet) throws IOException { - return xquery(IOConverter.toInputStream(file), characterSet); - } - - public static XQueryBuilder xquery(URL url, String characterSet) throws IOException { - return xquery(IOConverter.toInputStream(url), characterSet); - } - - public static XQueryBuilder xquery(File file) throws IOException { - return xquery(IOConverter.toInputStream(file), ObjectHelper.getDefaultCharacterSet()); - } - - public static XQueryBuilder xquery(URL url) throws IOException { - return xquery(IOConverter.toInputStream(url), ObjectHelper.getDefaultCharacterSet()); + public static XQueryBuilder xquery(final InputStream in) { + return new XQueryBuilder() { + protected XQueryExpression createQueryExpression(StaticQueryContext staticQueryContext) + throws XPathException { + try { + return staticQueryContext.compileQuery(in, ObjectHelper.getDefaultCharacterSet()); + } finally { + IOHelper.close(in); + } + } + }; } // Fluent API diff --git a/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java index db7a497..ecafdbd 100644 --- a/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java +++ b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java @@ -16,6 +16,7 @@ */ package org.apache.camel.component.xquery; +import java.io.InputStream; import java.net.URL; import java.util.HashMap; import java.util.Map; @@ -220,9 +221,9 @@ public class XQueryEndpoint extends ProcessorEndpoint { super.doStart(); log.debug("{} using schema resource: {}", this, resourceUri); - URL url = ResourceHelper.resolveMandatoryResourceAsUrl(getCamelContext().getClassResolver(), resourceUri); + InputStream is = ResourceHelper.resolveMandatoryResourceAsInputStream(getCamelContext(), resourceUri); - this.xquery = XQueryBuilder.xquery(url); + this.xquery = XQueryBuilder.xquery(is); this.xquery.setConfiguration(getConfiguration()); this.xquery.setConfigurationProperties(getConfigurationProperties()); this.xquery.setStaticQueryContext(getStaticQueryContext()); diff --git a/components/camel-saxon/src/test/java/org/apache/camel/component/xslt/SaxonXsltDTDTest.java b/components/camel-saxon/src/test/java/org/apache/camel/component/xslt/SaxonXsltDTDTest.java index d7b50e5..0027c73 100644 --- a/components/camel-saxon/src/test/java/org/apache/camel/component/xslt/SaxonXsltDTDTest.java +++ b/components/camel-saxon/src/test/java/org/apache/camel/component/xslt/SaxonXsltDTDTest.java @@ -16,6 +16,7 @@ */ package org.apache.camel.component.xslt; +import java.io.ByteArrayInputStream; import java.io.InputStream; import java.util.List; @@ -25,8 +26,6 @@ import org.apache.camel.CamelExecutionException; import org.apache.camel.Exchange; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; -import org.apache.camel.converter.IOConverter; -import org.apache.camel.support.DefaultExchange; import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Test; @@ -43,7 +42,7 @@ public class SaxonXsltDTDTest extends CamelTestSupport { @Test public void testSendingInputStreamMessage() throws Exception { - InputStream is = IOConverter.toInputStream(MESSAGE, new DefaultExchange(context)); + InputStream is = new ByteArrayInputStream(MESSAGE.getBytes()); sendEntityMessage(is); }
