Christoph Deppisch created CAMEL-23939:
------------------------------------------

             Summary: Dependencies defined on Kamelet are ignored in Camel CLI
                 Key: CAMEL-23939
                 URL: https://issues.apache.org/jira/browse/CAMEL-23939
             Project: Camel
          Issue Type: Bug
          Components: camel-kamelet, camel-kamelet-main
            Reporter: Christoph Deppisch


The 
[resolve-pojo-schema-action|https://github.com/apache/camel-kamelets/blob/main/kamelets/resolve-pojo-schema-action.kamelet.yaml]
 Kamelet defines the following dependencies:
{code:java}
dependencies:
    - "camel:kamelet"
    - "camel:core"
    - "camel:jackson-avro"
    - "camel:jackson-protobuf" {code}
A route or Pipe that uses this Kamelet should automatically resolve these 
dependencies when it is run via Camel CLI.

Apparently the runtime is missing both _*camel:jackson-avro*_ and 
_*camel:jackson-protobuf*_ for some reason.

I also tried to explicitly add the dependency via Camel CLI command:
{noformat}
camel run --dependency camel-jackson-avro my-route.yaml{noformat}
But still the Camel runtime complains about a missing class from that component:
{code:java}
Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
org.apache.camel.CamelExecutionException: Exception occurred during execution 
on the exchange: Exchange[7C4364CEA8460AE-0000000000000003]
    at 
org.apache.camel.CamelExecutionException.wrapCamelExecutionException(CamelExecutionException.java:60)
    at 
org.apache.camel.support.AbstractExchange.setException(AbstractExchange.java:593)
    at 
org.apache.camel.support.DefaultExchange.setException(DefaultExchange.java:32)
    at 
org.apache.camel.support.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:70)
    at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.handleFirst(RedeliveryErrorHandler.java:445)
    at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:421)
    at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:202)
    at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:192)
    at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:169)
    at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:143)
    at 
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:165)
    at 
org.apache.camel.impl.engine.CamelInternalProcessor.processNonTransacted(CamelInternalProcessor.java:385)
    at 
org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:361)
    at 
org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:293)
    at 
org.apache.camel.component.timer.TimerConsumer$1.doRun(TimerConsumer.java:164)
    at 
org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:136)
    at java.base/java.util.TimerThread.mainLoop(Timer.java:572)
    at java.base/java.util.TimerThread.run(Timer.java:522)
Caused by: java.lang.NoClassDefFoundError: 
org/apache/camel/component/jackson/avro/transform/AvroSchemaResolver
    at 
org.apache.camel.component.kamelet.utils.format.schema.DelegatingSchemaResolver.fromMimeType(DelegatingSchemaResolver.java:75)
    at 
org.apache.camel.component.kamelet.utils.format.schema.DelegatingSchemaResolver.process(DelegatingSchemaResolver.java:55)
    at 
org.apache.camel.support.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:67)
    ... 15 more
Caused by: java.lang.ClassNotFoundException: 
org.apache.camel.component.jackson.avro.transform.AvroSchemaResolver
    at 
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)
    ... 18 more {code}
The only way to work around this is to add a _*jbang.properties*_ file with the 
additional runtime dependency as
{noformat}
run.deps=org.apache.camel:camel-jackson-avro:LATEST{noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to