Commits on Mar 20, 2015
  1. INT-3672: Fix IdempotentReceiver for MH `@Bean`s

    artembilan authored and garyrussell committed Mar 5, 2015
    Previously the `IdempotentReceiverInterceptor` has been applied only for the `MessageHandler`s which were registered with `.handler` suffix.
    Rework `IdempotentReceiverAutoProxyCreatorInitializer` and `IdempotentReceiverAutoProxyCreator` to get deal with **direct** `MessageHandler`s
    which can be resulted from `@Bean` methods.
    Use the `MessageHandler` real bean name instead of `endpoint pattern` in that case
    **Cherry-pick to 4.1.x**
  2. INT-3197: Docs to AsciiDoc from DocBook

    garyrussell authored and artembilan committed Mar 20, 2015
    Various glitches.
    Fix Table of Contents
    Polishing - Various Glitches
    More Polishing
    - Fixes for issues found by side-by-side comparison of htmlsingle output.
    Fix Table Formats for PDF
    More Polishing - PR Comments
    More Polishing - Bad Titles
    More Polishing
    Work-Around for AsciiDoctor Problem
    Use a blank line between includes rather than a comment
    at the end of include files that end with a callout.
    Remove Unresolved qName Entries
    Fix Overview PDF Image Sizes
    Highlight Schema Imports
    More Image Fixes
    INT-3197: Port DocBook Changes Since Conversion
    Remove DocBook Files
Commits on Mar 19, 2015
  1. INT-3680: Fix JMS Durable Subscription Name

    garyrussell authored and artembilan committed Mar 17, 2015
    Change parser to use the `setSubscriptionName` setter instead
    of `setDurableSubscriptionName` which as the side effect of
    unconditionally setting the subscription as durable.
  2. INT-3633: Add MessageSourceAdvice

    garyrussell authored and artembilan committed Mar 5, 2015
    INT-3633: Add SimpleActiveIdleMessageSourceAdvice
    Also resolve package tangle.
    Polishing and Docs
    Polishing according PR comments:
    * Fix JavaDocs vulnerabilities
    * Fix typos in docs
    * Remove unnecessary `AopUtils.canApply` check
Commits on Mar 9, 2015
  1. INT-3664: Rework BPP in the `IntMBExporter`

    artembilan authored and garyrussell committed Mar 3, 2015
    Since all metrics are already direct for the integration components, we don't do any proxying from `IntegrationMBeanExporter`,
    and even any other adjustments during BPP phases. Hence this stuff is already redundant for `IntegrationMBeanExporter`.
    In addition this change fix the `early access to the BeanFactory from BPP` issue.
    INT-3664: Address PR comments
    Doc Polish
    INT-3664: Polishing according the SF changes to the `PostProcessorRegistrationDelegate$BeanPostProcessorChecker`
Commits on Mar 5, 2015
  1. INT-3656: Restore PreSend Log; Avoid Access Method

    garyrussell committed Mar 4, 2015
    The optimization (when no interceptors) inadvertently removed
    the `preSend` DEBUG log.
    Reinstate the DEBUG log.
    Also change `ChannelInterceptorList` to a `static` class.
    This avoids the access method invocation each time the channel's
    `logger` is used. The only `AMC` field used was the `logger`; pass
    it into the `CIL` via a constructor.
    Old bytecode:
           104: aload_0
           105: getfield      #14                 // Field this$0:Lorg/springframework/integration/channel/AbstractMessageChannel;
           108: invokestatic  #60                 // Method org/springframework/integration/channel/AbstractMessageChannel.access$1:(Lorg/springframework/integration/channel/AbstractMessageChannel;)Lorg/apache/commons/logging/Log;
           111: invokeinterface #66,  1           // InterfaceMethod org/apache/commons/logging/Log.isDebugEnabled:()Z
           116: ifeq          157
    New bytecode:
            98: aload_0
            99: getfield      #22                 // Field logger:Lorg/apache/commons/logging/Log;
           102: invokeinterface #60,  1           // InterfaceMethod org/apache/commons/logging/Log.isDebugEnabled:()Z
Commits on Mar 4, 2015
  1. INT-3670: JMS Conversion Error Handling

    garyrussell authored and artembilan committed Mar 3, 2015
    Exceptions during inbound message conversion are now routed to the error-channel (if present).
    When there is no error-channel, the exception is thrown back to the container as before.
    Add a note to the `jms.xml` about the `error-channel` usage changes
Commits on Mar 3, 2015
  1. INT-3655: Remove Reactor `Function` Usage

    artembilan authored and garyrussell committed Feb 25, 2015
    In addition, change `GatewayProxyFactoryBean` to the logic to ensure that the Reactor is really `optional`
    INT-3655: Doc Polishing
  2. INT-3669: Fix `DelayHandler` for the `Date` delay

    artembilan committed Mar 3, 2015
    Previously the `DelayHandler` incorrectly calculated a `delay` for values which are of the `Date` time.
    It always used `new Date()` even for rescheduling for persisted messages.
    * Fix `DelayHandler` to calculate `delays` against the `requestDate` of the delayed Message
    * In addition fix the expression evaluation root object, when for rescheduling it was the message with `DelayedMessageWrapper` payload instead of original message.
    **Cherry-pick to 3.0.x, 4.0.x, 4.1.x**
Commits on Mar 2, 2015
  1. INT-3661: Fix the eager BF access from BPPs (P I)

    artembilan authored and garyrussell committed Feb 27, 2015
    Previously there were a lot of noise from the `PostProcessorRegistrationDelegate$BeanPostProcessorChecker` for early access for beans.
    That may produce some side-effects when some of `BeanFactoryPostProcessor`s won't adjust those beans.
    The issue is based on two facts:
    1. Loading beans from `BPP`, e.g. `IntegrationEvaluationContextAwareBeanPostProcessor` (or `ChannelSecurityInterceptorBeanPostProcessor` -
    2. Loading beans from `setBeanFactory()/setApplicationContext()` container methods
    * Move all code from `setBeanFactory()` with access to the `BeanFactory` (e.g. `this.messageBuilderFactory = IntegrationUtils.getMessageBuilderFactory(this.beanFactory);`)
    to some other lazy-load methods like `getMessageBuilderFactory()`
    * Fix parser tests to remove `messageBuilderFactory` tests since there is no activity for target components to lazy-load them
    * Polish some test according the new lazy-load logic
    * Rework `IntegrationEvaluationContextAwareBeanPostProcessor` to the `SmartInitializingSingleton` and make it `Ordered`
    * Populate `beanFactory` for the internal instance of `connectionFactory` in the `TcpSyslogReceivingChannelAdapter`
    * Populate `beanFactory` for the internal `UnicastReceivingChannelAdapter` in the `UdpSyslogReceivingChannelAdapter`
    * Add `` that `UdpSyslogReceivingChannelAdapter` overrides `outputChannel` for the provided `UnicastReceivingChannelAdapter`
    * Change the internal `MessageChannel` in the `UdpSyslogReceivingChannelAdapter` to the `FixedSubscriberChannel` for better performance
    * Fix `AbstractExpressionEvaluator`
    * Add JavaDocs for the `IntegrationEvaluationContextAware`
    Fix `MongoDbMessageStoreClaimCheckIntegrationTests`
    Addressing PR comments
  2. INT-3651: JMX Improvements Documentation

    garyrussell authored and artembilan committed Mar 2, 2015
    - Add documentation for the new JMX environment
    - Add the ability to customize the default metrics implementations
    - Fix LifecycleMessageHandlerMetrics to get a custom `MessageHandlerMetrics`
    - Add an escape to the bean pattern matcher to handle beans starting with `!`
    INT-3651: More Docs/Polishing
    * JavaDocs polishing
    * Change `jmx.xml` to describe `public void stopActiveComponents(long howLong)` not that removed with `boolean force`
  3. INT-3635: TCP GW: Add remoteTimeoutExpression

    garyrussell authored and artembilan committed Mar 2, 2015
    Add an expression as an alternative to `remote-timeout`.
    INT-3635: Tcp GW Docs
    Also removed the relationship between reply-timeout and
    remote-timeout (introduced in 2.2 to provide backward compatibility
    after the incorrect use of the reply-timeout attribute).
    * Add log for Thread interruption state to the `EnableIntegrationTests`:
Commits on Feb 28, 2015
  1. INT-3628: Use SchedulingAwareRunner for Long Tasks

    garyrussell authored and artembilan committed Feb 27, 2015
    Certain tasks in Spring Integration are long running. Indicate
    so for the benefit of platforms such as WebLogic that can log warnings
    for long running tasks otherwise.
    Also fix conflicting versions of commons-io.
  2. INT-3577: Remove flush() from TCP Serializers

    garyrussell authored and artembilan committed Feb 27, 2015
    It is no longer necessary to `flush()` the `BufferedOutputStream`.
    Since INT-3575, the `TcpNetConnection` has flushed the stream.
    The `TcpNioConnection` now does so too.
    * Add `id` for the `<section>`s in the `whats-new.xml`
  3. INT-3657: Default MaxMessPerPoll=1 for @InboundCA

    garyrussell authored and artembilan committed Feb 27, 2015
    With XML/DSL, the MMPP defaults to 1 (via the SPCAFB) but
    @InboundChannelAdapter defaulted to -1 (infinity).
    Change the annotation to be consistent with the XML/DSL.
    Add missing schema docs for the `basePollerType`.
    * Fix `AbstractMethodAnnotationPostProcessor` for `maxMessagesPerPollValue` override
    * Change `EnableIntegrationTests#foo()` `@InboundChannelAdapter` to use `maxMessagesPerPoll = "2"`
    and modify appropriate test-case to be sure that `maxMessagesPerPoll` isn't overriden as it has been done in the original commit.
Commits on Feb 27, 2015
  1. Add JDBC SP JavaConfig Test

    garyrussell authored and artembilan committed Feb 25, 2015
    Polishing according Java 6 target style
Commits on Feb 25, 2015
  1. INT-3641: JMX: Lazy Stats

    garyrussell authored and artembilan committed Feb 25, 2015
    Instead of maintaining a moving average on each event, store the events
    for offline analysis.
    Retain 5*window samples - this means that the earlies retained sample
    contributes just 0.5% to the sum. E.g. with a window of 10, the earliest
    sample is 0.9**50 (0.005).
    Also, defer the conversion from nanoseconds to milliseconds to the
    retrieval side.
    Experimentation shows this increases perfomance by approximately 2x.
    Sending 1B messages to nullChannel.
    With Proxy: 1.2M/sec
    Afer proxy removed: 2.4M/sec
    With this change: 5.3M/sec
    INT-3641: Polishing - PR Comments
    JavaDocs polishing
Commits on Feb 23, 2015
  1. INT-3653: JMX: Use System.nanoTime()

    garyrussell authored and artembilan committed Feb 23, 2015
    Simplify the conversion to System.nanoTime()
    Revert Exponential* classes.
Commits on Feb 21, 2015
  1. INT-2230: Fix for Double Global Wire-Taps

    artembilan authored and garyrussell committed Feb 20, 2015
    Previously two global `<wire-tap>`s with the same `id` registered
    two `GlobalChannelInterceptorWrapper` wrappers with generated names
    for the same (last) `WireTap`. Hence the same `Message` has been sent to the the `wire-tap channel` twice (or more).
    Fix the issue with overriding `GlobalChannelInterceptorParser#resolveId` with the `.globalChannelInterceptor` suffix.
    Therefore the last `GlobalChannelInterceptorWrapper` wins overriding all others, if all our `<wire-tap>`s has the same `id`.
    INT-2230: Add `id` to the global `channel-interceptor`
  2. INT-3653: Fix Mean Calculations

    garyrussell authored and artembilan committed Feb 20, 2015
    After moving to nanosecond precision, the mean calculations were incorrect.
    Add test cases to verify correctness.
Commits on Feb 20, 2015
  1. INT-3601: Use `ChannelResolver` instead of BF

    artembilan authored and garyrussell committed Jan 16, 2015
    * Move `setChannelResolver(DestinationResolver<MessageChannel> channelResolver)` to the `IntegrationObjectSupport`
    * Introduce `IntegrationObjectSupport#getChannelResolver()`
    * Change all `IntegrationObjectSupport` inheritors to use `getChannelResolver()` instead of direct `beanFactory` usage
    * Fix `ServiceActivatorEndpointTests` do not fall
    INT-3601: Addressing PR (JIRA) comments
    Fixes failing tests
    INT-3601: Address PR comments
  2. INT-3653: JMX: Add Pluggable Metrics Factory

    garyrussell authored and artembilan committed Feb 20, 2015
    Also switch to using `System.nanoTime()` for deltas.
    INT-3653: Polishing; PR Comments
    INT-3653: Polishing
    * Fix `NullChannel` for the generic type
    * Add `Assert.notNull` for metrics setters and for the result of `MetricsFactory`
    * Fix compile and JavaDocs warnings
Commits on Feb 19, 2015
  1. INT-3637: JMX Improvements Msg Sources/Handlers

    garyrussell authored and artembilan committed Feb 19, 2015
    - Message Sources
    - Message Handlers
    Polishing; Final Review and PR Comments
    - avoid second call to System.currentTimeMillis()
    - fix elapsed time in handler metrics
    - expose TrackableComponent when available
    INT-3637: Add @IntergrationManagedResource
    Prevents beans (channels, etc), which were previously picked
    up via a proxy, from being exported by a standard context
    I looked at completely eliminating the MBeanExporterHelper,
    which suppresses o.s.integration beans from being exported by
    a standard MBeanExporter when there is an IMBE present, but I feel
    this is too much of a breaking change. There are a number of
    standard beans (such as WireTap) that are @ManagedResources and
    these would disappear for users that don't have an IMBE.
    That said, such beans previously disappear completely when there
    *is* an IMBE so now they are now annotated with both so that
    they are exported by at most one of the exporters.
    Polishing; Use MBE.addExludedBean instead of DFA
    INT-3639: JMX (AMQP/JMS) Channel Stats
    Module channels inherit `ChannelSendMetrics`; add
    `PollableChannelManagement` for polled channels.
    INT-3638: JMX Initial Stats/Counts Settings
    Add the ability to specify the initial settings for
    'enableStats' and 'enableCounts' for MBeans that
    support those statistics.
    Polishing; PR Comments; Add Handler Metrics Test
    Also found a problem using an inner MessageSource bean in an
    inbound-channel-adapter - a BeanComponentDefinition was returned
    instead of a BeanDefinition.
    Add @DirtiesContext to JMX Tests
    The new MonitorTests failed with InstanceAlreadyExistsException for the
    Add @DirtiesContext to all tests using the Spring test runner to avoid caching any
    contexts after the test class completes.
    INT-3637: JMX Support Negated Name Match Patterns
    Note: with negated matches, order matters.
    Polishing for `MonitorTests`
    Fix `EnableIntegrationMBeanExport` JavaDocs
  2. INT-3650: Fix TCP Caching Factory Configuration

    garyrussell authored and artembilan committed Feb 18, 2015
    Don't propagate `setSingleUse` to the target factory.
    * Polishing for code style
    * Fix `CachingClientConnectionFactory#equals`
Commits on Feb 18, 2015
  1. INT-3614 Fix `extractPayload` for JMS i-c-adapter

    artembilan authored and garyrussell committed Jan 16, 2015
    The `extractPayload` is present in the namespace support for `<int-jms:inbound-channel-adapter>`,
    but nor `JmsInboundChannelAdapterParser`, neither `JmsDestinationPollingSource` take care of that value.
    To be consistent with `<int-jms:message-driven-channel-adapter>` and documentation, introduce that option for
    `JmsDestinationPollingSource` and populate it from the `JmsInboundChannelAdapterParser`.
  2. INT-3646: Add TCP Server Exception Events

    garyrussell authored and artembilan committed Feb 18, 2015
    Publish `TcpConnectionServerExceptionEvent`s when unexpected
    exceptions occur on server sockets.
    INT-3646: Polishing
    Fix Reactor tests
Commits on Feb 17, 2015
  1. INT-3589: Upgrade Dependencies

    artembilan authored and garyrussell committed Feb 17, 2015
    * SF - 4.2. Fix Breaking changes for the `ApplicationEventPublisher`
    * AMQP 1.5. Without issues
    * Reactor - 2.0. Fix for the new `Stream` foundation
    * jsonPath - 1.2.0. Fix for new `Predicate` abstraction. Add 'fail-fast error' to the `IntegrationRegistrar`
    * Sshd - 0.13.0. Fix for new `VirtualFileSystemFactory` usage
    * Spring Data - Fowler
    * And others without issues
    * Get rid of `reactor.util.StringUtils` usage
    INT-3589: Address PR comments
  2. INT-3636: JMX Eliminate Channel Metric Proxies

    garyrussell authored and artembilan committed Feb 17, 2015
    - Add `enableStats()` managed operation
    - Delegate to a channel metrics object instead of using a proxy
    INT-3636: Polishing; PR Comments
    Change field name in `MBeanExporterHelper`.
    INT-3636: Polishing
Commits on Feb 16, 2015
  1. INT-3629: Upgrade to Gradle `2.3`

    ghillert authored and artembilan committed Feb 16, 2015
    Fix Sonar Build
    `build.gradle` polishing
Commits on Feb 15, 2015
  1. Fix Redis Delayer Test

    garyrussell committed Feb 15, 2015
    Perhaps a race in Redis; add delay.
    Also add a delay between sends so the delays are scheduled in order.