]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgent.java
Finalize JMS serialization
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.activemq / src / main / java / org / argeo / slc / jms / JmsAgent.java
index e7899d1ae0500e72186e4155a4ca9f9338e0d633..f5472b0e5937d6a8626605cbaad2d7eaf499072b 100644 (file)
@@ -1,8 +1,23 @@
+/*
+ * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.argeo.slc.jms;
 
 import java.net.InetAddress;
 import java.net.UnknownHostException;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
@@ -14,13 +29,12 @@ import javax.jms.MessageListener;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.argeo.slc.SlcException;
-import org.argeo.slc.core.runtime.AbstractAgent;
-import org.argeo.slc.execution.ExecutionModule;
+import org.argeo.slc.core.runtime.DefaultAgent;
 import org.argeo.slc.execution.ExecutionModuleDescriptor;
 import org.argeo.slc.msg.ExecutionAnswer;
+import org.argeo.slc.msg.MsgConstants;
 import org.argeo.slc.msg.ReferenceList;
 import org.argeo.slc.process.SlcExecution;
-import org.argeo.slc.runtime.SlcAgent;
 import org.argeo.slc.runtime.SlcAgentDescriptor;
 import org.springframework.beans.factory.DisposableBean;
 import org.springframework.beans.factory.InitializingBean;
@@ -29,11 +43,9 @@ import org.springframework.jms.core.JmsTemplate;
 import org.springframework.jms.core.MessagePostProcessor;
 
 /** JMS based implementation of SLC Agent. */
-public class JmsAgent extends AbstractAgent implements SlcAgent,
-               InitializingBean, DisposableBean, MessageListener {
+public class JmsAgent extends DefaultAgent implements InitializingBean,
+               DisposableBean, MessageListener {
        public final static String PROPERTY_QUERY = "query";
-       public final static String PROPERTY_SLC_AGENT_ID = "slc_agentId";
-
        public final static String QUERY_PING_ALL = "pingAll";
 
        private final static Log log = LogFactory.getLog(JmsAgent.class);
@@ -101,30 +113,6 @@ public class JmsAgent extends AbstractAgent implements SlcAgent,
                return messageSelector;
        }
 
-       public ExecutionModuleDescriptor getExecutionModuleDescriptor(
-                       String moduleName, String version) {
-               return getModulesManager().getExecutionModuleDescriptor(moduleName,
-                               version);
-       }
-
-       public List<ExecutionModuleDescriptor> listExecutionModuleDescriptors() {
-               List<ExecutionModule> modules = getModulesManager()
-                               .listExecutionModules();
-
-               List<ExecutionModuleDescriptor> descriptors = new ArrayList<ExecutionModuleDescriptor>();
-               for (ExecutionModule module : modules) {
-                       ExecutionModuleDescriptor md = new ExecutionModuleDescriptor();
-                       md.setName(module.getName());
-                       md.setVersion(module.getVersion());
-                       descriptors.add(md);
-               }
-               return descriptors;
-       }
-
-       public boolean ping() {
-               return true;
-       }
-
        public void onMessage(final Message message) {
                final String query;
                final String correlationId;
@@ -154,12 +142,15 @@ public class JmsAgent extends AbstractAgent implements SlcAgent,
                }
 
                // Send response
+               if (log.isTraceEnabled())
+                       log.trace("About to send response " + response.getClass());
                jmsTemplate.convertAndSend(destinationSend, response,
                                new MessagePostProcessor() {
                                        public Message postProcessMessage(Message messageToSend)
                                                        throws JMSException {
                                                messageToSend.setStringProperty(PROPERTY_QUERY, query);
-                                               messageToSend.setStringProperty(PROPERTY_SLC_AGENT_ID,
+                                               messageToSend.setStringProperty(
+                                                               MsgConstants.PROPERTY_SLC_AGENT_ID,
                                                                agentDescriptor.getUuid());
                                                messageToSend.setJMSCorrelationID(correlationId);
                                                return messageToSend;