Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Branch: master
Commits on Jun 24, 2015
  1. @artembilan @garyrussell

    INT-3749: Get rid of `IECA` logic

    artembilan authored garyrussell committed
    JIRA: https://jira.spring.io/browse/INT-3749
    
    Since `IntegrationEvaluationContextAware` isn't so "context-free" resource like `BeanFactory`
     and `ApplicationContext`, but just a specific bean in the context, we can't follow with `BeanPostProcessor` logic - bad architecture by level of responsibility.
     Therefore we should follow with standard Dependency Injection mechanism to retrieve `evaluationContext` for the particular component.
    
     Since we can't rely on the `@Autowired` because SI can be used from the raw XML configuration,
     we use utility method instead. The pattern to get the proper `integrationEvaluationContext` is:
     ```
     @Override
     protected void onInit() throws Exception {
     		super.onInit();
     		this.evaluationContext = ExpressionUtils.createStandardEvaluationContext(getBeanFactory());
     }
     ```
  2. @artembilan
  3. @garyrussell @artembilan

    INT-3616: Zookeeper LockRegistry

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3616
    
    Zookeeper implementation of `LockRegistry`, for example to support
    clustered aggregators (when using external message group stores).
    
    INT-3616: Polishing; PR Comments
Commits on Jun 23, 2015
  1. @garyrussell @artembilan

    INT-3654: Rework TCP Connection Close

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3654
    
    Previously, single-use `TcpConnections` self-closed when their use was complete.
    This is unnatural and caused issues such as INT-3722.
    
    Remove the self-closing behavior; connection close is now (properly) the responsibility
    of the client using the connection:
    
    - Client Side:
    -- `TcpOutboundGateway` after the reply is received
    -- `TcpSendingMessageHandler` after the send, when there is no collaborating inbound adapter
    -- `TcpReceivingChannelAdapter` when it is collaborating (after receiving the reply)
    
    - Server Side:
    -- `TcpInboundGateway` after the reply is sent
    -- `TcpReceivingChannelAdapter` after the receive, when there is no collaborating outbound adapter
    -- `TcpSendingMessageHandler` when it is colllaborating (after sending the reply)
    
    As before, the `CachingClientConnectionFactory` always sets single use on the target factory
    to force it to create new connections on demand. It is always a single-use factory itself
    so the clients return the connections to the pool (via `close()`).
    
    __Needs a migration guide entry__
    
    INT-3654: Fix Late Listener Registration
    
    Timing failures in `TcpOutboundGatewayTests.testFailoverCached()` (null listener).
    
    The `FailoverClientConnectionFactory` registers its listener with the actual
    connections it retrieves from a delegate.
    
    When nesting failover and cached connection factories, we need to propagate the
    `enableManualListenerRegistration` to the delegate factories so the connection
    will wait for its listener to be registered.
  2. @heyjustin @artembilan

    Fix minor typo in Docs

    heyjustin authored artembilan committed
  3. @garyrussell @artembilan

    INT-3642: Improve MessageGroupStore Removal

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3642
    
    Currently, `removeMessageFromGroup` rebuilds the group on every removal.
    
    In every case where this method is used in the framework, the result is not used.
    
    Add `removeMessagesFromGroup` that removes a collection of messages and returns no result.
    
    INT-3642: Polishing - PR Comments
    
    INT-3642: Polishing and Fix Group Metadata Size
  4. @garyrussell @artembilan

    INT-3751: Fix Python Scripting

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3751
    
    Result was null when `executeScript()` was invoked with non-null variables.
    
    When variable are provided, the result variable is stored in the provided bindings.
  5. @mbogoevici @artembilan

    Zookeeper: use a single ZK instance in tests

    mbogoevici authored artembilan committed
Commits on Jun 19, 2015
  1. @mbogoevici @artembilan

    INT-3748: BridgeHandler: don't copy headers

    mbogoevici authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3748
    
    - override `shouldCopyRequestHeaders` to return false;
    - modify existing tests (not specific to `BridgeHandler`) that rely on the fact that `BridgeHandler` copies headers and creates a new message instance to use a custom test handler with the expected behaviour;
    
    INT-3748 Polishing
    
    - moved test RequestHeaderCopyingMessageHandler
    - updated author tags and copyrights
  2. @garyrussell @artembilan

    INT-3745: More TCP Events (Failed Correlation)

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3745
    
    Emit events whenever a message is received that can't be correlated to
    a connection (or request in the case of an outbound gateway).
    
    Also, when sending messages, wrap the exception in a `MessagingException` so that
    the `TcpConnectionExceptionEvent` provides access to the failed message.
    
    INT-3745: Polishing - PR Comments
    
    Fix JavaDocs errors
  3. @garyrussell @artembilan

    INT-3737: (S)FTP Outbound Gateway Streaming GET

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3737
    
    Support returning an `InputStream` from a GET operation.
    
    This can be used in conjuction with a `<file:splitter/>` to stream a text file.
    
    The user is responsible for releasing the session when the download is complete.
    
    The session object is stored in the message header and `RemoteFileUtils.closeSession()` should be called
    to clean up and close the session.
    
    INT-3737: Polishing and Docs
    
    Fix `CachedSession.close()` bug
    
    Preventing `Caused by: java.io.IOException: Previous raw read was not finalized`
    when `Session` is returned to the pool, but `readingRaw` hasn't been finalized
    because the real `close()` isn't invoked in case of normal return to pool.
Commits on Jun 18, 2015
  1. @garyrussell @artembilan

    INT-3724: Gateway - Support CompletableFuture

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3724
    
    Add support for `CompletableFuture<?>` return types on gateway methods, if JDK8 is being used.
    
    - If the return type is exactly `CompletableFuture` and an async executor is provided, use `CompletableFuture.supplyAsync()`
    - If there is no return async executor, return types can be `CompletableFuture` or a subclass and the flow can return such a future.
    
    - Also fixes a problem for return type `Future<Message<?>>` with no async executor; previously this caused a `ClassCastException`
       because the gateway returned the message - it assumed such return types would always run on an excutor.
    
    We can consider back-porting this last part, but nobody has complained.
    
    CompletableFuture Docs
    
    Fix typos, polishing for JavaDocs and some code style polishing
  2. @garyrussell @artembilan

    INT-4740: FileSplitter - Add Headers

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3740
    
    For `File` and `String` payloads add `FileHeaders.ORIGINAL_FILE` and `FileHeaders.FILENAME` headers.
    
    Reworked to create headers once only.
    
    Fix typos and Java > 6  API usage
  3. @garyrussell @artembilan

    INT-3600: FileSplitter Namespace and Docs

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3600
    
    Add `<int-file:splitter/>` namespace component.
    Add `FileSplitter` documentation.
    
    Polishing
  4. @artembilan

    INT-3659: InputStream support in FileWritingMH

    authored artembilan committed
    https://jira.spring.io/browse/INT-3659
    
    Add `InputStream` `payload` handling to the `FileWritingMessageHandler`
Commits on Jun 17, 2015
  1. @garyrussell

    INT-3739: FileSplitter - Add LineCount to EOF Mark

    garyrussell authored
    JIRA: https://jira.spring.io/browse/INT-3739
    
    Since iterating splitters don't have a sequence size, it would be useful to
    include a line count in the EOF marker, to facilitate some downstream process
    knowing that all lines have been processed, in a multi-threaded situation.
  2. @garyrussell @artembilan

    INT-3738: Fix FileSplitter

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3738
    
    Don't rely on `BufferedReader.ready()` to detect EOF.
    
    Polishing FileSplitter Fix
  3. @garyrussell @artembilan
  4. @garyrussell @artembilan

    INT-3744: Fix IMAPMessage receivedDate

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3744
    
    MimeMessages are copied to eagerly fetch IMAP messages, this process loses
    the `receivedDate` property.
    
    Keep a reference to the source Message and delegate to its `receiveDate()`.
    
    Cover more "void" getters
  5. @garyrussell @artembilan

    INT-3742: spring-data-gemfire 1.7 Compatibility

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3742
    
    Deprecate the message store ctor that takes a `Cache` argument.
  6. @mbogoevici @garyrussell

    INT-3691 Add ZookeeperMetadataStore

    mbogoevici authored garyrussell committed
    JIRA: https://jira.spring.io/browse/INT-3691
    
    - create new core interfaces `ListenableMetadataStore` and `MessageStoreListener`;
    - create new module `spring-integration-zookeeper`;
    - add `ZookeeperMetadataStore` implementation
    
    Polishing
    
    Polishing
    
    - moved classes into core/test where necessary, including conversion methods
    - properly renamed `MetadataStoreListenerAdapter`
Commits on Jun 8, 2015
  1. @garyrussell @artembilan

    INT-3727: FileSplitter - add SOF/EOF Capability

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3727
    
    Add a configuration option such that the `FileSplitter` can emit
    Start/End messages when splitting.
    
    Polishing according PR comments
    
    Add toString to FileMarker
  2. @garyrussell @artembilan

    INT-3730: TCP Expose SSLSession for Header Mapping

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3730
    
    Expose the `SSLSession` on `TcpConnection` to support custom header
    mapping of properties from the session.
  3. @artembilan
Commits on Jun 6, 2015
  1. @garyrussell @artembilan

    INT-3728: TCP: Fix Early Receive with Caching CCF

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/INT-3728
    
    The `CachingClientConnectionFactory` uses a temporary (rejecting) listener until
    the connection is established and then replaces the listener in the connection.
    
    There is a race condition in that if the server starts sending messages before the
    listener is replaced, the message is rejected.
    
    Add a mechanism to delay `onMessage` calls until the real listener has been
    registered.
    
    Also fix `onMessage` in the cached connection so an `ErrorMessage` is propagated correctly.
    
    To reproduce: revert src/main; add `Thread.sleep(1000)` before `registerListener(tcpListener);`
    in `CachedConnection` ctor and run the new test.
    
    To introduce a similar timing hole with the new code, add the sleep before
    `this.theConnection.registerListener(this);` in `TcpConnectionInterceptorSupport`.
    
    Summary of changes:
    
    `CachingClientConnectionFactory`
    - register the underlying connection's listener in the ctor, utilizing the
        `TcpConnectionInterceptorSupport.registerListener()` method.
    - fix `ErrorMessage` propagation.
    
    `AbstractClientConnectionFactory`
    - propagate the `enableManualListenerRegistration` to connections.
    
    `TcpConnectionSuport`
    - implement delay when manual listener registration is enabled.
    
    Add test case.
    
    Fix Failover Tests
    
    `FailoverClientConnectionFactory`
    - propagate enable manual listener registration to underlying factories
    
    Polishing
Commits on Jun 2, 2015
  1. @garyrussell @artembilan

    JMX Doc Polishing

    garyrussell authored artembilan committed
Commits on Jun 1, 2015
  1. @garyrussell

    Fix RedisInboundChannelAdapterTests Race Condition

    garyrussell authored
    Instead of waiting for a hard 1 second, intelligently wait
    until the container is subscribed by sending/receiving a test message.
    
    Also reduces the test run time from 20s to 200ms locally.
  2. @artembilan @garyrussell

    INT-3723: Fix HTTP Module for Recent SF Changes

    artembilan authored garyrussell committed
    JIRA: https://jira.spring.io/browse/INT-3723
    
    Since `RequestMappingHandlerMapping` has reverted to `@RequestMapping` parsing,
    restore the previous logic with `@RequestMapping` generation in the `IntegrationRequestMappingHandlerMapping`
    
    Use `AnnotationUtils.synthesizeAnnotation` instead of direct annotation creation through the inline impl
Commits on May 27, 2015
  1. @spring-buildmaster
  2. @spring-buildmaster
  3. @artembilan

    Fix STOMP subscription race condition

    artembilan authored
    Even if we receive a SUBSCRIBE event, it doesn't that the subscription has been registered.
     So, fix the test to wait for the real subscription.
  4. @garyrussell

    INT-3722: Additional Fix: TCP OG with Caching CF

    garyrussell authored
    JIRA: https://jira.spring.io/browse/INT-3722
    
    While the initial fix solved the reported problem, it caused a memory leak when
    the gateway completed its work before the reader thread "closed" the connection,
    releasing it to the pool. This left the connection in the deferred close state.
    
    Handle the condition where the gateway signals it has completed its work
    before the connection is released to the pool.
  5. @garyrussell

    Fix TCP Gateway Integration Test

    garyrussell authored
    Definitively wait for the connection to be returned instead of a simple sleep.
Commits on May 26, 2015
  1. @garyrussell

    INT-3722: Fix Timing Issue TCP OG and Cached CF

    garyrussell authored
    JIRA: https://jira.spring.io/browse/INT-3722
    
    The TCP outbound gateway correlates replies based on the connection id.
    
    When a `CachingClientConnectionFactory` is being used, the connection is
    returned to the pool too early, and can be reused. It is possible that
    the current thread then removes the "next" pending reply from the correlation map.
    
    Add code to the `CachingClientConnectionFactory` so that the "self" close from the
    connection (called after `onMessage`) is deferred and the actual close (return to cache)
    is controlled by the gateway itself.
    
    This mechanism will no longer be needed when INT-3654 is resolved (removal of the "self"
    closing by connections). At that time, connection users (such as the gateway) will be
    in complete control.
  2. @garyrussell
Something went wrong with that request. Please try again.