My architecture needs to multicast to multiple endpoints which will be
constructed dynamically and before the message is sent to end point it needs
to be customized.Now its like

  <multicast parallelProcessing="true" streaming="true"
                                                id="staticrecipient " 
strategyRef="StringAggregationStrategy"
                                                timeout="2500" 
onPrepareRef="StringDeepClonePrepare">

                                                <to uri="direct:A" />
                                                <to uri="direct:B" />
                                                
 </multicast> 

  <route id="AClient">
        <from uri="direct:A" />
        <camel:setHeader headerName="A">    <!- some endpoint specific 
manipulation
similar to this-->
        <camel:constant >Sending to A</camel:constant> <!- some endpoint 
specific
manipulation similar to this-->
        </camel:setHeader>
        <to uri="http://A.com";></to>
  </route>

Now we are moving away from static recipient list  list to dynamic recipient
list

<recipientList  parallelProcessing="true" streaming="true"
                                                id="dyanmicrecipient " 
strategyRef="StringAggregationStrategy"
                                                timeout="3000" 
onPrepareRef="StringDeepClonePrepare">


<what should come here for spring DSL.cant find it in doc.I can use Header
based receipient list but just asking>
                                                *<method(MessageRouter.class, 
&quot;routeTo&quot;)>* 
                                                
 </recipientList >

The method routeTo will return url like A.com,B.com(left out http protocal
due to hyperlink issues) ... depending upon incoming message.i am  assuming
camel-http will automatically take care of endpoint creation.correct me if i
am wrong.

Everything is same as previous but except i am trying to do everything
within multicast /recipientList  list without defining additional routes
because i dont know the routes during compile time. 
1)Can i use onPrep processor in some way.cant think of it because i dont
know which exchange is used for which endpoint.If i know endpoint    in
exchange properties , then i think i can manipulate it

very high level of something what i think

public class OnPrepare   implements Processor {
          public void process(Exchange exchange) throws Exception {
                //i know this function doesnt exist  
               String toURI=exchange.getTOUri() 
              //then perform endpoint based manipulation of message
                
                
            }

}
  
Can opPrep be used for this.is it only for things like clone.

2)Can i use intercept only for receipient list only.
 Problems:
1)i dont want to use intercept for whole route and filter based on
predicate.
2)I cant use interceptToSendEndpoint because i dont know endpoint at compile
time.
3)In short,i want to intercept the message. In multicast ,say if its sent to
Endpoint A then add header A in intercept bean.In multicast ,say if its sent
to Endpoint B then add header B in intercept bean.Noting Endpoint A  and
Endpoint B will be constructed dynamically and will be in multicast as
probably receipient list.

Can this be done.

3)Whats the best way of doing it.I dont want to move away from Spring DSL.I
know i can mix  spring DSL and java DSL.DO you guys think i should
dynamically construct routes/Endpoints using java DSL and invoke them in
multicast/recipientList in spring DSL.Rewrite Entire code in java DSL is the
last option.

Thanks for reading such a long post.Much appreciated.Please let me know if
its confusing. It would be nice if you can answer all three or whichever you
know.






--
View this message in context: 
http://camel.465427.n5.nabble.com/Camel-receipient-list-with-interceptor-tp5729462.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to