From 1e5ace02dd8a32b3a3d52ac92dfcceac2e8b9c8e Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Wed, 3 Sep 2008 19:32:31 +0000 Subject: [PATCH] Replaced the @Handler annotation with @ServiceActivator. --- .../samples/oddeven/EvenLogger.java | 4 +-- .../samples/oddeven/OddLogger.java | 4 +-- .../samples/quartzoddeven/EvenLogger.java | 4 +-- .../samples/quartzoddeven/OddLogger.java | 4 +-- .../samples/quote/QuoteService.java | 4 +-- .../integration/annotation/Aggregator.java | 1 - .../integration/annotation/Router.java | 1 - .../{Handler.java => ServiceActivator.java} | 6 ++-- .../integration/annotation/Splitter.java | 1 - .../integration/annotation/Transformer.java | 1 - .../MessagingAnnotationPostProcessor.java | 4 +-- ...rviceActivatorAnnotationPostProcessor.java | 8 +++-- .../bus/DirectChannelSubscriptionTests.java | 6 ++-- ...ctivatorAnnotationPostProcessorTests.java} | 26 +++++++-------- ...MessagingAnnotationPostProcessorTests.java | 18 +++++------ .../annotation/SimpleAnnotatedEndpoint.java | 4 +-- ...va => SimpleServiceActivatorTestBean.java} | 6 ++-- .../TypeConvertingTestEndpoint.java | 4 +-- ...ActivatorAnnotationPostProcessorTests.xml} | 9 ++---- .../MessageParameterAnnotatedEndpoint.java | 4 +-- .../handler/DefaultMessageHandlerTests.java | 24 ++++---------- .../MethodArgumentMessageMapperTests.java | 32 +++++++------------ 22 files changed, 75 insertions(+), 100 deletions(-) rename org.springframework.integration/src/main/java/org/springframework/integration/annotation/{Handler.java => ServiceActivator.java} (91%) rename org.springframework.integration/src/test/java/org/springframework/integration/config/{SubscriberAnnotationPostProcessorTests.java => ServiceActivatorAnnotationPostProcessorTests.java} (75%) rename org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/{SimpleHandlerTestBean.java => SimpleServiceActivatorTestBean.java} (86%) rename org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/{handlerAnnotationPostProcessorTests.xml => serviceActivatorAnnotationPostProcessorTests.xml} (61%) diff --git a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/oddeven/EvenLogger.java b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/oddeven/EvenLogger.java index 871adcb7cc..8eec31d7d5 100644 --- a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/oddeven/EvenLogger.java +++ b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/oddeven/EvenLogger.java @@ -16,8 +16,8 @@ package org.springframework.integration.samples.oddeven; -import org.springframework.integration.annotation.Handler; import org.springframework.integration.annotation.MessageEndpoint; +import org.springframework.integration.annotation.ServiceActivator; /** * @author Mark Fisher @@ -25,7 +25,7 @@ import org.springframework.integration.annotation.MessageEndpoint; @MessageEndpoint public class EvenLogger { - @Handler + @ServiceActivator public void log(int i) { System.out.println("even: " + i); } diff --git a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/oddeven/OddLogger.java b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/oddeven/OddLogger.java index c9d8a47f3e..ef30580536 100644 --- a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/oddeven/OddLogger.java +++ b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/oddeven/OddLogger.java @@ -16,8 +16,8 @@ package org.springframework.integration.samples.oddeven; -import org.springframework.integration.annotation.Handler; import org.springframework.integration.annotation.MessageEndpoint; +import org.springframework.integration.annotation.ServiceActivator; /** * @author Mark Fisher @@ -25,7 +25,7 @@ import org.springframework.integration.annotation.MessageEndpoint; @MessageEndpoint public class OddLogger { - @Handler + @ServiceActivator public void log(int i) { System.out.println("odd: " + i); } diff --git a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/quartzoddeven/EvenLogger.java b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/quartzoddeven/EvenLogger.java index 068991f443..47430f7555 100644 --- a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/quartzoddeven/EvenLogger.java +++ b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/quartzoddeven/EvenLogger.java @@ -19,8 +19,8 @@ package org.springframework.integration.samples.quartzoddeven; import java.text.SimpleDateFormat; import java.util.Date; -import org.springframework.integration.annotation.Handler; import org.springframework.integration.annotation.MessageEndpoint; +import org.springframework.integration.annotation.ServiceActivator; /** * @author Mark Fisher @@ -29,7 +29,7 @@ import org.springframework.integration.annotation.MessageEndpoint; @MessageEndpoint public class EvenLogger { - @Handler + @ServiceActivator public void log(int i) { System.out.println("even: " + i + " at " + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date())); } diff --git a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/quartzoddeven/OddLogger.java b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/quartzoddeven/OddLogger.java index c880e96dfc..47c9937ceb 100644 --- a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/quartzoddeven/OddLogger.java +++ b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/quartzoddeven/OddLogger.java @@ -19,8 +19,8 @@ package org.springframework.integration.samples.quartzoddeven; import java.text.SimpleDateFormat; import java.util.Date; -import org.springframework.integration.annotation.Handler; import org.springframework.integration.annotation.MessageEndpoint; +import org.springframework.integration.annotation.ServiceActivator; /** * @author Mark Fisher @@ -29,7 +29,7 @@ import org.springframework.integration.annotation.MessageEndpoint; @MessageEndpoint public class OddLogger { - @Handler + @ServiceActivator public void log(int i) { System.out.println("odd: " + i + " at " + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date())); } diff --git a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/quote/QuoteService.java b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/quote/QuoteService.java index 185c254cf7..49af03427b 100644 --- a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/quote/QuoteService.java +++ b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/quote/QuoteService.java @@ -20,8 +20,8 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Random; -import org.springframework.integration.annotation.Handler; import org.springframework.integration.annotation.MessageEndpoint; +import org.springframework.integration.annotation.ServiceActivator; /** * @author Mark Fisher @@ -29,7 +29,7 @@ import org.springframework.integration.annotation.MessageEndpoint; @MessageEndpoint public class QuoteService { - @Handler(inputChannel="tickers", outputChannel="quotes") + @ServiceActivator(inputChannel="tickers", outputChannel="quotes") public Quote lookupQuote(String ticker) { BigDecimal price = new BigDecimal(new Random().nextDouble() * 100); return new Quote(ticker, price.setScale(2, RoundingMode.HALF_EVEN)); diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Aggregator.java b/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Aggregator.java index 55a7230d39..fde5a8fe47 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Aggregator.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Aggregator.java @@ -36,7 +36,6 @@ import org.springframework.integration.aggregator.AggregatingMessageHandler; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented -@Handler public @interface Aggregator { /** diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Router.java b/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Router.java index dbec34344a..e6e726ac6a 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Router.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Router.java @@ -46,7 +46,6 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented -@Handler public @interface Router { String inputChannel() default ""; diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Handler.java b/org.springframework.integration/src/main/java/org/springframework/integration/annotation/ServiceActivator.java similarity index 91% rename from org.springframework.integration/src/main/java/org/springframework/integration/annotation/Handler.java rename to org.springframework.integration/src/main/java/org/springframework/integration/annotation/ServiceActivator.java index 075e80b4df..ea39baa9c8 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Handler.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/annotation/ServiceActivator.java @@ -26,7 +26,7 @@ import java.lang.annotation.Target; /** * Indicates that a method is capable of handling a message or message payload. *

- * A method annotated with @Handler may accept a parameter of type + * A method annotated with @ServiceActivator may accept a parameter of type * {@link org.springframework.integration.message.Message} or of the expected * Message payload's type. Any type conversion supported by * {@link org.springframework.beans.SimpleTypeConverter} will be applied to @@ -39,11 +39,11 @@ import java.lang.annotation.Target; * * @author Mark Fisher */ -@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE}) +@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented -public @interface Handler { +public @interface ServiceActivator { String inputChannel() default ""; diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Splitter.java b/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Splitter.java index 6911236f19..abce8dc5f6 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Splitter.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Splitter.java @@ -42,7 +42,6 @@ import java.lang.annotation.Target; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented -@Handler public @interface Splitter { String inputChannel() default ""; diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Transformer.java b/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Transformer.java index 7315af0255..6a88abd9a9 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Transformer.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/annotation/Transformer.java @@ -33,7 +33,6 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented -@Handler public @interface Transformer { String inputChannel() default ""; diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/annotation/MessagingAnnotationPostProcessor.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/annotation/MessagingAnnotationPostProcessor.java index 76f8a9e5fc..856ae6721a 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/annotation/MessagingAnnotationPostProcessor.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/annotation/MessagingAnnotationPostProcessor.java @@ -36,8 +36,8 @@ import org.springframework.core.annotation.AnnotationUtils; import org.springframework.integration.ConfigurationException; import org.springframework.integration.annotation.Aggregator; import org.springframework.integration.annotation.ChannelAdapter; -import org.springframework.integration.annotation.Handler; import org.springframework.integration.annotation.Router; +import org.springframework.integration.annotation.ServiceActivator; import org.springframework.integration.annotation.Splitter; import org.springframework.integration.annotation.Transformer; import org.springframework.integration.bus.MessageBus; @@ -78,8 +78,8 @@ public class MessagingAnnotationPostProcessor implements BeanPostProcessor, Init public void afterPropertiesSet() { postProcessors.put(Aggregator.class, new AggregatorAnnotationPostProcessor(this.messageBus)); postProcessors.put(ChannelAdapter.class, new ChannelAdapterAnnotationPostProcessor(this.messageBus)); - postProcessors.put(Handler.class, new ServiceActivatorAnnotationPostProcessor(this.messageBus)); postProcessors.put(Router.class, new RouterAnnotationPostProcessor(this.messageBus)); + postProcessors.put(ServiceActivator.class, new ServiceActivatorAnnotationPostProcessor(this.messageBus)); postProcessors.put(Splitter.class, new SplitterAnnotationPostProcessor(this.messageBus)); postProcessors.put(Transformer.class, new TransformerAnnotationPostProcessor(this.messageBus)); } diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/annotation/ServiceActivatorAnnotationPostProcessor.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/annotation/ServiceActivatorAnnotationPostProcessor.java index 499fc5e4c8..a92d61b585 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/annotation/ServiceActivatorAnnotationPostProcessor.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/annotation/ServiceActivatorAnnotationPostProcessor.java @@ -18,7 +18,7 @@ package org.springframework.integration.config.annotation; import java.lang.reflect.Method; -import org.springframework.integration.annotation.Handler; +import org.springframework.integration.annotation.ServiceActivator; import org.springframework.integration.bus.MessageBus; import org.springframework.integration.endpoint.AbstractEndpoint; import org.springframework.integration.endpoint.DefaultServiceInvoker; @@ -26,9 +26,11 @@ import org.springframework.integration.endpoint.ServiceActivatorEndpoint; import org.springframework.integration.endpoint.ServiceInvoker; /** + * Post-processor for Methods annotated with {@link ServiceActivator @ServiceActivator}. + * * @author Mark Fisher */ -public class ServiceActivatorAnnotationPostProcessor extends AbstractMethodAnnotationPostProcessor { +public class ServiceActivatorAnnotationPostProcessor extends AbstractMethodAnnotationPostProcessor { public ServiceActivatorAnnotationPostProcessor(MessageBus messageBus) { super(messageBus); @@ -36,7 +38,7 @@ public class ServiceActivatorAnnotationPostProcessor extends AbstractMethodAnnot @Override - protected Object createMethodInvokingAdapter(Object bean, Method method, Handler annotation) { + protected Object createMethodInvokingAdapter(Object bean, Method method, ServiceActivator annotation) { return new DefaultServiceInvoker(bean, method); } diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/bus/DirectChannelSubscriptionTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/bus/DirectChannelSubscriptionTests.java index a0551d02fa..b8c8161eb8 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/bus/DirectChannelSubscriptionTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/bus/DirectChannelSubscriptionTests.java @@ -21,8 +21,8 @@ import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; -import org.springframework.integration.annotation.Handler; import org.springframework.integration.annotation.MessageEndpoint; +import org.springframework.integration.annotation.ServiceActivator; import org.springframework.integration.channel.ChannelRegistry; import org.springframework.integration.channel.DirectChannel; import org.springframework.integration.channel.QueueChannel; @@ -125,7 +125,7 @@ public class DirectChannelSubscriptionTests { @MessageEndpoint public static class TestEndpoint { - @Handler(inputChannel="sourceChannel", outputChannel="targetChannel") + @ServiceActivator(inputChannel="sourceChannel", outputChannel="targetChannel") public Message handle(Message message) { return new StringMessage(message.getPayload() + "-from-annotated-endpoint"); } @@ -135,7 +135,7 @@ public class DirectChannelSubscriptionTests { @MessageEndpoint public static class FailingTestEndpoint { - @Handler(inputChannel="sourceChannel", outputChannel="targetChannel") + @ServiceActivator(inputChannel="sourceChannel", outputChannel="targetChannel") public Message handle(Message message) { throw new RuntimeException("intentional test failure"); } diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/SubscriberAnnotationPostProcessorTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/config/ServiceActivatorAnnotationPostProcessorTests.java similarity index 75% rename from org.springframework.integration/src/test/java/org/springframework/integration/config/SubscriberAnnotationPostProcessorTests.java rename to org.springframework.integration/src/test/java/org/springframework/integration/config/ServiceActivatorAnnotationPostProcessorTests.java index 5dcc35379e..8504a9e603 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/SubscriberAnnotationPostProcessorTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/ServiceActivatorAnnotationPostProcessorTests.java @@ -27,8 +27,8 @@ import org.junit.Test; import org.springframework.beans.factory.config.RuntimeBeanReference; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.context.support.GenericApplicationContext; -import org.springframework.integration.annotation.Handler; import org.springframework.integration.annotation.MessageEndpoint; +import org.springframework.integration.annotation.ServiceActivator; import org.springframework.integration.bus.DefaultMessageBus; import org.springframework.integration.channel.MessageChannel; import org.springframework.integration.channel.QueueChannel; @@ -38,16 +38,16 @@ import org.springframework.integration.message.StringMessage; /** * @author Mark Fisher */ -public class SubscriberAnnotationPostProcessorTests { +public class ServiceActivatorAnnotationPostProcessorTests { @Test - public void testAnnotatedSubscriber() throws InterruptedException { + public void testAnnotatedMethod() throws InterruptedException { CountDownLatch latch = new CountDownLatch(1); GenericApplicationContext context = new GenericApplicationContext(); context.registerBeanDefinition("testChannel", new RootBeanDefinition(QueueChannel.class)); - RootBeanDefinition subscriberDef = new RootBeanDefinition(SubscriberAnnotationTestBean.class); - subscriberDef.getConstructorArgumentValues().addGenericArgumentValue(latch); - context.registerBeanDefinition("testBean", subscriberDef); + RootBeanDefinition beanDefinition = new RootBeanDefinition(SimpleServiceActivatorAnnotationTestBean.class); + beanDefinition.getConstructorArgumentValues().addGenericArgumentValue(latch); + context.registerBeanDefinition("testBean", beanDefinition); String busBeanName = MessageBusParser.MESSAGE_BUS_BEAN_NAME; context.registerBeanDefinition(busBeanName, new RootBeanDefinition(DefaultMessageBus.class)); RootBeanDefinition postProcessorDef = new RootBeanDefinition(MessagingAnnotationPostProcessor.class); @@ -55,7 +55,7 @@ public class SubscriberAnnotationPostProcessorTests { context.registerBeanDefinition("postProcessor", postProcessorDef); context.refresh(); context.start(); - SubscriberAnnotationTestBean testBean = (SubscriberAnnotationTestBean) context.getBean("testBean"); + SimpleServiceActivatorAnnotationTestBean testBean = (SimpleServiceActivatorAnnotationTestBean) context.getBean("testBean"); assertEquals(1, latch.getCount()); assertNull(testBean.getMessageText()); MessageChannel testChannel = (MessageChannel) context.getBean("testChannel"); @@ -67,13 +67,13 @@ public class SubscriberAnnotationPostProcessorTests { } - public static class AbstractSubscriberAnnotationTestBean { + public static class AbstractServiceActivatorAnnotationTestBean { protected String messageText; private CountDownLatch latch; - public AbstractSubscriberAnnotationTestBean(CountDownLatch latch) { + public AbstractServiceActivatorAnnotationTestBean(CountDownLatch latch) { this.latch = latch; } @@ -87,14 +87,14 @@ public class SubscriberAnnotationPostProcessorTests { } - @MessageEndpoint - public static class SubscriberAnnotationTestBean extends SubscriberAnnotationPostProcessorTests.AbstractSubscriberAnnotationTestBean { + @MessageEndpoint + public static class SimpleServiceActivatorAnnotationTestBean extends AbstractServiceActivatorAnnotationTestBean { - public SubscriberAnnotationTestBean(CountDownLatch latch) { + public SimpleServiceActivatorAnnotationTestBean(CountDownLatch latch) { super(latch); } - @Handler(inputChannel="testChannel") + @ServiceActivator(inputChannel="testChannel") public void testMethod(String messageText) { this.messageText = messageText; this.countDown(); diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/MessagingAnnotationPostProcessorTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/MessagingAnnotationPostProcessorTests.java index 36cf03ccf2..e48034a425 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/MessagingAnnotationPostProcessorTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/MessagingAnnotationPostProcessorTests.java @@ -32,9 +32,9 @@ import org.springframework.beans.DirectFieldAccessor; import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.integration.annotation.ChannelAdapter; -import org.springframework.integration.annotation.Handler; import org.springframework.integration.annotation.MessageEndpoint; import org.springframework.integration.annotation.Poller; +import org.springframework.integration.annotation.ServiceActivator; import org.springframework.integration.annotation.Transformer; import org.springframework.integration.bus.DefaultMessageBus; import org.springframework.integration.bus.MessageBus; @@ -71,8 +71,8 @@ public class MessagingAnnotationPostProcessorTests { @Test public void testSimpleHandlerWithContext() { AbstractApplicationContext context = new ClassPathXmlApplicationContext( - "handlerAnnotationPostProcessorTests.xml", this.getClass()); - ServiceInvoker invoker = (ServiceInvoker) context.getBean("simpleHandler"); + "serviceActivatorAnnotationPostProcessorTests.xml", this.getClass()); + ServiceInvoker invoker = (ServiceInvoker) context.getBean("testBean"); String reply = (String) invoker.invoke(new StringMessage("world")); assertEquals("hello world", reply); context.stop(); @@ -81,7 +81,7 @@ public class MessagingAnnotationPostProcessorTests { @Test public void testSimpleHandlerEndpointWithContext() { AbstractApplicationContext context = new ClassPathXmlApplicationContext( - "handlerAnnotationPostProcessorTests.xml", this.getClass()); + "serviceActivatorAnnotationPostProcessorTests.xml", this.getClass()); MessageChannel inputChannel = (MessageChannel) context.getBean("inputChannel"); PollableChannel outputChannel = (PollableChannel) context.getBean("outputChannel"); inputChannel.send(new StringMessage("foo")); @@ -294,7 +294,7 @@ public class MessagingAnnotationPostProcessorTests { postProcessor.afterPropertiesSet(); AnnotatedEndpointWithPolledAnnotation endpoint = new AnnotatedEndpointWithPolledAnnotation(); postProcessor.postProcessAfterInitialization(endpoint, "testBean"); - ServiceActivatorEndpoint processedEndpoint = (ServiceActivatorEndpoint) messageBus.lookupEndpoint("testBean.handler"); + ServiceActivatorEndpoint processedEndpoint = (ServiceActivatorEndpoint) messageBus.lookupEndpoint("testBean.serviceActivator"); DirectFieldAccessor accessor = new DirectFieldAccessor(processedEndpoint); MessageSource source = (MessageSource) accessor.getPropertyValue("source"); assertTrue(source instanceof SubscribableSource); @@ -382,7 +382,7 @@ public class MessagingAnnotationPostProcessorTests { return this.channelRegistry; } - @Handler(inputChannel="inputChannel") + @ServiceActivator(inputChannel="inputChannel") public Message handle(Message message) { return null; } @@ -401,7 +401,7 @@ public class MessagingAnnotationPostProcessorTests { private static class SimpleAnnotatedEndpointImplementation implements SimpleAnnotatedEndpointInterface { - @Handler(inputChannel="inputChannel", outputChannel="outputChannel") + @ServiceActivator(inputChannel="inputChannel", outputChannel="outputChannel") public String test(String input) { return "test-" + input; } @@ -411,7 +411,7 @@ public class MessagingAnnotationPostProcessorTests { @MessageEndpoint private static class AnnotatedEndpointWithPolledAnnotation { - @Handler(inputChannel="testChannel") + @ServiceActivator(inputChannel="testChannel") @Poller(period=1234, initialDelay=5678, fixedRate=true, timeUnit=TimeUnit.SECONDS) public String prependFoo(String s) { return "foo" + s; @@ -422,7 +422,7 @@ public class MessagingAnnotationPostProcessorTests { @MessageEndpoint private static class HandlerAnnotatedBean { - @Handler + @ServiceActivator public String test(String s) { return s + s; } diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/SimpleAnnotatedEndpoint.java b/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/SimpleAnnotatedEndpoint.java index d73f97996f..7effe4c46a 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/SimpleAnnotatedEndpoint.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/SimpleAnnotatedEndpoint.java @@ -16,8 +16,8 @@ package org.springframework.integration.config.annotation; -import org.springframework.integration.annotation.Handler; import org.springframework.integration.annotation.MessageEndpoint; +import org.springframework.integration.annotation.ServiceActivator; import org.springframework.integration.endpoint.annotation.ITestEndpoint; /** @@ -26,7 +26,7 @@ import org.springframework.integration.endpoint.annotation.ITestEndpoint; @MessageEndpoint public class SimpleAnnotatedEndpoint implements ITestEndpoint { - @Handler(inputChannel="inputChannel", outputChannel="outputChannel") + @ServiceActivator(inputChannel="inputChannel", outputChannel="outputChannel") public String sayHello(String name) { return "hello " + name; } diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/SimpleHandlerTestBean.java b/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/SimpleServiceActivatorTestBean.java similarity index 86% rename from org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/SimpleHandlerTestBean.java rename to org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/SimpleServiceActivatorTestBean.java index 9aa64fa97a..024f0dcbbe 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/SimpleHandlerTestBean.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/SimpleServiceActivatorTestBean.java @@ -16,16 +16,16 @@ package org.springframework.integration.config.annotation; -import org.springframework.integration.annotation.Handler; import org.springframework.integration.annotation.MessageEndpoint; +import org.springframework.integration.annotation.ServiceActivator; /** * @author Mark Fisher */ @MessageEndpoint -public class SimpleHandlerTestBean { +public class SimpleServiceActivatorTestBean { - @Handler + @ServiceActivator public String sayHello(String input) { return "hello " + input; } diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/TypeConvertingTestEndpoint.java b/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/TypeConvertingTestEndpoint.java index 5ed0915b07..01406aa3f5 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/TypeConvertingTestEndpoint.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/TypeConvertingTestEndpoint.java @@ -16,8 +16,8 @@ package org.springframework.integration.config.annotation; -import org.springframework.integration.annotation.Handler; import org.springframework.integration.annotation.MessageEndpoint; +import org.springframework.integration.annotation.ServiceActivator; /** * @author Mark Fisher @@ -25,7 +25,7 @@ import org.springframework.integration.annotation.MessageEndpoint; @MessageEndpoint public class TypeConvertingTestEndpoint { - @Handler(inputChannel="inputChannel", outputChannel="outputChannel") + @ServiceActivator(inputChannel="inputChannel", outputChannel="outputChannel") public int multiplyByTwo(int number) { return number * 2; } diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/handlerAnnotationPostProcessorTests.xml b/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/serviceActivatorAnnotationPostProcessorTests.xml similarity index 61% rename from org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/handlerAnnotationPostProcessorTests.xml rename to org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/serviceActivatorAnnotationPostProcessorTests.xml index 350cba9459..d69fc46939 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/handlerAnnotationPostProcessorTests.xml +++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/serviceActivatorAnnotationPostProcessorTests.xml @@ -8,6 +8,7 @@ http://www.springframework.org/schema/integration/spring-integration-core-1.0.xsd"> + @@ -15,12 +16,8 @@ - + - - - - - + diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/endpoint/annotation/MessageParameterAnnotatedEndpoint.java b/org.springframework.integration/src/test/java/org/springframework/integration/endpoint/annotation/MessageParameterAnnotatedEndpoint.java index ee09fc6356..4b58a5af52 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/endpoint/annotation/MessageParameterAnnotatedEndpoint.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/endpoint/annotation/MessageParameterAnnotatedEndpoint.java @@ -16,8 +16,8 @@ package org.springframework.integration.endpoint.annotation; -import org.springframework.integration.annotation.Handler; import org.springframework.integration.annotation.MessageEndpoint; +import org.springframework.integration.annotation.ServiceActivator; import org.springframework.integration.message.Message; import org.springframework.integration.message.StringMessage; @@ -27,7 +27,7 @@ import org.springframework.integration.message.StringMessage; @MessageEndpoint public class MessageParameterAnnotatedEndpoint { - @Handler(inputChannel="inputChannel", outputChannel="outputChannel") + @ServiceActivator(inputChannel="inputChannel", outputChannel="outputChannel") public StringMessage sayHello(Message message) { return new StringMessage("hello " + message.getPayload()); } diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/handler/DefaultMessageHandlerTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/handler/DefaultMessageHandlerTests.java index 12e3930d49..cd63f5bc18 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/handler/DefaultMessageHandlerTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/handler/DefaultMessageHandlerTests.java @@ -24,7 +24,6 @@ import java.util.Properties; import org.junit.Test; -import org.springframework.integration.annotation.Handler; import org.springframework.integration.annotation.Header; import org.springframework.integration.message.GenericMessage; import org.springframework.integration.message.Message; @@ -111,7 +110,7 @@ public class DefaultMessageHandlerTests { @Test public void messageOnlyWithAnnotatedMethod() throws Exception { - AnnotatedTestHandler handler = new AnnotatedTestHandler(); + AnnotatedTestService handler = new AnnotatedTestService(); Method method = handler.getClass().getMethod("messageOnly", Message.class); DefaultMessageHandler adapter = new DefaultMessageHandler(); adapter.setObject(handler); @@ -122,7 +121,7 @@ public class DefaultMessageHandlerTests { @Test public void payloadWithAnnotatedMethod() throws Exception { - AnnotatedTestHandler handler = new AnnotatedTestHandler(); + AnnotatedTestService handler = new AnnotatedTestService(); Method method = handler.getClass().getMethod("integerMethod", Integer.class); DefaultMessageHandler adapter = new DefaultMessageHandler(); adapter.setObject(handler); @@ -133,7 +132,7 @@ public class DefaultMessageHandlerTests { @Test public void convertedPayloadWithAnnotatedMethod() throws Exception { - AnnotatedTestHandler handler = new AnnotatedTestHandler(); + AnnotatedTestService handler = new AnnotatedTestService(); Method method = handler.getClass().getMethod("integerMethod", Integer.class); DefaultMessageHandler adapter = new DefaultMessageHandler(); adapter.setObject(handler); @@ -144,7 +143,7 @@ public class DefaultMessageHandlerTests { @Test(expected = MessagingException.class) public void conversionFailureWithAnnotatedMethod() throws Exception { - AnnotatedTestHandler handler = new AnnotatedTestHandler(); + AnnotatedTestService handler = new AnnotatedTestService(); Method method = handler.getClass().getMethod("integerMethod", Integer.class); DefaultMessageHandler adapter = new DefaultMessageHandler(); adapter.setObject(handler); @@ -155,7 +154,7 @@ public class DefaultMessageHandlerTests { @Test public void messageAndHeaderWithAnnotatedMethod() throws Exception { - AnnotatedTestHandler handler = new AnnotatedTestHandler(); + AnnotatedTestService handler = new AnnotatedTestService(); Method method = handler.getClass().getMethod("messageAndHeader", Message.class, Integer.class); DefaultMessageHandler adapter = new DefaultMessageHandler(); adapter.setObject(handler); @@ -168,7 +167,7 @@ public class DefaultMessageHandlerTests { @Test public void multipleHeadersWithAnnotatedMethod() throws Exception { - AnnotatedTestHandler handler = new AnnotatedTestHandler(); + AnnotatedTestService handler = new AnnotatedTestService(); Method method = handler.getClass().getMethod("twoHeaders", String.class, Integer.class); DefaultMessageHandler adapter = new DefaultMessageHandler(); adapter.setObject(handler); @@ -212,50 +211,41 @@ public class DefaultMessageHandlerTests { } } - private static class AnnotatedTestHandler { + private static class AnnotatedTestService { - @Handler public String messageOnly(Message message) { return (String) message.getPayload(); } - @Handler public String messageAndHeader(Message message, @Header("number") Integer num) { return (String) message.getPayload() + "-" + num.toString(); } - @Handler public String twoHeaders(@Header String prop, @Header("number") Integer num) { return prop + "-" + num.toString(); } - @Handler public Integer optionalHeader(@Header(required=false) Integer num) { return num; } - @Handler public Integer requiredHeader(@Header(value="num", required=true) Integer num) { return num; } - @Handler public String optionalAndRequiredHeader(@Header(required=false) String prop, @Header(value="num", required=true) Integer num) { return prop + num; } - @Handler public Properties propertiesMethod(Properties properties) { return properties; } - @Handler @SuppressWarnings("unchecked") public Map mapMethod(Map map) { return map; } - @Handler public Integer integerMethod(Integer i) { return i; } diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/handler/annotation/MethodArgumentMessageMapperTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/handler/annotation/MethodArgumentMessageMapperTests.java index 415d88e041..27ad9aaa5e 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/handler/annotation/MethodArgumentMessageMapperTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/handler/annotation/MethodArgumentMessageMapperTests.java @@ -26,7 +26,6 @@ import java.util.Properties; import org.junit.Test; -import org.springframework.integration.annotation.Handler; import org.springframework.integration.annotation.Header; import org.springframework.integration.message.Message; import org.springframework.integration.message.MessageBuilder; @@ -40,7 +39,7 @@ public class MethodArgumentMessageMapperTests { @Test public void testOptionalHeader() throws Exception { - Method method = TestHandler.class.getMethod("optionalHeader", Integer.class); + Method method = TestService.class.getMethod("optionalHeader", Integer.class); MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method); Object[] args = (Object[]) mapper.mapMessage(new StringMessage("foo")); assertEquals(1, args.length); @@ -49,14 +48,14 @@ public class MethodArgumentMessageMapperTests { @Test(expected=MessageHandlingException.class) public void testRequiredHeaderNotProvided() throws Exception { - Method method = TestHandler.class.getMethod("requiredHeader", Integer.class); + Method method = TestService.class.getMethod("requiredHeader", Integer.class); MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method); mapper.mapMessage(new StringMessage("foo")); } @Test public void testRequiredHeaderProvided() throws Exception { - Method method = TestHandler.class.getMethod("requiredHeader", Integer.class); + Method method = TestService.class.getMethod("requiredHeader", Integer.class); MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method); Message message = MessageBuilder.fromPayload("foo") .setHeader("num", new Integer(123)).build(); @@ -67,7 +66,7 @@ public class MethodArgumentMessageMapperTests { @Test(expected=MessageHandlingException.class) public void testOptionalAndRequiredHeaderWithOnlyOptionalHeaderProvided() throws Exception { - Method method = TestHandler.class.getMethod("optionalAndRequiredHeader", String.class, Integer.class); + Method method = TestService.class.getMethod("optionalAndRequiredHeader", String.class, Integer.class); MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method); Message message = MessageBuilder.fromPayload("foo") .setHeader("prop", "bar").build(); @@ -76,7 +75,7 @@ public class MethodArgumentMessageMapperTests { @Test public void testOptionalAndRequiredHeaderWithOnlyRequiredHeaderProvided() throws Exception { - Method method = TestHandler.class.getMethod("optionalAndRequiredHeader", String.class, Integer.class); + Method method = TestService.class.getMethod("optionalAndRequiredHeader", String.class, Integer.class); MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method); Message message = MessageBuilder.fromPayload("foo") .setHeader("num", new Integer(123)).build(); @@ -88,7 +87,7 @@ public class MethodArgumentMessageMapperTests { @Test public void testOptionalAndRequiredHeaderWithBothHeadersProvided() throws Exception { - Method method = TestHandler.class.getMethod("optionalAndRequiredHeader", String.class, Integer.class); + Method method = TestService.class.getMethod("optionalAndRequiredHeader", String.class, Integer.class); MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method); Message message = MessageBuilder.fromPayload("foo") .setHeader("num", new Integer(123)) @@ -102,7 +101,7 @@ public class MethodArgumentMessageMapperTests { @Test public void testPropertiesMethodWithNonPropertiesPayload() throws Exception { - Method method = TestHandler.class.getMethod("propertiesMethod", Properties.class); + Method method = TestService.class.getMethod("propertiesMethod", Properties.class); MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method); Message message = MessageBuilder.fromPayload("test") .setHeader("prop1", "foo").setHeader("prop2", "bar").build(); @@ -115,7 +114,7 @@ public class MethodArgumentMessageMapperTests { @Test public void testPropertiesMethodWithPropertiesPayload() throws Exception { - Method method = TestHandler.class.getMethod("propertiesMethod", Properties.class); + Method method = TestService.class.getMethod("propertiesMethod", Properties.class); MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method); Properties payload = new Properties(); payload.setProperty("prop1", "foo"); @@ -132,7 +131,7 @@ public class MethodArgumentMessageMapperTests { @Test @SuppressWarnings("unchecked") public void testMapMethodWithNonMapPayload() throws Exception { - Method method = TestHandler.class.getMethod("mapMethod", Map.class); + Method method = TestService.class.getMethod("mapMethod", Map.class); MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method); Message message = MessageBuilder.fromPayload("test") .setHeader("attrib1", new Integer(123)) @@ -146,7 +145,7 @@ public class MethodArgumentMessageMapperTests { @Test @SuppressWarnings("unchecked") public void testMapMethodWithMapPayload() throws Exception { - Method method = TestHandler.class.getMethod("mapMethod", Map.class); + Method method = TestService.class.getMethod("mapMethod", Map.class); MethodArgumentMessageMapper> mapper = new MethodArgumentMessageMapper>(method); Map payload = new HashMap(); payload.put("attrib1", new Integer(123)); @@ -162,50 +161,41 @@ public class MethodArgumentMessageMapperTests { } - private static class TestHandler { + private static class TestService { - @Handler public String messageOnly(Message message) { return (String) message.getPayload(); } - @Handler public String messageAndHeader(Message message, @Header("number") Integer num) { return (String) message.getPayload() + "-" + num.toString(); } - @Handler public String twoHeaders(@Header String prop, @Header("number") Integer num) { return prop + "-" + num.toString(); } - @Handler public Integer optionalHeader(@Header(required=false) Integer num) { return num; } - @Handler public Integer requiredHeader(@Header(value="num", required=true) Integer num) { return num; } - @Handler public String optionalAndRequiredHeader(@Header(required=false) String prop, @Header(value="num", required=true) Integer num) { return prop + num; } - @Handler public Properties propertiesMethod(Properties properties) { return properties; } - @Handler @SuppressWarnings("unchecked") public Map mapMethod(Map map) { return map; } - @Handler public Integer integerMethod(Integer i) { return i; }