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)