You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2012/03/01 11:04:39 UTC

svn commit: r1295492 [5/6] - in /qpid/branches/rg-amqp-1-0-sandbox/qpid/java: ./ bdbstore/ bdbstore/bin/ bdbstore/etc/ bdbstore/etc/scripts/ bdbstore/src/ bdbstore/src/main/ bdbstore/src/main/java/ bdbstore/src/main/java/org/ bdbstore/src/main/java/org...

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ExchangeLoggingTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ExchangeLoggingTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ExchangeLoggingTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ExchangeLoggingTest.java Thu Mar  1 10:04:31 2012
@@ -20,6 +20,16 @@
  */
 package org.apache.qpid.server.logging;
 
+import java.io.IOException;
+import java.util.List;
+
+import javax.jms.Connection;
+import javax.jms.JMSException;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
+import javax.jms.Session;
+import javax.jms.TextMessage;
+
 import org.apache.qpid.client.AMQConnection;
 import org.apache.qpid.client.AMQSession_0_10;
 import org.apache.qpid.framing.AMQFrame;
@@ -28,13 +38,6 @@ import org.apache.qpid.framing.ExchangeD
 import org.apache.qpid.framing.ExchangeDeleteOkBody;
 import org.apache.qpid.framing.amqp_8_0.MethodRegistry_8_0;
 
-import javax.jms.Connection;
-import javax.jms.JMSException;
-import javax.jms.Queue;
-import javax.jms.Session;
-import java.io.IOException;
-import java.util.List;
-
 /**
  * Exchange
  *
@@ -122,7 +125,7 @@ public class ExchangeLoggingTest extends
     public void testExchangeCreate() throws JMSException, IOException
     {
         //Ignore broker startup messages
-        _monitor.reset();
+        _monitor.markDiscardPoint();
 
         _session.createConsumer(_queue);
         // Ensure we have received the EXH log msg.
@@ -176,7 +179,7 @@ public class ExchangeLoggingTest extends
     public void testExchangeDelete() throws Exception, IOException
     {
         //Ignore broker startup messages
-        _monitor.reset();
+        _monitor.markDiscardPoint();
 
         //create the exchange by creating a consumer
         _session.createConsumer(_queue);
@@ -214,4 +217,38 @@ public class ExchangeLoggingTest extends
 
     }
 
+    public void testDiscardedMessage() throws Exception
+    {
+        //Ignore broker startup messages
+        _monitor.markDiscardPoint();
+
+        if (!isBroker010())
+        {
+            // Default 0-8..-0-9-1 behaviour is for messages to be rejected (returned to client).
+            setTestClientSystemProperty("qpid.default_mandatory", "false");
+        }
+
+        _session = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+        // Do not create consumer so queue is not created and message will be discarded.
+        final MessageProducer producer = _session.createProducer(_queue);
+
+        // Sending message
+        final TextMessage msg = _session.createTextMessage("msg");
+        producer.send(msg);
+
+        final String expectedMessageBody = "Discarded Message : Name: " + _name + " Routing Key: " + _queue.getQueueName();
+
+        // Ensure we have received the EXH log msg.
+        waitForMessage("EXH-1003");
+
+        List<String> results = findMatches(EXH_PREFIX);
+        assertEquals("Result set larger than expected.", 2, results.size());
+
+        final String log = getLogMessage(results, 1);
+        validateMessageID("EXH-1003", log);
+
+        final String message = getMessageString(fromMessage(log));
+        assertEquals("Log Message not as expected", expectedMessageBody, message);
+    }
 }

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ManagementLoggingTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ManagementLoggingTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ManagementLoggingTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ManagementLoggingTest.java Thu Mar  1 10:04:31 2012
@@ -22,6 +22,7 @@ package org.apache.qpid.server.logging;
 
 import junit.framework.AssertionFailedError;
 
+import org.apache.qpid.server.configuration.ServerConfiguration;
 import org.apache.qpid.util.LogMonitor;
 
 import java.util.List;
@@ -206,7 +207,7 @@ public class ManagementLoggingTest exten
                 validateMessageID("MNG-1002", log);
 
                 //Check the RMI Registry port is as expected
-                int mPort = getPort() + (DEFAULT_MANAGEMENT_PORT - DEFAULT_PORT);
+                int mPort = getManagementPort(getPort());
                 assertTrue("RMI Registry port not as expected(" + mPort + ").:" + getMessageString(log),
                            getMessageString(log).endsWith(String.valueOf(mPort)));
 
@@ -217,7 +218,7 @@ public class ManagementLoggingTest exten
 
                 // We expect the RMI Registry port (the defined 'management port') to be
                 // 100 lower than the JMX RMIConnector Server Port (the actual JMX server)
-                int jmxPort = mPort + 100;
+                int jmxPort = mPort + ServerConfiguration.JMXPORT_CONNECTORSERVER_OFFSET;
                 assertTrue("JMX RMIConnectorServer port not as expected(" + jmxPort + ").:" + getMessageString(log),
                            getMessageString(log).endsWith(String.valueOf(jmxPort)));
             }

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/QueueLoggingTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/QueueLoggingTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/QueueLoggingTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/QueueLoggingTest.java Thu Mar  1 10:04:31 2012
@@ -53,7 +53,7 @@ public class QueueLoggingTest extends Ab
     {
         super.setUp();
         //Remove broker startup logging messages
-        _monitor.reset();
+        _monitor.markDiscardPoint();
         
         _connection = getConnection();
         _session = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/SubscriptionLoggingTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/SubscriptionLoggingTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/SubscriptionLoggingTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/SubscriptionLoggingTest.java Thu Mar  1 10:04:31 2012
@@ -58,7 +58,7 @@ public class SubscriptionLoggingTest ext
     {
         super.setUp();
         //Remove broker startup logging messages
-        _monitor.reset();
+        _monitor.markDiscardPoint();
 
         _connection = getConnection();
 

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ProducerFlowControlTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ProducerFlowControlTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ProducerFlowControlTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/ProducerFlowControlTest.java Thu Mar  1 10:04:31 2012
@@ -64,7 +64,7 @@ public class ProducerFlowControlTest ext
         _jmxUtilConnected=false;
         super.setUp();
 
-        _monitor.reset();
+        _monitor.markDiscardPoint();
 
         producerConnection = getConnection();
         producerSession = producerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/AbstractACLTestCase.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/AbstractACLTestCase.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/AbstractACLTestCase.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/AbstractACLTestCase.java Thu Mar  1 10:04:31 2012
@@ -83,14 +83,8 @@ public abstract class AbstractACLTestCas
     @Override
     public void setUp() throws Exception
     {
-        if (QpidHome == null)
-        {
-            fail("QPID_HOME not set");
-        }
-
         // Initialise ACLs.
-        _configFile = new File(QpidHome, "etc" + File.separator + getConfig());
-        
+        _configFile = new File("build" + File.separator + "etc" + File.separator + getConfig());
         // Initialise ACL files
         for (String virtualHost : getHostList())
         {
@@ -156,7 +150,7 @@ public abstract class AbstractACLTestCas
      */
     public void setUpACLFile(String virtualHost) throws IOException, ConfigurationException
     {
-        String path = QpidHome + File.separator + "etc";
+        String path = "build" + File.separator + "etc";
         String className = StringUtils.substringBeforeLast(getClass().getSimpleName().toLowerCase(), "test");
         String testName = StringUtils.substringAfter(getName(), "test").toLowerCase();
         

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLTest.java Thu Mar  1 10:04:31 2012
@@ -91,9 +91,9 @@ public class ExternalACLTest extends Abs
             //send a message to each queue (also causing an exchange declare)
             MessageProducer sender = ((AMQSession<?, ?>) sess).createProducer(null);
             ((org.apache.qpid.jms.MessageProducer) sender).send(namedQueue, sess.createTextMessage("test"),
-                                                                DeliveryMode.NON_PERSISTENT, 0, 0L, false, false, true);
+                                                                DeliveryMode.NON_PERSISTENT, 0, 0L, false, false);
             ((org.apache.qpid.jms.MessageProducer) sender).send(tempQueue, sess.createTextMessage("test"),
-                                                                DeliveryMode.NON_PERSISTENT, 0, 0L, false, false, true);
+                                                                DeliveryMode.NON_PERSISTENT, 0, 0L, false, false);
 
             //consume the messages from the queues
             consumer.receive(2000);
@@ -309,7 +309,7 @@ public class ExternalACLTest extends Abs
             // before we finish this test. Message is set !immed !mand as the queue is invalid so want to test ACLs not
             // queue existence.
             ((org.apache.qpid.jms.MessageProducer) sender).send(queue, sess.createTextMessage("test"),
-                                                                DeliveryMode.NON_PERSISTENT, 0, 0L, false, false, true);
+                                                                DeliveryMode.NON_PERSISTENT, 0, 0L, false, false);
 
             conn.close();
         }
@@ -337,7 +337,7 @@ public class ExternalACLTest extends Abs
             // before we finish this test. Message is set !immed !mand as the queue is invalid so want to test ACLs not
             // queue existence.
             ((org.apache.qpid.jms.MessageProducer) sender).send(queue, session.createTextMessage("test"),
-                                                                DeliveryMode.NON_PERSISTENT, 0, 0L, false, false, true);
+                                                                DeliveryMode.NON_PERSISTENT, 0, 0L, false, false);
 
             // Test the connection with a valid consumer
             // This may fail as the session may be closed before the queue or the consumer created.
@@ -608,7 +608,7 @@ public class ExternalACLTest extends Abs
             // before we finish this test. Message is set !immed !mand as the queue is invalid so want to test ACLs not
             // queue existence.
             ((org.apache.qpid.jms.MessageProducer) sender).send(queue, session.createTextMessage("test"),
-                                                                DeliveryMode.NON_PERSISTENT, 0, 0L, false, false, true);
+                                                                DeliveryMode.NON_PERSISTENT, 0, 0L, false, false);
 
             // Test the connection with a valid consumer
             // This may not work as the session may be closed before the queue or consumer creation can occur.

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/security/firewall/FirewallConfigTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/security/firewall/FirewallConfigTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/security/firewall/FirewallConfigTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/security/firewall/FirewallConfigTest.java Thu Mar  1 10:04:31 2012
@@ -35,16 +35,8 @@ public class FirewallConfigTest extends 
     @Override
     protected void setUp() throws Exception
     {
-        // do setup
-        final String QPID_HOME = System.getProperty("QPID_HOME");
-
-        if (QPID_HOME == null)
-        {
-            fail("QPID_HOME not set");
-        }
-
         // Setup initial config file.
-        _configFile = new File(QPID_HOME, "etc/config-systests-firewall.xml");
+        _configFile = new File("build/etc/config-systests-firewall.xml");
         
         // Setup temporary config file
         _tmpConfig = File.createTempFile("config-systests-firewall", ".xml");
@@ -86,7 +78,7 @@ public class FirewallConfigTest extends 
     public void testVhostAllowBrokerDeny() throws Exception
     {
 
-        _configFile = new File(System.getProperty("QPID_HOME"), "etc/config-systests-firewall-2.xml");
+        _configFile = new File("build/etc/config-systests-firewall-2.xml");
         
         super.setUp();
         
@@ -119,7 +111,7 @@ public class FirewallConfigTest extends 
     
     public void testVhostDenyBrokerAllow() throws Exception
     {
-        _configFile = new File(System.getProperty("QPID_HOME"), "etc/config-systests-firewall-3.xml");
+        _configFile = new File("build/etc/config-systests-firewall-3.xml");
         
         super.setUp();
         

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java Thu Mar  1 10:04:31 2012
@@ -1116,10 +1116,10 @@ public class AddressBasedDestinationTest
     public void testDestinationOnSend() throws Exception
     {
     	Session ssn = _connection.createSession(false,Session.CLIENT_ACKNOWLEDGE);
-        MessageConsumer cons = ssn.createConsumer(ssn.createTopic("amq.topic/test"));
+        MessageConsumer cons = ssn.createConsumer(ssn.createTopic("ADDR:amq.topic/test"));
         MessageProducer prod = ssn.createProducer(null);
         
-        Queue queue = ssn.createQueue("amq.topic/test");
+        Queue queue = ssn.createQueue("ADDR:amq.topic/test");
         prod.send(queue,ssn.createTextMessage("A"));
         
         Message msg = cons.receive(1000);
@@ -1147,7 +1147,7 @@ public class AddressBasedDestinationTest
 		Destination replyToDest = AMQDestination.createDestination(replyTo);
 	    MessageConsumer replyToCons = session.createConsumer(replyToDest);
 	    		    			
-		Destination dest = session.createQueue("amq.direct/test");
+		Destination dest = session.createQueue("ADDR:amq.direct/test");
 					
 		MessageConsumer cons = session.createConsumer(dest);
 		MessageProducer prod = session.createProducer(dest);

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitTimeoutDelayTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitTimeoutDelayTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitTimeoutDelayTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitTimeoutDelayTest.java Thu Mar  1 10:04:31 2012
@@ -63,7 +63,7 @@ public class SyncWaitTimeoutDelayTest ex
         catch (JMSException e)
         {
             assertTrue("Wrong exception type received.", e.getLinkedException() instanceof AMQTimeoutException);
-            assertTrue("Wrong message received on exception.", e.getMessage().startsWith("Failed to commit"));
+            assertTrue("Wrong message received on exception.", e.getMessage().startsWith("Exception during commit"));
             // As we are using Nano time ensure to multiply up the millis.            
             assertTrue("Timeout was more than 30s default", (System.nanoTime() - start) < (1000000L * 1000 * 30));
         }

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/RecoverTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/RecoverTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/RecoverTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/RecoverTest.java Thu Mar  1 10:04:31 2012
@@ -46,7 +46,7 @@ public class RecoverTest extends Failove
 {
     static final Logger _logger = LoggerFactory.getLogger(RecoverTest.class);
 
-    private Exception _error;
+    private volatile Exception _error;
     private AtomicInteger count;
 
     protected AMQConnection _connection;
@@ -249,14 +249,13 @@ public class RecoverTest extends Failove
                     {
                         if (!message.getJMSRedelivered())
                         {
-                            setError(
-                                    new Exception("Message not marked as redelivered on what should be second delivery attempt"));
+                            setError(new Exception("Message not marked as redelivered on what should be second delivery attempt"));
                         }
                     }
                     else
                     {
-                        System.err.println(message);
-                        fail("Message delivered too many times!: " + count);
+                        _logger.error(message.toString());
+                        setError(new Exception("Message delivered too many times!: " + count));
                     }
                 }
                 catch (JMSException e)

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/close/CloseTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/close/CloseTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/close/CloseTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/close/CloseTest.java Thu Mar  1 10:04:31 2012
@@ -21,14 +21,13 @@
 package org.apache.qpid.test.unit.basic.close;
 import org.apache.qpid.test.utils.QpidBrokerTestCase;
 import org.apache.qpid.client.AMQConnection;
-import org.apache.qpid.client.AMQQueue;
-import org.apache.qpid.url.AMQBindingURL;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.jms.MessageConsumer;
 import javax.jms.MessageProducer;
+import javax.jms.Queue;
 import javax.jms.Session;
 
 public class CloseTest extends QpidBrokerTestCase
@@ -41,7 +40,7 @@ public class CloseTest extends QpidBroke
 
         Session session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
 
-        AMQQueue queue = new AMQQueue(new AMQBindingURL("test-queue"));
+        Queue queue = session.createQueue("test-queue");
         MessageConsumer consumer = session.createConsumer(queue);
 
         MessageProducer producer_not_used_but_created_for_testing = session.createProducer(queue);

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java Thu Mar  1 10:04:31 2012
@@ -20,16 +20,6 @@
  */
 package org.apache.qpid.test.unit.client;
 
-import java.io.BufferedWriter;
-import java.io.InputStreamReader;
-import java.io.LineNumberReader;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import javax.jms.Connection;
-import javax.jms.ExceptionListener;
 import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.MessageConsumer;

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQSSLConnectionTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQSSLConnectionTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQSSLConnectionTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQSSLConnectionTest.java Thu Mar  1 10:04:31 2012
@@ -26,9 +26,9 @@ import org.apache.qpid.client.AMQConnect
 
 public class AMQSSLConnectionTest extends AMQConnectionTest
 {
-    private static final String KEYSTORE = TEST_RESOURCES_DIR + "/ssl/java_client_keystore.jks";
+    private static final String KEYSTORE = "test-profiles/test_resources/ssl/java_client_keystore.jks";
     private static final String KEYSTORE_PASSWORD = "password";
-    private static final String TRUSTSTORE = TEST_RESOURCES_DIR + "/ssl/java_client_truststore.jks";
+    private static final String TRUSTSTORE = "test-profiles/test_resources/ssl/java_client_truststore.jks";
     private static final String TRUSTSTORE_PASSWORD = "password";
     
     @Override

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java Thu Mar  1 10:04:31 2012
@@ -32,6 +32,7 @@ import org.apache.qpid.client.AMQConnect
 import org.apache.qpid.client.AMQQueue;
 import org.apache.qpid.client.AMQSession;
 import org.apache.qpid.client.AMQTopic;
+import org.apache.qpid.configuration.ClientProperties;
 import org.apache.qpid.exchange.ExchangeDefaults;
 import org.apache.qpid.framing.AMQShortString;
 import org.apache.qpid.jms.BrokerDetails;
@@ -285,16 +286,23 @@ public class ConnectionTest extends Qpid
         }
         catch (Exception e)
         {
-            assertTrue("Incorrect exception thrown",
-                       e.getMessage().contains("The following SASL mechanisms " +
-                       "[MY_MECH]"  +
-                       " specified by the client are not supported by the broker"));
+            assertTrue("Unexpected exception message : " + e.getMessage(),
+                       e.getMessage().contains("Client and broker have no SASL mechanisms in common."));
+            assertTrue("Unexpected exception message : " + e.getMessage(),
+                    e.getMessage().contains("Client restricted itself to : MY_MECH"));
+
         }
     }
 
-    public void testClientIDVerification() throws Exception
+    /**
+     * Tests that when the same user connects twice with same clientid, the second connection
+     * fails if the clientid verification feature is enabled (which uses a dummy 0-10 Session
+     * with the clientid as its name to detect the previous usage of the clientid by the user)
+     */
+    public void testClientIDVerificationForSameUser() throws Exception
     {
-        System.setProperty("qpid.verify_client_id", "true");
+        setTestSystemProperty(ClientProperties.QPID_VERIFY_CLIENT_ID, "true");
+
         BrokerDetails broker = getBroker();
         try
         {
@@ -302,19 +310,40 @@ public class ConnectionTest extends Qpid
                                         "client_id", "test");
 
             Connection con2 = new AMQConnection(broker.toString(), "guest", "guest",
-                    "client_id", "test");
+                                        "client_id", "test");
 
             fail("The client should throw a ConnectionException stating the" +
                     " client ID is not unique");
         }
         catch (Exception e)
         {
-            assertTrue("Incorrect exception thrown",
+            assertTrue("Incorrect exception thrown: " + e.getMessage(),
                        e.getMessage().contains("ClientID must be unique"));
         }
-        finally
+    }
+
+    /**
+     * Tests that when different users connects with same clientid, the second connection
+     * succeeds even though the clientid verification feature is enabled (which uses a dummy
+     * 0-10 Session with the clientid as its name; these are only verified unique on a
+     * per-principal basis)
+     */
+    public void testClientIDVerificationForDifferentUsers() throws Exception
+    {
+        setTestSystemProperty(ClientProperties.QPID_VERIFY_CLIENT_ID, "true");
+
+        BrokerDetails broker = getBroker();
+        try
+        {
+            Connection con = new AMQConnection(broker.toString(), "guest", "guest",
+                                        "client_id", "test");
+
+            Connection con2 = new AMQConnection(broker.toString(), "admin", "admin",
+                                        "client_id", "test");
+        }
+        catch (Exception e)
         {
-            System.setProperty("qpid.verify_client_id", "false");
+            fail("Unexpected exception thrown, client id was not unique but usernames were different! " + e.getMessage());
         }
     }
 

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/message/ObjectMessageTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/message/ObjectMessageTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/message/ObjectMessageTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/message/ObjectMessageTest.java Thu Mar  1 10:04:31 2012
@@ -20,14 +20,10 @@
  */
 package org.apache.qpid.test.unit.client.message;
 
-import org.apache.qpid.client.AMQConnection;
-import org.apache.qpid.client.AMQDestination;
-import org.apache.qpid.client.AMQQueue;
-import org.apache.qpid.client.AMQSession;
-import org.apache.qpid.test.utils.QpidBrokerTestCase;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
 
 import javax.jms.JMSException;
 import javax.jms.Message;
@@ -35,10 +31,13 @@ import javax.jms.MessageListener;
 import javax.jms.MessageProducer;
 import javax.jms.ObjectMessage;
 
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
+import org.apache.qpid.client.AMQConnection;
+import org.apache.qpid.client.AMQDestination;
+import org.apache.qpid.client.AMQQueue;
+import org.apache.qpid.client.AMQSession;
+import org.apache.qpid.test.utils.QpidBrokerTestCase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ObjectMessageTest extends QpidBrokerTestCase implements MessageListener
 {
@@ -67,7 +66,7 @@ public class ObjectMessageTest extends Q
         connection.start();
 
         // create a publisher
-        producer = session.createProducer(destination, false, false, true);
+        producer = session.createProducer(destination, false, false);
         A a1 = new A(1, "A");
         A a2 = new A(2, "a");
         B b = new B(1, "B");

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/temporaryqueue/TemporaryQueueTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/temporaryqueue/TemporaryQueueTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/temporaryqueue/TemporaryQueueTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/temporaryqueue/TemporaryQueueTest.java Thu Mar  1 10:04:31 2012
@@ -22,237 +22,145 @@
 package org.apache.qpid.test.unit.client.temporaryqueue;
 
 import javax.jms.Connection;
-import javax.jms.ExceptionListener;
 import javax.jms.JMSException;
 import javax.jms.MessageConsumer;
 import javax.jms.MessageProducer;
 import javax.jms.Session;
 import javax.jms.TemporaryQueue;
 import javax.jms.TextMessage;
-import junit.framework.Assert;
 
+import org.apache.qpid.client.AMQDestination;
+import org.apache.qpid.client.AMQSession;
 import org.apache.qpid.test.utils.QpidBrokerTestCase;
-import org.apache.qpid.client.AMQQueue;
-import org.apache.qpid.jms.ConnectionListener;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.LinkedList;
-
-public class TemporaryQueueTest extends QpidBrokerTestCase implements ExceptionListener
+/**
+ * Tests the behaviour of {@link TemporaryQueue}.
+ */
+public class TemporaryQueueTest extends QpidBrokerTestCase
 {
-    private List<Exception> _exceptions = new ArrayList<Exception>();
-
-    protected void setUp() throws Exception
-    {
-        super.setUp();
-    }
-
-    protected void tearDown() throws Exception
-    {
-       super.tearDown();
-    }
-
-    protected Connection createConnection() throws Exception
-    {
-        return  getConnection("guest", "guest");
-    }
-
-    public void testTemporaryQueue() throws Exception
-    {
-        Connection conn = createConnection();
-        Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        TemporaryQueue queue = session.createTemporaryQueue();
+    /**
+     * Tests the basic produce/consume behaviour of a temporary queue.
+     */
+    public void testMessageDeliveryUsingTemporaryQueue() throws Exception
+    {
+        final Connection conn = getConnection();
+        final Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        final TemporaryQueue queue = session.createTemporaryQueue();
         assertNotNull(queue);
-        MessageProducer producer = session.createProducer(queue);
-        MessageConsumer consumer = session.createConsumer(queue);
+        final MessageProducer producer = session.createProducer(queue);
+        final MessageConsumer consumer = session.createConsumer(queue);
         conn.start();
         producer.send(session.createTextMessage("hello"));
         TextMessage tm = (TextMessage) consumer.receive(2000);
-        assertNotNull(tm);
+        assertNotNull("Message not received", tm);
         assertEquals("hello", tm.getText());
+    }
 
-        try
-        {
-            queue.delete();
-            fail("Expected JMSException : should not be able to delete while there are active consumers");
-        }
-        catch (JMSException je)
-        {
-            ; //pass
-        }
-
-        consumer.close();
+    /**
+     * Tests that a temporary queue cannot be used by another {@link Session}.
+     */
+    public void testUseFromAnotherSessionProhibited() throws Exception
+    {
+        final Connection conn = getConnection();
+        final Session session1 = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        final Session session2 = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        final TemporaryQueue queue = session1.createTemporaryQueue();
+        assertNotNull(queue);
 
         try
         {
-            queue.delete();
+            session2.createConsumer(queue);
+            fail("Expected a JMSException when subscribing to a temporary queue created on a different session");
         }
         catch (JMSException je)
         {
-            fail("Unexpected Exception: " + je.getMessage());
+            //pass
+            assertEquals("Cannot consume from a temporary destination created on another session", je.getMessage());
         }
-
-        conn.close();
-    }
-
-    public void tUniqueness() throws Exception
-    {
-        int numProcs = Runtime.getRuntime().availableProcessors();
-        final int threadsProc = 5;
-
-        runUniqueness(1, 10);
-        runUniqueness(numProcs * threadsProc, 10);
-        runUniqueness(numProcs * threadsProc, 100);
-        runUniqueness(numProcs * threadsProc, 500);
     }
 
-    void runUniqueness(int makers, int queues) throws Exception
-    {
-        Connection connection = createConnection();
-
-        Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
+    /**
+     * Tests that the client is able to explicitly delete a temporary queue using
+     * {@link TemporaryQueue#delete()} and is prevented from deleting one that
+     * still has consumers.
+     *
+     * Note: Under < 0-10 {@link TemporaryQueue#delete()} only marks the queue as deleted
+     * on the client. 0-10 causes the queue to be deleted from the Broker.
+     */
+    public void testExplictTemporaryQueueDeletion() throws Exception
+    {
+        final Connection conn = getConnection();
+        final Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        final AMQSession<?, ?> amqSession = (AMQSession<?, ?>)session; // Required to observe the queue binding on the Broker
+        final TemporaryQueue queue = session.createTemporaryQueue();
+        assertNotNull(queue);
+        final MessageConsumer consumer = session.createConsumer(queue);
+        conn.start();
 
-        List<TempQueueMaker> tqList = new LinkedList<TempQueueMaker>();
+        assertTrue("Queue should be bound", amqSession.isQueueBound((AMQDestination)queue));
 
-        //Create Makers
-        for (int m = 0; m < makers; m++)
+        try
         {
-            tqList.add(new TempQueueMaker(session, queues));
+            queue.delete();
+            fail("Expected JMSException : should not be able to delete while there are active consumers");
         }
-
-
-        List<Thread> threadList = new LinkedList<Thread>();
-
-        //Create Makers
-        for (TempQueueMaker maker : tqList)
+        catch (JMSException je)
         {
-            threadList.add(new Thread(maker));
+            //pass
+            assertEquals("Temporary Queue has consumers so cannot be deleted", je.getMessage());
         }
+        consumer.close();
 
-        //Start threads
-        for (Thread thread : threadList)
-        {
-            thread.start();
-        }
+        // Now deletion should succeed.
+        queue.delete();
 
-        // Join Threads
-        for (Thread thread : threadList)
+        try
         {
-            try
-            {
-                thread.join();
-            }
-            catch (InterruptedException e)
-            {
-                fail("Couldn't correctly join threads");
-            }
+            session.createConsumer(queue);
+            fail("Exception not thrown");
         }
-
-
-        List<AMQQueue> list = new LinkedList<AMQQueue>();
-
-        // Test values
-        for (TempQueueMaker maker : tqList)
+        catch (JMSException je)
         {
-            check(maker, list);
+            //pass
+            assertEquals("Cannot consume from a deleted destination", je.getMessage());
         }
 
-        Assert.assertEquals("Not enough queues made.", makers * queues, list.size());
-
-        connection.close();
-    }
-
-    private void check(TempQueueMaker tq, List<AMQQueue> list)
-    {
-        for (AMQQueue q : tq.getList())
+        if (isBroker010())
         {
-            if (list.contains(q))
-            {
-                fail(q + " already exists.");
-            }
-            else
-            {
-                list.add(q);
-            }
+            assertFalse("Queue should no longer be bound", amqSession.isQueueBound((AMQDestination)queue));
         }
     }
 
-
-    class TempQueueMaker implements Runnable
+    /**
+     * Tests that a temporary queue remains available for reuse even after its initial
+     * consumer has disconnected.
+     *
+     *  This test would fail under < 0-10 as their temporary queues are deleted automatically
+     *  (broker side) after the last consumer disconnects (so message2 would be lost). For this
+     *  reason this test is excluded from those profiles.
+     */
+    public void testTemporaryQueueReused() throws Exception
     {
-        List<AMQQueue> _queues;
-        Session _session;
-        private int _count;
-
-
-        TempQueueMaker(Session session, int queues) throws JMSException
-        {
-            _queues = new LinkedList<AMQQueue>();
-
-            _count = queues;
-
-            _session = session;
-        }
-
-        public void run()
-        {
-            int i = 0;
-            try
-            {
-                for (; i < _count; i++)
-                {
-                    _queues.add((AMQQueue) _session.createTemporaryQueue());
-                }
-            }
-            catch (JMSException jmse)
-            {
-                //stop
-            }
-        }
-
-        List<AMQQueue> getList()
-        {
-            return _queues;
-        }
-    }
+        final Connection conn = getConnection();
+        final Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        final TemporaryQueue queue = session.createTemporaryQueue();
+        assertNotNull(queue);
 
-    public void testQPID1217() throws Exception
-    {
-        Connection conA = getConnection();
-        conA.setExceptionListener(this);
-        Session sessA = conA.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        TemporaryQueue temp = sessA.createTemporaryQueue();
-        
-        MessageProducer prod = sessA.createProducer(temp);
-        prod.send(sessA.createTextMessage("hi"));
-
-        Thread.sleep(500);
-        assertTrue("Exception received", _exceptions.isEmpty());
-        
-        Connection conB = getConnection();
-        Session sessB = conB.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        
-        JMSException ex = null;
-        try
-        {
-            MessageConsumer consB = sessB.createConsumer(temp);
-        } 
-        catch (JMSException e)
-        {
-            ex = e; 
-        }
-        assertNotNull(ex);
-    }
-    
-    public static junit.framework.Test suite()
-    {
-        return new junit.framework.TestSuite(TemporaryQueueTest.class);
-    }
+        final MessageProducer producer1 = session.createProducer(queue);
+        final MessageConsumer consumer1 = session.createConsumer(queue);
+        conn.start();
+        producer1.send(session.createTextMessage("message1"));
+        producer1.send(session.createTextMessage("message2"));
+        TextMessage tm = (TextMessage) consumer1.receive(2000);
+        assertNotNull("Message not received by first consumer", tm);
+        assertEquals("message1", tm.getText());
+        consumer1.close();
 
-    public void onException(JMSException arg0)
-    {
-        _exceptions.add(arg0);
+        final MessageConsumer consumer2 = session.createConsumer(queue);
+        conn.start();
+        tm = (TextMessage) consumer2.receive(2000);
+        assertNotNull("Message not received by second consumer", tm);
+        assertEquals("message2", tm.getText());
+        consumer2.close();
     }
-
 }

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/message/UTF8Test.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/message/UTF8Test.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/message/UTF8Test.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/message/UTF8Test.java Thu Mar  1 10:04:31 2012
@@ -20,17 +20,20 @@
  */
 package org.apache.qpid.test.unit.message;
 
-import org.apache.qpid.test.utils.QpidBrokerTestCase;
-import org.apache.qpid.transport.Connection;
-import org.apache.qpid.transport.Session;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.util.Properties;
 
+import javax.jms.Connection;
+import javax.jms.Destination;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
+import javax.jms.Session;
+import javax.jms.TextMessage;
 import javax.naming.InitialContext;
-import javax.jms.*;
-import java.util.Properties;
-import java.io.*;
+
+import org.apache.qpid.test.utils.QpidBrokerTestCase;
 
 
 /**
@@ -41,8 +44,6 @@ import java.io.*;
  */
 public class UTF8Test extends QpidBrokerTestCase
 {
-    private static final Logger _logger = LoggerFactory.getLogger(UTF8Test.class);
-
     public void testPlainEn() throws Exception
     {
          invoke("UTF8En");
@@ -65,38 +66,24 @@ public class UTF8Test extends QpidBroker
 
     private void runTest(String exchangeName, String queueName, String routingKey, String data) throws Exception
     {
-        _logger.info("Running test for exchange: " + exchangeName
-                + " queue Name: " + queueName
-                + " routing key: " + routingKey);       
-        declareQueue(exchangeName, routingKey, queueName);
-
-        javax.jms.Connection con =  getConnection();
-        javax.jms.Session sess = con.createSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);
-        Destination dest = getDestination(exchangeName, routingKey, queueName);
+        Connection con =  getConnection();
+        Session sess = con.createSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);
+        final Destination dest = getDestination(exchangeName, routingKey, queueName);
+
+        final MessageConsumer msgCons = sess.createConsumer(dest);
+        con.start();
+
         // Send data
         MessageProducer msgProd = sess.createProducer(dest);
         TextMessage message = sess.createTextMessage(data);
         msgProd.send(message);
+
         // consume data
-        MessageConsumer msgCons = sess.createConsumer(dest);
-        con.start();
         TextMessage m = (TextMessage) msgCons.receive(RECEIVE_TIMEOUT);
         assertNotNull(m);
         assertEquals(m.getText(), data);
     }
 
-    private void declareQueue(String exch, String routkey, String qname) throws Exception
-    {
-        Connection conn = new Connection();
-        conn.connect("localhost", QpidBrokerTestCase.DEFAULT_PORT, "test", "guest", "guest",false);
-        Session sess = conn.createSession(0);
-        sess.exchangeDeclare(exch, "direct", null, null);
-        sess.queueDeclare(qname, null, null);
-        sess.exchangeBind(qname, exch, routkey, null);
-        sess.sync();
-        conn.close();        
-    }
-
     private Destination getDestination(String exch, String routkey, String qname) throws Exception
     {
         Properties props = new Properties();

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/TopicSessionTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/TopicSessionTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/TopicSessionTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/TopicSessionTest.java Thu Mar  1 10:04:31 2012
@@ -21,10 +21,7 @@
 package org.apache.qpid.test.unit.topic;
 
 import javax.jms.InvalidDestinationException;
-import javax.jms.JMSException;
 import javax.jms.MessageConsumer;
-import javax.jms.Session;
-import javax.jms.TemporaryTopic;
 import javax.jms.TextMessage;
 import javax.jms.TopicPublisher;
 import javax.jms.TopicSession;
@@ -40,18 +37,6 @@ import org.apache.qpid.test.utils.QpidBr
 /** @author Apache Software Foundation */
 public class TopicSessionTest extends QpidBrokerTestCase
 {
-
-    protected void setUp() throws Exception
-    {
-        super.setUp();
-    }
-
-    protected void tearDown() throws Exception
-    {
-        super.tearDown();
-    }
-
-
     public void testTopicSubscriptionUnsubscription() throws Exception
     {
 
@@ -228,83 +213,6 @@ public class TopicSessionTest extends Qp
         con.close();
     }
 
-    public void testSendingSameMessage() throws Exception
-    {
-        AMQConnection conn = (AMQConnection) getConnection("guest", "guest");
-        TopicSession session = conn.createTopicSession(true, Session.AUTO_ACKNOWLEDGE);
-        TemporaryTopic topic = session.createTemporaryTopic();
-        assertNotNull(topic);
-        TopicPublisher producer = session.createPublisher(topic);
-        MessageConsumer consumer = session.createConsumer(topic);
-        conn.start();
-        TextMessage sentMessage = session.createTextMessage("Test Message");
-        producer.send(sentMessage);
-        session.commit();
-        TextMessage receivedMessage = (TextMessage) consumer.receive(2000);
-        assertNotNull(receivedMessage);
-        assertEquals(sentMessage.getText(), receivedMessage.getText());
-        producer.send(sentMessage);
-        session.commit();
-        receivedMessage = (TextMessage) consumer.receive(2000);
-        assertNotNull(receivedMessage);
-        assertEquals(sentMessage.getText(), receivedMessage.getText());
-        session.commit();
-        conn.close();
-
-    }
-
-    public void testTemporaryTopic() throws Exception
-    {
-        AMQConnection conn = (AMQConnection) getConnection("guest", "guest");
-        TopicSession session = conn.createTopicSession(true, Session.AUTO_ACKNOWLEDGE);
-        TemporaryTopic topic = session.createTemporaryTopic();
-        assertNotNull(topic);
-        TopicPublisher producer = session.createPublisher(topic);
-        MessageConsumer consumer = session.createConsumer(topic);
-        conn.start();
-        producer.send(session.createTextMessage("hello"));
-        session.commit();
-        TextMessage tm = (TextMessage) consumer.receive(2000);
-        assertNotNull(tm);
-        assertEquals("hello", tm.getText());
-        session.commit();
-        try
-        {
-            topic.delete();
-            fail("Expected JMSException : should not be able to delete while there are active consumers");
-        }
-        catch (JMSException je)
-        {
-            ; //pass
-        }
-
-        consumer.close();
-
-        try
-        {
-            topic.delete();
-        }
-        catch (JMSException je)
-        {
-            fail("Unexpected Exception: " + je.getMessage());
-        }
-
-        TopicSession session2 = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
-        try
-        {
-            session2.createConsumer(topic);
-            fail("Expected a JMSException when subscribing to a temporary topic created on adifferent session");
-        }
-        catch (JMSException je)
-        {
-            ; // pass
-        }
-
-
-        conn.close();
-    }
-
-
     public void testNoLocal() throws Exception
     {
 
@@ -445,9 +353,4 @@ public class TopicSessionTest extends Qp
         assertEquals("Queue depth was wrong", 0, depth);
 
     }
-
-    public static junit.framework.Test suite()
-    {
-        return new junit.framework.TestSuite(TopicSessionTest.class);
-    }
 }

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutDisabledTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutDisabledTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutDisabledTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutDisabledTest.java Thu Mar  1 10:04:31 2012
@@ -30,6 +30,8 @@ public class TransactionTimeoutDisabledT
     {
         // Setup housekeeping every second
         setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".housekeeping.checkPeriod", "100");
+
+        // No transaction timeout configuration.
     }
 
     public void testProducerIdleCommit() throws Exception
@@ -47,7 +49,7 @@ public class TransactionTimeoutDisabledT
             fail("Should have succeeded");
         }
         
-        assertTrue("Listener should not have received exception", _caught.getCount() == 1);
+        assertEquals("Listener should not have received exception", 0, getNumberOfDeliveredExceptions());
         
         monitor(0, 0);
     }
@@ -65,7 +67,7 @@ public class TransactionTimeoutDisabledT
             fail("Should have succeeded");
         }
         
-        assertTrue("Listener should not have received exception", _caught.getCount() == 1);
+        assertEquals("Listener should not have received exception", 0, getNumberOfDeliveredExceptions());
         
         monitor(0, 0);
     }

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTest.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTest.java Thu Mar  1 10:04:31 2012
@@ -30,152 +30,125 @@ package org.apache.qpid.test.unit.transa
  */
 public class TransactionTimeoutTest extends TransactionTimeoutTestCase
 {
-    public void testProducerIdle() throws Exception
+
+    protected void configure() throws Exception
     {
-        try
+        // Setup housekeeping every second
+        setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".housekeeping.checkPeriod", "100");
+
+        if (getName().contains("ProducerIdle"))
         {
-            sleep(2.0f);
-    
-            _psession.commit();
+            setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.openWarn", "0");
+            setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.openClose", "0");
+            setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.idleWarn", "500");
+            setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.idleClose", "1500");
         }
-        catch (Exception e)
+        else if (getName().contains("ProducerOpen"))
         {
-            fail("Should have succeeded");
+            setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.openWarn", "1000");
+            setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.openClose", "2000");
+            setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.idleWarn", "0");
+            setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.idleClose", "0");
         }
-        
-        assertTrue("Listener should not have received exception", _caught.getCount() == 1);
-        
-        monitor(0, 0);
-    }
-    
-    public void testProducerIdleCommit() throws Exception
-    {
-        try
+        else
         {
-            send(5, 0);
-            
-            sleep(2.0f);
-    
-            _psession.commit();
-            fail("should fail");
+            setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.openWarn", "1000");
+            setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.openClose", "2000");
+            setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.idleWarn", "500");
+            setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.idleClose", "1000");
         }
-        catch (Exception e)
-        {
-            _exception = e;
-        }
-        
-        monitor(5, 0);
-        
-        check(IDLE);
     }
-    
-    public void testProducerOpenCommit() throws Exception
+
+    public void testProducerIdle() throws Exception
     {
-        try
-        {
-            send(6, 0.5f);
-    
-            _psession.commit();
-            fail("should fail");
-        }
-        catch (Exception e)
-        {
-            _exception = e;
-        }
-        
-        monitor(0, 10);
-        
-        check(OPEN);
+        sleep(2.0f);
+
+        _psession.commit();
+
+        assertEquals("Listener should not have received exception", 0, getNumberOfDeliveredExceptions());
+
+        monitor(0, 0);
     }
-    
-    public void testProducerIdleCommitTwice() throws Exception
+
+    public void testProducerIdleCommit() throws Exception
     {
+        send(5, 0);
+        // Idle for more than idleClose to generate idle-warns and cause a close.
+        sleep(2.0f);
+
         try
         {
-            send(5, 0);
-            
-            sleep(1.0f);
-            
-            _psession.commit();
-            
-            send(5, 0);
-            
-            sleep(2.0f);
-    
             _psession.commit();
-            fail("should fail");
+            fail("Exception not thrown");
         }
         catch (Exception e)
         {
             _exception = e;
         }
-        
+
         monitor(10, 0);
-        
+
         check(IDLE);
     }
-    
-    public void testProducerOpenCommitTwice() throws Exception
+
+    public void testProducerIdleCommitTwice() throws Exception
     {
+        send(5, 0);
+        // Idle for less than idleClose to generate idle-warns
+        sleep(1.0f);
+
+        _psession.commit();
+
+        send(5, 0);
+        // Now idle for more than idleClose to generate more idle-warns and cause a close.
+        sleep(2.0f);
+
         try
         {
-            send(5, 0);
-            
-            sleep(1.0f);
-            
-            _psession.commit();
-            
-            send(6, 0.5f);
-    
             _psession.commit();
-            fail("should fail");
+            fail("Exception not thrown");
         }
         catch (Exception e)
         {
             _exception = e;
         }
-        
-        // the presistent store generates more idle messages?
-        monitor(isBrokerStorePersistent() ? 10 : 5, 10);
-        
-        check(OPEN);
+
+        monitor(15, 0);
+
+        check(IDLE);
     }
-    
+
     public void testProducerIdleRollback() throws Exception
     {
+        send(5, 0);
+        // Now idle for more than idleClose to generate more idle-warns and cause a close.
+        sleep(2.0f);
         try
         {
-            send(5, 0);
-            
-            sleep(2.0f);
-    
             _psession.rollback();
-            fail("should fail");
+            fail("Exception not thrown");
         }
         catch (Exception e)
         {
             _exception = e;
         }
-        
-        monitor(5, 0);
-        
+
+        monitor(10, 0);
+
         check(IDLE);
     }
-    
+
     public void testProducerIdleRollbackTwice() throws Exception
     {
+        send(5, 0);
+        // Idle for less than idleClose to generate idle-warns
+        sleep(1.0f);
+        _psession.rollback();
+        send(5, 0);
+        // Now idle for more than idleClose to generate more idle-warns and cause a close.
+        sleep(2.0f);
         try
         {
-            send(5, 0);
-            
-            sleep(1.0f);
-            
-            _psession.rollback();
-            
-            send(5, 0);
-            
-            sleep(2.0f);
-    
             _psession.rollback();
             fail("should fail");
         }
@@ -183,153 +156,153 @@ public class TransactionTimeoutTest exte
         {
             _exception = e;
         }
-        
-        monitor(10, 0);
+
+        monitor(15, 0);
         
         check(IDLE);
     }
-    
-    public void testConsumerCommitClose() throws Exception
+
+    public void testProducerOpenCommit() throws Exception
     {
         try
         {
-            send(1, 0);
-    
+            // Sleep between sends to cause open warns and then cause a close.
+            send(6, 0.5f);
             _psession.commit();
-    
-            expect(1, 0);
-            
-            _csession.commit();
-            
-            sleep(3.0f);
-    
-            _csession.close();
+            fail("Exception not thrown");
         }
         catch (Exception e)
         {
-            fail("should have succeeded: " + e.getMessage());
+            _exception = e;
         }
-        
-        assertTrue("Listener should not have received exception", _caught.getCount() == 1);
-        
-        monitor(0, 0);
+
+        monitor(0, 10);
+
+        check(OPEN);
     }
     
-    public void testConsumerIdleReceiveCommit() throws Exception
+    public void testProducerOpenCommitTwice() throws Exception
     {
+        send(5, 0);
+        sleep(1.0f);
+        _psession.commit();
+
         try
         {
-            send(1, 0);
-    
+            // Now sleep between sends to cause open warns and then cause a close.
+            send(6, 0.5f);
             _psession.commit();
-    
-            sleep(2.0f);
-            
-            expect(1, 0);
-            
-            sleep(2.0f);
-    
-            _csession.commit();
+            fail("Exception not thrown");
         }
         catch (Exception e)
         {
-            fail("Should have succeeded");
+            _exception = e;
         }
+
+        monitor(0, 10);
         
-        assertTrue("Listener should not have received exception", _caught.getCount() == 1);
-        
+        check(OPEN);
+    }
+
+    public void testConsumerCommitClose() throws Exception
+    {
+        send(1, 0);
+
+        _psession.commit();
+
+        expect(1, 0);
+
+        _csession.commit();
+
+        sleep(3.0f);
+
+        _csession.close();
+
+        assertEquals("Listener should not have received exception", 0, getNumberOfDeliveredExceptions());
+
         monitor(0, 0);
     }
     
+    public void testConsumerIdleReceiveCommit() throws Exception
+    {
+        send(1, 0);
+
+        _psession.commit();
+
+        sleep(2.0f);
+
+        expect(1, 0);
+
+        sleep(2.0f);
+
+        _csession.commit();
+
+        assertEquals("Listener should not have received exception", 0, getNumberOfDeliveredExceptions());
+
+        monitor(0, 0);
+    }
+
     public void testConsumerIdleCommit() throws Exception
     {
-        try
-        {
-            send(1, 0);
-    
-            _psession.commit();
-    
-            expect(1, 0);
-            
-            sleep(2.0f);
-    
-            _csession.commit();
-        }
-        catch (Exception e)
-        {
-            fail("Should have succeeded");
-        }
-        
-        assertTrue("Listener should not have received exception", _caught.getCount() == 1);
-        
+        send(1, 0);
+
+        _psession.commit();
+
+        expect(1, 0);
+
+        sleep(2.0f);
+
+        _csession.commit();
+
+        assertEquals("Listener should not have received exception", 0, getNumberOfDeliveredExceptions());
+
         monitor(0, 0);
     }
     
     public void testConsumerIdleRollback() throws Exception
     {
-        try
-        {
-            send(1, 0);
-    
-            _psession.commit();
-            
-            expect(1, 0);
-            
-            sleep(2.0f);
-    
-            _csession.rollback();
-        }
-        catch (Exception e)
-        {
-            fail("Should have succeeded");
-        }
-        
-        assertTrue("Listener should not have received exception", _caught.getCount() == 1);
-        
+        send(1, 0);
+
+        _psession.commit();
+
+        expect(1, 0);
+
+        sleep(2.0f);
+
+        _csession.rollback();
+
+        assertEquals("Listener should not have received exception", 0, getNumberOfDeliveredExceptions());
+
         monitor(0, 0);
     }
-    
+
     public void testConsumerOpenCommit() throws Exception
     {
-        try
-        {
-            send(1, 0);
-    
-            _psession.commit();
-            
-            sleep(3.0f);
-    
-            _csession.commit();
-        }
-        catch (Exception e)
-        {
-            fail("Should have succeeded");
-        }
-        
-        assertTrue("Listener should not have received exception", _caught.getCount() == 1);
-        
+        send(1, 0);
+
+        _psession.commit();
+
+        sleep(3.0f);
+
+        _csession.commit();
+
+        assertEquals("Listener should not have received exception", 0, getNumberOfDeliveredExceptions());
+
         monitor(0, 0);
     }
     
     public void testConsumerOpenRollback() throws Exception
     {
-        try
-        {
-            send(1, 0);
-    
-            _psession.commit();
-    
-            sleep(3.0f);
-    
-            _csession.rollback();
-        }
-        catch (Exception e)
-        {
-            fail("Should have succeeded");
-        }
-        
-        assertTrue("Listener should not have received exception", _caught.getCount() == 1);
+        send(1, 0);
         
+        _psession.commit();
+
+        sleep(3.0f);
+
+        _csession.rollback();
+
+        assertEquals("Listener should not have received exception", 0, getNumberOfDeliveredExceptions());
+
         monitor(0, 0);
     }
 }

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTestCase.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTestCase.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTestCase.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTestCase.java Thu Mar  1 10:04:31 2012
@@ -23,6 +23,7 @@ package org.apache.qpid.test.unit.transa
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
 
 import javax.jms.DeliveryMode;
 import javax.jms.ExceptionListener;
@@ -49,7 +50,7 @@ import org.apache.qpid.util.LogMonitor;
 /**
  * The {@link TestCase} for transaction timeout testing.
  */
-public class TransactionTimeoutTestCase extends QpidBrokerTestCase implements ExceptionListener
+public abstract class TransactionTimeoutTestCase extends QpidBrokerTestCase implements ExceptionListener
 {
     public static final String VIRTUALHOST = "test";
     public static final String TEXT = "0123456789abcdefghiforgettherest";
@@ -64,31 +65,16 @@ public class TransactionTimeoutTestCase 
     protected Queue _queue;
     protected MessageConsumer _consumer;
     protected MessageProducer _producer;
-    protected CountDownLatch _caught = new CountDownLatch(1);
+    private CountDownLatch _exceptionLatch = new CountDownLatch(1);
+    protected AtomicInteger _exceptionCount = new AtomicInteger(0);
     protected String _message;
     protected Exception _exception;
     protected AMQConstant _code;
-    
-    protected void configure() throws Exception
-    {
-        // Setup housekeeping every second
-        setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".housekeeping.checkPeriod", "100");
-        
-        /*
-         * Set transaction timout properties. The XML in the virtualhosts configuration is as follows:
-         * 
-         *  <transactionTimeout>
-         *      <openWarn>1000</openWarn>
-         *      <openClose>2000</openClose>
-         *      <idleWarn>500</idleWarn>
-         *      <idleClose>1500</idleClose>
-         *  </transactionTimeout>
-         */
-        setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.openWarn", "1000");
-        setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.openClose", "2000");
-        setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.idleWarn", "500");
-        setConfigurationProperty("virtualhosts.virtualhost." + VIRTUALHOST + ".transactionTimeout.idleClose", "1000");
-    }
+
+    /**
+     * Subclasses must implement this to configure transaction timeout parameters.
+     */
+    protected abstract void configure() throws Exception;
         
     protected void setUp() throws Exception
     {
@@ -233,7 +219,7 @@ public class TransactionTimeoutTestCase 
      */
     protected void check(String reason)throws InterruptedException
     {
-        assertTrue("Should have caught exception in listener", _caught.await(1, TimeUnit.SECONDS));
+        assertTrue("Should have caught exception in listener", _exceptionLatch.await(1, TimeUnit.SECONDS));
         assertNotNull("Should have thrown exception to client", _exception);
         assertTrue("Exception message should contain '" + reason + "': " + _message, _message.contains(reason + " transaction timed out"));
         assertNotNull("Exception should have an error code", _code);
@@ -243,11 +229,18 @@ public class TransactionTimeoutTestCase 
     /** @see javax.jms.ExceptionListener#onException(javax.jms.JMSException) */
     public void onException(JMSException jmse)
     {
-        _caught.countDown();
+        _exceptionLatch.countDown();
+        _exceptionCount.incrementAndGet();
+
         _message = jmse.getLinkedException().getMessage();
         if (jmse.getLinkedException() instanceof AMQException)
         {
             _code = ((AMQException) jmse.getLinkedException()).getErrorCode();
         }
     }
+
+    protected int getNumberOfDeliveredExceptions()
+    {
+        return _exceptionCount.get();
+    }
 }

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java?rev=1295492&r1=1295491&r2=1295492&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java Thu Mar  1 10:04:31 2012
@@ -52,7 +52,6 @@ import javax.naming.NamingException;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.XMLConfiguration;
 import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
 import org.apache.qpid.AMQException;
 import org.apache.qpid.client.AMQConnectionFactory;
@@ -115,7 +114,6 @@ public class QpidBrokerTestCase extends 
     private static final String BROKER_LANGUAGE = "broker.language";
     private static final String BROKER_TYPE = "broker.type";
     private static final String BROKER_COMMAND = "broker.command";
-    private static final String BROKER_CLEAN = "broker.clean";
     private static final String BROKER_CLEAN_BETWEEN_TESTS = "broker.clean.between.tests";
     private static final String BROKER_EXISTING_QPID_WORK = "broker.existing.qpid.work";
     private static final String BROKER_VERSION = "broker.version";
@@ -137,16 +135,15 @@ public class QpidBrokerTestCase extends 
     public static final int DEFAULT_VM_PORT = 1;
     public static final int DEFAULT_PORT = Integer.getInteger("test.port", ServerConfiguration.DEFAULT_PORT);
     public static final int FAILING_PORT = Integer.parseInt(System.getProperty("test.port.alt"));
-    public static final int DEFAULT_MANAGEMENT_PORT = Integer.getInteger("test.mport", ServerConfiguration.DEFAULT_JMXPORT);
+    public static final int DEFAULT_MANAGEMENT_PORT = Integer.getInteger("test.mport", ServerConfiguration.DEFAULT_JMXPORT_REGISTRYSERVER);
     public static final int DEFAULT_SSL_PORT = Integer.getInteger("test.port.ssl", ServerConfiguration.DEFAULT_SSL_PORT);
 
     protected String _brokerLanguage = System.getProperty(BROKER_LANGUAGE, JAVA);
     protected BrokerType _brokerType = BrokerType.valueOf(System.getProperty(BROKER_TYPE, "").toUpperCase());
     protected String _brokerCommand = System.getProperty(BROKER_COMMAND);
-    private String _brokerClean = System.getProperty(BROKER_CLEAN, null);
     private Boolean _brokerCleanBetweenTests = Boolean.getBoolean(BROKER_CLEAN_BETWEEN_TESTS);
     private final AmqpProtocolVersion _brokerVersion = AmqpProtocolVersion.valueOf(System.getProperty(BROKER_VERSION, ""));
-    protected String _output = System.getProperty(TEST_OUTPUT);
+    protected String _output = System.getProperty(TEST_OUTPUT, System.getProperty("java.io.tmpdir"));
     protected Boolean _brokerPersistent = Boolean.getBoolean(BROKER_PERSITENT);
     private String _brokerProtocolExcludes = System.getProperty(BROKER_PROTOCOL_EXCLUDES);
 
@@ -217,8 +214,13 @@ public class QpidBrokerTestCase extends 
         if (redirected)
         {
             _outputFile = new File(String.format("%s/TEST-%s.out", _output, qname));
-            out = new PrintStream(_outputFile);
+            out = new PrintStream(new FileOutputStream(_outputFile), true);
             err = new PrintStream(String.format("%s/TEST-%s.err", _output, qname));
+
+            // This is relying on behaviour specific to log4j 1.2.12.   If we were to upgrade to 1.2.13 or
+            // beyond we must change either code (or config) to ensure that ConsoleAppender#setFollow
+            // is set to true otherwise log4j logging will not respect the following reassignment.
+
             System.setOut(out);
             System.setErr(err);
 
@@ -259,14 +261,9 @@ public class QpidBrokerTestCase extends 
 
             if(_brokerCleanBetweenTests)
             {
-            	try
-            	{
-            		cleanBroker();
-            	}
-            	catch (Exception e)
-            	{
-            		_logger.error("exception cleaning up broker", e);
-            	}
+                final String qpidWork = System.getProperty("QPID_WORK");
+                cleanBrokerWork(qpidWork);
+                createBrokerWork(qpidWork);
             }
 
             _logger.info("==========  stop " + getTestName() + " ==========");
@@ -298,11 +295,11 @@ public class QpidBrokerTestCase extends 
         String existingQpidWorkPath = System.getProperty(BROKER_EXISTING_QPID_WORK);
         if(existingQpidWorkPath != null && !existingQpidWorkPath.equals(""))
         {
-            cleanBroker();
 
+            String qpidWork = getQpidWork(_brokerType, getPort());
             File existing = new File(existingQpidWorkPath);
-            File qpidWork = new File(getQpidWork(_brokerType, getPort()));
-            FileUtils.copyRecursive(existing, qpidWork);
+            cleanBrokerWork(qpidWork);
+            FileUtils.copyRecursive(existing, new File(qpidWork));
         }
 
         startBroker();
@@ -480,7 +477,7 @@ public class QpidBrokerTestCase extends 
 
             addExcludedPorts(port, DEFAULT_SSL_PORT, options);
 
-            options.setJmxPort(getManagementPort(port));
+            options.setJmxPortRegistryServer(getManagementPort(port));
 
             //Set the log config file, relying on the log4j.configuration system property
             //set on the JVM by the JUnit runner task in module.xml.
@@ -494,25 +491,22 @@ public class QpidBrokerTestCase extends 
         }
         else if (!_brokerType.equals(BrokerType.EXTERNAL))
         {
+            // Add the port to QPID_WORK to ensure unique working dirs for multi broker tests
+            final String qpidWork = getQpidWork(_brokerType, port);
             String cmd = getBrokerCommand(port);
             _logger.info("starting external broker: " + cmd);
             ProcessBuilder pb = new ProcessBuilder(cmd.split("\\s+"));
             pb.redirectErrorStream(true);
-
             Map<String, String> env = pb.environment();
-
             String qpidHome = System.getProperty(QPID_HOME);
             env.put(QPID_HOME, qpidHome);
-
             //Augment Path with bin directory in QPID_HOME.
             env.put("PATH", env.get("PATH").concat(File.pathSeparator + qpidHome + "/bin"));
 
             //Add the test name to the broker run.
             // DON'T change PNAME, qpid.stop needs this value.
             env.put("QPID_PNAME", "-DPNAME=QPBRKR -DTNAME=\"" + getTestName() + "\"");
-            // Add the port to QPID_WORK to ensure unique working dirs for multi broker tests
-            env.put("QPID_WORK", getQpidWork(_brokerType, port));
-
+            env.put("QPID_WORK", qpidWork);
 
             // Use the environment variable to set amqj.logging.level for the broker
             // The value used is a 'server' value in the test configuration to
@@ -563,6 +557,10 @@ public class QpidBrokerTestCase extends 
                     env.put("QPID_OPTS", QPID_OPTS);
                 }
             }
+
+            // cpp broker requires that the work directory is created
+            createBrokerWork(qpidWork);
+
             Process process = pb.start();;
 
             Piper p = new Piper(process.getInputStream(),
@@ -577,7 +575,7 @@ public class QpidBrokerTestCase extends 
                 _logger.info("broker failed to become ready (" + p.ready + "):" + p.getStopLine());
                 //Ensure broker has stopped
                 process.destroy();
-                cleanBroker();
+                cleanBrokerWork(qpidWork);
                 throw new RuntimeException("broker failed to become ready:"
                                            + p.getStopLine());
             }
@@ -587,7 +585,7 @@ public class QpidBrokerTestCase extends 
                 //test that the broker is still running and hasn't exited unexpectedly
                 int exit = process.exitValue();
                 _logger.info("broker aborted: " + exit);
-                cleanBroker();
+                cleanBrokerWork(qpidWork);
                 throw new RuntimeException("broker aborted: " + exit);
             }
             catch (IllegalThreadStateException e)
@@ -655,21 +653,28 @@ public class QpidBrokerTestCase extends 
 
     public String getTestConfigFile()
     {
-        String path = _output == null ? System.getProperty("java.io.tmpdir") : _output;
-        return path + "/" + getTestQueueName() + "-config.xml";
+        return _output + "/" + getTestQueueName() + "-config.xml";
     }
 
     public String getTestVirtualhostsFile()
     {
-        String path = _output == null ? System.getProperty("java.io.tmpdir") : _output;
-        return path + "/" + getTestQueueName() + "-virtualhosts.xml";
+        return _output + "/" + getTestQueueName() + "-virtualhosts.xml";
+    }
+
+    private String relativeToQpidHome(String file)
+    {
+        return file.replace(System.getProperty(QPID_HOME,"QPID_HOME") + "/","");
     }
 
     protected void saveTestConfiguration() throws ConfigurationException
     {
-        // Specifiy the test config file
+        // Specify the test config file
         String testConfig = getTestConfigFile();
-        setSystemProperty("test.config", testConfig);
+        String relative = relativeToQpidHome(testConfig);
+
+        setSystemProperty("test.config", relative);
+        _logger.info("Set test.config property to: " + relative);
+        _logger.info("Saving test virtualhosts file at: " + testConfig);
 
         // Create the file if configuration does not exist
         if (_testConfiguration.isEmpty())
@@ -681,9 +686,13 @@ public class QpidBrokerTestCase extends 
 
     protected void saveTestVirtualhosts() throws ConfigurationException
     {
-        // Specifiy the test virtualhosts file
+        // Specify the test virtualhosts file
         String testVirtualhosts = getTestVirtualhostsFile();
-        setSystemProperty("test.virtualhosts", testVirtualhosts);
+        String relative = relativeToQpidHome(testVirtualhosts);
+
+        setSystemProperty("test.virtualhosts", relative);
+        _logger.info("Set test.virtualhosts property to: " + relative);
+        _logger.info("Saving test virtualhosts file at: " + testVirtualhosts);
 
         // Create the file if configuration does not exist
         if (_testVirtualhosts.isEmpty())
@@ -693,30 +702,33 @@ public class QpidBrokerTestCase extends 
         _testVirtualhosts.save(testVirtualhosts);
     }
 
-    public void cleanBroker()
+    protected void cleanBrokerWork(final String qpidWork)
     {
-        if (_brokerClean != null)
+        if (qpidWork != null)
         {
-            _logger.info("clean: " + _brokerClean);
+            _logger.info("Cleaning broker work dir: " + qpidWork);
 
-            try
+            File file = new File(qpidWork);
+            if (file.exists())
             {
-                ProcessBuilder pb = new ProcessBuilder(_brokerClean.split("\\s+"));
-                pb.redirectErrorStream(true);
-                Process clean = pb.start();
-                new Piper(clean.getInputStream(),_brokerOutputStream).start();
-
-                clean.waitFor();
-
-                _logger.info("clean exited: " + clean.exitValue());
-            }
-            catch (IOException e)
-            {
-                throw new RuntimeException(e);
+                final boolean success = FileUtils.delete(file, true);
+                if(!success)
+                {
+                    throw new RuntimeException("Failed to recursively delete beneath : " + file);
+                }
             }
-            catch (InterruptedException e)
+        }
+    }
+
+    protected void createBrokerWork(final String qpidWork)
+    {
+        if (qpidWork != null)
+        {
+            final File dir = new File(qpidWork);
+            dir.mkdirs();
+            if (!dir.isDirectory())
             {
-                throw new RuntimeException(e);
+                throw new RuntimeException("Failed to created Qpid work directory : " + qpidWork);
             }
         }
     }
@@ -730,7 +742,7 @@ public class QpidBrokerTestCase extends 
     {
         port = getPort(port);
 
-        _logger.info("stopping broker: " + getBrokerCommand(port));
+        _logger.info("stopping broker on port : " + port);
         BrokerHolder broker = _brokers.remove(port);
         broker.shutdown();
     }
@@ -906,7 +918,7 @@ public class QpidBrokerTestCase extends 
     }
 
     /**
-     * Add an environtmen variable for the external broker environment
+     * Add an environment variable for the external broker environment
      *
      * @param property the property to set
      * @param value    the value to set it to
@@ -990,9 +1002,9 @@ public class QpidBrokerTestCase extends 
      * Get the default connection factory for the currently used broker
      * Default factory is "local"
      *
-     * @return A conection factory
+     * @return A connection factory
      *
-     * @throws Exception if there is an error getting the tactory
+     * @throws Exception if there is an error getting the factory
      */
     public AMQConnectionFactory getConnectionFactory() throws NamingException
     {
@@ -1016,7 +1028,7 @@ public class QpidBrokerTestCase extends 
      *
      * @param factoryName The factory name
      *
-     * @return A conection factory
+     * @return A connection factory
      *
      * @throws Exception if there is an error getting the tactory
      */
@@ -1054,7 +1066,7 @@ public class QpidBrokerTestCase extends 
     {
         _logger.info("get connection");
         Connection con = getConnectionFactory().createConnection(username, password);
-        //add the connection in the lis of connections
+        //add the connection in the list of connections
         _connections.add(con);
         return con;
     }
@@ -1063,7 +1075,7 @@ public class QpidBrokerTestCase extends 
     {
         _logger.info("get Connection");
         Connection con = getConnectionFactory().createConnection(username, password, id);
-        //add the connection in the lis of connections
+        //add the connection in the list of connections
         _connections.add(con);
         return con;
     }
@@ -1154,7 +1166,7 @@ public class QpidBrokerTestCase extends 
     /**
      * Send messages to the given destination.
      *
-     * If session is transacted then messages will be commited before returning
+     * If session is transacted then messages will be committed before returning
      *
      * @param session the session to use for sending
      * @param destination where to send them to
@@ -1162,7 +1174,7 @@ public class QpidBrokerTestCase extends 
      *
      * @param batchSize the batchSize in which to commit, 0 means no batching,
      * but a single commit at the end
-     * @return the sent messgse
+     * @return the sent message
      *
      * @throws Exception
      */
@@ -1175,7 +1187,7 @@ public class QpidBrokerTestCase extends 
     /**
      * Send messages to the given destination.
      *
-     * If session is transacted then messages will be commited before returning
+     * If session is transacted then messages will be committed before returning
      *
      * @param session the session to use for sending
      * @param destination where to send them to
@@ -1184,7 +1196,7 @@ public class QpidBrokerTestCase extends 
      * @param offset offset allows the INDEX value of the message to be adjusted.
      * @param batchSize the batchSize in which to commit, 0 means no batching,
      * but a single commit at the end
-     * @return the sent messgse
+     * @return the sent message
      *
      * @throws Exception
      */

Propchange: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Mar  1 10:04:31 2012
@@ -3,5 +3,5 @@
 /qpid/branches/java-broker-0-10/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java:795950-829653
 /qpid/branches/java-network-refactor/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java:805429-821809
 /qpid/branches/qpid-2935/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java:1061302-1072333
-/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java:1073294-1157765,1160415-1162726,1162729-1166086,1166089-1167527
+/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java:1073294-1157765,1160415-1162726,1162729-1166086,1166089-1180000
 /qpid/trunk/qpid/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java:796646-796653



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