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/10/02 15:22:41 UTC

[camel] branch main updated: Fix DefaultComponentNameResolver on Windows (#11626)

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 9486cc4ac46 Fix DefaultComponentNameResolver on Windows (#11626)
9486cc4ac46 is described below

commit 9486cc4ac463eb65d7e8223716482226e2f06e95
Author: Aurélien Pupier <ap...@redhat.com>
AuthorDate: Mon Oct 2 17:22:33 2023 +0200

    Fix DefaultComponentNameResolver on Windows (#11626)
    
    When some Components are loaded in development mode, the path is a file
    system one. On Windows, the separator is a backslash.
    
    Signed-off-by: Aurélien Pupier <ap...@redhat.com>
---
 .../org/apache/camel/impl/engine/DefaultComponentNameResolver.java     | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultComponentNameResolver.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultComponentNameResolver.java
index d0d8deaee67..f6cc0a3cefb 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultComponentNameResolver.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultComponentNameResolver.java
@@ -38,7 +38,8 @@ public class DefaultComponentNameResolver implements ComponentNameResolver {
                     .stream()
                     .map(Resource::getLocation)
                     // remove leading path to only keep name
-                    .map(l -> l.substring(l.lastIndexOf('/') + 1))
+                    // searching for last separator: Jar path separator (/), Unix path (/) and Windows path separator (\)
+                    .map(l -> l.substring(Math.max(l.lastIndexOf('/'), l.lastIndexOf('\\')) + 1))
                     .collect(Collectors.toCollection(TreeSet::new));
         } catch (Exception e) {
             throw new RuntimeCamelException(e);