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