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