399 lines
20 KiB
Plaintext
399 lines
20 KiB
Plaintext
SPRING INTEGRATION CHANGELOG
|
|
============================
|
|
|
|
For the full detailed changelog, see:
|
|
https://fisheye.springsource.org/changelog/spring-integration
|
|
|
|
|
|
Changes in version 1.0.4 (Apr 16, 2010)
|
|
---------------------------------------
|
|
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11286
|
|
|
|
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 <interval-trigger/> and <cron-trigger/> 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 <router/> 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 <pool-executor/> element was renamed to <thread-pool-task-executor/>
|
|
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<String, Object>
|
|
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 <poller/> elements
|
|
The <poller/> element now accepts a "cron" attribute (as an alternative to "period") if Quartz support is available
|
|
The <poller/> 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 <concurrency-interceptor> for endpoints
|
|
Added <transaction-interceptor> 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 <publish-subscribe-channel/>
|
|
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 <file-source/> 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 <channel-adapter/> with "ref" and "source" attributes replaces <source-endpoint/>
|
|
The <channel-adapter/> with "ref" and "target" attributes replaces <target-endpoint/>
|
|
The <channel-adapter/> accepts a "method" replacing <source-adapter/> and <target-adapter/>
|
|
The <router/> element is now a self-sufficient endpoint (rather than just creating a handler)
|
|
The <splitter/> element is now a self-sufficient endpoint (rather than just creating a handler)
|
|
The <aggregator/> 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 <gateway/> element
|
|
Added namespace support for the <splitter/> element
|
|
Added namespace support for the <router/> element
|
|
Added namespace support for different channel types (queue, priority, rendezvous, direct, thread-local)
|
|
Defined ChannelFactory strategy for the plain <channel/> elements and for the MessageBus 'auto-create' mode
|
|
Added namespace support for <console-source/> and <console-target/> elements
|
|
The <source-adapter/> element now produces a MethodInvokingSource
|
|
The <target-adapter/> 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 <selector/> sub-element has been replaced by the "selector" attribute
|
|
The endpoint's <concurrency/> and <schedule/> elements can now occur in any order
|
|
Fixed timing issue between <annotation-driven/> and <message-bus/> 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 <priority-channel/> element
|
|
Added @Concurrency annotation for configuring a @MessageEndpoint's ConcurrencyPolicy
|
|
Added @Aggregator annotation for specifying aggregating handler methods
|
|
Added <aggregator/> 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 <rmi-source/> and <rmi-target/> elements
|
|
Added support for <httpinvoker-source/> and <httpinvoker-target/> elements
|
|
Added support for the <ftp-source/> element
|
|
Added support for the <ws-target/> element
|
|
Added support for the <mail-target/> 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 <jms-source/> element now accepts a 'message-converter' attribute
|
|
|
|
*** CONFIGURATION ***
|
|
|
|
Added <interceptor/> sub-element for <channel/>
|
|
Added <selector/> sub-element for <endpoint/>
|
|
Added <handler-chain> element that accepts <handler/> sub-elements for creating a MessageHandlerChain
|
|
Added <aggregator/> element to the namespace for creating AggregatingMessageHandlers
|
|
Added "dataype" attribute to the <channel/> 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
|