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
    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
    - 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
    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
    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
    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.
Commits on Dec 12, 2017
  1. AMQP-790: Fix after receive MPPs with send/receive

    garyrussell authored and artembilan committed Dec 5, 2017
    Previously, `afterReceivePostProcessors` were not called on `sendAndReceive()`
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
    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
    * 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
    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
    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
    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
    **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
    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
    `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
    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.' +}` can be replaced
    with the `foo.#{}`
Commits on Oct 4, 2017