You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2019/04/23 10:58:34 UTC

[camel] 09/10: CAMEL-13442: camel3 - Move xpath out of camel-core

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 <cl...@gmail.com>
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);   
     }