Permalink
Commits on Jul 19, 2012
  1. Merge pull request #63 from garyrussell/AMQP-252

    * AMQP-252:
      AMQP-252 Remove System.out Call in Json Converter
    Oleg Zhurakousky committed Jul 19, 2012
  2. Merge pull request #61 from garyrussell/AMQP-255

    * AMQP-255:
      AMQP-255 Fix Multi Confirm with > 1 Listener
    Oleg Zhurakousky committed Jul 19, 2012
  3. AMQP-255 Fix Multi Confirm with > 1 Listener

    Rabbit can piggy-back confirms - for example, if seq 1, 2, 3 are
    sent, it is possible to receive ack #3 with 'multiple' set. These
    means 1, 2, and 3 are acked.
    
    This worked fine with just one listener. However, if two or
    more listeners (e.g. rabbit templates) are attached, only the
    listener for ack #3 is notified (regardless of whether all
    the acks belong to it).
    
    The PublisherCallbackChannel maintains two maps: seq-to-listener
    and listener-to-map(seq-to-correlation).
    
    This fixes the problem by first finding all the listeners that
    have pending confirms at or below the sequence number; and then
    uses the second map to send the confirms to the appropriate
    listener.
    
    AMQP-255 Polishing
    
    PR Comments
    garyrussell committed with Oleg Zhurakousky Jul 18, 2012
  4. Merge pull request #62 from garyrussell/AMQP-254

    * AMQP-254:
      AMQP-254 Add MessageId Advice
    Oleg Zhurakousky committed Jul 19, 2012
  5. AMQP-254 Add MessageId Advice

    The RetryInterceptor requires messages to have an Id. It does not
    work in an environent where some messages have an Id and some don't.
    
    This adds an advice to enhance incoming messages with an id if it is
    missing. Such messages cannot participate in the normal retry logic
    (backoff policy etc), but allows 1 retry (until the redelivered
    header is set). For a redelivered message without an Id, that fails,
    the advice throws an AmqpRejectAndDontRequeueException, signaling the
    container to tell the broker to stop delivering the message.
    
    The broker can be configured to forward such messages to the Dead
    Letter Exchange.
    
    Add tests to verify messages with and without Ids use the
    appropriated retry mechanism.
    
    Also adds a RejectAndDontRequeueRecoverer. The default
    MessageRecoverer simply eats the failed message; this recoverer
    throws the message back to the broker enabling DLE/DLQ processing.
    garyrussell committed Jul 19, 2012
  6. Merge pull request #50 from garyrussell/AMQP-249

    * AMQP-249:
      AMQP-249 Fix Hanging Thread/Unacked Messages
    Oleg Zhurakousky committed Jul 19, 2012
  7. AMQP-249 Fix Hanging Thread/Unacked Messages

    Previously, the temporary reply channel used for send and
    receive operations (when not using a reply-queue) were configured
    for acks, but no ack was sent. The queue is temporary so was
    removed when the consumer was cancelled but, with cached channels,
    the admin UI showed an unacked count for the channel.
    
    In addition, there was a race condition that could cause a hung
    thread. The handover to the calling thread was done using a
    SynchronousQueue; if the caller timed out just as the reply
    arrived, the consumer thread could hang on the put.
    
    Changed the temporary reply queue declaration to use auto-ack
    and changed the SynchronousQueue to an ArrayBlockingQueue.
    garyrussell committed with Oleg Zhurakousky Jul 12, 2012
Commits on Jul 18, 2012
  1. AMQP-242, AMQP-243: Appender Fixes

    Wrap routing key layout formatting call with a synchronized block because Log4J's PatternLayout is not thread-safe. Also added a simple fix to actually use the configured Layout, which it was previously ignoring.
    
    Polishing @garyrussell
    jbrisbin committed with garyrussell Jul 17, 2012
  2. Merge pull request #52 from garyrussell/AMQP-250

    * AMQP-250:
      AMQP-250 Template reply-queue Could Not be Anon.
    Oleg Zhurakousky committed Jul 18, 2012
  3. AMQP-250 Template reply-queue Could Not be Anon.

    If the reply queue was defined with an id (rather than name)
    attribute, the template's reply container listened on
    the wrong queue name.
    
    The template parser set the container's queues attribute
    to the reply-queue attribute value, instead of a
    RuntimeBeanReference to a bean of that name.
    
    When a <queue name="foo"/> was used, it worked because
    the Queue that Spring created during property assignment
    had the same name and all was fine (the container uses
    the queue name).
    
    Changed the parser to correctly use a bean reference instead.
    garyrussell committed with Oleg Zhurakousky Jul 13, 2012
  4. Merge pull request #55 from garyrussell/AMQP-251

    * AMQP-251:
      AMQP-251 Update RabbitMQ Client to 2.8.4
    Oleg Zhurakousky committed Jul 18, 2012
  5. AMQP-251 Update RabbitMQ Client to 2.8.4

    garyrussell committed with Oleg Zhurakousky Jul 13, 2012
  6. Merge pull request #57 from garyrussell/AMQP-190

    * AMQP-190:
      AMQP-190 Memory Leak With Tx and RabbitTemplate
    Oleg Zhurakousky committed Jul 18, 2012
  7. AMQP-190 Memory Leak With Tx and RabbitTemplate

    When the RabbitTemplate is invoked with an existing transaction,
    the channel is bound to the thread, and
    
      ConnectionFactoryUtils.releaseResources(resourceHolder);
    
    is called after processing. There was a commented-out line
    in ConnectionFactoryUtils.RabbitResourceSynchronization.afterCompletion()
    that would have reset the synchronized state so that
    releaseResouces() would "close" the chanel/connection (return
    them to the caching factory).
    
    Being commented out, the channel was never removed, and each
    transactional template call grabbed a new channel.
    
    However, uncommenting causes issues with the listener container
    because it continues to use the channel, so it must not
    be closed (made available for reuse).
    
    Added code to reset synch, by default, but not for the listener.
    
    The listener sets a boolean releaseAfterCompletion in the
    ResourceHolder to false so that the channel remains and
    is not closed (logically or otherwise).
    garyrussell committed with Oleg Zhurakousky Jul 13, 2012
  8. Merge pull request #59 from garyrussell/AMQP-253

    * AMQP-253:
      AMQP-253 Add Id Generation Option to AMQP Appender
    Oleg Zhurakousky committed Jul 18, 2012
  9. AMQP-253 Add Id Generation Option to AMQP Appender

    log4j.appender.amqp.generateId=true
    
    Turns on id generation - useful when configuring a
    retry interceptor on the consuming side.
    
    AMQP-253 Polishing
    
    Fix default value; move to Message Properties.
    garyrussell committed with Oleg Zhurakousky Jul 17, 2012
Commits on Jul 12, 2012
Commits on Jul 3, 2012
  1. Merge pull request #49 from garyrussell/AMQP-248

    * garyrussell-AMQP-248:
      AMQP-248 Require Java 6 for 1.2.x
    Gunnar Hillert committed Jul 3, 2012
  2. AMQP-248 Require Java 6 for 1.2.x

    Update Java to JDK 6.
    garyrussell committed Jul 3, 2012
  3. Merge pull request #48 from garyrussell/AMQP-247

    * garyrussell-AMQP-247:
      AMQP-247 Queue ID/Name Documentation
    Gunnar Hillert committed Jul 3, 2012
  4. AMQP-247 Queue ID/Name Documentation

    Add a tip explaining when to use ID Vs. name when
    defining a <queue/>.
    garyrussell committed Jul 3, 2012
Commits on Jun 27, 2012
  1. AMQP-246 - Remove old POMs

    * Remove POMs from Project Trees After Gradle Migration
    * Remove .springBeans files
    
    For reference: https://jira.springsource.org/browse/AMQP-246
    
    AMQP-246 - Adding .springBeans back to .gitignore
    Gunnar Hillert committed with garyrussell Jun 27, 2012
Commits on Jun 19, 2012
  1. AMQP-83 - Add Gradle Support

    AMQP-83 Reference Doc + JavaDoc fixes - Dist fixes
    
    * Use Docbook XSDs rather than DTDs --> substantial speedup
    * For Java Doc follow the same structure as Spring Integration
    * Make sure the distribution package's files match the files from the Maven build, e.g. Schema files, license files etc
    
    AMQP-83 - Rename src/docbkx to src/reference
    * Remove src/dist/distribution.xml
    
    AMQP-83 Gradle Conversion - Cleanup
    
    * Delete unnecessary Docbook resources
    * Update Wrapper to Gradle 1.0 RC3
    
    AMQP-83 - Remove Mavem POM files
    
    AMQP-83 - Update Spring version to 3.0.7 as per AMQP-238
    
    AMQP-83 Rebase with latest commits from master (After 1.1.1 release)
    
    AMQP-83 Code Review
    
    * Remove Bundlor Plugin
    * Update README.md
    * verify created *pom.xml* files after *gradle install* execution that dependencies match
    * ensure that *dist* task is executed by default
    Gunnar Hillert committed with garyrussell May 12, 2012
Commits on May 31, 2012
  1. Update git co-ordinates

    committed May 31, 2012
Commits on May 30, 2012
  1. Merge pull request #45 from garyrussell/AMQP-204

    * garyrussell-AMQP-204:
      AMQP-204 Fix Typo in Class Comment
    Gunnar Hillert committed May 30, 2012
  2. AMQP-204 Fix Typo in Class Comment

    Reference to JMS Vs. Rabbit.
    garyrussell committed May 30, 2012
  3. Merge pull request #43 from garyrussell/AMQP-239

    * garyrussell-AMQP-239:
      AMQP-239 DLE/DLQ Documentation
    Gunnar Hillert committed May 30, 2012
  4. AMQP-239 DLE/DLQ Documentation

    Describe how to invoke Dead Letter Exchange/Dead Letter Queue
    routing when rejecting messages in a listener container.
    garyrussell committed with Gunnar Hillert May 30, 2012
  5. Merge pull request #44 from garyrussell/AMQP-238

    * garyrussell-AMQP-238:
      AMQP-238 SF Version 3.0.5 -> 3.0.7
    Gunnar Hillert committed May 30, 2012