You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2010/09/21 11:09:11 UTC

svn commit: r999281 - /camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java

Author: ningjiang
Date: Tue Sep 21 09:09:11 2010
New Revision: 999281

URL: http://svn.apache.org/viewvc?rev=999281&view=rev
Log:
CAMEL-2543 Configurable URL schemes to be accepted by DefaultPackageScanClassResolver

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.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=999281&r1=999280&r2=999281&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 Tue Sep 21 09:09:11 2010
@@ -53,6 +53,7 @@ public class DefaultPackageScanClassReso
     protected final transient Log log = LogFactory.getLog(getClass());
     private Set<ClassLoader> classLoaders;
     private Set<PackageScanFilter> scanFilters;
+    private String[] acceptableSchemes = {};
 
     public void addClassLoader(ClassLoader classLoader) {
         try {
@@ -75,6 +76,23 @@ public class DefaultPackageScanClassReso
             scanFilters.remove(filter);
         }
     }
+    
+    public void setAcceptableSchemes(String schemes) {
+        if (schemes != null) {
+            acceptableSchemes = schemes.split(";");
+        }
+    }
+    
+    public boolean isAcceptableScheme(String urlPath) {
+        if (urlPath != null) {
+            for (String scheme : acceptableSchemes) {
+                if (urlPath.startsWith(scheme)) {
+                    return true;
+                }
+            }
+        } 
+        return false;
+    }
 
     public Set<ClassLoader> getClassLoaders() {
         if (classLoaders == null) {
@@ -266,8 +284,9 @@ public class DefaultPackageScanClassReso
                 } else {
                     InputStream stream;
                     if (urlPath.startsWith("http:") || urlPath.startsWith("https:")
-                            || urlPath.startsWith("sonicfs:")) {
-                        // load resources using http/https
+                            || urlPath.startsWith("sonicfs:")
+                            || isAcceptableScheme(urlPath)) {                        
+                        // load resources using http/https, sonicfs and other acceptable scheme
                         // sonic ESB requires to be loaded using a regular URLConnection
                         if (log.isTraceEnabled()) {
                             log.trace("Loading from jar using url: " + urlPath);