[ 
https://issues.apache.org/jira/browse/CAMEL-14188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17000106#comment-17000106
 ] 

Omar Al-Safi edited comment on CAMEL-14188 at 12/19/19 2:30 PM:
----------------------------------------------------------------

In order to upgrade debezium to 1.0, Kafka in Camel will need to be upgraded to 
2.4.0 as well. The reason is, Kafka connect 2.4.0 uses new attributes the 
configDef which is found kafka-client common package. What we have is 2.3.1, 
hence the tests fail with this error:
{code}
java.lang.NoClassDefFoundError: 
org/apache/kafka/common/config/ConfigDef$CaseInsensitiveValidString

        at 
org.apache.kafka.connect.json.JsonConverterConfig.<clinit>(JsonConverterConfig.java:64)
        at 
org.apache.kafka.connect.json.JsonConverter.configure(JsonConverter.java:298)
        at 
org.apache.kafka.connect.json.JsonConverter.configure(JsonConverter.java:311)
        at io.debezium.embedded.EmbeddedEngine.<init>(EmbeddedEngine.java:628)
        at io.debezium.embedded.EmbeddedEngine.<init>(EmbeddedEngine.java:69)
        at io.debezium.embedded.EmbeddedEngine$2.build(EmbeddedEngine.java:581)
        at 
org.apache.camel.component.debezium.DebeziumConsumer.createDbzEngine(DebeziumConsumer.java:69)
        at 
org.apache.camel.component.debezium.DebeziumConsumer.doStart(DebeziumConsumer.java:50)
        at 
org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:117)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.startService(AbstractCamelContext.java:2892)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRouteConsumers(AbstractCamelContext.java:3219)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doStartRouteConsumers(AbstractCamelContext.java:3153)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.safelyStartRouteServices(AbstractCamelContext.java:3063)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRoutes(AbstractCamelContext.java:2828)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2632)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.lambda$doStart$2(AbstractCamelContext.java:2437)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doWithDefinedClassLoader(AbstractCamelContext.java:2454)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2435)
        at 
org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:117)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2344)
        at 
org.apache.camel.test.junit4.CamelTestSupport.startCamelContext(CamelTestSupport.java:820)
        at 
org.apache.camel.test.junit4.CamelTestSupport.doSetUp(CamelTestSupport.java:460)
        at 
org.apache.camel.test.junit4.CamelTestSupport.setUp(CamelTestSupport.java:336)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
        at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
        at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
        at 
com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
        at 
com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
        at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)
Caused by: java.lang.ClassNotFoundException: 
org.apache.kafka.common.config.ConfigDef$CaseInsensitiveValidString
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 52 more
{code}
And this {{CaseInsensitiveValidString}} only exists in kafka-clients 2.4.0. 


was (Author: omarsmak):
In order to upgrade debezium to 1.0, Kafka in Camel will need to be upgraded to 
2.4.0 as well. The reason is, Kafka connect 2.4.0 uses new attributes the 
configDef which is found kafka-client common package. What we have is 2.3.1, 
hence the tests fail with this error:
{code}
java.lang.NoClassDefFoundError: 
org/apache/kafka/common/config/ConfigDef$CaseInsensitiveValidString

        at 
org.apache.kafka.connect.json.JsonConverterConfig.<clinit>(JsonConverterConfig.java:64)
        at 
org.apache.kafka.connect.json.JsonConverter.configure(JsonConverter.java:298)
        at 
org.apache.kafka.connect.json.JsonConverter.configure(JsonConverter.java:311)
        at io.debezium.embedded.EmbeddedEngine.<init>(EmbeddedEngine.java:628)
        at io.debezium.embedded.EmbeddedEngine.<init>(EmbeddedEngine.java:69)
        at io.debezium.embedded.EmbeddedEngine$2.build(EmbeddedEngine.java:581)
        at 
org.apache.camel.component.debezium.DebeziumConsumer.createDbzEngine(DebeziumConsumer.java:69)
        at 
org.apache.camel.component.debezium.DebeziumConsumer.doStart(DebeziumConsumer.java:50)
        at 
org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:117)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.startService(AbstractCamelContext.java:2892)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRouteConsumers(AbstractCamelContext.java:3219)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doStartRouteConsumers(AbstractCamelContext.java:3153)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.safelyStartRouteServices(AbstractCamelContext.java:3063)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRoutes(AbstractCamelContext.java:2828)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2632)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.lambda$doStart$2(AbstractCamelContext.java:2437)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doWithDefinedClassLoader(AbstractCamelContext.java:2454)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2435)
        at 
org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:117)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2344)
        at 
org.apache.camel.test.junit4.CamelTestSupport.startCamelContext(CamelTestSupport.java:820)
        at 
org.apache.camel.test.junit4.CamelTestSupport.doSetUp(CamelTestSupport.java:460)
        at 
org.apache.camel.test.junit4.CamelTestSupport.setUp(CamelTestSupport.java:336)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
        at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
        at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
        at 
com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
        at 
com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
        at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)
Caused by: java.lang.ClassNotFoundException: 
org.apache.kafka.common.config.ConfigDef$CaseInsensitiveValidString
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 52 more
{code}
And this {{CaseInsensitiveValidString}} it only exists in kafka-clients 2.4.0. 

> Upgrade debezium to 1.0 Final
> -----------------------------
>
>                 Key: CAMEL-14188
>                 URL: https://issues.apache.org/jira/browse/CAMEL-14188
>             Project: Camel
>          Issue Type: Task
>          Components: camel-debezium
>            Reporter: Claus Ibsen
>            Assignee: Omar Al-Safi
>            Priority: Major
>             Fix For: 3.1.0
>
>
> Lets upgrade to latest release as the current 0.10 release is a very early 
> release and its not a 1.0 GA production ready version.
> So IMHO its better to follow the 1.0.x release train and be closer to 1.0 GA 
> when it hit the street later



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to