-package org.argeo.slc.jms;
-
-import javax.jms.Message;
-import javax.jms.MessageListener;
-
-import org.argeo.slc.SlcException;
-import org.argeo.slc.msg.MsgConstants;
-import org.argeo.slc.msg.MsgHandler;
-import org.argeo.slc.process.SlcExecution;
-import org.argeo.slc.runtime.SlcAgent;
-import org.argeo.slc.runtime.SlcAgentFactory;
-import org.springframework.jms.support.converter.MessageConverter;
-
-/** Temporary hack */
-public class JmsTransferNewExecution implements MessageListener {
- private MessageConverter messageConverter;
- private SlcAgentFactory agentFactory;
- private MsgHandler serviceMsgHandler;
-
- public void onMessage(final Message message) {
- try {
- String agentId = message
- .getStringProperty(MsgConstants.PROPERTY_SLC_AGENT_ID);
- final SlcAgent agent = agentFactory.getAgent(agentId);
- final SlcExecution slcExecution = (SlcExecution) messageConverter
- .fromMessage(message);
- new Thread() {
- public void run() {
- agent.runSlcExecution(slcExecution);
- }
- }.start();
- serviceMsgHandler.handleMsg(slcExecution);
- } catch (Exception e) {
- throw new SlcException("Could not transfer new execution "
- + message, e);
- }
- }
-
- public void setMessageConverter(MessageConverter messageConverter) {
- this.messageConverter = messageConverter;
- }
-
- public void setAgentFactory(SlcAgentFactory agentFactory) {
- this.agentFactory = agentFactory;
- }
-
- public void setServiceMsgHandler(MsgHandler serviceMsgHandler) {
- this.serviceMsgHandler = serviceMsgHandler;
- }
-
-}