<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:int="http://www.springframework.org/schema/integration"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/integration https://www.springframework.org/schema/integration/spring-integration.xsd
		http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd
		http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

	<context:property-placeholder properties-ref="props"/>

	<util:properties id="props">
			<prop key="channelC" >channelC</prop>
			<prop key="channelB" >channelB</prop>
	</util:properties>

	<int:service-activator id="serviceA" input-channel="channelA" output-channel="#{'channelB'}" expression="''"/>

	<int:service-activator id="serviceB" input-channel="#{'channelB'}" output-channel="${channelC}" expression="''"/>

	<int:service-activator id="serviceC" input-channel="${channelC}" output-channel="#{@channelD.getComponentName()}" expression="''"/>

	<int:service-activator id="serviceD" input-channel="parentChannelA" output-channel="#{@parentChannelB.getComponentName()}" expression="''"/>

	<int:service-activator id="serviceE" input-channel="#{'parentChannelB'}"  expression="''"/>

	<int:publish-subscribe-channel id="channelEarly"/>

	<int:service-activator id="serviceF" input-channel="channelEarly"  expression="''"/>

	<int:channel id="channelC"/>

	<int:channel id="channelD"/>

</beans>
