You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ai...@apache.org on 2008/02/28 13:18:14 UTC

svn commit: r631938 [1/5] - in /incubator/qpid/branches/thegreatmerge/qpid: ./ java/ java/broker/ java/broker/src/main/java/org/apache/qpid/server/ java/broker/src/main/java/org/apache/qpid/server/exchange/ java/broker/src/main/java/org/apache/qpid/ser...

Author: aidan
Date: Thu Feb 28 04:16:41 2008
New Revision: 631938

URL: http://svn.apache.org/viewvc?rev=631938&view=rev
Log:
Merged revisions 629158,629518,629540,629731,629824,629863,629981 via svnmerge from 
https://svn.apache.org/repos/asf/incubator/qpid/branches/M2.1

........
  r629158 | aidan | 2008-02-19 16:53:57 +0000 (Tue, 19 Feb 2008) | 2 lines
  
  Qpid-594: make AMQConnection listen for exceptions that are thrown asynchronously in it's constructor and do something appropriate with them
........
  r629518 | rupertlssmith | 2008-02-20 16:04:25 +0000 (Wed, 20 Feb 2008) | 1 line
  
  QPID-800 : junit toolkit sources added.
........
  r629540 | aidan | 2008-02-20 17:12:32 +0000 (Wed, 20 Feb 2008) | 2 lines
  
  QPID-786 Remove bogus Failover timeout, add test.
........
  r629731 | rgodfrey | 2008-02-21 10:09:03 +0000 (Thu, 21 Feb 2008) | 1 line
  
  QPID-790 : Performance Improvements
........
  r629824 | aidan | 2008-02-21 15:28:43 +0000 (Thu, 21 Feb 2008) | 4 lines
  
  QPID-785: Make sure queue browser consumers are auto-close, add test for browsing an empty queue. Refactor QueueBrowserTest a little to split up responsibilities a bit.
  
  We should move the sendMessage stuff to a super class, there are at least 4 implementations of that kicking about.
........
  r629863 | rupertlssmith | 2008-02-21 16:42:27 +0000 (Thu, 21 Feb 2008) | 1 line
  
  QPID-802 : Added one minute run of benchmark tests against external broker to the build system.
........
  r629981 | rgodfrey | 2008-02-21 20:42:21 +0000 (Thu, 21 Feb 2008) | 1 line
  
  QPID-804 : Fix Java Broker Python test failures
........

Added:
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ChannelFlowMethodHandler.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/client/src/main/java/org/apache/qpid/client/handler/ChannelFlowMethodHandler.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/mina/common/
      - copied from r629981, incubator/qpid/branches/M2.1/java/common/src/main/java/org/apache/mina/common/
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/mina/common/FixedSizeByteBufferAllocator.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/common/src/main/java/org/apache/mina/common/FixedSizeByteBufferAllocator.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/mina/common/support/
      - copied from r629981, incubator/qpid/branches/M2.1/java/common/src/main/java/org/apache/mina/common/support/
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/mina/common/support/DefaultIoFuture.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/common/src/main/java/org/apache/mina/common/support/DefaultIoFuture.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/mina/filter/codec/QpidProtocolCodecFilter.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/common/src/main/java/org/apache/mina/filter/codec/QpidProtocolCodecFilter.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQShortStringTokenizer.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/common/src/main/java/org/apache/qpid/framing/AMQShortStringTokenizer.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit-maven-plugin/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit-maven-plugin/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit-maven-plugin/pom.xml
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit-maven-plugin/pom.xml
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit-maven-plugin/src/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit-maven-plugin/src/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit-maven-plugin/src/main/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit-maven-plugin/src/main/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit-maven-plugin/src/main/org/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit-maven-plugin/src/main/org/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit-maven-plugin/src/main/org/apache/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit-maven-plugin/src/main/org/apache/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit-maven-plugin/src/main/org/apache/qpid/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit-maven-plugin/src/main/org/apache/qpid/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit-maven-plugin/src/main/org/apache/qpid/junit/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit-maven-plugin/src/main/org/apache/qpid/junit/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit-maven-plugin/src/main/org/apache/qpid/junit/maven/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit-maven-plugin/src/main/org/apache/qpid/junit/maven/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit-maven-plugin/src/main/org/apache/qpid/junit/maven/IsolatedClassLoader.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit-maven-plugin/src/main/org/apache/qpid/junit/maven/IsolatedClassLoader.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit-maven-plugin/src/main/org/apache/qpid/junit/maven/TKTestRunnerMojo.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit-maven-plugin/src/main/org/apache/qpid/junit/maven/TKTestRunnerMojo.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit-maven-plugin/src/main/org/apache/qpid/junit/maven/TKTestScriptGenMojo.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit-maven-plugin/src/main/org/apache/qpid/junit/maven/TKTestScriptGenMojo.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit-maven-plugin/src/main/uk/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit-maven-plugin/src/main/uk/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit-maven-plugin/src/main/uk/co/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit-maven-plugin/src/main/uk/co/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit-maven-plugin/src/main/uk/co/thebadgerset/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit-maven-plugin/src/main/uk/co/thebadgerset/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/pom.xml
      - copied, changed from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/pom.xml
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/DefaultThreadFactory.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/DefaultThreadFactory.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/PossibleDeadlockException.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/PossibleDeadlockException.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/TestRunnable.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/TestRunnable.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/ThreadTestCoordinator.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/ThreadTestCoordinator.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/ThreadTestExample.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/ThreadTestExample.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/package.html
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/concurrency/package.html
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/AsymptoticTestCase.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/AsymptoticTestCase.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/AsymptoticTestDecorator.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/AsymptoticTestDecorator.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/BaseThrottle.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/BaseThrottle.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/BatchedThrottle.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/BatchedThrottle.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/DurationTestDecorator.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/DurationTestDecorator.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/InstrumentedTest.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/InstrumentedTest.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/NullResultPrinter.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/NullResultPrinter.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/ParameterVariationTestDecorator.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/ParameterVariationTestDecorator.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/ScaledTestDecorator.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/ScaledTestDecorator.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/SetupTaskAware.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/SetupTaskAware.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/SetupTaskHandler.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/SetupTaskHandler.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/ShutdownHookable.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/ShutdownHookable.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/SleepThrottle.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/SleepThrottle.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TKTestResult.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TKTestResult.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TKTestRunner.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TKTestRunner.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TestRunnerImprovedErrorHandling.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TestRunnerImprovedErrorHandling.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TestThreadAware.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TestThreadAware.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/Throttle.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/Throttle.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TimingController.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TimingController.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TimingControllerAware.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/TimingControllerAware.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/WrappedSuiteTestDecorator.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/WrappedSuiteTestDecorator.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/CSVTestListener.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/CSVTestListener.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/ConsoleTestListener.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/ConsoleTestListener.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/TKTestListener.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/TKTestListener.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/XMLTestListener.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/XMLTestListener.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/package.html
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/listeners/package.html
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/package.html
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/package.html
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/CommandLineParser.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/CommandLineParser.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/ContextualProperties.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/ContextualProperties.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/MathUtils.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/MathUtils.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/ParsedProperties.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/ParsedProperties.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/SizeOf.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/SizeOf.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/StackQueue.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/StackQueue.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/TestContextProperties.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/TestContextProperties.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/TestUtils.java
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/TestUtils.java
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/package.html
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/package.html
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/uk/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/uk/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/uk/co/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/uk/co/
    incubator/qpid/branches/thegreatmerge/qpid/java/junit-toolkit/src/main/uk/co/thebadgerset/
      - copied from r629981, incubator/qpid/branches/M2.1/java/junit-toolkit/src/main/uk/co/thebadgerset/
    incubator/qpid/branches/thegreatmerge/qpid/java/skimtests/
      - copied from r629981, incubator/qpid/branches/M2.1/java/skimtests/
    incubator/qpid/branches/thegreatmerge/qpid/java/skimtests/README.txt
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/skimtests/README.txt
    incubator/qpid/branches/thegreatmerge/qpid/java/skimtests/etc/
      - copied from r629981, incubator/qpid/branches/M2.1/java/skimtests/etc/
    incubator/qpid/branches/thegreatmerge/qpid/java/skimtests/etc/jar-with-dependencies.xml
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/skimtests/etc/jar-with-dependencies.xml
    incubator/qpid/branches/thegreatmerge/qpid/java/skimtests/pom.xml
      - copied unchanged from r629981, incubator/qpid/branches/M2.1/java/skimtests/pom.xml
Modified:
    incubator/qpid/branches/thegreatmerge/qpid/   (props changed)
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/pom.xml
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DestNameExchange.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DestWildExchange.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ChannelOpenHandler.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/output/amqp0_8/ProtocolOutputConverterImpl.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/output/amqp0_9/ProtocolOutputConverterImpl.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQMinaProtocolSession.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQPFastProtocolHandler.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ConcurrentSelectorDeliveryManager.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ExchangeBindings.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/NotificationCheck.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SubscriptionImpl.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SubscriptionSet.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/TransientMessageData.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/NonTransactionalContext.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/TransactionalContext.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueAlertTest.java
    incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client-java14/pom.xml
    incubator/qpid/branches/thegreatmerge/qpid/java/client/pom.xml
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/handler/BasicDeliverMethodHandler.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/handler/BasicReturnMethodHandler.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/message/ReturnMessage.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/message/UnprocessedMessage.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/message/UnprocessedMessage_0_10.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/message/UnprocessedMessage_0_8.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/state/AMQStateManager.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/client/transport/TransportConnection.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/jms/FailoverPolicy.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/main/java/org/apache/qpid/jndi/PropertiesFileInitialContextFactory.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
    incubator/qpid/branches/thegreatmerge/qpid/java/client/src/test/java/org/apache/qpid/test/unit/close/CloseBeforeAckTest.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/AMQConnectionFailureException.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/codec/AMQDecoder.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQBody.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQFrame.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyImpl.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/framing/CompositeAMQDataBlock.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/framing/ContentBody.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderBody.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/framing/HeartbeatBody.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/framing/amqp_0_9/MethodConverter_0_9.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/pool/Job.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/pool/PoolingFilter.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/protocol/AMQMethodListener.java
    incubator/qpid/branches/thegreatmerge/qpid/java/common/src/main/java/org/apache/qpid/protocol/AMQVersionAwareProtocolSession.java
    incubator/qpid/branches/thegreatmerge/qpid/java/integrationtests/pom.xml
    incubator/qpid/branches/thegreatmerge/qpid/java/perftests/distribution/pom.xml
    incubator/qpid/branches/thegreatmerge/qpid/java/perftests/etc/scripts/PT-Qpid-13.sh
    incubator/qpid/branches/thegreatmerge/qpid/java/perftests/etc/scripts/PT-Qpid-14.sh
    incubator/qpid/branches/thegreatmerge/qpid/java/perftests/etc/scripts/Test-ActiveMQ.sh
    incubator/qpid/branches/thegreatmerge/qpid/java/perftests/etc/scripts/Test-SwiftMQ.sh
    incubator/qpid/branches/thegreatmerge/qpid/java/perftests/pom.xml
    incubator/qpid/branches/thegreatmerge/qpid/java/perftests/src/main/java/org/apache/qpid/ping/PingAsyncTestPerf.java
    incubator/qpid/branches/thegreatmerge/qpid/java/perftests/src/main/java/org/apache/qpid/ping/PingDurableClient.java
    incubator/qpid/branches/thegreatmerge/qpid/java/perftests/src/main/java/org/apache/qpid/ping/PingLatencyTestPerf.java
    incubator/qpid/branches/thegreatmerge/qpid/java/perftests/src/main/java/org/apache/qpid/ping/PingTestPerf.java
    incubator/qpid/branches/thegreatmerge/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/PingPongProducer.java
    incubator/qpid/branches/thegreatmerge/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/PingPongTestPerf.java
    incubator/qpid/branches/thegreatmerge/qpid/java/perftests/src/main/java/org/apache/qpid/test/testcases/MessageThroughputPerf.java
    incubator/qpid/branches/thegreatmerge/qpid/java/plugins/pom.xml
    incubator/qpid/branches/thegreatmerge/qpid/java/plugins/src/main/java/org/apache/qpid/extras/exchanges/diagnostic/DiagnosticExchange.java
    incubator/qpid/branches/thegreatmerge/qpid/java/pom.xml
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/pom.xml
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/server/exchange/MessagingTestConfigProperties.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/server/plugins/PluginTest.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBeanTest.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/server/protocol/MaxChannelsTest.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/AckTest.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/MockProtocolSession.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserTest.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/client/failover/FailoverTest.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/AMQPPublisher.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/FrameworkBaseCase.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/LocalAMQPCircuitFactory.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/LocalCircuitFactory.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/MessagingTestConfigProperties.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/NotApplicableAssertion.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/Publisher.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/Receiver.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/TestUtils.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/clocksynch/ClockSynchThread.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/clocksynch/UDPClockReference.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/clocksynch/UDPClockSynchronizer.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedcircuit/DistributedCircuitImpl.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedcircuit/DistributedPublisherImpl.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedcircuit/DistributedReceiverImpl.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedcircuit/TestClientCircuitEnd.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedtesting/Coordinator.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedtesting/DistributedTestDecorator.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedtesting/FanOutTestDecorator.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedtesting/InteropTestDecorator.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/distributedtesting/TestClient.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/listeners/XMLTestListener.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/localcircuit/LocalAMQPPublisherImpl.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/localcircuit/LocalCircuitImpl.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/localcircuit/LocalPublisherImpl.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/localcircuit/LocalReceiverImpl.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/qpid/AMQPFeatureDecorator.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/qpid/CauseFailureDecorator.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/qpid/InVMBrokerDecorator.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/sequencers/CircuitFactory.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/sequencers/FanOutCircuitFactory.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/sequencers/InteropCircuitFactory.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/testcases/ImmediateMessageTest.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/testcases/MandatoryMessageTest.java
    incubator/qpid/branches/thegreatmerge/qpid/java/systests/src/main/java/org/apache/qpid/test/testcases/RollbackTest.java

Propchange: incubator/qpid/branches/thegreatmerge/qpid/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: incubator/qpid/branches/thegreatmerge/qpid/java/broker/pom.xml
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/thegreatmerge/qpid/java/broker/pom.xml?rev=631938&r1=631937&r2=631938&view=diff
==============================================================================
--- incubator/qpid/branches/thegreatmerge/qpid/java/broker/pom.xml (original)
+++ incubator/qpid/branches/thegreatmerge/qpid/java/broker/pom.xml Thu Feb 28 04:16:41 2008
@@ -255,7 +255,7 @@
                                     </condition>
 
                                     <property name="command"
-                                              value="python run-tests -v -I java_failing.txt -b localhost:2110"/>
+                                              value="python run-tests -v -I java_failing.txt -b localhost:2110 -s ../specs/amqp.0-9.no-wip.xml"/>
 
                                     <ant antfile="python-test.xml" inheritRefs="true">
                                         <target name="run-tests" />

Modified: incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java?rev=631938&r1=631937&r2=631938&view=diff
==============================================================================
--- incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java (original)
+++ incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java Thu Feb 28 04:16:41 2008
@@ -74,7 +74,7 @@
      * The delivery tag is unique per channel. This is pre-incremented before putting into the deliver frame so that
      * value of this represents the <b>last</b> tag sent out
      */
-    private AtomicLong _deliveryTag = new AtomicLong(0);
+    private long _deliveryTag = 0;
 
     /** A channel has a default queue (the last declared) that is used when no queue name is explictily set */
     private AMQQueue _defaultQueue;
@@ -100,8 +100,6 @@
 
     private final AtomicBoolean _suspended = new AtomicBoolean(false);
 
-    private final MessageRouter _exchanges;
-
     private TransactionalContext _txnContext, _nonTransactedContext;
 
     /**
@@ -125,7 +123,7 @@
     public boolean ENABLE_JMSXUserID;
 
     public AMQChannel(AMQProtocolSession session, int channelId, TransactionManager transactionManager,
-                      MessageStore messageStore, MessageRouter exchanges) throws AMQException
+                      MessageStore messageStore) throws AMQException
     {
         _session = session;
         _channelId = channelId;
@@ -134,7 +132,7 @@
         _prefetch_LowWaterMark = _prefetch_HighWaterMark / 2;
         _messageStore = messageStore;
         _transactionManager = transactionManager;
-        _exchanges = exchanges;
+
         // by default the session is non-transactional
         _txnContext = new NonTransactionalContext(_messageStore, _storeContext, this, _returnMessages, _browsedAcks);
     }
@@ -300,7 +298,7 @@
 
     public long getNextDeliveryTag()
     {
-        return _deliveryTag.incrementAndGet();
+        return ++_deliveryTag;
     }
 
     public int getNextConsumerTag()
@@ -953,14 +951,18 @@
 
     public void processReturns(AMQProtocolSession session) throws AMQException
     {
-        for (RequiredDeliveryException bouncedMessage : _returnMessages)
+        if(!_returnMessages.isEmpty())
         {
-            AMQMessage message = bouncedMessage.getAMQMessage();
-            session.getProtocolOutputConverter().writeReturn(message, _channelId, bouncedMessage.getReplyCode().getCode(),
-                                                             new AMQShortString(bouncedMessage.getMessage()));
-        }
+            for (RequiredDeliveryException bouncedMessage : _returnMessages)
+            {
+                AMQMessage message = bouncedMessage.getAMQMessage();
+                session.getProtocolOutputConverter().writeReturn(message, _channelId, bouncedMessage.getReplyCode().getCode(),
+                                                                 new AMQShortString(bouncedMessage.getMessage()));
+                message.decrementReference(_storeContext);
+            }
 
-        _returnMessages.clear();
+            _returnMessages.clear();
+        }
     }
 
     public boolean wouldSuspend(AMQMessage msg)

Modified: incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java?rev=631938&r1=631937&r2=631938&view=diff
==============================================================================
--- incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java (original)
+++ incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java Thu Feb 28 04:16:41 2008
@@ -35,6 +35,7 @@
 import org.apache.mina.common.ByteBuffer;
 import org.apache.mina.common.IoAcceptor;
 import org.apache.mina.common.SimpleByteBufferAllocator;
+import org.apache.mina.common.FixedSizeByteBufferAllocator;
 import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;
 import org.apache.mina.transport.socket.nio.SocketSessionConfig;
 import org.apache.qpid.AMQException;
@@ -299,7 +300,7 @@
         // once more testing of the performance of the simple allocator has been done
         if (!connectorConfig.enablePooledAllocator)
         {
-            ByteBuffer.setAllocator(new SimpleByteBufferAllocator());
+            ByteBuffer.setAllocator(new FixedSizeByteBufferAllocator());
         }
 
         int port = connectorConfig.port;

Modified: incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DestNameExchange.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DestNameExchange.java?rev=631938&r1=631937&r2=631938&view=diff
==============================================================================
--- incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DestNameExchange.java (original)
+++ incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DestNameExchange.java Thu Feb 28 04:16:41 2008
@@ -211,10 +211,9 @@
                 _logger.debug("Publishing message to queue " + queues);
             }
 
-            for (AMQQueue q : queues)
-            {
-                payload.enqueue(q);
-            }
+            payload.enqueue(queues);
+
+
         }
     }
 

Modified: incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DestWildExchange.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DestWildExchange.java?rev=631938&r1=631937&r2=631938&view=diff
==============================================================================
--- incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DestWildExchange.java (original)
+++ incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DestWildExchange.java Thu Feb 28 04:16:41 2008
@@ -26,6 +26,7 @@
 import org.apache.qpid.exchange.ExchangeDefaults;
 import org.apache.qpid.framing.AMQShortString;
 import org.apache.qpid.framing.FieldTable;
+import org.apache.qpid.framing.AMQShortStringTokenizer;
 import org.apache.qpid.framing.abstraction.MessagePublishInfo;
 import org.apache.qpid.server.management.MBeanConstructor;
 import org.apache.qpid.server.management.MBeanDescription;
@@ -40,11 +41,7 @@
 import javax.management.openmbean.OpenDataException;
 import javax.management.openmbean.TabularData;
 import javax.management.openmbean.TabularDataSupport;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
+import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 
@@ -83,12 +80,21 @@
 
     private static final Logger _logger = Logger.getLogger(DestWildExchange.class);
 
-    private ConcurrentHashMap<AMQShortString, List<AMQQueue>> _routingKey2queues =
+    private final ConcurrentHashMap<AMQShortString, List<AMQQueue>> _bindingKey2queues =
+            new ConcurrentHashMap<AMQShortString, List<AMQQueue>>();
+    private final ConcurrentHashMap<AMQShortString, List<AMQQueue>> _simpleBindingKey2queues =
+            new ConcurrentHashMap<AMQShortString, List<AMQQueue>>();
+    private final ConcurrentHashMap<AMQShortString, List<AMQQueue>> _wildCardBindingKey2queues =
             new ConcurrentHashMap<AMQShortString, List<AMQQueue>>();
     // private ConcurrentHashMap<AMQShortString, AMQQueue> _routingKey2queue = new ConcurrentHashMap<AMQShortString, AMQQueue>();
-    private static final String TOPIC_SEPARATOR = ".";
-    private static final String AMQP_STAR = "*";
-    private static final String AMQP_HASH = "#";
+    private static final byte TOPIC_SEPARATOR = (byte)'.';
+    private static final AMQShortString TOPIC_SEPARATOR_AS_SHORTSTRING = new AMQShortString(".");
+    private static final AMQShortString AMQP_STAR_TOKEN = new AMQShortString("*");
+    private static final AMQShortString AMQP_HASH_TOKEN = new AMQShortString("#");
+    private ConcurrentHashMap<AMQShortString, AMQShortString[]> _bindingKey2Tokenized =
+            new ConcurrentHashMap<AMQShortString, AMQShortString[]>();
+    private static final byte HASH_BYTE = (byte)'#';
+    private static final byte STAR_BYTE = (byte)'*';
 
     /** DestWildExchangeMBean class implements the management interface for the Topic exchanges. */
     @MBeanDescription("Management Bean for Topic Exchange")
@@ -106,7 +112,7 @@
         public TabularData bindings() throws OpenDataException
         {
             _bindingList = new TabularDataSupport(_bindinglistDataType);
-            for (Map.Entry<AMQShortString, List<AMQQueue>> entry : _routingKey2queues.entrySet())
+            for (Map.Entry<AMQShortString, List<AMQQueue>> entry : _bindingKey2queues.entrySet())
             {
                 AMQShortString key = entry.getKey();
                 List<String> queueList = new ArrayList<String>();
@@ -155,27 +161,75 @@
         assert queue != null;
         assert rKey != null;
 
-        AMQShortString routingKey = normalize(rKey);
+        _logger.debug("Registering queue " + queue.getName() + " with routing key " + rKey);
 
-        _logger.debug("Registering queue " + queue.getName() + " with routing key " + routingKey);
         // we need to use putIfAbsent, which is an atomic operation, to avoid a race condition
-        List<AMQQueue> queueList = _routingKey2queues.putIfAbsent(routingKey, new CopyOnWriteArrayList<AMQQueue>());
+        List<AMQQueue> queueList = _bindingKey2queues.putIfAbsent(rKey, new CopyOnWriteArrayList<AMQQueue>());
+
+
+
+
+
+
+
         // if we got null back, no previous value was associated with the specified routing key hence
         // we need to read back the new value just put into the map
         if (queueList == null)
         {
-            queueList = _routingKey2queues.get(routingKey);
+            queueList = _bindingKey2queues.get(rKey);
         }
 
+
+
         if (!queueList.contains(queue))
         {
             queueList.add(queue);
+
+
+            if(rKey.contains(HASH_BYTE) || rKey.contains(STAR_BYTE))
+            {
+                AMQShortString routingKey = normalize(rKey);
+                List<AMQQueue> queueList2 = _wildCardBindingKey2queues.putIfAbsent(routingKey, new CopyOnWriteArrayList<AMQQueue>());
+
+                if(queueList2 == null)
+                {
+                    queueList2 = _wildCardBindingKey2queues.get(routingKey);
+                    AMQShortStringTokenizer keyTok = routingKey.tokenize(TOPIC_SEPARATOR);
+
+                    ArrayList<AMQShortString> keyTokList = new ArrayList<AMQShortString>(keyTok.countTokens());
+
+                    while (keyTok.hasMoreTokens())
+                    {
+                        keyTokList.add(keyTok.nextToken());
+                    }
+
+                    _bindingKey2Tokenized.put(routingKey, keyTokList.toArray(new AMQShortString[keyTokList.size()]));
+                }
+                queueList2.add(queue);
+
+            }
+            else
+            {
+                List<AMQQueue> queueList2 = _simpleBindingKey2queues.putIfAbsent(rKey, new CopyOnWriteArrayList<AMQQueue>());
+                if(queueList2 == null)
+                {
+                    queueList2 = _simpleBindingKey2queues.get(rKey);
+                }
+                queueList2.add(queue);
+
+            }
+
+
+
+
         }
         else if (_logger.isDebugEnabled())
         {
-            _logger.debug("Queue " + queue + " is already registered with routing key " + routingKey);
+            _logger.debug("Queue " + queue + " is already registered with routing key " + rKey);
         }
 
+
+
     }
 
     private AMQShortString normalize(AMQShortString routingKey)
@@ -185,53 +239,58 @@
             routingKey = AMQShortString.EMPTY_STRING;
         }
         
-        StringTokenizer routingTokens = new StringTokenizer(routingKey.toString(), TOPIC_SEPARATOR);
-        List<String> _subscription = new ArrayList<String>();
+        AMQShortStringTokenizer routingTokens = routingKey.tokenize(TOPIC_SEPARATOR);
+
+        List<AMQShortString> subscriptionList = new ArrayList<AMQShortString>();
 
         while (routingTokens.hasMoreTokens())
         {
-            _subscription.add(routingTokens.nextToken());
+            subscriptionList.add(routingTokens.nextToken());
         }
 
-        int size = _subscription.size();
+        int size = subscriptionList.size();
 
         for (int index = 0; index < size; index++)
         {
             // if there are more levels
             if ((index + 1) < size)
             {
-                if (_subscription.get(index).equals(AMQP_HASH))
+                if (subscriptionList.get(index).equals(AMQP_HASH_TOKEN))
                 {
-                    if (_subscription.get(index + 1).equals(AMQP_HASH))
+                    if (subscriptionList.get(index + 1).equals(AMQP_HASH_TOKEN))
                     {
                         // we don't need #.# delete this one
-                        _subscription.remove(index);
+                        subscriptionList.remove(index);
                         size--;
                         // redo this normalisation
                         index--;
                     }
 
-                    if (_subscription.get(index + 1).equals(AMQP_STAR))
+                    if (subscriptionList.get(index + 1).equals(AMQP_STAR_TOKEN))
                     {
                         // we don't want #.* swap to *.#
                         // remove it and put it in at index + 1
-                        _subscription.add(index + 1, _subscription.remove(index));
+                        subscriptionList.add(index + 1, subscriptionList.remove(index));
                     }
                 }
             } // if we have more levels
         }
 
-        StringBuilder sb = new StringBuilder();
 
-        for (String s : _subscription)
+
+        AMQShortString normalizedString = AMQShortString.join(subscriptionList, TOPIC_SEPARATOR_AS_SHORTSTRING);
+/*
+        StringBuilder sb = new StringBuilder();
+        for (AMQShortString s : subscriptionList)
         {
             sb.append(s);
             sb.append(TOPIC_SEPARATOR);
         }
 
         sb.deleteCharAt(sb.length() - 1);
+*/
 
-        return new AMQShortString(sb.toString());
+        return normalizedString;
     }
 
     public void route(AMQMessage payload) throws AMQException
@@ -253,19 +312,14 @@
             else
             {
                 _logger.warn("No queues found for routing key " + routingKey);
-                _logger.warn("Routing map contains: " + _routingKey2queues);
+                _logger.warn("Routing map contains: " + _bindingKey2queues);
 
                 return;
             }
         }
 
-        for (AMQQueue q : queues)
-        {
-            // TODO: modify code generator to add clone() method then clone the deliver body
-            // without this addition we have a race condition - we will be modifying the body
-            // before the encoder has encoded the body for delivery
-            payload.enqueue(q);
-        }
+        payload.enqueue(queues);
+
     }
 
     public boolean isBound(AMQShortString routingKey, FieldTable arguments, AMQQueue queue)
@@ -275,21 +329,21 @@
 
     public boolean isBound(AMQShortString routingKey, AMQQueue queue)
     {
-        List<AMQQueue> queues = _routingKey2queues.get(normalize(routingKey));
+        List<AMQQueue> queues = _bindingKey2queues.get(normalize(routingKey));
 
         return (queues != null) && queues.contains(queue);
     }
 
     public boolean isBound(AMQShortString routingKey)
     {
-        List<AMQQueue> queues = _routingKey2queues.get(normalize(routingKey));
+        List<AMQQueue> queues = _bindingKey2queues.get(normalize(routingKey));
 
         return (queues != null) && !queues.isEmpty();
     }
 
     public boolean isBound(AMQQueue queue)
     {
-        for (List<AMQQueue> queues : _routingKey2queues.values())
+        for (List<AMQQueue> queues : _bindingKey2queues.values())
         {
             if (queues.contains(queue))
             {
@@ -302,7 +356,7 @@
 
     public boolean hasBindings()
     {
-        return !_routingKey2queues.isEmpty();
+        return !_bindingKey2queues.isEmpty();
     }
 
     public synchronized void deregisterQueue(AMQShortString rKey, AMQQueue queue, FieldTable args) throws AMQException
@@ -310,27 +364,51 @@
         assert queue != null;
         assert rKey != null;
 
-        AMQShortString routingKey = normalize(rKey);
-
-        List<AMQQueue> queues = _routingKey2queues.get(routingKey);
+        List<AMQQueue> queues = _bindingKey2queues.get(rKey);
         if (queues == null)
         {
             throw new AMQException(AMQConstant.NOT_FOUND, "Queue " + queue + " was not registered with exchange " + this.getName()
-                                   + " with routing key " + routingKey + ". No queue was registered with that _routing key",
-				   null);
+                                   + " with routing key " + rKey + ". No queue was registered with that routing key", null);
+
         }
 
         boolean removedQ = queues.remove(queue);
         if (!removedQ)
         {
             throw new AMQException(AMQConstant.NOT_FOUND, "Queue " + queue + " was not registered with exchange " + this.getName()
-                                   + " with routing key " + routingKey,
-				   null);
+                                   + " with routing key " + rKey, null);
+        }
+
+
+        if(rKey.contains(HASH_BYTE) || rKey.contains(STAR_BYTE))
+        {
+            AMQShortString bindingKey = normalize(rKey);
+            List<AMQQueue> queues2 = _wildCardBindingKey2queues.get(bindingKey);
+            queues2.remove(queue);
+            if(queues2.isEmpty())
+            {
+                _wildCardBindingKey2queues.remove(bindingKey);
+                _bindingKey2Tokenized.remove(bindingKey);
+            }
+
         }
+        else
+        {
+            List<AMQQueue> queues2 = _simpleBindingKey2queues.get(rKey);
+            queues2.remove(queue);
+            if(queues2.isEmpty())
+            {
+                _simpleBindingKey2queues.remove(rKey);
+            }
+
+        }
+
+
+
 
         if (queues.isEmpty())
         {
-            _routingKey2queues.remove(routingKey);
+            _bindingKey2queues.remove(rKey);
         }
     }
 
@@ -349,117 +427,167 @@
 
     public Map<AMQShortString, List<AMQQueue>> getBindings()
     {
-        return _routingKey2queues;
+        return _bindingKey2queues;
     }
 
     private List<AMQQueue> getMatchedQueues(AMQShortString routingKey)
     {
-        List<AMQQueue> list = new LinkedList<AMQQueue>();
-        StringTokenizer routingTokens = new StringTokenizer(routingKey.toString(), TOPIC_SEPARATOR);
 
-        ArrayList<String> routingkeyList = new ArrayList<String>();
+        List<AMQQueue> list = null;
 
-        while (routingTokens.hasMoreTokens())
+        if(!_wildCardBindingKey2queues.isEmpty())
         {
-            String next = routingTokens.nextToken();
-            if (next.equals(AMQP_HASH) && routingkeyList.get(routingkeyList.size() - 1).equals(AMQP_HASH))
-            {
-                continue;
-            }
 
-            routingkeyList.add(next);
-        }
 
-        for (AMQShortString queue : _routingKey2queues.keySet())
-        {
-            StringTokenizer queTok = new StringTokenizer(queue.toString(), TOPIC_SEPARATOR);
+            AMQShortStringTokenizer routingTokens = routingKey.tokenize(TOPIC_SEPARATOR);
+
+            final int routingTokensCount = routingTokens.countTokens();
 
-            ArrayList<String> queueList = new ArrayList<String>();
 
-            while (queTok.hasMoreTokens())
+            AMQShortString[] routingkeyTokens = new AMQShortString[routingTokensCount];
+
+            if(routingTokensCount == 1)
             {
-                queueList.add(queTok.nextToken());
+                routingkeyTokens[0] =routingKey;
             }
+            else
+            {
 
-            int depth = 0;
-            boolean matching = true;
-            boolean done = false;
-            int routingskip = 0;
-            int queueskip = 0;
 
-            while (matching && !done)
-            {
-                if ((queueList.size() == (depth + queueskip)) || (routingkeyList.size() == (depth + routingskip)))
+                int token = 0;
+                while (routingTokens.hasMoreTokens())
                 {
-                    done = true;
 
-                    // if it was the routing key that ran out of digits
-                    if (routingkeyList.size() == (depth + routingskip))
-                    {
-                        if (queueList.size() > (depth + queueskip))
-                        { // a hash and it is the last entry
-                            matching =
-                                    queueList.get(depth + queueskip).equals(AMQP_HASH)
-                                    && (queueList.size() == (depth + queueskip + 1));
-                        }
-                    }
-                    else if (routingkeyList.size() > (depth + routingskip))
+                    AMQShortString next = routingTokens.nextToken();
+        /*            if (next.equals(AMQP_HASH) && routingkeyTokens.get(routingkeyTokens.size() - 1).equals(AMQP_HASH))
                     {
-                        // There is still more routing key to check
-                        matching = false;
+                        continue;
                     }
+        */
 
-                    continue;
+                    routingkeyTokens[token++] = next;
                 }
+            }
+            for (AMQShortString bindingKey : _wildCardBindingKey2queues.keySet())
+            {
+
+                AMQShortString[] bindingKeyTokens = _bindingKey2Tokenized.get(bindingKey);
+
+
+                boolean matching = true;
+                boolean done = false;
 
-                // if the values on the two topics don't match
-                if (!queueList.get(depth + queueskip).equals(routingkeyList.get(depth + routingskip)))
+                int depthPlusRoutingSkip = 0;
+                int depthPlusQueueSkip = 0;
+
+                final int bindingKeyTokensCount = bindingKeyTokens.length;
+
+                while (matching && !done)
                 {
-                    if (queueList.get(depth + queueskip).equals(AMQP_STAR))
+
+                    if ((bindingKeyTokensCount == depthPlusQueueSkip) || (routingTokensCount == depthPlusRoutingSkip))
                     {
-                        depth++;
+                        done = true;
+
+                        // if it was the routing key that ran out of digits
+                        if (routingTokensCount == depthPlusRoutingSkip)
+                        {
+                            if (bindingKeyTokensCount > depthPlusQueueSkip)
+                            { // a hash and it is the last entry
+                                matching =
+                                        bindingKeyTokens[depthPlusQueueSkip].equals(AMQP_HASH_TOKEN)
+                                        && (bindingKeyTokensCount == (depthPlusQueueSkip + 1));
+                            }
+                        }
+                        else if (routingTokensCount > depthPlusRoutingSkip)
+                        {
+                            // There is still more routing key to check
+                            matching = false;
+                        }
 
                         continue;
                     }
-                    else if (queueList.get(depth + queueskip).equals(AMQP_HASH))
+
+                    // if the values on the two topics don't match
+                    if (!bindingKeyTokens[depthPlusQueueSkip].equals(routingkeyTokens[depthPlusRoutingSkip]))
                     {
-                        // Is this a # at the end
-                        if (queueList.size() == (depth + queueskip + 1))
+                        if (bindingKeyTokens[depthPlusQueueSkip].equals(AMQP_STAR_TOKEN))
                         {
-                            done = true;
+                            depthPlusQueueSkip++;
+                            depthPlusRoutingSkip++;
 
                             continue;
                         }
-
-                        // otherwise # in the middle
-                        while (routingkeyList.size() > (depth + routingskip))
+                        else if (bindingKeyTokens[depthPlusQueueSkip].equals(AMQP_HASH_TOKEN))
                         {
-                            if (routingkeyList.get(depth + routingskip).equals(queueList.get(depth + queueskip + 1)))
+                            // Is this a # at the end
+                            if (bindingKeyTokensCount == (depthPlusQueueSkip + 1))
+                            {
+                                done = true;
+
+                                continue;
+                            }
+
+                            // otherwise # in the middle
+                            while (routingTokensCount > depthPlusRoutingSkip)
                             {
-                                queueskip++;
-                                depth++;
+                                if (routingkeyTokens[depthPlusRoutingSkip].equals(bindingKeyTokens[depthPlusQueueSkip + 1]))
+                                {
+                                    depthPlusQueueSkip += 2;
+                                    depthPlusRoutingSkip++;
+
+                                    break;
+                                }
 
-                                break;
+                                depthPlusRoutingSkip++;
                             }
 
-                            routingskip++;
+                            continue;
                         }
 
-                        continue;
+                        matching = false;
                     }
 
-                    matching = false;
+                    depthPlusQueueSkip++;
+                    depthPlusRoutingSkip++;
                 }
 
-                depth++;
+                if (matching)
+                {
+                    if(list == null)
+                    {
+                        list = new ArrayList<AMQQueue>(_wildCardBindingKey2queues.get(bindingKey));
+                    }
+                    else
+                    {
+                        list.addAll(_wildCardBindingKey2queues.get(bindingKey));
+                    }
+                }
             }
 
-            if (matching)
+        }
+        if(!_simpleBindingKey2queues.isEmpty())
+        {
+            List<AMQQueue> queues = _simpleBindingKey2queues.get(routingKey);
+            if(list == null)
+            {
+                if(queues == null)
+                {
+                    list =  Collections.EMPTY_LIST;
+                }
+                else
+                {
+                    list = new ArrayList<AMQQueue>(queues);
+                }
+            }
+            else if(queues != null)
             {
-                list.addAll(_routingKey2queues.get(queue));
+                list.addAll(queues);
             }
+
         }
 
         return list;
+
     }
 }

Modified: incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java?rev=631938&r1=631937&r2=631938&view=diff
==============================================================================
--- incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java (original)
+++ incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java Thu Feb 28 04:16:41 2008
@@ -42,6 +42,7 @@
 import javax.management.openmbean.TabularDataSupport;
 import java.util.List;
 import java.util.Map;
+import java.util.ArrayList;
 import java.util.concurrent.CopyOnWriteArraySet;
 
 public class FanoutExchange extends AbstractExchange
@@ -210,10 +211,8 @@
                 _logger.debug("Publishing message to queue " + _queues);
             }
 
-            for (AMQQueue q : _queues)
-            {
-                payload.enqueue(q);
-            }
+            payload.enqueue(new ArrayList(_queues));
+
         }
     }
 

Modified: incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ChannelOpenHandler.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ChannelOpenHandler.java?rev=631938&r1=631937&r2=631938&view=diff
==============================================================================
--- incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ChannelOpenHandler.java (original)
+++ incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ChannelOpenHandler.java Thu Feb 28 04:16:41 2008
@@ -29,7 +29,6 @@
 import org.apache.qpid.framing.*;
 import org.apache.qpid.framing.amqp_0_9.MethodRegistry_0_9;
 import org.apache.qpid.framing.amqp_8_0.MethodRegistry_8_0;
-import org.apache.qpid.protocol.AMQMethodEvent;
 import org.apache.qpid.protocol.AMQConstant;
 import org.apache.qpid.server.AMQChannel;
 import org.apache.qpid.server.protocol.AMQProtocolSession;
@@ -55,8 +54,7 @@
         AMQProtocolSession session = stateManager.getProtocolSession();
         VirtualHost virtualHost = session.getVirtualHost();
 
-        final AMQChannel channel = new AMQChannel(session,channelId, virtualHost.getTransactionManager(), virtualHost.getMessageStore(),
-                                                  virtualHost.getExchangeRegistry());
+        final AMQChannel channel = new AMQChannel(session,channelId, virtualHost.getTransactionManager(), virtualHost.getMessageStore());
         session.addChannel(channel);
 
         ChannelOpenOkBody response;

Modified: incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/output/amqp0_8/ProtocolOutputConverterImpl.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/output/amqp0_8/ProtocolOutputConverterImpl.java?rev=631938&r1=631937&r2=631938&view=diff
==============================================================================
--- incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/output/amqp0_8/ProtocolOutputConverterImpl.java (original)
+++ incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/output/amqp0_8/ProtocolOutputConverterImpl.java Thu Feb 28 04:16:41 2008
@@ -100,8 +100,8 @@
             ContentChunk cb = messageHandle.getContentChunk(storeContext,messageId, 0);
 
             AMQDataBlock firstContentBody = new AMQFrame(channelId, getProtocolSession().getMethodRegistry().getProtocolVersionMethodConverter().convertToBody(cb));
-            AMQDataBlock[] headerAndFirstContent = new AMQDataBlock[]{contentHeader, firstContentBody};
-            CompositeAMQDataBlock compositeBlock = new CompositeAMQDataBlock(deliver, headerAndFirstContent);
+            AMQDataBlock[] blocks = new AMQDataBlock[]{deliver, contentHeader, firstContentBody};
+            CompositeAMQDataBlock compositeBlock = new CompositeAMQDataBlock(blocks);
             writeFrame(compositeBlock);
 
             //
@@ -151,8 +151,8 @@
             ContentChunk cb = messageHandle.getContentChunk(storeContext,messageId, 0);
 
             AMQDataBlock firstContentBody = new AMQFrame(channelId, getProtocolSession().getMethodRegistry().getProtocolVersionMethodConverter().convertToBody(cb));
-            AMQDataBlock[] headerAndFirstContent = new AMQDataBlock[]{contentHeader, firstContentBody};
-            CompositeAMQDataBlock compositeBlock = new CompositeAMQDataBlock(deliver, headerAndFirstContent);
+            AMQDataBlock[] blocks = new AMQDataBlock[]{deliver, contentHeader, firstContentBody};
+            CompositeAMQDataBlock compositeBlock = new CompositeAMQDataBlock(blocks);
             writeFrame(compositeBlock);
 
             //
@@ -247,14 +247,13 @@
         if (bodyFrameIterator.hasNext())
         {
             AMQDataBlock firstContentBody = bodyFrameIterator.next();
-            AMQDataBlock[] headerAndFirstContent = new AMQDataBlock[]{contentHeader, firstContentBody};
-            CompositeAMQDataBlock compositeBlock = new CompositeAMQDataBlock(returnFrame, headerAndFirstContent);
+            AMQDataBlock[] blocks = new AMQDataBlock[]{returnFrame, contentHeader, firstContentBody};
+            CompositeAMQDataBlock compositeBlock = new CompositeAMQDataBlock(blocks);
             writeFrame(compositeBlock);
         }
         else
         {
-            CompositeAMQDataBlock compositeBlock = new CompositeAMQDataBlock(returnFrame,
-                                                                             new AMQDataBlock[]{contentHeader});
+            CompositeAMQDataBlock compositeBlock = new CompositeAMQDataBlock(new AMQDataBlock[]{returnFrame, contentHeader});
 
             writeFrame(compositeBlock);
         }

Modified: incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/output/amqp0_9/ProtocolOutputConverterImpl.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/output/amqp0_9/ProtocolOutputConverterImpl.java?rev=631938&r1=631937&r2=631938&view=diff
==============================================================================
--- incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/output/amqp0_9/ProtocolOutputConverterImpl.java (original)
+++ incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/output/amqp0_9/ProtocolOutputConverterImpl.java Thu Feb 28 04:16:41 2008
@@ -12,11 +12,14 @@
 import org.apache.qpid.framing.*;
 import org.apache.qpid.framing.abstraction.ContentChunk;
 import org.apache.qpid.framing.abstraction.MessagePublishInfo;
+import org.apache.qpid.framing.abstraction.ProtocolVersionMethodConverter;
 import org.apache.qpid.AMQException;
+import org.apache.qpid.protocol.AMQVersionAwareProtocolSession;
 
 public class ProtocolOutputConverterImpl implements ProtocolOutputConverter
 {
     private static final MethodRegistry METHOD_REGISTRY = MethodRegistry.getMethodRegistry(ProtocolVersion.v0_9);
+    private static final ProtocolVersionMethodConverter PROTOCOL_METHOD_CONVERTER = METHOD_REGISTRY.getProtocolVersionMethodConverter();
 
 
     public static Factory getInstanceFactory()
@@ -47,10 +50,9 @@
     public void writeDeliver(AMQMessage message, int channelId, long deliveryTag, AMQShortString consumerTag)
             throws AMQException
     {
-        AMQDataBlock deliver = createEncodedDeliverFrame(message, channelId, deliveryTag, consumerTag);
+        AMQBody deliverBody = createEncodedDeliverFrame(message, channelId, deliveryTag, consumerTag);
         final ContentHeaderBody contentHeaderBody = message.getContentHeaderBody();
-        AMQDataBlock contentHeader = ContentHeaderBody.createAMQFrame(channelId,
-                                                                      contentHeaderBody);
+
 
         final AMQMessageHandle messageHandle = message.getMessageHandle();
         final StoreContext storeContext = message.getStoreContext();
@@ -60,8 +62,8 @@
 
         if(bodyCount == 0)
         {
-            SmallCompositeAMQDataBlock compositeBlock = new SmallCompositeAMQDataBlock(deliver,
-                                                                             contentHeader);
+            SmallCompositeAMQBodyBlock compositeBlock = new SmallCompositeAMQBodyBlock(channelId, deliverBody,
+                                                                             contentHeaderBody);
 
             writeFrame(compositeBlock);
         }
@@ -75,9 +77,9 @@
             //
             ContentChunk cb = messageHandle.getContentChunk(storeContext,messageId, 0);
 
-            AMQDataBlock firstContentBody = new AMQFrame(channelId, getProtocolSession().getMethodRegistry().getProtocolVersionMethodConverter().convertToBody(cb));
-            AMQDataBlock[] headerAndFirstContent = new AMQDataBlock[]{contentHeader, firstContentBody};
-            CompositeAMQDataBlock compositeBlock = new CompositeAMQDataBlock(deliver, headerAndFirstContent);
+            AMQBody firstContentBody = PROTOCOL_METHOD_CONVERTER.convertToBody(cb);
+
+            CompositeAMQBodyBlock compositeBlock = new CompositeAMQBodyBlock(channelId, deliverBody, contentHeaderBody, firstContentBody);
             writeFrame(compositeBlock);
 
             //
@@ -86,7 +88,7 @@
             for(int i = 1; i < bodyCount; i++)
             {
                 cb = messageHandle.getContentChunk(storeContext,messageId, i);
-                writeFrame(new AMQFrame(channelId, getProtocolSession().getMethodRegistry().getProtocolVersionMethodConverter().convertToBody(cb)));
+                writeFrame(new AMQFrame(channelId, PROTOCOL_METHOD_CONVERTER.convertToBody(cb)));
             }
 
 
@@ -95,6 +97,14 @@
 
     }
 
+    private AMQDataBlock createContentHeaderBlock(final int channelId, final ContentHeaderBody contentHeaderBody)
+    {
+        
+        AMQDataBlock contentHeader = ContentHeaderBody.createAMQFrame(channelId,
+                                                                      contentHeaderBody);
+        return contentHeader;
+    }
+
 
     public void writeGetOk(AMQMessage message, int channelId, long deliveryTag, int queueSize) throws AMQException
     {
@@ -106,8 +116,7 @@
         AMQFrame deliver = createEncodedGetOkFrame(message, channelId, deliveryTag, queueSize);
 
 
-        AMQDataBlock contentHeader = ContentHeaderBody.createAMQFrame(channelId,
-                                                                      message.getContentHeaderBody());
+        AMQDataBlock contentHeader = createContentHeaderBlock(channelId, message.getContentHeaderBody());
 
         final int bodyCount = messageHandle.getBodyCount(storeContext,messageId);
         if(bodyCount == 0)
@@ -126,9 +135,9 @@
             //
             ContentChunk cb = messageHandle.getContentChunk(storeContext,messageId, 0);
 
-            AMQDataBlock firstContentBody = new AMQFrame(channelId, getProtocolSession().getMethodRegistry().getProtocolVersionMethodConverter().convertToBody(cb));
-            AMQDataBlock[] headerAndFirstContent = new AMQDataBlock[]{contentHeader, firstContentBody};
-            CompositeAMQDataBlock compositeBlock = new CompositeAMQDataBlock(deliver, headerAndFirstContent);
+            AMQDataBlock firstContentBody = new AMQFrame(channelId, PROTOCOL_METHOD_CONVERTER.convertToBody(cb));
+            AMQDataBlock[] blocks = new AMQDataBlock[]{deliver, contentHeader, firstContentBody};
+            CompositeAMQDataBlock compositeBlock = new CompositeAMQDataBlock(blocks);
             writeFrame(compositeBlock);
 
             //
@@ -137,7 +146,7 @@
             for(int i = 1; i < bodyCount; i++)
             {
                 cb = messageHandle.getContentChunk(storeContext, messageId, i);
-                writeFrame(new AMQFrame(channelId, getProtocolSession().getMethodRegistry().getProtocolVersionMethodConverter().convertToBody(cb)));
+                writeFrame(new AMQFrame(channelId, PROTOCOL_METHOD_CONVERTER.convertToBody(cb)));
             }
 
 
@@ -147,7 +156,7 @@
     }
 
 
-    private AMQDataBlock createEncodedDeliverFrame(AMQMessage message, final int channelId, final long deliveryTag, final AMQShortString consumerTag)
+    private AMQBody createEncodedDeliverFrame(AMQMessage message, final int channelId, final long deliveryTag, final AMQShortString consumerTag)
             throws AMQException
     {
         final MessagePublishInfo pb = message.getMessagePublishInfo();
@@ -158,23 +167,53 @@
         final AMQShortString exchangeName = pb.getExchange();
         final AMQShortString routingKey = pb.getRoutingKey();
 
-        final AMQDataBlock returnBlock = new DeferredDataBlock()
+        final AMQBody returnBlock = new AMQBody()
         {
 
-            protected AMQDataBlock createAMQDataBlock()
+            public AMQBody _underlyingBody;
+
+            public AMQBody createAMQBody()
             {
-                BasicDeliverBody deliverBody =
-                        METHOD_REGISTRY.createBasicDeliverBody(consumerTag,
+                return METHOD_REGISTRY.createBasicDeliverBody(consumerTag,
                                                               deliveryTag,
                                                               isRedelivered,
                                                               exchangeName,
                                                               routingKey);
-                AMQFrame deliverFrame = deliverBody.generateFrame(channelId);
 
 
-                return deliverFrame;
+
+
 
             }
+
+            public byte getFrameType()
+            {
+                return AMQMethodBody.TYPE;
+            }
+
+            public int getSize()
+            {
+                if(_underlyingBody == null)
+                {
+                    _underlyingBody = createAMQBody();
+                }
+                return _underlyingBody.getSize();
+            }
+
+            public void writePayload(ByteBuffer buffer)
+            {
+                if(_underlyingBody == null)
+                {
+                    _underlyingBody = createAMQBody();
+                }
+                _underlyingBody.writePayload(buffer);
+            }
+
+            public void handle(final int channelId, final AMQVersionAwareProtocolSession amqMinaProtocolSession)
+                throws AMQException
+            {
+                throw new AMQException(null, "This block should never be dispatched!", null);
+            }
         };
         return returnBlock;
     }
@@ -225,8 +264,7 @@
     {
         AMQDataBlock returnFrame = createEncodedReturnFrame(message, channelId, replyCode, replyText);
 
-        AMQDataBlock contentHeader = ContentHeaderBody.createAMQFrame(channelId,
-                                                                      message.getContentHeaderBody());
+        AMQDataBlock contentHeader = createContentHeaderBlock(channelId, message.getContentHeaderBody());
 
         Iterator<AMQDataBlock> bodyFrameIterator = message.getBodyFrameIterator(getProtocolSession(), channelId);
         //
@@ -236,14 +274,13 @@
         if (bodyFrameIterator.hasNext())
         {
             AMQDataBlock firstContentBody = bodyFrameIterator.next();
-            AMQDataBlock[] headerAndFirstContent = new AMQDataBlock[]{contentHeader, firstContentBody};
-            CompositeAMQDataBlock compositeBlock = new CompositeAMQDataBlock(returnFrame, headerAndFirstContent);
+            AMQDataBlock[] blocks = new AMQDataBlock[]{returnFrame, contentHeader, firstContentBody};
+            CompositeAMQDataBlock compositeBlock = new CompositeAMQDataBlock(blocks);
             writeFrame(compositeBlock);
         }
         else
         {
-            CompositeAMQDataBlock compositeBlock = new CompositeAMQDataBlock(returnFrame,
-                                                                             new AMQDataBlock[]{contentHeader});
+            CompositeAMQDataBlock compositeBlock = new CompositeAMQDataBlock(new AMQDataBlock[]{returnFrame, contentHeader});
 
             writeFrame(compositeBlock);
         }
@@ -272,4 +309,64 @@
         writeFrame(basicCancelOkBody.generateFrame(channelId));
 
     }
+
+
+    public static final class CompositeAMQBodyBlock extends AMQDataBlock
+    {
+        public static final int OVERHEAD = 3 * AMQFrame.getFrameOverhead();
+
+        private final AMQBody _methodBody;
+        private final AMQBody _headerBody;
+        private final AMQBody _contentBody;
+        private final int _channel;
+
+
+        public CompositeAMQBodyBlock(int channel, AMQBody methodBody, AMQBody headerBody, AMQBody contentBody)
+        {
+            _channel = channel;
+            _methodBody = methodBody;
+            _headerBody = headerBody;
+            _contentBody = contentBody;
+
+        }
+
+        public long getSize()
+        {
+            return OVERHEAD + _methodBody.getSize() + _headerBody.getSize() + _contentBody.getSize();
+        }
+
+        public void writePayload(ByteBuffer buffer)
+        {
+            AMQFrame.writeFrames(buffer, _channel, _methodBody, _headerBody, _contentBody);
+        }
+    }
+
+    public static final class SmallCompositeAMQBodyBlock extends AMQDataBlock
+    {
+        public static final int OVERHEAD = 2 * AMQFrame.getFrameOverhead();
+
+        private final AMQBody _methodBody;
+        private final AMQBody _headerBody;
+        private final int _channel;
+
+
+        public SmallCompositeAMQBodyBlock(int channel, AMQBody methodBody, AMQBody headerBody)
+        {
+            _channel = channel;
+            _methodBody = methodBody;
+            _headerBody = headerBody;
+
+        }
+
+        public long getSize()
+        {
+            return OVERHEAD + _methodBody.getSize() + _headerBody.getSize() ;
+        }
+
+        public void writePayload(ByteBuffer buffer)
+        {
+            AMQFrame.writeFrames(buffer, _channel, _methodBody, _headerBody);
+        }
+    }
+
 }

Modified: incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java?rev=631938&r1=631937&r2=631938&view=diff
==============================================================================
--- incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java (original)
+++ incubator/qpid/branches/thegreatmerge/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java Thu Feb 28 04:16:41 2008
@@ -21,7 +21,6 @@
 
 import java.io.File;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -30,7 +29,6 @@
 import org.apache.felix.framework.cache.BundleCache;
 import org.apache.felix.framework.util.FelixConstants;
 import org.apache.felix.framework.util.StringMap;
-import org.apache.qpid.server.exchange.Exchange;
 import org.apache.qpid.server.exchange.ExchangeType;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleException;
@@ -72,7 +70,7 @@
                 "org.apache.qpid.server.queue; version=0.2.1," +
                 "javax.management.openmbean; version=1.0.0,"+
                 "javax.management; version=1.0.0,"+
-                "uk.co.thebadgerset.junit.extensions.util; version=0.6.1,"                
+                "org.apache.qpid.junit.extensions.util; version=0.6.1,"
                 );
         
         if (plugindir == null)