java - Next channel in Pipe Filter design not being invoked - Spring Integration -


i new spring integration , trying learn. trying implement pipe filter design. idea send message channel particular message endpoint processes message , passes next channel. here spring config

<int:gateway id="instancerequest" service-interface="com.trivialjava.rnd.spring_inttest.requestprocessor"/>  <!-- each request checked type , sent proper channel  --> <int:channel id="requests"/> <int:splitter input-channel="requests" expression="payload.request" output-channel="requestdata"/>  <int:channel id="requestdata"/> <int:router input-channel="requestdata"  expression="payload.class.name">     <int:mapping value="com.trivialjava.rnd.entity.instancerequest" channel="instancerequests"/>     <int:mapping value="com.trivialjava.rnd.entity.solutionrequest" channel="solutionrequests"/> </int:router>  <!-- instancerequests processed filter 1 --> <int:channel id="instancerequests">     <int:queue capacity="20"/> </int:channel> <int:service-activator input-channel="instancerequests" ref="instancerequestnamehandler" method="preparename" output-channel="instancerequestsdesc"/>  <!-- instancerequestsdesc processed filter 2 --> <int:channel id="instancerequestsdesc">     <int:queue capacity="20"/> </int:channel> <int:service-activator input-channel="instancerequestsdesc" ref="instancerequestdeschandler" method="preparedesc" />  <beans:bean id="instancerequestnamehandler" class="com.trivialjava.rnd.spring_inttest.instancenamerequestprocessor"/>  <beans:bean id="instancerequestdeschandler" class="com.trivialjava.rnd.spring_inttest.instancedescrequestprocessor"/>  

i have request interface, , 2 implementations instancerequest , solutionrequest. can ignore solution request time being.

here instancerequest handlers

public class instancenamerequestprocessor {  private final logger logger = loggerfactory.getlogger(instancenamerequestprocessor.class);  public string preparename(instancerequest request) {          system.out.println(thread.currentthread().getname()                 + " request name #" + request.getname() );         logger.info(thread.currentthread().getname()                 + " request name #" + request.getname() );         return request.getdescription();  } }   

and

public class instancedescrequestprocessor {  private final logger logger = loggerfactory.getlogger(instancedescrequestprocessor.class);  public string preparedesc(string request){     system.out.println(thread.currentthread().getname()             + " request desc #" + request );     logger.info(thread.currentthread().getname()             + " request desc #" + request );     return request; }  } 

now when invoking gateway passing instancerequest, first channel instancerequest i.e instancerequests being invoked not second channel i.e instancerequestsdesc. in logs can see messages

13:54:09.077 debug [main][org.springframework.integration.router.expressionevaluatingrouter] channel mappings:{} replaced with:{com.trivialjava.rnd.entity.instancerequest=instancerequests, com.trivialjava.rnd.entity.solutionrequest=solutionrequests} 13:54:15.334 debug [main][org.springframework.integration.channel.queuechannel] presend on channel 'instancerequests', message: genericmessage [payload=com.trivialjava.rnd.entity.instancerequest@632da81b, headers={timestamp=1429898055334, id=6eada370-486c-7ab8-23df-38836782c846, correlationid=b0138751-8154-ff87-b2e2-dc5f8b2381d3, sequencesize=1, sequencenumber=1}] 13:54:15.334 debug [main][org.springframework.integration.channel.queuechannel] postsend (sent=true) on channel 'instancerequests', message: genericmessage [payload=com.trivialjava.rnd.entity.instancerequest@632da81b, headers={timestamp=1429898055334, id=6eada370-486c-7ab8-23df-38836782c846, correlationid=b0138751-8154-ff87-b2e2-dc5f8b2381d3, sequencesize=1, sequencenumber=1}] 

but there no logs suggests second channel been initialised. have missed something, configuration or known design issue in spring integration.


Comments

Popular posts from this blog

shopping cart - Page redirect not working PHP -

php - How to modify a menu to show sub-menus -

python - Installing PyDev in eclipse is failed -