[
https://issues.apache.org/jira/browse/CAMEL-18603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17615896#comment-17615896
]
Grzegorz Grzybek edited comment on CAMEL-18603 at 10/12/22 4:52 AM:
--------------------------------------------------------------------
The problem is that there are two classloaders involved:
* one is the app classloader containing JARs being part of {{-classpath}}
prepared by JBang itself - this involves all transitive dependencies of the
{{DEPS}} specified in {{dsl/camel-jbang/camel-jbang-main/dist/CamelJBang.java}}
* the other one is
{{org.apache.camel.main.download.DependencyDownloaderClassLoader}} prepared for
the camel context created for {{jbang run camel@camel run}} command.
camel-kamelet-utils was not seeing the amazonsdk jars, because of two different
classloaders.
When I removed {{org.apache.camel.kamelets:camel-kamelets-utils}} from
{{main.CamelJBang}} and added it to the route itself:
{code:yaml}
# camel-k: dependency=mvn:software.amazon.awssdk:dynamodb:2.17.290
# camel-k: dependency=mvn:org.apache.camel.kamelets:camel-kamelets-utils:0.9.0
- route:
from:
uri: "kamelet:kafka-not-secured-source"
...
{code}
everything worked fine.
was (Author: gzres):
The problem is that there are two classloaders involved:
* one is the app classloader containing JARs being part of {{-classpath}}
prepared by JBang itself - this involves all transitive dependencies of the
{{DEPS}} specified in {{dsl/camel-jbang/camel-jbang-main/dist/CamelJBang.java}}
* the other one is
{{org.apache.camel.main.download.DependencyDownloaderClassLoader}} prepared for
the camel context created for {{jbang camel run}} command.
camel-kamelet-utils was not seeing the amazonsdk jars, because of two different
classloaders.
When I removed {{org.apache.camel.kamelets:camel-kamelets-utils}} from
{{main.CamelJBang}} and added it to the route itself:
{code:yaml}
# camel-k: dependency=mvn:software.amazon.awssdk:dynamodb:2.17.290
# camel-k: dependency=mvn:org.apache.camel.kamelets:camel-kamelets-utils:0.9.0
- route:
from:
uri: "kamelet:kafka-not-secured-source"
...
{code}
everything worked fine.
> Camel-Jbang: When using aws-ddb-sink Kamelet dependency are not resolved
> ------------------------------------------------------------------------
>
> Key: CAMEL-18603
> URL: https://issues.apache.org/jira/browse/CAMEL-18603
> Project: Camel
> Issue Type: Bug
> Components: camel-jbang
> Affects Versions: 3.19.0
> Reporter: Andrea Cosentino
> Priority: Major
> Fix For: 3.20.0
>
>
> If you have a route like:
> {code:java}
> # camel-k: dependency=mvn:software.amazon.awssdk:dynamodb:2.17.290
> - route:
> from:
> uri: "kamelet:kafka-not-secured-source"
> parameters:
> bootstrapServers: localhost:9092
> topic: ddb-topic
> steps:
> - to:
> uri: "kamelet:aws-ddb-sink"
> parameters:
> accessKey: access
> secretKey: sec
> region: reg
> table: "test"
> {code}
> Then camel-jbang will fail with
> {code:java}
> Caused by: java.lang.ClassNotFoundException:
> software.amazon.awssdk.services.dynamodb.model.AttributeValue
> at
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
> at
> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
> ... 44 more
> {code}
> the command is: jbang run --fresh -Dcamel.jbang.version=3.19.0
> camel@apache/camel run kafka-source-ddb.yaml
> This will fail with 3.20.0-SNAPSHOT too and by using --deps from cli
--
This message was sent by Atlassian Jira
(v8.20.10#820010)