Instead of
<bean id="myRepo"
class="org.apache.camel.processor.idempotent.MemoryIdempotentRepository"/>

you should configure your own IdempotentRepository.

Best,

Christian
-----------------

Software Integration Specialist

Apache Member
V.P. Apache Camel | Apache Camel PMC Member | Apache Camel committer
Apache Incubator PMC Member

https://www.linkedin.com/pub/christian-mueller/11/551/642


On Tue, Feb 11, 2014 at 10:59 PM, Sam Adams <sbad...@gmail.com> wrote:

> Hi,
>
> Unless I am mistaken this just adds a the standard IdempotentConsumer to
> the route? This would remove messages with duplicate keys indefinatly. I
> only want to remove them while the duplicate message is being processed.
>
> Or am I missing something?
>
> Thanks,
>
> Sam
>
>
> On 11 February 2014 21:43, Christian Müller <christian.muel...@gmail.com
> >wrote:
>
> > See [1] for details.
> >
> > <bean id="myRepo"
> >
> class="org.apache.camel.processor.idempotent.MemoryIdempotentRepository"/>
> >
> > <camelContext xmlns="http://camel.apache.org/schema/spring";>
> >     <route>
> >         <from uri="direct:start"/>
> >         <idempotentConsumer messageIdRepositoryRef="myRepo">
> >             <!-- use the messageId header as key for identifying
> duplicate
> > messages -->
> >             <header>messageId</header>
> >             <!-- if not a duplicate send it to this mock endpoint -->
> >             <to uri="mock:result"/>
> >         </idempotentConsumer>
> >     </route>
> > </camelContext>
> >
> >
> > [1] http://camel.apache.org/idempotent-consumer.html
> >
> > Best,
> >
> > Christian
> > -----------------
> >
> > Software Integration Specialist
> >
> > Apache Member
> > V.P. Apache Camel | Apache Camel PMC Member | Apache Camel committer
> > Apache Incubator PMC Member
> >
> > https://www.linkedin.com/pub/christian-mueller/11/551/642
> >
> >
> > On Tue, Feb 11, 2014 at 6:21 PM, Sam Adams <sbad...@gmail.com> wrote:
> >
> > > Hi,
> > >
> > > I want to extend the IdempotentConsumer to only deny duplicated while
> the
> > > duplicate message is being processed.
> > >
> > > My plan was to add an additional Synchronization that removed the
> > messageId
> > > from the repository when the message has finished processing. However I
> > > can't find a simple example of how to add my version of the
> > > IdempotentConsumer to my route. I believe I could add it as a standard
> > > processor but I don't really know how to do this as doesn't have a
> > no-args
> > > constructor.
> > >
> > > My other idea would be to add the additional Synchronization in the
> route
> > > directly, outside the IdempotentConsumer but I couldn't see a clean way
> > of
> > > finding the messageId or the repository.
> > >
> > > Any help would be greatly appreciated.
> > >
> > > Thanks,
> > >
> > > Sam
> > >
> >
>

Reply via email to