Improve JMS support in cli

This commit deprecates the proprietary EnableJmsMessaging annotation in
favour of the standard @EnableJms introduced as of Spring 4.1. This
commit also updates the sample and adds an integration test as the
feature was actually broken.

Fixes gh-1456
This commit is contained in:
Stephane Nicoll
2014-08-28 14:25:14 +02:00
parent bf249d4205
commit affb202e74
5 changed files with 56 additions and 26 deletions

View File

@@ -28,6 +28,7 @@ import static org.junit.Assert.assertThat;
*
* @author Phillip Webb
* @author Andy Wilkinson
* @author Stephane Nicoll
*/
public class ReproIntegrationTests {
@@ -71,4 +72,10 @@ public class ReproIntegrationTests {
this.thrown.expectMessage("is not a JAR file");
this.cli.jar("secure.groovy", "crsh.groovy");
}
@Test
public void jmsListener() throws Exception {
this.cli.run("jms.groovy");
assertThat(this.cli.getOutput(), containsString("Hello World"));
}
}

View File

@@ -0,0 +1,33 @@
package org.test
@Grab("org.apache.activemq:activemq-all:5.4.0")
@Grab("activemq-pool")
import java.util.concurrent.CountDownLatch
@Log
@EnableJms
class SampleJmsListener implements CommandLineRunner {
private CountDownLatch latch = new CountDownLatch(1)
@Autowired
JmsTemplate jmsTemplate
void run(String... args) {
def messageCreator = { session ->
session.createObjectMessage("Hello World")
} as MessageCreator
log.info "Sending JMS message..."
jmsTemplate.send("testQueue", messageCreator)
log.info "Sent JMS message, waiting..."
latch.await()
}
@JmsListener(destination = 'testQueue')
def receive(String message) {
log.info "Received ${message}"
latch.countDown()
}
}