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 2013/07/24 15:46:26 UTC

[2/5] git commit: CAMEL-6572: Fixed validator component to load reosurces from classpath with relative paths in OSGi.

CAMEL-6572: Fixed validator component to load reosurces from classpath with relative paths in OSGi.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/353abe0e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/353abe0e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/353abe0e

Branch: refs/heads/master
Commit: 353abe0ec7dde5491c15c3bc46e9da0daf546222
Parents: 8b298b4
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Jul 24 15:43:36 2013 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Jul 24 15:43:36 2013 +0200

----------------------------------------------------------------------
 .../java/org/apache/camel/util/ResourceHelper.java | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/353abe0e/camel-core/src/main/java/org/apache/camel/util/ResourceHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/ResourceHelper.java b/camel-core/src/main/java/org/apache/camel/util/ResourceHelper.java
index a7717af..b301abe 100644
--- a/camel-core/src/main/java/org/apache/camel/util/ResourceHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/ResourceHelper.java
@@ -101,7 +101,8 @@ public final class ResourceHelper {
         }
 
         // load from classpath by default
-        InputStream is = classResolver.loadResourceAsStream(uri);
+        String resolvedName = resolveUriPath(uri);
+        InputStream is = classResolver.loadResourceAsStream(resolvedName);
         if (is == null) {
             throw new FileNotFoundException("Cannot find resource in classpath for URI: " + uri);
         } else {
@@ -175,4 +176,18 @@ public final class ResourceHelper {
             return uri;
         }
     }
+
+    /**
+     * Helper operation used to remove relative path notation from
+     * resources.  Most critical for resources on the Classpath
+     * as resource loaders will not resolve the relative paths correctly.
+     *
+     * @param name the name of the resource to load
+     * @return the modified or unmodified string if there were no changes
+     */
+    private static String resolveUriPath(String name) {
+        // compact the path and use / as separator as that's used for loading resources on the classpath
+        return FileUtil.compactPath(name, '/');
+    }
+
 }