<execDir>target/exec/server</execDir>
<jvmArgs>
<jvmArg>-Xmx256m</jvmArg>
- <!--
- <jvmArg>-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000</jvmArg>
- -->
+ <!-- <jvmArg>-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000</jvmArg>-->
</jvmArgs>
<systemProperties>
<slc.osgi.start>
<artifactId>maven-argeo-osgi-plugin</artifactId>
<configuration>
<execDir>target/exec/agent</execDir>
+ <jvmArgs>
+ <jvmArg>-Xmx128m</jvmArg>
+ <!-- <jvmArg>-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8001</jvmArg> -->
+ </jvmArgs>
<systemProperties>
<slc.osgi.start>
org.springframework.osgi.extender,
org.springframework.jms.connection,
org.springframework.jms.core,
org.springframework.jms.listener,
+ org.springframework.jms.listener.adapter,
org.springframework.oxm.castor
Require-Bundle:
org.argeo.slc.support.activemq,
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="jmsConnectionFactory" />
<property name="destination" ref="slcJms.destination.agent.newExecution" />
- <property name="messageListener" ref="jmsAgent">
- <!--
- <bean parent="slcTemplate.jms.listenerAdapterCastor">
- <constructor-arg ref="slcDefault.jms.agent" /> <property
- name="defaultListenerMethod" value="newExecution" /> </bean>
- -->
+ <property name="messageListener">
+ <bean parent="slcTemplate.jms.listenerAdapterCastor">
+ <constructor-arg ref="jmsAgent" />
+ <property name="defaultListenerMethod" value="runSlcExecution" />
+ </bean>
+ </property>
+ <property name="messageSelector">
+ <bean factory-bean="jmsAgent" factory-method="getMessageSelector" />
</property>
- <!--
- <property name="messageSelector"> <bean
- factory-bean="slcDefault.jms.agent"
- factory-method="getMessageSelector"/> </property>
- -->
</bean>
<bean id="jmsAgent" class="org.argeo.slc.jms.JmsAgent">
</bean>
</property>
</bean>
-
+
<!-- SLC Execution Listener -->
<bean id="slcExecutionListener" class="org.argeo.slc.jms.JmsSlcExecutionNotifier">
<property name="updateStatusDestination" ref="slcJms.destination.slcExecution.updateStatus" />
<plugin>
<groupId>org.argeo.slc.maven</groupId>
<artifactId>maven-argeo-osgi-plugin</artifactId>
- <version>0.1.6</version>
<extensions>true</extensions>
</plugin>
</plugins>
<artifactId>org.argeo.slc.server</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.argeo.slc.runtime</groupId>
+ <artifactId>org.argeo.slc.osgiboot</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.argeo.slc.runtime</groupId>
<artifactId>org.argeo.slc.support.equinox</artifactId>
<groupId>javax.xml.soap</groupId>
<artifactId>com.springsource.javax.xml.soap</artifactId>
</dependency>
+
+ <!--
+ <dependency>
+ <groupId>javax.xml.stream</groupId>
+ <artifactId>com.springsource.javax.xml.stream</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.xalan</groupId>
+ <artifactId>com.springsource.org.apache.xalan</artifactId>
+ </dependency>
+ -->
</dependencies>
</project>
\ No newline at end of file
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
-import javax.jms.JMSException;
-import javax.jms.Message;
-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.process.SlcExecution;
import org.argeo.slc.runtime.SlcAgent;
import org.argeo.slc.runtime.SlcAgentDescriptor;
import org.springframework.beans.factory.DisposableBean;
/** JMS based implementation of SLC Agent. */
public class JmsAgent extends AbstractAgent implements SlcAgent,
- InitializingBean, DisposableBean, MessageListener {
+ InitializingBean, DisposableBean {
private final static Log log = LogFactory.getLog(JmsAgent.class);
private final SlcAgentDescriptor agentDescriptor;
this.agentUnregister = agentUnregister;
}
- public void onMessage(Message message) {
- // FIXME: we filter the messages on the client side,
- // because of a weird problem with selector since moving to OSGi
- try {
- if (message.getStringProperty("slc-agentId").equals(
- agentDescriptor.getUuid())) {
- runSlcExecution((SlcExecution) messageConverter
- .fromMessage(message));
- }
- } catch (JMSException e) {
- throw new SlcException("Cannot convert message " + message, e);
- }
-
- }
+ /*
+ * public void onMessage(Message message) { // FIXME: we filter the messages
+ * on the client side, // because of a weird problem with selector since
+ * moving to OSGi try { if (message.getStringProperty("slc-agentId").equals(
+ * agentDescriptor.getUuid())) { runSlcExecution((SlcExecution)
+ * messageConverter .fromMessage(message)); } else { if
+ * (log.isDebugEnabled()) log.debug("Filtered out message " + message); } }
+ * catch (JMSException e) { throw new SlcException("Cannot convert message "
+ * + message, e); }
+ *
+ * }
+ */
public String getMessageSelector() {
- String messageSelector = "slc-agentId=" + agentDescriptor.getUuid()
- + "";
+ String messageSelector = "slc_agentId='" + agentDescriptor.getUuid()
+ + "'";
// String messageSelector = "slc-agentId LIKE '%'";
if (log.isDebugEnabled())
- log.debug("Message selector: '" + messageSelector + "'");
+ log.debug("Message selector: " + messageSelector);
return messageSelector;
}
<property name="unmarshaller" ref="slcDefault.castor.marshaller" />
</bean>
+ <bean id="slcTemplate.jms.listenerAdapterCastor"
+ class="org.springframework.jms.listener.adapter.MessageListenerAdapter"
+ abstract="true">
+ <property name="messageConverter" ref="slcDefault.jms.castorMessageConverter" />
+ </bean>
+
</beans>
\ No newline at end of file
this._amqClient.sendMessage(
"topic://agent.newExecution",
slcExec.toXml(),
- {"slc-agentId":currentUuid}
+ {"slc_agentId":currentUuid}
);
// Force logs refresh right now!
qx.event.Timer.once(function(){
this._amqClient.sendMessage(
"topic://agent.newExecution",
slcExecMessage.toXml(),
- {"slc-agentId":agentUuid}
+ {"slc_agentId":agentUuid}
);
// Force logs refresh right now!
qx.event.Timer.once(function(){
<plugin>
<groupId>org.argeo.slc.maven</groupId>
<artifactId>maven-argeo-osgi-plugin</artifactId>
- <version>0.1.6</version>
<extensions>true</extensions>
</plugin>
</plugins>