SPRING INTEGRATION CHANGELOG ============================ 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