<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:spring="http://www.springframework.org/schema/beans"
       xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2"
       xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2"
    xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
       http://www.mulesource.org/schema/mule/stdio/2.2 http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd
       http://www.mulesource.org/schema/mule/vm/2.2 http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd">

    <description>
        This is a simple component example that demostrates how to expose
        a component over multiple transports.
    </description>

   <!--
        The stdio connector is used to send and receive information via System.in and System.out.
        Note this connector is only really useful for testing purposes.
            promptMessage - is what is written to the console
            messageDelayTime - is the time in milliseconds before the user is prompted again.
        These properties are set as bean properties on the connector.
    -->
    <stdio:connector name="SystemStreamConnector"
        promptMessage="Please enter something: "
        messageDelayTime="1000"/>

    <!--
        The Mule model initialises and manages your UMO components
    -->
    <model name="echoSample">
        <!--
            A Mule service defines all the necessary information about how your components will
            interact with the framework, other components in the system and external sources.
            Please refer to the Configuration Guide for a full description of all the parameters.
        -->
        <service name="EchoUMO">
            <!-- any number of endpoints can be added to an inbound router -->
            <inbound>
                <stdio:inbound-endpoint system="IN"/>
                <vm:inbound-endpoint path="echo"/>
            </inbound>

            <echo-component/>

            <!--
                An outbound router can have one or more router configurations that can be
                invoked depending on business rules, message contents, headers or any other
                criteria. The pass-through-router is a router that automatically passes
                on every message it receives
            -->
            <outbound>
                <pass-through-router>
                    <stdio:outbound-endpoint system="OUT"/>
                </pass-through-router>
            </outbound>
        </service>
    </model>
</mule>
