Commit Graph

441 Commits

Author SHA1 Message Date
Mark Fisher
709f6d72df AbstractEndpointParser creates a DirectChannel for an 'input-channel' that is not explicitly configured within the context. 2008-10-06 20:11:49 +00:00
Mark Fisher
7d8dc775e4 AbstractMessageConsumingEndpoint is now AbstractMessageConsumer. 2008-10-06 18:23:00 +00:00
Mark Fisher
27e288be08 Refactored existing Message-consuming endpoints to only implement MessageConsumer (not MessageEndpoint). Now, either a PollingConsumerEndpoint or SubscribingConsumerEndpoint delegates to the MessageConsumer thereby separating the Lifecycle responsibilities and configuration settings (trigger, transactions, etc) since they are different for polling vs. subscribing and not relevant for simply consuming Messages. Essentially all MessageConsumers are now "event-driven" since a "polling consumer" is actually handled by the PollingConsumerEndpoint class. The next refactoring step involves renaming several components to clarify this endpoint vs. consumer distinction. 2008-10-06 17:24:46 +00:00
Marius Bogoevici
2d4bb80b10 Force AbstractMessageBarrierEndpoint and subclasses to use the TaskScheduler supplied via TaskSchedulerAware for scheduling the ReaperThread. Introducing a Schedulers helper class for creating a default TaskScheduler. 2008-10-06 04:52:03 +00:00
Mark Fisher
08e6db266b Added ConsumerEndpointFactoryBean. 2008-10-05 22:18:54 +00:00
Mark Fisher
e119d493b2 Added SubscribingConsumerEndpoint. 2008-10-05 21:54:03 +00:00
Mark Fisher
180d57c418 Added PollingConsumerEndpoint. 2008-10-05 21:26:01 +00:00
Mark Fisher
c577d3ef2c MessagingAnnotationPostProcessor now only calls method-annotation postProcessors if the annotated Method should trigger the creation of a MessageEndpoint. To qualify, it must be either a @ChannelAdapter annotation or define an "inputChannel". 2008-10-05 20:14:42 +00:00
Mark Fisher
95c8b83a51 Added MethodResolver strategy interface and two implementations: AnnotationMethodResolver and DefaultMethodResolver. The MessageMappingMethodInvoker no longer resolves based on Annotations. Instead, the component that delegates to the invoker is responsible for resolving the Method instance (e.g. ServiceActivator now does this when its single Object constructor is invoked). 2008-10-05 19:40:53 +00:00
Mark Fisher
88df7711e0 MessagingAnnotationPostProcessor no longer creates a proxy for annotated methods. It still creates and registers an endpoint if an "inputChannel" is specified, but for satisfying a "ref" in an XML-based endpoint configuration, it will be the responsibility of the corresponding consumer to create a Method-invoking adapter instance for the annotated Method. The ServiceActivator performs this role already, checking for a single @ServiceActivaotor-annotated method or falling back to a single public Method that is not declared on the Object class. 2008-10-05 18:16:31 +00:00
Mark Fisher
5c16131ce1 Added annotation-type method resolution to MessageMappingMethodInvoker. 2008-10-05 14:57:15 +00:00
Marius Bogoevici
6ad0682bd0 Improve the robustness of the ScheduledTaskExecutor 2008-10-04 21:03:44 +00:00
Mark Fisher
3d6969a837 Removed SourcePoller. SourcePollingChannelAdapter now extends AbstractPollingEndpoint. 2008-10-02 23:53:37 +00:00
Mark Fisher
5d40996acb Moved ErrorHandler dependency from AbstractEndpoint to AbstractMessageConsumingEndpoint. 2008-10-02 22:46:22 +00:00
Mark Fisher
c4f61646f7 Removed getName from AbstractEndpoint. 2008-10-02 19:44:57 +00:00
Mark Fisher
4c02dd0605 Moved SubscribableChannel from the 'message' package to the 'channel' package. 2008-10-02 18:22:18 +00:00
Mark Fisher
e5a8972a97 Subscribable is now SubscribableChannel, and MessageDispatcher no longer implements Subscribable. 2008-10-02 17:50:18 +00:00
Mark Fisher
b58706a1d7 Removed EndpointInterceptorParser and removed the "interceptors" sub-element from the "endpoint" element in the schema definition. 2008-10-02 02:47:29 +00:00
Mark Fisher
a8ce041a0b Removed EndpointInterceptor. 2008-10-02 02:40:52 +00:00
Mark Fisher
be566ea60b Moved start() call. 2008-10-02 01:21:22 +00:00
Mark Fisher
8ecc7604d6 Removed SchedulableTask interface. The only implementation (AbstractPoller) now implements Runnable directly and still provides the getTrigger() method. 2008-10-02 01:11:35 +00:00
Mark Fisher
c24df55e06 AbstractEndpoint no longer implements ChannelRegistryAware. AbstractMessageHandlingEndpoint and RouterEndpoint do. 2008-10-02 00:56:05 +00:00
Mark Fisher
64158f454e ReplyMessageCorrelator simply returns the same Message. The base class already resolves the replyChannel from the 'returnAddress' header value. 2008-10-02 00:42:33 +00:00
Mark Fisher
cd5e68c5c1 AbstractPoller now has a setTransactionDefinition method instead of individual setters. 2008-10-01 18:59:32 +00:00
Mark Fisher
5d5f502e8e Removed BlockingSource (unused). 2008-10-01 18:47:42 +00:00
Mark Fisher
8cea74f062 Using Asserts with IllegalArgumentException/IllegalStateException instead of ConfigurationException. 2008-09-30 03:44:40 +00:00
Mark Fisher
590d346f08 Simplified router hierarchy and only implementing ChannelRegistryAware for routers that resolve channel names. 2008-09-29 20:59:17 +00:00
Mark Fisher
0c35a1781e Simplified RecipientListChannelResolver. It now requires a List of MessageChannel instances rather than also allowing channel names. 2008-09-29 20:01:26 +00:00
Mark Fisher
a7dcd5f31f Removed DefaultChannelRegistry, and add TestChannelRegistry (for tests only). 2008-09-29 18:48:29 +00:00
Mark Fisher
4954228395 Removed the 'unregisterChannel' method from ChannelRegistry. DefaultMessageBus now implements ChannelRegistry directly (no longer delegates to DefaultChannelRegistry). 2008-09-29 18:37:26 +00:00
Mark Fisher
039679b173 Using Asserts with IllegalArgumentException/IllegalStateException instead of ConfigurationException. 2008-09-29 15:06:27 +00:00
Mark Fisher
1f0cf0fcf2 Using Asserts with IllegalArgumentException/IllegalStateException instead of ConfigurationException. 2008-09-29 14:24:56 +00:00
Mark Fisher
c78e7e67ad Using Asserts with IllegalArgumentException/IllegalStateException instead of ConfigurationException. 2008-09-29 13:49:47 +00:00
Mark Fisher
e6f22df1bb Using Asserts with IllegalArgumentException/IllegalStateException instead of ConfigurationException. 2008-09-29 13:25:43 +00:00
Mark Fisher
170bc6ea79 Added the @Gateway annotation for per-method configuration when using GatewayProxyFactoryBean (INT-383). Also, the AbstractMessagingGateway now supports non-pollable reply channels. Note however, if using a gateway for no-arg receive() invocations, a PollableChannel is required and otherwise an IllegalStateException will be thrown (INT-384). 2008-09-28 22:15:22 +00:00
Mark Fisher
30dd76190b formatting 2008-09-28 21:41:23 +00:00
Iwein Fuld
285a6d2fb3 RESOLVED - issue INT-382: write integration test for Splitter
http://jira.springframework.org/browse/INT-382
2008-09-28 21:24:57 +00:00
Mark Fisher
a76c65220b GatewayProxyFactoryBean now creates a Map of gateways (per-Method). This will enable support for @Gateway annotations (coming soon). Also, the @Header and @Headers annotations are now supported for gateway method parameters. The 'request-channel' and 'reply-channel' attributes of the <gateway/> element have been changed to 'default-request-channel' and 'default-reply-channel' since the request/reply channels will be configurable on a method-by-method basis with annotations (the same applies to 'request-timeout' and 'reply-timeout'). The MessageMapper interface has been split into InboundMessageMapper (with 'toMessage') and OutboundMessageMapper (with 'fromMessage') since the behavior is not always symmetrical For example, the gateway uses MethodParameterMessageMapper for creating a Message *from* the args array but it uses SimpleMessageMapper (the new name for DefaultMessageMapper) to create a Message whose payload is the method's return value. 2008-09-28 19:58:24 +00:00
Mark Fisher
9afcda0a68 The <splitter/> element now creates a DefaultSplitter when no "ref" attribute is defined (INT-354). 2008-09-28 18:56:34 +00:00
Mark Fisher
98fc463155 Refactored MethodParameterMessageMapper's 'resolveHeaderName()' method into the MethodParameterMetadata inner class as getHeaderName(). 2008-09-28 13:46:39 +00:00
Iwein Fuld
414fa7645e OPEN - issue INT-382: write integration test for Splitter
http://jira.springframework.org/browse/INT-382
2008-09-28 05:16:12 +00:00
Mark Fisher
2e175b638d The @Headers annotation is now required (for clarity) when mapping from a Message to a parameter intending to receive MessageHeaders. If the expected payload type is a Map or Properties object, it can still be mapped to any non-annotated parameter of that same type. 2008-09-28 00:03:55 +00:00
Mark Fisher
cf57a20b33 Added validation and tests (exactly 1 Message or payload when mapping with toMessage(), etc). 2008-09-27 19:33:32 +00:00
Mark Fisher
e86b9eb6d8 Added the @Headers parameter-level annotation for mapping a java.util.Map (with String-typed keys) to/from the MessageHeaders in MethodParameterMessageMapper. 2008-09-27 18:50:35 +00:00
Mark Fisher
f643196b64 Added tests for the 'toMessage()' method of MethodParameterMessageMapper. 2008-09-27 16:11:41 +00:00
Mark Fisher
fd77d1a1d7 Started implementation of the 'toMessage()' functionality on MethodParameterMessageMapper (to be used by GatewayProxyFactoryBean after refactoring). Resolves parameters annotated with @Header and payload Objects. 2008-09-27 16:09:23 +00:00
Mark Fisher
1cfe32cd21 Moved the MessageMapper strategy interface from the 'gateway' package to the 'message' package. 2008-09-27 15:22:28 +00:00
Mark Fisher
9773908155 Refactored MessageMappingParameterResolver to MethodParameterMessageMapper, an implementation of the MessageMapper interface. 2008-09-27 15:18:28 +00:00
Mark Fisher
acd1527470 Refactored isEligibleForCopying() to isReadyOnly(). The check is now done in the setHeader() method instead of only when copying header values. 2008-09-27 00:44:44 +00:00
Mark Fisher
8ea24913b5 Added SimpleHeaderEnricherParser. 2008-09-26 20:47:42 +00:00