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 2012/04/20 17:01:15 UTC

svn commit: r1328392 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/builder/xml/ test/java/org/apache/camel/component/xslt/ test/resources/org/apache/camel/component/xslt/

Author: davsclaus
Date: Fri Apr 20 15:01:15 2012
New Revision: 1328392

URL: http://svn.apache.org/viewvc?rev=1328392&view=rev
Log:
CAMEL-5195: Fixed issue with xsl:include should use / as class path separator.

Added:
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathDotInDirectoryTest.java
      - copied, changed from r1328276, camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathTest.java
    camel/trunk/camel-core/src/test/resources/org/apache/camel/component/xslt/staff_include_classpath2.xsl
      - copied, changed from r1328276, camel/trunk/camel-core/src/test/resources/org/apache/camel/component/xslt/staff_include_classpath.xsl
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/XsltUriResolver.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/XsltUriResolver.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/XsltUriResolver.java?rev=1328392&r1=1328391&r2=1328392&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/XsltUriResolver.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/XsltUriResolver.java Fri Apr 20 15:01:15 2012
@@ -76,6 +76,9 @@ public class XsltUriResolver implements 
 
             String name = ObjectHelper.after(href, ":");
             File file = new File(name);
+            if (!file.exists()) {
+                throw new TransformerException("Cannot find " + name + " in the file system");
+            }
             return new StreamSource(file);
         }
 
@@ -87,7 +90,7 @@ public class XsltUriResolver implements 
             return resolve(path, base);
         } else {
             // default to use classpath: location
-            path = "classpath:" + path + File.separator + href;
+            path = "classpath:" + path + "/" + href;
             return resolve(path, base);
         }
     }

Copied: camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathDotInDirectoryTest.java (from r1328276, camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathDotInDirectoryTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathDotInDirectoryTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathTest.java&r1=1328276&r2=1328392&rev=1328392&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathDotInDirectoryTest.java Fri Apr 20 15:01:15 2012
@@ -16,14 +16,32 @@
  */
 package org.apache.camel.component.xslt;
 
+import java.io.File;
+
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.util.FileUtil;
 
 /**
  *
  */
-public class XsltIncludeClasspathTest extends ContextTestSupport {
+public class XsltIncludeClasspathDotInDirectoryTest extends ContextTestSupport {
+
+    @Override
+    protected void setUp() throws Exception {
+        deleteDirectory("target/classes/com.mycompany");
+        createDirectory("target/classes/com.mycompany");
+
+        // copy templates to this directory
+        FileUtil.copyFile(new File("src/test/resources/org/apache/camel/component/xslt/staff_include_classpath2.xsl"),
+                new File("target/classes/com.mycompany/staff_include_classpath2.xsl"));
+
+        FileUtil.copyFile(new File("src/test/resources/org/apache/camel/component/xslt/staff_template.xsl"),
+                new File("target/classes/com.mycompany/staff_template.xsl"));
+
+        super.setUp();
+    }
 
     public void testXsltIncludeClasspath() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
@@ -40,7 +58,7 @@ public class XsltIncludeClasspathTest ex
             @Override
             public void configure() throws Exception {
                 from("file:src/test/data/?fileName=staff.xml&noop=true")
-                    .to("xslt:org/apache/camel/component/xslt/staff_include_classpath.xsl")
+                    .to("xslt:com.mycompany/staff_include_classpath2.xsl")
                     .to("log:foo")
                     .to("mock:result");
             }

Copied: camel/trunk/camel-core/src/test/resources/org/apache/camel/component/xslt/staff_include_classpath2.xsl (from r1328276, camel/trunk/camel-core/src/test/resources/org/apache/camel/component/xslt/staff_include_classpath.xsl)
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/resources/org/apache/camel/component/xslt/staff_include_classpath2.xsl?p2=camel/trunk/camel-core/src/test/resources/org/apache/camel/component/xslt/staff_include_classpath2.xsl&p1=camel/trunk/camel-core/src/test/resources/org/apache/camel/component/xslt/staff_include_classpath.xsl&r1=1328276&r2=1328392&rev=1328392&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/resources/org/apache/camel/component/xslt/staff_include_classpath.xsl (original)
+++ camel/trunk/camel-core/src/test/resources/org/apache/camel/component/xslt/staff_include_classpath2.xsl Fri Apr 20 15:01:15 2012
@@ -17,7 +17,8 @@
 -->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 
-    <xsl:include href="classpath:org/apache/camel/component/xslt/staff_template.xsl"/>
+    <!-- test with a directory from classpath that has dot in the name -->
+    <xsl:include href="staff_template.xsl"/>
 
     <xsl:template match="staff/programmer">
         <html>