Hey everyone,

I have a spring boot app. in which I my routes defined in .yaml files under 
/resources/camel/ folder. 
Spring boot version: 2.1.18.RELEASE
Camel version: 3.9.0

I have the specified following spring boot property in bootstrap.yml:
camel:
  springboot:
    routes-include-pattern: classpath:camel/*.yaml

This works fine and the routes get loaded successfully when I run this locally. 
Log output:
2023-02-09 17:28:42.796 DEBUG 34104 --- [           main] 
o.a.c.s.boot.SpringBootRoutesCollector   : Loading additional RoutesBuilder 
from: classpath:camel/*.yaml
2023-02-09 17:28:42.797 TRACE 34104 --- [           main] 
c.i.e.DefaultPackageScanResourceResolver : Getting resource URL for package: 
camel/ with classloader: 
jdk.internal.loader.ClassLoaders$AppClassLoader@4d7e1886
2023-02-09 17:28:42.797 TRACE 34104 --- [           main] 
c.i.e.DefaultPackageScanResourceResolver : URL from classloader: 
file:/C:/source/connectors-core/target/classes/camel/
2023-02-09 17:28:42.797 TRACE 34104 --- [           main] 
c.i.e.DefaultPackageScanResourceResolver : Decoded urlPath: 
/C:/source/connectors-core/target/classes/camel/ with protocol: file
2023-02-09 17:28:42.797 TRACE 34104 --- [           main] 
c.i.e.DefaultPackageScanResourceResolver : Scanning for resources in: 
/C:/source/connectors-core/target/classes/camel/ matching pattern: *.yaml
2023-02-09 17:28:42.797 TRACE 34104 --- [           main] 
c.i.e.DefaultPackageScanResourceResolver : Loading from directory using file: 
C:\source\connectors-core\target\classes\camel
2023-02-09 17:28:42.798 DEBUG 34104 --- [           main] 
c.i.e.DefaultPackageScanResourceResolver : Found resource: route1.yaml matching 
pattern: *.yaml -> true
2023-02-09 17:28:42.801 TRACE 34104 --- [           main] 
.e.DefaultResourceResolvers$FileResolver : Creating resource: 
C:\source\connectors-core\target\classes\camel\route1.yaml from file system
2023-02-09 17:28:42.801 DEBUG 34104 --- [           main] 
c.i.e.DefaultPackageScanResourceResolver : Found resource: route2.yaml matching 
pattern: *.yaml -> true
2023-02-09 17:28:42.801 TRACE 34104 --- [           main] 
.e.DefaultResourceResolvers$FileResolver : Creating resource: 
C:\source\connectors-core\target\classes\camel\route2.yaml from file system

But, it doesn't load these routes when deploying the app. as a jar file. Log 
output:
Loading additional RoutesBuilder from: classpath:camel/*.yaml
16:46:52.490
Getting resource URL for package: camel/ with classloader: 
org.springframework.boot.loader.LaunchedURLClassLoader@254989ff
16:46:52.490
URL from classloader: 
jar:file:/opt/wf/vds-data/workers/app/c.w.c/connectors-core/1.0.0/worker.jar!/BOOT-INF/classes!/camel/
16:46:52.491
Decoded urlPath: 
file:/opt/wf/vds-data/workers/app/c.w.c/connectors-core/1.0.0/worker.jar!/BOOT-INF/classes!/camel/
 with protocol: jar
16:46:52.491
Scanning for resources in: 
/opt/wf/vds-data/workers/app/c.w.c/connectors-core/1.0.0/worker.jar matching 
pattern: *.yaml
16:46:52.491
Loading from jar using file: 
/opt/wf/vds-data/workers/app/c.w.c/connectors-core/1.0.0/worker.jar
16:46:53.094
No additional RoutesBuilder discovered from: classpath:camel/*.yaml

If I specify the spring boot property to be a single file (route1.yaml), then 
the route is loaded fine. But specifying it as "*.yaml" doesn't work.

Appreciate any pointers on how to resolve this issue.

Thanks,
Harnish Patel

Reply via email to