From 9da90cc89f923b65c404554f97d915d6333fa624 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sun, 26 Apr 2009 09:43:00 +0000 Subject: [PATCH] Introduce simple selector activemq tests git-svn-id: https://svn.argeo.org/slc/trunk@2373 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../argeo.slc.activemq.selector/.classpath | 9 ++ sandbox/argeo.slc.activemq.selector/.project | 23 +++ .../.settings/org.eclipse.jdt.core.prefs | 12 ++ .../.settings/org.maven.ide.eclipse.prefs | 9 ++ .../META-INF/MANIFEST.MF | 12 ++ .../META-INF/spring/activemq.xml | 27 ++++ .../META-INF/spring/jms.xml | 20 +++ .../META-INF/MANIFEST.MF | 5 + .../log4j.properties | 27 ++++ sandbox/argeo.slc.activemq.selector/pom.xml | 135 ++++++++++++++++++ .../selector/DummyMessageListener.java | 24 ++++ .../selector/AbstractActiveMqTest.java | 54 +++++++ .../argeo/slc/activemq/selector/OsgiTest.java | 36 +++++ .../slc/activemq/selector/SelectorTest.java | 69 +++++++++ .../src/test/resources/log4j.properties | 23 +++ 15 files changed, 485 insertions(+) create mode 100644 sandbox/argeo.slc.activemq.selector/.classpath create mode 100644 sandbox/argeo.slc.activemq.selector/.project create mode 100644 sandbox/argeo.slc.activemq.selector/.settings/org.eclipse.jdt.core.prefs create mode 100644 sandbox/argeo.slc.activemq.selector/.settings/org.maven.ide.eclipse.prefs create mode 100644 sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/MANIFEST.MF create mode 100644 sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/activemq.xml create mode 100644 sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/jms.xml create mode 100644 sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/META-INF/MANIFEST.MF create mode 100644 sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/log4j.properties create mode 100644 sandbox/argeo.slc.activemq.selector/pom.xml create mode 100644 sandbox/argeo.slc.activemq.selector/src/main/java/argeo/slc/activemq/selector/DummyMessageListener.java create mode 100644 sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/AbstractActiveMqTest.java create mode 100644 sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/OsgiTest.java create mode 100644 sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/SelectorTest.java create mode 100644 sandbox/argeo.slc.activemq.selector/src/test/resources/log4j.properties diff --git a/sandbox/argeo.slc.activemq.selector/.classpath b/sandbox/argeo.slc.activemq.selector/.classpath new file mode 100644 index 000000000..f87384d72 --- /dev/null +++ b/sandbox/argeo.slc.activemq.selector/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/sandbox/argeo.slc.activemq.selector/.project b/sandbox/argeo.slc.activemq.selector/.project new file mode 100644 index 000000000..6fd296ac5 --- /dev/null +++ b/sandbox/argeo.slc.activemq.selector/.project @@ -0,0 +1,23 @@ + + + argeo.slc.activemq.selector + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.maven.ide.eclipse.maven2Builder + + + + + + org.maven.ide.eclipse.maven2Nature + org.eclipse.jdt.core.javanature + + diff --git a/sandbox/argeo.slc.activemq.selector/.settings/org.eclipse.jdt.core.prefs b/sandbox/argeo.slc.activemq.selector/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..586d6e7a9 --- /dev/null +++ b/sandbox/argeo.slc.activemq.selector/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +#Sun Apr 26 07:20:59 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/sandbox/argeo.slc.activemq.selector/.settings/org.maven.ide.eclipse.prefs b/sandbox/argeo.slc.activemq.selector/.settings/org.maven.ide.eclipse.prefs new file mode 100644 index 000000000..6e2e6ad75 --- /dev/null +++ b/sandbox/argeo.slc.activemq.selector/.settings/org.maven.ide.eclipse.prefs @@ -0,0 +1,9 @@ +#Sun Apr 26 07:24:25 CEST 2009 +activeProfiles= +eclipse.preferences.version=1 +fullBuildGoals=process-test-resources +includeModules=false +resolveWorkspaceProjects=true +resourceFilterGoals=process-resources resources\:testResources +skipCompilerPlugin=true +version=1 diff --git a/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/MANIFEST.MF b/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/MANIFEST.MF new file mode 100644 index 000000000..3453049bd --- /dev/null +++ b/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/MANIFEST.MF @@ -0,0 +1,12 @@ +Bundle-SymbolicName: argeo.slc.activemq.selector.jms +Bundle-Version: 0.1.1 +Import-Package: javax.jms, + javax.management.j2ee.statistics, + org.apache.commons.logging +Require-Bundle: + org.springframework.core, + org.springframework.context, + org.springframework.beans, + org.springframework.jms, + org.argeo.dep.osgi.activemq, + argeo.slc.activemq.selector diff --git a/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/activemq.xml b/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/activemq.xml new file mode 100644 index 000000000..65290a9e4 --- /dev/null +++ b/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/activemq.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + tcp://localhost:61616 + + + + + \ No newline at end of file diff --git a/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/jms.xml b/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/jms.xml new file mode 100644 index 000000000..70d47cb05 --- /dev/null +++ b/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.jms/META-INF/spring/jms.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/META-INF/MANIFEST.MF b/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/META-INF/MANIFEST.MF new file mode 100644 index 000000000..0336af968 --- /dev/null +++ b/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/META-INF/MANIFEST.MF @@ -0,0 +1,5 @@ +Bundle-Name: Log4j Configuration +Bundle-SymbolicName: argeo.slc.activemq.selector.log4j +Bundle-Version: 0.11.3.qualifier +Fragment-Host: com.springsource.org.apache.log4j + diff --git a/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/log4j.properties b/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/log4j.properties new file mode 100644 index 000000000..a2b833001 --- /dev/null +++ b/sandbox/argeo.slc.activemq.selector/bundles/argeo.slc.activemq.selector.log4j/log4j.properties @@ -0,0 +1,27 @@ +log4j.rootLogger=WARN, console + +## Levels +log4j.logger.argeo=DEBUG +log4j.logger.org.argeo=DEBUG +log4j.logger.org.argeo.slc.execution.ExecutionParameterPostProcessor=TRACE +log4j.logger.org.argeo.slc.execution.ExecutionContext=DEBUG +log4j.logger.org.argeo.slc.execution.SimpleExecutionSpec=DEBUG + +log4j.logger.org.springframework=WARN +log4j.logger.org.springframework.jms=DEBUG + +log4j.logger.org.apache.activemq=DEBUG +log4j.logger.org.apache.activemq.transport=WARN +log4j.logger.org.apache.activemq.broker.TransportConnection=WARN + +log4j.logger.org.apache.catalina=INFO +log4j.logger.org.apache.coyote=INFO +log4j.logger.org.apache.tomcat=INFO + +## Appenders +# console is set to be a ConsoleAppender. +log4j.appender.console=org.apache.log4j.ConsoleAppender + +# console uses PatternLayout. +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n diff --git a/sandbox/argeo.slc.activemq.selector/pom.xml b/sandbox/argeo.slc.activemq.selector/pom.xml new file mode 100644 index 000000000..f4fe8d2c0 --- /dev/null +++ b/sandbox/argeo.slc.activemq.selector/pom.xml @@ -0,0 +1,135 @@ + + 4.0.0 + + org.argeo.slc.runtime + argeo-slc-runtime + 0.11.3-SNAPSHOT + ../../runtime/ + + org.argeo.slc.sandbox + argeo.slc.activemq.selector + Argeo SLC ActiveMQ Selector Tests + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-source-plugin + + + org.apache.maven.plugins + maven-surefire-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + org.apache.felix + maven-bundle-plugin + ${version.maven-bundle-plugin} + + + org.argeo.slc.maven + maven-argeo-osgi-plugin + + + ${basedir}/bundles;in=*;ex=**/.svn/**,${basedir}/target;in=*.jar;ex=*-sources.jar + + org.springframework.osgi.extender, + argeo.slc.activemq.selector.jms + + + + + + + + + + + org.springframework + org.springframework.jms + + + org.springframework + org.springframework.transaction + + + org.springframework.osgi + org.springframework.osgi.extender + + + + + javax.jms + com.springsource.javax.jms + + + + + org.argeo.dep.osgi + org.argeo.dep.osgi.activemq + + + org.apache.geronimo.specs + com.springsource.javax.management.j2ee + + + javax.activation + com.springsource.javax.activation + + + javax.servlet + com.springsource.javax.servlet + + + javax.ejb + com.springsource.javax.ejb + + + javax.xml.rpc + com.springsource.javax.xml.rpc + + + javax.xml.soap + com.springsource.javax.xml.soap + + + + javax.xml.stream + + com.springsource.javax.xml.stream + + + + org.apache.xalan + + com.springsource.org.apache.xalan + + + + + + + org.apache.log4j + com.springsource.org.apache.log4j + + + + org.junit + com.springsource.junit + test + + + org.argeo.slc.runtime + org.argeo.slc.osgiboot + test + + + \ No newline at end of file diff --git a/sandbox/argeo.slc.activemq.selector/src/main/java/argeo/slc/activemq/selector/DummyMessageListener.java b/sandbox/argeo.slc.activemq.selector/src/main/java/argeo/slc/activemq/selector/DummyMessageListener.java new file mode 100644 index 000000000..08b6a2f5c --- /dev/null +++ b/sandbox/argeo.slc.activemq.selector/src/main/java/argeo/slc/activemq/selector/DummyMessageListener.java @@ -0,0 +1,24 @@ +package argeo.slc.activemq.selector; + +import javax.jms.Message; +import javax.jms.MessageListener; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.InitializingBean; + +public class DummyMessageListener implements MessageListener, InitializingBean { + private final static Log log = LogFactory + .getLog(DummyMessageListener.class); + + public void onMessage(Message message) { + + log.info("DummyMessageListener received message " + message); + } + + public void afterPropertiesSet() throws Exception { + log.info("DummyMessageListener configured."); + + } + +} diff --git a/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/AbstractActiveMqTest.java b/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/AbstractActiveMqTest.java new file mode 100644 index 000000000..b4db82bb3 --- /dev/null +++ b/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/AbstractActiveMqTest.java @@ -0,0 +1,54 @@ +package argeo.slc.activemq.selector; + +import javax.jms.Connection; +import javax.jms.ConnectionFactory; +import javax.jms.MessageConsumer; +import javax.jms.MessageProducer; +import javax.jms.Queue; +import javax.jms.Session; +import javax.jms.TextMessage; + +import junit.framework.TestCase; + +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.activemq.broker.BrokerService; + +public abstract class AbstractActiveMqTest extends TestCase { + // private final static Log log = LogFactory.getLog(SelectorTest.class); + + protected BrokerService broker; + protected String connectorStr = "vm://localhost"; + + protected String propName = "myFilter"; + protected String propValue = "myValue"; + protected String txt = "myText"; + + protected Session session; + protected Queue queue; + protected MessageProducer producer; + + protected void createSession() throws Exception { + ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( + connectorStr); + Connection connection = connectionFactory.createConnection(); + connection.start(); + session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + + queue = session.createQueue("testQueue"); + producer = session.createProducer(queue); + } + + protected TextMessage createMessage() throws Exception { + TextMessage msg = session.createTextMessage(); + msg.setStringProperty(propName, propValue); + msg.setText(txt); + return msg; + } + + protected void assertMsg(TextMessage receivedMsg) throws Exception { + assertNotNull(receivedMsg); + assertEquals(propValue, receivedMsg.getStringProperty(propName)); + assertEquals(txt, receivedMsg.getText()); + } + +} diff --git a/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/OsgiTest.java b/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/OsgiTest.java new file mode 100644 index 000000000..a09cef859 --- /dev/null +++ b/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/OsgiTest.java @@ -0,0 +1,36 @@ +package argeo.slc.activemq.selector; + + +public class OsgiTest extends AbstractActiveMqTest { + public void testSend() throws Exception { + producer.send(createMessage()); + } + + protected void setUp() throws Exception { + connectorStr = "tcp://localhost:61616"; + createSession(); + } + + protected void tearDown() throws Exception { + session.close(); + } + + /* + * public static void main(String[] args) { try { ConnectionFactory + * connectionFactory = new ActiveMQConnectionFactory( + * "tcp://localhost:61616"); Connection connection = + * connectionFactory.createConnection(); connection.start(); Session session + * = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + * + * Queue queue = session.createQueue("testQueue"); MessageProducer producer + * = session.createProducer(queue); + * + * // TextMessage msg = session.createTextMessage(); // + * msg.setStringProperty(propName, propValue); // msg.setText(txt); + * + * } catch (JMSException e) { e.printStackTrace(); } + * + * } + */ + +} diff --git a/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/SelectorTest.java b/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/SelectorTest.java new file mode 100644 index 000000000..0712a1145 --- /dev/null +++ b/sandbox/argeo.slc.activemq.selector/src/test/java/argeo/slc/activemq/selector/SelectorTest.java @@ -0,0 +1,69 @@ +package argeo.slc.activemq.selector; + +import javax.jms.Connection; +import javax.jms.ConnectionFactory; +import javax.jms.MessageConsumer; +import javax.jms.MessageProducer; +import javax.jms.Queue; +import javax.jms.Session; +import javax.jms.TextMessage; + +import junit.framework.TestCase; + +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.activemq.broker.BrokerService; + +public class SelectorTest extends AbstractActiveMqTest { + // private final static Log log = LogFactory.getLog(SelectorTest.class); + + protected BrokerService broker; + protected String connectorStr = "vm://localhost"; + + protected String propName = "myFilter"; + protected String propValue = "myValue"; + protected String txt = "myText"; + + protected Session session; + protected Queue queue; + protected MessageProducer producer; + + public void testNoFilter() throws Exception { + producer.send(createMessage()); + TextMessage receivedMsg = (TextMessage) session.createConsumer(queue) + .receive(2000); + assertMsg(receivedMsg); + } + + public void testFilterOk() throws Exception { + producer.send(createMessage()); + MessageConsumer consumer = session.createConsumer(queue, propName + + "='" + propValue + "'"); + TextMessage receivedMsg = (TextMessage) consumer.receive(2000); + assertMsg(receivedMsg); + } + + public void testFilterNok() throws Exception { + producer.send(createMessage()); + MessageConsumer consumer = session.createConsumer(queue, propName + + "='notMyValue'"); + TextMessage receivedMsg = (TextMessage) consumer.receive(1000); + assertNull("Message reception should time out", receivedMsg); + } + + protected void setUp() throws Exception { + broker = new BrokerService(); + broker.setPersistent(false); + broker.setUseJmx(false); + broker.addConnector(connectorStr); + broker.start(); + + createSession(); + } + + protected void tearDown() throws Exception { + if (broker != null) { + broker.stop(); + } + } + +} diff --git a/sandbox/argeo.slc.activemq.selector/src/test/resources/log4j.properties b/sandbox/argeo.slc.activemq.selector/src/test/resources/log4j.properties new file mode 100644 index 000000000..b80f5f804 --- /dev/null +++ b/sandbox/argeo.slc.activemq.selector/src/test/resources/log4j.properties @@ -0,0 +1,23 @@ +log4j.rootLogger=WARN, console + +## Levels +log4j.logger.org.argeo=DEBUG +log4j.logger.org.argeo.slc.execution.ExecutionParameterPostProcessor=TRACE +log4j.logger.org.argeo.slc.execution.ExecutionContext=DEBUG +log4j.logger.org.argeo.slc.execution.SimpleExecutionSpec=DEBUG + +log4j.logger.org.springframework=WARN + +log4j.logger.org.apache.activemq=DEBUG + +log4j.logger.org.apache.catalina=INFO +log4j.logger.org.apache.coyote=INFO +log4j.logger.org.apache.tomcat=INFO + +## Appenders +# console is set to be a ConsoleAppender. +log4j.appender.console=org.apache.log4j.ConsoleAppender + +# console uses PatternLayout. +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n -- 2.39.2