]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - modules/agent/org.argeo.slc.agent.jms/META-INF/spring/jms.xml
Finalize JMS serialization
[gpl/argeo-slc.git] / modules / agent / org.argeo.slc.agent.jms / META-INF / spring / jms.xml
index 3349c30125eacfbdf8d20d12b6ac1d549c38e598..78a15fee6cf6b364e34679763d07529535990eff 100644 (file)
@@ -4,63 +4,76 @@
        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" />