<mule-configuration id="Enterprise-Applications-Mashup" version="1.0">
  <connector name="jmsConnector" className="org.mule.providers.jms.JmsConnector">
    <properties>
      <property name="jndiProviderUrl"
                value="bitjmsnaming://172.28.63.209:7222"/>
      <property name="connectionFactoryJndiName"
                value="QueueConnectionFactory"/>
      <map name="jndiProviderProperties">
        <property name="java.naming.factory.initial"
                  value="com.bitco.bitjms.naming.bitjmsInitialContextFactory"/>
        <property name="java.naming.security.principal" value="admin"/>
        <property name="java.naming.security.credentials" value=""/>
      </map>
      <property name="username" value="admin"/>
      <property name="password" value=""/>
    </properties>
  </connector>
  
  <global-endpoints>
    <endpoint name="inJMSGTA"       address="jms://q.gta.in" connector="jmsConnector"/>
    <endpoint name="inJMSSeebelle"  address="jms://q.seebelle.in" connector="jmsConnector"/>
    <endpoint name="inJMSYenta"     address="jms://q.yenta.in" connector="jmsConnector"/>
    <endpoint name="inJMSCatwire"   address="jms://q.catwire.in" connector="jmsConnector"/>
    <endpoint name="inJMSBitco"     address="jms://q.bitco.in" connector="jmsConnector"/>
    <endpoint name="outJMSGTA"      address="jms://q.gta.out" connector="jmsConnector"/>
    <endpoint name="outJMSSeebelle" address="jms://q.seebelle.out" connector="jmsConnector"/>
    <endpoint name="outJMSYenta"    address="jms://q.yenta.out" connector="jmsConnector"/>
    <endpoint name="outJMSCatwire"  address="jms://q.catwire.out" connector="jmsConnector"/>
    <endpoint name="outJMSBitco"    address="jms://q.bitco.out" connector="jmsConnector"/>
    <endpoint name="console"        address="stream://System.out" />
  </global-endpoints>


  <transformers>
    <transformer name="JMSMessageToObject"
                 className="org.mule.providers.jms.transformers.JMSMessageToObject" />
    <transformer name="ObjectToString"
                 className="org.mule.transformers.simple.ObjectToString" />
  </transformers>


  <model name="Enterprise-Applications-Mashup-JMS">
    <mule-descriptor name="JMSMessageSwitchboard"
     implementation="org.mule.components.simple.PassThroughComponent">


      <inbound-router>
        <global-endpoint name="outJMSBitco"/>
      </inbound-router>


      <outbound-router match-all="true">
        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSYenta" />
          <filter className="org.mule.samples.jms.JMSHeaderFilter"
                  expression="OrderHistoryRequest" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSSiebel" />
          <filter className="org.mule.samples.jms.JMSHeaderFilter"
                  expression="OrderHistoryResponse" />
        </router>            


        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSCatwire"/>
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="item" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSCatwire"/>
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="item_mapping" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSYenta"/>
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="PAMInventoryUpdate" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSGTA" />
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="CustomerSearchRequest" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSSiebel" />
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="CustomerSearchResponse" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSYenta" />
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="OrderDetailsRequest" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSSiebel" />
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="OrderDetailsResponse" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSYenta" />
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="OrderAddUpdRequest" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSSiebel" />
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="OrderAddUpdResponse" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSYenta" />
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="catwireCreateItem" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSGTA" />
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="catalogupdate" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSGTA" />
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="productupdate" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSGTA" />
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="skuupdate" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSYenta" />
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="gtaCreateOrder" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSYenta" />
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="gtaGetOrderDetails" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="openJmsOutbound"/>
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="XXXOrderUpdate" />
        </router>            

        <router className="org.mule.routing.outbound.FilteringOutboundRouter">
          <global-endpoint name="inJMSBitco"/>
          <filter className="org.mule.samples.jms.JMSHeaderFilter" expression="OrderRelease" />
        </router>            

        <router className="org.mule.routing.outbound.OutboundPassThroughRouter">
          <endpoint address="stream://System.out" transformers="ObjectToString" />
        </router>

      </outbound-router>
    </mule-descriptor>
  </model>
</mule-configuration>