You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kg...@apache.org on 2011/09/19 17:13:38 UTC

svn commit: r1172657 [20/21] - in /qpid/branches/qpid-3346/qpid: ./ cpp/ cpp/bindings/ cpp/bindings/qmf2/examples/cpp/ cpp/bindings/qpid/dotnet/ cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/Properties/ cpp/bindings/qpid/dotnet/examples/csha...

Modified: qpid/branches/qpid-3346/qpid/java/test-profiles/CPPExcludes
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/test-profiles/CPPExcludes?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/test-profiles/CPPExcludes (original)
+++ qpid/branches/qpid-3346/qpid/java/test-profiles/CPPExcludes Mon Sep 19 15:13:18 2011
@@ -17,11 +17,17 @@
 // under the License.
 //
 
+// QPID-3391: the C++ broker does not currently validate the exchange creation arguments
+org.apache.qpid.test.client.destination.AddressBasedDestinationTest#testCreateExchangeWithNonsenseArgs
+
+//This test requires SSL, but SSL is only enabled for the C++ broker in the cpp.ssl test profile
+//which runs *all* the tests with SSL, so this one can be excluded safely enough
+org.apache.qpid.test.unit.client.AMQSSLConnectionTest#*
+
 org.apache.qpid.test.unit.client.channelclose.ChannelCloseTest#*
 org.apache.qpid.client.ResetMessageListenerTest#*
 
 // This test is not finished
-org.apache.qpid.test.testcases.TTLTest#*
 org.apache.qpid.test.client.failover.FailoverTest#test4MinuteFailover
 
 // Those tests are testing 0.8 specific semantics
@@ -141,9 +147,6 @@ org.apache.qpid.test.unit.ack.FailoverBe
 
 org.apache.qpid.test.client.RollbackOrderTest#testOrderingAfterRollbackOnMessage#*
 
-// Temporarily adding the following until the issues are sorted out.
-org.apache.qpid.test.unit.client.AMQConnectionTest#testHeartBeat
-
 //Excluded due to QPID-1447 : CPP broker does not have SlowConsumer Disconnection
 org.apache.qpid.systest.GlobalQueuesTest#*
 org.apache.qpid.systest.GlobalTopicsTest#*
@@ -177,3 +180,14 @@ org.apache.qpid.server.management.AMQUse
 // QPID-3133: On 0-10, the exception listener is currently not invoked when reconnection fails to occurs.
 org.apache.qpid.server.failover.FailoverMethodTest#*
 
+//QPID-3468: exclude QueueBrowser related failover tests
+org.apache.qpid.test.client.QueueBrowserAutoAckTest#testFailoverWithQueueBrowser
+org.apache.qpid.test.client.QueueBrowserAutoAckTest#testFailoverAsQueueBrowserCreated
+org.apache.qpid.test.client.QueueBrowserClientAckTest#testFailoverWithQueueBrowser
+org.apache.qpid.test.client.QueueBrowserClientAckTest#testFailoverAsQueueBrowserCreated
+org.apache.qpid.test.client.QueueBrowserNoAckTest#testFailoverWithQueueBrowser
+org.apache.qpid.test.client.QueueBrowserNoAckTest#testFailoverAsQueueBrowserCreated
+org.apache.qpid.test.client.QueueBrowserPreAckTest#testFailoverWithQueueBrowser
+org.apache.qpid.test.client.QueueBrowserPreAckTest#testFailoverAsQueueBrowserCreated
+org.apache.qpid.test.client.QueueBrowserDupsOkTest#testFailoverWithQueueBrowser
+org.apache.qpid.test.client.QueueBrowserDupsOkTest#testFailoverAsQueueBrowserCreated

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/CPPExcludes
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/010Excludes:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/010Excludes:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/CPPExcludes:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/CPPExcludes:1156188
+/qpid/trunk/qpid/java/test-profiles/CPPExcludes:1144319-1172654

Modified: qpid/branches/qpid-3346/qpid/java/test-profiles/Excludes
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/test-profiles/Excludes?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/test-profiles/Excludes (original)
+++ qpid/branches/qpid-3346/qpid/java/test-profiles/Excludes Mon Sep 19 15:13:18 2011
@@ -17,12 +17,6 @@
 // under the License.
 //
 
-// QPID-1715, QPID-1715 : Client Error Handling on close is still broken
-org.apache.qpid.server.queue.QueueCreateTest#testCreatePriorityString
-org.apache.qpid.server.queue.QueueCreateTest#testCreateFlowToDiskValidNoSize
-org.apache.qpid.server.queue.QueueCreateTest#testCreateFlowToDiskInvalid
-org.apache.qpid.server.queue.QueueCreateTest#testCreateFlowToDiskInvalidSize
-
 //
 // QPID-2031 : Broker is not cleanly shutdown by QpidTestCase
 //
@@ -32,7 +26,7 @@ org.apache.qpid.server.logging.BrokerLog
 org.apache.qpid.server.logging.VirtualHostLoggingTest#testVirtualhostClosure
 org.apache.qpid.server.logging.MemoryMessageStoreLoggingTest#testMessageStoreClose
 
-// QPID-XXX : Test fails to start external broker due to Derby Exception.
+// QPID-3424 : Test fails to start external broker due to Derby Exception.
 org.apache.qpid.server.logging.DerbyMessageStoreLoggingTest#*
 
 // QPID-1816 : Client Ack has not been addressed
@@ -49,3 +43,5 @@ org.apache.qpid.test.unit.ack.Acknowledg
 
 // QPID-2418 : The queue backing the dur sub is not currently deleted at subscription change, so the test will fail.
 org.apache.qpid.test.unit.ct.DurableSubscriberTest#testResubscribeWithChangedSelectorAndRestart
+
+org.apache.qpid.client.ssl.SSLTest#testVerifyLocalHostLocalDomain

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/Excludes
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/Excludes:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/Excludes:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/Excludes:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/Excludes:1156188
+/qpid/trunk/qpid/java/test-profiles/Excludes:1144319-1172654

Modified: qpid/branches/qpid-3346/qpid/java/test-profiles/Java010Excludes
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/test-profiles/Java010Excludes?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/test-profiles/Java010Excludes (original)
+++ qpid/branches/qpid-3346/qpid/java/test-profiles/Java010Excludes Mon Sep 19 15:13:18 2011
@@ -37,9 +37,6 @@ org.apache.qpid.test.client.FlowControlT
 // 0-10 protocol doesn't support message bouncing
 org.apache.qpid.server.exchange.ReturnUnroutableMandatoryMessageTest#*
 
-// QPID-1727 , QPID-1726 :c++ broker does not support flow to disk on transient queues. Also it requries a persistent store impl. for Apache
-org.apache.qpid.test.client.QueueBrowsingFlowToDiskTest#*
-
 // 0-10 and 0-9 connections dont generate the exact same logging due to protocol differences
 org.apache.qpid.server.logging.ChannelLoggingTest#testChannelStartsFlowStopped
 org.apache.qpid.server.logging.ChannelLoggingTest#testChannelStartConsumerFlowStarted
@@ -49,9 +46,6 @@ org.apache.qpid.server.logging.Subscript
 org.apache.qpid.management.jmx.ManagementActorLoggingTest#testConnectionCloseViaManagement
 org.apache.qpid.management.jmx.MessageConnectionStatisticsTest#*
 
-// 0-10 has different ideas about clientid and ownership of queues
-org.apache.qpid.server.queue.ModelTest#*
-
 // 0-10 is not supported by the MethodRegistry
 org.apache.qpid.test.unit.close.JavaServerCloseRaceConditionTest#*
 
@@ -61,24 +55,41 @@ org.apache.qpid.server.queue.ProducerFlo
 //QPID-1950 : Commit to test this failure. This is a MINA only failure so it cannot be tested when using 010.
 org.apache.qpid.server.failover.MessageDisappearWithIOExceptionTest#*
 
-//QPID-2471 : Issues with 0-10 recovery
-org.apache.qpid.test.unit.ack.RecoverTest#testRecoverInAutoAckListener
-org.apache.qpid.test.unit.ack.FailoverBeforeConsumingRecoverTest#testRecoverInAutoAckListener
-
-// Temporarily disabling until properly investigated.
+//QPID-3421: tests are failing on 0.10 test profile
 org.apache.qpid.test.unit.publish.DirtyTransactedPublishTest#*
 
-//rollback with subscriptions does not work in 0-10 yet
+//QPID-1864: rollback with subscriptions does not work in 0-10 yet
 org.apache.qpid.test.client.RollbackOrderTest#testOrderingAfterRollbackOnMessage
-org.apache.qpid.test.unit.ack.RecoverTest#testRecoverInAutoAckListener
 
 // This test uses 0-8 channel frames
 org.apache.qpid.test.unit.client.channelclose.ChannelCloseTest#*
 
-//Temporarily adding the following until the issues are sorted out.
-//Should probably raise JIRAs for them.
-org.apache.qpid.test.client.destination.AddressBasedDestinationTest#testCreateExchange
+//QPID-3422: test fails because ring queue is not implemented on java broker
 org.apache.qpid.test.client.destination.AddressBasedDestinationTest#testBrowseMode
 
 // QPID-3133: On 0-10, the exception listener is currently not invoked when reconnection fails to occurs. 
 org.apache.qpid.server.failover.FailoverMethodTest#*
+
+// QPID-3392: the Java broker does not yet implement exchange creation arguments
+org.apache.qpid.test.client.destination.AddressBasedDestinationTest#testCreateExchangeWithArgs
+org.apache.qpid.test.client.destination.AddressBasedDestinationTest#testSessionCreateTopicWithExchangeArgs
+
+// QPID-1935: the following tests are failing on 0.10 profiles
+org.apache.qpid.test.client.QueueBrowserTransactedTest#testFailoverAsQueueBrowserCreated
+org.apache.qpid.test.client.QueueBrowserTransactedTest#testFailoverWithQueueBrowser
+
+// QPID-3432: These tests test the behaviour of 0-8..-0-9-1 specific system property (amqj.default_syncwrite_timeout)
+org.apache.qpid.test.client.timeouts.SyncWaitTimeoutDelayTest#*
+org.apache.qpid.test.client.timeouts.SyncWaitDelayTest#*
+
+//QPID-3468: exclude QueueBrowser related failover tests
+org.apache.qpid.test.client.QueueBrowserAutoAckTest#testFailoverWithQueueBrowser
+org.apache.qpid.test.client.QueueBrowserAutoAckTest#testFailoverAsQueueBrowserCreated
+org.apache.qpid.test.client.QueueBrowserClientAckTest#testFailoverWithQueueBrowser
+org.apache.qpid.test.client.QueueBrowserClientAckTest#testFailoverAsQueueBrowserCreated
+org.apache.qpid.test.client.QueueBrowserNoAckTest#testFailoverWithQueueBrowser
+org.apache.qpid.test.client.QueueBrowserNoAckTest#testFailoverAsQueueBrowserCreated
+org.apache.qpid.test.client.QueueBrowserPreAckTest#testFailoverWithQueueBrowser
+org.apache.qpid.test.client.QueueBrowserPreAckTest#testFailoverAsQueueBrowserCreated
+org.apache.qpid.test.client.QueueBrowserDupsOkTest#testFailoverWithQueueBrowser
+org.apache.qpid.test.client.QueueBrowserDupsOkTest#testFailoverAsQueueBrowserCreated

Modified: qpid/branches/qpid-3346/qpid/java/test-profiles/JavaExcludes
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/test-profiles/JavaExcludes?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/test-profiles/JavaExcludes (original)
+++ qpid/branches/qpid-3346/qpid/java/test-profiles/JavaExcludes Mon Sep 19 15:13:18 2011
@@ -17,31 +17,9 @@
 // under the License.
 //
 
-// Those tests are not finished
-org.apache.qpid.test.testcases.TTLTest#*
-
 // QPID-1823: this takes ages to run
 org.apache.qpid.client.SessionCreateTest#*
 
-// related to QPID-2471. Temporarily disabling these tests until I figure out why they are failing with the Java broker.
-org.apache.qpid.test.unit.ack.RecoverTest#testRecoverResendsMsgs
-org.apache.qpid.test.unit.ack.RecoverTest#testRecoverResendsMsgsAckOnEarlier
-org.apache.qpid.test.unit.ack.RecoverTest#testAcknowledgePerConsumer
-org.apache.qpid.test.unit.ack.FailoverBeforeConsumingRecoverTest#testRecoverResendsMsgs
-org.apache.qpid.test.unit.ack.FailoverBeforeConsumingRecoverTest#testRecoverResendsMsgsAckOnEarlier
-org.apache.qpid.test.unit.ack.FailoverBeforeConsumingRecoverTest#testAcknowledgePerConsumer
-
-// related to QPID-2471. These are new test cases and fail with the Java broker.
-org.apache.qpid.test.unit.ack.RecoverTest#testOderingWithAsyncConsumer
-org.apache.qpid.test.unit.ack.RecoverTest#testOderingWithSyncConsumer
-org.apache.qpid.test.unit.ack.FailoverBeforeConsumingRecoverTest#testOderingWithAsyncConsumer
-org.apache.qpid.test.unit.ack.FailoverBeforeConsumingRecoverTest#testOderingWithSyncConsumer
-
-org.apache.qpid.test.client.queue.LVQTest#*
-
-// Session resume is not supported in the Java client
-org.apache.qpid.transport.ConnectionTest#testResumeNonemptyReplayBuffer
-
 //QPID-2845: The queue policy types used by the C++ broker are not currently supported by the Java broker
 org.apache.qpid.test.client.queue.QueuePolicyTest#testRingPolicy
 org.apache.qpid.test.client.queue.QueuePolicyTest#testRejectPolicy
@@ -50,40 +28,18 @@ org.apache.qpid.test.client.queue.QueueP
 //Moved from JavaStandaloneExcludes when it was removed
 ///////////////////////////////////////////////////////
 
+// QPID-3426: The following test is broken.
 // This is a long running test so should exclude from normal runs
 org.apache.qpid.test.client.failover.FailoverTest#test4MinuteFailover
 
-// Those tests require failover support
-org.apache.qpid.test.client.QueueBrowserAutoAckTest#testFailoverAsQueueBrowserCreated
-org.apache.qpid.test.client.QueueBrowserAutoAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserClientAckTest#testFailoverAsQueueBrowserCreated
-org.apache.qpid.test.client.QueueBrowserClientAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserDupsOkTest#testFailoverAsQueueBrowserCreated
-org.apache.qpid.test.client.QueueBrowserDupsOkTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserNoAckTest#testFailoverAsQueueBrowserCreated
-org.apache.qpid.test.client.QueueBrowserNoAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserPreAckTest#testFailoverAsQueueBrowserCreated
-org.apache.qpid.test.client.QueueBrowserPreAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserTransactedTest#testFailoverAsQueueBrowserCreated
-org.apache.qpid.test.client.QueueBrowserTransactedTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.testcases.FailoverTest#*
-org.apache.qpid.test.client.failover.FailoverTest#*
-
-// InVM Broker tests awaiting resolution of QPID-1103
-org.apache.qpid.test.client.timeouts.SyncWaitDelayTest#*
-org.apache.qpid.test.client.timeouts.SyncWaitTimeoutDelayTest#*
-
-// This test currently does not pick up the runtime location of the nonVm queueBacking store.
-org.apache.qpid.test.unit.close.FlowToDiskBackingQueueDeleteTest#*
-
 // This test may use QpidTestCase but it is not using the getConnection and is hardwired to InVM
 org.apache.qpid.test.unit.client.connection.CloseAfterConnectionFailureTest#*
 
-//QPID-1818 : Client code path does not correctly restore a transacted session after failover.
+//QPID-1818, QPID-1821 : Client code path does not correctly restore a transacted session after failover.
 org.apache.qpid.server.persistent.NoLocalAfterRecoveryTest#*
 
-// This test requires the standard configuration file for validation.
-// Excluding here does not reduce test coverage.
-org.apache.qpid.server.configuration.ServerConfigurationFileTest#*
-
+//XA functionality is not fully implemented yet
+org.apache.qpid.jms.xa.XAResourceTest#*
 
+//The Java broker doesnt support client auth
+org.apache.qpid.client.ssl.SSLTest#testMultipleCertsInSingleStore

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/JavaExcludes
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/08Excludes:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/08Excludes:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/JavaExcludes:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/JavaExcludes:1156188
+/qpid/trunk/qpid/java/test-profiles/JavaExcludes:1144319-1172654

Modified: qpid/branches/qpid-3346/qpid/java/test-profiles/JavaPre010Excludes
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/test-profiles/JavaPre010Excludes?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/test-profiles/JavaPre010Excludes (original)
+++ qpid/branches/qpid-3346/qpid/java/test-profiles/JavaPre010Excludes Mon Sep 19 15:13:18 2011
@@ -27,7 +27,7 @@ org.apache.qpid.test.client.message.JMSD
 // QPID-2478 test fails when run against broker using 0-8/9
 org.apache.qpid.test.client.message.JMSDestinationTest#testGetDestinationWithCustomExchange
 
-// The new addressing based sytanx is not supported for AMQP 0-8/0-9 versions
+// The new addressing based syntax is not supported for AMQP 0-8/0-9 versions
 org.apache.qpid.test.client.destination.AddressBasedDestinationTest#*
 org.apache.qpid.test.client.queue.QueuePolicyTest#testRingPolicy
 org.apache.qpid.test.client.queue.QueuePolicyTest#testRejectPolicy
@@ -37,6 +37,26 @@ org.apache.qpid.test.unit.message.JMSPro
 org.apache.qpid.test.unit.message.UTF8Test#*
 org.apache.qpid.client.MessageListenerTest#testSynchronousReceiveNoWait
 
+// Tests 0.10 client feature
 org.apache.qpid.test.unit.client.connection.ConnectionTest#testUnsupportedSASLMechanism
 
-org.apache.qpid.test.unit.message.JMSPropertiesTest#testGetPropertyNames
+// uses AMQP 0-10 related properties
+org.apache.qpid.test.unit.message.JMSPropertiesTest#testQpidExtensionProperties
+
+// QPID-3034: tests are passing on 0.10 profiles but failing on 0.9.1 profiles
+org.apache.qpid.test.unit.ack.RecoverTest#testRecoverResendsMsgs
+org.apache.qpid.test.unit.ack.RecoverTest#testRecoverResendsMsgsAckOnEarlier
+org.apache.qpid.test.unit.ack.RecoverTest#testAcknowledgePerConsumer
+org.apache.qpid.test.unit.ack.FailoverBeforeConsumingRecoverTest#testRecoverResendsMsgs
+org.apache.qpid.test.unit.ack.FailoverBeforeConsumingRecoverTest#testRecoverResendsMsgsAckOnEarlier
+org.apache.qpid.test.unit.ack.FailoverBeforeConsumingRecoverTest#testAcknowledgePerConsumer
+org.apache.qpid.test.unit.ack.RecoverTest#testOderingWithSyncConsumer
+org.apache.qpid.test.unit.ack.FailoverBeforeConsumingRecoverTest#testOderingWithSyncConsumer
+
+
+// LVQ tests use new address syntax and can not be run on 0.9.1 profiles
+org.apache.qpid.test.client.queue.LVQTest#*
+
+// Verification of unique client id is 0-10 specific
+org.apache.qpid.test.unit.client.connection.ConnectionTest#testClientIDVerificationForSameUser
+org.apache.qpid.test.unit.client.connection.ConnectionTest#testClientIDVerificationForDifferentUsers

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/JavaPre010Excludes
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/08StandaloneExcludes:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/08StandaloneExcludes:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/08StandaloneExcludes:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/JavaPre010Excludes:1156188
+/qpid/trunk/qpid/java/test-profiles/JavaPre010Excludes:1144319-1172654

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/JavaTransientExcludes
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/08TransientExcludes:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/08TransientExcludes:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/JavaTransientExcludes:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/JavaTransientExcludes:1156188
+/qpid/trunk/qpid/java/test-profiles/JavaTransientExcludes:1144319-1172654

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/XAExcludes
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/XAExcludes:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/XAExcludes:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/XAExcludes:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/XAExcludes:1156188
+/qpid/trunk/qpid/java/test-profiles/XAExcludes:1144319-1172654

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/clean-dir
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/clean-dir:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/clean-dir:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/clean-dir:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/clean-dir:1156188
+/qpid/trunk/qpid/java/test-profiles/clean-dir:1144319-1172654

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/cpp.async.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/cpp.async.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/cpp.async.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/cpp.async.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/cpp.async.testprofile:1156188
+/qpid/trunk/qpid/java/test-profiles/cpp.async.testprofile:1144319-1172654

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/cpp.cluster.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/cpp.cluster.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/cpp.cluster.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/cpp.cluster.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/cpp.cluster.testprofile:1156188
+/qpid/trunk/qpid/java/test-profiles/cpp.cluster.testprofile:1144319-1172654

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/cpp.noprefetch.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/cpp.noprefetch.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/cpp.noprefetch.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/cpp.noprefetch.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/cpp.noprefetch.testprofile:1156188
+/qpid/trunk/qpid/java/test-profiles/cpp.noprefetch.testprofile:1144319-1172654

Modified: qpid/branches/qpid-3346/qpid/java/test-profiles/cpp.ssl.excludes
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/test-profiles/cpp.ssl.excludes?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/test-profiles/cpp.ssl.excludes (original)
+++ qpid/branches/qpid-3346/qpid/java/test-profiles/cpp.ssl.excludes Mon Sep 19 15:13:18 2011
@@ -18,3 +18,10 @@
 //
 
 #org.apache.qpid.test.client.failover.FailoverTest#*
+
+//This test does not supply a client keystore, therefore it cant login to the C++ broker
+//in this test profile as it demands client certificate authentication
+org.apache.qpid.client.ssl.SSLTest#testCreateSSLConnectionUsingConnectionURLParamsTrustStoreOnly
+
+//QPID-3431: excluding because this takes 30+ mins to run on the C++ SSL profile for some reason
+org.apache.qpid.client.SessionCreateTest#testSessionCreationLimit

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/cpp.ssl.excludes
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/cpp.ssl.excludes:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/cpp.ssl.excludes:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/cpp.ssl.excludes:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/cpp.ssl.excludes:1156188
+/qpid/trunk/qpid/java/test-profiles/cpp.ssl.excludes:1144319-1172654

Modified: qpid/branches/qpid-3346/qpid/java/test-profiles/cpp.ssl.testprofile
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/test-profiles/cpp.ssl.testprofile?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/test-profiles/cpp.ssl.testprofile (original)
+++ qpid/branches/qpid-3346/qpid/java/test-profiles/cpp.ssl.testprofile Mon Sep 19 15:13:18 2011
@@ -23,7 +23,7 @@ broker.modules=--load-module ${broker.mo
 profile.use_ssl=true
 broker.ready= Listening for SSL connections
 
-javax.net.ssl.keyStore=${test.profiles}/test_resources/ssl/keystore.jks
+javax.net.ssl.keyStore=${test.profiles}/test_resources/ssl/java_client_keystore.jks
 javax.net.ssl.keyStorePassword=password
-javax.net.ssl.trustStore=${test.profiles}/test_resources/ssl/certstore.jks
+javax.net.ssl.trustStore=${test.profiles}/test_resources/ssl/java_client_truststore.jks
 javax.net.ssl.trustStorePassword=password

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/cpp.ssl.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/cpp.ssl.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/cpp.ssl.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/cpp.ssl.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/cpp.ssl.testprofile:1156188
+/qpid/trunk/qpid/java/test-profiles/cpp.ssl.testprofile:1144319-1172654

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/cpp.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/cpp.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/cpp.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/cpp.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/cpp.testprofile:1156188
+/qpid/trunk/qpid/java/test-profiles/cpp.testprofile:1144319-1172654

Modified: qpid/branches/qpid-3346/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile (original)
+++ qpid/branches/qpid-3346/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile Mon Sep 19 15:13:18 2011
@@ -24,7 +24,7 @@ broker.clean=${test.profiles}/clean-dir 
 broker.ready=BRK-1004
 broker.stopped=Exception
 broker.config=${project.root}/build/etc/config-systests-derby.xml
-broker.protocol.excludes=--exclude-0-10 @PORT 
+broker.protocol.excludes=--exclude-0-10 @PORT --exclude-0-10 @SSL_PORT
 messagestore.class.name=org.apache.qpid.server.store.DerbyMessageStore
 profile.excludes=JavaPersistentExcludes JavaPre010Excludes
 broker.clean.between.tests=true

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/java-derby.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/java-derby.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/java-derby.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile:1156188
+/qpid/trunk/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile:1144319-1172654

Modified: qpid/branches/qpid-3346/qpid/java/test-profiles/java-dby.0-9-1.testprofile
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/test-profiles/java-dby.0-9-1.testprofile?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/test-profiles/java-dby.0-9-1.testprofile (original)
+++ qpid/branches/qpid-3346/qpid/java/test-profiles/java-dby.0-9-1.testprofile Mon Sep 19 15:13:18 2011
@@ -24,7 +24,7 @@ broker.clean=${test.profiles}/clean-dir 
 broker.ready=BRK-1004
 broker.stopped=Exception
 broker.config=${project.root}/build/etc/config-systests-derby.xml
-broker.protocol.excludes=--exclude-0-10 @PORT 
+broker.protocol.excludes=--exclude-0-10 @PORT --exclude-0-10 @SSL_PORT
 messagestore.class.name=org.apache.qpid.server.store.DerbyMessageStore
 profile.excludes=JavaPersistentExcludes JavaPre010Excludes
 broker.clean.between.tests=true

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/java-dby.0-9-1.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/java-derby.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/java-derby.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/java-derby.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/java-dby.0-9-1.testprofile:1156188
+/qpid/trunk/qpid/java/test-profiles/java-dby.0-9-1.testprofile:1144319-1172654

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/java.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/java.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/java.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile:1156188
+/qpid/trunk/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile:1144319-1172654

Modified: qpid/branches/qpid-3346/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile (original)
+++ qpid/branches/qpid-3346/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile Mon Sep 19 15:13:18 2011
@@ -23,7 +23,7 @@ broker.command=${project.root}/build/bin
 broker.clean=${test.profiles}/clean-dir ${build.data} ${project.root}/build/work
 broker.ready=BRK-1004
 broker.stopped=Exception
-broker.protocol.excludes=--exclude-0-10 @PORT
+broker.protocol.excludes=--exclude-0-10 @PORT --exclude-0-10 @SSL_PORT
 #
 # Do not enable. Allow client to attempt 0-10 and negotiate downwards 
 #

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/java.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/java.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/java.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile:1156188
+/qpid/trunk/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile:1144319-1172654

Modified: qpid/branches/qpid-3346/qpid/java/test-profiles/java-mms.0-9-1.testprofile
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/test-profiles/java-mms.0-9-1.testprofile?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/test-profiles/java-mms.0-9-1.testprofile (original)
+++ qpid/branches/qpid-3346/qpid/java/test-profiles/java-mms.0-9-1.testprofile Mon Sep 19 15:13:18 2011
@@ -24,7 +24,7 @@ broker.command=${project.root}/build/bin
 broker.clean=${test.profiles}/clean-dir ${build.data} ${project.root}/build/work
 broker.ready=BRK-1004
 broker.stopped=Exception
-broker.protocol.excludes=--exclude-0-10 @PORT
+broker.protocol.excludes=--exclude-0-10 @PORT --exclude-0-10 @SSL_PORT
 #
 # Do not enable. Allow client to attempt 0-10 and negotiate downwards 
 #

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/java-mms.0-9-1.testprofile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/java.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/java.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/java.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/java-mms.0-9-1.testprofile:1156188
+/qpid/trunk/qpid/java/test-profiles/java-mms.0-9-1.testprofile:1144319-1172654

Modified: qpid/branches/qpid-3346/qpid/java/test-profiles/log4j-test.xml
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/test-profiles/log4j-test.xml?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/test-profiles/log4j-test.xml (original)
+++ qpid/branches/qpid-3346/qpid/java/test-profiles/log4j-test.xml Mon Sep 19 15:13:18 2011
@@ -59,10 +59,6 @@
     <level value="ERROR"/>
   </logger>
 
-  <logger name="org.apache.qpid.server.virtualhost.VirtualHostImpl$1HouseKeepingTask">
-    <level value="WARN"/>
-  </logger>
-
   <root>
     <level value="${root.logging.level}"/>
     <appender-ref ref="console" />

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/log4j-test.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -3,4 +3,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/log4j-test.xml:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/log4j-test.xml:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/log4j-test.xml:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/log4j-test.xml:1156188
+/qpid/trunk/qpid/java/test-profiles/log4j-test.xml:1144319-1172654

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/test-provider.properties
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/test-provider.properties:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/test-provider.properties:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/test-provider.properties:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/test-provider.properties:1156188
+/qpid/trunk/qpid/java/test-profiles/test-provider.properties:1144319-1172654

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/test_resources/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/test_resources:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/test_resources:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/test_resources:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/test_resources:1156188
+/qpid/trunk/qpid/java/test-profiles/test_resources:1144319-1172654

Modified: qpid/branches/qpid-3346/qpid/java/test-profiles/testprofile.defaults
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/test-profiles/testprofile.defaults?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/test-profiles/testprofile.defaults (original)
+++ qpid/branches/qpid-3346/qpid/java/test-profiles/testprofile.defaults Mon Sep 19 15:13:18 2011
@@ -20,7 +20,7 @@ java.naming.factory.initial=org.apache.q
 java.naming.provider.url=${test.profiles}/test-provider.properties
 
 broker.clean=${test.profiles}/clean-dir ${build.data} ${project.root}/build/work
-broker.ready=Listening on TCP port
+broker.ready=Listening on TCP
 broker.config=${project.root}/build/etc/config-systests.xml
 messagestore.class.name=org.apache.qpid.server.store.MemoryMessageStore
 broker.protocol.excludes=

Propchange: qpid/branches/qpid-3346/qpid/java/test-profiles/testprofile.defaults
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-broker-0-10/qpid/java/test-profiles/default.testprofile:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/test-profiles/default.testprofile:805429-821809
 /qpid/branches/qpid-2935/qpid/java/test-profiles/default.testprofile:1061302-1072333
-/qpid/trunk/qpid/java/test-profiles/testprofile.defaults:1156188
+/qpid/trunk/qpid/java/test-profiles/testprofile.defaults:1144319-1172654

Modified: qpid/branches/qpid-3346/qpid/java/tools/bin/qpid-bench
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/tools/bin/qpid-bench?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/tools/bin/qpid-bench (original)
+++ qpid/branches/qpid-3346/qpid/java/tools/bin/qpid-bench Mon Sep 19 15:13:18 2011
@@ -18,18 +18,6 @@
 # under the License.
 #
 
-if [ -z "$QPID_HOME" ]; then
-    export QPID_HOME=$(dirname $(dirname $(readlink -f $0)))
-    export PATH=${PATH}:${QPID_HOME}/bin
-fi
+. check-qpid-java-env
 
-# Set classpath to include Qpid jar with all required jars in manifest
-QPID_LIBS=$QPID_HOME/lib/qpid-all.jar
-
-# Set other variables used by the qpid-run script before calling
-export JAVA=java \
-       JAVA_VM=-server \
-       JAVA_MEM=-Xmx1024m \
-       QPID_CLASSPATH=$QPID_LIBS
-
-. qpid-run org.apache.qpid.tools.QpidBench "$@"
+$JAVA -cp $CLASSPATH -server $JAVA_MEM $LOG_CONFIG org.apache.qpid.tools.QpidBench "$@"

Propchange: qpid/branches/qpid-3346/qpid/java/tools/bin/qpid-bench
------------------------------------------------------------------------------
    svn:executable = *

Modified: qpid/branches/qpid-3346/qpid/java/tools/bin/qpid-python-testkit
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/tools/bin/qpid-python-testkit?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/tools/bin/qpid-python-testkit (original)
+++ qpid/branches/qpid-3346/qpid/java/tools/bin/qpid-python-testkit Mon Sep 19 15:13:18 2011
@@ -22,9 +22,12 @@
 # via the python test runner. The defaults are set for a running
 # from an svn checkout
 
-. ./set-testkit-env.sh
+. check-qpid-java-env
 
 export PYTHONPATH=./:$PYTHONPATH
-rm -rf $OUTDIR
-qpid-python-test -DOUTDIR=$OUTDIR  -m testkit "$@"
-
+echo $PYTHONPATH
+if [ "$OUTDIR" = "" ] ; then
+   OUTDIR=$PWD
+fi
+testdir=$OUTDIR/testkit-out-`date +%F-%H-%M-%S`
+qpid-python-test -m testkit -DOUTDIR=$testdir"$@"

Modified: qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/LatencyTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/LatencyTest.java?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/LatencyTest.java (original)
+++ qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/LatencyTest.java Mon Sep 19 15:13:18 2011
@@ -77,7 +77,7 @@ public class LatencyTest extends PerfBas
 
     public LatencyTest()
     {
-        super();
+        super("");
         warmedUp = lock.newCondition();
         testCompleted = lock.newCondition();
         // Storing the following two for efficiency
@@ -314,7 +314,7 @@ public class LatencyTest extends PerfBas
 
     public static void main(String[] args)
     {
-        final LatencyTest latencyTest = new LatencyTest();        
+        final LatencyTest latencyTest = new LatencyTest();
         Runnable r = new Runnable()
         {
             public void run()
@@ -334,16 +334,16 @@ public class LatencyTest extends PerfBas
                 }
             }
         };
-        
+
         Thread t;
         try
         {
-            t = Threading.getThreadFactory().createThread(r);                      
+            t = Threading.getThreadFactory().createThread(r);
         }
         catch(Exception e)
         {
             throw new Error("Error creating latency test thread",e);
         }
-        t.start(); 
+        t.start();
     }
-}
\ No newline at end of file
+}

Modified: qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/PerfBase.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/PerfBase.java?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/PerfBase.java (original)
+++ qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/PerfBase.java Mon Sep 19 15:13:18 2011
@@ -20,36 +20,113 @@
  */
 package org.apache.qpid.tools;
 
+import java.net.InetAddress;
 import java.text.DecimalFormat;
-import java.util.Hashtable;
+import java.util.UUID;
 
 import javax.jms.Connection;
-import javax.jms.ConnectionFactory;
 import javax.jms.Destination;
+import javax.jms.MapMessage;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
 import javax.jms.Session;
-import javax.naming.Context;
-import javax.naming.InitialContext;
 
 import org.apache.qpid.client.AMQAnyDestination;
 import org.apache.qpid.client.AMQConnection;
+import org.apache.qpid.client.AMQDestination;
+import org.apache.qpid.client.AMQSession_0_10;
+import org.apache.qpid.framing.AMQShortString;
+import org.apache.qpid.messaging.Address;
 
 public class PerfBase
 {
+    public final static String CODE = "CODE";
+    public final static String ID = "ID";
+    public final static String REPLY_ADDR = "REPLY_ADDR";
+    public final static String MAX_LATENCY = "MAX_LATENCY";
+    public final static String MIN_LATENCY = "MIN_LATENCY";
+    public final static String AVG_LATENCY = "AVG_LATENCY";
+    public final static String STD_DEV = "STD_DEV";
+    public final static String CONS_RATE = "CONS_RATE";
+    public final static String PROD_RATE = "PROD_RATE";
+    public final static String MSG_COUNT = "MSG_COUNT";
+    public final static String TIMESTAMP = "Timestamp";
+
+    String CONTROLLER_ADDR = System.getProperty("CONT_ADDR","CONTROLLER;{create: always, node:{x-declare:{auto-delete:true}}}");
+
     TestParams params;
     Connection con;
     Session session;
+    Session controllerSession;
     Destination dest;
-    Destination feedbackDest;
+    Destination myControlQueue;
+    Destination controllerQueue;
     DecimalFormat df = new DecimalFormat("###.##");
+    String id;
+    String myControlQueueAddr;
+
+    MessageProducer sendToController;
+    MessageConsumer receiveFromController;
+    String prefix = "";
+
+    enum OPCode {
+        REGISTER_CONSUMER, REGISTER_PRODUCER,
+        PRODUCER_STARTWARMUP, CONSUMER_STARTWARMUP,
+        CONSUMER_READY, PRODUCER_READY,
+        PRODUCER_START,
+        RECEIVED_END_MSG, CONSUMER_STOP,
+        RECEIVED_PRODUCER_STATS, RECEIVED_CONSUMER_STATS,
+        CONTINUE_TEST, STOP_TEST
+    };
+
+    enum MessageType {
+        BYTES, TEXT, MAP, OBJECT;
+
+        public static MessageType getType(String s) throws Exception
+        {
+            if ("text".equalsIgnoreCase(s))
+            {
+                return TEXT;
+            }
+            else if ("bytes".equalsIgnoreCase(s))
+            {
+                return BYTES;
+            }
+            /*else if ("map".equalsIgnoreCase(s))
+            {
+                return MAP;
+            }
+            else if ("object".equalsIgnoreCase(s))
+            {
+                return OBJECT;
+            }*/
+            else
+            {
+                throw new Exception("Unsupported message type");
+            }
+        }
+    };
+
+    MessageType msgType = MessageType.BYTES;
 
-    public PerfBase()
+    public PerfBase(String prefix)
     {
         params = new TestParams();
+        String host = "";
+        try
+        {
+            host = InetAddress.getLocalHost().getHostName();
+        }
+        catch (Exception e)
+        {
+        }
+        id = host + "-" + UUID.randomUUID().toString();
+        this.prefix = prefix;
+        this.myControlQueueAddr = id + ";{create: always}";
     }
 
     public void setUp() throws Exception
-    {        
-
+    {
         if (params.getHost().equals("") || params.getPort() == -1)
         {
             con = new AMQConnection(params.getUrl());
@@ -62,7 +139,78 @@ public class PerfBase
         session = con.createSession(params.isTransacted(),
                                     params.isTransacted()? Session.SESSION_TRANSACTED:params.getAckMode());
 
-        dest = new AMQAnyDestination(params.getAddress());
+        controllerSession = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+        dest = createDestination();
+        controllerQueue = new AMQAnyDestination(CONTROLLER_ADDR);
+        myControlQueue = session.createQueue(myControlQueueAddr);
+        msgType = MessageType.getType(params.getMessageType());
+        System.out.println("Using " + msgType + " messages");
+
+        sendToController = controllerSession.createProducer(controllerQueue);
+        receiveFromController = controllerSession.createConsumer(myControlQueue);
+    }
+
+    private Destination createDestination() throws Exception
+    {
+        if (params.isUseUniqueDests())
+        {
+            System.out.println("Prefix : " + prefix);
+            Address addr = Address.parse(params.getAddress());
+            AMQAnyDestination temp = new AMQAnyDestination(params.getAddress());
+            int type = ((AMQSession_0_10)session).resolveAddressType(temp);
+
+            if ( type == AMQDestination.TOPIC_TYPE)
+            {
+                addr = new Address(addr.getName(),addr.getSubject() + "." + prefix,addr.getOptions());
+                System.out.println("Setting subject : " + addr);
+            }
+            else
+            {
+                addr = new Address(addr.getName() + "_" + prefix,addr.getSubject(),addr.getOptions());
+                System.out.println("Setting name : " + addr);
+            }
+
+            return new AMQAnyDestination(addr);
+        }
+        else
+        {
+            return new AMQAnyDestination(params.getAddress());
+        }
+    }
+
+    public synchronized void sendMessageToController(MapMessage m) throws Exception
+    {
+        m.setString(ID, id);
+        m.setString(REPLY_ADDR,myControlQueueAddr);
+        sendToController.send(m);
+    }
+
+    public void receiveFromController(OPCode expected) throws Exception
+    {
+        MapMessage m = (MapMessage)receiveFromController.receive();
+        OPCode code = OPCode.values()[m.getInt(CODE)];
+        System.out.println("Received Code : " + code);
+        if (expected != code)
+        {
+            throw new Exception("Expected OPCode : " + expected + " but received : " + code);
+        }
+
+    }
+
+    public boolean continueTest() throws Exception
+    {
+        MapMessage m = (MapMessage)receiveFromController.receive();
+        OPCode code = OPCode.values()[m.getInt(CODE)];
+        System.out.println("Received Code : " + code);
+        return (code == OPCode.CONTINUE_TEST);
+    }
+
+    public void tearDown() throws Exception
+    {
+        session.close();
+        controllerSession.close();
+        con.close();
     }
 
     public void handleError(Exception e,String msg)

Modified: qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/PerfConsumer.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/PerfConsumer.java?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/PerfConsumer.java (original)
+++ qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/PerfConsumer.java Mon Sep 19 15:13:18 2011
@@ -20,13 +20,17 @@
  */
 package org.apache.qpid.tools;
 
-import javax.jms.Destination;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+
+import javax.jms.MapMessage;
 import javax.jms.Message;
 import javax.jms.MessageConsumer;
 import javax.jms.MessageListener;
-import javax.jms.MessageProducer;
 import javax.jms.TextMessage;
 
+import org.apache.qpid.client.AMQDestination;
 import org.apache.qpid.thread.Threading;
 
 /**
@@ -47,7 +51,7 @@ import org.apache.qpid.thread.Threading;
  * b) They are on separate machines that have their time synced via a Time Server
  *
  * In order to calculate latency the producer inserts a timestamp
- * hen the message is sent. The consumer will note the current time the message is
+ * when the message is sent. The consumer will note the current time the message is
  * received and will calculate the latency as follows
  * latency = rcvdTime - msg.getJMSTimestamp()
  *
@@ -55,13 +59,9 @@ import org.apache.qpid.thread.Threading;
  * variance in latencies.
  *
  * Avg latency is measured by adding all latencies and dividing by the total msgs.
- * You can also compute this by (rcvdTime - testStartTime)/rcvdMsgCount
  *
  * Throughput
  * ===========
- * System throughput is calculated as follows
- * rcvdMsgCount/(rcvdTime - testStartTime)
- *
  * Consumer rate is calculated as
  * rcvdMsgCount/(rcvdTime - startTime)
  *
@@ -81,130 +81,160 @@ public class PerfConsumer extends PerfBa
     long minLatency = Long.MAX_VALUE;
     long totalLatency = 0;  // to calculate avg latency.
     int rcvdMsgCount = 0;
-    long testStartTime = 0; // to measure system throughput
     long startTime = 0;     // to measure consumer throughput
     long rcvdTime = 0;
     boolean transacted = false;
     int transSize = 0;
 
+    boolean printStdDev = false;
+    List<Long> sample;
+
     final Object lock = new Object();
 
-    public PerfConsumer()
+    public PerfConsumer(String prefix)
     {
-        super();
+        super(prefix);
+        System.out.println("Consumer ID : " + id);
     }
 
     public void setUp() throws Exception
     {
         super.setUp();
         consumer = session.createConsumer(dest);
+        System.out.println("Consumer: " + id + " Receiving messages from : " + ((AMQDestination)dest).getQueueName() + "\n");
 
         // Storing the following two for efficiency
         transacted = params.isTransacted();
         transSize = params.getTransactionSize();
+        printStdDev = params.isPrintStdDev();
+        MapMessage m = controllerSession.createMapMessage();
+        m.setInt(CODE, OPCode.REGISTER_CONSUMER.ordinal());
+        sendMessageToController(m);
     }
 
     public void warmup()throws Exception
     {
-        System.out.println("Warming up......");
-
-        boolean start = false;
-        while (!start)
+        receiveFromController(OPCode.CONSUMER_STARTWARMUP);
+        Message msg = consumer.receive();
+        // This is to ensure we drain the queue before we start the actual test.
+        while ( msg != null)
         {
-            Message msg = consumer.receive();
-            if (msg instanceof TextMessage)
+            if (msg.getBooleanProperty("End") == true)
             {
-                if (((TextMessage)msg).getText().equals("End"))
-                {
-                    start = true;
-                    MessageProducer temp = session.createProducer(msg.getJMSReplyTo());
-                    temp.send(session.createMessage());
-                    if (params.isTransacted())
-                    {
-                        session.commit();
-                    }
-                    temp.close();
-                }
+                // It's more realistic for the consumer to signal this.
+                MapMessage m = controllerSession.createMapMessage();
+                m.setInt(CODE, OPCode.PRODUCER_READY.ordinal());
+                sendMessageToController(m);
             }
+            msg = consumer.receive(1000);
+        }
+
+        if (params.isTransacted())
+        {
+            session.commit();
         }
+
+        MapMessage m = controllerSession.createMapMessage();
+        m.setInt(CODE, OPCode.CONSUMER_READY.ordinal());
+        sendMessageToController(m);
+        consumer.setMessageListener(this);
     }
 
     public void startTest() throws Exception
     {
-        System.out.println("Starting test......");
-        consumer.setMessageListener(this);
+        System.out.println("Consumer: " + id + " Starting test......" + "\n");
+        resetCounters();
     }
 
-    public void printResults() throws Exception
+    public void resetCounters()
     {
-        synchronized (lock)
+        rcvdMsgCount = 0;
+        maxLatency = 0;
+        minLatency = Long.MAX_VALUE;
+        totalLatency = 0;
+        if (printStdDev)
         {
-            lock.wait();
+            sample = null;
+            sample = new ArrayList<Long>(params.getMsgCount());
         }
+    }
+
+    public void sendResults() throws Exception
+    {
+        receiveFromController(OPCode.CONSUMER_STOP);
 
         double avgLatency = (double)totalLatency/(double)rcvdMsgCount;
-        double throughput = ((double)rcvdMsgCount/(double)(rcvdTime - testStartTime))*1000;
-        double consRate   = ((double)rcvdMsgCount/(double)(rcvdTime - startTime))*1000;
+        double consRate   = (double)rcvdMsgCount*Clock.convertToSecs()/(double)(rcvdTime - startTime);
+        double stdDev = 0.0;
+        if (printStdDev)
+        {
+            stdDev = calculateStdDev(avgLatency);
+        }
+        MapMessage m  = controllerSession.createMapMessage();
+        m.setInt(CODE, OPCode.RECEIVED_CONSUMER_STATS.ordinal());
+        m.setDouble(AVG_LATENCY, avgLatency/Clock.convertToMiliSecs());
+        m.setDouble(MIN_LATENCY,minLatency/Clock.convertToMiliSecs());
+        m.setDouble(MAX_LATENCY,maxLatency/Clock.convertToMiliSecs());
+        m.setDouble(STD_DEV, stdDev/Clock.convertToMiliSecs());
+        m.setDouble(CONS_RATE, consRate);
+        m.setLong(MSG_COUNT, rcvdMsgCount);
+        sendMessageToController(m);
+
         System.out.println(new StringBuilder("Total Msgs Received : ").append(rcvdMsgCount).toString());
         System.out.println(new StringBuilder("Consumer rate       : ").
                            append(df.format(consRate)).
                            append(" msg/sec").toString());
-        System.out.println(new StringBuilder("System Throughput   : ").
-                           append(df.format(throughput)).
-                           append(" msg/sec").toString());
         System.out.println(new StringBuilder("Avg Latency         : ").
-                           append(df.format(avgLatency)).
+                           append(df.format(avgLatency/Clock.convertToMiliSecs())).
                            append(" ms").toString());
         System.out.println(new StringBuilder("Min Latency         : ").
-                           append(minLatency).
+                           append(df.format(minLatency/Clock.convertToMiliSecs())).
                            append(" ms").toString());
         System.out.println(new StringBuilder("Max Latency         : ").
-                           append(maxLatency).
+                           append(df.format(maxLatency/Clock.convertToMiliSecs())).
                            append(" ms").toString());
-        System.out.println("Completed the test......\n");
-    }
-
-    public void notifyCompletion(Destination replyTo) throws Exception
-    {
-        MessageProducer tmp = session.createProducer(replyTo);
-        Message endMsg = session.createMessage();
-        tmp.send(endMsg);
-        if (params.isTransacted())
+        if (printStdDev)
         {
-            session.commit();
+            System.out.println(new StringBuilder("Std Dev             : ").
+                               append(stdDev/Clock.convertToMiliSecs()).toString());
         }
-        tmp.close();
     }
 
-    public void tearDown() throws Exception
+    public double calculateStdDev(double mean)
     {
-        consumer.close();
-        session.close();
-        con.close();
+        double v = 0;
+        for (double latency: sample)
+        {
+            v = v + Math.pow((latency-mean), 2);
+        }
+        v = v/sample.size();
+        return Math.round(Math.sqrt(v));
     }
 
     public void onMessage(Message msg)
     {
         try
         {
-            if (msg instanceof TextMessage && ((TextMessage)msg).getText().equals("End"))
+            // To figure out the decoding overhead of text
+            if (msgType == MessageType.TEXT)
             {
-                notifyCompletion(msg.getJMSReplyTo());
+                ((TextMessage)msg).getText();
+            }
 
-                synchronized (lock)
-                {
-                   lock.notifyAll();
-                }
+            if (msg.getBooleanProperty("End"))
+            {
+                MapMessage m = controllerSession.createMapMessage();
+                m.setInt(CODE, OPCode.RECEIVED_END_MSG.ordinal());
+                sendMessageToController(m);
             }
             else
             {
-                rcvdTime = System.currentTimeMillis();
+                rcvdTime = Clock.getTime();
                 rcvdMsgCount ++;
 
                 if (rcvdMsgCount == 1)
                 {
                     startTime = rcvdTime;
-                    testStartTime = msg.getJMSTimestamp();
                 }
 
                 if (transacted && (rcvdMsgCount % transSize == 0))
@@ -212,10 +242,14 @@ public class PerfConsumer extends PerfBa
                     session.commit();
                 }
 
-                long latency = rcvdTime - msg.getJMSTimestamp();
+                long latency = rcvdTime - msg.getLongProperty(TIMESTAMP);
                 maxLatency = Math.max(maxLatency, latency);
                 minLatency = Math.min(minLatency, latency);
                 totalLatency = totalLatency + latency;
+                if (printStdDev)
+                {
+                    sample.add(latency);
+                }
             }
 
         }
@@ -226,14 +260,21 @@ public class PerfConsumer extends PerfBa
 
     }
 
-    public void test()
+    public void run()
     {
         try
         {
             setUp();
             warmup();
-            startTest();
-            printResults();
+            boolean nextIteration = true;
+            while (nextIteration)
+            {
+                System.out.println("=========================================================\n");
+                System.out.println("Consumer: " + id + " starting a new iteration ......\n");
+                startTest();
+                sendResults();
+                nextIteration = continueTest();
+            }
             tearDown();
         }
         catch(Exception e)
@@ -242,26 +283,43 @@ public class PerfConsumer extends PerfBa
         }
     }
 
-    public static void main(String[] args)
+        @Override
+    public void tearDown() throws Exception
+    {
+        super.tearDown();
+    }
+
+    public static void main(String[] args) throws InterruptedException
     {
-        final PerfConsumer cons = new PerfConsumer();
-        Runnable r = new Runnable()
+        String scriptId = (args.length == 1) ? args[0] : "";
+        int conCount = Integer.getInteger("con_count",1);
+        final CountDownLatch testCompleted = new CountDownLatch(conCount);
+        for (int i=0; i < conCount; i++)
         {
-            public void run()
+
+            final PerfConsumer cons = new PerfConsumer(scriptId + i);
+            Runnable r = new Runnable()
             {
-                cons.test();
+                public void run()
+                {
+                    cons.run();
+                    testCompleted.countDown();
+                }
+            };
+
+            Thread t;
+            try
+            {
+                t = Threading.getThreadFactory().createThread(r);
             }
-        };
-        
-        Thread t;
-        try
-        {
-            t = Threading.getThreadFactory().createThread(r);                      
-        }
-        catch(Exception e)
-        {
-            throw new Error("Error creating consumer thread",e);
+            catch(Exception e)
+            {
+                throw new Error("Error creating consumer thread",e);
+            }
+            t.start();
+
         }
-        t.start(); 
+        testCompleted.await();
+        System.out.println("Consumers have completed the test......\n");
     }
 }
\ No newline at end of file

Modified: qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/PerfProducer.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/PerfProducer.java?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/PerfProducer.java (original)
+++ qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/PerfProducer.java Mon Sep 19 15:13:18 2011
@@ -23,13 +23,15 @@ package org.apache.qpid.tools;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
+import java.util.concurrent.CountDownLatch;
 
 import javax.jms.BytesMessage;
 import javax.jms.DeliveryMode;
+import javax.jms.MapMessage;
 import javax.jms.Message;
-import javax.jms.MessageConsumer;
 import javax.jms.MessageProducer;
 
+import org.apache.qpid.client.AMQDestination;
 import org.apache.qpid.thread.Threading;
 
 /**
@@ -51,9 +53,17 @@ import org.apache.qpid.thread.Threading;
  * System throughput and latencies calculated by the PerfConsumer are more realistic
  * numbers.
  *
+ * Answer by rajith : I agree about in memory buffering affecting rates. But Based on test runs
+ * I have done so far, it seems quite useful to compute the producer rate as it gives an
+ * indication of how the system behaves. For ex if there is a gap between producer and consumer rates
+ * you could clearly see the higher latencies and when producer and consumer rates are very close,
+ * latency is good.
+ *
  */
 public class PerfProducer extends PerfBase
 {
+    private static long SEC = 60000;
+
     MessageProducer producer;
     Message msg;
     Object payload;
@@ -63,51 +73,25 @@ public class PerfProducer extends PerfBa
     boolean durable = false;
     Random random;
     int msgSizeRange = 1024;
+    boolean rateLimitProducer = false;
+    double rateFactor = 0.4;
+    double rate = 0.0;
 
-    enum MessageType {
-        BYTES, TEXT, MAP, OBJECT;
-
-        public static MessageType getType(String s) throws Exception
-        {
-            if ("text".equalsIgnoreCase(s))
-            {
-                return TEXT;
-            }
-            else if ("bytes".equalsIgnoreCase(s))
-            {
-                return BYTES;
-            }
-            /*else if ("map".equalsIgnoreCase(s))
-            {
-                return MAP;
-            }
-            else if ("object".equalsIgnoreCase(s))
-            {
-                return OBJECT;
-            }*/
-            else
-            {
-                throw new Exception("Unsupported message type");
-            }
-        }
-    };
-
-    MessageType msgType = MessageType.BYTES;
-
-    public PerfProducer()
+    public PerfProducer(String prefix)
     {
-        super();
+        super(prefix);
+        System.out.println("Producer ID : " + id);
     }
 
     public void setUp() throws Exception
     {
         super.setUp();
-        feedbackDest = session.createTemporaryQueue();
-
         durable = params.isDurable();
-        msgType = MessageType.getType(params.getMessageType());
-
-        System.out.println("Using " + msgType + " messages");
+        rateLimitProducer = params.getRate() > 0 ? true : false;
+        if (rateLimitProducer)
+        {
+            System.out.println("The test will attempt to limit the producer to " + params.getRate() + " msg/sec");
+        }
 
         // if message caching is enabled we pre create the message
         // else we pre create the payload
@@ -138,8 +122,13 @@ public class PerfProducer extends PerfBa
         }
 
         producer = session.createProducer(dest);
+        System.out.println("Producer: " + id + " Sending messages to: " + ((AMQDestination)dest).getQueueName());
         producer.setDisableMessageID(params.isDisableMessageID());
         producer.setDisableMessageTimestamp(params.isDisableTimestamp());
+
+        MapMessage m = controllerSession.createMapMessage();
+        m.setInt(CODE, OPCode.REGISTER_PRODUCER.ordinal());
+        sendMessageToController(m);
     }
 
     Object createPayload(int size)
@@ -168,7 +157,6 @@ public class PerfProducer extends PerfBa
         }
     }
 
-
     protected Message getNextMessage() throws Exception
     {
         if (cacheMsg)
@@ -197,96 +185,109 @@ public class PerfProducer extends PerfBa
 
     public void warmup()throws Exception
     {
-        System.out.println("Warming up......");
-        MessageConsumer tmp = session.createConsumer(feedbackDest);
+        receiveFromController(OPCode.PRODUCER_STARTWARMUP);
+        System.out.println("Producer: " + id + " Warming up......");
 
         for (int i=0; i < params.getWarmupCount() -1; i++)
         {
             producer.send(getNextMessage());
         }
-        Message msg = session.createTextMessage("End");
-        msg.setJMSReplyTo(feedbackDest);
-        producer.send(msg);
+        sendEndMessage();
 
         if (params.isTransacted())
         {
             session.commit();
         }
-
-        tmp.receive();
-
-        if (params.isTransacted())
-        {
-            session.commit();
-        }
-
-        tmp.close();
     }
 
     public void startTest() throws Exception
     {
-        System.out.println("Starting test......");
+        resetCounters();
+        receiveFromController(OPCode.PRODUCER_START);
         int count = params.getMsgCount();
         boolean transacted = params.isTransacted();
         int tranSize =  params.getTransactionSize();
 
-        long start = System.currentTimeMillis();
+        long limit = (long)(params.getRate() * rateFactor); // in msecs
+        long timeLimit = (long)(SEC * rateFactor); // in msecs
+
+        long start = Clock.getTime(); // defaults to nano secs
+        long interval = start;
         for(int i=0; i < count; i++ )
         {
             Message msg = getNextMessage();
-            msg.setJMSTimestamp(System.currentTimeMillis());
+            msg.setLongProperty(TIMESTAMP, Clock.getTime());
             producer.send(msg);
             if ( transacted && ((i+1) % tranSize == 0))
             {
                 session.commit();
             }
+
+            if (rateLimitProducer && i%limit == 0)
+            {
+                long elapsed = (Clock.getTime() - interval)*Clock.convertToMiliSecs(); // in msecs
+                if (elapsed < timeLimit)
+                {
+                    Thread.sleep(elapsed);
+                }
+                interval = Clock.getTime();
+
+            }
         }
-        long time = System.currentTimeMillis() - start;
-        double rate = ((double)count/(double)time)*1000;
+        sendEndMessage();
+        if ( transacted)
+        {
+            session.commit();
+        }
+        long time = Clock.getTime() - start;
+        rate = (double)count*Clock.convertToSecs()/(double)time;
         System.out.println(new StringBuilder("Producer rate: ").
                                append(df.format(rate)).
                                append(" msg/sec").
                                toString());
     }
 
-    public void waitForCompletion() throws Exception
+    public void resetCounters()
     {
-        MessageConsumer tmp = session.createConsumer(feedbackDest);
-        Message msg = session.createTextMessage("End");
-        msg.setJMSReplyTo(feedbackDest);
-        producer.send(msg);
-
-        if (params.isTransacted())
-        {
-            session.commit();
-        }
 
-        tmp.receive();
+    }
 
-        if (params.isTransacted())
-        {
-            session.commit();
-        }
+    public void sendEndMessage() throws Exception
+    {
+        Message msg = session.createMessage();
+        msg.setBooleanProperty("End", true);
+        producer.send(msg);
+    }
 
-        tmp.close();
-        System.out.println("Consumer has completed the test......");
+    public void sendResults() throws Exception
+    {
+        MapMessage msg = controllerSession.createMapMessage();
+        msg.setInt(CODE, OPCode.RECEIVED_PRODUCER_STATS.ordinal());
+        msg.setDouble(PROD_RATE, rate);
+        sendMessageToController(msg);
     }
 
+    @Override
     public void tearDown() throws Exception
     {
-        producer.close();
-        session.close();
-        con.close();
+        super.tearDown();
     }
 
-    public void test()
+    public void run()
     {
         try
         {
             setUp();
             warmup();
-            startTest();
-            waitForCompletion();
+            boolean nextIteration = true;
+            while (nextIteration)
+            {
+                System.out.println("=========================================================\n");
+                System.out.println("Producer: " + id + " starting a new iteration ......\n");
+                startTest();
+                sendResults();
+                nextIteration = continueTest();
+            }
             tearDown();
         }
         catch(Exception e)
@@ -295,27 +296,63 @@ public class PerfProducer extends PerfBa
         }
     }
 
-
-    public static void main(String[] args)
+    public void startControllerIfNeeded()
     {
-        final PerfProducer prod = new PerfProducer();
-        Runnable r = new Runnable()
+        if (!params.isExternalController())
         {
-            public void run()
+            final PerfTestController controller = new PerfTestController();
+            Runnable r = new Runnable()
             {
-                prod.test();
-            }
-        };
+                public void run()
+                {
+                    controller.run();
+                }
+            };
 
-        Thread t;
-        try
-        {
-            t = Threading.getThreadFactory().createThread(r);
+            Thread t;
+            try
+            {
+                t = Threading.getThreadFactory().createThread(r);
+            }
+            catch(Exception e)
+            {
+                throw new Error("Error creating controller thread",e);
+            }
+            t.start();
         }
-        catch(Exception e)
+    }
+
+
+    public static void main(String[] args) throws InterruptedException
+    {
+        String scriptId = (args.length == 1) ? args[0] : "";
+        int conCount = Integer.getInteger("con_count",1);
+        final CountDownLatch testCompleted = new CountDownLatch(conCount);
+        for (int i=0; i < conCount; i++)
         {
-            throw new Error("Error creating producer thread",e);
+            final PerfProducer prod = new PerfProducer(scriptId + i);
+            prod.startControllerIfNeeded();
+            Runnable r = new Runnable()
+            {
+                public void run()
+                {
+                    prod.run();
+                    testCompleted.countDown();
+                }
+            };
+
+            Thread t;
+            try
+            {
+                t = Threading.getThreadFactory().createThread(r);
+            }
+            catch(Exception e)
+            {
+                throw new Error("Error creating producer thread",e);
+            }
+            t.start();
         }
-        t.start();
+        testCompleted.await();
+        System.out.println("Producers have completed the test......");
     }
 }
\ No newline at end of file

Modified: qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/TestParams.java
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/TestParams.java?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/TestParams.java (original)
+++ qpid/branches/qpid-3346/qpid/java/tools/src/main/java/org/apache/qpid/tools/TestParams.java Mon Sep 19 15:13:18 2011
@@ -43,7 +43,7 @@ public class TestParams
 
     private int msg_size = 1024;
 
-    private int msg_type = 1;   // not used yet
+    private int random_msg_size_start_from = 1;
 
     private boolean cacheMessage = false;
 
@@ -67,6 +67,14 @@ public class TestParams
 
     private String msgType = "bytes";
 
+    private boolean printStdDev = false;
+
+    private long rate = -1;
+
+    private boolean externalController = false;
+
+    private boolean useUniqueDest = false; // useful when using multiple connections.
+
     public TestParams()
     {
 
@@ -76,7 +84,6 @@ public class TestParams
         address = System.getProperty("address",address);
 
         msg_size  = Integer.getInteger("msg_size", 1024);
-        msg_type = Integer.getInteger("msg_type",1);
         cacheMessage = Boolean.getBoolean("cache_msg");
         disableMessageID = Boolean.getBoolean("disableMessageID");
         disableTimestamp = Boolean.getBoolean("disableTimestamp");
@@ -88,6 +95,11 @@ public class TestParams
         warmup_count = Integer.getInteger("warmup_count",warmup_count);
         random_msg_size = Boolean.getBoolean("random_msg_size");
         msgType = System.getProperty("msg_type","bytes");
+        printStdDev = Boolean.getBoolean("print_std_dev");
+        rate = Long.getLong("rate",-1);
+        externalController = Boolean.getBoolean("ext_controller");
+        useUniqueDest = Boolean.getBoolean("use_unique_dest");
+        random_msg_size_start_from = Integer.getInteger("random_msg_size_start_from", 1);
     }
 
     public String getUrl()
@@ -125,9 +137,9 @@ public class TestParams
         return msg_size;
     }
 
-    public int getMsgType()
+    public int getRandomMsgSizeStartFrom()
     {
-        return msg_type;
+        return random_msg_size_start_from;
     }
 
     public boolean isDurable()
@@ -174,4 +186,29 @@ public class TestParams
     {
         return msgType;
     }
+
+    public boolean isPrintStdDev()
+    {
+        return printStdDev;
+    }
+
+    public long getRate()
+    {
+        return rate;
+    }
+
+    public boolean isExternalController()
+    {
+        return externalController;
+    }
+
+    public void setAddress(String addr)
+    {
+        address = addr;
+    }
+
+    public boolean isUseUniqueDests()
+    {
+        return useUniqueDest;
+    }
 }

Propchange: qpid/branches/qpid-3346/qpid/packaging/windows/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -4,4 +4,4 @@
 /qpid/branches/0.6-release-windows-installer/qpid/packaging/windows:926865,927233
 /qpid/branches/java-network-refactor/qpid/packaging/windows:805429-825319
 /qpid/branches/qpid-2935/qpid/packaging/windows:1061302-1072333
-/qpid/trunk/qpid/packaging/windows:1156188
+/qpid/trunk/qpid/packaging/windows:1144319-1172654

Propchange: qpid/branches/qpid-3346/qpid/python/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -2,4 +2,4 @@
 /qpid/branches/java-network-refactor/qpid/python:805429-825319
 /qpid/branches/qmfv2/qpid/python:902858,902894
 /qpid/branches/qpid-2935/qpid/python:1061302-1072333
-/qpid/trunk/qpid/python:1156188
+/qpid/trunk/qpid/python:1144319-1172654

Propchange: qpid/branches/qpid-3346/qpid/python/examples/api/spout
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -1,4 +1,4 @@
 /qpid/branches/qmfv2/qpid/python/examples/api/spout:902858,902894
 /qpid/branches/qpid-2935/qpid/python/examples/api/spout:1061302-1072333
 /qpid/branches/qpid.rnr/python/examples/api/spout:894071-896158
-/qpid/trunk/qpid/python/examples/api/spout:1156188
+/qpid/trunk/qpid/python/examples/api/spout:1144319-1172654

Modified: qpid/branches/qpid-3346/qpid/python/qpid/client.py
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/python/qpid/client.py?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/python/qpid/client.py (original)
+++ qpid/branches/qpid-3346/qpid/python/qpid/client.py Mon Sep 19 15:13:18 2011
@@ -106,7 +106,7 @@ class Client:
     try:
       id = None
       for i in xrange(1, 64*1024):
-        if not self.sessions.has_key(id):
+        if not self.sessions.has_key(i):
           id = i
           break
     finally:

Propchange: qpid/branches/qpid-3346/qpid/python/qpid/concurrency.py
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 19 15:13:18 2011
@@ -1,4 +1,4 @@
 /qpid/branches/qmfv2/qpid/python/qpid/concurrency.py:902858,902894
 /qpid/branches/qpid-2935/qpid/python/qpid/concurrency.py:1061302-1072333
 /qpid/branches/qpid.rnr/python/qpid/concurrency.py:894071-896158
-/qpid/trunk/qpid/python/qpid/concurrency.py:1156188
+/qpid/trunk/qpid/python/qpid/concurrency.py:1144319-1172654

Modified: qpid/branches/qpid-3346/qpid/python/qpid/util.py
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/python/qpid/util.py?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/python/qpid/util.py (original)
+++ qpid/branches/qpid-3346/qpid/python/qpid/util.py Mon Sep 19 15:13:18 2011
@@ -39,12 +39,17 @@ except ImportError:
       self.sock.close()
 
 def connect(host, port):
-  sock = socket.socket()
-  sock.connect((host, port))
-  sock.setblocking(1)
-  # XXX: we could use this on read, but we'd have to put write in a
-  # loop as well
-  # sock.settimeout(1)
+  for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
+    af, socktype, proto, canonname, sa = res
+    sock = socket.socket(af, socktype, proto)
+    try:
+      sock.connect(sa)
+      break
+    except socket.error, msg:
+      sock.close
+  else:
+    # If we got here then we couldn't connect (yet)
+    raise
   return sock
 
 def listen(host, port, predicate = lambda: True, bound = lambda: None):
@@ -101,15 +106,23 @@ def fill(text, indent, heading = None):
 class URL:
 
   RE = re.compile(r"""
-        # [   <scheme>://  ] [    <user>   [   / <password>   ] @]   <host>   [   :<port>   ]
-        ^ (?: ([^:/@]+)://)? (?: ([^:/@]+) (?: / ([^:/@]+)   )? @)? ([^@:/]+) (?: :([0-9]+))?$
-""", re.X)
+        # [   <scheme>://  ] [    <user>   [   / <password>   ] @]    ( <host4>     | \[    <host6>    \] )  [   :<port>   ]
+        ^ (?: ([^:/@]+)://)? (?: ([^:/@]+) (?: / ([^:/@]+)   )? @)? (?: ([^@:/\[]+) | \[ ([a-f0-9:.]+) \] ) (?: :([0-9]+))?$
+""", re.X | re.I)
 
   AMQPS = "amqps"
   AMQP = "amqp"
 
-  def __init__(self, s):
-    if isinstance(s, URL):
+  def __init__(self, s=None, **kwargs):
+    if s is None:
+      self.scheme = kwargs.get('scheme', None)
+      self.user = kwargs.get('user', None)
+      self.password = kwargs.get('password', None)
+      self.host = kwargs.get('host', None)
+      self.port = kwargs.get('port', None)
+      if self.host is None:
+        raise ValueError('Host required for url')
+    elif isinstance(s, URL):
       self.scheme = s.scheme
       self.user = s.user
       self.password = s.password
@@ -119,7 +132,8 @@ class URL:
       match = URL.RE.match(s)
       if match is None:
         raise ValueError(s)
-      self.scheme, self.user, self.password, self.host, port = match.groups()
+      self.scheme, self.user, self.password, host4, host6, port = match.groups()
+      self.host = host4 or host6
       if port is None:
         self.port = None
       else:
@@ -137,11 +151,25 @@ class URL:
       if self.password:
         s += "/%s" % self.password
       s += "@"
-    s += self.host
+    if ':' not in self.host:
+      s += self.host
+    else:
+      s += "[%s]" % self.host
     if self.port:
       s += ":%s" % self.port
     return s
 
+  def __eq__(self, url):
+    if isinstance(url, basestring):
+      url = URL(url)
+    return \
+      self.scheme==url.scheme and \
+      self.user==url.user and self.password==url.password and \
+      self.host==url.host and self.port==url.port
+
+  def __ne__(self, url):
+    return not self.__eq__(url)
+
 def default(value, default):
   if value is None:
     return default

Modified: qpid/branches/qpid-3346/qpid/specs/management-schema.xml
URL: http://svn.apache.org/viewvc/qpid/branches/qpid-3346/qpid/specs/management-schema.xml?rev=1172657&r1=1172656&r2=1172657&view=diff
==============================================================================
--- qpid/branches/qpid-3346/qpid/specs/management-schema.xml (original)
+++ qpid/branches/qpid-3346/qpid/specs/management-schema.xml Mon Sep 19 15:13:18 2011
@@ -171,8 +171,8 @@
     <statistic name="msgTxnDequeues"      type="count64"  unit="message"     desc="Transactional messages dequeued"/>
     <statistic name="msgPersistEnqueues"  type="count64"  unit="message"     desc="Persistent messages enqueued"/>
     <statistic name="msgPersistDequeues"  type="count64"  unit="message"     desc="Persistent messages dequeued"/>
-    <statistic name="msgDepth"            type="count32"  unit="message"     desc="Current size of queue in messages" assign="msgTotalEnqueues - msgTotalDequeues"/>
-    <statistic name="byteDepth"           type="count32"  unit="octet"       desc="Current size of queue in bytes"    assign="byteTotalEnqueues - byteTotalDequeues"/>
+    <statistic name="msgDepth"            type="count64"  unit="message"     desc="Current size of queue in messages" assign="msgTotalEnqueues - msgTotalDequeues"/>
+    <statistic name="byteDepth"           type="count64"  unit="octet"       desc="Current size of queue in bytes"    assign="byteTotalEnqueues - byteTotalDequeues"/>
     <statistic name="byteTotalEnqueues"   type="count64"  unit="octet"       desc="Total messages enqueued"/>
     <statistic name="byteTotalDequeues"   type="count64"  unit="octet"       desc="Total messages dequeued"/>
     <statistic name="byteTxnEnqueues"     type="count64"  unit="octet"       desc="Transactional messages enqueued"/>
@@ -264,7 +264,7 @@
     <property name="vhostRef" type="objId"  references="Vhost" access="RC" index="y" parentRef="y"/>
     <property name="address"  type="sstr"   access="RC" index="y"/>
     <property name="incoming" type="bool"   access="RC"/>
-    <property name="SystemConnection"   type="bool"   access="RC" desc="Infrastucture/ Inter-system connection (Cluster, Federation, ...)"/>
+    <property name="SystemConnection"   type="bool"   access="RC" desc="Infrastructure/ Inter-system connection (Cluster, Federation, ...)"/>
     <property name="userProxyAuth"      type="bool"   access="RO" desc="Authorization to proxy for users not on broker"/>
     <property name="federationLink"     type="bool"   access="RO" desc="Is this a federation link"/>
     <property name="authIdentity"       type="sstr"   access="RO" desc="authId of connection if authentication enabled"/>
@@ -272,6 +272,8 @@
     <property name="remotePid"          type="uint32" access="RO" optional="y" desc="Process ID of remote client"/>
     <property name="remoteParentPid"    type="uint32" access="RO" optional="y" desc="Parent Process ID of remote client"/>
     <property name="shadow"             type="bool"   access="RO" desc="True for shadow connections"/>
+    <property name="saslMechanism"      type="sstr"   access="RO" desc="SASL mechanism"/>
+    <property name="saslSsf"            type="uint16"   access="RO" desc="SASL security strength factor"/>
     <statistic name="closing"          type="bool" desc="This client is closing by management request"/>
     <statistic name="framesFromClient" type="count64"/>
     <statistic name="framesToClient"   type="count64"/>
@@ -406,8 +408,8 @@
     <arg name="reason"  type="lstr"   desc="Reason for a failure"/>
     <arg name="rhost"   type="sstr"   desc="Address (i.e. DNS name, IP address, etc.) of a remotely connected host"/>
     <arg name="user"    type="sstr"   desc="Authentication identity"/>
-    <arg name="msgDepth" type="count32" desc="Current size of queue in messages"/>
-    <arg name="byteDepth" type="count32" desc="Current size of queue in bytes"/>
+    <arg name="msgDepth" type="count64" desc="Current size of queue in messages"/>
+    <arg name="byteDepth" type="count64" desc="Current size of queue in bytes"/>
   </eventArguments>
 
   <event name="clientConnect"     sev="inform" args="rhost, user"/>



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org