INT-3308 SubscribableChannel Optimization
JIRA: https://jira.springsource.org/browse/INT-3308 INT-3308 Move Optimization to AbstractDispatcher - avoids the need for `canShortCutDispatcher()` - optimizes all framework channels, including AMQP, JMS - slight additional performance improvement INT-3308 FinalSingleHandlerChannel This is still a work in process. TODO:Parser, parser tests. See the DirectChannelTests for perforance results. INT-3308 'Final' Channel Parser Changes, Tests INT-3308 Polishing; PR Comments INT-3308 Polishing * Rename 'final' attribute to 'fixed-subscriber' * Rename `BasicSingleFixedSubscriberChannel` to `FixedSubscriberChannel` INT-3308 Polishing * Rename test cases to match channel * Fix parser error messages * Add more exclusive attribute/element tests INT-3308 More Polishing * Remove remaining textual references to 'final' * WARN log if the single subscriber has auto-startup="false" * Handle the case when a fixed subscriber channel is declared after its handler * Support the use of a fixed subscriber channel for elements created by an AbstractOutboundChannelAdapterParser
This commit is contained in:
committed by
Artem Bilan
parent
c7fb83259f
commit
776705e6c4
@@ -100,7 +100,7 @@ public class ServiceActivatorDefaultFrameworkMethodTests {
|
||||
assertEquals("TEST", reply.getPayload());
|
||||
assertEquals("replyingHandlerTestInputChannel,replyingHandlerTestService", reply.getHeaders().get("history").toString());
|
||||
StackTraceElement[] st = (StackTraceElement[]) reply.getHeaders().get("callStack");
|
||||
assertTrue(StackTraceUtils.isFrameContainingXBeforeFrameContainingY("Dispatcher", "MethodInvokerHelper", st));
|
||||
assertTrue(StackTraceUtils.isFrameContainingXBeforeFrameContainingY("AbstractSubscribableChannel", "MethodInvokerHelper", st));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -113,7 +113,7 @@ public class ServiceActivatorDefaultFrameworkMethodTests {
|
||||
assertEquals("optimizedRefReplyingHandlerTestInputChannel,optimizedRefReplyingHandlerTestService",
|
||||
reply.getHeaders().get("history").toString());
|
||||
StackTraceElement[] st = (StackTraceElement[]) reply.getHeaders().get("callStack");
|
||||
assertTrue(StackTraceUtils.isFrameContainingXBeforeFrameContainingY("Dispatcher", "MethodInvokerHelper", st));
|
||||
assertTrue(StackTraceUtils.isFrameContainingXBeforeFrameContainingY("AbstractSubscribableChannel", "MethodInvokerHelper", st));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -125,7 +125,7 @@ public class ServiceActivatorDefaultFrameworkMethodTests {
|
||||
assertEquals("TEST", reply.getPayload());
|
||||
assertEquals("replyingHandlerWithStandardMethodTestInputChannel,replyingHandlerWithStandardMethodTestService", reply.getHeaders().get("history").toString());
|
||||
StackTraceElement[] st = (StackTraceElement[]) reply.getHeaders().get("callStack");
|
||||
assertTrue(StackTraceUtils.isFrameContainingXBeforeFrameContainingY("Dispatcher", "MethodInvokerHelper", st));
|
||||
assertTrue(StackTraceUtils.isFrameContainingXBeforeFrameContainingY("AbstractSubscribableChannel", "MethodInvokerHelper", st));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -193,11 +193,12 @@ public class ServiceActivatorDefaultFrameworkMethodTests {
|
||||
.setHeader("callStack", st);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String foo(String in) {
|
||||
Exception e = new RuntimeException();
|
||||
StackTraceElement[] st = e.getStackTrace();
|
||||
// use this to test that StackTraceUtils works as expected and returns false
|
||||
assertFalse(StackTraceUtils.isFrameContainingXBeforeFrameContainingY("Dispatcher", "MethodInvokerHelper", st));
|
||||
assertFalse(StackTraceUtils.isFrameContainingXBeforeFrameContainingY("AbstractSubscribableChannel", "MethodInvokerHelper", st));
|
||||
return "bar";
|
||||
}
|
||||
|
||||
@@ -210,7 +211,7 @@ public class ServiceActivatorDefaultFrameworkMethodTests {
|
||||
public void handleMessage(Message<?> requestMessage) {
|
||||
Exception e = new RuntimeException();
|
||||
StackTraceElement[] st = e.getStackTrace();
|
||||
assertTrue(StackTraceUtils.isFrameContainingXBeforeFrameContainingY("Dispatcher", "MethodInvokerHelper", st));
|
||||
assertTrue(StackTraceUtils.isFrameContainingXBeforeFrameContainingY("AbstractSubscribableChannel", "MethodInvokerHelper", st));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -223,6 +224,7 @@ public class ServiceActivatorDefaultFrameworkMethodTests {
|
||||
this.prefix = prefix;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String processMessage(Message<?> message) {
|
||||
return prefix + ":" + message.getPayload();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user