Here are the examples of the java api org.springframework.jms.listener.DefaultMessageListenerContainer taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
71 Examples
19
View Source File : JmsAutoConfigurationTests.java
License : Apache License 2.0
Project Creator : yuanmabiji
License : Apache License 2.0
Project Creator : yuanmabiji
@Test
public void testDefaultContainerFactoryNoTransactionManager() {
this.contextRunner.withUserConfiguration(EnableJmsConfiguration.clreplaced).run((context) -> {
DefaultMessageListenerContainer container = getContainer(context, "jmsListenerContainerFactory");
replacedertThat(container.isSessionTransacted()).isTrue();
replacedertThat(new DirectFieldAccessor(container).getPropertyValue("transactionManager")).isNull();
});
}
19
View Source File : JmsAutoConfigurationTests.java
License : Apache License 2.0
Project Creator : yuanmabiji
License : Apache License 2.0
Project Creator : yuanmabiji
@Test
public void testDefaultContainerFactoryWithJtaTransactionManager() {
this.contextRunner.withUserConfiguration(TestConfiguration7.clreplaced, EnableJmsConfiguration.clreplaced).run((context) -> {
DefaultMessageListenerContainer container = getContainer(context, "jmsListenerContainerFactory");
replacedertThat(container.isSessionTransacted()).isFalse();
replacedertThat(new DirectFieldAccessor(container).getPropertyValue("transactionManager")).isSameAs(context.getBean(JtaTransactionManager.clreplaced));
});
}
19
View Source File : JmsAutoConfigurationTests.java
License : Apache License 2.0
Project Creator : yuanmabiji
License : Apache License 2.0
Project Creator : yuanmabiji
@Test
public void testCustomContainerFactoryWithConfigurer() {
this.contextRunner.withUserConfiguration(TestConfiguration9.clreplaced, EnableJmsConfiguration.clreplaced).withPropertyValues("spring.jms.listener.autoStartup=false").run((context) -> {
DefaultMessageListenerContainer container = getContainer(context, "customListenerContainerFactory");
replacedertThat(container.getCacheLevel()).isEqualTo(DefaultMessageListenerContainer.CACHE_CONSUMER);
replacedertThat(container.isAutoStartup()).isFalse();
});
}
19
View Source File : JmsAutoConfigurationTests.java
License : Apache License 2.0
Project Creator : yuanmabiji
License : Apache License 2.0
Project Creator : yuanmabiji
@Test
public void testDefaultContainerFactoryWithMessageConverters() {
this.contextRunner.withUserConfiguration(MessageConvertersConfiguration.clreplaced, EnableJmsConfiguration.clreplaced).run((context) -> {
DefaultMessageListenerContainer container = getContainer(context, "jmsListenerContainerFactory");
replacedertThat(container.getMessageConverter()).isSameAs(context.getBean("myMessageConverter"));
});
}
19
View Source File : JmsAutoConfigurationTests.java
License : Apache License 2.0
Project Creator : yuanmabiji
License : Apache License 2.0
Project Creator : yuanmabiji
@Test
public void testDefaultContainerFactoryNonJtaTransactionManager() {
this.contextRunner.withUserConfiguration(TestConfiguration8.clreplaced, EnableJmsConfiguration.clreplaced).run((context) -> {
DefaultMessageListenerContainer container = getContainer(context, "jmsListenerContainerFactory");
replacedertThat(container.isSessionTransacted()).isTrue();
replacedertThat(new DirectFieldAccessor(container).getPropertyValue("transactionManager")).isNull();
});
}
19
View Source File : JmsAutoConfigurationTests.java
License : Apache License 2.0
Project Creator : yuanmabiji
License : Apache License 2.0
Project Creator : yuanmabiji
@Test
public void testPubSubDomainActive() {
this.contextRunner.withUserConfiguration(TestConfiguration.clreplaced).withPropertyValues("spring.jms.pubSubDomain:true").run((context) -> {
JmsTemplate jmsTemplate = context.getBean(JmsTemplate.clreplaced);
DefaultMessageListenerContainer defaultMessageListenerContainer = context.getBean(DefaultJmsListenerContainerFactory.clreplaced).createListenerContainer(mock(JmsListenerEndpoint.clreplaced));
replacedertThat(jmsTemplate.isPubSubDomain()).isTrue();
replacedertThat(defaultMessageListenerContainer.isPubSubDomain()).isTrue();
});
}
19
View Source File : JmsAutoConfigurationTests.java
License : Apache License 2.0
Project Creator : yuanmabiji
License : Apache License 2.0
Project Creator : yuanmabiji
private void testJmsListenerContainerFactoryWithCustomSettings(replacedertableApplicationContext loaded) {
DefaultMessageListenerContainer container = getContainer(loaded, "jmsListenerContainerFactory");
replacedertThat(container.isAutoStartup()).isFalse();
replacedertThat(container.getSessionAcknowledgeMode()).isEqualTo(Session.CLIENT_ACKNOWLEDGE);
replacedertThat(container.getConcurrentConsumers()).isEqualTo(2);
replacedertThat(container.getMaxConcurrentConsumers()).isEqualTo(10);
}
19
View Source File : MQAutoConfiguration.java
License : Apache License 2.0
Project Creator : yanghuijava
License : Apache License 2.0
Project Creator : yanghuijava
private void start(String beanName) {
if (StringUtils.isEmpty(beanName)) {
return;
}
DefaultMessageListenerContainer c = this.applicationContext.getBean(beanName, DefaultMessageListenerContainer.clreplaced);
if (c != null)
c.start();
}
19
View Source File : MethodJmsListenerEndpointTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
/**
* @author Stephane Nicoll
*/
public clreplaced MethodJmsListenerEndpointTests {
private final DefaultMessageHandlerMethodFactory factory = new DefaultMessageHandlerMethodFactory();
private final DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
private final JmsEndpointSampleBean sample = new JmsEndpointSampleBean();
@Rule
public final TestName name = new TestName();
@Before
public void setup() {
initializeFactory(this.factory);
}
@Test
public void createMessageListenerNoFactory() {
MethodJmsListenerEndpoint endpoint = new MethodJmsListenerEndpoint();
endpoint.setBean(this);
endpoint.setMethod(getTestMethod());
replacedertThatIllegalStateException().isThrownBy(() -> endpoint.createMessageListener(this.container));
}
@Test
public void createMessageListener() {
MethodJmsListenerEndpoint endpoint = new MethodJmsListenerEndpoint();
endpoint.setBean(this);
endpoint.setMethod(getTestMethod());
endpoint.setMessageHandlerMethodFactory(this.factory);
replacedertNotNull(endpoint.createMessageListener(this.container));
}
@Test
public void setExtraCollaborators() {
MessageConverter messageConverter = mock(MessageConverter.clreplaced);
DestinationResolver destinationResolver = mock(DestinationResolver.clreplaced);
this.container.setMessageConverter(messageConverter);
this.container.setDestinationResolver(destinationResolver);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod("resolveObjectPayload", MyBean.clreplaced), this.container);
DirectFieldAccessor accessor = new DirectFieldAccessor(listener);
replacedertSame(messageConverter, accessor.getPropertyValue("messageConverter"));
replacedertSame(destinationResolver, accessor.getPropertyValue("destinationResolver"));
}
@Test
public void resolveMessageAndSession() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(javax.jms.Message.clreplaced, Session.clreplaced);
Session session = mock(Session.clreplaced);
listener.onMessage(createSimpleJmsTextMessage("test"), session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveGenericMessage() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Message.clreplaced);
Session session = mock(Session.clreplaced);
listener.onMessage(createSimpleJmsTextMessage("test"), session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveHeaderAndPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, int.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("myCounter", 55);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveCustomHeaderNameAndPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, int.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("myCounter", 24);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveCustomHeaderNameAndPayloadWithHeaderNameSet() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, int.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("myCounter", 24);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveHeaders() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, Map.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("customInt", 1234);
message.setJMSMessageID("abcd-1234");
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveMessageHeaders() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(MessageHeaders.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setLongProperty("customLong", 4567L);
message.setJMSType("myMessageType");
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveJmsMessageHeaderAccessor() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(JmsMessageHeaderAccessor.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setBooleanProperty("customBoolean", true);
message.setJMSPriority(9);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveObjectPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(MyBean.clreplaced);
MyBean myBean = new MyBean();
myBean.name = "myBean name";
Session session = mock(Session.clreplaced);
ObjectMessage message = mock(ObjectMessage.clreplaced);
given(message.getObject()).willReturn(myBean);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveConvertedPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Integer.clreplaced);
Session session = mock(Session.clreplaced);
listener.onMessage(createSimpleJmsTextMessage("33"), session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void processAndReply() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced);
String body = "echo text";
String correlationId = "link-1234";
Destination replyDestination = new Destination() {
};
TextMessage reply = mock(TextMessage.clreplaced);
QueueSender queueSender = mock(QueueSender.clreplaced);
Session session = mock(Session.clreplaced);
given(session.createTextMessage(body)).willReturn(reply);
given(session.createProducer(replyDestination)).willReturn(queueSender);
listener.setDefaultResponseDestination(replyDestination);
StubTextMessage inputMessage = createSimpleJmsTextMessage(body);
inputMessage.setJMSCorrelationID(correlationId);
listener.onMessage(inputMessage, session);
replacedertDefaultListenerMethodInvocation();
verify(reply).setJMSCorrelationID(correlationId);
verify(queueSender).send(reply);
verify(queueSender).close();
}
@Test
public void processAndReplyWithSendToQueue() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", false);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
public void processFromTopicAndReplyWithSendToQueue() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setPubSubDomain(true);
container.setReplyPubSubDomain(false);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", false);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
public void processAndReplyWithSendToTopic() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setPubSubDomain(true);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", true);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
public void processFromQueueAndReplyWithSendToTopic() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setReplyPubSubDomain(true);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", true);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
public void processAndReplyWithDefaultSendTo() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced);
processAndReplyWithSendTo(listener, "defaultReply", false);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void processAndReplyWithCustomReplyQosSettings() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
QosSettings replyQosSettings = new QosSettings(1, 6, 6000);
container.setReplyQosSettings(replyQosSettings);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", false, replyQosSettings);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
public void processAndReplyWithNullReplyQosSettings() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setReplyQosSettings(null);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", false);
replacedertListenerMethodInvocation(this.sample, methodName);
}
private void processAndReplyWithSendTo(MessagingMessageListenerAdapter listener, String replyDestinationName, boolean pubSubDomain) throws JMSException {
processAndReplyWithSendTo(listener, replyDestinationName, pubSubDomain, null);
}
private void processAndReplyWithSendTo(MessagingMessageListenerAdapter listener, String replyDestinationName, boolean pubSubDomain, QosSettings replyQosSettings) throws JMSException {
String body = "echo text";
String correlationId = "link-1234";
Destination replyDestination = new Destination() {
};
DestinationResolver destinationResolver = mock(DestinationResolver.clreplaced);
TextMessage reply = mock(TextMessage.clreplaced);
QueueSender queueSender = mock(QueueSender.clreplaced);
Session session = mock(Session.clreplaced);
given(destinationResolver.resolveDestinationName(session, replyDestinationName, pubSubDomain)).willReturn(replyDestination);
given(session.createTextMessage(body)).willReturn(reply);
given(session.createProducer(replyDestination)).willReturn(queueSender);
listener.setDestinationResolver(destinationResolver);
StubTextMessage inputMessage = createSimpleJmsTextMessage(body);
inputMessage.setJMSCorrelationID(correlationId);
listener.onMessage(inputMessage, session);
verify(destinationResolver).resolveDestinationName(session, replyDestinationName, pubSubDomain);
verify(reply).setJMSCorrelationID(correlationId);
if (replyQosSettings != null) {
verify(queueSender).send(reply, replyQosSettings.getDeliveryMode(), replyQosSettings.getPriority(), replyQosSettings.getTimeToLive());
} else {
verify(queueSender).send(reply);
}
verify(queueSender).close();
}
@Test
public void emptySendTo() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced);
TextMessage reply = mock(TextMessage.clreplaced);
Session session = mock(Session.clreplaced);
given(session.createTextMessage("content")).willReturn(reply);
replacedertThatExceptionOfType(ReplyFailureException.clreplaced).isThrownBy(() -> listener.onMessage(createSimpleJmsTextMessage("content"), session)).withCauseInstanceOf(InvalidDestinationException.clreplaced);
}
@Test
public void invalidSendTo() {
replacedertThatIllegalStateException().isThrownBy(() -> createDefaultInstance(String.clreplaced)).withMessageContaining("firstDestination").withMessageContaining("secondDestination");
}
@Test
public void validatePayloadValid() throws JMSException {
String methodName = "validatePayload";
DefaultMessageHandlerMethodFactory customFactory = new DefaultMessageHandlerMethodFactory();
customFactory.setValidator(testValidator("invalid value"));
initializeFactory(customFactory);
Method method = getListenerMethod(methodName, String.clreplaced);
MessagingMessageListenerAdapter listener = createInstance(customFactory, method);
Session session = mock(Session.clreplaced);
// test is a valid value
listener.onMessage(createSimpleJmsTextMessage("test"), session);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
public void validatePayloadInvalid() throws JMSException {
DefaultMessageHandlerMethodFactory customFactory = new DefaultMessageHandlerMethodFactory();
customFactory.setValidator(testValidator("invalid value"));
Method method = getListenerMethod("validatePayload", String.clreplaced);
MessagingMessageListenerAdapter listener = createInstance(customFactory, method);
Session session = mock(Session.clreplaced);
// test is an invalid value
replacedertThatExceptionOfType(ListenerExecutionFailedException.clreplaced).isThrownBy(() -> listener.onMessage(createSimpleJmsTextMessage("invalid value"), session));
}
// failure scenario
@Test
public void invalidPayloadType() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Integer.clreplaced);
Session session = mock(Session.clreplaced);
// test is not a valid integer
replacedertThatExceptionOfType(ListenerExecutionFailedException.clreplaced).isThrownBy(() -> listener.onMessage(createSimpleJmsTextMessage("test"), session)).withCauseInstanceOf(MessageConversionException.clreplaced).withMessageContaining(// ref to method
getDefaultListenerMethod(Integer.clreplaced).toGenericString());
}
@Test
public void invalidMessagePayloadType() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Message.clreplaced);
Session session = mock(Session.clreplaced);
// Message<String> as Message<Integer>
replacedertThatExceptionOfType(ListenerExecutionFailedException.clreplaced).isThrownBy(() -> listener.onMessage(createSimpleJmsTextMessage("test"), session)).withCauseInstanceOf(MessageConversionException.clreplaced);
}
private MessagingMessageListenerAdapter createInstance(DefaultMessageHandlerMethodFactory factory, Method method, MessageListenerContainer container) {
MethodJmsListenerEndpoint endpoint = new MethodJmsListenerEndpoint();
endpoint.setBean(this.sample);
endpoint.setMethod(method);
endpoint.setMessageHandlerMethodFactory(factory);
return endpoint.createMessageListener(container);
}
private MessagingMessageListenerAdapter createInstance(DefaultMessageHandlerMethodFactory factory, Method method) {
return createInstance(factory, method, new SimpleMessageListenerContainer());
}
private MessagingMessageListenerAdapter createDefaultInstance(Clreplaced<?>... parameterTypes) {
return createInstance(this.factory, getDefaultListenerMethod(parameterTypes));
}
private StubTextMessage createSimpleJmsTextMessage(String body) {
return new StubTextMessage(body);
}
private Method getListenerMethod(String methodName, Clreplaced<?>... parameterTypes) {
Method method = ReflectionUtils.findMethod(JmsEndpointSampleBean.clreplaced, methodName, parameterTypes);
replacedertNotNull("no method found with name " + methodName + " and parameters " + Arrays.toString(parameterTypes));
return method;
}
private Method getDefaultListenerMethod(Clreplaced<?>... parameterTypes) {
return getListenerMethod(this.name.getMethodName(), parameterTypes);
}
private void replacedertDefaultListenerMethodInvocation() {
replacedertListenerMethodInvocation(this.sample, this.name.getMethodName());
}
private void replacedertListenerMethodInvocation(JmsEndpointSampleBean bean, String methodName) {
replacedertTrue("Method " + methodName + " should have been invoked", bean.invocations.get(methodName));
}
private void initializeFactory(DefaultMessageHandlerMethodFactory factory) {
factory.setBeanFactory(new StaticListableBeanFactory());
factory.afterPropertiesSet();
}
private Validator testValidator(final String invalidValue) {
return new Validator() {
@Override
public boolean supports(Clreplaced<?> clazz) {
return String.clreplaced.isreplacedignableFrom(clazz);
}
@Override
public void validate(@Nullable Object target, Errors errors) {
String value = (String) target;
if (invalidValue.equals(value)) {
errors.reject("not a valid value");
}
}
};
}
private Method getTestMethod() {
return ReflectionUtils.findMethod(MethodJmsListenerEndpointTests.clreplaced, this.name.getMethodName());
}
@SendTo("defaultReply")
@SuppressWarnings("unused")
static clreplaced JmsEndpointSampleBean {
private final Map<String, Boolean> invocations = new HashMap<>();
public void resolveMessageAndSession(javax.jms.Message message, Session session) {
this.invocations.put("resolveMessageAndSession", true);
replacedertNotNull("Message not injected", message);
replacedertNotNull("Session not injected", session);
}
public void resolveGenericMessage(Message<String> message) {
this.invocations.put("resolveGenericMessage", true);
replacedertNotNull("Generic message not injected", message);
replacedertEquals("Wrong message payload", "test", message.getPayload());
}
public void resolveHeaderAndPayload(@Payload String content, @Header int myCounter) {
this.invocations.put("resolveHeaderAndPayload", true);
replacedertEquals("Wrong @Payload resolution", "my payload", content);
replacedertEquals("Wrong @Header resolution", 55, myCounter);
}
public void resolveCustomHeaderNameAndPayload(@Payload String content, @Header("myCounter") int counter) {
this.invocations.put("resolveCustomHeaderNameAndPayload", true);
replacedertEquals("Wrong @Payload resolution", "my payload", content);
replacedertEquals("Wrong @Header resolution", 24, counter);
}
public void resolveCustomHeaderNameAndPayloadWithHeaderNameSet(@Payload String content, @Header(name = "myCounter") int counter) {
this.invocations.put("resolveCustomHeaderNameAndPayloadWithHeaderNameSet", true);
replacedertEquals("Wrong @Payload resolution", "my payload", content);
replacedertEquals("Wrong @Header resolution", 24, counter);
}
public void resolveHeaders(String content, @Headers Map<String, Object> headers) {
this.invocations.put("resolveHeaders", true);
replacedertEquals("Wrong payload resolution", "my payload", content);
replacedertNotNull("headers not injected", headers);
replacedertEquals("Missing JMS message id header", "abcd-1234", headers.get(JmsHeaders.MESSAGE_ID));
replacedertEquals("Missing custom header", 1234, headers.get("customInt"));
}
public void resolveMessageHeaders(MessageHeaders headers) {
this.invocations.put("resolveMessageHeaders", true);
replacedertNotNull("MessageHeaders not injected", headers);
replacedertEquals("Missing JMS message type header", "myMessageType", headers.get(JmsHeaders.TYPE));
replacedertEquals("Missing custom header", 4567L, (long) headers.get("customLong"), 0.0);
}
public void resolveJmsMessageHeaderAccessor(JmsMessageHeaderAccessor headers) {
this.invocations.put("resolveJmsMessageHeaderAccessor", true);
replacedertNotNull("MessageHeaders not injected", headers);
replacedertEquals("Missing JMS message priority header", Integer.valueOf(9), headers.getPriority());
replacedertEquals("Missing custom header", true, headers.getHeader("customBoolean"));
}
public void resolveObjectPayload(MyBean bean) {
this.invocations.put("resolveObjectPayload", true);
replacedertNotNull("Object payload not injected", bean);
replacedertEquals("Wrong content for payload", "myBean name", bean.name);
}
public void resolveConvertedPayload(Integer counter) {
this.invocations.put("resolveConvertedPayload", true);
replacedertNotNull("Payload not injected", counter);
replacedertEquals("Wrong content for payload", Integer.valueOf(33), counter);
}
public String processAndReply(@Payload String content) {
this.invocations.put("processAndReply", true);
return content;
}
@SendTo("replyDestination")
public String processAndReplyWithSendTo(String content) {
this.invocations.put("processAndReplyWithSendTo", true);
return content;
}
public String processAndReplyWithDefaultSendTo(String content) {
this.invocations.put("processAndReplyWithDefaultSendTo", true);
return content;
}
@SendTo("")
public String emptySendTo(String content) {
this.invocations.put("emptySendTo", true);
return content;
}
@SendTo({ "firstDestination", "secondDestination" })
public String invalidSendTo(String content) {
this.invocations.put("invalidSendTo", true);
return content;
}
public void validatePayload(@Validated String payload) {
this.invocations.put("validatePayload", true);
}
public void invalidPayloadType(@Payload Integer payload) {
throw new IllegalStateException("Should never be called.");
}
public void invalidMessagePayloadType(Message<Integer> message) {
throw new IllegalStateException("Should never be called.");
}
}
@SuppressWarnings("serial")
static clreplaced MyBean implements Serializable {
private String name;
}
}
19
View Source File : JmsNamespaceHandlerTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
@Test
public void testContainerConfiguration() throws Exception {
Map<String, DefaultMessageListenerContainer> containers = context.getBeansOfType(DefaultMessageListenerContainer.clreplaced);
ConnectionFactory defaultConnectionFactory = context.getBean(DEFAULT_CONNECTION_FACTORY, ConnectionFactory.clreplaced);
ConnectionFactory explicitConnectionFactory = context.getBean(EXPLICIT_CONNECTION_FACTORY, ConnectionFactory.clreplaced);
int defaultConnectionFactoryCount = 0;
int explicitConnectionFactoryCount = 0;
for (DefaultMessageListenerContainer container : containers.values()) {
if (container.getConnectionFactory().equals(defaultConnectionFactory)) {
defaultConnectionFactoryCount++;
} else if (container.getConnectionFactory().equals(explicitConnectionFactory)) {
explicitConnectionFactoryCount++;
}
}
replacedertEquals("1 container should have the default connectionFactory", 1, defaultConnectionFactoryCount);
replacedertEquals("2 containers should have the explicit connectionFactory", 2, explicitConnectionFactoryCount);
}
19
View Source File : JmsNamespaceHandlerTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
@Test
public void testResponseDestination() {
// JMS
DefaultMessageListenerContainer listener1 = this.context.getBean("listener1", DefaultMessageListenerContainer.clreplaced);
DefaultMessageListenerContainer listener2 = this.context.getBean("listener2", DefaultMessageListenerContainer.clreplaced);
replacedertEquals("Wrong destination type on listener1", true, listener1.isPubSubDomain());
replacedertEquals("Wrong destination type on listener2", true, listener2.isPubSubDomain());
replacedertEquals("Wrong response destination type on listener1", false, listener1.isReplyPubSubDomain());
replacedertEquals("Wrong response destination type on listener2", false, listener2.isReplyPubSubDomain());
// JCA
JmsMessageEndpointManager listener3 = this.context.getBean("listener3", JmsMessageEndpointManager.clreplaced);
JmsMessageEndpointManager listener4 = this.context.getBean("listener4", JmsMessageEndpointManager.clreplaced);
replacedertEquals("Wrong destination type on listener3", true, listener3.isPubSubDomain());
replacedertEquals("Wrong destination type on listener4", true, listener4.isPubSubDomain());
replacedertEquals("Wrong response destination type on listener3", false, listener3.isReplyPubSubDomain());
replacedertEquals("Wrong response destination type on listener4", false, listener4.isReplyPubSubDomain());
}
19
View Source File : JmsNamespaceHandlerTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
private ErrorHandler getErrorHandler(String containerBeanName) {
DefaultMessageListenerContainer container = this.context.getBean(containerBeanName, DefaultMessageListenerContainer.clreplaced);
return (ErrorHandler) new DirectFieldAccessor(container).getPropertyValue("errorHandler");
}
19
View Source File : JmsNamespaceHandlerTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
@Test
public void testJmsContainerFactoryConfiguration() {
Map<String, DefaultJmsListenerContainerFactory> containers = context.getBeansOfType(DefaultJmsListenerContainerFactory.clreplaced);
DefaultJmsListenerContainerFactory factory = containers.get("testJmsFactory");
replacedertNotNull("No factory registered with testJmsFactory id", factory);
DefaultMessageListenerContainer container = factory.createListenerContainer(createDummyEndpoint());
replacedertEquals("explicit connection factory not set", context.getBean(EXPLICIT_CONNECTION_FACTORY), container.getConnectionFactory());
replacedertEquals("explicit destination resolver not set", context.getBean("testDestinationResolver"), container.getDestinationResolver());
replacedertEquals("explicit message converter not set", context.getBean("testMessageConverter"), container.getMessageConverter());
replacedertEquals("Wrong pub/sub", true, container.isPubSubDomain());
replacedertEquals("Wrong durable flag", true, container.isSubscriptionDurable());
replacedertEquals("wrong cache", DefaultMessageListenerContainer.CACHE_CONNECTION, container.getCacheLevel());
replacedertEquals("wrong concurrency", 3, container.getConcurrentConsumers());
replacedertEquals("wrong concurrency", 5, container.getMaxConcurrentConsumers());
replacedertEquals("wrong prefetch", 50, container.getMaxMessagesPerTask());
replacedertEquals("Wrong phase", 99, container.getPhase());
replacedertSame(context.getBean("testBackOff"), new DirectFieldAccessor(container).getPropertyValue("backOff"));
}
19
View Source File : JmsNamespaceHandlerTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
private BackOff getBackOff(String containerBeanName) {
DefaultMessageListenerContainer container = this.context.getBean(containerBeanName, DefaultMessageListenerContainer.clreplaced);
return (BackOff) new DirectFieldAccessor(container).getPropertyValue("backOff");
}
19
View Source File : JmsNamespaceHandlerTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
private MessageListener getListener(String containerBeanName) {
DefaultMessageListenerContainer container = this.context.getBean(containerBeanName, DefaultMessageListenerContainer.clreplaced);
return (MessageListener) container.getMessageListener();
}
19
View Source File : JmsListenerEndpointTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
@Test
public void setupMessageContainerNoListener() {
DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint();
replacedertThatIllegalStateException().isThrownBy(() -> endpoint.setupListenerContainer(container));
}
19
View Source File : JmsListenerContainerFactoryTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
@Test
public void endpointConcurrencyTakesPrecedence() {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConcurrency("2-10");
SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint();
MessageListener messageListener = new MessageListenerAdapter();
endpoint.setMessageListener(messageListener);
endpoint.setDestination("myQueue");
endpoint.setConcurrency("4-6");
DefaultMessageListenerContainer container = factory.createListenerContainer(endpoint);
replacedertEquals(4, container.getConcurrentConsumers());
replacedertEquals(6, container.getMaxConcurrentConsumers());
}
19
View Source File : DefaultJmsListenerContainerFactory.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
@Override
protected void initializeContainer(DefaultMessageListenerContainer container) {
if (this.taskExecutor != null) {
container.setTaskExecutor(this.taskExecutor);
}
if (this.transactionManager != null) {
container.setTransactionManager(this.transactionManager);
}
if (this.cacheLevel != null) {
container.setCacheLevel(this.cacheLevel);
} else if (this.cacheLevelName != null) {
container.setCacheLevelName(this.cacheLevelName);
}
if (this.concurrency != null) {
container.setConcurrency(this.concurrency);
}
if (this.maxMessagesPerTask != null) {
container.setMaxMessagesPerTask(this.maxMessagesPerTask);
}
if (this.receiveTimeout != null) {
container.setReceiveTimeout(this.receiveTimeout);
}
if (this.backOff != null) {
container.setBackOff(this.backOff);
if (this.recoveryInterval != null) {
logger.info("Ignoring recovery interval in DefaultJmsListenerContainerFactory in favor of BackOff");
}
} else if (this.recoveryInterval != null) {
container.setRecoveryInterval(this.recoveryInterval);
}
}
19
View Source File : MethodJmsListenerEndpointTests.java
License : Apache License 2.0
Project Creator : SourceHot
License : Apache License 2.0
Project Creator : SourceHot
/**
* @author Stephane Nicoll
* @author Sam Brannen
*/
clreplaced MethodJmsListenerEndpointTests {
private final DefaultMessageHandlerMethodFactory factory = new DefaultMessageHandlerMethodFactory();
private final DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
private final JmsEndpointSampleBean sample = new JmsEndpointSampleBean();
private String methodName;
@BeforeEach
void setup(TestInfo testInfo) {
this.methodName = testInfo.getTestMethod().get().getName();
initializeFactory(this.factory);
}
@Test
void createMessageListenerNoFactory() {
MethodJmsListenerEndpoint endpoint = new MethodJmsListenerEndpoint();
endpoint.setBean(this);
endpoint.setMethod(getTestMethod());
replacedertThatIllegalStateException().isThrownBy(() -> endpoint.createMessageListener(this.container));
}
@Test
void createMessageListener() {
MethodJmsListenerEndpoint endpoint = new MethodJmsListenerEndpoint();
endpoint.setBean(this);
endpoint.setMethod(getTestMethod());
endpoint.setMessageHandlerMethodFactory(this.factory);
replacedertThat(endpoint.createMessageListener(this.container)).isNotNull();
}
@Test
void setExtraCollaborators() {
MessageConverter messageConverter = mock(MessageConverter.clreplaced);
DestinationResolver destinationResolver = mock(DestinationResolver.clreplaced);
this.container.setMessageConverter(messageConverter);
this.container.setDestinationResolver(destinationResolver);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod("resolveObjectPayload", MyBean.clreplaced), this.container);
DirectFieldAccessor accessor = new DirectFieldAccessor(listener);
replacedertThat(accessor.getPropertyValue("messageConverter")).isSameAs(messageConverter);
replacedertThat(accessor.getPropertyValue("destinationResolver")).isSameAs(destinationResolver);
}
@Test
void resolveMessageAndSession() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(javax.jms.Message.clreplaced, Session.clreplaced);
Session session = mock(Session.clreplaced);
listener.onMessage(createSimpleJmsTextMessage("test"), session);
replacedertDefaultListenerMethodInvocation();
}
@Test
void resolveGenericMessage() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Message.clreplaced);
Session session = mock(Session.clreplaced);
listener.onMessage(createSimpleJmsTextMessage("test"), session);
replacedertDefaultListenerMethodInvocation();
}
@Test
void resolveHeaderAndPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, int.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("myCounter", 55);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
void resolveCustomHeaderNameAndPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, int.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("myCounter", 24);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
void resolveCustomHeaderNameAndPayloadWithHeaderNameSet() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, int.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("myCounter", 24);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
void resolveHeaders() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, Map.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("customInt", 1234);
message.setJMSMessageID("abcd-1234");
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
void resolveMessageHeaders() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(MessageHeaders.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setLongProperty("customLong", 4567L);
message.setJMSType("myMessageType");
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
void resolveJmsMessageHeaderAccessor() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(JmsMessageHeaderAccessor.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setBooleanProperty("customBoolean", true);
message.setJMSPriority(9);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
void resolveObjectPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(MyBean.clreplaced);
MyBean myBean = new MyBean();
myBean.name = "myBean name";
Session session = mock(Session.clreplaced);
ObjectMessage message = mock(ObjectMessage.clreplaced);
given(message.getObject()).willReturn(myBean);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
void resolveConvertedPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Integer.clreplaced);
Session session = mock(Session.clreplaced);
listener.onMessage(createSimpleJmsTextMessage("33"), session);
replacedertDefaultListenerMethodInvocation();
}
@Test
void processAndReply() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced);
String body = "echo text";
String correlationId = "link-1234";
Destination replyDestination = new Destination() {
};
TextMessage reply = mock(TextMessage.clreplaced);
QueueSender queueSender = mock(QueueSender.clreplaced);
Session session = mock(Session.clreplaced);
given(session.createTextMessage(body)).willReturn(reply);
given(session.createProducer(replyDestination)).willReturn(queueSender);
listener.setDefaultResponseDestination(replyDestination);
StubTextMessage inputMessage = createSimpleJmsTextMessage(body);
inputMessage.setJMSCorrelationID(correlationId);
listener.onMessage(inputMessage, session);
replacedertDefaultListenerMethodInvocation();
verify(reply).setJMSCorrelationID(correlationId);
verify(queueSender).send(reply);
verify(queueSender).close();
}
@Test
void processAndReplyWithSendToQueue() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", false);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
void processFromTopicAndReplyWithSendToQueue() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setPubSubDomain(true);
container.setReplyPubSubDomain(false);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", false);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
void processAndReplyWithSendToTopic() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setPubSubDomain(true);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", true);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
void processFromQueueAndReplyWithSendToTopic() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setReplyPubSubDomain(true);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", true);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
void processAndReplyWithDefaultSendTo() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced);
processAndReplyWithSendTo(listener, "defaultReply", false);
replacedertDefaultListenerMethodInvocation();
}
@Test
void processAndReplyWithCustomReplyQosSettings() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
QosSettings replyQosSettings = new QosSettings(1, 6, 6000);
container.setReplyQosSettings(replyQosSettings);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", false, replyQosSettings);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
void processAndReplyWithNullReplyQosSettings() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setReplyQosSettings(null);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", false);
replacedertListenerMethodInvocation(this.sample, methodName);
}
private void processAndReplyWithSendTo(MessagingMessageListenerAdapter listener, String replyDestinationName, boolean pubSubDomain) throws JMSException {
processAndReplyWithSendTo(listener, replyDestinationName, pubSubDomain, null);
}
private void processAndReplyWithSendTo(MessagingMessageListenerAdapter listener, String replyDestinationName, boolean pubSubDomain, QosSettings replyQosSettings) throws JMSException {
String body = "echo text";
String correlationId = "link-1234";
Destination replyDestination = new Destination() {
};
DestinationResolver destinationResolver = mock(DestinationResolver.clreplaced);
TextMessage reply = mock(TextMessage.clreplaced);
QueueSender queueSender = mock(QueueSender.clreplaced);
Session session = mock(Session.clreplaced);
given(destinationResolver.resolveDestinationName(session, replyDestinationName, pubSubDomain)).willReturn(replyDestination);
given(session.createTextMessage(body)).willReturn(reply);
given(session.createProducer(replyDestination)).willReturn(queueSender);
listener.setDestinationResolver(destinationResolver);
StubTextMessage inputMessage = createSimpleJmsTextMessage(body);
inputMessage.setJMSCorrelationID(correlationId);
listener.onMessage(inputMessage, session);
verify(destinationResolver).resolveDestinationName(session, replyDestinationName, pubSubDomain);
verify(reply).setJMSCorrelationID(correlationId);
if (replyQosSettings != null) {
verify(queueSender).send(reply, replyQosSettings.getDeliveryMode(), replyQosSettings.getPriority(), replyQosSettings.getTimeToLive());
} else {
verify(queueSender).send(reply);
}
verify(queueSender).close();
}
@Test
void emptySendTo() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced);
TextMessage reply = mock(TextMessage.clreplaced);
Session session = mock(Session.clreplaced);
given(session.createTextMessage("content")).willReturn(reply);
replacedertThatExceptionOfType(ReplyFailureException.clreplaced).isThrownBy(() -> listener.onMessage(createSimpleJmsTextMessage("content"), session)).withCauseInstanceOf(InvalidDestinationException.clreplaced);
}
@Test
void invalidSendTo() {
replacedertThatIllegalStateException().isThrownBy(() -> createDefaultInstance(String.clreplaced)).withMessageContaining("firstDestination").withMessageContaining("secondDestination");
}
@Test
void validatePayloadValid() throws JMSException {
String methodName = "validatePayload";
DefaultMessageHandlerMethodFactory customFactory = new DefaultMessageHandlerMethodFactory();
customFactory.setValidator(testValidator("invalid value"));
initializeFactory(customFactory);
Method method = getListenerMethod(methodName, String.clreplaced);
MessagingMessageListenerAdapter listener = createInstance(customFactory, method);
Session session = mock(Session.clreplaced);
// test is a valid value
listener.onMessage(createSimpleJmsTextMessage("test"), session);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
void validatePayloadInvalid() throws JMSException {
DefaultMessageHandlerMethodFactory customFactory = new DefaultMessageHandlerMethodFactory();
customFactory.setValidator(testValidator("invalid value"));
Method method = getListenerMethod("validatePayload", String.clreplaced);
MessagingMessageListenerAdapter listener = createInstance(customFactory, method);
Session session = mock(Session.clreplaced);
// test is an invalid value
replacedertThatExceptionOfType(ListenerExecutionFailedException.clreplaced).isThrownBy(() -> listener.onMessage(createSimpleJmsTextMessage("invalid value"), session));
}
// failure scenario
@Test
void invalidPayloadType() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Integer.clreplaced);
Session session = mock(Session.clreplaced);
// test is not a valid integer
replacedertThatExceptionOfType(ListenerExecutionFailedException.clreplaced).isThrownBy(() -> listener.onMessage(createSimpleJmsTextMessage("test"), session)).withCauseInstanceOf(MessageConversionException.clreplaced).withMessageContaining(// ref to method
getDefaultListenerMethod(Integer.clreplaced).toGenericString());
}
@Test
void invalidMessagePayloadType() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Message.clreplaced);
Session session = mock(Session.clreplaced);
// Message<String> as Message<Integer>
replacedertThatExceptionOfType(ListenerExecutionFailedException.clreplaced).isThrownBy(() -> listener.onMessage(createSimpleJmsTextMessage("test"), session)).withCauseInstanceOf(MessageConversionException.clreplaced);
}
private MessagingMessageListenerAdapter createInstance(DefaultMessageHandlerMethodFactory factory, Method method, MessageListenerContainer container) {
MethodJmsListenerEndpoint endpoint = new MethodJmsListenerEndpoint();
endpoint.setBean(this.sample);
endpoint.setMethod(method);
endpoint.setMessageHandlerMethodFactory(factory);
return endpoint.createMessageListener(container);
}
private MessagingMessageListenerAdapter createInstance(DefaultMessageHandlerMethodFactory factory, Method method) {
return createInstance(factory, method, new SimpleMessageListenerContainer());
}
private MessagingMessageListenerAdapter createDefaultInstance(Clreplaced<?>... parameterTypes) {
return createInstance(this.factory, getDefaultListenerMethod(parameterTypes));
}
private StubTextMessage createSimpleJmsTextMessage(String body) {
return new StubTextMessage(body);
}
private Method getListenerMethod(String methodName, Clreplaced<?>... parameterTypes) {
Method method = ReflectionUtils.findMethod(JmsEndpointSampleBean.clreplaced, methodName, parameterTypes);
replacedertThat(("no method found with name " + methodName + " and parameters " + Arrays.toString(parameterTypes))).isNotNull();
return method;
}
private Method getDefaultListenerMethod(Clreplaced<?>... parameterTypes) {
return getListenerMethod(this.methodName, parameterTypes);
}
private void replacedertDefaultListenerMethodInvocation() {
replacedertListenerMethodInvocation(this.sample, this.methodName);
}
private void replacedertListenerMethodInvocation(JmsEndpointSampleBean bean, String methodName) {
replacedertThat((boolean) bean.invocations.get(methodName)).as("Method " + methodName + " should have been invoked").isTrue();
}
private void initializeFactory(DefaultMessageHandlerMethodFactory factory) {
factory.setBeanFactory(new StaticListableBeanFactory());
factory.afterPropertiesSet();
}
private Validator testValidator(final String invalidValue) {
return new Validator() {
@Override
public boolean supports(Clreplaced<?> clazz) {
return String.clreplaced.isreplacedignableFrom(clazz);
}
@Override
public void validate(@Nullable Object target, Errors errors) {
String value = (String) target;
if (invalidValue.equals(value)) {
errors.reject("not a valid value");
}
}
};
}
private Method getTestMethod() {
return ReflectionUtils.findMethod(MethodJmsListenerEndpointTests.clreplaced, this.methodName);
}
@SendTo("defaultReply")
@SuppressWarnings("unused")
static clreplaced JmsEndpointSampleBean {
private final Map<String, Boolean> invocations = new HashMap<>();
public void resolveMessageAndSession(javax.jms.Message message, Session session) {
this.invocations.put("resolveMessageAndSession", true);
replacedertThat(message).as("Message not injected").isNotNull();
replacedertThat(session).as("Session not injected").isNotNull();
}
public void resolveGenericMessage(Message<String> message) {
this.invocations.put("resolveGenericMessage", true);
replacedertThat(message).as("Generic message not injected").isNotNull();
replacedertThat(message.getPayload()).as("Wrong message payload").isEqualTo("test");
}
public void resolveHeaderAndPayload(@Payload String content, @Header int myCounter) {
this.invocations.put("resolveHeaderAndPayload", true);
replacedertThat(content).as("Wrong @Payload resolution").isEqualTo("my payload");
replacedertThat(myCounter).as("Wrong @Header resolution").isEqualTo(55);
}
public void resolveCustomHeaderNameAndPayload(@Payload String content, @Header("myCounter") int counter) {
this.invocations.put("resolveCustomHeaderNameAndPayload", true);
replacedertThat(content).as("Wrong @Payload resolution").isEqualTo("my payload");
replacedertThat(counter).as("Wrong @Header resolution").isEqualTo(24);
}
public void resolveCustomHeaderNameAndPayloadWithHeaderNameSet(@Payload String content, @Header(name = "myCounter") int counter) {
this.invocations.put("resolveCustomHeaderNameAndPayloadWithHeaderNameSet", true);
replacedertThat(content).as("Wrong @Payload resolution").isEqualTo("my payload");
replacedertThat(counter).as("Wrong @Header resolution").isEqualTo(24);
}
public void resolveHeaders(String content, @Headers Map<String, Object> headers) {
this.invocations.put("resolveHeaders", true);
replacedertThat(content).as("Wrong payload resolution").isEqualTo("my payload");
replacedertThat(headers).as("headers not injected").isNotNull();
replacedertThat(headers.get(JmsHeaders.MESSAGE_ID)).as("Missing JMS message id header").isEqualTo("abcd-1234");
replacedertThat(headers.get("customInt")).as("Missing custom header").isEqualTo(1234);
}
public void resolveMessageHeaders(MessageHeaders headers) {
this.invocations.put("resolveMessageHeaders", true);
replacedertThat(headers).as("MessageHeaders not injected").isNotNull();
replacedertThat(headers.get(JmsHeaders.TYPE)).as("Missing JMS message type header").isEqualTo("myMessageType");
replacedertThat((long) headers.get("customLong")).as("Missing custom header").isEqualTo(4567);
}
public void resolveJmsMessageHeaderAccessor(JmsMessageHeaderAccessor headers) {
this.invocations.put("resolveJmsMessageHeaderAccessor", true);
replacedertThat(headers).as("MessageHeaders not injected").isNotNull();
replacedertThat(headers.getPriority()).as("Missing JMS message priority header").isEqualTo(Integer.valueOf(9));
replacedertThat(headers.getHeader("customBoolean")).as("Missing custom header").isEqualTo(true);
}
public void resolveObjectPayload(MyBean bean) {
this.invocations.put("resolveObjectPayload", true);
replacedertThat(bean).as("Object payload not injected").isNotNull();
replacedertThat(bean.name).as("Wrong content for payload").isEqualTo("myBean name");
}
public void resolveConvertedPayload(Integer counter) {
this.invocations.put("resolveConvertedPayload", true);
replacedertThat(counter).as("Payload not injected").isNotNull();
replacedertThat(counter).as("Wrong content for payload").isEqualTo(Integer.valueOf(33));
}
public String processAndReply(@Payload String content) {
this.invocations.put("processAndReply", true);
return content;
}
@SendTo("replyDestination")
public String processAndReplyWithSendTo(String content) {
this.invocations.put("processAndReplyWithSendTo", true);
return content;
}
public String processAndReplyWithDefaultSendTo(String content) {
this.invocations.put("processAndReplyWithDefaultSendTo", true);
return content;
}
@SendTo("")
public String emptySendTo(String content) {
this.invocations.put("emptySendTo", true);
return content;
}
@SendTo({ "firstDestination", "secondDestination" })
public String invalidSendTo(String content) {
this.invocations.put("invalidSendTo", true);
return content;
}
public void validatePayload(@Validated String payload) {
this.invocations.put("validatePayload", true);
}
public void invalidPayloadType(@Payload Integer payload) {
throw new IllegalStateException("Should never be called.");
}
public void invalidMessagePayloadType(Message<Integer> message) {
throw new IllegalStateException("Should never be called.");
}
}
@SuppressWarnings("serial")
static clreplaced MyBean implements Serializable {
private String name;
}
}
19
View Source File : JmsNamespaceHandlerTests.java
License : Apache License 2.0
Project Creator : SourceHot
License : Apache License 2.0
Project Creator : SourceHot
@Test
public void testJmsContainerFactoryConfiguration() {
Map<String, DefaultJmsListenerContainerFactory> containers = context.getBeansOfType(DefaultJmsListenerContainerFactory.clreplaced);
DefaultJmsListenerContainerFactory factory = containers.get("testJmsFactory");
replacedertThat(factory).as("No factory registered with testJmsFactory id").isNotNull();
DefaultMessageListenerContainer container = factory.createListenerContainer(createDummyEndpoint());
replacedertThat(container.getConnectionFactory()).as("explicit connection factory not set").isEqualTo(context.getBean(EXPLICIT_CONNECTION_FACTORY));
replacedertThat(container.getDestinationResolver()).as("explicit destination resolver not set").isEqualTo(context.getBean("testDestinationResolver"));
replacedertThat(container.getMessageConverter()).as("explicit message converter not set").isEqualTo(context.getBean("testMessageConverter"));
replacedertThat(container.isPubSubDomain()).as("Wrong pub/sub").isEqualTo(true);
replacedertThat(container.isSubscriptionDurable()).as("Wrong durable flag").isEqualTo(true);
replacedertThat(container.getCacheLevel()).as("wrong cache").isEqualTo(DefaultMessageListenerContainer.CACHE_CONNECTION);
replacedertThat(container.getConcurrentConsumers()).as("wrong concurrency").isEqualTo(3);
replacedertThat(container.getMaxConcurrentConsumers()).as("wrong concurrency").isEqualTo(5);
replacedertThat(container.getMaxMessagesPerTask()).as("wrong prefetch").isEqualTo(50);
replacedertThat(container.getPhase()).as("Wrong phase").isEqualTo(99);
replacedertThat(new DirectFieldAccessor(container).getPropertyValue("backOff")).isSameAs(context.getBean("testBackOff"));
}
19
View Source File : JmsNamespaceHandlerTests.java
License : Apache License 2.0
Project Creator : SourceHot
License : Apache License 2.0
Project Creator : SourceHot
@Test
public void testResponseDestination() {
// JMS
DefaultMessageListenerContainer listener1 = this.context.getBean("listener1", DefaultMessageListenerContainer.clreplaced);
DefaultMessageListenerContainer listener2 = this.context.getBean("listener2", DefaultMessageListenerContainer.clreplaced);
replacedertThat(listener1.isPubSubDomain()).as("Wrong destination type on listener1").isEqualTo(true);
replacedertThat(listener2.isPubSubDomain()).as("Wrong destination type on listener2").isEqualTo(true);
replacedertThat(listener1.isReplyPubSubDomain()).as("Wrong response destination type on listener1").isEqualTo(false);
replacedertThat(listener2.isReplyPubSubDomain()).as("Wrong response destination type on listener2").isEqualTo(false);
// JCA
JmsMessageEndpointManager listener3 = this.context.getBean("listener3", JmsMessageEndpointManager.clreplaced);
JmsMessageEndpointManager listener4 = this.context.getBean("listener4", JmsMessageEndpointManager.clreplaced);
replacedertThat(listener3.isPubSubDomain()).as("Wrong destination type on listener3").isEqualTo(true);
replacedertThat(listener4.isPubSubDomain()).as("Wrong destination type on listener4").isEqualTo(true);
replacedertThat(listener3.isReplyPubSubDomain()).as("Wrong response destination type on listener3").isEqualTo(false);
replacedertThat(listener4.isReplyPubSubDomain()).as("Wrong response destination type on listener4").isEqualTo(false);
}
19
View Source File : JmsNamespaceHandlerTests.java
License : Apache License 2.0
Project Creator : SourceHot
License : Apache License 2.0
Project Creator : SourceHot
@Test
public void testContainerConfiguration() throws Exception {
Map<String, DefaultMessageListenerContainer> containers = context.getBeansOfType(DefaultMessageListenerContainer.clreplaced);
ConnectionFactory defaultConnectionFactory = context.getBean(DEFAULT_CONNECTION_FACTORY, ConnectionFactory.clreplaced);
ConnectionFactory explicitConnectionFactory = context.getBean(EXPLICIT_CONNECTION_FACTORY, ConnectionFactory.clreplaced);
int defaultConnectionFactoryCount = 0;
int explicitConnectionFactoryCount = 0;
for (DefaultMessageListenerContainer container : containers.values()) {
if (container.getConnectionFactory().equals(defaultConnectionFactory)) {
defaultConnectionFactoryCount++;
} else if (container.getConnectionFactory().equals(explicitConnectionFactory)) {
explicitConnectionFactoryCount++;
}
}
replacedertThat(defaultConnectionFactoryCount).as("1 container should have the default connectionFactory").isEqualTo(1);
replacedertThat(explicitConnectionFactoryCount).as("2 containers should have the explicit connectionFactory").isEqualTo(2);
}
19
View Source File : JmsListenerContainerFactoryTests.java
License : Apache License 2.0
Project Creator : SourceHot
License : Apache License 2.0
Project Creator : SourceHot
@Test
public void endpointConcurrencyTakesPrecedence() {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConcurrency("2-10");
SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint();
MessageListener messageListener = new MessageListenerAdapter();
endpoint.setMessageListener(messageListener);
endpoint.setDestination("myQueue");
endpoint.setConcurrency("4-6");
DefaultMessageListenerContainer container = factory.createListenerContainer(endpoint);
replacedertThat(container.getConcurrentConsumers()).isEqualTo(4);
replacedertThat(container.getMaxConcurrentConsumers()).isEqualTo(6);
}
19
View Source File : SolaceController.java
License : Apache License 2.0
Project Creator : SolaceSamples
License : Apache License 2.0
Project Creator : SolaceSamples
@RequestMapping(value = "/subscription", method = RequestMethod.POST)
public ResponseEnreplacedy<String> addSubscription(@RequestBody SimpleSubscription subscription) {
String subscriptionTopic = subscription.getSubscription();
logger.info("Adding a subscription to topic: " + subscriptionTopic);
if (this.listenerContainersMap.containsKey(subscriptionTopic)) {
// Already subscribed
logger.error("Already subscribed to topic " + subscriptionTopic);
return new ResponseEnreplacedy<>("{'description': 'Already subscribed'}", HttpStatus.BAD_REQUEST);
}
// Then create a listener
try {
DefaultMessageListenerContainer listenercontainer = createListener(subscriptionTopic);
listenercontainer.start();
this.listenerContainersMap.put(subscriptionTopic, listenercontainer);
} catch (Exception e) {
logger.error("Service Creation failed.", e);
return new ResponseEnreplacedy<>("{'description': '" + e.getMessage() + "'}", HttpStatus.BAD_REQUEST);
}
logger.info("Finished Adding a subscription to topic: " + subscriptionTopic);
return new ResponseEnreplacedy<>("{}", HttpStatus.OK);
}
19
View Source File : SolaceController.java
License : Apache License 2.0
Project Creator : SolaceSamples
License : Apache License 2.0
Project Creator : SolaceSamples
@RequestMapping(value = "/subscription/{subscriptionName}", method = RequestMethod.DELETE)
public ResponseEnreplacedy<String> deleteSubscription(@PathVariable("subscriptionName") String subscriptionTopic) {
logger.info("Deleting a subscription to topic: " + subscriptionTopic);
if (!this.listenerContainersMap.containsKey(subscriptionTopic)) {
// Not subscribed
logger.error("Not subscribed to topic " + subscriptionTopic);
return new ResponseEnreplacedy<>("{'description': 'Was not subscribed'}", HttpStatus.BAD_REQUEST);
}
try {
DefaultMessageListenerContainer listenercontainer = this.listenerContainersMap.get(subscriptionTopic);
listenercontainer.stop();
listenercontainer.destroy();
this.listenerContainersMap.remove(subscriptionTopic);
} catch (Exception e) {
logger.error("Service Creation failed.", e);
return new ResponseEnreplacedy<>("{'description': '" + e.getMessage() + "'}", HttpStatus.BAD_REQUEST);
}
logger.info("Finished Deleting a subscription to topic: " + subscriptionTopic);
return new ResponseEnreplacedy<>("{}", HttpStatus.OK);
}
19
View Source File : SolaceController.java
License : Apache License 2.0
Project Creator : SolaceSamples
License : Apache License 2.0
Project Creator : SolaceSamples
@RequestMapping(value = "/subscription", method = RequestMethod.POST)
public ResponseEnreplacedy<String> addSubscription(@RequestBody SimpleSubscription subscription) {
String subscriptionTopic = subscription.getSubscription();
logger.info("Adding a subscription to topic: " + subscriptionTopic);
if (this.listenerContainersMap.containsKey(subscriptionTopic)) {
// Already subscribed
logger.error("Already subscribed to topic " + subscriptionTopic);
return new ResponseEnreplacedy<>("{'description': 'Already subscribed'}", HttpStatus.BAD_REQUEST);
}
try {
DefaultMessageListenerContainer listenercontainer = createListener(subscriptionTopic);
listenercontainer.start();
this.listenerContainersMap.put(subscriptionTopic, listenercontainer);
} catch (Exception e) {
logger.error("Service Creation failed.", e);
return new ResponseEnreplacedy<>("{'description': '" + e.getMessage() + "'}", HttpStatus.BAD_REQUEST);
}
logger.info("Finished Adding a subscription to topic: " + subscriptionTopic);
return new ResponseEnreplacedy<>("{}", HttpStatus.OK);
}
19
View Source File : JmsConfigurationFactory.java
License : Apache License 2.0
Project Creator : OSGP
License : Apache License 2.0
Project Creator : OSGP
public DefaultMessageListenerContainer initMessageListenerContainer(final MessageListener messageListener, final ActiveMQDestination destination) {
LOGGER.debug("Initializing message listener container for message listener: {}, and destination {}.", messageListener, destination);
final DefaultMessageListenerContainer messageListenerContainer = this.initMessageListenerContainer();
messageListenerContainer.setDestination(destination);
messageListenerContainer.setMessageListener(messageListener);
return messageListenerContainer;
}
19
View Source File : JmsConfigurationFactory.java
License : Apache License 2.0
Project Creator : OSGP
License : Apache License 2.0
Project Creator : OSGP
private DefaultMessageListenerContainer initMessageListenerContainer() {
LOGGER.debug("Initializing default message listener container.");
final DefaultMessageListenerContainer defaultMessageListenerContainer = new DefaultMessageListenerContainer();
defaultMessageListenerContainer.setConnectionFactory(this.pooledConnectionFactory);
defaultMessageListenerContainer.setConcurrentConsumers(this.propertyReader.get(PROPERTY_NAME_CONCURRENT_CONSUMERS, int.clreplaced));
defaultMessageListenerContainer.setMaxConcurrentConsumers(this.propertyReader.get(PROPERTY_NAME_MAX_CONCURRENT_CONSUMERS, int.clreplaced));
defaultMessageListenerContainer.setSessionTransacted(true);
return defaultMessageListenerContainer;
}
19
View Source File : InboundOsgpCoreRequestsMessagingConfig.java
License : Apache License 2.0
Project Creator : OSGP
License : Apache License 2.0
Project Creator : OSGP
@Bean(name = "protocolIec61850InboundOsgpCoreRequestsMessageListenerContainer")
public DefaultMessageListenerContainer messageListenerContainer(@Qualifier("protocolIec61850InboundOsgpCoreRequestsMessageListener") final DeviceRequestMessageListener messageListener) {
final DefaultMessageListenerContainer messageListenerContainer = this.jmsConfigurationFactory.initMessageListenerContainer(messageListener);
// Setting ErrorHandler to prevent logging at WARN level
// when JMSException is thrown: Execution of JMS message
// listener failed, and no ErrorHandler has been set.
messageListenerContainer.setErrorHandler(t -> LOGGER.debug("iec61850RequestsMessageListenerContainer.ErrorHandler.handleError()", t));
return messageListenerContainer;
}
19
View Source File : InboundOsgpCoreRequestsMessagingConfig.java
License : Apache License 2.0
Project Creator : OSGP
License : Apache License 2.0
Project Creator : OSGP
@Bean(name = "protocolIec60870InboundOsgpCoreRequestsMessageListenerContainer")
public DefaultMessageListenerContainer messageListenerContainer(@Qualifier("protocolIec60870InboundOsgpCoreRequestsMessageListener") final MessageListener messageListener) {
final DefaultMessageListenerContainer messageListenerContainer = this.jmsConfigurationFactory.initMessageListenerContainer(messageListener);
// Setting ErrorHandler to prevent logging at WARN level
// when JMSException is thrown: Execution of JMS message
// listener failed, and no ErrorHandler has been set.
messageListenerContainer.setErrorHandler(t -> LOGGER.debug("iec60870RequestsMessageListenerContainer.ErrorHandler.handleError()", t));
return messageListenerContainer;
}
19
View Source File : InboundOsgpCoreRequestsMessagingConfig.java
License : Apache License 2.0
Project Creator : OSGP
License : Apache License 2.0
Project Creator : OSGP
@Bean(name = "protocolDlmsInboundOsgpCoreRequestsMessageListenerContainer")
public DefaultMessageListenerContainer messageListenerContainer(@Qualifier("protocolDlmsInboundOsgpCoreRequestsMessageListener") final MessageListener messageListener) {
DefaultMessageListenerContainer container = this.jmsConfigurationFactory.initMessageListenerContainer(messageListener);
LOGGER.info("Initializing protocolDlmsInboundOsgpCoreRequestsMessageListenerContainer bean at Destination {}", container.getDestination());
return container;
}
19
View Source File : MessageListenerContainerRegistry.java
License : Apache License 2.0
Project Creator : OSGP
License : Apache License 2.0
Project Creator : OSGP
@Override
protected void preUnregister(final String key) {
final DefaultMessageListenerContainer messageListenerContainer = this.getValue(key);
if (messageListenerContainer != null) {
LOGGER.info("Stopping and destroying MessageListenerContainer {}", key);
stopAndDestroy(messageListenerContainer);
}
}
19
View Source File : MessageListenerContainerRegistry.java
License : Apache License 2.0
Project Creator : OSGP
License : Apache License 2.0
Project Creator : OSGP
private static void stopAndDestroy(final DefaultMessageListenerContainer messageListenerContainer) {
messageListenerContainer.stop();
messageListenerContainer.destroy();
}
19
View Source File : DomainResponseMessageListenerContainerFactory.java
License : Apache License 2.0
Project Creator : OSGP
License : Apache License 2.0
Project Creator : OSGP
private void init(final DomainInfo domainInfo) throws SSLException {
final JmsConfigurationFactory jmsConfigurationFactory = new JmsConfigurationFactory(this.environment, this.defaultDomainJmsConfiguration, domainInfo.getIncomingResponsesPropertyPrefix());
final PooledConnectionFactory connectionFactory = jmsConfigurationFactory.getPooledConnectionFactory();
this.connectionFactoryRegistry.register(domainInfo.getKey(), connectionFactory);
connectionFactory.start();
final DomainResponseMessageListener messageListener = new DomainResponseMessageListener(this.protocolResponseService, this.protocolInfos);
final DefaultMessageListenerContainer messageListenerContainer = jmsConfigurationFactory.initMessageListenerContainer(messageListener);
this.messageListenerRegistry.register(domainInfo.getKey(), messageListenerContainer);
messageListenerContainer.afterPropertiesSet();
messageListenerContainer.start();
}
19
View Source File : DomainRequestMessageListenerContainerFactory.java
License : Apache License 2.0
Project Creator : OSGP
License : Apache License 2.0
Project Creator : OSGP
private void init(final DomainInfo domainInfo) throws SSLException {
final JmsConfigurationFactory jmsConfigurationFactory = new JmsConfigurationFactory(this.environment, this.defaultDomainJmsConfiguration, domainInfo.getIncomingRequestsPropertyPrefix());
final PooledConnectionFactory connectionFactory = jmsConfigurationFactory.getPooledConnectionFactory();
this.connectionFactoryRegistry.register(domainInfo.getKey(), connectionFactory);
connectionFactory.start();
final DomainRequestMessageListener messageListener = new DomainRequestMessageListener(domainInfo, this.deviceRequestMessageService, this.scheduledTaskRepository);
final DefaultMessageListenerContainer messageListenerContainer = jmsConfigurationFactory.initMessageListenerContainer(messageListener);
this.messageListenerContainerRegistry.register(domainInfo.getKey(), messageListenerContainer);
messageListenerContainer.afterPropertiesSet();
messageListenerContainer.start();
}
19
View Source File : InboundDomainResponsesMessagingConfig.java
License : Apache License 2.0
Project Creator : OSGP
License : Apache License 2.0
Project Creator : OSGP
@Bean(name = "wsPublicLightingInboundDomainResponsesMessageListenerContainer")
public DefaultMessageListenerContainer messageListenerContainer(@Qualifier("wsPublicLightingInboundDomainResponsesMessageListener") final PublicLightingResponseMessageListener responseMessageListener) {
LOGGER.info("Initializing wsPublicLightingInboundDomainResponsesMessageListenerContainer bean.");
final DefaultMessageListenerContainer container = this.jmsConfigurationFactory.initMessageListenerContainer(responseMessageListener);
// Only consume messages defined by the message selector string.
// All other messages will be retrieved using
// {@link PublicLightingResponseMessageFinder}
container.setMessageSelector("JMSType = 'SET_LIGHT_SCHEDULE'");
return container;
}
19
View Source File : StatCollector.java
License : Apache License 2.0
Project Creator : oneops
License : Apache License 2.0
Project Creator : oneops
public void setListenerContainer(DefaultMessageListenerContainer listenerContainer) {
this.listenerContainer = listenerContainer;
}
19
View Source File : AntennaListener.java
License : Apache License 2.0
Project Creator : oneops
License : Apache License 2.0
Project Creator : oneops
@Autowired
public void setDmlc(DefaultMessageListenerContainer dmlc) {
this.dmlc = dmlc;
}
19
View Source File : MethodJmsListenerEndpointTests.java
License : MIT License
Project Creator : mindcarver
License : MIT License
Project Creator : mindcarver
/**
* @author Stephane Nicoll
*/
public clreplaced MethodJmsListenerEndpointTests {
private final DefaultMessageHandlerMethodFactory factory = new DefaultMessageHandlerMethodFactory();
private final DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
private final JmsEndpointSampleBean sample = new JmsEndpointSampleBean();
@Rule
public final TestName name = new TestName();
@Rule
public final ExpectedException thrown = ExpectedException.none();
@Before
public void setup() {
initializeFactory(this.factory);
}
@Test
public void createMessageListenerNoFactory() {
MethodJmsListenerEndpoint endpoint = new MethodJmsListenerEndpoint();
endpoint.setBean(this);
endpoint.setMethod(getTestMethod());
this.thrown.expect(IllegalStateException.clreplaced);
endpoint.createMessageListener(this.container);
}
@Test
public void createMessageListener() {
MethodJmsListenerEndpoint endpoint = new MethodJmsListenerEndpoint();
endpoint.setBean(this);
endpoint.setMethod(getTestMethod());
endpoint.setMessageHandlerMethodFactory(this.factory);
replacedertNotNull(endpoint.createMessageListener(this.container));
}
@Test
public void setExtraCollaborators() {
MessageConverter messageConverter = mock(MessageConverter.clreplaced);
DestinationResolver destinationResolver = mock(DestinationResolver.clreplaced);
this.container.setMessageConverter(messageConverter);
this.container.setDestinationResolver(destinationResolver);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod("resolveObjectPayload", MyBean.clreplaced), this.container);
DirectFieldAccessor accessor = new DirectFieldAccessor(listener);
replacedertSame(messageConverter, accessor.getPropertyValue("messageConverter"));
replacedertSame(destinationResolver, accessor.getPropertyValue("destinationResolver"));
}
@Test
public void resolveMessageAndSession() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(javax.jms.Message.clreplaced, Session.clreplaced);
Session session = mock(Session.clreplaced);
listener.onMessage(createSimpleJmsTextMessage("test"), session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveGenericMessage() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Message.clreplaced);
Session session = mock(Session.clreplaced);
listener.onMessage(createSimpleJmsTextMessage("test"), session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveHeaderAndPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, int.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("myCounter", 55);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveCustomHeaderNameAndPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, int.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("myCounter", 24);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveCustomHeaderNameAndPayloadWithHeaderNameSet() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, int.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("myCounter", 24);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveHeaders() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, Map.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("customInt", 1234);
message.setJMSMessageID("abcd-1234");
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveMessageHeaders() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(MessageHeaders.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setLongProperty("customLong", 4567L);
message.setJMSType("myMessageType");
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveJmsMessageHeaderAccessor() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(JmsMessageHeaderAccessor.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setBooleanProperty("customBoolean", true);
message.setJMSPriority(9);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveObjectPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(MyBean.clreplaced);
MyBean myBean = new MyBean();
myBean.name = "myBean name";
Session session = mock(Session.clreplaced);
ObjectMessage message = mock(ObjectMessage.clreplaced);
given(message.getObject()).willReturn(myBean);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveConvertedPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Integer.clreplaced);
Session session = mock(Session.clreplaced);
listener.onMessage(createSimpleJmsTextMessage("33"), session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void processAndReply() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced);
String body = "echo text";
String correlationId = "link-1234";
Destination replyDestination = new Destination() {
};
TextMessage reply = mock(TextMessage.clreplaced);
QueueSender queueSender = mock(QueueSender.clreplaced);
Session session = mock(Session.clreplaced);
given(session.createTextMessage(body)).willReturn(reply);
given(session.createProducer(replyDestination)).willReturn(queueSender);
listener.setDefaultResponseDestination(replyDestination);
StubTextMessage inputMessage = createSimpleJmsTextMessage(body);
inputMessage.setJMSCorrelationID(correlationId);
listener.onMessage(inputMessage, session);
replacedertDefaultListenerMethodInvocation();
verify(reply).setJMSCorrelationID(correlationId);
verify(queueSender).send(reply);
verify(queueSender).close();
}
@Test
public void processAndReplyWithSendToQueue() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", false);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
public void processFromTopicAndReplyWithSendToQueue() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setPubSubDomain(true);
container.setReplyPubSubDomain(false);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", false);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
public void processAndReplyWithSendToTopic() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setPubSubDomain(true);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", true);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
public void processFromQueueAndReplyWithSendToTopic() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setReplyPubSubDomain(true);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", true);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
public void processAndReplyWithDefaultSendTo() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced);
processAndReplyWithSendTo(listener, "defaultReply", false);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void processAndReplyWithCustomReplyQosSettings() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
QosSettings replyQosSettings = new QosSettings(1, 6, 6000);
container.setReplyQosSettings(replyQosSettings);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", false, replyQosSettings);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
public void processAndReplyWithNullReplyQosSettings() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setReplyQosSettings(null);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, "replyDestination", false);
replacedertListenerMethodInvocation(this.sample, methodName);
}
private void processAndReplyWithSendTo(MessagingMessageListenerAdapter listener, String replyDestinationName, boolean pubSubDomain) throws JMSException {
processAndReplyWithSendTo(listener, replyDestinationName, pubSubDomain, null);
}
private void processAndReplyWithSendTo(MessagingMessageListenerAdapter listener, String replyDestinationName, boolean pubSubDomain, QosSettings replyQosSettings) throws JMSException {
String body = "echo text";
String correlationId = "link-1234";
Destination replyDestination = new Destination() {
};
DestinationResolver destinationResolver = mock(DestinationResolver.clreplaced);
TextMessage reply = mock(TextMessage.clreplaced);
QueueSender queueSender = mock(QueueSender.clreplaced);
Session session = mock(Session.clreplaced);
given(destinationResolver.resolveDestinationName(session, replyDestinationName, pubSubDomain)).willReturn(replyDestination);
given(session.createTextMessage(body)).willReturn(reply);
given(session.createProducer(replyDestination)).willReturn(queueSender);
listener.setDestinationResolver(destinationResolver);
StubTextMessage inputMessage = createSimpleJmsTextMessage(body);
inputMessage.setJMSCorrelationID(correlationId);
listener.onMessage(inputMessage, session);
verify(destinationResolver).resolveDestinationName(session, replyDestinationName, pubSubDomain);
verify(reply).setJMSCorrelationID(correlationId);
if (replyQosSettings != null) {
verify(queueSender).send(reply, replyQosSettings.getDeliveryMode(), replyQosSettings.getPriority(), replyQosSettings.getTimeToLive());
} else {
verify(queueSender).send(reply);
}
verify(queueSender).close();
}
@Test
public void emptySendTo() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced);
TextMessage reply = mock(TextMessage.clreplaced);
Session session = mock(Session.clreplaced);
given(session.createTextMessage("content")).willReturn(reply);
this.thrown.expect(ReplyFailureException.clreplaced);
this.thrown.expectCause(Matchers.isA(InvalidDestinationException.clreplaced));
listener.onMessage(createSimpleJmsTextMessage("content"), session);
}
@Test
public void invalidSendTo() {
this.thrown.expect(IllegalStateException.clreplaced);
this.thrown.expectMessage("firstDestination");
this.thrown.expectMessage("secondDestination");
createDefaultInstance(String.clreplaced);
}
@Test
public void validatePayloadValid() throws JMSException {
String methodName = "validatePayload";
DefaultMessageHandlerMethodFactory customFactory = new DefaultMessageHandlerMethodFactory();
customFactory.setValidator(testValidator("invalid value"));
initializeFactory(customFactory);
Method method = getListenerMethod(methodName, String.clreplaced);
MessagingMessageListenerAdapter listener = createInstance(customFactory, method);
Session session = mock(Session.clreplaced);
// test is a valid value
listener.onMessage(createSimpleJmsTextMessage("test"), session);
replacedertListenerMethodInvocation(this.sample, methodName);
}
@Test
public void validatePayloadInvalid() throws JMSException {
DefaultMessageHandlerMethodFactory customFactory = new DefaultMessageHandlerMethodFactory();
customFactory.setValidator(testValidator("invalid value"));
Method method = getListenerMethod("validatePayload", String.clreplaced);
MessagingMessageListenerAdapter listener = createInstance(customFactory, method);
Session session = mock(Session.clreplaced);
this.thrown.expect(ListenerExecutionFailedException.clreplaced);
// test is an invalid value
listener.onMessage(createSimpleJmsTextMessage("invalid value"), session);
}
// failure scenario
@Test
public void invalidPayloadType() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Integer.clreplaced);
Session session = mock(Session.clreplaced);
this.thrown.expect(ListenerExecutionFailedException.clreplaced);
this.thrown.expectCause(Matchers.isA(MessageConversionException.clreplaced));
// ref to method
this.thrown.expectMessage(getDefaultListenerMethod(Integer.clreplaced).toGenericString());
// test is not a valid integer
listener.onMessage(createSimpleJmsTextMessage("test"), session);
}
@Test
public void invalidMessagePayloadType() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Message.clreplaced);
Session session = mock(Session.clreplaced);
this.thrown.expect(ListenerExecutionFailedException.clreplaced);
this.thrown.expectCause(Matchers.isA(MessageConversionException.clreplaced));
// Message<String> as Message<Integer>
listener.onMessage(createSimpleJmsTextMessage("test"), session);
}
private MessagingMessageListenerAdapter createInstance(DefaultMessageHandlerMethodFactory factory, Method method, MessageListenerContainer container) {
MethodJmsListenerEndpoint endpoint = new MethodJmsListenerEndpoint();
endpoint.setBean(this.sample);
endpoint.setMethod(method);
endpoint.setMessageHandlerMethodFactory(factory);
return endpoint.createMessageListener(container);
}
private MessagingMessageListenerAdapter createInstance(DefaultMessageHandlerMethodFactory factory, Method method) {
return createInstance(factory, method, new SimpleMessageListenerContainer());
}
private MessagingMessageListenerAdapter createDefaultInstance(Clreplaced<?>... parameterTypes) {
return createInstance(this.factory, getDefaultListenerMethod(parameterTypes));
}
private StubTextMessage createSimpleJmsTextMessage(String body) {
return new StubTextMessage(body);
}
private Method getListenerMethod(String methodName, Clreplaced<?>... parameterTypes) {
Method method = ReflectionUtils.findMethod(JmsEndpointSampleBean.clreplaced, methodName, parameterTypes);
replacedertNotNull("no method found with name " + methodName + " and parameters " + Arrays.toString(parameterTypes));
return method;
}
private Method getDefaultListenerMethod(Clreplaced<?>... parameterTypes) {
return getListenerMethod(this.name.getMethodName(), parameterTypes);
}
private void replacedertDefaultListenerMethodInvocation() {
replacedertListenerMethodInvocation(this.sample, this.name.getMethodName());
}
private void replacedertListenerMethodInvocation(JmsEndpointSampleBean bean, String methodName) {
replacedertTrue("Method " + methodName + " should have been invoked", bean.invocations.get(methodName));
}
private void initializeFactory(DefaultMessageHandlerMethodFactory factory) {
factory.setBeanFactory(new StaticListableBeanFactory());
factory.afterPropertiesSet();
}
private Validator testValidator(final String invalidValue) {
return new Validator() {
@Override
public boolean supports(Clreplaced<?> clazz) {
return String.clreplaced.isreplacedignableFrom(clazz);
}
@Override
public void validate(@Nullable Object target, Errors errors) {
String value = (String) target;
if (invalidValue.equals(value)) {
errors.reject("not a valid value");
}
}
};
}
private Method getTestMethod() {
return ReflectionUtils.findMethod(MethodJmsListenerEndpointTests.clreplaced, this.name.getMethodName());
}
@SendTo("defaultReply")
@SuppressWarnings("unused")
static clreplaced JmsEndpointSampleBean {
private final Map<String, Boolean> invocations = new HashMap<>();
public void resolveMessageAndSession(javax.jms.Message message, Session session) {
this.invocations.put("resolveMessageAndSession", true);
replacedertNotNull("Message not injected", message);
replacedertNotNull("Session not injected", session);
}
public void resolveGenericMessage(Message<String> message) {
this.invocations.put("resolveGenericMessage", true);
replacedertNotNull("Generic message not injected", message);
replacedertEquals("Wrong message payload", "test", message.getPayload());
}
public void resolveHeaderAndPayload(@Payload String content, @Header int myCounter) {
this.invocations.put("resolveHeaderAndPayload", true);
replacedertEquals("Wrong @Payload resolution", "my payload", content);
replacedertEquals("Wrong @Header resolution", 55, myCounter);
}
public void resolveCustomHeaderNameAndPayload(@Payload String content, @Header("myCounter") int counter) {
this.invocations.put("resolveCustomHeaderNameAndPayload", true);
replacedertEquals("Wrong @Payload resolution", "my payload", content);
replacedertEquals("Wrong @Header resolution", 24, counter);
}
public void resolveCustomHeaderNameAndPayloadWithHeaderNameSet(@Payload String content, @Header(name = "myCounter") int counter) {
this.invocations.put("resolveCustomHeaderNameAndPayloadWithHeaderNameSet", true);
replacedertEquals("Wrong @Payload resolution", "my payload", content);
replacedertEquals("Wrong @Header resolution", 24, counter);
}
public void resolveHeaders(String content, @Headers Map<String, Object> headers) {
this.invocations.put("resolveHeaders", true);
replacedertEquals("Wrong payload resolution", "my payload", content);
replacedertNotNull("headers not injected", headers);
replacedertEquals("Missing JMS message id header", "abcd-1234", headers.get(JmsHeaders.MESSAGE_ID));
replacedertEquals("Missing custom header", 1234, headers.get("customInt"));
}
public void resolveMessageHeaders(MessageHeaders headers) {
this.invocations.put("resolveMessageHeaders", true);
replacedertNotNull("MessageHeaders not injected", headers);
replacedertEquals("Missing JMS message type header", "myMessageType", headers.get(JmsHeaders.TYPE));
replacedertEquals("Missing custom header", 4567L, (long) headers.get("customLong"), 0.0);
}
public void resolveJmsMessageHeaderAccessor(JmsMessageHeaderAccessor headers) {
this.invocations.put("resolveJmsMessageHeaderAccessor", true);
replacedertNotNull("MessageHeaders not injected", headers);
replacedertEquals("Missing JMS message priority header", Integer.valueOf(9), headers.getPriority());
replacedertEquals("Missing custom header", true, headers.getHeader("customBoolean"));
}
public void resolveObjectPayload(MyBean bean) {
this.invocations.put("resolveObjectPayload", true);
replacedertNotNull("Object payload not injected", bean);
replacedertEquals("Wrong content for payload", "myBean name", bean.name);
}
public void resolveConvertedPayload(Integer counter) {
this.invocations.put("resolveConvertedPayload", true);
replacedertNotNull("Payload not injected", counter);
replacedertEquals("Wrong content for payload", Integer.valueOf(33), counter);
}
public String processAndReply(@Payload String content) {
this.invocations.put("processAndReply", true);
return content;
}
@SendTo("replyDestination")
public String processAndReplyWithSendTo(String content) {
this.invocations.put("processAndReplyWithSendTo", true);
return content;
}
public String processAndReplyWithDefaultSendTo(String content) {
this.invocations.put("processAndReplyWithDefaultSendTo", true);
return content;
}
@SendTo("")
public String emptySendTo(String content) {
this.invocations.put("emptySendTo", true);
return content;
}
@SendTo({ "firstDestination", "secondDestination" })
public String invalidSendTo(String content) {
this.invocations.put("invalidSendTo", true);
return content;
}
public void validatePayload(@Validated String payload) {
this.invocations.put("validatePayload", true);
}
public void invalidPayloadType(@Payload Integer payload) {
throw new IllegalStateException("Should never be called.");
}
public void invalidMessagePayloadType(Message<Integer> message) {
throw new IllegalStateException("Should never be called.");
}
}
@SuppressWarnings("serial")
static clreplaced MyBean implements Serializable {
private String name;
}
}
19
View Source File : JmsListenerEndpointTests.java
License : MIT License
Project Creator : mindcarver
License : MIT License
Project Creator : mindcarver
@Test
public void setupMessageContainerNoListener() {
DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint();
thrown.expect(IllegalStateException.clreplaced);
endpoint.setupListenerContainer(container);
}
19
View Source File : JmsProducerConfig.java
License : Apache License 2.0
Project Creator : linnykoleh
License : Apache License 2.0
Project Creator : linnykoleh
@Bean
public DefaultMessageListenerContainer containerListener() {
final DefaultMessageListenerContainer listener = new DefaultMessageListenerContainer();
listener.setConnectionFactory(jmsCommonConfig.connectionFactory());
listener.setDestination(jmsCommonConfig.confirmationQueue());
listener.setMessageListener(confirmationReceiver());
return listener;
}
19
View Source File : JmsConsumerConfig.java
License : Apache License 2.0
Project Creator : linnykoleh
License : Apache License 2.0
Project Creator : linnykoleh
@Bean
public DefaultMessageListenerContainer containerListener() {
DefaultMessageListenerContainer listener = new DefaultMessageListenerContainer();
listener.setConnectionFactory(jmsCommonConfig.connectionFactory());
listener.setDestination(jmsCommonConfig.userQueue());
listener.setMessageListener(userReceiver());
return listener;
}
19
View Source File : MethodJmsListenerEndpointTests.java
License : Apache License 2.0
Project Creator : langtianya
License : Apache License 2.0
Project Creator : langtianya
/**
* @author Stephane Nicoll
*/
public clreplaced MethodJmsListenerEndpointTests {
private final DefaultMessageHandlerMethodFactory factory = new DefaultMessageHandlerMethodFactory();
private final DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
private final JmsEndpointSampleBean sample = new JmsEndpointSampleBean();
@Rule
public final TestName name = new TestName();
@Rule
public final ExpectedException thrown = ExpectedException.none();
@Before
public void setup() {
initializeFactory(factory);
}
@Test
public void createMessageListenerNoFactory() {
MethodJmsListenerEndpoint endpoint = new MethodJmsListenerEndpoint();
endpoint.setBean(this);
endpoint.setMethod(getTestMethod());
thrown.expect(IllegalStateException.clreplaced);
endpoint.createMessageListener(container);
}
@Test
public void createMessageListener() {
MethodJmsListenerEndpoint endpoint = new MethodJmsListenerEndpoint();
endpoint.setBean(this);
endpoint.setMethod(getTestMethod());
endpoint.setMessageHandlerMethodFactory(factory);
replacedertNotNull(endpoint.createMessageListener(container));
}
@Test
public void setExtraCollaborators() {
MessageConverter messageConverter = mock(MessageConverter.clreplaced);
DestinationResolver destinationResolver = mock(DestinationResolver.clreplaced);
this.container.setMessageConverter(messageConverter);
this.container.setDestinationResolver(destinationResolver);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod("resolveObjectPayload", MyBean.clreplaced), container);
DirectFieldAccessor accessor = new DirectFieldAccessor(listener);
replacedertSame(messageConverter, accessor.getPropertyValue("messageConverter"));
replacedertSame(destinationResolver, accessor.getPropertyValue("destinationResolver"));
}
@Test
public void resolveMessageAndSession() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(javax.jms.Message.clreplaced, Session.clreplaced);
Session session = mock(Session.clreplaced);
listener.onMessage(createSimpleJmsTextMessage("test"), session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveGenericMessage() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Message.clreplaced);
Session session = mock(Session.clreplaced);
listener.onMessage(createSimpleJmsTextMessage("test"), session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveHeaderAndPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, int.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("myCounter", 55);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveCustomHeaderNameAndPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, int.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("myCounter", 24);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveCustomHeaderNameAndPayloadWithHeaderNameSet() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, int.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("myCounter", 24);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveHeaders() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced, Map.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setIntProperty("customInt", 1234);
message.setJMSMessageID("abcd-1234");
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveMessageHeaders() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(MessageHeaders.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setLongProperty("customLong", 4567L);
message.setJMSType("myMessageType");
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveJmsMessageHeaderAccessor() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(JmsMessageHeaderAccessor.clreplaced);
Session session = mock(Session.clreplaced);
StubTextMessage message = createSimpleJmsTextMessage("my payload");
message.setBooleanProperty("customBoolean", true);
message.setJMSPriority(9);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveObjectPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(MyBean.clreplaced);
MyBean myBean = new MyBean();
myBean.name = "myBean name";
Session session = mock(Session.clreplaced);
ObjectMessage message = mock(ObjectMessage.clreplaced);
given(message.getObject()).willReturn(myBean);
listener.onMessage(message, session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void resolveConvertedPayload() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Integer.clreplaced);
Session session = mock(Session.clreplaced);
listener.onMessage(createSimpleJmsTextMessage("33"), session);
replacedertDefaultListenerMethodInvocation();
}
@Test
public void processAndReply() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced);
String body = "echo text";
String correlationId = "link-1234";
Destination replyDestination = new Destination() {
};
TextMessage reply = mock(TextMessage.clreplaced);
QueueSender queueSender = mock(QueueSender.clreplaced);
Session session = mock(Session.clreplaced);
given(session.createTextMessage(body)).willReturn(reply);
given(session.createProducer(replyDestination)).willReturn(queueSender);
listener.setDefaultResponseDestination(replyDestination);
StubTextMessage inputMessage = createSimpleJmsTextMessage(body);
inputMessage.setJMSCorrelationID(correlationId);
listener.onMessage(inputMessage, session);
replacedertDefaultListenerMethodInvocation();
verify(reply).setJMSCorrelationID(correlationId);
verify(queueSender).send(reply);
verify(queueSender).close();
}
@Test
public void processAndReplyWithSendToQueue() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, false);
replacedertListenerMethodInvocation(sample, methodName);
}
@Test
public void processFromTopicAndReplyWithSendToQueue() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setPubSubDomain(true);
container.setReplyPubSubDomain(false);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, false);
replacedertListenerMethodInvocation(sample, methodName);
}
@Test
public void processAndReplyWithSendToTopic() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setPubSubDomain(true);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, true);
replacedertListenerMethodInvocation(sample, methodName);
}
@Test
public void processFromQueueAndReplyWithSendToTopic() throws JMSException {
String methodName = "processAndReplyWithSendTo";
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setReplyPubSubDomain(true);
MessagingMessageListenerAdapter listener = createInstance(this.factory, getListenerMethod(methodName, String.clreplaced), container);
processAndReplyWithSendTo(listener, true);
replacedertListenerMethodInvocation(sample, methodName);
}
private void processAndReplyWithSendTo(MessagingMessageListenerAdapter listener, boolean pubSubDomain) throws JMSException {
String body = "echo text";
String correlationId = "link-1234";
Destination replyDestination = new Destination() {
};
DestinationResolver destinationResolver = mock(DestinationResolver.clreplaced);
TextMessage reply = mock(TextMessage.clreplaced);
QueueSender queueSender = mock(QueueSender.clreplaced);
Session session = mock(Session.clreplaced);
given(destinationResolver.resolveDestinationName(session, "replyDestination", pubSubDomain)).willReturn(replyDestination);
given(session.createTextMessage(body)).willReturn(reply);
given(session.createProducer(replyDestination)).willReturn(queueSender);
listener.setDestinationResolver(destinationResolver);
StubTextMessage inputMessage = createSimpleJmsTextMessage(body);
inputMessage.setJMSCorrelationID(correlationId);
listener.onMessage(inputMessage, session);
verify(destinationResolver).resolveDestinationName(session, "replyDestination", pubSubDomain);
verify(reply).setJMSCorrelationID(correlationId);
verify(queueSender).send(reply);
verify(queueSender).close();
}
@Test
public void emptySendTo() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(String.clreplaced);
TextMessage reply = mock(TextMessage.clreplaced);
Session session = mock(Session.clreplaced);
given(session.createTextMessage("content")).willReturn(reply);
thrown.expect(ReplyFailureException.clreplaced);
thrown.expectCause(Matchers.isA(InvalidDestinationException.clreplaced));
listener.onMessage(createSimpleJmsTextMessage("content"), session);
}
@Test
public void invalidSendTo() {
thrown.expect(IllegalStateException.clreplaced);
thrown.expectMessage("firstDestination");
thrown.expectMessage("secondDestination");
createDefaultInstance(String.clreplaced);
}
@Test
public void validatePayloadValid() throws JMSException {
String methodName = "validatePayload";
DefaultMessageHandlerMethodFactory customFactory = new DefaultMessageHandlerMethodFactory();
customFactory.setValidator(testValidator("invalid value"));
initializeFactory(customFactory);
Method method = getListenerMethod(methodName, String.clreplaced);
MessagingMessageListenerAdapter listener = createInstance(customFactory, method);
Session session = mock(Session.clreplaced);
// test is a valid value
listener.onMessage(createSimpleJmsTextMessage("test"), session);
replacedertListenerMethodInvocation(sample, methodName);
}
@Test
public void validatePayloadInvalid() throws JMSException {
DefaultMessageHandlerMethodFactory customFactory = new DefaultMessageHandlerMethodFactory();
customFactory.setValidator(testValidator("invalid value"));
Method method = getListenerMethod("validatePayload", String.clreplaced);
MessagingMessageListenerAdapter listener = createInstance(customFactory, method);
Session session = mock(Session.clreplaced);
thrown.expect(ListenerExecutionFailedException.clreplaced);
// test is an invalid value
listener.onMessage(createSimpleJmsTextMessage("invalid value"), session);
}
// failure scenario
@Test
public void invalidPayloadType() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Integer.clreplaced);
Session session = mock(Session.clreplaced);
thrown.expect(ListenerExecutionFailedException.clreplaced);
thrown.expectCause(Matchers.isA(MessageConversionException.clreplaced));
// ref to method
thrown.expectMessage(getDefaultListenerMethod(Integer.clreplaced).toGenericString());
// test is not a valid integer
listener.onMessage(createSimpleJmsTextMessage("test"), session);
}
@Test
public void invalidMessagePayloadType() throws JMSException {
MessagingMessageListenerAdapter listener = createDefaultInstance(Message.clreplaced);
Session session = mock(Session.clreplaced);
thrown.expect(ListenerExecutionFailedException.clreplaced);
thrown.expectCause(Matchers.isA(MethodArgumentTypeMismatchException.clreplaced));
// Message<String> as Message<Integer>
listener.onMessage(createSimpleJmsTextMessage("test"), session);
}
private MessagingMessageListenerAdapter createInstance(DefaultMessageHandlerMethodFactory factory, Method method, MessageListenerContainer container) {
MethodJmsListenerEndpoint endpoint = new MethodJmsListenerEndpoint();
endpoint.setBean(sample);
endpoint.setMethod(method);
endpoint.setMessageHandlerMethodFactory(factory);
return endpoint.createMessageListener(container);
}
private MessagingMessageListenerAdapter createInstance(DefaultMessageHandlerMethodFactory factory, Method method) {
return createInstance(factory, method, new SimpleMessageListenerContainer());
}
private MessagingMessageListenerAdapter createDefaultInstance(Clreplaced<?>... parameterTypes) {
return createInstance(this.factory, getDefaultListenerMethod(parameterTypes));
}
private StubTextMessage createSimpleJmsTextMessage(String body) {
return new StubTextMessage(body);
}
private Method getListenerMethod(String methodName, Clreplaced<?>... parameterTypes) {
Method method = ReflectionUtils.findMethod(JmsEndpointSampleBean.clreplaced, methodName, parameterTypes);
replacedertNotNull("no method found with name " + methodName + " and parameters " + Arrays.toString(parameterTypes));
return method;
}
private Method getDefaultListenerMethod(Clreplaced<?>... parameterTypes) {
return getListenerMethod(name.getMethodName(), parameterTypes);
}
private void replacedertDefaultListenerMethodInvocation() {
replacedertListenerMethodInvocation(sample, name.getMethodName());
}
private void replacedertListenerMethodInvocation(JmsEndpointSampleBean bean, String methodName) {
replacedertTrue("Method " + methodName + " should have been invoked", bean.invocations.get(methodName));
}
private void initializeFactory(DefaultMessageHandlerMethodFactory factory) {
factory.setBeanFactory(new StaticListableBeanFactory());
factory.afterPropertiesSet();
}
private Validator testValidator(final String invalidValue) {
return new Validator() {
@Override
public boolean supports(Clreplaced<?> clazz) {
return String.clreplaced.isreplacedignableFrom(clazz);
}
@Override
public void validate(Object target, Errors errors) {
String value = (String) target;
if (invalidValue.equals(value)) {
errors.reject("not a valid value");
}
}
};
}
private Method getTestMethod() {
return ReflectionUtils.findMethod(MethodJmsListenerEndpointTests.clreplaced, name.getMethodName());
}
static clreplaced JmsEndpointSampleBean {
private final Map<String, Boolean> invocations = new HashMap<String, Boolean>();
public void resolveMessageAndSession(javax.jms.Message message, Session session) {
invocations.put("resolveMessageAndSession", true);
replacedertNotNull("Message not injected", message);
replacedertNotNull("Session not injected", session);
}
public void resolveGenericMessage(Message<String> message) {
invocations.put("resolveGenericMessage", true);
replacedertNotNull("Generic message not injected", message);
replacedertEquals("Wrong message payload", "test", message.getPayload());
}
public void resolveHeaderAndPayload(@Payload String content, @Header int myCounter) {
invocations.put("resolveHeaderAndPayload", true);
replacedertEquals("Wrong @Payload resolution", "my payload", content);
replacedertEquals("Wrong @Header resolution", 55, myCounter);
}
public void resolveCustomHeaderNameAndPayload(@Payload String content, @Header("myCounter") int counter) {
invocations.put("resolveCustomHeaderNameAndPayload", true);
replacedertEquals("Wrong @Payload resolution", "my payload", content);
replacedertEquals("Wrong @Header resolution", 24, counter);
}
public void resolveCustomHeaderNameAndPayloadWithHeaderNameSet(@Payload String content, @Header(name = "myCounter") int counter) {
invocations.put("resolveCustomHeaderNameAndPayloadWithHeaderNameSet", true);
replacedertEquals("Wrong @Payload resolution", "my payload", content);
replacedertEquals("Wrong @Header resolution", 24, counter);
}
public void resolveHeaders(String content, @Headers Map<String, Object> headers) {
invocations.put("resolveHeaders", true);
replacedertEquals("Wrong payload resolution", "my payload", content);
replacedertNotNull("headers not injected", headers);
replacedertEquals("Missing JMS message id header", "abcd-1234", headers.get(JmsHeaders.MESSAGE_ID));
replacedertEquals("Missing custom header", 1234, headers.get("customInt"));
}
public void resolveMessageHeaders(MessageHeaders headers) {
invocations.put("resolveMessageHeaders", true);
replacedertNotNull("MessageHeaders not injected", headers);
replacedertEquals("Missing JMS message type header", "myMessageType", headers.get(JmsHeaders.TYPE));
replacedertEquals("Missing custom header", 4567L, (long) headers.get("customLong"), 0.0);
}
public void resolveJmsMessageHeaderAccessor(JmsMessageHeaderAccessor headers) {
invocations.put("resolveJmsMessageHeaderAccessor", true);
replacedertNotNull("MessageHeaders not injected", headers);
replacedertEquals("Missing JMS message priority header", Integer.valueOf(9), headers.getPriority());
replacedertEquals("Missing custom header", true, headers.getHeader("customBoolean"));
}
public void resolveObjectPayload(MyBean bean) {
invocations.put("resolveObjectPayload", true);
replacedertNotNull("Object payload not injected", bean);
replacedertEquals("Wrong content for payload", "myBean name", bean.name);
}
public void resolveConvertedPayload(Integer counter) {
invocations.put("resolveConvertedPayload", true);
replacedertNotNull("Payload not injected", counter);
replacedertEquals("Wrong content for payload", Integer.valueOf(33), counter);
}
public String processAndReply(@Payload String content) {
invocations.put("processAndReply", true);
return content;
}
@SendTo("replyDestination")
public String processAndReplyWithSendTo(String content) {
invocations.put("processAndReplyWithSendTo", true);
return content;
}
@SendTo("")
public String emptySendTo(String content) {
invocations.put("emptySendTo", true);
return content;
}
@SendTo({ "firstDestination", "secondDestination" })
public String invalidSendTo(String content) {
invocations.put("invalidSendTo", true);
return content;
}
public void validatePayload(@Validated String payload) {
invocations.put("validatePayload", true);
}
public void invalidPayloadType(@Payload Integer payload) {
throw new IllegalStateException("Should never be called.");
}
public void invalidMessagePayloadType(Message<Integer> message) {
throw new IllegalStateException("Should never be called.");
}
}
@SuppressWarnings("serial")
static clreplaced MyBean implements Serializable {
private String name;
}
}
19
View Source File : DefaultJmsListenerContainerFactory.java
License : Apache License 2.0
Project Creator : langtianya
License : Apache License 2.0
Project Creator : langtianya
@Override
protected void initializeContainer(DefaultMessageListenerContainer container) {
if (this.taskExecutor != null) {
container.setTaskExecutor(this.taskExecutor);
}
if (this.transactionManager != null) {
container.setTransactionManager(this.transactionManager);
}
if (this.cacheLevel != null) {
container.setCacheLevel(this.cacheLevel);
} else if (this.cacheLevelName != null) {
container.setCacheLevelName(this.cacheLevelName);
}
if (this.concurrency != null) {
container.setConcurrency(this.concurrency);
}
if (this.maxMessagesPerTask != null) {
container.setMaxMessagesPerTask(this.maxMessagesPerTask);
}
if (this.receiveTimeout != null) {
container.setReceiveTimeout(this.receiveTimeout);
}
if (this.backOff != null) {
container.setBackOff(this.backOff);
if (this.recoveryInterval != null) {
logger.warn("Ignoring recovery interval in DefaultJmsListenerContainerFactory in favor of BackOff");
}
} else if (this.recoveryInterval != null) {
container.setRecoveryInterval(this.recoveryInterval);
}
}
19
View Source File : AbstractConsumer.java
License : Apache License 2.0
Project Creator : jiangmin168168
License : Apache License 2.0
Project Creator : jiangmin168168
public void afterPropertiesSet() {
if (this.consumerConfig.getBrokerUrlList() != null && !this.consumerConfig.getBrokerUrlList().isEmpty() && !Strings.isNullOrEmpty(this.consumerConfig.getQueueName())) {
for (String brokerUrl : this.consumerConfig.getBrokerUrlList()) {
// ConnectionFactory connectionFactory = ConnectionFactoryContainer.getSingleConsumerConnectionFactory(brokerUrl);
ConnectionFactory connectionFactory = ConnectionFactoryContainer.getConsumerConnectionFactory(brokerUrl);
if (this.listenerContainerMap.containsKey(connectionFactory)) {
continue;
}
DefaultMessageListenerContainer defaultMessageListenerContainer = new DefaultMessageListenerContainer();
defaultMessageListenerContainer.setCacheLevel(this.consumerConfig.getCacheLevel());
defaultMessageListenerContainer.setConcurrentConsumers(this.consumerConfig.getConcurrentConsumers());
ActiveMQQueue activeMQQueue = new ActiveMQQueue();
activeMQQueue.setPhysicalName(this.consumerConfig.getQueueName());
if (this.consumerConfig.getAcknowledgemode() < 0 || this.consumerConfig.getAcknowledgemode() > 4) {
this.consumerConfig.setAcknowledgemode(Session.AUTO_ACKNOWLEDGE);
}
if (this.consumerConfig.getAcknowledgemode() == Session.SESSION_TRANSACTED) {
defaultMessageListenerContainer.setSessionTransacted(true);
}
defaultMessageListenerContainer.setSessionAcknowledgeMode(this.consumerConfig.getAcknowledgemode());
defaultMessageListenerContainer.setConnectionFactory(connectionFactory);
defaultMessageListenerContainer.setDestination(activeMQQueue);
defaultMessageListenerContainer.setMessageListener(this);
defaultMessageListenerContainer.initialize();
defaultMessageListenerContainer.start();
this.listenerContainerMap.put(connectionFactory, defaultMessageListenerContainer);
}
}
}
19
View Source File : Configuration.java
License : Apache License 2.0
Project Creator : flowable
License : Apache License 2.0
Project Creator : flowable
@Bean
public MessageListenerContainer messageListenerContainer() {
DefaultMessageListenerContainer messageListenerContainer = new DefaultMessageListenerContainer();
messageListenerContainer.setSessionTransacted(true);
messageListenerContainer.setTransactionManager(transactionManager());
messageListenerContainer.setConnectionFactory(connectionFactory());
messageListenerContainer.setDestinationName("flowable-history-jobs");
messageListenerContainer.setMessageListener(jmsListener());
messageListenerContainer.setConcurrentConsumers(10);
messageListenerContainer.start();
return messageListenerContainer;
}
19
View Source File : Configuration.java
License : Apache License 2.0
Project Creator : flowable
License : Apache License 2.0
Project Creator : flowable
@Bean
public MessageListenerContainer messageListenerContainer() {
DefaultMessageListenerContainer messageListenerContainer = new DefaultMessageListenerContainer();
messageListenerContainer.setConnectionFactory(connectionFactory());
messageListenerContainer.setDestinationName("flowable-history-jobs");
messageListenerContainer.setMessageListener(historyJobsMessageListener());
messageListenerContainer.setConcurrentConsumers(10);
messageListenerContainer.start();
return messageListenerContainer;
}
19
View Source File : SpringJmsConfig.java
License : Apache License 2.0
Project Creator : flowable
License : Apache License 2.0
Project Creator : flowable
@Bean
public MessageListenerContainer messageListenerContainer(ConnectionFactory connectionFactory, JobMessageListener jobMessageListener) {
DefaultMessageListenerContainer messageListenerContainer = new DefaultMessageListenerContainer();
messageListenerContainer.setConnectionFactory(connectionFactory);
messageListenerContainer.setDestinationName("flowable-jobs");
messageListenerContainer.setMessageListener(jobMessageListener);
messageListenerContainer.setConcurrentConsumers(2);
messageListenerContainer.start();
return messageListenerContainer;
}
19
View Source File : SpringJmsConfig.java
License : Apache License 2.0
Project Creator : dingziyang
License : Apache License 2.0
Project Creator : dingziyang
@Bean
public MessageListenerContainer messageListenerContainer() {
DefaultMessageListenerContainer messageListenerContainer = new DefaultMessageListenerContainer();
messageListenerContainer.setConnectionFactory(connectionFactory());
messageListenerContainer.setDestinationName("activiti-jobs");
messageListenerContainer.setMessageListener(jobMessageListener());
messageListenerContainer.setConcurrentConsumers(2);
messageListenerContainer.start();
return messageListenerContainer;
}
19
View Source File : SpringJmsApplicationTest.java
License : MIT License
Project Creator : code-not-found
License : MIT License
Project Creator : code-not-found
@RunWith(SpringRunner.clreplaced)
@SpringBootTest
@DirtiesContext
public clreplaced SpringJmsApplicationTest {
@ClreplacedRule
public static EmbeddedActiveMQBroker broker = new EmbeddedActiveMQBroker();
@Autowired
private Sender sender;
@Autowired
private DefaultMessageListenerContainer dmlc;
@Autowired
private SimpleMessageListenerContainer smlc;
@Test
public void testReceive() throws Exception {
sender.send("order-002");
StatusMessageListener status1MessageListener = (StatusMessageListener) dmlc.getMessageListener();
status1MessageListener.getLatch().await(10000, TimeUnit.MILLISECONDS);
replacedertThat(status1MessageListener.getLatch().getCount()).isEqualTo(0);
StatusMessageListener status2MessageListener = (StatusMessageListener) smlc.getMessageListener();
status2MessageListener.getLatch().await(10000, TimeUnit.MILLISECONDS);
replacedertThat(status2MessageListener.getLatch().getCount()).isEqualTo(0);
}
}
See More Examples