[ 
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)

Reply via email to