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