From 7a2f320afe9a0d3d7590365b26f3f5b0e8d9fd3b Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 27 Apr 2009 14:11:09 +0000 Subject: [PATCH] Centralize MySQL config Improve newExecution dispatching git-svn-id: https://svn.argeo.org/slc/trunk@2379 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- demo/pom.xml | 2 +- org.argeo.slc/pom.xml | 16 +++++ .../main/java/org/argeo/slc/jms/JmsAgent.java | 30 ++++++--- .../java/org/argeo/slc/jms/JmsAgentProxy.java | 8 +-- .../slc/jms/JmsTransferNewExecution.java | 34 +++++++++++ .../org.argeo.slc.support.hibernate/pom.xml | 46 +++++++------- .../META-INF/spring/jms.xml | 8 +-- .../META-INF/spring/jms.xml | 9 +++ .../META-INF/MANIFEST.MF | 15 +++++ .../META-INF/spring/mysql.xml | 61 +++++++++++++++++++ .../META-INF/spring/osgi.xml | 11 ++++ .../mysql.properties | 4 ++ server/org.argeo.slc.siteserver/pom.xml | 9 +++ 13 files changed, 211 insertions(+), 42 deletions(-) create mode 100644 runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsTransferNewExecution.java create mode 100644 server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/META-INF/MANIFEST.MF create mode 100644 server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/META-INF/spring/mysql.xml create mode 100644 server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/META-INF/spring/osgi.xml create mode 100644 server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/mysql.properties diff --git a/demo/pom.xml b/demo/pom.xml index e4f569132..e8ed6781e 100644 --- a/demo/pom.xml +++ b/demo/pom.xml @@ -67,7 +67,7 @@ org.springframework.osgi.web.extender, org.springframework.osgi.samples.simplewebapp, org.argeo.slc.server.activemq, - org.argeo.slc.server.hsqldb, + org.argeo.slc.server.mysql, org.argeo.slc.server.hibernate, org.argeo.slc.server.services, org.argeo.slc.server.jms, diff --git a/org.argeo.slc/pom.xml b/org.argeo.slc/pom.xml index 7dbcd53cd..efa7f3db8 100644 --- a/org.argeo.slc/pom.xml +++ b/org.argeo.slc/pom.xml @@ -563,12 +563,28 @@ limitations under the License. com.springsource.org.apache.commons.pool 1.4.0 + + org.apache.commons + com.springsource.org.apache.commons.dbcp + 1.2.2.osgi + + org.hsqldb com.springsource.org.hsqldb 1.8.0.9 + + net.sourceforge.jtds + jtds + 1.2.2 + + + com.mysql.jdbc + com.springsource.com.mysql.jdbc + 5.1.6 + diff --git a/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgent.java b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgent.java index 4b031f947..7490f32d1 100644 --- a/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgent.java +++ b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgent.java @@ -31,6 +31,9 @@ import org.springframework.jms.support.converter.MessageConversionException; /** JMS based implementation of SLC Agent. */ public class JmsAgent extends AbstractAgent implements SlcAgent, InitializingBean, DisposableBean, SessionAwareMessageListener { + public final static String PROPERTY_QUERY = "query"; + public final static String PROPERTY_SLC_AGENT_ID = "slc_agentId"; + private final static Log log = LogFactory.getLog(JmsAgent.class); private final SlcAgentDescriptor agentDescriptor; @@ -101,7 +104,7 @@ public class JmsAgent extends AbstractAgent implements SlcAgent, public void onMessage(Message message, Session session) throws JMSException { MessageProducer producer = session.createProducer(responseDestination); - String query = message.getStringProperty("query"); + String query = message.getStringProperty(PROPERTY_QUERY); String correlationId = message.getJMSCorrelationID(); if (log.isDebugEnabled()) log.debug("Received query " + query + " with correlationId " @@ -123,16 +126,23 @@ public class JmsAgent extends AbstractAgent implements SlcAgent, agentDescriptorToSend.setModuleDescriptors(lst); responseMsg = jmsTemplate.getMessageConverter().toMessage( agentDescriptorToSend, session); + } else if ("newExecution".equals(query)) { + + SlcExecution slcExecution = (SlcExecution) jmsTemplate + .getMessageConverter().fromMessage(message); + runSlcExecution(slcExecution); } else { - try { - //FIXME: generalize - SlcExecution slcExecution = (SlcExecution) jmsTemplate - .getMessageConverter().fromMessage(message); - runSlcExecution(slcExecution); - } catch (MessageConversionException e) { - if (log.isDebugEnabled()) - log.debug("Unsupported query " + query, e); - } + // try { + // // FIXME: generalize + // SlcExecution slcExecution = (SlcExecution) jmsTemplate + // .getMessageConverter().fromMessage(message); + // runSlcExecution(slcExecution); + // } catch (MessageConversionException e) { + // if (log.isDebugEnabled()) + // log.debug("Unsupported query " + query, e); + // } + if (log.isDebugEnabled()) + log.debug("Unsupported query " + query); return; } diff --git a/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgentProxy.java b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgentProxy.java index 3a311b934..66cf3920e 100644 --- a/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgentProxy.java +++ b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgentProxy.java @@ -12,15 +12,11 @@ import javax.jms.TextMessage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.slc.SlcException; -import org.argeo.slc.execution.ExecutionModule; import org.argeo.slc.execution.ExecutionModuleDescriptor; -import org.argeo.slc.msg.ObjectList; import org.argeo.slc.runtime.SlcAgent; import org.argeo.slc.runtime.SlcAgentDescriptor; -import org.springframework.jms.JmsException; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.MessageCreator; -import org.springframework.jms.support.converter.MessageConversionException; import org.springframework.jms.support.converter.MessageConverter; public class JmsAgentProxy implements SlcAgent { @@ -102,8 +98,8 @@ public class JmsAgentProxy implements SlcAgent { if (correlationId == null) throw new SlcException("JMSCorrelationID not set"); TextMessage msg = session.createTextMessage(); - msg.setStringProperty("slc_agentId", agentUuid); - msg.setStringProperty("query", query); + msg.setStringProperty(JmsAgent.PROPERTY_SLC_AGENT_ID, agentUuid); + msg.setStringProperty(JmsAgent.PROPERTY_QUERY, query); msg.setJMSCorrelationID(correlationId); setArguments(msg); return msg; diff --git a/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsTransferNewExecution.java b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsTransferNewExecution.java new file mode 100644 index 000000000..856b956a4 --- /dev/null +++ b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsTransferNewExecution.java @@ -0,0 +1,34 @@ +package org.argeo.slc.jms; + +import java.util.UUID; + +import javax.jms.Destination; +import javax.jms.JMSException; +import javax.jms.Message; +import javax.jms.MessageProducer; +import javax.jms.Session; +import javax.jms.TextMessage; + +import org.springframework.jms.listener.SessionAwareMessageListener; + +/** Temporary hack*/ +public class JmsTransferNewExecution implements SessionAwareMessageListener { + private Destination requestDestination; + + public void onMessage(Message message, Session session) throws JMSException { + TextMessage messageToSend = session + .createTextMessage(((TextMessage) message).getText()); + messageToSend + .setStringProperty(JmsAgent.PROPERTY_QUERY, "newExecution"); + messageToSend.setStringProperty(JmsAgent.PROPERTY_SLC_AGENT_ID, message + .getStringProperty(JmsAgent.PROPERTY_SLC_AGENT_ID)); + messageToSend.setJMSCorrelationID(UUID.randomUUID().toString()); + MessageProducer producer = session.createProducer(requestDestination); + producer.send(messageToSend); + } + + public void setRequestDestination(Destination requestDestination) { + this.requestDestination = requestDestination; + } + +} diff --git a/runtime/org.argeo.slc.support.hibernate/pom.xml b/runtime/org.argeo.slc.support.hibernate/pom.xml index 2dfdcaee0..ced338e3d 100644 --- a/runtime/org.argeo.slc.support.hibernate/pom.xml +++ b/runtime/org.argeo.slc.support.hibernate/pom.xml @@ -1,4 +1,5 @@ - + 4.0.0 org.argeo.slc.runtime @@ -34,26 +35,24 @@ org.argeo.slc.support.simple *,org.hibernate.proxy - - + + @@ -102,6 +101,11 @@ org.springframework.context.support + + org.apache.commons + com.springsource.org.apache.commons.dbcp + + org.argeo.slc.runtime diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.agent/META-INF/spring/jms.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.agent/META-INF/spring/jms.xml index a60b28d54..f128d3e26 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.agent/META-INF/spring/jms.xml +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.agent/META-INF/spring/jms.xml @@ -17,21 +17,21 @@ - - + --> - + diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jms/META-INF/spring/jms.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jms/META-INF/spring/jms.xml index da5e2c388..b2000f625 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jms/META-INF/spring/jms.xml +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jms/META-INF/spring/jms.xml @@ -39,6 +39,15 @@ + + + + + + + + + diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/META-INF/MANIFEST.MF b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/META-INF/MANIFEST.MF new file mode 100644 index 000000000..86720da97 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/META-INF/MANIFEST.MF @@ -0,0 +1,15 @@ +Bundle-Name: Argeo SLC MySQL +Bundle-SymbolicName: org.argeo.slc.server.mysql +Bundle-Version: 0.11.3.qualifier +Import-Package: + com.mysql.jdbc, + net.sf.ehcache.hibernate, + org.hibernate, + org.springframework.cache.ehcache, + org.springframework.jdbc.datasource, + org.springframework.orm.hibernate3, + org.apache.commons.dbcp, + org.springframework.beans.factory.config +Require-Bundle: + org.argeo.slc.specs, + org.argeo.slc.support.simple diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/META-INF/spring/mysql.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/META-INF/spring/mysql.xml new file mode 100644 index 000000000..7f5d9a2b7 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/META-INF/spring/mysql.xml @@ -0,0 +1,61 @@ + + + + + + + + + + osgibundle:mysql.properties + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/META-INF/spring/osgi.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/META-INF/spring/osgi.xml new file mode 100644 index 000000000..6d7b0e6f1 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/META-INF/spring/osgi.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/mysql.properties b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/mysql.properties new file mode 100644 index 000000000..dc979ad4d --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.mysql/mysql.properties @@ -0,0 +1,4 @@ +jdbc.driverClassName=com.mysql.jdbc.Driver +jdbc.url=jdbc:mysql://localhost/sparta_prod +jdbc.username=root +jdbc.password= diff --git a/server/org.argeo.slc.siteserver/pom.xml b/server/org.argeo.slc.siteserver/pom.xml index e980d0d46..c2594095e 100644 --- a/server/org.argeo.slc.siteserver/pom.xml +++ b/server/org.argeo.slc.siteserver/pom.xml @@ -121,6 +121,15 @@ + + net.sourceforge.jtds + jtds + + + com.mysql.jdbc + com.springsource.com.mysql.jdbc + + com.sun.xml -- 2.39.2