No it doesn’t work in Java 11
2023-04-24 16:48:16.300 INFO 9804 --- [ main]
org.apache.camel.main.MainSupport : Apache Camel (JBang) 3.20.1 is
starting
2023-04-24 16:48:16.540 INFO 9804 --- [ main]
org.apache.camel.main.MainSupport : Using Java 11.0.17 with PID 9804.
Started by devname in /home/devname/examples/test-kamelet
2023-04-24 16:48:16.561 INFO 9804 --- [ main]
he.camel.cli.connector.LocalCliConnector : Camel CLI enabled (local)
2023-04-24 16:48:18.592 INFO 9804 --- [ main]
e.camel.impl.engine.AbstractCamelContext : Apache Camel 3.20.1 (Hello) is
starting
2023-04-24 16:48:18.789 INFO 9804 --- [ main]
e.camel.impl.engine.AbstractCamelContext : Routes startup (started:1)
2023-04-24 16:48:18.790 INFO 9804 --- [ main]
e.camel.impl.engine.AbstractCamelContext : Started route1 (timer://abc)
2023-04-24 16:48:18.791 INFO 9804 --- [ main]
e.camel.impl.engine.AbstractCamelContext : Apache Camel 3.20.1 (Hello) started
in 535ms (build:191ms init:146ms start:198ms JVM-uptime:3s)
2023-04-24 16:48:19.782 INFO 9804 --- [4 - timer://abc] Hello.java:44
: hello
2023-04-24 16:48:19.790 INFO 9804 --- [4 - timer://abc] Hello.java:65
: 2
2023-04-24 16:48:19.802 ERROR 9804 --- [ad #7 - WireTap]
ocessor.errorhandler.DefaultErrorHandler : Failed delivery for (MessageId:
69EAF88A8212DE0-0000000000000002 on ExchangeId:
69EAF88A8212DE0-0000000000000002). Exhausted after delivery attempt: 1 caught:
org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint:
kamelet://test-sink?cid=2345 due to:
org.apache.camel.component.kamelet.KameletNotFoundException: Kamelet with id
test-sink not found in locations:
classpath:/kamelets,github:apache:camel-kamelets/kamelets,file:test-sink.kamelet.yaml
Message History
---------------------------------------------------------------------------------------------------------------------------------------
Source ID
Processor Elapsed (ms)
Hello.java:43 route1/route1
from[timer://abc?period=10000] -1536551
Hello.java:44 route1/log1 log
1
Hello.java:46 route1/setBody1
setBody[constant{1}] 1
Hello.java:48 route1/setHeader1
setHeader[main_cid] 0
Hello.java:50 route1/wireTap1
wireTap[kamelet:test-sink?cid=${header.main_cid}] 2
Hello.java:52 route1/setHeader2
setHeader[main_cid] 0
Hello.java:53 route1/wireTap2
wireTap[kamelet:test-sink?cid=${header.main_cid}] 0
Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint:
kamelet://test-sink?cid=2345 due to:
org.apache.camel.component.kamelet.KameletNotFoundException: Kamelet with id
test-sink not found in locations:
classpath:/kamelets,github:apache:camel-kamelets/kamelets,file:test-sink.kamelet.yaml
at
org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:1008)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint(AbstractCamelContext.java:899)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.support.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:77)
~[camel-support-3.20.1.jar:3.20.1]
at
org.apache.camel.support.ExchangeHelper.resolveEndpoint(ExchangeHelper.java:115)
~[camel-support-3.20.1.jar:3.20.1]
at
org.apache.camel.support.ExchangeHelper.resolveEndpoint(ExchangeHelper.java:94)
~[camel-support-3.20.1.jar:3.20.1]
at
org.apache.camel.processor.SendDynamicProcessor.resolveEndpoint(SendDynamicProcessor.java:296)
~[camel-core-processor-3.20.1.jar:3.20.1]
at
org.apache.camel.processor.SendDynamicProcessor.process(SendDynamicProcessor.java:157)
~[camel-core-processor-3.20.1.jar:3.20.1]
at
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:477)
~[camel-core-processor-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:181)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:217)
~[camel-core-processor-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:392)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.processor.WireTapProcessor$WireTapTask.run(WireTapProcessor.java:118)
~[camel-core-processor-3.20.1.jar:3.20.1]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
~[?:?]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
~[?:?]
at java.lang.Thread.run(Thread.java:829) ~[?:?]
Caused by: org.apache.camel.RuntimeCamelException:
org.apache.camel.component.kamelet.KameletNotFoundException: Kamelet with id
test-sink not found in locations:
classpath:/kamelets,github:apache:camel-kamelets/kamelets,file:test-sink.kamelet.yaml
at
org.apache.camel.RuntimeCamelException.wrapRuntimeException(RuntimeCamelException.java:66)
~[camel-api-3.20.1.jar:3.20.1]
at
org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.track(KameletComponent.java:450)
~[camel-kamelet-3.20.1.jar:3.20.1]
at
org.apache.camel.component.kamelet.KameletComponent$1.doInit(KameletComponent.java:160)
~[camel-kamelet-3.20.1.jar:3.20.1]
at
org.apache.camel.support.service.BaseService.init(BaseService.java:83)
~[camel-api-3.20.1.jar:3.20.1]
at
org.apache.camel.support.service.ServiceHelper.initService(ServiceHelper.java:84)
~[camel-api-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.internalAddService(AbstractCamelContext.java:1602)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1543)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1538)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1533)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:992)
~[camel-base-engine-3.20.1.jar:3.20.1]
... 17 more
Caused by: org.apache.camel.component.kamelet.KameletNotFoundException: Kamelet
with id test-sink not found in locations:
classpath:/kamelets,github:apache:camel-kamelets/kamelets,file:test-sink.kamelet.yaml
at
org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.createRouteForEndpoint(KameletComponent.java:421)
~[camel-kamelet-3.20.1.jar:3.20.1]
at
org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.track(KameletComponent.java:448)
~[camel-kamelet-3.20.1.jar:3.20.1]
at
org.apache.camel.component.kamelet.KameletComponent$1.doInit(KameletComponent.java:160)
~[camel-kamelet-3.20.1.jar:3.20.1]
at
org.apache.camel.support.service.BaseService.init(BaseService.java:83)
~[camel-api-3.20.1.jar:3.20.1]
at
org.apache.camel.support.service.ServiceHelper.initService(ServiceHelper.java:84)
~[camel-api-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.internalAddService(AbstractCamelContext.java:1602)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1543)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1538)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1533)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:992)
~[camel-base-engine-3.20.1.jar:3.20.1]
... 17 more
Caused by: java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1043)
~[?:?]
at java.util.ArrayList$Itr.next(ArrayList.java:997) ~[?:?]
at
org.apache.camel.model.RouteDefinitionHelper.validateTopLevel(RouteDefinitionHelper.java:447)
~[camel-core-model-3.20.1.jar:3.20.1]
at
org.apache.camel.model.RouteDefinitionHelper.prepareRouteImp(RouteDefinitionHelper.java:398)
~[camel-core-model-3.20.1.jar:3.20.1]
at
org.apache.camel.model.RouteDefinitionHelper.prepareRoute(RouteDefinitionHelper.java:352)
~[camel-core-model-3.20.1.jar:3.20.1]
at
org.apache.camel.model.RoutesDefinition.prepareRoute(RoutesDefinition.java:327)
~[camel-core-model-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.DefaultModel.addRouteFromTemplate(DefaultModel.java:509)
~[camel-core-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.DefaultModel.addRouteFromTemplate(DefaultModel.java:367)
~[camel-core-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.DefaultCamelContext.addRouteFromTemplate(DefaultCamelContext.java:474)
~[camel-core-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.createRouteForEndpoint(KameletComponent.java:409)
~[camel-kamelet-3.20.1.jar:3.20.1]
at
org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.track(KameletComponent.java:448)
~[camel-kamelet-3.20.1.jar:3.20.1]
at
org.apache.camel.component.kamelet.KameletComponent$1.doInit(KameletComponent.java:160)
~[camel-kamelet-3.20.1.jar:3.20.1]
at
org.apache.camel.support.service.BaseService.init(BaseService.java:83)
~[camel-api-3.20.1.jar:3.20.1]
at
org.apache.camel.support.service.ServiceHelper.initService(ServiceHelper.java:84)
~[camel-api-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.internalAddService(AbstractCamelContext.java:1602)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1543)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1538)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1533)
~[camel-base-engine-3.20.1.jar:3.20.1]
at
org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:992)
~[camel-base-engine-3.20.1.jar:3.20.1]
... 17 more
2023-04-24 16:48:21.863 INFO 9804 --- [read #8 - Delay]
test-sink.kamelet.yaml:36 : in kamelet 1234 - 1234 - 1
2023-04-24 16:48:29.777 INFO 9804 --- [4 - timer://abc] Hello.java:44
: hello
2023-04-24 16:48:29.779 INFO 9804 --- [4 - timer://abc] Hello.java:65
: 2
2023-04-24 16:48:31.780 INFO 9804 --- [ead #11 - Delay]
test-sink.kamelet.yaml:36 : in kamelet 1234 - 1234 - 1
2023-04-24 16:48:31.797 INFO 9804 --- [ead #12 - Delay]
test-sink.kamelet.yaml:36 : in kamelet 2345 - 2345 - 1
-----Original Message-----
From: Claudio Miranda <[email protected]>
Sent: Monday, April 24, 2023 4:18 PM
To: [email protected]
Subject: Re: wiretap to kamelet question
EXTERNAL EMAIL - Use caution opening attachments and links.
On Sun, Apr 23, 2023 at 3:46 PM Ivan Tam <[email protected]> wrote:
>
> 2023-04-23 11:33:58.277 INFO 1493992 --- [ main]
> org.apache.camel.main.MainSupport : Apache Camel (JBang) 3.20.1 is
> starting
> 2023-04-23 11:33:58.427 INFO 1493992 --- [ main]
> org.apache.camel.main.MainSupport : Using Java 17.0.6 with PID
> 1493992. Started by devname in /home/devname/examples/test-kamelet
> Caused by: org.apache.camel.FailedToStartRouteException: Failed to start
> route test-sink-1 because of Multiple consumers for the same endpoint is not
> allowed: kamelet://source?routeId=test-sink-1
> at
> org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRouteConsumers(InternalRouteStartupManager.java:376)
> ~[camel-base-engine-3.20.1.jar:3.20.1]
I was able to run your code using Java 11, can you try with it ?
I think the way wireTap was designed, you should have a "direct"
endpoint to wiretap into it, similar to:
from("timer:abc?period=3000")
.setBody().constant("1")
.setHeader("main_cid").constant("1234")
.wireTap("direct:tap")
.setHeader("main_cid").constant("2345")
.wireTap("direct:tap")
.setBody().constant("2")
.log("${body}");
from("direct:tap")
.delay(1000)
.to("kamelet:log-sink?message=${header.main_cid}");
Then you should be able to run with java 17.
--
Claudio Miranda
[email protected]
https://urldefense.com/v3/__http://www.claudius.com.br__;!!AMCWqqRremt4Wx4!XJ27KKl3THRpLgG_OOACGMz6bYQMIDo8b0Bwr_snWrGBobOdvui1zQ6g-jVvT26mY1UI32offHZd0Y-X$
*******************************************************************
IMPORTANT MESSAGE FOR RECIPIENTS IN THE U.S.A.:
This message may constitute an advertisement of a BD group's products or
services or a solicitation of interest in them. If this is such a message and
you would like to opt out of receiving future advertisements or solicitations
from this BD group, please forward this e-mail to [email protected].
[BD.v1.0]
*******************************************************************
This message (which includes any attachments) is intended only for the
designated recipient(s). It may contain confidential or proprietary information
and may be subject to the attorney-client privilege or other confidentiality
protections. If you are not a designated recipient, you may not review, use,
copy or distribute this message. If you received this in error, please notify
the sender by reply e-mail and delete this message. Thank you.
*******************************************************************
Corporate Headquarters Mailing Address: BD (Becton, Dickinson and Company) 1
Becton Drive Franklin Lakes, NJ 07417 U.S.A.