SPRING INTEGRATION CHANGELOG ============================ For the full detailed changelog, see: https://fisheye.springsource.org/changelog/spring-integration Changes in version 2.0.4 (May 18, 2011) http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11828 Changes in version 2.0.3 (Feb 09, 2011) http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11815 Changes in version 2.0.2 (Feb 08, 2011) http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11787 Changes in version 2.0.1 (Dec 17, 2010) http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11696 Changes in version 2.0.0 GA (Nov 22, 2010) http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11537 Changes in version 2.0.0 Release Candidate 2 (Nov 13, 2010) http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11749 Changes in version 2.0.0 Release Candidate 1 (Oct 28, 2010) http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11656 Changes in version 2.0.0 Milestone 7 (Sept 03, 2010) http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11311 Changes in version 2.0.0 Milestone 6 (July 28, 2010) http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11536 Changes in version 2.0.0 Milestone 5 (June 25, 2010) http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11446 Changes in version 2.0.0 Milestone 4 (May 8, 2010) http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11389 Changes in version 2.0.0 Milestone 3 (Mar 12, 2010) http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11307 Changes in version 2.0.0 Milestone 2 (Dec 24, 2009) --------------------------------------------------- http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11306 Changes in version 2.0.0 Milestone 1 (Oct 12, 2009) --------------------------------------------------- http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11178 Changes in version 1.0.3 (Jul 18, 2009) --------------------------------------- http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11209 Changes in version 1.0.2 (Mar 31, 2009) --------------------------------------- http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11153 Changes in version 1.0.1 (Dec 17, 2008) --------------------------------------- For changes in this release, see: http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11146 Changes in version 1.0.0 (Nov 26, 2008) --------------------------------------- For changes in this release, see: http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=10791 Changes in version 1.0.0.RC2 (Nov 14, 2008) ------------------------------------------- For changes in this release, see: http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11102 Changes in version 1.0.0.RC1 (Nov 03, 2008) ------------------------------------------- For changes in this release, see: http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11101 *** GENERAL *** Upgraded Spring Framework dependency to 2.5.6 Upgraded Spring Security dependency to 2.0.4 Broke 'adapter' module into individual JARs Added JMS samples *** CORE API *** Added Message Filter Added error handling strategy so that ErrorMessage can be routed to an error channel Added support for a 'defaultChannel' property on MessageChannelTemplate Added @Gateway annotation for per-method configuration of request and/or reply channels Simplified GatewayProxyFactoryBean reply Message correlation GatewayProxyFactoryBean now supports non-pollable replyChannel DefaultMethodResolver now correctly resolves annotated method on Proxy Fixed CronTrigger end of month rollover issue Added and elements for pollers Added transaction support for annotation-based polling AbstractPollingEndpoint now supports an Advice chain Fixed endless loop issue in Router (INT-358) MethodInvokingRouter now accepts a target object only (no method name required) MethodInvokingRouter will check for @Router method-level annotation Added 'default-output-channel' attribute to the element The 'splitter' element does not require a "ref" (for a DefaultSplitter instance) The 'resequencer' element accepts an "input-channel" attribute AbstractMessageBarrierHandler no longer calls processMessages twice The element was renamed to Default TaskExecutor created for MessageBus sets max-size for pool instead of core Endpoints registered after ApplicationContext refresh are still activated MessageBus started/stopped events are fired Removed the MessageBusInterceptor Stopping/destroying context/MessageBus properly stops all Threads MessageHeaders no longer supports clear MessageHeaders constructor copies the original map for immutability *** ADAPTERS *** Added JMS header enricher Added JmsOutboundGateway and refactored JmsGateway to JmsInboundGateway JMS gateways recognize a payload that is already a Spring Integration Message Added namespace support for JmsOutboundGateway MessageHeader values are propagated when using JMS gateways Enabled configuration of MessageConverter for JmsOutboundGateway FileToStringTransformer is encoding-aware Added inbound Mail Channel Adapters (POP3, IMAP, and IMAP IDLE) Mail outbound-channel-adapter accepts the "channel" attribute Added mail header enricher namespace support Enabled configuration of a WebServiceMessageSender instance for WS outbound gateways WebService gateway supports a Document payload in addition to Source and String RMI and HttpInvoker outbound gateways remove but copy non-serializable Message headers *** OTHER *** Channel security provides a ChannelInvocation instance Channel security interceptor now extends AbstractSecurityInterceptor XML Document Builders are now Namespace-aware Added XPath Message Selector Added XPath Message Splitter Changes in version 1.0.0.M6 (Aug 20, 2008) ------------------------------------------ *** CORE API *** Refactored Message object to be unmodifiable after initial creation Refactored MessageHeaders object to be an implementation of (unmodifiable) Map Added MessageBuilder for constructing Messages (now used within internal handlers and endpoints) Added Quartz-based MessagingTaskScheduler to support Cron-based polling Reimplemented base Scheduling infrastructure to provide an SPI MessageBus no longer provides an option for auto-creating channels Added HeaderTransformer strategy interface MethodArgumentMessageMapper (f.k.a AnnotationMethodMessageMapper) is used across handler types PublishSubscribeChannels now provide an 'applySequence' property for adding sequence number/size headers SimpleDispatcher no longer attempts retries and does not mask exceptions with rejection limit error Default 'maxMessagesPerPoll' value is now unbounded Aggregator gives precedence to outputChannel and falls back to the returnAddress (consistent with other handlers) Added support for arguments, return-value, and thrown exception payload types for MessagePublishingInterceptor AbstractMessageDispatcher uses a Set (to avoid duplicate subscriptions) instead of a List AbstractMessageBarrierHandler uses returnAddress if outputChannel is null PublisherAnnotationPostProcessor proxies classes if the annotated method is not declared on an interface method Method reference is used for @Subscriber annotation (avoids NoSuchMethodException for method name ambiguity) MethodInvokingSource and MethodInvokingTarget now accept the actual Method reference instead of method name ChannelFactory behavior is now consistent with channels that are defined explicitly (no longer creates proxies) MessageHandlerDecorator (f.k.a. InterceptingMessageHandler) now supports setter injection InboundChannelAdapter (replacement for SourceEndpoint) calls MessageDeliveryAware onSend/onFailure methods *** ADAPTERS *** Added an FTP Target adapter FileEntryParser can be customized for the FtpSource Added PollingMailSource adapter to support (polled) inbound e-mail messages Added SubscribableMailSource adapter to support (event-driven) inbound e-mail messages JMS header-mapping MessageConverter is no longer nested twice when used for source and target JMS message headers are now propagated (JMS-specific and user-prefixed values) AbstractMailHeaderMapper correctly maps the FROM/REPLY_TO attributes *** CONFIGURATION *** Channel Adapter now creates a DirectChannel implicitly if no "channel" is configured Added namespace support for WireTap The "max-messages-per-poll" value can be configured on elements The element now accepts a "cron" attribute (as an alternative to "period") if Quartz support is available The element now provides "initial-delay" and "fixed-rate" attributes Added support for hybrid XML and annotations configuration (method-level annotations with XML-based endpoint) Added namespace support for configuring the MessageBus' TaskScheduler The "error-handler" attribute is available for XML-based Message Endpoint configuration The "errorChannel" bean is detected within the Application Context rather than being configured on the MessageBus The "channelFactory" bean is detected within the Application Context rather than being configured on the MessageBus Exposed configuration of concurrent-consumers for the JmsGateway The @HeaderProperty and @HeaderAttribute annotations have been replaced with @Header Splitter endpoint's 'output-channel' is now configured correctly when using annotations *** WEB SERVICES AND XML *** Added XPathRouter DOMResultFactory now creates a DOMResult with a node for OXM Marshaller *** GENERAL *** Upgraded to Spring 2.5.5.A Upgraded to Spring Security 2.0.2.A Upgraded to Spring WS 1.5.4.A Changes in version 1.0.0.M5 (Jul 08, 2008) ------------------------------------------ *** CORE API *** SimpleMessagingTaskScheduler now has a configurable shutdown (for 'shutdown' vs 'shutdownNow') QueueChannel uses TRACE logging for preReceive and only uses DEBUG in postReceive if the Message is not null Added for endpoints Added for endpoints The MessageBus tries to register new channels before starting (on ContextRefreshedEvent) Aggregator now uses its endpoint's output-channel Added MessageTransformer and @Transformer support Added a MessageTransformingChannelInterceptor MessageBus is now an interface MessageHeader is now an interface Added ChannelFactory Added PublishSubscribeChannel and Channels specified in source-endpoint (now channel-adapter) are now auto-created Added EndpointTrigger for invoking endpoints with a poll command Removed the DispatcherPolicy from channel configuration Added BroadcastingDispatcher *** ADAPTERS *** Added regular expression pattern FilenameFilter implementation The now accepts one of "file-filter", "filename-filter", or "filename-pattern" FileSource now uses a Resource to locate its directory FtpSource closes the connection after poll WebServiceHandler namespace support includes 'message-factory' and 'fault-message-resolver' WebServiceHandler namespace supports injection of the WebServiceMessageCallback Refactored FtpSource and FileSource to be better aligned AggregatorBarrier correctly stops processing messages after completion *** CONFIGURATION *** Method-level @Handler can now be used without class-level @MessageEndpoint The with "ref" and "source" attributes replaces The with "ref" and "target" attributes replaces The accepts a "method" replacing and The element is now a self-sufficient endpoint (rather than just creating a handler) The element is now a self-sufficient endpoint (rather than just creating a handler) The element is now a self-sufficient endpoint (rather than just creating a handler) Added namespace support for creating a MessageSelectorChain *** WEB SERVICES AND XML *** Added XML module Added XSLT Transformer Add Spring OXM transformer Add XML Result transformer to convert from a Result to a Document *** SECURITY *** Added support for Spring Security on MessageChannels Added support for Spring Security on endpoints *** GENERAL *** More Exceptions now provide the 'failedMessage' Added a MessageRejectedException. It is thrown when a MessageSelector rejects a Message Changes in version 1.0.0.M4 (May 23, 2008) ------------------------------------------ *** CORE API *** Improved consistency of 'endpoint' with SourceEndpoint, TargetEndpoint, and HandlerEndpoint implementations SourceEndpoint replaces PollingSourceAdapter and also provides better separation from the actual Source ReplyCorrelator is now encapsulated within RequestReplyTemplate Added MessagingGatewaySupport, SimpleMessagingGateway, and GatewayProxyFactoryBean for Request-Reply operations Renamed SynchronousChannel to DirectChannel, also factored out ThreadLocalChannel @Splitter-annotated methods now attempt to convert the Message payload (consistent with @Handler) Added support for parameter-binding with @HeaderAttribute and @HeaderProperty annotations Handler methods configured with namespace support now accept a Message payload Implemented a MessageSelectorChain (consistent with MessageHandlerChain) Added @CompletionStrategy annotation and CompletionStrategyAdapter for aggregators The sequence number and sequence size are propagated correctly for POJO-based handler methods. Source implementations may be connected to a DirectChannel The ErrorHandler is now provided to ConcurrentTargets Implemented RootCauseErrorMessageRouter Added removeAttribute() and removeProperty() methods to MessageHeader When passing to a handling method, primitive arrays are no longer cast to Object[] Failed Messages (when available) are now propagated within MessageHandlingException and MessageDeliveryException Provided configurable property for registering an asynchronous TaskExecutor for the ApplicationEventMulticaster *** ADAPTERS *** Provided namespace support for configuring the MessageHeaderMapper for JMS sources and targets FileNameGenerator is now configurable for a FileTarget File-Message mapping now supports text, binary, and File object Mapping to JMS properties from the MessageHeader no longer fails on JMSException *** CONFIGURATION *** Added namespace support for the element Added namespace support for the element Added namespace support for the element Added namespace support for different channel types (queue, priority, rendezvous, direct, thread-local) Defined ChannelFactory strategy for the plain elements and for the MessageBus 'auto-create' mode Added namespace support for and elements The element now produces a MethodInvokingSource The element now produces a MethodInvokingTarget Added annotation support for scheduling metadata on a message endpoint @Splitter no longer accepts a "channel" attribute (now uses endpoint's output-channel) A @MessageEndpoint annotated class now requires the presence of a handler method The endpoint's sub-element has been replaced by the "selector" attribute The endpoint's and elements can now occur in any order Fixed timing issue between and in a ClasspathXmlApplicationContext *** GENERAL *** Now using the SpringSource Enterprise Bundle Repository for dependencies Updated MANIFEST.MF files for imports, exports, and bundle metadata Adjusted ivy configuration for provided and runtime dependency scopes Moved spring.schemas and spring.handlers files to src/main/resources Refactored the core's org.springframework.integration.adapter package contents into other packages Added several diagrams to the Reference Documentation's "overview" section Upgraded to Spring 2.5.4.A and Spring-WS 1.5.1.A Changes in version 1.0.0.M3 (Apr 07, 2008) ------------------------------------------ *** CORE API *** Handler method invocation now uses Spring's default type-conversion strategies Message priorities are now defined in the MessagePriority enum Added ResponseCorrelator for polling a reply channel with a correlationId Added SynchronousChannel that invokes handlers on the sender's thread or receives from a PollableSource on the receiver's thread Implemented the WireTap pattern with a ChannelInterceptor that publishes to a secondary channel Calling setErrorChannel on MessageBus no longer throws NullPointerException upon activation ChannelPurger now accepts multiple MessageChannels (as varargs) in its constructors RouterMessageHandlerAdapter now sets the ChannelRegistry on its target Object if it is ChannelRegistryAware DefaultMessageEndpoint now sets the ChannelRegistry on any ChannelRegistryAware handler MessageEndpointAnnotationPostProcessor now sets the ChannelRegistry for any annotated ChannelRegistryAware Object *** ADAPTERS *** Added FtpSourceAdapter Added HttpInvokerSourceAdapter Added HttpInvokerTargetAdapter Added RmiSourceAdapter Added RmiTargetAdapter Added SimpleWebServiceTargetAdapter Added MarshallingWebServiceTargetAdapter Added a DefaultMailHeaderGenerator and defined constants in MailAttributeKeys CharacterStreamSourceAdapter now requires a Reader (not InputStream) CharacterStreamTargetAdapter now requires a Writer (not OutputStream) The stdoutAdapter and stderrAdapter factory methods now accept a 'charsetName' JMS source adapters now copy properties from the received JMS Message header JMS source and target adapter parsers now consider "connectionFactory" as the default bean-name reference *** CONFIGURATION *** Added namespace support for PriorityChannel with the element Added @Concurrency annotation for configuring a @MessageEndpoint's ConcurrencyPolicy Added @Aggregator annotation for specifying aggregating handler methods Added element for defining an aggregating handler in XML Annotation-based BeanPostProcessors now handle proxies correctly Annotation-based BeanPostProcessors now recognize inherited class-level annotations even if they are not explicitly @Inherited and even if they are on an interface Added support for and elements Added support for and elements Added support for the element Added support for the element Added support for the element *** GENERAL *** The Spring Web Services support is included in a new 'spring-integration-ws' module Updated manifest properties for OSGi-compliance in "core" and "adapters" Added manifest properties for OSGi-compliance for "ws" and "samples" Added "Bundle-Name" to each manifest file Changes in version 1.0.0.m2 (Feb 28, 2008) ------------------------------------------ *** CORE API *** Defined the ChannelInterceptor strategy interface Implemented new priority-based MessageChannel (PriorityChannel) Created a MessageSelectingInterceptor, a ChannelInterceptor that delegates to a MessageSelector Added clear and purge methods to MessageChannel (purge accepts a MessageSelector) Implemented a ChannelPurger that delegates to one or more MessageSelectors ChannelRegistry now provides 'unregister' method for runtime removal of channels Added RequestReplyTemplate for synchronous, blocking request/reply behavior over an asynchronous channel Added isExpired() method to Message Added a constructor to GenericMessage that copies MessageHeader properties and attributes Using the header-copying constructor in MessageHandler adapters to preserve header information Undeliverable replies from endpoint are passed to its ErrorHandler ErrorHandler is now a configurable strategy for MessageEndpoints ReplyHandler is now a configurable strategy for MessageEndpoints Subscription is now immutable Errors in ConcurrentHandler are now always logged at DEBUG level, and at WARN level if no 'errorHandler' is available Endpoints now set the 'correlationId' on reply Messages Defined Aggregator and CompletionStrategy and implemented an AggregatingMessageHandler SplitterMessageHandlerAdapter now sets sequenceNumber and sequenceSize header properties automatically Added 'sendTimeout' property to SplitterMessageHandlerAdapter *** ADAPTERS *** Added Mail target adapter Acknowledge modes are now configurable for JmsMessageDrivenSourceAdapter JMS attributes are now set from the MessageHeader prior to sending via JmsTargetAdapter The element now accepts a 'message-converter' attribute *** CONFIGURATION *** Added sub-element for Added sub-element for Added element that accepts sub-elements for creating a MessageHandlerChain Added element to the namespace for creating AggregatingMessageHandlers Added "dataype" attribute to the element for message payload datatype enforcement Added 'initialDelay' and 'fixedRate' attributes to the @Polled annotation Added 'destination-name' attribute for JmsTargetAdapter Added 'autoStartup' property to MessageBus (and corresponding XML attribute) with a default value of 'true' Added 'defaultConcurrencyPolicy' property to MessageBus (and corresponding XML sub-element) Defined default error channel key as "errorChannel" (also added ERROR_CHANNEL_NAME constant in MessageBus) *** GENERAL *** Separated "spring-integration-core" from "spring-integration-adapters" Added manifest properties for OSGi-compliance Refactored package structure to remove all cycles Using java.util.UUID for default ID generation strategy Increased DEBUG logging throughout, especially for channel and endpoint Components delegating to (Scheduled)ExecutorService are now configurable through standard injection