Skip to content
Commits on Mar 20, 2015
  1. @artembilan @garyrussell

    INT-3672: Fix IdempotentReceiver for MH `@Bean`s

    artembilan committed with garyrussell
    JIRA: https://jira.spring.io/browse/INT-3672
    
    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. @garyrussell @artembilan

    INT-3197: Docs to AsciiDoc from DocBook

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3197
    
    Polishing
    
    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
    
    asciidoctor/asciidoctor#1297
    
    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. @garyrussell @artembilan

    INT-3680: Fix JMS Durable Subscription Name

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3680
    
    Change parser to use the `setSubscriptionName` setter instead
    of `setDurableSubscriptionName` which as the side effect of
    unconditionally setting the subscription as durable.
  2. @garyrussell @artembilan

    INT-3633: Add MessageSourceAdvice

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3633
    
    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. @artembilan @garyrussell

    INT-3664: Rework BPP in the `IntMBExporter`

    artembilan committed with garyrussell
    JIRA: https://jira.spring.io/browse/INT-3664
    
    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. @garyrussell

    INT-3656: Restore PreSend Log; Avoid Access Method

    garyrussell committed
    JIRA: https://jira.spring.io/browse/INT-3656
    
    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
  2. @garyrussell @artembilan
Commits on Mar 4, 2015
  1. @garyrussell
  2. @garyrussell @artembilan

    INT-3670: JMS Conversion Error Handling

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3670
    
    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. @artembilan @garyrussell

    INT-3655: Remove Reactor `Function` Usage

    artembilan committed with garyrussell
    JIRA: https://jira.spring.io/browse/INT-3655
    
    In addition, change `GatewayProxyFactoryBean` to the logic to ensure that the Reactor is really `optional`
    
    INT-3655: Doc Polishing
  2. @artembilan

    INT-3669: Fix `DelayHandler` for the `Date` delay

    artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3669
    
    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**
  3. @artembilan
Commits on Mar 2, 2015
  1. @artembilan @garyrussell

    INT-3661: Fix the eager BF access from BPPs (P I)

    artembilan committed with garyrussell
    JIRA: https://jira.spring.io/browse/INT-3661
    
    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` - https://jira.spring.io/browse/INT-3663)
    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 `log.info` 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. @garyrussell @artembilan

    INT-3651: JMX Improvements Documentation

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3651
    
    - 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. @garyrussell @artembilan

    INT-3635: TCP GW: Add remoteTimeoutExpression

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3635
    
    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`: https://build.spring.io/browse/INT-B41-JOB1-233
Commits on Feb 28, 2015
  1. @garyrussell @artembilan

    INT-3628: Use SchedulingAwareRunner for Long Tasks

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3628
    
    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. @garyrussell @artembilan

    INT-3577: Remove flush() from TCP Serializers

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3577
    
    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. @garyrussell @artembilan

    INT-3657: Default MaxMessPerPoll=1 for @InboundCA

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3657
    
    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. @garyrussell @artembilan

    Add JDBC SP JavaConfig Test

    garyrussell committed with artembilan
    Polishing according Java 6 target style
Commits on Feb 25, 2015
  1. @garyrussell @artembilan

    INT-3641: JMX: Lazy Stats

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3641
    
    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. @artembilan
  2. @garyrussell @artembilan

    INT-3653: JMX: Use System.nanoTime()

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3653
    
    Simplify the conversion to System.nanoTime()
    
    Revert Exponential* classes.
Commits on Feb 21, 2015
  1. @artembilan @garyrussell

    INT-2230: Fix for Double Global Wire-Taps

    artembilan committed with garyrussell
    JIRA: https://jira.spring.io/browse/INT-2230
    
    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`
    
    Polishing
  2. @garyrussell @artembilan

    INT-3653: Fix Mean Calculations

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3653
    
    After moving to nanosecond precision, the mean calculations were incorrect.
    
    Add test cases to verify correctness.
Commits on Feb 20, 2015
  1. @artembilan @garyrussell

    INT-3601: Use `ChannelResolver` instead of BF

    artembilan committed with garyrussell
    JIRA: https://jira.spring.io/browse/INT-3601
    
    * 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. @garyrussell @artembilan

    INT-3653: JMX: Add Pluggable Metrics Factory

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3653
    
    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. @garyrussell @artembilan
  2. @garyrussell @artembilan

    INT-3637: JMX Improvements Msg Sources/Handlers

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3637
    
    - 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
    MBeanExporter.
    
    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
    
    JIRA: https://jira.spring.io/browse/INT-3639
    
    Module channels inherit `ChannelSendMetrics`; add
    `PollableChannelManagement` for polled channels.
    
    INT-3638: JMX Initial Stats/Counts Settings
    
    JIRA: https://jira.spring.io/browse/INT-3638
    
    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
    errorChannel.
    
    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
  3. @garyrussell @artembilan

    INT-3650: Fix TCP Caching Factory Configuration

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3650
    
    Don't propagate `setSingleUse` to the target factory.
    
    * Polishing for code style
    * Fix `CachingClientConnectionFactory#equals`
Commits on Feb 18, 2015
  1. @artembilan @garyrussell

    INT-3614 Fix `extractPayload` for JMS i-c-adapter

    artembilan committed with garyrussell
    JIRA: https://jira.spring.io/browse/INT-3614
    
    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. @garyrussell @artembilan

    INT-3646: Add TCP Server Exception Events

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3646
    
    Publish `TcpConnectionServerExceptionEvent`s when unexpected
    exceptions occur on server sockets.
    
    INT-3646: Polishing
    Fix Reactor tests
Commits on Feb 17, 2015
  1. @artembilan @garyrussell

    INT-3589: Upgrade Dependencies

    artembilan committed with garyrussell
    JIRA: https://jira.spring.io/browse/INT-3589, https://jira.spring.io/browse/INT-3624
    
    * 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
    
    Polishing
  2. @garyrussell @artembilan

    INT-3636: JMX Eliminate Channel Metric Proxies

    garyrussell committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3636
    
    - 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. @ghillert @artembilan

    INT-3629: Upgrade to Gradle `2.3`

    ghillert committed with artembilan
    JIRA: https://jira.spring.io/browse/INT-3629
    
    Fix Sonar Build
    `build.gradle` polishing
Commits on Feb 15, 2015
  1. @garyrussell

    Fix Redis Delayer Test

    garyrussell committed
    https://build.spring.io/browse/INT-MJATS41-JOB1-238/test/case/155714247
    
    Perhaps a race in Redis; add delay.
    
    Also add a delay between sends so the delays are scheduled in order.
Something went wrong with that request. Please try again.