INT-3944: Async JMS Outbound Gateway
JIRA: https://jira.spring.io/browse/INT-3944 Polishing (PR comments) and Doc Polish Polishing - PR Comments Remove custom `async` boolean in favor of the now public setter. Add exception to `JmsException` hierarchy. INT-3944: Polishing * Rename `asyncReplySupported` just to `async`. As well as its getter and setter. Plus fix docs on the matter * Polishing for the `JmsOutboundGateway` according PR comments * Rework `JmsOutboundGateway` to return `AbstractIntegrationMessageBuilder` instead of `Message` since `AbstractMessageProducingHandler` rebuilds `Message` for a new one to copy headers from request * Add `getPayload()` and `getHeaders()` to the `AbstractIntegrationMessageBuilder` to make the `Routing Slip` users happy, when the `AbstractIntegrationMessageBuilder` is pushed to the `Routing Slip path` function * Fix race condition in the `ChatMessageListeningEndpointTests`: the `stanza` parsing is done in the different Thread. Doc Polishing (Routing Slip) Fix timing issue in the `LastModifiedFileListFilterTests`: `Thread.sleep()` not always reflects the reality. Switch to the "past simulation" via explicit `File.setLastModified()`
This commit is contained in:
committed by
Artem Bilan
parent
0fd72d2d18
commit
4bfcdb9dfa
@@ -20,14 +20,18 @@ import static org.hamcrest.core.IsInstanceOf.instanceOf;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.BDDMockito.given;
|
||||
import static org.mockito.BDDMockito.willAnswer;
|
||||
import static org.mockito.Matchers.anyString;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import java.io.StringReader;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.jivesoftware.smack.SmackException.NotConnectedException;
|
||||
@@ -198,6 +202,17 @@ public class ChatMessageListeningEndpointTests {
|
||||
|
||||
Log logger = Mockito.spy(TestUtils.getPropertyValue(endpoint, "logger", Log.class));
|
||||
given(logger.isInfoEnabled()).willReturn(true);
|
||||
final CountDownLatch logLatch = new CountDownLatch(1);
|
||||
willAnswer(new Answer<Object>() {
|
||||
|
||||
@Override
|
||||
public Object answer(InvocationOnMock invocation) throws Throwable {
|
||||
Object result = invocation.callRealMethod();
|
||||
logLatch.countDown();
|
||||
return result;
|
||||
}
|
||||
|
||||
}).given(logger).info(anyString());
|
||||
|
||||
new DirectFieldAccessor(endpoint).setPropertyValue("logger", logger);
|
||||
|
||||
@@ -210,8 +225,9 @@ public class ChatMessageListeningEndpointTests {
|
||||
|
||||
ArgumentCaptor<String> argumentCaptor = new ArgumentCaptor<String>();
|
||||
|
||||
verify(logger).info(argumentCaptor.capture());
|
||||
assertTrue(logLatch.await(10, TimeUnit.SECONDS));
|
||||
|
||||
verify(logger).info(argumentCaptor.capture());
|
||||
|
||||
assertEquals("The XMPP Message [" + smackMessage + "] with empty body is ignored.",
|
||||
argumentCaptor.getValue());
|
||||
|
||||
Reference in New Issue
Block a user