« Return to Thread: Configuring service encapsulation

Re: Configuring service encapsulation

by Richard Swart :: Rate this Message:

Reply to Author | View in Thread

João,

Hereby a working config file for your problem. I must say I didn't get it working with the replyTo in the multicasting router. Therefore I had to set synchronous=true on the endpoints of the multicasting-router. To send the response of the 'startpoint' service to the output-service-in, I used another chaining-router. For test purposes I created a component nl.endpoint.component.WrapMessageWithTag, which just wraps the message with an XML tag. In the example below I left out generic-service-component-2 through 4, but these are equivalent with generic-service-component-1.

<stdio:connector name="stdioConnector" promptMessage="Enter text"/>
   
   <model name="Test">
     
      <service name="entry-point-service">
         <inbound>
            <stdio:inbound-endpoint system="IN"
               synchronous="false" connector-ref="stdioConnector"/>
         </inbound>
         <outbound>
            <chaining-router>
               <vm:outbound-endpoint path="startpoint" />
               <vm:outbound-endpoint path="output-service-in" synchronous="true"/>
            </chaining-router>
         </outbound>
      </service>

     <service name="startpoint">
         <inbound>
            <vm:inbound-endpoint path="startpoint" synchronous="true"/>
         </inbound>
         <outbound>
            <multicasting-router>
               <vm:outbound-endpoint path="generic-service1-in" synchronous="true"/>
               <vm:outbound-endpoint path="generic-service2-in" synchronous="true"/>
            </multicasting-router>
         </outbound>
      </service>
     
      <service name="generic-service1">
         <inbound>
            <vm:inbound-endpoint path="generic-service1-in"  synchronous="true"/>
         </inbound>
         <outbound>
            <chaining-router>
               <vm:outbound-endpoint path="generic-service-component-1"  />
               <vm:outbound-endpoint path="generic-service-component-2" synchronous="true" />
            </chaining-router>
         </outbound>
      </service>

      <service name="generic-service2">
         <inbound>
            <vm:inbound-endpoint path="generic-service2-in" synchronous="true"/>
         </inbound>
         <outbound>
            <chaining-router>
               <vm:outbound-endpoint path="generic-service-component-3"  />
               <vm:outbound-endpoint path="generic-service-component-4" synchronous="true" />
            </chaining-router>
         </outbound>
      </service>

      <service name="output-service">
         <inbound>
            <vm:inbound-endpoint path="output-service-in" />
         </inbound>
         <outbound>
            <pass-through-router>
               <stdio:outbound-endpoint system="OUT" />
            </pass-through-router>
         </outbound>
      </service>

      <service name="generic-service-component-1">
         <inbound>
            <vm:inbound-endpoint path="generic-service-component-1" synchronous="true"/>
         </inbound>
         <component >
           <singleton-object class="nl.endpoint.component.WrapMessageWithTag">
               <property key="tag" value="generic-service-component-1"/>
           </singleton-object>
         </component>
      </service>

   </model>

Regards,
Mario

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


 « Return to Thread: Configuring service encapsulation