<?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:jms="http://www.springframework.org/schema/integration/jms"
	   xmlns:context="http://www.springframework.org/schema/context"
	   xmlns:util="http://www.springframework.org/schema/util"
	   xsi:schemaLocation="http://www.springframework.org/schema/integration/jms https://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd
		http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd
		http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd">

	<context:property-placeholder location="classpath:org/springframework/integration/jms/config/channel.properties"/>

	<jms:channel id="queueReferenceChannel" queue="testQueue"
		explicit-qos-enabled="true"
		delivery-persistent="true"
		time-to-live="123"
		priority="12"/>

	<jms:channel id="queueNameChannel" queue-name="test.queue" max-subscribers="1" />

	<jms:channel id="queueNameWithResolverChannel" queue-name="foo"
			     destination-resolver="destinationResolver" connection-factory="connFact"/>

	<jms:publish-subscribe-channel id="topicReferenceChannel" topic="testTopic"/>

	<jms:publish-subscribe-channel id="topicNameChannel" topic-name="test.topic"
		auto-startup="false"
		durable="true" subscription="subName" subscription-shared="true" />

	<jms:publish-subscribe-channel id="topicNameWithResolverChannel" topic-name="foo"
			     destination-resolver="destinationResolver" connection-factory="connFact"/>

	<jms:channel id="channelWithConcurrencySettings" queue-name="foo" concurrency="11-55"/>

	<jms:channel id="queueChannelWithInterceptors" queue-name="foo">
		<jms:interceptors>
			<bean class="org.springframework.integration.jms.config.JmsChannelParserTests$TestInterceptor"/>
		</jms:interceptors>
	</jms:channel>

	<jms:publish-subscribe-channel id="topicChannelWithInterceptors" topic-name="test.topic">
		<jms:interceptors>
			<bean class="org.springframework.integration.jms.config.JmsChannelParserTests$TestInterceptor"/>
			<bean class="org.springframework.integration.jms.config.JmsChannelParserTests$TestInterceptor"/>
		</jms:interceptors>
	</jms:publish-subscribe-channel>

	<jms:channel id="pollableQueueReferenceChannel" queue="testQueue" message-driven="false"/>

	<jms:channel id="pollableQueueNameChannel" queue-name="foo" message-driven="false"/>

	<jms:channel id="pollableWithSelectorChannel" queue="testQueue" message-driven="false"
		selector="foo='bar'" />

	<bean id="testQueue" class="org.apache.activemq.artemis.jms.client.ActiveMQQueue">
		<constructor-arg value="test.queue"/>
	</bean>

	<bean id="testTopic" class="org.apache.activemq.artemis.jms.client.ActiveMQTopic">
		<constructor-arg value="test.topic"/>
	</bean>

	<bean id="destinationResolver"
		  class="org.springframework.integration.jms.config.JmsChannelParserTests$TestDestinationResolver"/>

	<util:constant id="jmsConnectionFactory"
				   static-field="org.springframework.integration.jms.ActiveMQMultiContextTests.amqFactory"/>

	<alias name="jmsConnectionFactory" alias="connFact"/>

	<jms:channel id="withPlaceholders" queue="${queue}"
									   concurrency="${concurrency}"/>

	<jms:channel id="withDefaultContainer" queue-name="default.container.queue" />

	<jms:channel id="withExplicitDefaultContainer" queue-name="explicit.default.container.queue"
		container-type="default" />

	<jms:channel id="withSimpleContainer" queue-name="simple.container.queue"
		container-type="simple"/>

	<jms:channel id="withContainerClass" queue-name="custom.container.queue"
		container-class="${container.class}" />

	<jms:channel id="withContainerClassSpEL" queue-name="custom.container.queue"
		container-class="#{'org.springframework.integration.jms.config.JmsChannelParserTests$CustomTestMessageListenerContainer'}" />

</beans>
