xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"
default-lazy-init="false">
- <import resource="classpath:org/argeo/slc/activemq/spring.xml" />
+ <import resource="classpath:org/argeo/slc/castor/spring.xml" />
+ <import resource="classpath:org/argeo/slc/activemq/destinations.xml" />
- <bean id="jmsAgent.listener.request" parent="jmsAgent.listener.template">
+ <!-- Agent implementation -->
+ <bean id="jmsAgent" class="org.argeo.slc.jms.JmsAgent">
+ <property name="agentRegister" ref="slcJms.destination.agent.register" />
+ <property name="agentUnregister" ref="slcJms.destination.agent.unregister" />
+ <property name="modulesManager" ref="modulesManager" />
+ <property name="responseDestination" ref="slcJms.destination.agent.response" />
+ <property name="jmsTemplate" ref="jmsTemplate" />
+ </bean>
+
+ <!-- Listeners -->
+ <bean id="jmsAgent.listener.request" parent="listenerTemplate">
<property name="destination" ref="slcJms.destination.agent.request" />
<property name="messageSelector">
<bean factory-bean="jmsAgent" factory-method="getMessageSelector" />
</property>
</bean>
- <bean id="jmsAgent.attachmentUploader" class="org.argeo.slc.jms.JmsAttachmentUploader">
- <property name="destination" ref="slcJms.destination.attachment.add" />
- <property name="jmsTemplate" ref="jmsTemplate" />
- </bean>
-
- <bean id="jmsAgent.listener.pingAll" parent="jmsAgent.listener.template">
+ <bean id="jmsAgent.listener.pingAll" parent="listenerTemplate">
<property name="destination" ref="slcJms.destination.agent.pingAll" />
<property name="messageListener" ref="jmsAgent" />
</bean>
- <bean id="jmsAgent" class="org.argeo.slc.jms.JmsAgent">
- <property name="agentRegister" ref="slcJms.destination.agent.register" />
- <property name="agentUnregister" ref="slcJms.destination.agent.unregister" />
- <property name="modulesManager" ref="modulesManager" />
- <property name="responseDestination" ref="slcJms.destination.agent.response" />
- <property name="jmsTemplate" ref="jmsTemplate" />
- </bean>
-
- <!-- TreeTestResult Listener -->
+ <!-- Services -->
<bean id="resultListener" class="org.argeo.slc.jms.JmsTreeTestResultListener">
- <!-- <property name="createDestination" ref="slcJms.destination.test.create" />
- <property name="addResultPartDestination" ref="slcJms.destination.test.addResultPart" />
- <property name="closeDestination" ref="slcJms.destination.test.close" />
--->
<property name="executionEventDestination" ref="slcJms.destination.execution.event" />
+ <property name="onlyOnClose" value="${slc.agent.jms.resultListener.onlyOnClose}"/>
<property name="jmsTemplate" ref="jmsTemplate" />
</bean>
-
- <!-- SLC Execution Listener -->
- <bean id="slcExecutionListener" class="org.argeo.slc.jms.JmsSlcExecutionNotifier">
- <!-- <property name="updateStatusDestination" ref="slcJms.destination.slcExecution.updateStatus" />
--->
+ <bean id="attachmentUploader" class="org.argeo.slc.jms.JmsAttachmentUploader">
+ <property name="destination" ref="slcJms.destination.attachment.add" />
<property name="jmsTemplate" ref="jmsTemplate" />
+ </bean>
+ <bean id="slcExecutionListener" class="org.argeo.slc.jms.JmsSlcExecutionNotifier">
<property name="executionEventDestination" ref="slcJms.destination.execution.event" />
+ <property name="jmsTemplate" ref="jmsTemplate" />
</bean>
- <!-- Common -->
+ <!-- JMS -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
- <property name="messageConverter" ref="slcDefault.jms.castorMessageConverter" />
+ <property name="messageConverter">
+ <bean class="org.argeo.slc.jms.MarshallerMessageConverter">
+ <property name="disableMarshalling" value="${slc.agent.jms.disableMarshalling}" />
+ <property name="marshaller" ref="slcDefault.castor.marshaller" />
+ <property name="unmarshaller" ref="slcDefault.castor.marshaller" />
+ </bean>
+ </property>
<property name="connectionFactory" ref="jmsConnectionFactory" />
</bean>
+ <bean id="jmsConnectionFactory"
+ class="org.springframework.jms.connection.CachingConnectionFactory">
+ <property name="targetConnectionFactory">
+ <bean class="org.apache.activemq.ActiveMQConnectionFactory">
+ <property name="brokerURL">
+ <value>${slc.server.jms.url}</value>
+ </property>
+ </bean>
+ </property>
+ </bean>
+
<bean id="jmsTransactionManager"
class="org.springframework.jms.connection.JmsTransactionManager">
<property name="connectionFactory" ref="jmsConnectionFactory" />
</bean>
- <bean id="jmsAgent.listener.template"
+ <!-- Templates -->
+ <bean id="listenerTemplate"
class="org.springframework.jms.listener.DefaultMessageListenerContainer"
abstract="true">
<property name="connectionFactory" ref="jmsConnectionFactory" />