From e1384618cb6d1c06ec570d7798b783fa04a3d807 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 28 Apr 2009 13:05:48 +0000 Subject: [PATCH] Update service versions Improve JMS git-svn-id: https://svn.argeo.org/slc/trunk@2389 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- demo/pom.xml | 2 + .../org.argeo.slc.demo.basic/conf/basic.xml | 33 ++++- .../org.argeo.slc.demo.basic/conf/common.xml | 19 --- .../org.argeo.slc.demo.basic/conf/osgi.xml | 2 +- org.argeo.slc/pom.xml | 2 +- .../org/argeo/slc/osgiboot/Activator.java | 52 +++++--- runtime/org.argeo.slc.server/.springBeans | 3 +- .../impl/runtime/AgentServiceImpl.java | 6 + .../org/argeo/slc/server/spring/activemq.xml | 24 ---- .../org/argeo/slc/server/spring/db.xml | 122 ------------------ .../slc/server/spring/servletContext.xml | 62 --------- .../slc/server/spring/slc-doc-servlet.xml | 36 ------ .../slc/server/spring/slc-service-servlet.xml | 80 ------------ .../slc/server/spring/slc-ws-servlet.xml | 119 ----------------- .../slc/server/spring/slc-xslt-servlet.xml | 32 ----- .../argeo/slc/server/spring/transaction.xml | 64 --------- .../argeo/slc/runtime/SlcAgentFactory.java | 4 + .../main/java/org/argeo/slc/jms/JmsAgent.java | 47 +++++-- .../java/org/argeo/slc/jms/JmsAgentProxy.java | 20 +-- .../argeo/slc/jms/JmsAgentProxyFactory.java | 32 ++++- .../org/argeo/slc/activemq/destinations.xml | 2 + .../java/org/argeo/slc/msg/ReferenceList.java | 7 + .../org.argeo.slc.agent/META-INF/MANIFEST.MF | 2 +- .../META-INF/spring/jms.xml | 26 ++-- .../META-INF/MANIFEST.MF | 7 +- .../META-INF/spring/activemq-osgi.xml | 2 + .../META-INF/spring/activemq.xml | 23 ++-- .../META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../META-INF/spring/transaction-osgi.xml | 2 +- .../META-INF/spring/transaction.xml | 4 +- .../META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 5 +- .../META-INF/spring/jms-osgi.xml | 3 + .../META-INF/spring/jms.xml | 1 + .../META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../WEB-INF/doc-servlet.xml | 35 ++++- .../org.argeo.slc.webapp.war/WEB-INF/osgi.xml | 11 +- .../WEB-INF/slc-service-servlet.xml | 78 ++++++++++- .../WEB-INF/slc-ws-servlet.xml | 109 +++++++++++++++- .../WEB-INF/xslt-servlet.xml | 37 ++++-- .../org.argeo.slc.siteserver/bundles/pom.xml | 3 + .../simple-webapp.war/META-INF/MANIFEST.MF | 2 +- 47 files changed, 456 insertions(+), 680 deletions(-) delete mode 100644 demo/site/org.argeo.slc.demo.basic/conf/common.xml delete mode 100644 runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/activemq.xml delete mode 100644 runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/db.xml delete mode 100644 runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/servletContext.xml delete mode 100644 runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-doc-servlet.xml delete mode 100644 runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-service-servlet.xml delete mode 100644 runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-ws-servlet.xml delete mode 100644 runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-xslt-servlet.xml delete mode 100644 runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/transaction.xml diff --git a/demo/pom.xml b/demo/pom.xml index 7265e29fc..7f39cced4 100644 --- a/demo/pom.xml +++ b/demo/pom.xml @@ -76,6 +76,8 @@ org.argeo.slc.webapp, org.argeo.slc.ria + 0 + true diff --git a/demo/site/org.argeo.slc.demo.basic/conf/basic.xml b/demo/site/org.argeo.slc.demo.basic/conf/basic.xml index 6cb92172c..efc83dc81 100644 --- a/demo/site/org.argeo.slc.demo.basic/conf/basic.xml +++ b/demo/site/org.argeo.slc.demo.basic/conf/basic.xml @@ -26,8 +26,10 @@ - + @@ -39,18 +41,22 @@ - - + + - - + + + + + + @@ -66,4 +72,19 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/demo/site/org.argeo.slc.demo.basic/conf/common.xml b/demo/site/org.argeo.slc.demo.basic/conf/common.xml deleted file mode 100644 index e7dcd635c..000000000 --- a/demo/site/org.argeo.slc.demo.basic/conf/common.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/demo/site/org.argeo.slc.demo.basic/conf/osgi.xml b/demo/site/org.argeo.slc.demo.basic/conf/osgi.xml index 94ae50a67..050e4c771 100644 --- a/demo/site/org.argeo.slc.demo.basic/conf/osgi.xml +++ b/demo/site/org.argeo.slc.demo.basic/conf/osgi.xml @@ -9,5 +9,5 @@ - + \ No newline at end of file diff --git a/org.argeo.slc/pom.xml b/org.argeo.slc/pom.xml index 8b3120366..fc33ff5ea 100644 --- a/org.argeo.slc/pom.xml +++ b/org.argeo.slc/pom.xml @@ -21,7 +21,7 @@ 2.0.0 5.2.0.0006 5.2.0.0005 - 0.1.7 + 0.1.8 scm:svn:https://www.argeo.org/svn/slc/trunk/org.argeo.slc diff --git a/runtime/org.argeo.slc.osgiboot/src/main/java/org/argeo/slc/osgiboot/Activator.java b/runtime/org.argeo.slc.osgiboot/src/main/java/org/argeo/slc/osgiboot/Activator.java index c5f23e501..78d6024f9 100644 --- a/runtime/org.argeo.slc.osgiboot/src/main/java/org/argeo/slc/osgiboot/Activator.java +++ b/runtime/org.argeo.slc.osgiboot/src/main/java/org/argeo/slc/osgiboot/Activator.java @@ -24,20 +24,23 @@ public class Activator implements BundleActivator { public final static String PROP_SLC_OSGI_DEV_BASES = "slc.osgi.devBases"; public final static String PROP_SLC_OSGI_DEV_PATTERNS = "slc.osgi.devPatterns"; public final static String PROP_SLC_OSGI_LOCATIONS = "slc.osgi.locations"; + public final static String PROP_SLC_OSGI_BASE_URL = "slc.osgi.baseUrl"; public final static String PROP_SLC_MAVEN_DEPENDENCY_FILE = "slc.maven.dependencyFile"; + public final static String PROP_SLC_OSGIBOOT_DEBUG = "slc.osgiboot.debug"; - private static Boolean debug = false; + private static Boolean debug = Boolean.parseBoolean(System.getProperty( + PROP_SLC_OSGIBOOT_DEBUG, "false")); public void start(BundleContext bundleContext) throws Exception { try { info("SLC OSGi bootstrap starting..."); - installUrls(bundleContext, getDevLocationsUrls()); +// installUrls(bundleContext, getDevLocationsUrls()); installUrls(bundleContext, getLocationsUrls()); + installUrls(bundleContext, getBundlesUrls()); - List urls = getMavenUrls(); - installUrls(bundleContext, urls); + installUrls(bundleContext, getMavenUrls()); startBundles(bundleContext); @@ -56,13 +59,11 @@ public class Activator implements BundleActivator { Map installedBundles = getInstalledBundles(bundleContext); for (String url : urls) { try { - if (installedBundles.containsKey(url)) { Bundle bundle = installedBundles.get(url); // bundle.update(); - if (debug) - debug("Bundle " + bundle.getSymbolicName() - + " already installed from " + url); + info("Bundle " + bundle.getSymbolicName() + + " already installed from " + url); } else { Bundle bundle = bundleContext.installBundle(url); if (debug) @@ -80,6 +81,7 @@ public class Activator implements BundleActivator { protected List getLocationsUrls() { List urlsProvided = new ArrayList(); + String baseUrl = getProperty(PROP_SLC_OSGI_BASE_URL, "reference:file:"); String bundlesList = getProperty(PROP_SLC_OSGI_LOCATIONS); if (bundlesList == null) return urlsProvided; @@ -88,7 +90,7 @@ public class Activator implements BundleActivator { StringTokenizer st = new StringTokenizer(bundlesList, File.pathSeparator); while (st.hasMoreTokens()) { - urlsProvided.add("reference:file:" + st.nextToken().trim()); + urlsProvided.add(baseUrl + st.nextToken().trim()); } return urlsProvided; } @@ -330,8 +332,14 @@ public class Activator implements BundleActivator { protected static Map getInstalledBundles( BundleContext bundleContext) { Map installedBundles = new HashMap(); - for (Bundle bundle : bundleContext.getBundles()) - installedBundles.put(bundle.getLocation(), bundle); + + for (Bundle bundle : bundleContext.getBundles()) { + String key = bundle.getSymbolicName(); + if (key == null) { + key = bundle.getLocation(); + } + installedBundles.put(key, bundle); + } return installedBundles; } @@ -368,14 +376,23 @@ public class Activator implements BundleActivator { return component; } - protected String getProperty(String name) { - String value = System.getProperty(name); + protected static String getProperty(String name, String defaultValue) { + final String value; + if (defaultValue != null) + value = System.getProperty(name, defaultValue); + else + value = System.getProperty(name); + if (value == null || value.equals("")) return null; else return value; } + protected static String getProperty(String name) { + return getProperty(name, null); + } + private static void info(Object obj) { System.out.println("# INFO " + obj); } @@ -386,10 +403,11 @@ public class Activator implements BundleActivator { } private static void warn(Object obj) { - if (System.getProperty("os.name").contains("Windows")) - System.out.println("# WARN " + obj); - else - System.err.println("# WARN " + obj); + System.out.println("# WARN " + obj); + // if (System.getProperty("os.name").contains("Windows")) + // System.out.println("# WARN " + obj); + // else + // System.err.println("# WARN " + obj); } static class MavenFile { diff --git a/runtime/org.argeo.slc.server/.springBeans b/runtime/org.argeo.slc.server/.springBeans index 76d11cb51..c11d81486 100644 --- a/runtime/org.argeo.slc.server/.springBeans +++ b/runtime/org.argeo.slc.server/.springBeans @@ -1,13 +1,12 @@ 1 - + - src/main/resources/org/argeo/slc/server/spring/servletContext.xml diff --git a/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/impl/runtime/AgentServiceImpl.java b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/impl/runtime/AgentServiceImpl.java index 1f2397a09..fd3b42045 100644 --- a/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/impl/runtime/AgentServiceImpl.java +++ b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/impl/runtime/AgentServiceImpl.java @@ -74,6 +74,12 @@ public class AgentServiceImpl implements AgentService, InitializingBean, } } + lst = slcAgentDescriptorDao.listSlcAgentDescriptors(); + agentIds = new ArrayList(); + for (SlcAgentDescriptor ad : lst) + agentIds.add(ad.getUuid()); + agentFactory.pingAll(agentIds); + synchronized (AgentServiceImpl.this) { try { AgentServiceImpl.this.wait(pingCycle); diff --git a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/activemq.xml b/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/activemq.xml deleted file mode 100644 index 71dfbedc7..000000000 --- a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/activemq.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/db.xml b/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/db.xml deleted file mode 100644 index f18ed8292..000000000 --- a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/db.xml +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/servletContext.xml b/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/servletContext.xml deleted file mode 100644 index bb28fd6cd..000000000 --- a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/servletContext.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - slcServerDefault.sessionFactory.HSQL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-doc-servlet.xml b/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-doc-servlet.xml deleted file mode 100644 index 9b58275c0..000000000 --- a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-doc-servlet.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-service-servlet.xml b/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-service-servlet.xml deleted file mode 100644 index 8262be92d..000000000 --- a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-service-servlet.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-ws-servlet.xml b/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-ws-servlet.xml deleted file mode 100644 index e5300af7a..000000000 --- a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-ws-servlet.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - slcExecutionRequestEp - - - slcExecutionRequestEp - - - slcExecutionStepsRequestEp - - - createTreeTestResultRequestEp - - - closeTreeTestResultRequestEp - - - resultPartRequestEp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-xslt-servlet.xml b/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-xslt-servlet.xml deleted file mode 100644 index b08521809..000000000 --- a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/slc-xslt-servlet.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - org.argeo.slc.web.mvc.XsltMarshallerView - - - - WEB-INF/xslt/ - - - .xsl - - - - - \ No newline at end of file diff --git a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/transaction.xml b/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/transaction.xml deleted file mode 100644 index 7e6d0ad5c..000000000 --- a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/transaction.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/runtime/SlcAgentFactory.java b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/runtime/SlcAgentFactory.java index 3ca566640..19354ae21 100644 --- a/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/runtime/SlcAgentFactory.java +++ b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/runtime/SlcAgentFactory.java @@ -1,5 +1,9 @@ package org.argeo.slc.runtime; +import java.util.List; + public interface SlcAgentFactory { public SlcAgent getAgent(String uuid); + + public void pingAll(List activeAgentIds); } 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 6882ebaa4..90818a572 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 @@ -10,7 +10,6 @@ import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; -import javax.jms.TextMessage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -19,6 +18,7 @@ import org.argeo.slc.core.runtime.AbstractAgent; import org.argeo.slc.execution.ExecutionModule; import org.argeo.slc.execution.ExecutionModuleDescriptor; import org.argeo.slc.msg.ExecutionAnswer; +import org.argeo.slc.msg.ReferenceList; import org.argeo.slc.process.SlcExecution; import org.argeo.slc.runtime.SlcAgent; import org.argeo.slc.runtime.SlcAgentDescriptor; @@ -33,6 +33,8 @@ public class JmsAgent extends AbstractAgent implements SlcAgent, 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); private final SlcAgentDescriptor agentDescriptor; @@ -114,31 +116,44 @@ public class JmsAgent extends AbstractAgent implements SlcAgent, throw new SlcException("Cannot analyze incoming message " + message); } - final Object response = process(query, message); + final Object response; + final Destination destinationSend; + if (QUERY_PING_ALL.equals(query)) { + ReferenceList refList = (ReferenceList) convertFrom(message); + if (!refList.getReferences().contains(agentDescriptor.getUuid())) { + response = agentDescriptor; + destinationSend = agentRegister; + log.info("Agent #" + agentDescriptor.getUuid() + + " registering to " + agentRegister + + " in reply to a " + QUERY_PING_ALL + " query"); + } else { + return; + } + } else { + response = process(query, message); + destinationSend = responseDestination; + } new Thread() { public void run() { // Send response - jmsTemplate.convertAndSend(responseDestination, response, + jmsTemplate.convertAndSend(destinationSend, response, new MessagePostProcessor() { public Message postProcessMessage( Message messageToSend) throws JMSException { - messageToSend - .setStringProperty( - PROPERTY_QUERY, - message - .getStringProperty(PROPERTY_QUERY)); + messageToSend.setStringProperty(PROPERTY_QUERY, + query); messageToSend.setStringProperty( PROPERTY_SLC_AGENT_ID, agentDescriptor .getUuid()); - messageToSend.setJMSCorrelationID(message - .getJMSCorrelationID()); + messageToSend + .setJMSCorrelationID(correlationId); return messageToSend; } }); if (log.isDebugEnabled()) - log.debug("Sent response to query " + query - + " with correlationId " + correlationId); + log.debug("Sent response to query '" + query + + "' with correlationId " + correlationId); } }.start(); @@ -175,8 +190,12 @@ public class JmsAgent extends AbstractAgent implements SlcAgent, } } - protected Object convertFrom(Message message) throws JMSException { - return jmsTemplate.getMessageConverter().fromMessage(message); + protected Object convertFrom(Message message) { + try { + return jmsTemplate.getMessageConverter().fromMessage(message); + } catch (JMSException e) { + throw new SlcException("Cannot convert message", e); + } } public void setResponseDestination(Destination responseDestination) { 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 8837a8155..e70af24a8 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 @@ -7,7 +7,6 @@ import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.Session; -import javax.jms.TextMessage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -19,7 +18,6 @@ import org.argeo.slc.runtime.SlcAgent; import org.argeo.slc.runtime.SlcAgentDescriptor; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.MessageCreator; -import org.springframework.jms.support.converter.MessageConverter; public class JmsAgentProxy implements SlcAgent { private final static Log log = LogFactory.getLog(JmsAgentProxy.class); @@ -28,16 +26,13 @@ public class JmsAgentProxy implements SlcAgent { private final Destination requestDestination; private final Destination responseDestination; private final JmsTemplate jmsTemplate; - private final MessageConverter messageConverter; public JmsAgentProxy(String agentUuid, Destination requestDestination, - Destination responseDestination, JmsTemplate jmsTemplate, - MessageConverter messageConverter) { + Destination responseDestination, JmsTemplate jmsTemplate) { this.agentUuid = agentUuid; this.requestDestination = requestDestination; this.responseDestination = responseDestination; this.jmsTemplate = jmsTemplate; - this.messageConverter = messageConverter; } public ExecutionModuleDescriptor getExecutionModuleDescriptor( @@ -138,7 +133,7 @@ public class JmsAgentProxy implements SlcAgent { + agentUuid); try { - return messageConverter.fromMessage(responseMsg); + return fromMessage(responseMsg); } catch (Exception e) { throw new SlcException("Could not convert response from agent " + agentUuid + " with correlationId " + correlationId @@ -146,6 +141,15 @@ public class JmsAgentProxy implements SlcAgent { } } + protected Object fromMessage(Message message) throws JMSException { + return jmsTemplate.getMessageConverter().fromMessage(message); + } + + protected Message toMessage(Object obj, Session session) + throws JMSException { + return jmsTemplate.getMessageConverter().toMessage(obj, session); + } + protected class AgentMC implements MessageCreator { private final String query; private Object body = null; @@ -169,7 +173,7 @@ public class JmsAgentProxy implements SlcAgent { if (body == null) msg = session.createTextMessage(); else - msg = messageConverter.toMessage(body, session); + msg = toMessage(body, session); msg.setStringProperty(JmsAgent.PROPERTY_SLC_AGENT_ID, agentUuid); msg.setStringProperty(JmsAgent.PROPERTY_QUERY, query); msg.setJMSCorrelationID(correlationId); diff --git a/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgentProxyFactory.java b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgentProxyFactory.java index 1f625e13f..abe854112 100644 --- a/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgentProxyFactory.java +++ b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgentProxyFactory.java @@ -1,21 +1,43 @@ package org.argeo.slc.jms; +import java.util.List; +import java.util.UUID; + import javax.jms.Destination; +import javax.jms.JMSException; +import javax.jms.Message; +import org.argeo.slc.msg.ReferenceList; import org.argeo.slc.runtime.SlcAgent; import org.argeo.slc.runtime.SlcAgentFactory; import org.springframework.jms.core.JmsTemplate; -import org.springframework.jms.support.converter.MessageConverter; +import org.springframework.jms.core.MessagePostProcessor; public class JmsAgentProxyFactory implements SlcAgentFactory { private Destination requestDestination; private Destination responseDestination; + private Destination pingAllDestination; private JmsTemplate jmsTemplate; - private MessageConverter messageConverter; public SlcAgent getAgent(String uuid) { return new JmsAgentProxy(uuid, requestDestination, responseDestination, - jmsTemplate, messageConverter); + jmsTemplate); + } + + public void pingAll(List activeAgentIds) { + ReferenceList referenceList = new ReferenceList(activeAgentIds); + jmsTemplate.convertAndSend(pingAllDestination, referenceList, + new MessagePostProcessor() { + + public Message postProcessMessage(Message message) + throws JMSException { + message.setJMSCorrelationID(UUID.randomUUID() + .toString()); + message.setStringProperty(JmsAgent.PROPERTY_QUERY, + JmsAgent.QUERY_PING_ALL); + return message; + } + }); } public void setRequestDestination(Destination requestDestination) { @@ -30,8 +52,8 @@ public class JmsAgentProxyFactory implements SlcAgentFactory { this.jmsTemplate = jmsTemplate; } - public void setMessageConverter(MessageConverter messageConverter) { - this.messageConverter = messageConverter; + public void setPingAllDestination(Destination pingAllDestination) { + this.pingAllDestination = pingAllDestination; } } diff --git a/runtime/org.argeo.slc.support.activemq/src/main/resources/org/argeo/slc/activemq/destinations.xml b/runtime/org.argeo.slc.support.activemq/src/main/resources/org/argeo/slc/activemq/destinations.xml index 80f844d03..453b1ade4 100644 --- a/runtime/org.argeo.slc.support.activemq/src/main/resources/org/argeo/slc/activemq/destinations.xml +++ b/runtime/org.argeo.slc.support.activemq/src/main/resources/org/argeo/slc/activemq/destinations.xml @@ -17,6 +17,8 @@ parent="slcJms.amTopic" /> + references = new ArrayList(); + public ReferenceList() { + } + + public ReferenceList(List references) { + this.references = references; + } + public List getReferences() { return references; } diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.agent/META-INF/MANIFEST.MF b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.agent/META-INF/MANIFEST.MF index ec56b1878..f7a716560 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.agent/META-INF/MANIFEST.MF +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.agent/META-INF/MANIFEST.MF @@ -1,5 +1,5 @@ Bundle-SymbolicName: org.argeo.slc.agent -Bundle-Version: 0.11.3.qualifier +Bundle-Version: 0.11.3.SNAPSHOT Bundle-Name: Argeo SLC Agent Import-Package: javax.jms, 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 f128d3e26..7c95e7d2f 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 @@ -7,7 +7,7 @@ - @@ -15,23 +15,16 @@ + - - - + + + + @@ -61,5 +54,8 @@ - + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/MANIFEST.MF b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/MANIFEST.MF index e7fa0c18a..c365ba043 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/MANIFEST.MF +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/MANIFEST.MF @@ -1,18 +1,19 @@ Bundle-SymbolicName: org.argeo.slc.server.activemq -Bundle-Version: 0.11.3.qualifier +Bundle-Version: 0.11.3.SNAPSHOT Import-Package: javax.jms, javax.management.j2ee.statistics, org.apache.commons.logging, org.apache.activemq.pool, - org.apache.commons.pool + org.apache.commons.pool, + org.springframework.transaction Require-Bundle: org.argeo.slc.specs, org.argeo.slc.server, org.argeo.slc.support.activemq, + com.springsource.org.castor, org.springframework.core, org.springframework.context, org.springframework.beans, org.springframework.oxm, org.springframework.jms, - com.springsource.org.castor, org.argeo.dep.osgi.activemq diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/spring/activemq-osgi.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/spring/activemq-osgi.xml index f617c281b..28f8c0a00 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/spring/activemq-osgi.xml +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/spring/activemq-osgi.xml @@ -7,6 +7,8 @@ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> + diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/spring/activemq.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/spring/activemq.xml index f3c4b3194..55165d84b 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/spring/activemq.xml +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/spring/activemq.xml @@ -17,25 +17,15 @@ - + - - + destroy-method="stop" depends-on="broker"> @@ -45,16 +35,23 @@ + + + + + + - + diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.catalina/META-INF/MANIFEST.MF b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.catalina/META-INF/MANIFEST.MF index 600490a54..95ed13c45 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.catalina/META-INF/MANIFEST.MF +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.catalina/META-INF/MANIFEST.MF @@ -1,3 +1,3 @@ Bundle-SymbolicName: org.argeo.slc.server.catalina -Bundle-Version: 0.11.3.qualifier +Bundle-Version: 0.11.3.SNAPSHOT Fragment-Host: com.springsource.org.apache.catalina;bundle-version="[6.0.16,7.0.0)" diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/MANIFEST.MF b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/MANIFEST.MF index 24a6f92a6..28c9d15fe 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/MANIFEST.MF +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/MANIFEST.MF @@ -1,5 +1,5 @@ Bundle-SymbolicName: org.argeo.slc.server.hibernate -Bundle-Version: 0.11.3.qualifier +Bundle-Version: 0.11.3.SNAPSHOT Import-Package: org.aopalliance.aop, org.hibernate, diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/spring/transaction-osgi.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/spring/transaction-osgi.xml index d74c5d5f0..f9513808c 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/spring/transaction-osgi.xml +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/spring/transaction-osgi.xml @@ -7,7 +7,7 @@ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> - diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/spring/transaction.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/spring/transaction.xml index 7e6d0ad5c..6051065e9 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/spring/transaction.xml +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/spring/transaction.xml @@ -8,7 +8,7 @@ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> - @@ -39,7 +39,7 @@ - + diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hsqldb/META-INF/MANIFEST.MF b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hsqldb/META-INF/MANIFEST.MF index fbb0e4fee..9331415e1 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hsqldb/META-INF/MANIFEST.MF +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hsqldb/META-INF/MANIFEST.MF @@ -1,5 +1,5 @@ Bundle-SymbolicName: org.argeo.slc.server.hsqldb -Bundle-Version: 0.11.3.qualifier +Bundle-Version: 0.11.3.SNAPSHOT Require-Bundle: org.argeo.slc.server, org.argeo.slc.specs, org.argeo.slc.support.simple diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jdbc/META-INF/MANIFEST.MF b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jdbc/META-INF/MANIFEST.MF index e5f2aca31..5c23db039 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jdbc/META-INF/MANIFEST.MF +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jdbc/META-INF/MANIFEST.MF @@ -1,5 +1,5 @@ Bundle-SymbolicName: org.argeo.slc.server.jdbc -Bundle-Version: 0.11.3.qualifier +Bundle-Version: 0.11.3.SNAPSHOT Fragment-Host: org.springframework.jdbc Import-Package: com.mysql.jdbc;resolution:=optional, diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jms/META-INF/MANIFEST.MF b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jms/META-INF/MANIFEST.MF index fbee184ee..1a263df56 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jms/META-INF/MANIFEST.MF +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jms/META-INF/MANIFEST.MF @@ -1,8 +1,9 @@ Bundle-SymbolicName: org.argeo.slc.server.jms -Bundle-Version: 0.11.3.qualifier +Bundle-Version: 0.11.3.SNAPSHOT Import-Package: javax.jms, javax.management.j2ee.statistics, - org.apache.commons.logging + org.apache.commons.logging, + org.springframework.transaction Require-Bundle: org.argeo.slc.specs, org.argeo.slc.server, diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jms/META-INF/spring/jms-osgi.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jms/META-INF/spring/jms-osgi.xml index 6c41418a6..d644211cf 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jms/META-INF/spring/jms-osgi.xml +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.jms/META-INF/spring/jms-osgi.xml @@ -13,6 +13,9 @@ interface="org.argeo.slc.services.process.SlcExecutionService" /> + \ No newline at end of file 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 24cb545bb..cb7cd2da2 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 @@ -95,6 +95,7 @@ class="org.springframework.jms.listener.DefaultMessageListenerContainer" abstract="true"> + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/osgi.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/osgi.xml index e0d51a803..28612127b 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/osgi.xml +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/osgi.xml @@ -19,16 +19,17 @@ - + --> - + diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/slc-service-servlet.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/slc-service-servlet.xml index 11ae5380d..0f913c85f 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/slc-service-servlet.xml +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/slc-service-servlet.xml @@ -1,9 +1,79 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/slc-ws-servlet.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/slc-ws-servlet.xml index 18dce9a8a..1e0da9382 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/slc-ws-servlet.xml +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/slc-ws-servlet.xml @@ -3,5 +3,112 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + slcExecutionRequestEp + + + slcExecutionRequestEp + + + slcExecutionStepsRequestEp + + + createTreeTestResultRequestEp + + + closeTreeTestResultRequestEp + + + resultPartRequestEp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/xslt-servlet.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/xslt-servlet.xml index ddfd925ce..1d5e5be93 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/xslt-servlet.xml +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/xslt-servlet.xml @@ -1,20 +1,41 @@ - + - + + + + + + + + + + + + org.argeo.slc.web.mvc.XsltMarshallerView + + + + WEB-INF/xslt/ + + + .xsl + + + + + + - + diff --git a/server/org.argeo.slc.siteserver/bundles/pom.xml b/server/org.argeo.slc.siteserver/bundles/pom.xml index d2c3520fa..21059d4bd 100644 --- a/server/org.argeo.slc.siteserver/bundles/pom.xml +++ b/server/org.argeo.slc.siteserver/bundles/pom.xml @@ -17,6 +17,9 @@ org.argeo.slc.maven maven-argeo-osgi-plugin true + + true + diff --git a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/META-INF/MANIFEST.MF b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/META-INF/MANIFEST.MF index ed6219951..0f66c487e 100644 --- a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/META-INF/MANIFEST.MF +++ b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/META-INF/MANIFEST.MF @@ -1,7 +1,7 @@ Web-ContextPath: simple-web-app Bundle-Name: Simple OSGi War Bundle-SymbolicName: org.springframework.osgi.samples.simplewebapp -Bundle-Version: 0.1.0.qualifier +Bundle-Version: 0.11.3.SNAPSHOT Bundle-ClassPath: WEB-INF/classes Import-Package: javax.servlet, javax.servlet.http, -- 2.39.2