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 2023/08/03 12:52:57 UTC
[camel] 02/04: camel class resolver should be able to scan from root package if you use dot as the package name.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch export
in repository https://gitbox.apache.org/repos/asf/camel.git
commit a76bcab3c546bb401f07cd416e0ded65055f641e
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Aug 3 14:35:40 2023 +0200
camel class resolver should be able to scan from root package if you use dot as the package name.
---
.../java/org/apache/camel/impl/engine/BasePackageScanResolver.java | 2 +-
.../apache/camel/impl/engine/DefaultPackageScanClassResolver.java | 7 ++++++-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/BasePackageScanResolver.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/BasePackageScanResolver.java
index 7d703de948c..30968f2e1f4 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/BasePackageScanResolver.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/BasePackageScanResolver.java
@@ -137,7 +137,7 @@ public abstract class BasePackageScanResolver extends ServiceSupport implements
// 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("/")) {
+ if (!packageName.isEmpty() && !packageName.endsWith("/")) {
packageName = packageName + "/";
}
return loader.getResources(packageName);
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java
index e5027274903..f3f72b0910b 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java
@@ -149,7 +149,12 @@ public class DefaultPackageScanClassResolver extends BasePackageScanResolver
}
protected void find(PackageScanFilter test, String packageName, Set<Class<?>> classes) {
- packageName = packageName.replace('.', '/');
+ // special for root package
+ if (".".equals(packageName)) {
+ packageName = "";
+ } else {
+ packageName = packageName.replace('.', '/');
+ }
Set<ClassLoader> set = getClassLoaders();