Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Apr 22, 2015
  1. @garyrussell @artembilan

    AMQP-490: Suppress ERROR on Normal Close

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/AMQP-490
    
    Currently, we suppress the error log if the channel is closed normally.
    However, we should also suppress if the channel is closed because the connection
    is closed normally.
  2. @garyrussell @artembilan

    AMQP-462: Batching and Compression Docs

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/AMQP-462
    
    - Batching
    - Compression
Commits on Apr 9, 2015
  1. @garyrussell @artembilan

    AMQP-489: Enhanced RepublishMessageRecoverer

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/AMQP-489
    
    Support the addition of other headers to the republished message.
Commits on Apr 7, 2015
  1. @panchenko
Commits on Apr 3, 2015
  1. @garyrussell @artembilan

    Add "Real" Routing Connection Factory Test

    garyrussell authored artembilan committed
  2. @garyrussell

    AMQP-467: INFO Log When Connection is Opened

    garyrussell authored
    JIRA: https://jira.spring.io/browse/AMQP-467
    
    Log at INFO level when a new connection is established; useful
    when recovering a connection after a broker loss.
  3. @artembilan @garyrussell

    AMQP-487: Fix NPE in the CachingConnectionFactory

    artembilan authored garyrussell committed
    JIRA: https://jira.spring.io/browse/AMQP-487
    
    The `ChannelProxy.target` can be closed externally in between several `close` operations on the proxy.
    The second `close()` caused an NPE before this fix.
    In addition the closed `ChannelProxy` may be returned from the cache. Prevent NPE on the `target.close()` operation.
    
    **Cherry-pick to 1.4.x**
Commits on Mar 19, 2015
  1. @garyrussell

    AMQP-486: Fix Version in QuickStart

    garyrussell authored
    Enable attribute substitution in the code blocks, per http://asciidoctor.org/docs/user-manual/#applying-substitutions
  2. @garyrussell @artembilan

    AMQP-486 Convert from DocBook to AsciiDoc

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/AMQP-486
    
    Initial Conversion
    
    Sentence-per-Line
    
    Considered best practice; easier to read future diffs.
    
    Polishing
    
    - Add 'Introduction' subsection to sections that have other subsections
    - Clean up container attribute table; use literal formatting on the first column
    
    Polishing
    
    More Polish
    
    Formatting in table
    
    Use `sourceDir = asciidoctor.outputDir` instead of `sourceDir = file("$buildDir/html")` for `reference` task
    
    Add `message-properties-converters` documentation from the latest master.
Commits on Mar 17, 2015
  1. @r1pp3rj4ck @artembilan
Commits on Mar 16, 2015
  1. @garyrussell @artembilan

    AMQP-484: Selectable SSL Algo

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/AMQP-484
    
    (must remain at SSLv3 when backporting to 1.4.x)
    
    Also add overridable method for additional context customization.
    
    AMQP-484: Javadoc Polishing
Commits on Mar 4, 2015
  1. @garyrussell @artembilan

    AMQP-482: Make LongString Limit Configurable

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/AMQP-482
    
    Make the threshold at which `LongString`s are converted as `DataInputStream`s configurable.
    
    Polishing
Commits on Feb 16, 2015
  1. @garyrussell @artembilan
Commits on Feb 10, 2015
  1. @garyrussell

    AMQP-475: Minor Polishing

    garyrussell authored
    JIRA: https://jira.spring.io/browse/AMQP-475
    
    Remove unused variable.
    A couple more //NOSONAR comments.
  2. @garyrussell @artembilan

    AMQP-476: Fix Package Tangle

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/AMQP-476
    
    Although the tangle was exposed by the `BatchingRabbitTemplate`, the
    `RabbitGatewaySupport` was incorrectly referencing the parent package.
    
    Move that class to `core` from `core.support`.
    
    Also fix some additional Sonar violations.
Commits on Feb 9, 2015
  1. @garyrussell

    AMQP-474:Log Appenders appId Replacement Once Only

    garyrussell authored
    JIRA: https://jira.spring.io/browse/AMQP-474
    
    Instead of replacing the placeholder on every log event,
    replace it once during initialization.
    
    Polishing; Restore ampqProps.appId
    
    AMQP-474: Polishing
  2. @garyrussell @artembilan

    AMQP-475: Don't Catch Throwable

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/AMQP-475
    
    * Array Args; Null Checks
       - Copy array args or mark with //NOSONAR when intended
       - Remove unnecessary null checks
    
    * Majors
Commits on Feb 6, 2015
  1. @garyrussell

    AMQP-474: Fix Log Appenders

    garyrussell authored
    JIRA: https://jira.spring.io/browse/AMQP-474
    
    When logs are generated soon after initialization (as is the case for
    the test cases), some log messages could (infrequently) be lost.
    
    This is due to the `EventSender` seeing a `null` `applicationId`, generating
    a routing key:
    
        [null.org.springframework.amqp.rabbit.logback.AmqpAppenderIntegrationTests.DEBUG]
    
    instead of:
    
        [AmqpAppenderTest.org.springframework.amqp.rabbit.logback.AmqpAppenderIntegrationTests.DEBUG]
    
    (in the case of the logback test case).
    
    Since this does not match a binding, the log message is discarded and the test fails.
    
    Since the `applicationId` setter is called before `start()`, on the same thread, the
    only way this can happen is if the `EventSender` runs on a CPU that has a stale
    copy of the `AmqpAppender` in its cache (the applicationId field is not marked `volatile`).
    
    Rather than making all the log variables volatile, synchronized blocks are now
    used during `EventSender` initialization, to ensure the senders see the variable
    values correctly.
Commits on Jan 30, 2015
  1. @artembilan @garyrussell

    AMQP-469 Introduce `Connection#sendAndReceiveRPC`

    artembilan authored garyrussell committed
    JIRA: https://jira.spring.io/browse/AMQP-469
    
    Since `OtpConnection` isn't thread-safe between `sendRPC` and `receiveRPC`, add a new `sendAndReceiveRPC`
    and make its implementation in the `DefaultConnection` as `synchronized`.
    
    Modify `ErlangTemplate` to use that new operation.
    
    Having that even with `SingleConnectionFactory` we don't meet race condition when one thread may receive result of another one.
  2. @garyrussell @artembilan

    AMQP-472: Namespace for Declaration Retries

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/AMQP-472
    
    Add namespace support for consumer queue declaration retry properties.
    
    AMQP-472: Add What's New
  3. @garyrussell @artembilan

    AMQP-472: Recover From Conn. Close During Init

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/AMQP-472
    
    Previously, any `IOException` during passive queue declaration would enter
    declaration retry and eventually throw a `QueuesNotAvailableException`. Whether
    or not that is recoverable depends on the container's `missingQueuesFatal` property.
    
    If the `IOException` is due to a connection close, we should not try to redeclare
    and, further, recovery should be unconditional.
    
    When a queue declaration fails, check if the connection is open and, if not, throw
    an `AmqpIOException`, causing container recovery to begin. If the connection is open
    continue retrying queue declaration as before.
    
    In addition, expose the queue declaration retry properties on the `SimpleMessageListenerContainer`.
    
    AMQP-472: Polishing
    
    Polishing - PR Comments
    
    AMQP-472: Polishing to the last changes
Commits on Jan 29, 2015
  1. @artembilan
Commits on Jan 28, 2015
  1. @artembilan @garyrussell

    AMQP-470 Make `basicQos` IOException non-fatal

    artembilan authored garyrussell committed
    JIRA: https://jira.spring.io/browse/AMQP-470
    
    **Cherry-pick to 1.3.x & 1.4.x**
Commits on Jan 12, 2015
  1. @garyrussell @artembilan

    AMQP-466: Reinstate and Deprecate Constant

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/AMQP-466
    
    Avoid (unlikely, but possible) breaking change.
    
    Deprecate `AddressUtils` altogether.
    Revert the impacted code to use only `message.getMessageProperties().getReplyToAddress()`, where the decoding operation is located now.
Commits on Jan 10, 2015
  1. @garyrussell

    AMQP-466: Move Direct reply-to Decoding to Address

    garyrussell authored
    JIRA: https://jira.spring.io/browse/AMQP-466
    
    1.4.1 introduced direct reply to and reply to address decoding required
    using `AddressUtils`. The code should have been put in the `Address` ctor.
Commits on Jan 8, 2015
  1. @panchenko @garyrussell

    AMQP-447 Ignore empty string passsed to AbstractConnectionFactory.set…

    panchenko authored garyrussell committed
    …Addresses()
    
    updates
  2. @garyrussell

    Add 1.5 Schema

    garyrussell authored
  3. @garyrussell
  4. @spring-buildmaster
  5. @spring-buildmaster
  6. @artembilan @garyrussell
  7. @garyrussell @artembilan
Commits on Jan 5, 2015
  1. @garyrussell

    AMQP-463: Fix Publisher Confirms with JRockit

    garyrussell authored
    JIRA: https://jira.spring.io/browse/AMQP-463
    
    JRockit throws an `IllegalArgumentException` if a
    `TreeMap$Entry` is used after removal via the `Iterator`.
    
    The `PublishSubscribeChannelImpl` uses this technique.
    
    Obtain the entry value before removing the entry.
    
    Add a test to reproduce the problem with the JRockit JVM.
    
    Currently sends 10k messages across 100 threads; also tested
    with 1m messages across 100 threads with no lost confirms.
  2. @garyrussell @artembilan

    AMQP-457: ListenerContainer Provide Consumer Queue

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/AMQP-457
    
    If the listener container is configured to listen to multiple queues,
    it would be useful for the listener to have access to which queue a
    message was received from.
    
    Instead of a collection of consumer tags, maintain a `Map` of consumer
    tags to queue names and populate the message properties with the
    tag and queue name.
    
    In the spring-messaging header mapper, map the properties to headers
    (inbound only).
  3. @garyrussell @artembilan

    AMQP-459: Add Channel Limit Option to CCF

    garyrussell authored artembilan committed
    JIRA: https://jira.spring.io/browse/AMQP-459
    
    Add configuration such that the `channelCacheSize` can be
    considered a limit of how many channels can be created and
    a timeout when requesting a channel.
    
    Polishing
Something went wrong with that request. Please try again.