Permalink
Switch branches/tags
Commits on Feb 1, 2018
Commits on Jan 28, 2018
Commits on Jan 24, 2018
Commits on Jan 23, 2018
  1. AMQP-796: Fix Admin Transaction

    garyrussell authored and artembilan committed Jan 23, 2018
    JIRA: https://jira.spring.io/browse/AMQP-796
    
    If an admin uses a transactional `RabbitTemplate` it will start a transaction.
    If the connection was opened due to a `RabbitTemplate` operation it should participate
    in the same transaction.
    Previously, the template used a second channel and treated it as a local transaction.
    
    Also fix the `RabbitAdmin` so it does no work if there is nothing to declare.
Commits on Jan 17, 2018
  1. GH-703: DLC.adjustConsumers: Fix remove algorithm

    artembilan authored and garyrussell committed Jan 17, 2018
    Fixes spring-projects#703
    
    When we adjust consumers down by more than 1 instance we end up with the
    `IndexOutOfBoundsException` because we perform removal by the
    calculated index.
    
    * Change algorithm to remove only from `0` index.
    In the end it doesn't matter which consumers remain in the container
Commits on Jan 16, 2018
  1. Improve Test Run Times

    garyrussell authored and artembilan committed Jan 16, 2018
    - Reduce container `receiveTimeout` so containers stop faster
    - Remove unnecessary `Thread.sleep()`s
    
    Reduced runtime from 5'26'' to 3'11'' on my machine.
Commits on Jan 8, 2018
Commits on Jan 2, 2018
  1. Doc Copyright 2018

    garyrussell committed Jan 2, 2018
Commits on Dec 26, 2017
  1. Fix Race in DMLC Events test

    garyrussell committed Dec 26, 2017
    ConsumeOkEvent introduced a race condition into the test.
Commits on Dec 21, 2017
  1. Fix JUnit dependencies

    garyrussell authored and artembilan committed Dec 21, 2017
    - eliminate the `platform-commons` dependency
    - make the `jupiter-api` dependency optional
Commits on Dec 20, 2017
  1. AMQP-791: Support JUnit5

    garyrussell authored and artembilan committed Dec 20, 2017
    JIRA: https://jira.spring.io/browse/AMQP-791
    
    - refactor `BrokerRunning` JUnit4 `@Rule` so it can be invoked from an `ExecutionCondition`.
    - Add `@RabbitAvailable` annotation with queue list and auto-delete queues at the end of the class; purge them between tests.
    
    * Implement `ParameterResolver` to access the rule's connection factory.
    
    * Support CTOR Injection and `BrokerRunning` Injection
    
    - user might want to invoke methods such as `deleteQueues()`.
    
    * Patches omitted from previous commit
    
    * WIP - Spring
    
    * Polishing - PR Comments
    
    * Convert `RabbitTemplateMPPIntegrationTests` - JUnit5
    
    * Remove bogus test
    
    * Docs + `@LongRunning`
    
    * Polishing - PR Comments
  2. Bump HOP Version to 1.3.1.RELEASE

    garyrussell committed Dec 20, 2017
    Fixes a content-type problem when running with a 3.7 broker.
Commits on Dec 19, 2017
  1. AMQP-793: Exception on ack for closed Channel

    garyrussell authored and artembilan committed Dec 19, 2017
    JIRA: https://jira.spring.io/browse/AMQP-793
    
    Throw an exception to the caller when attempting to ack/nack a
    message on a closed channel.
Commits on Dec 18, 2017
  1. AMQP-794: CRErrorHandler: Traverse cause tree

    garyrussell authored and artembilan committed Dec 18, 2017
    JIRA: https://jira.spring.io/browse/AMQP-794
    
    In the `ConditionalRejectingErrorHandleri.DefaultExceptionStrategy`,
    if the `cause` of the `ListenerExecutionFailedException` is a `MessagingException`,
    traverse the `cause` tree to find the root cause of all such exceptions unless
    it's a fatal cause itself (`MethodArgumentResolutionException` or `MessageConversionException`).
    The final fatal check is performed on the root cause.
  2. AMQP-788 Add delegate publisher connection factory

    garyrussell authored and artembilan committed Dec 13, 2017
    JIRA: https://jira.spring.io/browse/AMQP-788
    
    To avoid deadlocks, it is best to use a different connection for producers and
    consumers (unless the producer is partiticipating in a consumer transaction).
    
    - Add a delegate `publisherConnectionFactory` to the `CachingConnecetionFactory`.
    - Use the same underlying `com.rabbitmq.client.ConnectionFactory` in each.
    - Propagate all properties to the delegate.
     - Except, enhance the connection name and bean name with `.publisher`.
    - Add a boolean `usePublisherConnection` to the `RabbitTemplate`.
     - If true, use `createPublisherConnection()` when appropriate.
    
    Polishing - PR Comments
    
    Polishing - More PR Comments and Fix doSendAndReceiveWithDirect() to use the publishing CF.
    
    More polishing; tests + reinstate overloaded execute().
    
    Fix (old) race condition in testReceiveAndReplyNonBlocking.
    
    https://travis-ci.org/spring-projects/spring-amqp/builds/317052188?utm_source=github_status&utm_medium=notification
    
    Polishing
    
    Docs
Commits on Dec 12, 2017
  1. AMQP-790: Fix after receive MPPs with send/receive

    garyrussell authored and artembilan committed Dec 5, 2017
    JIRA: https://jira.spring.io/browse/AMQP-790
    
    Previously, `afterReceivePostProcessors` were not called on `sendAndReceive()`
    operations.
Commits on Dec 1, 2017
  1. More Sonar Polishing

    garyrussell committed Dec 1, 2017
    False positive is not only false; it's reported on the wrong line.
Commits on Nov 28, 2017
Commits on Nov 27, 2017
  1. AMQP-785: SMLC Lifecycle fixes

    garyrussell authored and artembilan committed Nov 21, 2017
    JIRA: https://jira.spring.io/browse/AMQP-785
    
    Fixes: spring-projects/spring-amqp#689
    
    - Only stop the container on one thread
    - Ignore concurrent stops
    - Interrupt consumer threads that are attempting to declare queues
    - In `restart()` don't start a new consumer if the container is stopping
    - Defer publishing consumer failure events until container is stopped
    - Add a RecoveryListener if needed to ensure channels are never recovered
    - Fix event publishing for `Error` - it is fatal
    
    __backport to 1.7.x will require work__
    
    Clear the declaring flag when exiting `start()` with exception.
    
    Release the `activeObjectCounter` when interrupted while declaring.
    
    Polishing stopped container lifecycle
    
    Since restarted consumer is not be aware about stopped container,
    it can restart properly when RabbitMQ comes back on-line independently
    of the container state
    
    * Add `active` flag to the `ActiveObjectCounter` and `deactivate()`
    and `isActive()` hooks
    * Use `ActiveObjectCounter.deactivate()` in the container shutdown
    * Use `ActiveObjectCounter.isActive()` in the
    `BlockingQueueConsumer.cancelled()`
    * Use `BlockingQueueConsumer.cancelled()` in its `start()` toi check
    container activity before performing network job
    * Check `isActive()` state in the `AbstractMessageListenerContainer.shutdown()`
    * Remove `SimpleMessageListenerContainer.containerStopping` in favor of
    `isActive()` hook
    
    * Upgrade to SF-5.0.2, Retry-1.2.1, Mockito-2.11.0
Commits on Nov 18, 2017
  1. Fix Event Test

    garyrussell committed Nov 18, 2017
    https://build.spring.io/browse/AMQP-MEIGHT-1247/
    
    Previous commit added more events but the test latch wasn't adjusted to suit.
Commits on Nov 17, 2017
  1. AMQP-776: More Consumer Events

    garyrussell authored and artembilan committed Nov 17, 2017
    JIRA: https://jira.spring.io/browse/AMQP-776
    JIRA: https://jira.spring.io/browse/AMQP-777
    JIRA: https://jira.spring.io/browse/AMQP-782
    
    Publish an event when a consumer successfully consumes from a queue.
    Publish an event when an SMLC listener throws an `Error`.
    Doc polishing.
    
    Update minimum client version in docs; remove reference to broker version
    since that's no longer linked to the client.
    
    __cherry-pick to 1.7.x (minus DMLC change)__
  2. AMQP-784: Fix multi method @RabbitListener

    garyrussell authored and artembilan committed Nov 17, 2017
    JIRA: https://jira.spring.io/browse/AMQP-784
    
    When looking for matching methods, we matched on no annotation or @Payload.
    
    Match should have been no annotation(s) or not @Header.
    
    __cherry-pick to 1.7.x__
Commits on Nov 16, 2017
  1. AMQP-783: Allow blank key/trust store passwords

    zadeluca authored and artembilan committed Nov 15, 2017
    JIRA: https://jira.spring.io/browse/AMQP-783
    
    **Cherry-pick to 1.7.x**
Commits on Nov 9, 2017
  1. AMQP-780: Configurable consumer start timeout

    garyrussell authored and artembilan committed Nov 9, 2017
    JIRA: https://jira.spring.io/browse/AMQP-780
    
    Log an error if a consumer doesn't start within the timeout; make the timeout configurable.
    
    This can happen if the task executor doesn't have enough threads to support the concurrency.
    
    __cherry-pick to 1.7.x__
Commits on Nov 8, 2017
  1. AMQP-763: Allow custom queue for AmqpAppenders

    Monofraps authored and artembilan committed Nov 1, 2017
    JIRA: https://jira.spring.io/browse/AMQP-763
    
    `AmqpAppender`s for Logback and Log4j2 now support custom queue
    implementations allowing fine grained queueing behaviour control
    
    * Polishing code style
Commits on Nov 6, 2017
  1. AMQP-779: User correlationId with reply container

    garyrussell authored and artembilan committed Nov 6, 2017
    JIRA: https://jira.spring.io/browse/AMQP-779
    
    Allow the use of a user-supplied `correlationId` instead of one
    generated by the `RabbitTemplate`.
    
    It is the user's responsibility to ensure uniqueness.
    
    * Docs
Commits on Oct 31, 2017
  1. Log Connection Attempts

    garyrussell authored and artembilan committed Oct 31, 2017
    In many complex environments e.g. boot properties, cloud connectors, 
    environment overrides etc. it can be difficult to debug connection problems.
    
    Add INFO logs with configured broker address(es) before connecting.
    
    __cherry-pick to 1.7.x__
    
    * Fix tests - additional interactions with mocks for log messages.
  2. Fix `AsyncRabbitTemplate.stop()` for NPE

    artembilan authored and garyrussell committed Oct 25, 2017
    The `this.taskScheduler` reset is done outside of the
    `if (this.running) {` block causing NPE on the second `stop()` call
    
    **Cherry-pick to 1.7.x & 1.6.x**
Commits on Oct 9, 2017
  1. GH-672: Fix SpEL parsing for @RabbitListener

    artembilan authored and garyrussell committed Oct 3, 2017
    Fixes spring-projects/spring-amqp#672
    
    The `StandardBeanExpressionResolver` is based on the
    `TemplateAwareExpressionParser` which can parse any string to the
    `LiteralExpression` or to the `CompositeStringExpression` if
    template tokens (`#{` & `}`) are present in the source expression.
    This way we don't need to deal with literal concatenations within
    templated expression.
    The expression like `#{'foo.' + myBean.bar}` can be replaced
    with the `foo.#{myBean.bar}`
Commits on Oct 4, 2017