You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by "erars+jonathan.cook" <jo...@erars.plus.com> on 2019/05/29 13:59:57 UTC
Using dynamic expression as claimCheck key
Hi,
I'm trying to use the claimCheck but pass a dynamic key which would be
something unique like the filename in my input message or the
breadcrumbId. But it seems this processor doesn't support this?
e.g)
.claimCheck(ClaimCheckOperation.Set, "${headers.CamelFileName}", "body")
Is there a way to use the simple method e.g)
simple("${headers.CamelFileName}") but evaluate the expression at run
time?
Later I see another issue unrelated with this claimcheck definition, I
always see this error which is unrelated to my route definition:
2019-05-29 15:38:57,698 3899 [main] WARN
o.a.c.m.ManagedManagementStrategy - Cannot check whether the managed
object is registered. This exception will be ignored.$
java.lang.ClassCastException:
org.apache.camel.model.ClaimCheckDefinition cannot be cast to
org.apache.camel.model.ExpressionNode$
^Iat
org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:40)$
^Iat
org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:29)$
^Iat
org.apache.camel.management.ManagedManagementStrategy.getManagedObjectName(ManagedManagementStrategy.java:122)$
^Iat
org.apache.camel.management.ManagedManagementStrategy.getObjectName(ManagedManagementStrategy.java:198)$
^Iat
org.apache.camel.management.ManagedManagementStrategy.isManaged(ManagedManagementStrategy.java:174)$
^Iat
org.apache.camel.management.DefaultManagementLifecycleStrategy.onServiceAdd(DefaultManagementLifecycleStrategy.java:437)$
^Iat
org.apache.camel.impl.RouteService.startChildService(RouteService.java:368)$
^Iat org.apache.camel.impl.RouteService.doWarmUp(RouteService.java:196)$
^Iat org.apache.camel.impl.RouteService.warmUp(RouteService.java:145)$
^Iat
org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3947)$
^Iat
org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3854)$
^Iat
org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3640)$
^Iat
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3492)$
^Iat
org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:209)$
^Iat
org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3251)$
^Iat
org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3247)$
^Iat
org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3270)$
^Iat
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3247)$
^Iat
org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)$
^Iat
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3163)$
^Iat
org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:133)$
^Iat
org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:174)$
^Iat
org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)$
^Iat
org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)$
^Iat
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)$
^Iat
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)$
^Iat
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)$
^Iat
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)$
^Iat
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)$
^Iat
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)$
^Iat
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)$
^Iat
org.springframework.boot.SpringApplication.run(SpringApplication.java:303)$
^Iat
org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)$
^Iat
org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)$
^Iat
esac.archive.soar.ingestlite.IngestApplication.main(IngestApplication.java:23)$
2019-05-29 15:38:57,698 3899 [main] WARN
o.a.c.m.DefaultManagementLifecycleStrategy - Could not register service:
ClaimCheck[GetAndRemove] as Service MBean.$
I had a look in ManagedClaimCheck and it always casts the definition to
an ExpressionNode
Thanks for your help.
Jonathan
Re: Using dynamic expression as claimCheck key
Posted by Claus Ibsen <cl...@gmail.com>.
Hi
Ah yeah that is correct. So you can help by creating a PR with the
commit I did on master to implement this for the camel-2.x branch.
Mind that master and camel-2.x branches has drifted due the big work
on Camel 3. So we dont have much time ourselves to maintain 2.x. So
community have to step up
On Thu, May 30, 2019 at 2:43 PM erars+jonathan.cook
<jo...@erars.plus.com> wrote:
>
> Sorry I missed the first reply.
>
> I am using camel 2.0.24 but it doesn't work what you are suggesting e.g)
> .setHeader("claimCheckKey", simple("${headers.CamelFileName}"))
> .claimCheck(ClaimCheckOperation.Set, "claimCheckKey", "body")
>
> I've debugged the DefaultClaimCheckRepository and the literal string is
> used claimCheckKey as the key to the map.
>
> Thanks.
>
> On 2019-05-30 11:22, erars+jonathan.cook wrote:
> > Many thanks Claus. I saw you already fixed it ;-) I was going to have a
> > go..
> >
> > Do you have any suggestion for a quick work around? Could I override
> > the claim check processor in my own processor or better to do
> > something like in the ClaimCheckTest using beans..
> > https://github.com/apache/camel/blob/41145b71c04936fa006e3e8185e7f8f2ab674308/core/camel-core/src/test/java/org/apache/camel/processor/ClaimCheckTest.java
> >
> > Thanks
> > Jonathan
> >
> > On 2019-05-29 23:10, erars+jonathan.cook wrote:
> >> I got rid of the ManagedClaimCheck exception by upgrading my version
> >> of camel from 2.21.0 to 2.24.0.
> >>
> >> Just some help with dynamic key now please?
> >>
> >> Thanks
> >>
> >> On 2019-05-29 15:59, erars+jonathan.cook wrote:
> >>> Hi,
> >>>
> >>> I'm trying to use the claimCheck but pass a dynamic key which would
> >>> be
> >>> something unique like the filename in my input message or the
> >>> breadcrumbId. But it seems this processor doesn't support this?
> >>>
> >>> e.g)
> >>> .claimCheck(ClaimCheckOperation.Set, "${headers.CamelFileName}",
> >>> "body")
> >>>
> >>> Is there a way to use the simple method e.g)
> >>> simple("${headers.CamelFileName}") but evaluate the expression at run
> >>> time?
> >>>
> >>> Later I see another issue unrelated with this claimcheck definition,
> >>> I
> >>> always see this error which is unrelated to my route definition:
> >>> 2019-05-29 15:38:57,698 3899 [main] WARN
> >>> o.a.c.m.ManagedManagementStrategy - Cannot check whether the managed
> >>> object is registered. This exception will be ignored.$
> >>> java.lang.ClassCastException:
> >>> org.apache.camel.model.ClaimCheckDefinition cannot be cast to
> >>> org.apache.camel.model.ExpressionNode$
> >>> ^Iat
> >>> org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:40)$
> >>> ^Iat
> >>> org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:29)$
> >>> ^Iat
> >>> org.apache.camel.management.ManagedManagementStrategy.getManagedObjectName(ManagedManagementStrategy.java:122)$
> >>> ^Iat
> >>> org.apache.camel.management.ManagedManagementStrategy.getObjectName(ManagedManagementStrategy.java:198)$
> >>> ^Iat
> >>> org.apache.camel.management.ManagedManagementStrategy.isManaged(ManagedManagementStrategy.java:174)$
> >>> ^Iat
> >>> org.apache.camel.management.DefaultManagementLifecycleStrategy.onServiceAdd(DefaultManagementLifecycleStrategy.java:437)$
> >>> ^Iat
> >>> org.apache.camel.impl.RouteService.startChildService(RouteService.java:368)$
> >>> ^Iat
> >>> org.apache.camel.impl.RouteService.doWarmUp(RouteService.java:196)$
> >>> ^Iat
> >>> org.apache.camel.impl.RouteService.warmUp(RouteService.java:145)$
> >>> ^Iat
> >>> org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3947)$
> >>> ^Iat
> >>> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3854)$
> >>> ^Iat
> >>> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3640)$
> >>> ^Iat
> >>> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3492)$
> >>> ^Iat
> >>> org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:209)$
> >>> ^Iat
> >>> org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3251)$
> >>> ^Iat
> >>> org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3247)$
> >>> ^Iat
> >>> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3270)$
> >>> ^Iat
> >>> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3247)$
> >>> ^Iat
> >>> org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)$
> >>> ^Iat
> >>> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3163)$
> >>> ^Iat
> >>> org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:133)$
> >>> ^Iat
> >>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:174)$
> >>> ^Iat
> >>> org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)$
> >>> ^Iat
> >>> org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)$
> >>> ^Iat
> >>> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)$
> >>> ^Iat
> >>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)$
> >>> ^Iat
> >>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)$
> >>> ^Iat
> >>> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)$
> >>> ^Iat
> >>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)$
> >>> ^Iat
> >>> org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)$
> >>> ^Iat
> >>> org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)$
> >>> ^Iat
> >>> org.springframework.boot.SpringApplication.run(SpringApplication.java:303)$
> >>> ^Iat
> >>> org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)$
> >>> ^Iat
> >>> org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)$
> >>> ^Iat
> >>> esac.archive.soar.ingestlite.IngestApplication.main(IngestApplication.java:23)$
> >>> 2019-05-29 15:38:57,698 3899 [main] WARN
> >>> o.a.c.m.DefaultManagementLifecycleStrategy - Could not register
> >>> service: ClaimCheck[GetAndRemove] as Service MBean.$
> >>>
> >>>
> >>> I had a look in ManagedClaimCheck and it always casts the definition
> >>> to an ExpressionNode
> >>>
> >>> Thanks for your help.
> >>> Jonathan
>
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Re: Using dynamic expression as claimCheck key
Posted by "erars+jonathan.cook" <jo...@erars.plus.com>.
Sure. I will give the PR a go over the weekend.
Thanks again for your help.
Cheers
On 2019-05-30 14:43, erars+jonathan.cook wrote:
> Sorry I missed the first reply.
>
> I am using camel 2.0.24 but it doesn't work what you are suggesting
> e.g)
> .setHeader("claimCheckKey", simple("${headers.CamelFileName}"))
> .claimCheck(ClaimCheckOperation.Set, "claimCheckKey", "body")
>
> I've debugged the DefaultClaimCheckRepository and the literal string
> is used claimCheckKey as the key to the map.
>
> Thanks.
>
> On 2019-05-30 11:22, erars+jonathan.cook wrote:
>> Many thanks Claus. I saw you already fixed it ;-) I was going to have
>> a go..
>>
>> Do you have any suggestion for a quick work around? Could I override
>> the claim check processor in my own processor or better to do
>> something like in the ClaimCheckTest using beans..
>> https://github.com/apache/camel/blob/41145b71c04936fa006e3e8185e7f8f2ab674308/core/camel-core/src/test/java/org/apache/camel/processor/ClaimCheckTest.java
>>
>> Thanks
>> Jonathan
>>
>> On 2019-05-29 23:10, erars+jonathan.cook wrote:
>>> I got rid of the ManagedClaimCheck exception by upgrading my version
>>> of camel from 2.21.0 to 2.24.0.
>>>
>>> Just some help with dynamic key now please?
>>>
>>> Thanks
>>>
>>> On 2019-05-29 15:59, erars+jonathan.cook wrote:
>>>> Hi,
>>>>
>>>> I'm trying to use the claimCheck but pass a dynamic key which would
>>>> be
>>>> something unique like the filename in my input message or the
>>>> breadcrumbId. But it seems this processor doesn't support this?
>>>>
>>>> e.g)
>>>> .claimCheck(ClaimCheckOperation.Set, "${headers.CamelFileName}",
>>>> "body")
>>>>
>>>> Is there a way to use the simple method e.g)
>>>> simple("${headers.CamelFileName}") but evaluate the expression at
>>>> run
>>>> time?
>>>>
>>>> Later I see another issue unrelated with this claimcheck definition,
>>>> I
>>>> always see this error which is unrelated to my route definition:
>>>> 2019-05-29 15:38:57,698 3899 [main] WARN
>>>> o.a.c.m.ManagedManagementStrategy - Cannot check whether the managed
>>>> object is registered. This exception will be ignored.$
>>>> java.lang.ClassCastException:
>>>> org.apache.camel.model.ClaimCheckDefinition cannot be cast to
>>>> org.apache.camel.model.ExpressionNode$
>>>> ^Iat
>>>> org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:40)$
>>>> ^Iat
>>>> org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:29)$
>>>> ^Iat
>>>> org.apache.camel.management.ManagedManagementStrategy.getManagedObjectName(ManagedManagementStrategy.java:122)$
>>>> ^Iat
>>>> org.apache.camel.management.ManagedManagementStrategy.getObjectName(ManagedManagementStrategy.java:198)$
>>>> ^Iat
>>>> org.apache.camel.management.ManagedManagementStrategy.isManaged(ManagedManagementStrategy.java:174)$
>>>> ^Iat
>>>> org.apache.camel.management.DefaultManagementLifecycleStrategy.onServiceAdd(DefaultManagementLifecycleStrategy.java:437)$
>>>> ^Iat
>>>> org.apache.camel.impl.RouteService.startChildService(RouteService.java:368)$
>>>> ^Iat
>>>> org.apache.camel.impl.RouteService.doWarmUp(RouteService.java:196)$
>>>> ^Iat
>>>> org.apache.camel.impl.RouteService.warmUp(RouteService.java:145)$
>>>> ^Iat
>>>> org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3947)$
>>>> ^Iat
>>>> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3854)$
>>>> ^Iat
>>>> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3640)$
>>>> ^Iat
>>>> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3492)$
>>>> ^Iat
>>>> org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:209)$
>>>> ^Iat
>>>> org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3251)$
>>>> ^Iat
>>>> org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3247)$
>>>> ^Iat
>>>> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3270)$
>>>> ^Iat
>>>> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3247)$
>>>> ^Iat
>>>> org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)$
>>>> ^Iat
>>>> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3163)$
>>>> ^Iat
>>>> org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:133)$
>>>> ^Iat
>>>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:174)$
>>>> ^Iat
>>>> org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)$
>>>> ^Iat
>>>> org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)$
>>>> ^Iat
>>>> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)$
>>>> ^Iat
>>>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)$
>>>> ^Iat
>>>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)$
>>>> ^Iat
>>>> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)$
>>>> ^Iat
>>>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)$
>>>> ^Iat
>>>> org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)$
>>>> ^Iat
>>>> org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)$
>>>> ^Iat
>>>> org.springframework.boot.SpringApplication.run(SpringApplication.java:303)$
>>>> ^Iat
>>>> org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)$
>>>> ^Iat
>>>> org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)$
>>>> ^Iat
>>>> esac.archive.soar.ingestlite.IngestApplication.main(IngestApplication.java:23)$
>>>> 2019-05-29 15:38:57,698 3899 [main] WARN
>>>> o.a.c.m.DefaultManagementLifecycleStrategy - Could not register
>>>> service: ClaimCheck[GetAndRemove] as Service MBean.$
>>>>
>>>>
>>>> I had a look in ManagedClaimCheck and it always casts the definition
>>>> to an ExpressionNode
>>>>
>>>> Thanks for your help.
>>>> Jonathan
Re: Using dynamic expression as claimCheck key
Posted by "erars+jonathan.cook" <jo...@erars.plus.com>.
Sorry I missed the first reply.
I am using camel 2.0.24 but it doesn't work what you are suggesting e.g)
.setHeader("claimCheckKey", simple("${headers.CamelFileName}"))
.claimCheck(ClaimCheckOperation.Set, "claimCheckKey", "body")
I've debugged the DefaultClaimCheckRepository and the literal string is
used claimCheckKey as the key to the map.
Thanks.
On 2019-05-30 11:22, erars+jonathan.cook wrote:
> Many thanks Claus. I saw you already fixed it ;-) I was going to have a
> go..
>
> Do you have any suggestion for a quick work around? Could I override
> the claim check processor in my own processor or better to do
> something like in the ClaimCheckTest using beans..
> https://github.com/apache/camel/blob/41145b71c04936fa006e3e8185e7f8f2ab674308/core/camel-core/src/test/java/org/apache/camel/processor/ClaimCheckTest.java
>
> Thanks
> Jonathan
>
> On 2019-05-29 23:10, erars+jonathan.cook wrote:
>> I got rid of the ManagedClaimCheck exception by upgrading my version
>> of camel from 2.21.0 to 2.24.0.
>>
>> Just some help with dynamic key now please?
>>
>> Thanks
>>
>> On 2019-05-29 15:59, erars+jonathan.cook wrote:
>>> Hi,
>>>
>>> I'm trying to use the claimCheck but pass a dynamic key which would
>>> be
>>> something unique like the filename in my input message or the
>>> breadcrumbId. But it seems this processor doesn't support this?
>>>
>>> e.g)
>>> .claimCheck(ClaimCheckOperation.Set, "${headers.CamelFileName}",
>>> "body")
>>>
>>> Is there a way to use the simple method e.g)
>>> simple("${headers.CamelFileName}") but evaluate the expression at run
>>> time?
>>>
>>> Later I see another issue unrelated with this claimcheck definition,
>>> I
>>> always see this error which is unrelated to my route definition:
>>> 2019-05-29 15:38:57,698 3899 [main] WARN
>>> o.a.c.m.ManagedManagementStrategy - Cannot check whether the managed
>>> object is registered. This exception will be ignored.$
>>> java.lang.ClassCastException:
>>> org.apache.camel.model.ClaimCheckDefinition cannot be cast to
>>> org.apache.camel.model.ExpressionNode$
>>> ^Iat
>>> org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:40)$
>>> ^Iat
>>> org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:29)$
>>> ^Iat
>>> org.apache.camel.management.ManagedManagementStrategy.getManagedObjectName(ManagedManagementStrategy.java:122)$
>>> ^Iat
>>> org.apache.camel.management.ManagedManagementStrategy.getObjectName(ManagedManagementStrategy.java:198)$
>>> ^Iat
>>> org.apache.camel.management.ManagedManagementStrategy.isManaged(ManagedManagementStrategy.java:174)$
>>> ^Iat
>>> org.apache.camel.management.DefaultManagementLifecycleStrategy.onServiceAdd(DefaultManagementLifecycleStrategy.java:437)$
>>> ^Iat
>>> org.apache.camel.impl.RouteService.startChildService(RouteService.java:368)$
>>> ^Iat
>>> org.apache.camel.impl.RouteService.doWarmUp(RouteService.java:196)$
>>> ^Iat
>>> org.apache.camel.impl.RouteService.warmUp(RouteService.java:145)$
>>> ^Iat
>>> org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3947)$
>>> ^Iat
>>> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3854)$
>>> ^Iat
>>> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3640)$
>>> ^Iat
>>> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3492)$
>>> ^Iat
>>> org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:209)$
>>> ^Iat
>>> org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3251)$
>>> ^Iat
>>> org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3247)$
>>> ^Iat
>>> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3270)$
>>> ^Iat
>>> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3247)$
>>> ^Iat
>>> org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)$
>>> ^Iat
>>> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3163)$
>>> ^Iat
>>> org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:133)$
>>> ^Iat
>>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:174)$
>>> ^Iat
>>> org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)$
>>> ^Iat
>>> org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)$
>>> ^Iat
>>> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)$
>>> ^Iat
>>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)$
>>> ^Iat
>>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)$
>>> ^Iat
>>> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)$
>>> ^Iat
>>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)$
>>> ^Iat
>>> org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)$
>>> ^Iat
>>> org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)$
>>> ^Iat
>>> org.springframework.boot.SpringApplication.run(SpringApplication.java:303)$
>>> ^Iat
>>> org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)$
>>> ^Iat
>>> org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)$
>>> ^Iat
>>> esac.archive.soar.ingestlite.IngestApplication.main(IngestApplication.java:23)$
>>> 2019-05-29 15:38:57,698 3899 [main] WARN
>>> o.a.c.m.DefaultManagementLifecycleStrategy - Could not register
>>> service: ClaimCheck[GetAndRemove] as Service MBean.$
>>>
>>>
>>> I had a look in ManagedClaimCheck and it always casts the definition
>>> to an ExpressionNode
>>>
>>> Thanks for your help.
>>> Jonathan
Re: Using dynamic expression as claimCheck key
Posted by Claus Ibsen <cl...@gmail.com>.
Hi
I replied previously about how you can set the key in another header first
On Thu, May 30, 2019 at 11:22 AM erars+jonathan.cook
<jo...@erars.plus.com> wrote:
>
> Many thanks Claus. I saw you already fixed it ;-) I was going to have a
> go..
>
> Do you have any suggestion for a quick work around? Could I override
> the claim check processor in my own processor or better to do something
> like in the ClaimCheckTest using beans..
> https://github.com/apache/camel/blob/41145b71c04936fa006e3e8185e7f8f2ab674308/core/camel-core/src/test/java/org/apache/camel/processor/ClaimCheckTest.java
>
> Thanks
> Jonathan
>
> On 2019-05-29 23:10, erars+jonathan.cook wrote:
> > I got rid of the ManagedClaimCheck exception by upgrading my version
> > of camel from 2.21.0 to 2.24.0.
> >
> > Just some help with dynamic key now please?
> >
> > Thanks
> >
> > On 2019-05-29 15:59, erars+jonathan.cook wrote:
> >> Hi,
> >>
> >> I'm trying to use the claimCheck but pass a dynamic key which would be
> >> something unique like the filename in my input message or the
> >> breadcrumbId. But it seems this processor doesn't support this?
> >>
> >> e.g)
> >> .claimCheck(ClaimCheckOperation.Set, "${headers.CamelFileName}",
> >> "body")
> >>
> >> Is there a way to use the simple method e.g)
> >> simple("${headers.CamelFileName}") but evaluate the expression at run
> >> time?
> >>
> >> Later I see another issue unrelated with this claimcheck definition, I
> >> always see this error which is unrelated to my route definition:
> >> 2019-05-29 15:38:57,698 3899 [main] WARN
> >> o.a.c.m.ManagedManagementStrategy - Cannot check whether the managed
> >> object is registered. This exception will be ignored.$
> >> java.lang.ClassCastException:
> >> org.apache.camel.model.ClaimCheckDefinition cannot be cast to
> >> org.apache.camel.model.ExpressionNode$
> >> ^Iat
> >> org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:40)$
> >> ^Iat
> >> org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:29)$
> >> ^Iat
> >> org.apache.camel.management.ManagedManagementStrategy.getManagedObjectName(ManagedManagementStrategy.java:122)$
> >> ^Iat
> >> org.apache.camel.management.ManagedManagementStrategy.getObjectName(ManagedManagementStrategy.java:198)$
> >> ^Iat
> >> org.apache.camel.management.ManagedManagementStrategy.isManaged(ManagedManagementStrategy.java:174)$
> >> ^Iat
> >> org.apache.camel.management.DefaultManagementLifecycleStrategy.onServiceAdd(DefaultManagementLifecycleStrategy.java:437)$
> >> ^Iat
> >> org.apache.camel.impl.RouteService.startChildService(RouteService.java:368)$
> >> ^Iat
> >> org.apache.camel.impl.RouteService.doWarmUp(RouteService.java:196)$
> >> ^Iat org.apache.camel.impl.RouteService.warmUp(RouteService.java:145)$
> >> ^Iat
> >> org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3947)$
> >> ^Iat
> >> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3854)$
> >> ^Iat
> >> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3640)$
> >> ^Iat
> >> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3492)$
> >> ^Iat
> >> org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:209)$
> >> ^Iat
> >> org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3251)$
> >> ^Iat
> >> org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3247)$
> >> ^Iat
> >> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3270)$
> >> ^Iat
> >> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3247)$
> >> ^Iat
> >> org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)$
> >> ^Iat
> >> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3163)$
> >> ^Iat
> >> org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:133)$
> >> ^Iat
> >> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:174)$
> >> ^Iat
> >> org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)$
> >> ^Iat
> >> org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)$
> >> ^Iat
> >> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)$
> >> ^Iat
> >> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)$
> >> ^Iat
> >> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)$
> >> ^Iat
> >> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)$
> >> ^Iat
> >> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)$
> >> ^Iat
> >> org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)$
> >> ^Iat
> >> org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)$
> >> ^Iat
> >> org.springframework.boot.SpringApplication.run(SpringApplication.java:303)$
> >> ^Iat
> >> org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)$
> >> ^Iat
> >> org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)$
> >> ^Iat
> >> esac.archive.soar.ingestlite.IngestApplication.main(IngestApplication.java:23)$
> >> 2019-05-29 15:38:57,698 3899 [main] WARN
> >> o.a.c.m.DefaultManagementLifecycleStrategy - Could not register
> >> service: ClaimCheck[GetAndRemove] as Service MBean.$
> >>
> >>
> >> I had a look in ManagedClaimCheck and it always casts the definition
> >> to an ExpressionNode
> >>
> >> Thanks for your help.
> >> Jonathan
>
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Re: Using dynamic expression as claimCheck key
Posted by "erars+jonathan.cook" <jo...@erars.plus.com>.
Many thanks Claus. I saw you already fixed it ;-) I was going to have a
go..
Do you have any suggestion for a quick work around? Could I override
the claim check processor in my own processor or better to do something
like in the ClaimCheckTest using beans..
https://github.com/apache/camel/blob/41145b71c04936fa006e3e8185e7f8f2ab674308/core/camel-core/src/test/java/org/apache/camel/processor/ClaimCheckTest.java
Thanks
Jonathan
On 2019-05-29 23:10, erars+jonathan.cook wrote:
> I got rid of the ManagedClaimCheck exception by upgrading my version
> of camel from 2.21.0 to 2.24.0.
>
> Just some help with dynamic key now please?
>
> Thanks
>
> On 2019-05-29 15:59, erars+jonathan.cook wrote:
>> Hi,
>>
>> I'm trying to use the claimCheck but pass a dynamic key which would be
>> something unique like the filename in my input message or the
>> breadcrumbId. But it seems this processor doesn't support this?
>>
>> e.g)
>> .claimCheck(ClaimCheckOperation.Set, "${headers.CamelFileName}",
>> "body")
>>
>> Is there a way to use the simple method e.g)
>> simple("${headers.CamelFileName}") but evaluate the expression at run
>> time?
>>
>> Later I see another issue unrelated with this claimcheck definition, I
>> always see this error which is unrelated to my route definition:
>> 2019-05-29 15:38:57,698 3899 [main] WARN
>> o.a.c.m.ManagedManagementStrategy - Cannot check whether the managed
>> object is registered. This exception will be ignored.$
>> java.lang.ClassCastException:
>> org.apache.camel.model.ClaimCheckDefinition cannot be cast to
>> org.apache.camel.model.ExpressionNode$
>> ^Iat
>> org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:40)$
>> ^Iat
>> org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:29)$
>> ^Iat
>> org.apache.camel.management.ManagedManagementStrategy.getManagedObjectName(ManagedManagementStrategy.java:122)$
>> ^Iat
>> org.apache.camel.management.ManagedManagementStrategy.getObjectName(ManagedManagementStrategy.java:198)$
>> ^Iat
>> org.apache.camel.management.ManagedManagementStrategy.isManaged(ManagedManagementStrategy.java:174)$
>> ^Iat
>> org.apache.camel.management.DefaultManagementLifecycleStrategy.onServiceAdd(DefaultManagementLifecycleStrategy.java:437)$
>> ^Iat
>> org.apache.camel.impl.RouteService.startChildService(RouteService.java:368)$
>> ^Iat
>> org.apache.camel.impl.RouteService.doWarmUp(RouteService.java:196)$
>> ^Iat org.apache.camel.impl.RouteService.warmUp(RouteService.java:145)$
>> ^Iat
>> org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3947)$
>> ^Iat
>> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3854)$
>> ^Iat
>> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3640)$
>> ^Iat
>> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3492)$
>> ^Iat
>> org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:209)$
>> ^Iat
>> org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3251)$
>> ^Iat
>> org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3247)$
>> ^Iat
>> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3270)$
>> ^Iat
>> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3247)$
>> ^Iat
>> org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)$
>> ^Iat
>> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3163)$
>> ^Iat
>> org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:133)$
>> ^Iat
>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:174)$
>> ^Iat
>> org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)$
>> ^Iat
>> org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)$
>> ^Iat
>> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)$
>> ^Iat
>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)$
>> ^Iat
>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)$
>> ^Iat
>> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)$
>> ^Iat
>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)$
>> ^Iat
>> org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)$
>> ^Iat
>> org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)$
>> ^Iat
>> org.springframework.boot.SpringApplication.run(SpringApplication.java:303)$
>> ^Iat
>> org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)$
>> ^Iat
>> org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)$
>> ^Iat
>> esac.archive.soar.ingestlite.IngestApplication.main(IngestApplication.java:23)$
>> 2019-05-29 15:38:57,698 3899 [main] WARN
>> o.a.c.m.DefaultManagementLifecycleStrategy - Could not register
>> service: ClaimCheck[GetAndRemove] as Service MBean.$
>>
>>
>> I had a look in ManagedClaimCheck and it always casts the definition
>> to an ExpressionNode
>>
>> Thanks for your help.
>> Jonathan
Re: Using dynamic expression as claimCheck key
Posted by Claus Ibsen <cl...@gmail.com>.
In Camel 2.x, you can set the key in a header first via
setHeader("myKey", simple("..."))
And then use myKey as the key.
On Thu, May 30, 2019 at 9:44 AM Claus Ibsen <cl...@gmail.com> wrote:
>
> Hi
>
> This is currently not supported, the key is static at the moment. I
> have logged a ticket to allow to use simple language in the key
> https://issues.apache.org/jira/browse/CAMEL-13599
>
> On Wed, May 29, 2019 at 11:29 PM erars+jonathan.cook
> <jo...@erars.plus.com> wrote:
> >
> > I got rid of the ManagedClaimCheck exception by upgrading my version of
> > camel from 2.21.0 to 2.24.0.
> >
> > Just some help with dynamic key now please?
> >
> > Thanks
> >
> > On 2019-05-29 15:59, erars+jonathan.cook wrote:
> > > Hi,
> > >
> > > I'm trying to use the claimCheck but pass a dynamic key which would be
> > > something unique like the filename in my input message or the
> > > breadcrumbId. But it seems this processor doesn't support this?
> > >
> > > e.g)
> > > .claimCheck(ClaimCheckOperation.Set, "${headers.CamelFileName}",
> > > "body")
> > >
> > > Is there a way to use the simple method e.g)
> > > simple("${headers.CamelFileName}") but evaluate the expression at run
> > > time?
> > >
> > > Later I see another issue unrelated with this claimcheck definition, I
> > > always see this error which is unrelated to my route definition:
> > > 2019-05-29 15:38:57,698 3899 [main] WARN
> > > o.a.c.m.ManagedManagementStrategy - Cannot check whether the managed
> > > object is registered. This exception will be ignored.$
> > > java.lang.ClassCastException:
> > > org.apache.camel.model.ClaimCheckDefinition cannot be cast to
> > > org.apache.camel.model.ExpressionNode$
> > > ^Iat
> > > org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:40)$
> > > ^Iat
> > > org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:29)$
> > > ^Iat
> > > org.apache.camel.management.ManagedManagementStrategy.getManagedObjectName(ManagedManagementStrategy.java:122)$
> > > ^Iat
> > > org.apache.camel.management.ManagedManagementStrategy.getObjectName(ManagedManagementStrategy.java:198)$
> > > ^Iat
> > > org.apache.camel.management.ManagedManagementStrategy.isManaged(ManagedManagementStrategy.java:174)$
> > > ^Iat
> > > org.apache.camel.management.DefaultManagementLifecycleStrategy.onServiceAdd(DefaultManagementLifecycleStrategy.java:437)$
> > > ^Iat
> > > org.apache.camel.impl.RouteService.startChildService(RouteService.java:368)$
> > > ^Iat
> > > org.apache.camel.impl.RouteService.doWarmUp(RouteService.java:196)$
> > > ^Iat org.apache.camel.impl.RouteService.warmUp(RouteService.java:145)$
> > > ^Iat
> > > org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3947)$
> > > ^Iat
> > > org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3854)$
> > > ^Iat
> > > org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3640)$
> > > ^Iat
> > > org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3492)$
> > > ^Iat
> > > org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:209)$
> > > ^Iat
> > > org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3251)$
> > > ^Iat
> > > org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3247)$
> > > ^Iat
> > > org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3270)$
> > > ^Iat
> > > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3247)$
> > > ^Iat
> > > org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)$
> > > ^Iat
> > > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3163)$
> > > ^Iat
> > > org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:133)$
> > > ^Iat
> > > org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:174)$
> > > ^Iat
> > > org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)$
> > > ^Iat
> > > org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)$
> > > ^Iat
> > > org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)$
> > > ^Iat
> > > org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)$
> > > ^Iat
> > > org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)$
> > > ^Iat
> > > org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)$
> > > ^Iat
> > > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)$
> > > ^Iat
> > > org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)$
> > > ^Iat
> > > org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)$
> > > ^Iat
> > > org.springframework.boot.SpringApplication.run(SpringApplication.java:303)$
> > > ^Iat
> > > org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)$
> > > ^Iat
> > > org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)$
> > > ^Iat
> > > esac.archive.soar.ingestlite.IngestApplication.main(IngestApplication.java:23)$
> > > 2019-05-29 15:38:57,698 3899 [main] WARN
> > > o.a.c.m.DefaultManagementLifecycleStrategy - Could not register
> > > service: ClaimCheck[GetAndRemove] as Service MBean.$
> > >
> > >
> > > I had a look in ManagedClaimCheck and it always casts the definition
> > > to an ExpressionNode
> > >
> > > Thanks for your help.
> > > Jonathan
> >
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Re: Using dynamic expression as claimCheck key
Posted by Claus Ibsen <cl...@gmail.com>.
Hi
This is currently not supported, the key is static at the moment. I
have logged a ticket to allow to use simple language in the key
https://issues.apache.org/jira/browse/CAMEL-13599
On Wed, May 29, 2019 at 11:29 PM erars+jonathan.cook
<jo...@erars.plus.com> wrote:
>
> I got rid of the ManagedClaimCheck exception by upgrading my version of
> camel from 2.21.0 to 2.24.0.
>
> Just some help with dynamic key now please?
>
> Thanks
>
> On 2019-05-29 15:59, erars+jonathan.cook wrote:
> > Hi,
> >
> > I'm trying to use the claimCheck but pass a dynamic key which would be
> > something unique like the filename in my input message or the
> > breadcrumbId. But it seems this processor doesn't support this?
> >
> > e.g)
> > .claimCheck(ClaimCheckOperation.Set, "${headers.CamelFileName}",
> > "body")
> >
> > Is there a way to use the simple method e.g)
> > simple("${headers.CamelFileName}") but evaluate the expression at run
> > time?
> >
> > Later I see another issue unrelated with this claimcheck definition, I
> > always see this error which is unrelated to my route definition:
> > 2019-05-29 15:38:57,698 3899 [main] WARN
> > o.a.c.m.ManagedManagementStrategy - Cannot check whether the managed
> > object is registered. This exception will be ignored.$
> > java.lang.ClassCastException:
> > org.apache.camel.model.ClaimCheckDefinition cannot be cast to
> > org.apache.camel.model.ExpressionNode$
> > ^Iat
> > org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:40)$
> > ^Iat
> > org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:29)$
> > ^Iat
> > org.apache.camel.management.ManagedManagementStrategy.getManagedObjectName(ManagedManagementStrategy.java:122)$
> > ^Iat
> > org.apache.camel.management.ManagedManagementStrategy.getObjectName(ManagedManagementStrategy.java:198)$
> > ^Iat
> > org.apache.camel.management.ManagedManagementStrategy.isManaged(ManagedManagementStrategy.java:174)$
> > ^Iat
> > org.apache.camel.management.DefaultManagementLifecycleStrategy.onServiceAdd(DefaultManagementLifecycleStrategy.java:437)$
> > ^Iat
> > org.apache.camel.impl.RouteService.startChildService(RouteService.java:368)$
> > ^Iat
> > org.apache.camel.impl.RouteService.doWarmUp(RouteService.java:196)$
> > ^Iat org.apache.camel.impl.RouteService.warmUp(RouteService.java:145)$
> > ^Iat
> > org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3947)$
> > ^Iat
> > org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3854)$
> > ^Iat
> > org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3640)$
> > ^Iat
> > org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3492)$
> > ^Iat
> > org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:209)$
> > ^Iat
> > org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3251)$
> > ^Iat
> > org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3247)$
> > ^Iat
> > org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3270)$
> > ^Iat
> > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3247)$
> > ^Iat
> > org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)$
> > ^Iat
> > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3163)$
> > ^Iat
> > org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:133)$
> > ^Iat
> > org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:174)$
> > ^Iat
> > org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)$
> > ^Iat
> > org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)$
> > ^Iat
> > org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)$
> > ^Iat
> > org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)$
> > ^Iat
> > org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)$
> > ^Iat
> > org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)$
> > ^Iat
> > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)$
> > ^Iat
> > org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)$
> > ^Iat
> > org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)$
> > ^Iat
> > org.springframework.boot.SpringApplication.run(SpringApplication.java:303)$
> > ^Iat
> > org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)$
> > ^Iat
> > org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)$
> > ^Iat
> > esac.archive.soar.ingestlite.IngestApplication.main(IngestApplication.java:23)$
> > 2019-05-29 15:38:57,698 3899 [main] WARN
> > o.a.c.m.DefaultManagementLifecycleStrategy - Could not register
> > service: ClaimCheck[GetAndRemove] as Service MBean.$
> >
> >
> > I had a look in ManagedClaimCheck and it always casts the definition
> > to an ExpressionNode
> >
> > Thanks for your help.
> > Jonathan
>
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Re: Using dynamic expression as claimCheck key
Posted by "erars+jonathan.cook" <jo...@erars.plus.com>.
I got rid of the ManagedClaimCheck exception by upgrading my version of
camel from 2.21.0 to 2.24.0.
Just some help with dynamic key now please?
Thanks
On 2019-05-29 15:59, erars+jonathan.cook wrote:
> Hi,
>
> I'm trying to use the claimCheck but pass a dynamic key which would be
> something unique like the filename in my input message or the
> breadcrumbId. But it seems this processor doesn't support this?
>
> e.g)
> .claimCheck(ClaimCheckOperation.Set, "${headers.CamelFileName}",
> "body")
>
> Is there a way to use the simple method e.g)
> simple("${headers.CamelFileName}") but evaluate the expression at run
> time?
>
> Later I see another issue unrelated with this claimcheck definition, I
> always see this error which is unrelated to my route definition:
> 2019-05-29 15:38:57,698 3899 [main] WARN
> o.a.c.m.ManagedManagementStrategy - Cannot check whether the managed
> object is registered. This exception will be ignored.$
> java.lang.ClassCastException:
> org.apache.camel.model.ClaimCheckDefinition cannot be cast to
> org.apache.camel.model.ExpressionNode$
> ^Iat
> org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:40)$
> ^Iat
> org.apache.camel.management.mbean.ManagedClaimCheck.getDefinition(ManagedClaimCheck.java:29)$
> ^Iat
> org.apache.camel.management.ManagedManagementStrategy.getManagedObjectName(ManagedManagementStrategy.java:122)$
> ^Iat
> org.apache.camel.management.ManagedManagementStrategy.getObjectName(ManagedManagementStrategy.java:198)$
> ^Iat
> org.apache.camel.management.ManagedManagementStrategy.isManaged(ManagedManagementStrategy.java:174)$
> ^Iat
> org.apache.camel.management.DefaultManagementLifecycleStrategy.onServiceAdd(DefaultManagementLifecycleStrategy.java:437)$
> ^Iat
> org.apache.camel.impl.RouteService.startChildService(RouteService.java:368)$
> ^Iat
> org.apache.camel.impl.RouteService.doWarmUp(RouteService.java:196)$
> ^Iat org.apache.camel.impl.RouteService.warmUp(RouteService.java:145)$
> ^Iat
> org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3947)$
> ^Iat
> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3854)$
> ^Iat
> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3640)$
> ^Iat
> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3492)$
> ^Iat
> org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:209)$
> ^Iat
> org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3251)$
> ^Iat
> org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3247)$
> ^Iat
> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3270)$
> ^Iat
> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3247)$
> ^Iat
> org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)$
> ^Iat
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3163)$
> ^Iat
> org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:133)$
> ^Iat
> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:174)$
> ^Iat
> org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)$
> ^Iat
> org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)$
> ^Iat
> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)$
> ^Iat
> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)$
> ^Iat
> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)$
> ^Iat
> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)$
> ^Iat
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)$
> ^Iat
> org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)$
> ^Iat
> org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)$
> ^Iat
> org.springframework.boot.SpringApplication.run(SpringApplication.java:303)$
> ^Iat
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)$
> ^Iat
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)$
> ^Iat
> esac.archive.soar.ingestlite.IngestApplication.main(IngestApplication.java:23)$
> 2019-05-29 15:38:57,698 3899 [main] WARN
> o.a.c.m.DefaultManagementLifecycleStrategy - Could not register
> service: ClaimCheck[GetAndRemove] as Service MBean.$
>
>
> I had a look in ManagedClaimCheck and it always casts the definition
> to an ExpressionNode
>
> Thanks for your help.
> Jonathan