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 <claus.ib...@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();
 

Reply via email to