Modified: 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/LocalCircuitFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/LocalCircuitFactory.java?rev=651325&r1=651324&r2=651325&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/LocalCircuitFactory.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/LocalCircuitFactory.java
 Thu Apr 24 10:49:03 2008
@@ -1,316 +1,316 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.test.framework;
-
-import org.apache.log4j.Logger;
-
-import org.apache.qpid.test.framework.localcircuit.LocalCircuitImpl;
-import org.apache.qpid.test.framework.localcircuit.LocalPublisherImpl;
-import org.apache.qpid.test.framework.localcircuit.LocalReceiverImpl;
-import org.apache.qpid.test.framework.sequencers.CircuitFactory;
-import org.apache.qpid.util.ConversationFactory;
-
-import org.apache.qpid.junit.extensions.util.ParsedProperties;
-
-import javax.jms.*;
-
-import java.util.List;
-import java.util.Properties;
-import java.util.concurrent.atomic.AtomicLong;
-
-/**
- * LocalCircuitFactory is a circuit factory that creates test circuits with 
publishing and receiving ends rooted
- * on the same JVM. The ends of the circuit are presented as [EMAIL PROTECTED] 
Publisher} and [EMAIL PROTECTED] Receiver} interfaces, which
- * in turn provide methods to apply assertions to the circuit. The creation of 
the circuit ends, and the presentation
- * of the ends as publisher/receiver interfaces, are designed to be overriden, 
so that circuits and assertions that
- * use messaging features not available in JMS can be written. This provides 
an extension point for writing tests
- * against proprietary features of JMS implementations.
- *
- * <p/><table id="crc"><caption>CRC Card</caption>
- * <tr><th> Responsibilities <th> Collaborations
- * <tr><td> Provide a standard test procedure over a test circuit.
- * <tr><td> Construct test circuits appropriate to a tests context.
- * </table>
- */
-public class LocalCircuitFactory implements CircuitFactory
-{
-    /** Used for debugging. */
-    private static final Logger log = 
Logger.getLogger(LocalCircuitFactory.class);
-
-    /** Used to create unique destination names for each test. */
-    protected static AtomicLong uniqueDestsId = new AtomicLong();
-
-    /**
-     * Holds a test coordinating conversation with the test clients. This 
should consist of assigning the test roles,
-     * begining the test and gathering the test reports from the participants.
-     *
-     * @param testCircuit    The test circuit.
-     * @param assertions     The list of assertions to apply to the test 
circuit.
-     * @param testProperties The test case definition.
-     */
-    public void sequenceTest(Circuit testCircuit, List<Assertion> assertions, 
Properties testProperties)
-    {
-        FrameworkBaseCase.assertNoFailures(testCircuit.test(1, assertions));
-    }
-
-    /**
-     * Creates a test circuit for the test, configered by the test parameters 
specified.
-     *
-     * @param testProperties The test parameters.
-     *
-     * @return A test circuit.
-     */
-    public Circuit createCircuit(ParsedProperties testProperties)
-    {
-        Circuit result;
-
-        // Cast the test properties into a typed interface for convenience.
-        MessagingTestConfigProperties props = new 
MessagingTestConfigProperties(testProperties);
-
-        // Create a standard publisher/receivers test client pair on a shared 
connection, individual sessions.
-        try
-        {
-            // Get a unique offset to append to destination names to make them 
unique to the connection.
-            long uniqueId = uniqueDestsId.incrementAndGet();
-
-            // Set up the connection.
-            Connection connection = TestUtils.createConnection(testProperties);
-
-            // Add the connection exception listener to assert on exception 
conditions with.
-            // ExceptionMonitor exceptionMonitor = new ExceptionMonitor();
-            // connection.setExceptionListener(exceptionMonitor);
-
-            // Set up the publisher.
-            CircuitEndBase publisherEnd = 
createPublisherCircuitEnd(connection, props, uniqueId);
-
-            // Set up the receiver.
-            CircuitEndBase receiverEnd = createReceiverCircuitEnd(connection, 
props, uniqueId);
-
-            // Start listening for incoming messages.
-            connection.start();
-
-            // Package everything up.
-            LocalPublisherImpl publisher = 
createPublisherFromCircuitEnd(publisherEnd);
-            LocalReceiverImpl receiver = 
createReceiverFromCircuitEnd(receiverEnd);
-
-            result = new LocalCircuitImpl(testProperties, publisher, receiver, 
connection, publisher.getExceptionMonitor());
-        }
-        catch (JMSException e)
-        {
-            throw new RuntimeException("Could not create publisher/receivers 
pair due to a JMSException.", e);
-        }
-
-        return result;
-    }
-
-    /**
-     * Creates a local [EMAIL PROTECTED] Receiver} from a [EMAIL PROTECTED] 
CircuitEnd}. Sub-classes may override this to provide more
-     * specialized receivers if necessary.
-     *
-     * @param receiverEnd The receiving circuit end.
-     *
-     * @return A [EMAIL PROTECTED] Receiver}.
-     */
-    protected LocalReceiverImpl createReceiverFromCircuitEnd(CircuitEndBase 
receiverEnd)
-    {
-        return new LocalReceiverImpl(receiverEnd);
-    }
-
-    /**
-     * Creates a local [EMAIL PROTECTED] Publisher} from a [EMAIL PROTECTED] 
CircuitEnd}. Sub-classes may override this to provide more
-     * specialized receivers if necessary.
-     *
-     * @param publisherEnd The publishing circuit end.
-     *
-     * @return A [EMAIL PROTECTED] Receiver}.
-     */
-    protected LocalPublisherImpl createPublisherFromCircuitEnd(CircuitEndBase 
publisherEnd)
-    {
-        return new LocalPublisherImpl(publisherEnd);
-    }
-
-    /**
-     * Builds a circuit end suitable for the publishing side of a test 
circuit, from standard test parameters.
-     *
-     * @param connection The connection to build the circuit end on.
-     * @param testProps  The test parameters to configure the circuit end 
construction.
-     * @param uniqueId   A unique number to being numbering destinations from, 
to make this circuit unique.
-     *
-     * @return A circuit end suitable for the publishing side of a test 
circuit.
-     *
-     * @throws JMSException Any underlying JMSExceptions are allowed to fall 
through and fail the creation.
-     */
-    public CircuitEndBase createPublisherCircuitEnd(Connection connection, 
ParsedProperties testProps, long uniqueId)
-        throws JMSException
-    {
-        log.debug(
-            "public CircuitEndBase createPublisherCircuitEnd(Connection 
connection, ParsedProperties testProps, long uniqueId = "
-            + uniqueId + "): called");
-
-        // Cast the test properties into a typed interface for convenience.
-        MessagingTestConfigProperties props = new 
MessagingTestConfigProperties(testProps);
-
-        // Check that the test properties do not contain AMQP/Qpid specific 
settings, and fail if they do.
-        if (props.getImmediate() || props.getMandatory())
-        {
-            throw new RuntimeException(
-                "Cannot create a pure JMS circuit as the test properties 
require AMQP specific options.");
-        }
-
-        Session session = 
connection.createSession(props.getPublisherTransacted(), props.getAckMode());
-
-        Destination destination =
-            props.getPubsub() ? 
session.createTopic(props.getSendDestinationNameRoot() + "_" + uniqueId)
-                              : 
session.createQueue(props.getSendDestinationNameRoot() + "_" + uniqueId);
-
-        MessageProducer producer = props.getPublisherProducerBind() ? 
session.createProducer(destination) : null;
-
-        MessageConsumer consumer =
-            props.getPublisherConsumerBind()
-            ? 
session.createConsumer(session.createQueue(props.getReceiveDestinationNameRoot()
 + "_" + uniqueId)) : null;
-
-        MessageMonitor messageMonitor = new MessageMonitor();
-
-        if (consumer != null)
-        {
-            consumer.setMessageListener(messageMonitor);
-        }
-
-        ExceptionMonitor exceptionMonitor = new ExceptionMonitor();
-        connection.setExceptionListener(exceptionMonitor);
-
-        if (!props.getPublisherConsumerActive() && (consumer != null))
-        {
-            consumer.close();
-        }
-
-        return new CircuitEndBase(producer, consumer, session, messageMonitor, 
exceptionMonitor);
-    }
-
-    /**
-     * Builds a circuit end suitable for the receiving side of a test circuit, 
from standard test parameters.
-     *
-     * @param connection The connection to build the circuit end on.
-     * @param testProps  The test parameters to configure the circuit end 
construction.
-     * @param uniqueId   A unique number to being numbering destinations from, 
to make this circuit unique.
-     *
-     * @return A circuit end suitable for the receiving side of a test circuit.
-     *
-     * @throws JMSException Any underlying JMSExceptions are allowed to fall 
through and fail the creation.
-     */
-    public CircuitEndBase createReceiverCircuitEnd(Connection connection, 
ParsedProperties testProps, long uniqueId)
-        throws JMSException
-    {
-        log.debug(
-            "public CircuitEndBase createReceiverCircuitEnd(Connection 
connection, ParsedProperties testProps, long uniqueId = "
-            + uniqueId + "): called");
-
-        // Cast the test properties into a typed interface for convenience.
-        MessagingTestConfigProperties props = new 
MessagingTestConfigProperties(testProps);
-
-        // Check that the test properties do not contain AMQP/Qpid specific 
settings, and fail if they do.
-        if (props.getImmediate() || props.getMandatory())
-        {
-            throw new RuntimeException(
-                "Cannot create a pure JMS circuit as the test properties 
require AMQP specific options.");
-        }
-
-        Session session = 
connection.createSession(props.getPublisherTransacted(), props.getAckMode());
-
-        MessageProducer producer =
-            props.getReceiverProducerBind()
-            ? 
session.createProducer(session.createQueue(props.getReceiveDestinationNameRoot()
 + "_" + uniqueId)) : null;
-
-        Destination destination =
-            props.getPubsub() ? 
session.createTopic(props.getSendDestinationNameRoot() + "_" + uniqueId)
-                              : 
session.createQueue(props.getSendDestinationNameRoot() + "_" + uniqueId);
-
-        MessageConsumer consumer =
-            props.getReceiverConsumerBind()
-            ? ((props.getDurableSubscription() && props.getPubsub())
-                ? session.createDurableSubscriber((Topic) destination, 
"testsub") : session.createConsumer(destination))
-            : null;
-
-        MessageMonitor messageMonitor = new MessageMonitor();
-
-        if (consumer != null)
-        {
-            consumer.setMessageListener(messageMonitor);
-        }
-
-        if (!props.getReceiverConsumerActive() && (consumer != null))
-        {
-            consumer.close();
-        }
-
-        return new CircuitEndBase(producer, consumer, session, messageMonitor, 
null);
-    }
-
-    /**
-     * Sets the sender test client to coordinate the test with.
-     *
-     * @param sender The contact details of the sending client in the test.
-     */
-    public void setSender(TestClientDetails sender)
-    {
-        throw new RuntimeException("Not implemented.");
-    }
-
-    /**
-     * Sets the receiving test client to coordinate the test with.
-     *
-     * @param receiver The contact details of the sending client in the test.
-     */
-    public void setReceiver(TestClientDetails receiver)
-    {
-        throw new RuntimeException("Not implemented.");
-    }
-
-    /**
-     * Supplies the sending test client.
-     *
-     * @return The sending test client.
-     */
-    public TestClientDetails getSender()
-    {
-        throw new RuntimeException("Not implemented.");
-    }
-
-    /**
-     * Supplies the receiving test client.
-     *
-     * @return The receiving test client.
-     */
-    public List<TestClientDetails> getReceivers()
-    {
-        throw new RuntimeException("Not implemented.");
-    }
-
-    /**
-     * Accepts the conversation factory over which to hold the test 
coordinating conversation.
-     *
-     * @param conversationFactory The conversation factory to coordinate the 
test over.
-     */
-    public void setConversationFactory(ConversationFactory conversationFactory)
-    {
-        throw new RuntimeException("Not implemented.");
-    }
-}
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.test.framework;
+
+import org.apache.log4j.Logger;
+
+import org.apache.qpid.test.framework.localcircuit.LocalCircuitImpl;
+import org.apache.qpid.test.framework.localcircuit.LocalPublisherImpl;
+import org.apache.qpid.test.framework.localcircuit.LocalReceiverImpl;
+import org.apache.qpid.test.framework.sequencers.CircuitFactory;
+import org.apache.qpid.util.ConversationFactory;
+
+import org.apache.qpid.junit.extensions.util.ParsedProperties;
+
+import javax.jms.*;
+
+import java.util.List;
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicLong;
+
+/**
+ * LocalCircuitFactory is a circuit factory that creates test circuits with 
publishing and receiving ends rooted
+ * on the same JVM. The ends of the circuit are presented as [EMAIL PROTECTED] 
Publisher} and [EMAIL PROTECTED] Receiver} interfaces, which
+ * in turn provide methods to apply assertions to the circuit. The creation of 
the circuit ends, and the presentation
+ * of the ends as publisher/receiver interfaces, are designed to be overriden, 
so that circuits and assertions that
+ * use messaging features not available in JMS can be written. This provides 
an extension point for writing tests
+ * against proprietary features of JMS implementations.
+ *
+ * <p/><table id="crc"><caption>CRC Card</caption>
+ * <tr><th> Responsibilities <th> Collaborations
+ * <tr><td> Provide a standard test procedure over a test circuit.
+ * <tr><td> Construct test circuits appropriate to a tests context.
+ * </table>
+ */
+public class LocalCircuitFactory implements CircuitFactory
+{
+    /** Used for debugging. */
+    private static final Logger log = 
Logger.getLogger(LocalCircuitFactory.class);
+
+    /** Used to create unique destination names for each test. */
+    protected static AtomicLong uniqueDestsId = new AtomicLong();
+
+    /**
+     * Holds a test coordinating conversation with the test clients. This 
should consist of assigning the test roles,
+     * begining the test and gathering the test reports from the participants.
+     *
+     * @param testCircuit    The test circuit.
+     * @param assertions     The list of assertions to apply to the test 
circuit.
+     * @param testProperties The test case definition.
+     */
+    public void sequenceTest(Circuit testCircuit, List<Assertion> assertions, 
Properties testProperties)
+    {
+        FrameworkBaseCase.assertNoFailures(testCircuit.test(1, assertions));
+    }
+
+    /**
+     * Creates a test circuit for the test, configered by the test parameters 
specified.
+     *
+     * @param testProperties The test parameters.
+     *
+     * @return A test circuit.
+     */
+    public Circuit createCircuit(ParsedProperties testProperties)
+    {
+        Circuit result;
+
+        // Cast the test properties into a typed interface for convenience.
+        MessagingTestConfigProperties props = new 
MessagingTestConfigProperties(testProperties);
+
+        // Create a standard publisher/receivers test client pair on a shared 
connection, individual sessions.
+        try
+        {
+            // Get a unique offset to append to destination names to make them 
unique to the connection.
+            long uniqueId = uniqueDestsId.incrementAndGet();
+
+            // Set up the connection.
+            Connection connection = TestUtils.createConnection(testProperties);
+
+            // Add the connection exception listener to assert on exception 
conditions with.
+            // ExceptionMonitor exceptionMonitor = new ExceptionMonitor();
+            // connection.setExceptionListener(exceptionMonitor);
+
+            // Set up the publisher.
+            CircuitEndBase publisherEnd = 
createPublisherCircuitEnd(connection, props, uniqueId);
+
+            // Set up the receiver.
+            CircuitEndBase receiverEnd = createReceiverCircuitEnd(connection, 
props, uniqueId);
+
+            // Start listening for incoming messages.
+            connection.start();
+
+            // Package everything up.
+            LocalPublisherImpl publisher = 
createPublisherFromCircuitEnd(publisherEnd);
+            LocalReceiverImpl receiver = 
createReceiverFromCircuitEnd(receiverEnd);
+
+            result = new LocalCircuitImpl(testProperties, publisher, receiver, 
connection, publisher.getExceptionMonitor());
+        }
+        catch (JMSException e)
+        {
+            throw new RuntimeException("Could not create publisher/receivers 
pair due to a JMSException.", e);
+        }
+
+        return result;
+    }
+
+    /**
+     * Creates a local [EMAIL PROTECTED] Receiver} from a [EMAIL PROTECTED] 
CircuitEnd}. Sub-classes may override this to provide more
+     * specialized receivers if necessary.
+     *
+     * @param receiverEnd The receiving circuit end.
+     *
+     * @return A [EMAIL PROTECTED] Receiver}.
+     */
+    protected LocalReceiverImpl createReceiverFromCircuitEnd(CircuitEndBase 
receiverEnd)
+    {
+        return new LocalReceiverImpl(receiverEnd);
+    }
+
+    /**
+     * Creates a local [EMAIL PROTECTED] Publisher} from a [EMAIL PROTECTED] 
CircuitEnd}. Sub-classes may override this to provide more
+     * specialized receivers if necessary.
+     *
+     * @param publisherEnd The publishing circuit end.
+     *
+     * @return A [EMAIL PROTECTED] Receiver}.
+     */
+    protected LocalPublisherImpl createPublisherFromCircuitEnd(CircuitEndBase 
publisherEnd)
+    {
+        return new LocalPublisherImpl(publisherEnd);
+    }
+
+    /**
+     * Builds a circuit end suitable for the publishing side of a test 
circuit, from standard test parameters.
+     *
+     * @param connection The connection to build the circuit end on.
+     * @param testProps  The test parameters to configure the circuit end 
construction.
+     * @param uniqueId   A unique number to being numbering destinations from, 
to make this circuit unique.
+     *
+     * @return A circuit end suitable for the publishing side of a test 
circuit.
+     *
+     * @throws JMSException Any underlying JMSExceptions are allowed to fall 
through and fail the creation.
+     */
+    public CircuitEndBase createPublisherCircuitEnd(Connection connection, 
ParsedProperties testProps, long uniqueId)
+        throws JMSException
+    {
+        log.debug(
+            "public CircuitEndBase createPublisherCircuitEnd(Connection 
connection, ParsedProperties testProps, long uniqueId = "
+            + uniqueId + "): called");
+
+        // Cast the test properties into a typed interface for convenience.
+        MessagingTestConfigProperties props = new 
MessagingTestConfigProperties(testProps);
+
+        // Check that the test properties do not contain AMQP/Qpid specific 
settings, and fail if they do.
+        if (props.getImmediate() || props.getMandatory())
+        {
+            throw new RuntimeException(
+                "Cannot create a pure JMS circuit as the test properties 
require AMQP specific options.");
+        }
+
+        Session session = 
connection.createSession(props.getPublisherTransacted(), props.getAckMode());
+
+        Destination destination =
+            props.getPubsub() ? 
session.createTopic(props.getSendDestinationNameRoot() + "_" + uniqueId)
+                              : 
session.createQueue(props.getSendDestinationNameRoot() + "_" + uniqueId);
+
+        MessageProducer producer = props.getPublisherProducerBind() ? 
session.createProducer(destination) : null;
+
+        MessageConsumer consumer =
+            props.getPublisherConsumerBind()
+            ? 
session.createConsumer(session.createQueue(props.getReceiveDestinationNameRoot()
 + "_" + uniqueId)) : null;
+
+        MessageMonitor messageMonitor = new MessageMonitor();
+
+        if (consumer != null)
+        {
+            consumer.setMessageListener(messageMonitor);
+        }
+
+        ExceptionMonitor exceptionMonitor = new ExceptionMonitor();
+        connection.setExceptionListener(exceptionMonitor);
+
+        if (!props.getPublisherConsumerActive() && (consumer != null))
+        {
+            consumer.close();
+        }
+
+        return new CircuitEndBase(producer, consumer, session, messageMonitor, 
exceptionMonitor);
+    }
+
+    /**
+     * Builds a circuit end suitable for the receiving side of a test circuit, 
from standard test parameters.
+     *
+     * @param connection The connection to build the circuit end on.
+     * @param testProps  The test parameters to configure the circuit end 
construction.
+     * @param uniqueId   A unique number to being numbering destinations from, 
to make this circuit unique.
+     *
+     * @return A circuit end suitable for the receiving side of a test circuit.
+     *
+     * @throws JMSException Any underlying JMSExceptions are allowed to fall 
through and fail the creation.
+     */
+    public CircuitEndBase createReceiverCircuitEnd(Connection connection, 
ParsedProperties testProps, long uniqueId)
+        throws JMSException
+    {
+        log.debug(
+            "public CircuitEndBase createReceiverCircuitEnd(Connection 
connection, ParsedProperties testProps, long uniqueId = "
+            + uniqueId + "): called");
+
+        // Cast the test properties into a typed interface for convenience.
+        MessagingTestConfigProperties props = new 
MessagingTestConfigProperties(testProps);
+
+        // Check that the test properties do not contain AMQP/Qpid specific 
settings, and fail if they do.
+        if (props.getImmediate() || props.getMandatory())
+        {
+            throw new RuntimeException(
+                "Cannot create a pure JMS circuit as the test properties 
require AMQP specific options.");
+        }
+
+        Session session = 
connection.createSession(props.getPublisherTransacted(), props.getAckMode());
+
+        MessageProducer producer =
+            props.getReceiverProducerBind()
+            ? 
session.createProducer(session.createQueue(props.getReceiveDestinationNameRoot()
 + "_" + uniqueId)) : null;
+
+        Destination destination =
+            props.getPubsub() ? 
session.createTopic(props.getSendDestinationNameRoot() + "_" + uniqueId)
+                              : 
session.createQueue(props.getSendDestinationNameRoot() + "_" + uniqueId);
+
+        MessageConsumer consumer =
+            props.getReceiverConsumerBind()
+            ? ((props.getDurableSubscription() && props.getPubsub())
+                ? session.createDurableSubscriber((Topic) destination, 
"testsub") : session.createConsumer(destination))
+            : null;
+
+        MessageMonitor messageMonitor = new MessageMonitor();
+
+        if (consumer != null)
+        {
+            consumer.setMessageListener(messageMonitor);
+        }
+
+        if (!props.getReceiverConsumerActive() && (consumer != null))
+        {
+            consumer.close();
+        }
+
+        return new CircuitEndBase(producer, consumer, session, messageMonitor, 
null);
+    }
+
+    /**
+     * Sets the sender test client to coordinate the test with.
+     *
+     * @param sender The contact details of the sending client in the test.
+     */
+    public void setSender(TestClientDetails sender)
+    {
+        throw new RuntimeException("Not implemented.");
+    }
+
+    /**
+     * Sets the receiving test client to coordinate the test with.
+     *
+     * @param receiver The contact details of the sending client in the test.
+     */
+    public void setReceiver(TestClientDetails receiver)
+    {
+        throw new RuntimeException("Not implemented.");
+    }
+
+    /**
+     * Supplies the sending test client.
+     *
+     * @return The sending test client.
+     */
+    public TestClientDetails getSender()
+    {
+        throw new RuntimeException("Not implemented.");
+    }
+
+    /**
+     * Supplies the receiving test client.
+     *
+     * @return The receiving test client.
+     */
+    public List<TestClientDetails> getReceivers()
+    {
+        throw new RuntimeException("Not implemented.");
+    }
+
+    /**
+     * Accepts the conversation factory over which to hold the test 
coordinating conversation.
+     *
+     * @param conversationFactory The conversation factory to coordinate the 
test over.
+     */
+    public void setConversationFactory(ConversationFactory conversationFactory)
+    {
+        throw new RuntimeException("Not implemented.");
+    }
+}

Propchange: 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/LocalCircuitFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/MessageIdentityVector.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/MessageIdentityVector.java?rev=651325&r1=651324&r2=651325&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/MessageIdentityVector.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/MessageIdentityVector.java
 Thu Apr 24 10:49:03 2008
@@ -1,167 +1,167 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.test.framework;
-
-/**
- * MessageIdentityVector provides a message identification scheme, that 
matches individual messages with test cases.
- * Test messages are being sent by a number of test clients, sending messages 
over a set of routes, and being received
- * by another set of test clients. Each test is itself, being run within a 
test cycle, of which there could be many. It
- * is the job of the test coordinator to request and receive reports from the 
available test clients, on what has been
- * sent, what has been received, and what errors may have occurred, and to 
reconcile this information against the
- * assertions being applied by the test case. In order to be able to figure 
out which messages belong to which test,
- * there needs to be an identification scheme, that the coordinator can use to 
correlate messages in senders and
- * receiver reports. Every message sent in a test can be associated with this 
information.
- *
- * <p/><table id="crc"><caption>CRC Card</caption>
- * <tr><th> Responsibilities <th> Collaborations
- * <tr><td> Identify a test case, a handling client id, a circuit end within 
the client, and a test cycle number.
- * </table>
- */
-public class MessageIdentityVector
-{
-    /** Holds the test case vector component of the message identity vector. */
-    private TestCaseVector testCaseVector;
-
-    /** The unique client id. */
-    private String clientId;
-
-    /** The unique circuit end number within the client id. */
-    private int circuitEndId;
-
-    /**
-     * Creates a new identity vector for test messages.
-     *
-     * @param testCase        The name of the test case generating the 
messages.
-     * @param clientId        The unique id of the client implementing a 
circuit end that is handling the messages.
-     * @param circuitEndId    The unique id number of the circuit end within 
the client.
-     * @param testCycleNumber The cycle iteration number of the test case.
-     */
-    public MessageIdentityVector(String testCase, String clientId, int 
circuitEndId, int testCycleNumber)
-    {
-        this.testCaseVector = new TestCaseVector(testCase, testCycleNumber);
-        this.clientId = clientId;
-        this.circuitEndId = circuitEndId;
-    }
-
-    /**
-     * Reports the test case vector component of the message identity vector.
-     *
-     * @return The test case vector component of the message identity vector.
-     */
-    public TestCaseVector getTestCaseVector()
-    {
-        return testCaseVector;
-    }
-
-    /**
-     * Reports the name of the test case.
-     *
-     * @return The name of the test case.
-     */
-    public String getTestCase()
-    {
-        return testCaseVector.getTestCase();
-    }
-
-    /**
-     * Reports the test iteration cycle number within the test case.
-     *
-     * @return The test iteration cycle number within the test case.
-     */
-    public int getTestCycleNumber()
-    {
-        return testCaseVector.getTestCycleNumber();
-    }
-
-    /**
-     * Resports the client id.
-     *
-     * @return The client id.
-     */
-    public String getClientId()
-    {
-        return clientId;
-    }
-
-    /**
-     * Reports the circuit end number within the test client.
-     *
-     * @return The circuit end number within the test client.
-     */
-    public int getCircuitEndId()
-    {
-        return circuitEndId;
-    }
-
-    /**
-     * Compares this identity vector with another for equality. All fields 
must match.
-     *
-     * @param o The identity vector to compare with.
-     *
-     * @return <tt>true</tt> if the identity vector is identical to this one 
by all fields, <tt>false</tt> otherwise.
-     */
-    public boolean equals(Object o)
-    {
-        if (this == o)
-        {
-            return true;
-        }
-
-        if ((o == null) || (getClass() != o.getClass()))
-        {
-            return false;
-        }
-
-        MessageIdentityVector that = (MessageIdentityVector) o;
-
-        if (circuitEndId != that.circuitEndId)
-        {
-            return false;
-        }
-
-        if ((clientId != null) ? (!clientId.equals(that.clientId)) : 
(that.clientId != null))
-        {
-            return false;
-        }
-
-        if ((testCaseVector != null) ? 
(!testCaseVector.equals(that.testCaseVector)) : (that.testCaseVector != null))
-        {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-    * Computes a hash code for this identity vector based on all fields.
-    *
-    * @return A hash code for this identity vector based on all fields.
-    */
-    public int hashCode()
-    {
-        int result;
-        result = ((testCaseVector != null) ? testCaseVector.hashCode() : 0);
-        result = (31 * result) + ((clientId != null) ? clientId.hashCode() : 
0);
-        result = (31 * result) + circuitEndId;
-
-        return result;
-    }
-}
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.test.framework;
+
+/**
+ * MessageIdentityVector provides a message identification scheme, that 
matches individual messages with test cases.
+ * Test messages are being sent by a number of test clients, sending messages 
over a set of routes, and being received
+ * by another set of test clients. Each test is itself, being run within a 
test cycle, of which there could be many. It
+ * is the job of the test coordinator to request and receive reports from the 
available test clients, on what has been
+ * sent, what has been received, and what errors may have occurred, and to 
reconcile this information against the
+ * assertions being applied by the test case. In order to be able to figure 
out which messages belong to which test,
+ * there needs to be an identification scheme, that the coordinator can use to 
correlate messages in senders and
+ * receiver reports. Every message sent in a test can be associated with this 
information.
+ *
+ * <p/><table id="crc"><caption>CRC Card</caption>
+ * <tr><th> Responsibilities <th> Collaborations
+ * <tr><td> Identify a test case, a handling client id, a circuit end within 
the client, and a test cycle number.
+ * </table>
+ */
+public class MessageIdentityVector
+{
+    /** Holds the test case vector component of the message identity vector. */
+    private TestCaseVector testCaseVector;
+
+    /** The unique client id. */
+    private String clientId;
+
+    /** The unique circuit end number within the client id. */
+    private int circuitEndId;
+
+    /**
+     * Creates a new identity vector for test messages.
+     *
+     * @param testCase        The name of the test case generating the 
messages.
+     * @param clientId        The unique id of the client implementing a 
circuit end that is handling the messages.
+     * @param circuitEndId    The unique id number of the circuit end within 
the client.
+     * @param testCycleNumber The cycle iteration number of the test case.
+     */
+    public MessageIdentityVector(String testCase, String clientId, int 
circuitEndId, int testCycleNumber)
+    {
+        this.testCaseVector = new TestCaseVector(testCase, testCycleNumber);
+        this.clientId = clientId;
+        this.circuitEndId = circuitEndId;
+    }
+
+    /**
+     * Reports the test case vector component of the message identity vector.
+     *
+     * @return The test case vector component of the message identity vector.
+     */
+    public TestCaseVector getTestCaseVector()
+    {
+        return testCaseVector;
+    }
+
+    /**
+     * Reports the name of the test case.
+     *
+     * @return The name of the test case.
+     */
+    public String getTestCase()
+    {
+        return testCaseVector.getTestCase();
+    }
+
+    /**
+     * Reports the test iteration cycle number within the test case.
+     *
+     * @return The test iteration cycle number within the test case.
+     */
+    public int getTestCycleNumber()
+    {
+        return testCaseVector.getTestCycleNumber();
+    }
+
+    /**
+     * Resports the client id.
+     *
+     * @return The client id.
+     */
+    public String getClientId()
+    {
+        return clientId;
+    }
+
+    /**
+     * Reports the circuit end number within the test client.
+     *
+     * @return The circuit end number within the test client.
+     */
+    public int getCircuitEndId()
+    {
+        return circuitEndId;
+    }
+
+    /**
+     * Compares this identity vector with another for equality. All fields 
must match.
+     *
+     * @param o The identity vector to compare with.
+     *
+     * @return <tt>true</tt> if the identity vector is identical to this one 
by all fields, <tt>false</tt> otherwise.
+     */
+    public boolean equals(Object o)
+    {
+        if (this == o)
+        {
+            return true;
+        }
+
+        if ((o == null) || (getClass() != o.getClass()))
+        {
+            return false;
+        }
+
+        MessageIdentityVector that = (MessageIdentityVector) o;
+
+        if (circuitEndId != that.circuitEndId)
+        {
+            return false;
+        }
+
+        if ((clientId != null) ? (!clientId.equals(that.clientId)) : 
(that.clientId != null))
+        {
+            return false;
+        }
+
+        if ((testCaseVector != null) ? 
(!testCaseVector.equals(that.testCaseVector)) : (that.testCaseVector != null))
+        {
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+    * Computes a hash code for this identity vector based on all fields.
+    *
+    * @return A hash code for this identity vector based on all fields.
+    */
+    public int hashCode()
+    {
+        int result;
+        result = ((testCaseVector != null) ? testCaseVector.hashCode() : 0);
+        result = (31 * result) + ((clientId != null) ? clientId.hashCode() : 
0);
+        result = (31 * result) + circuitEndId;
+
+        return result;
+    }
+}

Propchange: 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/MessageIdentityVector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/NotApplicableAssertion.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/NotApplicableAssertion.java?rev=651325&r1=651324&r2=651325&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/NotApplicableAssertion.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/NotApplicableAssertion.java
 Thu Apr 24 10:49:03 2008
@@ -1,112 +1,112 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.test.framework;
-
-import org.apache.log4j.Logger;
-
-import org.apache.qpid.junit.extensions.util.ParsedProperties;
-
-/**
- * NotApplicableAssertion is a messaging assertion that can be used when an 
assertion requested by a test-case is not
- * applicable to the testing scenario. For example an assertion may relate to 
AMQP functionality, but a test case may be
- * being run over a non-AMQP JMS implementation, in which case the request to 
create the assertion may return this
- * instead of the proper assertion. The test framework is configurable to 
quietly drop these assertions, log them
- * as warnings to the console, or raise them as test failures.
- *
- * <p/><table id="crc"><caption>CRC Card</caption>
- * <tr><th> Responsibilities <th> Collaborations
- * <tr><td> Quitely pass.
- * <tr><td> Log a warning.
- * <tr><td> Raise a test failure.
- * </table>
- */
-public class NotApplicableAssertion implements Assertion
-{
-    /** Used for logging to the console. */
-    private static final Logger console = Logger.getLogger("CONSOLE." + 
NotApplicableAssertion.class.getName());
-
-    /** The possible behavioural modes of this assertion. */
-    private enum Mode
-    {
-        /** Quietly ignore the assertion by passing. */
-        Quiet,
-
-        /** Ignore the assertion by passing but log a warning about it. */
-        Warn,
-
-        /** Fail the assertion. */
-        Fail;
-    }
-
-    /** The behavioural mode of the assertion. */
-    private Mode mode;
-
-    /**
-     * Creates an assertion that is driven by the value of the 
'notApplicableAssertion' property of the test
-     * configuration. Its value should match one of 'quiet', 'warn' or 'fail' 
and if it does not it is automatically
-     * read as 'fail'.
-     *
-     * @param testProperties The test configuration properties.
-     */
-    public NotApplicableAssertion(ParsedProperties testProperties)
-    {
-        // Cast the test properties into a typed interface for convenience.
-        MessagingTestConfigProperties props = new 
MessagingTestConfigProperties(testProperties);
-
-        String modeName = props.getNotApplicableAssertionMode();
-
-        if ("quiet".equals(modeName))
-        {
-            mode = Mode.Quiet;
-        }
-        else if ("warn".equals(modeName))
-        {
-            mode = Mode.Warn;
-        }
-        else
-        {
-            mode = Mode.Fail;
-        }
-    }
-
-    /**
-     * Applies the assertion.
-     *
-     * @return <tt>true</tt> if the assertion passes, <tt>false</tt> if it 
fails.
-     */
-    public boolean apply()
-    {
-        switch (mode)
-        {
-        case Quiet:
-            return true;
-
-        case Warn:
-            console.warn("Warning: Not applicable assertion being ignored.");
-
-            return true;
-
-        case Fail:
-        default:
-            return false;
-        }
-    }
-}
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.test.framework;
+
+import org.apache.log4j.Logger;
+
+import org.apache.qpid.junit.extensions.util.ParsedProperties;
+
+/**
+ * NotApplicableAssertion is a messaging assertion that can be used when an 
assertion requested by a test-case is not
+ * applicable to the testing scenario. For example an assertion may relate to 
AMQP functionality, but a test case may be
+ * being run over a non-AMQP JMS implementation, in which case the request to 
create the assertion may return this
+ * instead of the proper assertion. The test framework is configurable to 
quietly drop these assertions, log them
+ * as warnings to the console, or raise them as test failures.
+ *
+ * <p/><table id="crc"><caption>CRC Card</caption>
+ * <tr><th> Responsibilities <th> Collaborations
+ * <tr><td> Quitely pass.
+ * <tr><td> Log a warning.
+ * <tr><td> Raise a test failure.
+ * </table>
+ */
+public class NotApplicableAssertion implements Assertion
+{
+    /** Used for logging to the console. */
+    private static final Logger console = Logger.getLogger("CONSOLE." + 
NotApplicableAssertion.class.getName());
+
+    /** The possible behavioural modes of this assertion. */
+    private enum Mode
+    {
+        /** Quietly ignore the assertion by passing. */
+        Quiet,
+
+        /** Ignore the assertion by passing but log a warning about it. */
+        Warn,
+
+        /** Fail the assertion. */
+        Fail;
+    }
+
+    /** The behavioural mode of the assertion. */
+    private Mode mode;
+
+    /**
+     * Creates an assertion that is driven by the value of the 
'notApplicableAssertion' property of the test
+     * configuration. Its value should match one of 'quiet', 'warn' or 'fail' 
and if it does not it is automatically
+     * read as 'fail'.
+     *
+     * @param testProperties The test configuration properties.
+     */
+    public NotApplicableAssertion(ParsedProperties testProperties)
+    {
+        // Cast the test properties into a typed interface for convenience.
+        MessagingTestConfigProperties props = new 
MessagingTestConfigProperties(testProperties);
+
+        String modeName = props.getNotApplicableAssertionMode();
+
+        if ("quiet".equals(modeName))
+        {
+            mode = Mode.Quiet;
+        }
+        else if ("warn".equals(modeName))
+        {
+            mode = Mode.Warn;
+        }
+        else
+        {
+            mode = Mode.Fail;
+        }
+    }
+
+    /**
+     * Applies the assertion.
+     *
+     * @return <tt>true</tt> if the assertion passes, <tt>false</tt> if it 
fails.
+     */
+    public boolean apply()
+    {
+        switch (mode)
+        {
+        case Quiet:
+            return true;
+
+        case Warn:
+            console.warn("Warning: Not applicable assertion being ignored.");
+
+            return true;
+
+        case Fail:
+        default:
+            return false;
+        }
+    }
+}

Propchange: 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/NotApplicableAssertion.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/TestCaseVector.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/TestCaseVector.java?rev=651325&r1=651324&r2=651325&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/TestCaseVector.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/TestCaseVector.java
 Thu Apr 24 10:49:03 2008
@@ -1,88 +1,88 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.test.framework;
-
-/**
- * <p/><table id="crc"><caption>CRC Card</caption>
- * <tr><th> Responsibilities <th> Collaborations
- * <tr><td>
- * </table>
- */
-public class TestCaseVector
-{
-    /** The test case name. */
-    private String testCase;
-
-    /** The test cycle number within the test case. */
-    private int testCycleNumber;
-
-    public TestCaseVector(String testCase, int testCycleNumber)
-    {
-        this.testCase = testCase;
-        this.testCycleNumber = testCycleNumber;
-    }
-
-    public String getTestCase()
-    {
-        return testCase;
-    }
-
-    public int getTestCycleNumber()
-    {
-        return testCycleNumber;
-    }
-
-    public boolean equals(Object o)
-    {
-        if (this == o)
-        {
-            return true;
-        }
-
-        if ((o == null) || (getClass() != o.getClass()))
-        {
-            return false;
-        }
-
-        TestCaseVector that = (TestCaseVector) o;
-
-        if (testCycleNumber != that.testCycleNumber)
-        {
-            return false;
-        }
-
-        if ((testCase != null) ? (!testCase.equals(that.testCase)) : 
(that.testCase != null))
-        {
-            return false;
-        }
-
-        return true;
-    }
-
-    public int hashCode()
-    {
-        int result;
-        result = ((testCase != null) ? testCase.hashCode() : 0);
-        result = (31 * result) + testCycleNumber;
-
-        return result;
-    }
-}
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.test.framework;
+
+/**
+ * <p/><table id="crc"><caption>CRC Card</caption>
+ * <tr><th> Responsibilities <th> Collaborations
+ * <tr><td>
+ * </table>
+ */
+public class TestCaseVector
+{
+    /** The test case name. */
+    private String testCase;
+
+    /** The test cycle number within the test case. */
+    private int testCycleNumber;
+
+    public TestCaseVector(String testCase, int testCycleNumber)
+    {
+        this.testCase = testCase;
+        this.testCycleNumber = testCycleNumber;
+    }
+
+    public String getTestCase()
+    {
+        return testCase;
+    }
+
+    public int getTestCycleNumber()
+    {
+        return testCycleNumber;
+    }
+
+    public boolean equals(Object o)
+    {
+        if (this == o)
+        {
+            return true;
+        }
+
+        if ((o == null) || (getClass() != o.getClass()))
+        {
+            return false;
+        }
+
+        TestCaseVector that = (TestCaseVector) o;
+
+        if (testCycleNumber != that.testCycleNumber)
+        {
+            return false;
+        }
+
+        if ((testCase != null) ? (!testCase.equals(that.testCase)) : 
(that.testCase != null))
+        {
+            return false;
+        }
+
+        return true;
+    }
+
+    public int hashCode()
+    {
+        int result;
+        result = ((testCase != null) ? testCase.hashCode() : 0);
+        result = (31 * result) + testCycleNumber;
+
+        return result;
+    }
+}

Propchange: 
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/framework/TestCaseVector.java
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to