You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by wt...@apache.org on 2009/08/24 01:10:19 UTC
svn commit: r807030 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java
test/java/org/apache/camel/impl/scan/DefaultPackageScanClassResolverTest.java
Author: wtam
Date: Sun Aug 23 23:10:19 2009
New Revision: 807030
URL: http://svn.apache.org/viewvc?rev=807030&view=rev
Log:
[CAMEL-1917] DefaultPackageScanClassResolver not able to scan package in jar url
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/scan/DefaultPackageScanClassResolverTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java?rev=807030&r1=807029&r2=807030&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java Sun Aug 23 23:10:19 2009
@@ -210,9 +210,12 @@
log.trace("Decoded urlPath: " + urlPath);
}
+ boolean isLocalFileSystem = "file".equals(url.getProtocol());
+
// If it's a file in a directory, trim the stupid file: spec
if (urlPath.startsWith("file:")) {
urlPath = urlPath.substring(5);
+ isLocalFileSystem = true;
}
// osgi bundles should be skipped
@@ -238,8 +241,8 @@
loadImplementationsInDirectory(test, packageName, file, classes);
} else {
InputStream stream;
- if (urlPath.startsWith("http:")) {
- // load resources using http such as java webstart
+ if (!isLocalFileSystem) {
+ // load resources using http (and other protocols) such as java webstart
log.debug("The current jar is accessed via http");
URL urlStream = new URL(urlPath);
URLConnection con = urlStream.openConnection();
@@ -276,6 +279,12 @@
if (log.isTraceEnabled()) {
log.trace("Getting resource URL for package: " + packageName + " with classloader: " + loader);
}
+
+ // If the URL is a jar, the URLClassloader.getResources() seems to require a trailing slash. The
+ // trailing slash is harmless for other URLs
+ if (!packageName.endsWith("/")) {
+ packageName = packageName + "/";
+ }
return loader.getResources(packageName);
}
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/impl/scan/DefaultPackageScanClassResolverTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/impl/scan/DefaultPackageScanClassResolverTest.java?rev=807030&r1=807029&r2=807030&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/impl/scan/DefaultPackageScanClassResolverTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/impl/scan/DefaultPackageScanClassResolverTest.java Sun Aug 23 23:10:19 2009
@@ -123,8 +123,7 @@
validateMatchingSetContains(scanned, ScanTargetTwo.class);
}
- // Disable until CAMEL-1917 is fixed
- public void disabledtestFindByFilterPackageInJarUrl() throws Exception {
+ public void testFindByFilterPackageInJarUrl() throws Exception {
ClassLoader savedClassLoader = null;
try {