Repository: camel
Updated Branches:
  refs/heads/master 0a60bfdf1 -> f8b27d919


CAMEL-7121: OsgiClassLoader should compact path like the default classloader 
does. Upgraded to karaf 2.3.5 and latest aws.


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

Branch: refs/heads/master
Commit: cbcf4c0a4d6ac10f82aa2a8cac65b7136adb46ce
Parents: 0a60bfd
Author: Claus Ibsen <davscl...@apache.org>
Authored: Tue Apr 29 10:32:48 2014 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Tue Apr 29 10:46:06 2014 +0200

----------------------------------------------------------------------
 .../camel/core/osgi/OsgiClassResolver.java      | 28 +++++++++++++++++---
 parent/pom.xml                                  |  6 ++---
 .../camel/itest/karaf/AbstractFeatureTest.java  |  2 +-
 .../itest/osgi/OSGiIntegrationTestSupport.java  |  2 +-
 4 files changed, 29 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/cbcf4c0a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiClassResolver.java
----------------------------------------------------------------------
diff --git 
a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiClassResolver.java
 
b/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiClassResolver.java
index 66c4008..297e1f5 100644
--- 
a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiClassResolver.java
+++ 
b/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiClassResolver.java
@@ -65,7 +65,9 @@ public class OsgiClassResolver extends DefaultClassResolver {
     @Override
     public InputStream loadResourceAsStream(String uri) {
         ObjectHelper.notEmpty(uri, "uri");
-        URL url = loadResourceAsURL(uri);
+
+        String resolvedName = resolveUriPath(uri);
+        URL url = loadResourceAsURL(resolvedName);
         InputStream answer = null;
         if (url != null) {
             try {
@@ -80,14 +82,16 @@ public class OsgiClassResolver extends DefaultClassResolver 
{
     @Override
     public URL loadResourceAsURL(String uri) {
         ObjectHelper.notEmpty(uri, "uri");
-        return bundleContext.getBundle().getResource(uri);
+        String resolvedName = resolveUriPath(uri);
+        return bundleContext.getBundle().getResource(resolvedName);
     }
 
     @Override
     public Enumeration<URL> loadResourcesAsURL(String uri) {
         ObjectHelper.notEmpty(uri, "uri");
         try {
-            return bundleContext.getBundle().getResources(uri);
+            String resolvedName = resolveUriPath(uri);
+            return bundleContext.getBundle().getResources(resolvedName);
         } catch (IOException e) {
             throw new RuntimeException("Cannot load resource: " + uri, e);
         }
@@ -99,7 +103,9 @@ public class OsgiClassResolver extends DefaultClassResolver {
         Vector<URL> answer = new Vector<URL>();
 
         try {
-            Enumeration<URL> e = bundleContext.getBundle().getResources(uri);
+            String resolvedName = resolveUriPath(uri);
+
+            Enumeration<URL> e = 
bundleContext.getBundle().getResources(resolvedName);
             while (e != null && e.hasMoreElements()) {
                 answer.add(e.nextElement());
             }
@@ -137,5 +143,19 @@ public class OsgiClassResolver extends 
DefaultClassResolver {
         }
         return answer;
     }
+
+    /**
+     * 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, '/');
+    }
+
     
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/cbcf4c0a/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index c2c31e9..ac4fc00 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -59,8 +59,8 @@
     <avalon-version>4.3.1</avalon-version>
     <avro-version>1.7.6</avro-version>
     <avro-bundle-version>1.7.6_1</avro-bundle-version>
-    <aws-java-sdk-bundle-version>1.7.1_1</aws-java-sdk-bundle-version>
-    <aws-java-sdk-version>1.7.1</aws-java-sdk-version>
+    <aws-java-sdk-bundle-version>1.7.5_1</aws-java-sdk-bundle-version>
+    <aws-java-sdk-version>1.7.5</aws-java-sdk-version>
     <axiom-version>1.2.14</axiom-version>
     <backport-util-concurrent-version>3.1</backport-util-concurrent-version>
     <bcel-bundle-version>5.2_4</bcel-bundle-version>
@@ -258,7 +258,7 @@
     <jython-version>2.5.3</jython-version>
     <kafka-version>0.8.1</kafka-version>
     <kafka-bundle-version>0.8.1_1</kafka-bundle-version>
-    <karaf-version>2.3.3</karaf-version>
+    <karaf-version>2.3.5</karaf-version>
     <kie-version>6.0.0.Final</kie-version>
     <krati-version>0.4.9</krati-version>
     <kxml2-bundle-version>2.3.0_2</kxml2-bundle-version>

http://git-wip-us.apache.org/repos/asf/camel/blob/cbcf4c0a/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java
 
b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java
index f0de40a..adae8ee 100644
--- 
a/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java
+++ 
b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/AbstractFeatureTest.java
@@ -159,7 +159,7 @@ public abstract class AbstractFeatureTest {
             new Option[]{
                 karafDistributionConfiguration().frameworkUrl(
                     
maven().groupId("org.apache.karaf").artifactId("apache-karaf").type("tar.gz").versionAsInProject())
-                    .karafVersion("2.3.3").name("Apache Karaf")
+                    .karafVersion("2.3.5").name("Apache Karaf")
                     .unpackDirectory(new File("target/paxexam/unpack/")),
                 
                 KarafDistributionOption.keepRuntimeFolder(),

http://git-wip-us.apache.org/repos/asf/camel/blob/cbcf4c0a/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/OSGiIntegrationTestSupport.java
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/OSGiIntegrationTestSupport.java
 
b/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/OSGiIntegrationTestSupport.java
index 088f10c..3a80643 100644
--- 
a/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/OSGiIntegrationTestSupport.java
+++ 
b/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/OSGiIntegrationTestSupport.java
@@ -132,7 +132,7 @@ public class OSGiIntegrationTestSupport extends 
CamelTestSupport {
             new Option[] {
                       karafDistributionConfiguration()
                           
.frameworkUrl(maven().groupId("org.apache.karaf").artifactId("apache-karaf").type("tar.gz").versionAsInProject())
-                          .karafVersion("2.3.3")
+                          .karafVersion("2.3.5")
                           .name("Apache Karaf")
                           .useDeployFolder(false).unpackDirectory(new 
File("target/paxexam/unpack/")),
 

Reply via email to