You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dk...@apache.org on 2011/09/19 18:58:56 UTC

svn commit: r1172702 - in /camel/branches/camel-2.8.x: ./ components/camel-saxon/src/main/java/org/apache/camel/component/xquery/

Author: dkulp
Date: Mon Sep 19 16:58:56 2011
New Revision: 1172702

URL: http://svn.apache.org/viewvc?rev=1172702&view=rev
Log:
Merged revisions 1152569 via svnmerge from 
https://svn.apache.org/repos/asf/camel/trunk

........
  r1152569 | davsclaus | 2011-07-31 07:55:54 -0400 (Sun, 31 Jul 2011) | 1 line
  
  CAMEL-4285: camel-saxon can now load imported resources from the classpath using a custom ModuleURIResolver. Thanks to Jay Mann for the patch.
........

Added:
    camel/branches/camel-2.8.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryModuleURIResolver.java
      - copied unchanged from r1152569, camel/trunk/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryModuleURIResolver.java
Modified:
    camel/branches/camel-2.8.x/   (props changed)
    camel/branches/camel-2.8.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java
    camel/branches/camel-2.8.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryComponent.java

Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 16:58:56 2011
@@ -1 +1 @@
-/camel/trunk:1148706,1148710,1149570,1150651,1151000,1151054,1151087,1151362,1152170,1152733,1152755,1153620,1153812,1153829,1154684,1155230,1156108,1156260,1156277,1156479,1156524,1157348,1157749,1157798,1157831,1157878,1158153,1159171,1159174,1159326,1159457,1159460,1159606,1159682-1159683,1159867,1160547,1160637,1161010,1161082,1161524,1162309,1162395,1163231,1163420,1163656-1163669,1163725,1164544,1164557,1164633,1164972-1165000,1165152,1165157,1165658,1165971,1165987,1167098,1167131,1167448,1167487,1167555,1169610,1169620,1170122,1170226,1170397,1170956,1171396,1171755,1171941,1171947
+/camel/trunk:1148706,1148710,1149570,1150651,1151000,1151054,1151087,1151362,1152170,1152569,1152733,1152755,1153620,1153812,1153829,1154684,1155230,1156108,1156260,1156277,1156479,1156524,1157348,1157749,1157798,1157831,1157878,1158153,1159171,1159174,1159326,1159457,1159460,1159606,1159682-1159683,1159867,1160547,1160637,1161010,1161082,1161524,1162309,1162395,1163231,1163420,1163656-1163669,1163725,1164544,1164557,1164633,1164972-1165000,1165152,1165157,1165658,1165971,1165987,1167098,1167131,1167448,1167487,1167555,1169610,1169620,1170122,1170226,1170397,1170956,1171396,1171755,1171941,1171947

Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: camel/branches/camel-2.8.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java?rev=1172702&r1=1172701&r2=1172702&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java (original)
+++ camel/branches/camel-2.8.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryBuilder.java Mon Sep 19 16:58:56 2011
@@ -43,6 +43,7 @@ import net.sf.saxon.om.DocumentInfo;
 import net.sf.saxon.om.Item;
 import net.sf.saxon.om.SequenceIterator;
 import net.sf.saxon.query.DynamicQueryContext;
+import net.sf.saxon.query.ModuleURIResolver;
 import net.sf.saxon.query.StaticQueryContext;
 import net.sf.saxon.query.XQueryExpression;
 import net.sf.saxon.trans.XPathException;
@@ -87,6 +88,7 @@ public abstract class XQueryBuilder impl
     private Class resultType;
     private final AtomicBoolean initialized = new AtomicBoolean(false);
     private boolean stripsAllWhiteSpace = true;
+    private ModuleURIResolver moduleURIResolver;
 
     @Override
     public String toString() {
@@ -393,6 +395,14 @@ public abstract class XQueryBuilder impl
         this.resultType = resultType;
     }
 
+    public ModuleURIResolver getModuleURIResolver() {
+        return moduleURIResolver;
+    }
+
+    public void setModuleURIResolver(ModuleURIResolver moduleURIResolver) {
+        this.moduleURIResolver = moduleURIResolver;
+    }
+
     public boolean isStripsAllWhiteSpace() {
         return stripsAllWhiteSpace;
     }
@@ -515,6 +525,10 @@ public abstract class XQueryBuilder impl
             configuration.setStripsWhiteSpace(isStripsAllWhiteSpace() ? Whitespace.ALL : Whitespace.IGNORABLE);
 
             staticQueryContext = new StaticQueryContext(getConfiguration());
+            if (moduleURIResolver != null) {
+                staticQueryContext.setModuleURIResolver(moduleURIResolver);
+            }
+
             Set<Map.Entry<String, String>> entries = namespacePrefixes.entrySet();
             for (Map.Entry<String, String> entry : entries) {
                 String prefix = entry.getKey();
@@ -522,7 +536,6 @@ public abstract class XQueryBuilder impl
                 staticQueryContext.declareNamespace(prefix, uri);
                 staticQueryContext.setInheritNamespaces(true);
             }
-
             expression = createQueryExpression(staticQueryContext);
 
             initialized.set(true);

Modified: camel/branches/camel-2.8.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryComponent.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryComponent.java?rev=1172702&r1=1172701&r2=1172702&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryComponent.java (original)
+++ camel/branches/camel-2.8.x/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryComponent.java Mon Sep 19 16:58:56 2011
@@ -16,26 +16,28 @@
  */
 package org.apache.camel.component.xquery;
 
+import java.net.URL;
 import java.util.Map;
 
+import net.sf.saxon.query.ModuleURIResolver;
 import org.apache.camel.Endpoint;
 import org.apache.camel.component.ResourceBasedComponent;
 import org.apache.camel.impl.ProcessorEndpoint;
 import org.springframework.core.io.Resource;
 
-
 /**
  * An <a href="http://camel.apache.org/xquery.html">XQuery Component</a>
  * for performing transforming messages
- *
- * @version 
  */
 public class XQueryComponent extends ResourceBasedComponent {
 
+    private ModuleURIResolver moduleURIResolver = new XQueryModuleURIResolver(this);
+
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
         Resource resource = resolveMandatoryResource(remaining);
         log.debug("{} using schema resource: {}", this, resource);
         XQueryBuilder xslt = XQueryBuilder.xquery(resource.getURL());
+        xslt.setModuleURIResolver(getModuleURIResolver());
         configureXslt(xslt, uri, remaining, parameters);
         return new ProcessorEndpoint(uri, this, xslt);
     }
@@ -43,4 +45,16 @@ public class XQueryComponent extends Res
     protected void configureXslt(XQueryBuilder xQueryBuilder, String uri, String remaining, Map<String, Object> parameters) throws Exception {
         setProperties(xQueryBuilder, parameters);
     }
+
+    public URL resolveModuleResource(String uri) throws Exception {
+        return resolveMandatoryResource(uri).getURL();
+    }
+
+    public ModuleURIResolver getModuleURIResolver() {
+        return moduleURIResolver;
+    }
+
+    public void setModuleURIResolver(ModuleURIResolver moduleURIResolver) {
+        this.moduleURIResolver = moduleURIResolver;
+    }
 }