List of usage examples for org.springframework.messaging.support GenericMessage GenericMessage
public GenericMessage(T payload)
From source file:org.springframework.integration.channel.DirectChannelTests.java
@Test public void testSendPerfTwoHandlers() { /*/*from w ww. j a v a 2 s .c o m*/ * INT-3308 - used to run 6.4 million/sec * 1. Skip empty iterators as above 7.2 million/sec * 2. optimize for single handler 6.7 million/sec (small overhead added) * 3. remove LB rwlock from UnicastingDispatcher 7.2 million/sec * 4. Move single handler optimization to dispatcher 7.3 million/sec */ DirectChannel channel = new DirectChannel(); final AtomicInteger count1 = new AtomicInteger(); final AtomicInteger count2 = new AtomicInteger(); channel.subscribe(message -> count1.incrementAndGet()); channel.subscribe(message -> count2.getAndIncrement()); GenericMessage<String> message = new GenericMessage<String>("test"); assertTrue(channel.send(message)); for (int i = 0; i < 10000000; i++) { channel.send(message); } assertEquals(5000001, count1.get()); assertEquals(5000000, count2.get()); }
From source file:org.springframework.integration.channel.DirectChannelTests.java
@Test public void testSendPerfFixedSubscriberChannel() { /*/*www . j a va 2s.co m*/ * INT-3308 - 96 million/sec * NOTE: in order to get a measurable time, I had to add some code to the handler - * presumably the JIT compiler short circuited the call becaues it's a final field * and he knows the method does nothing. * Added the same code to the other tests for comparison. */ final AtomicInteger count = new AtomicInteger(); FixedSubscriberChannel channel = new FixedSubscriberChannel(message -> count.incrementAndGet()); GenericMessage<String> message = new GenericMessage<String>("test"); assertTrue(channel.send(message)); for (int i = 0; i < 100000000; i++) { channel.send(message, 0); } }
From source file:org.springframework.integration.channel.DirectChannelTests.java
@Test public void testSendInSeparateThread() throws InterruptedException { CountDownLatch latch = new CountDownLatch(1); final DirectChannel channel = new DirectChannel(); ThreadNameExtractingTestTarget target = new ThreadNameExtractingTestTarget(latch); channel.subscribe(target);//from w ww . jav a 2s . c o m final GenericMessage<String> message = new GenericMessage<String>("test"); new Thread((Runnable) () -> channel.send(message), "test-thread").start(); latch.await(1000, TimeUnit.MILLISECONDS); assertEquals("test-thread", target.threadName); }
From source file:org.springframework.integration.channel.QueueChannelTests.java
@Test public void testSimpleSendAndReceive() throws Exception { final AtomicBoolean messageReceived = new AtomicBoolean(false); final CountDownLatch latch = new CountDownLatch(1); final QueueChannel channel = new QueueChannel(); Log logger = spy(TestUtils.getPropertyValue(channel, "logger", Log.class)); when(logger.isDebugEnabled()).thenReturn(true); when(logger.isTraceEnabled()).thenReturn(true); new DirectFieldAccessor(channel).setPropertyValue("logger", logger); new Thread(new Runnable() { @Override/*w w w. j a va 2 s. c o m*/ public void run() { Message<?> message = channel.receive(); if (message != null) { messageReceived.set(true); latch.countDown(); } } }).start(); assertFalse(messageReceived.get()); channel.send(new GenericMessage<String>("testing")); latch.await(1000, TimeUnit.MILLISECONDS); assertTrue(messageReceived.get()); ArgumentCaptor<String> preCaptor = ArgumentCaptor.forClass(String.class); ArgumentCaptor<String> postCaptor = ArgumentCaptor.forClass(String.class); verify(logger).trace(preCaptor.capture()); verify(logger, times(3)).debug(postCaptor.capture()); assertThat(preCaptor.getValue(), startsWith("preReceive")); assertThat(postCaptor.getValue(), startsWith("postReceive")); }
From source file:org.springframework.integration.channel.QueueChannelTests.java
@Test public void testImmediateReceive() throws Exception { final AtomicBoolean messageReceived = new AtomicBoolean(false); final QueueChannel channel = new QueueChannel(); final CountDownLatch latch1 = new CountDownLatch(1); final CountDownLatch latch2 = new CountDownLatch(1); Executor singleThreadExecutor = Executors.newSingleThreadExecutor(); Runnable receiveTask1 = new Runnable() { @Override/*www. j av a 2 s .com*/ public void run() { Message<?> message = channel.receive(0); if (message != null) { messageReceived.set(true); } latch1.countDown(); } }; Runnable sendTask = new Runnable() { @Override public void run() { channel.send(new GenericMessage<String>("testing")); } }; singleThreadExecutor.execute(receiveTask1); latch1.await(); singleThreadExecutor.execute(sendTask); assertFalse(messageReceived.get()); Runnable receiveTask2 = new Runnable() { @Override public void run() { Message<?> message = channel.receive(0); if (message != null) { messageReceived.set(true); } latch2.countDown(); } }; singleThreadExecutor.execute(receiveTask2); latch2.await(); assertTrue(messageReceived.get()); }
From source file:org.springframework.integration.channel.QueueChannelTests.java
@Test public void testImmediateSend() { QueueChannel channel = new QueueChannel(3); boolean result1 = channel.send(new GenericMessage<String>("test-1")); assertTrue(result1);/* ww w . j ava 2s .co m*/ boolean result2 = channel.send(new GenericMessage<String>("test-2"), 100); assertTrue(result2); boolean result3 = channel.send(new GenericMessage<String>("test-3"), 0); assertTrue(result3); boolean result4 = channel.send(new GenericMessage<String>("test-4"), 0); assertFalse(result4); }
From source file:org.springframework.integration.channel.QueueChannelTests.java
@Test public void testBlockingSendWithNoTimeout() throws Exception { final QueueChannel channel = new QueueChannel(1); boolean result1 = channel.send(new GenericMessage<String>("test-1")); assertTrue(result1);/*w w w . ja v a2 s . co m*/ final AtomicBoolean sendInterrupted = new AtomicBoolean(false); final CountDownLatch latch = new CountDownLatch(1); Thread t = new Thread(new Runnable() { @Override public void run() { channel.send(new GenericMessage<String>("test-2")); sendInterrupted.set(true); latch.countDown(); } }); t.start(); assertFalse(sendInterrupted.get()); t.interrupt(); latch.await(); assertTrue(sendInterrupted.get()); }
From source file:org.springframework.integration.channel.QueueChannelTests.java
@Test public void testBlockingSendWithTimeout() throws Exception { final QueueChannel channel = new QueueChannel(1); boolean result1 = channel.send(new GenericMessage<String>("test-1")); assertTrue(result1);/*from w w w. j a v a 2 s.c o m*/ final AtomicBoolean sendInterrupted = new AtomicBoolean(false); final CountDownLatch latch = new CountDownLatch(1); Thread t = new Thread(new Runnable() { @Override public void run() { channel.send(new GenericMessage<String>("test-2"), 10000); sendInterrupted.set(true); latch.countDown(); } }); t.start(); assertFalse(sendInterrupted.get()); t.interrupt(); latch.await(); assertTrue(sendInterrupted.get()); }
From source file:org.springframework.integration.channel.QueueChannelTests.java
@Test public void testClear() { QueueChannel channel = new QueueChannel(2); GenericMessage<String> message1 = new GenericMessage<String>("test1"); GenericMessage<String> message2 = new GenericMessage<String>("test2"); GenericMessage<String> message3 = new GenericMessage<String>("test3"); assertTrue(channel.send(message1));//from ww w.j a va 2 s . co m assertTrue(channel.send(message2)); assertFalse(channel.send(message3, 0)); List<Message<?>> clearedMessages = channel.clear(); assertNotNull(clearedMessages); assertEquals(2, clearedMessages.size()); assertTrue(channel.send(message3)); }
From source file:org.springframework.integration.channel.QueueChannelTests.java
@Test public void testPurge() { QueueChannel channel = new QueueChannel(2); long minute = 60 * 1000; long time = System.currentTimeMillis(); long past = time - minute; long future = time + minute; Message<String> expiredMessage = MessageBuilder.withPayload("test1").setExpirationDate(past).build(); Message<String> unexpiredMessage = MessageBuilder.withPayload("test2").setExpirationDate(future).build(); assertTrue(channel.send(expiredMessage, 0)); assertTrue(channel.send(unexpiredMessage, 0)); assertFalse(channel.send(new GenericMessage<String>("atCapacity"), 0)); List<Message<?>> purgedMessages = channel.purge(new UnexpiredMessageSelector()); assertNotNull(purgedMessages);//from w w w . j ava 2s. c om assertEquals(1, purgedMessages.size()); assertTrue(channel.send(new GenericMessage<String>("roomAvailable"), 0)); }