You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by Henryk Konsek <he...@gmail.com> on 2013/02/17 11:33:59 UTC

Message History EIP/Message Store status

Hi,

Is there a single place (wiki page for example) where I could find the
current status of the Message History development? I'd like to take a
look where we are in this topic and probably contribute a little bit.

This is probably more general issue - how can one check the progress
of particular Camel 3 "idea"?

Best regards.

-- 
Henryk Konsek
http://henryk-konsek.blogspot.com

Re: Message History EIP/Message Store status

Posted by Henryk Konsek <he...@gmail.com>.
> Christian:
> I'll post here again when I'm done.

Great, I'm looking forward to receive your message then :) .

> Willem:
> +1 to start the idea in wiki.

Actually it will be nice if all "ideas" champions could create such
aggregation wiki pages for their topics (and link them from the "Camel
3.0 - Ideas" wiki page [1]). This will make easier for the community
to monitor the current status of each idea and possibly join the
efforts.

[1] http://camel.apache.org/camel-30-ideas.html

--
Henryk Konsek
http://henryk-konsek.blogspot.com

Re: Message History EIP/Message Store status

Posted by Willem jiang <wi...@gmail.com>.
+1 to start the idea in wiki.
Please send a mail to the dev once you finish the wiki update.
Then we can start to the further discussion to shape the design.


--  
Willem Jiang

Red Hat, Inc.
FuseSource is now part of Red Hat
Web: http://www.fusesource.com | http://www.redhat.com
Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English)
          http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese)
Twitter: willemjiang  
Weibo: 姜宁willem





On Sunday, February 17, 2013 at 10:40 PM, Jan Matèrne (jhm) wrote:

> Maybe in addition with Jira.
> Collecting ideas in Confluence and if they are "stable" create an issue in
> Jira with a clear description.
>  
> cheers
> Jan
>  
> -----Ursprüngliche Nachricht-----
> Von: Christian Ohr [mailto:christian.ohr@gmail.com]  
> Gesendet: Sonntag, 17. Februar 2013 14:33
> An: dev@camel.apache.org (mailto:dev@camel.apache.org)
> Betreff: Re: Message History EIP/Message Store status
>  
> Hi,
>  
> I will add a Wiki page regarding this topic within the next days and
> aggegate all current thoughts and ideas. Everyone is invited to contribute,
> of course!
> I'll post here again when I'm done.
>  
> cheers
> Christian
>  
> 2013/2/17 Henryk Konsek <hekonsek@gmail.com (mailto:hekonsek@gmail.com)>:
> > Hi,
> >  
> > Is there a single place (wiki page for example) where I could find the  
> > current status of the Message History development? I'd like to take a  
> > look where we are in this topic and probably contribute a little bit.
> >  
> > This is probably more general issue - how can one check the progress  
> > of particular Camel 3 "idea"?
> >  
> > Best regards.
> >  
> > --
> > Henryk Konsek
> > http://henryk-konsek.blogspot.com
>  




AW: Message History EIP/Message Store status

Posted by "Jan Matèrne (jhm)" <ap...@materne.de>.
Maybe in addition with Jira.
Collecting ideas in Confluence and if they are "stable" create an issue in
Jira with a clear description.

cheers
Jan

-----Ursprüngliche Nachricht-----
Von: Christian Ohr [mailto:christian.ohr@gmail.com] 
Gesendet: Sonntag, 17. Februar 2013 14:33
An: dev@camel.apache.org
Betreff: Re: Message History EIP/Message Store status

Hi,

I will add a Wiki page regarding this topic within the next days and
aggegate all current thoughts and ideas. Everyone is invited to contribute,
of course!
I'll post here again when I'm done.

cheers
Christian

2013/2/17 Henryk Konsek <he...@gmail.com>:
> Hi,
>
> Is there a single place (wiki page for example) where I could find the 
> current status of the Message History development? I'd like to take a 
> look where we are in this topic and probably contribute a little bit.
>
> This is probably more general issue - how can one check the progress 
> of particular Camel 3 "idea"?
>
> Best regards.
>
> --
> Henryk Konsek
> http://henryk-konsek.blogspot.com


Re: Message History EIP/Message Store status

Posted by Christian Ohr <ch...@gmail.com>.
Hi,

I will add a Wiki page regarding this topic within the next days and
aggegate all current thoughts and ideas. Everyone is invited to
contribute, of course!
I'll post here again when I'm done.

cheers
Christian

2013/2/17 Henryk Konsek <he...@gmail.com>:
> Hi,
>
> Is there a single place (wiki page for example) where I could find the
> current status of the Message History development? I'd like to take a
> look where we are in this topic and probably contribute a little bit.
>
> This is probably more general issue - how can one check the progress
> of particular Camel 3 "idea"?
>
> Best regards.
>
> --
> Henryk Konsek
> http://henryk-konsek.blogspot.com

Re: Message History EIP/Message Store status

Posted by Hadrian Zbarcea <hz...@gmail.com>.
The claim check pattern is a bit more complex that. I will be touching 
on it in my presentation at ApacheCon next week.

Cheers,
Hadrian

On 02/21/2013 06:26 PM, Christian Ohr wrote:
> HI Henryk,
>
> A claim check EIP is definitely an excellent use case for a message store.
>
> Regarding your example - it is probably a matter of taste, but I would rather
> * register a (global) default message store with the CamelContext
> rather than in the route
> * allow all applicable EIPs to override this
> * not set the CLAIM_CHECK header again (what for?)
>
> One issue with such a claim check is that you should stay in control
> about what is temporarily pushed to the store (e.g. the body, or a
> specific header, or...). Later when you claim back the data, the
> operation must be basically reversed. Then, who is in charge to
> remember the destination - the claimCheck/claim EIP pair or the
> developer? In the latter case, claiming back the data might look more
> like applying a special expression....
>
> ...
> // store and receive unique id in reserved CLAIM_CHECK header
> .claimCheck(myStore, header('myBigHeader'))
> ...
> // and claim back presenting the unique id
> .setHeader('myBigHeader', claim(myStore))
> ...
>
> Does this make sense?
>
> cheers
> Christian
>
> 2013/2/21 Henryk Konsek <he...@gmail.com>:
>>> You are invited add, comment, criticize etc.
>>
>> Hi Christian,
>>
>> Looks good :) .
>>
>> I've added some examples to Wiki demonstrating my vision of the usage
>> of Claim Check EIP.
>>
>> // Setting default message store for route:
>> defaultMessageStore(myStore);
>>
>> // Claim Check EIP store:
>> // 1) Store body.
>> // 2) Set body to null.
>> // 3) Set Exchange.CLAIM_CHECK header to unique claim id.
>> from(...).claimCheck().to(...);
>>
>> // Claim Check EIP read:
>> // 1) Lookup for the Exchange.CLAIM_CHECK header value.
>> // 2) Read the message.
>> // 3) Set body to the value fetched from the store.
>> from(...).setHeader(Exchange.CLAIM_CHECK, const("id")).claim().to(...);
>>
>> I'm curious if my claim check DSL design is similar to yours.
>>
>> Best regards.
>>
>> --
>> Henryk Konsek
>> http://henryk-konsek.blogspot.com

Re: Message History EIP/Message Store status

Posted by Christian Ohr <ch...@gmail.com>.
HI Henryk,

A claim check EIP is definitely an excellent use case for a message store.

Regarding your example - it is probably a matter of taste, but I would rather
* register a (global) default message store with the CamelContext
rather than in the route
* allow all applicable EIPs to override this
* not set the CLAIM_CHECK header again (what for?)

One issue with such a claim check is that you should stay in control
about what is temporarily pushed to the store (e.g. the body, or a
specific header, or...). Later when you claim back the data, the
operation must be basically reversed. Then, who is in charge to
remember the destination - the claimCheck/claim EIP pair or the
developer? In the latter case, claiming back the data might look more
like applying a special expression....

...
// store and receive unique id in reserved CLAIM_CHECK header
.claimCheck(myStore, header('myBigHeader'))
...
// and claim back presenting the unique id
.setHeader('myBigHeader', claim(myStore))
...

Does this make sense?

cheers
Christian

2013/2/21 Henryk Konsek <he...@gmail.com>:
>> You are invited add, comment, criticize etc.
>
> Hi Christian,
>
> Looks good :) .
>
> I've added some examples to Wiki demonstrating my vision of the usage
> of Claim Check EIP.
>
> // Setting default message store for route:
> defaultMessageStore(myStore);
>
> // Claim Check EIP store:
> // 1) Store body.
> // 2) Set body to null.
> // 3) Set Exchange.CLAIM_CHECK header to unique claim id.
> from(...).claimCheck().to(...);
>
> // Claim Check EIP read:
> // 1) Lookup for the Exchange.CLAIM_CHECK header value.
> // 2) Read the message.
> // 3) Set body to the value fetched from the store.
> from(...).setHeader(Exchange.CLAIM_CHECK, const("id")).claim().to(...);
>
> I'm curious if my claim check DSL design is similar to yours.
>
> Best regards.
>
> --
> Henryk Konsek
> http://henryk-konsek.blogspot.com

Re: Message History EIP/Message Store status

Posted by Christian Ohr <ch...@gmail.com>.
I'll update the wiki.

Christian
Am 22.02.2013 16:32 schrieb "Henryk Konsek" <he...@gmail.com>:

> If nobody objects with our latest ideas, it will be good to push them
> to the wiki page. Christian, would you handle this or should I do it
> on your behalf?
>
> Have a nice weekend :) .
>
> --
> Henryk Konsek
> http://henryk-konsek.blogspot.com
>

Re: Message History EIP/Message Store status

Posted by Henryk Konsek <he...@gmail.com>.
If nobody objects with our latest ideas, it will be good to push them
to the wiki page. Christian, would you handle this or should I do it
on your behalf?

Have a nice weekend :) .

-- 
Henryk Konsek
http://henryk-konsek.blogspot.com

Re: Message History EIP/Message Store status

Posted by Henryk Konsek <he...@gmail.com>.
> Christian M.:
> Shouldn't it be possible to configure the store?

Yes, it definitely should be. My examples do not aspire to be complete
:) . However we should also provide a way to configure the default
store on both Context and Route level.

> Christian M.:
> By default (if no message store instance is configured) we could use a
> memory message store.

Good point.

> Raul:
> How about making the Claim Check EIP Expression-Aware?

We must support it for sure. However if no expression is specified,
then we should rollback to the default header. Convention of
configuration FTW :) .

> Christian O.:
> it is probably a matter of taste, but I would rather
> register a (global) default message store with the CamelContext
> rather than in the route

We can support both, where route store would override the one defined
for the context. And of course particular EIP call (like
claimCheck(dataStore)) would override default stores.

> not set the CLAIM_CHECK header again (what for?)

It's just an example. If by default ClaimCheck would look for the
claim id in the Exchange.CLAIM_CHECK header, then you need to set in
the reclaiming route :) .

> One issue with such a claim check is that you should stay in
> control about what is temporarily pushed to the store (e.g. the
> body, or a specific header, or...).

Yeah, but I think that by default we should store the body.

> Later when you claim back the data, the
> operation must be basically reversed. Then, who is in charge to
> remember the destination - the claimCheck/claim EIP pair or the
> developer?

Actually we don't have to reverse the operation. You can claimCheck
the body and then pick it up to the header. I think that control over
this should be delegated to the developer, with body being the default
option.

Best regards.

--
Henryk Konsek
http://henryk-konsek.blogspot.com

Re: Message History EIP/Message Store status

Posted by Christian Ohr <ch...@gmail.com>.
Yes, this should always be possible. But registering a (default) store
in the Camel Context might be an alternative, e.g. like it is done
with a ThreadPoolFactory. If you don't explicitly provide one, the
default one is taken.

(the other) Christian

2013/2/21 Christian Müller <ch...@gmail.com>:
> Shouldn't it be possible to configure the store?
> Something like:
>
> from("...")
>   .claimCheck(myMessageStoreInstance)
>   .to("....");
>
> and
>
> from("...")
>   .setHeader(Exchange.CLAIM_CHECK, constant("my claim check id"))
>   .claim(myMessageStoreInstance)
>   .to("....");
>
> By default (if no message store instance is configured) we could use a
> memory message store.
>
> Best,
> Christian
>
> On Thu, Feb 21, 2013 at 1:15 PM, Henryk Konsek <he...@gmail.com> wrote:
>
>> > You are invited add, comment, criticize etc.
>>
>> Hi Christian,
>>
>> Looks good :) .
>>
>> I've added some examples to Wiki demonstrating my vision of the usage
>> of Claim Check EIP.
>>
>> // Setting default message store for route:
>> defaultMessageStore(myStore);
>>
>> // Claim Check EIP store:
>> // 1) Store body.
>> // 2) Set body to null.
>> // 3) Set Exchange.CLAIM_CHECK header to unique claim id.
>> from(...).claimCheck().to(...);
>>
>> // Claim Check EIP read:
>> // 1) Lookup for the Exchange.CLAIM_CHECK header value.
>> // 2) Read the message.
>> // 3) Set body to the value fetched from the store.
>> from(...).setHeader(Exchange.CLAIM_CHECK, const("id")).claim().to(...);
>>
>> I'm curious if my claim check DSL design is similar to yours.
>>
>> Best regards.
>>
>> --
>> Henryk Konsek
>> http://henryk-konsek.blogspot.com
>>
>
>
>
> --

Re: Message History EIP/Message Store status

Posted by Raul Kripalani <ra...@evosent.com>.
How about making the Claim Check EIP Expression-Aware?
Then one could do something like, which is more versatile and higher-level:

from("...")
  .claimCheck(myMessageStoreInstance,
xpath("/MyCoolElement/@superCoolAttribute"))
  .to("....");

and

from("...")
  .claim(myMessageStoreInstance, ognl("request.awesomeProperty"))
  .to("....");

Regards,

*Raúl Kripalani*
Apache Camel Committer
Enterprise Architect, Program Manager, Open Source Integration specialist
http://about.me/raulkripalani | http://www.linkedin.com/in/raulkripalani
http://blog.raulkr.net | twitter: @raulvk <http://twitter.com/raulvk>

On Thu, Feb 21, 2013 at 9:36 PM, Christian Müller <
christian.mueller@gmail.com> wrote:

> Shouldn't it be possible to configure the store?
> Something like:
>
> from("...")
>   .claimCheck(myMessageStoreInstance)
>   .to("....");
>
> and
>
> from("...")
>   .setHeader(Exchange.CLAIM_CHECK, constant("my claim check id"))
>   .claim(myMessageStoreInstance)
>   .to("....");
>
> By default (if no message store instance is configured) we could use a
> memory message store.
>
> Best,
> Christian
>
> On Thu, Feb 21, 2013 at 1:15 PM, Henryk Konsek <he...@gmail.com> wrote:
>
> > > You are invited add, comment, criticize etc.
> >
> > Hi Christian,
> >
> > Looks good :) .
> >
> > I've added some examples to Wiki demonstrating my vision of the usage
> > of Claim Check EIP.
> >
> > // Setting default message store for route:
> > defaultMessageStore(myStore);
> >
> > // Claim Check EIP store:
> > // 1) Store body.
> > // 2) Set body to null.
> > // 3) Set Exchange.CLAIM_CHECK header to unique claim id.
> > from(...).claimCheck().to(...);
> >
> > // Claim Check EIP read:
> > // 1) Lookup for the Exchange.CLAIM_CHECK header value.
> > // 2) Read the message.
> > // 3) Set body to the value fetched from the store.
> > from(...).setHeader(Exchange.CLAIM_CHECK, const("id")).claim().to(...);
> >
> > I'm curious if my claim check DSL design is similar to yours.
> >
> > Best regards.
> >
> > --
> > Henryk Konsek
> > http://henryk-konsek.blogspot.com
> >
>
>
>
> --
>

Re: Message History EIP/Message Store status

Posted by Christian Müller <ch...@gmail.com>.
Shouldn't it be possible to configure the store?
Something like:

from("...")
  .claimCheck(myMessageStoreInstance)
  .to("....");

and

from("...")
  .setHeader(Exchange.CLAIM_CHECK, constant("my claim check id"))
  .claim(myMessageStoreInstance)
  .to("....");

By default (if no message store instance is configured) we could use a
memory message store.

Best,
Christian

On Thu, Feb 21, 2013 at 1:15 PM, Henryk Konsek <he...@gmail.com> wrote:

> > You are invited add, comment, criticize etc.
>
> Hi Christian,
>
> Looks good :) .
>
> I've added some examples to Wiki demonstrating my vision of the usage
> of Claim Check EIP.
>
> // Setting default message store for route:
> defaultMessageStore(myStore);
>
> // Claim Check EIP store:
> // 1) Store body.
> // 2) Set body to null.
> // 3) Set Exchange.CLAIM_CHECK header to unique claim id.
> from(...).claimCheck().to(...);
>
> // Claim Check EIP read:
> // 1) Lookup for the Exchange.CLAIM_CHECK header value.
> // 2) Read the message.
> // 3) Set body to the value fetched from the store.
> from(...).setHeader(Exchange.CLAIM_CHECK, const("id")).claim().to(...);
>
> I'm curious if my claim check DSL design is similar to yours.
>
> Best regards.
>
> --
> Henryk Konsek
> http://henryk-konsek.blogspot.com
>



--

Re: Message History EIP/Message Store status

Posted by Henryk Konsek <he...@gmail.com>.
> You are invited add, comment, criticize etc.

Hi Christian,

Looks good :) .

I've added some examples to Wiki demonstrating my vision of the usage
of Claim Check EIP.

// Setting default message store for route:
defaultMessageStore(myStore);

// Claim Check EIP store:
// 1) Store body.
// 2) Set body to null.
// 3) Set Exchange.CLAIM_CHECK header to unique claim id.
from(...).claimCheck().to(...);

// Claim Check EIP read:
// 1) Lookup for the Exchange.CLAIM_CHECK header value.
// 2) Read the message.
// 3) Set body to the value fetched from the store.
from(...).setHeader(Exchange.CLAIM_CHECK, const("id")).claim().to(...);

I'm curious if my claim check DSL design is similar to yours.

Best regards.

--
Henryk Konsek
http://henryk-konsek.blogspot.com

Re: Message History EIP/Message Store status

Posted by Christian Ohr <ch...@gmail.com>.
Hi folks,

at last I managed to set up a Wiki page for discussing Camel 3 Message
Store. Here is is:

https://cwiki.apache.org/confluence/display/CAMEL/Camel+3.0+-+Message+Store

You are invited add, comment, criticize etc. The more thoughts and
ideas we get, the more likely it is to cover the user's needs
regarding this topic. If you are not able to edit the Wiki page, you
can also just post your comments here.
I will try to regularly aggregate them to the Wiki page I will also
try to give status updates on this mailing list once in a while for
everyone who does not like track the changes on the Wiki page.

best regards
Christian

2013/2/17 Henryk Konsek <he...@gmail.com>:
> Hi,
>
> Is there a single place (wiki page for example) where I could find the
> current status of the Message History development? I'd like to take a
> look where we are in this topic and probably contribute a little bit.
>
> This is probably more general issue - how can one check the progress
> of particular Camel 3 "idea"?
>
> Best regards.
>
> --
> Henryk Konsek
> http://henryk-konsek.blogspot.com