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);