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