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:
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
33
spring-boot-cli/src/test/resources/repro-samples/jms.groovy
Normal file
33
spring-boot-cli/src/test/resources/repro-samples/jms.groovy
Normal 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()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user