Author: ritchiem Date: Thu Oct 22 16:15:32 2009 New Revision: 828770 URL: http://svn.apache.org/viewvc?rev=828770&view=rev Log: Updated PersitentStoreTest so that it has its own sendMessages that does not commit before returning, updated JavaDoc on QTC and PST to describe the contract of sendMessages
Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/PersistentStoreTest.java qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/PersistentStoreTest.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/PersistentStoreTest.java?rev=828770&r1=828769&r2=828770&view=diff ============================================================================== --- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/PersistentStoreTest.java (original) +++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/store/PersistentStoreTest.java Thu Oct 22 16:15:32 2009 @@ -21,14 +21,18 @@ package org.apache.qpid.server.store; +import org.apache.qpid.test.utils.QpidTestCase; + import javax.jms.Connection; +import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageConsumer; +import javax.jms.MessageProducer; import javax.jms.Queue; import javax.jms.Session; - -import org.apache.qpid.test.utils.QpidTestCase; +import java.util.ArrayList; +import java.util.List; public class PersistentStoreTest extends QpidTestCase { @@ -48,14 +52,12 @@ _destination = _session.createQueue(getTestQueueName()); _consumer = _session.createConsumer(_destination); _consumer.close(); - + sendMessage(_session, _destination, NUM_MESSAGES); _session.commit(); } - - /** - * Checks that a new consumer on a new connection can get NUM_MESSAGES from _destination - */ + + /** Checks that a new consumer on a new connection can get NUM_MESSAGES from _destination */ private void checkMessages() throws Exception, JMSException { _con = getConnection(); @@ -65,11 +67,11 @@ for (int i = 0; i < NUM_MESSAGES; i++) { Message msg = _consumer.receive(RECEIVE_TIMEOUT); - assertNotNull("Message "+i+" not received", msg); + assertNotNull("Message " + i + " not received", msg); } assertNull("No more messages should be received", _consumer.receive(100)); } - + // /** // * starts the server, sends 100 messages, restarts the server and gets 100 messages back // * the test formerly referred to as BDB-Qpid-1 @@ -81,11 +83,11 @@ // checkMessages(); // } - - /** + /** * starts the server, sends 100 messages, nukes then starts the server and gets 100 messages back * the test formerly referred to as BDB-Qpid-2 - * @throws Exception + * + * @throws Exception */ public void testForcibleStartStop() throws Exception { @@ -106,11 +108,12 @@ // checkMessages(); // } - /** - * starts the server, sends 100 committed messages, 5 uncommited ones, + /** + * starts the server, sends 100 committed messages, 5 uncommited ones, * nukes and starts the server and gets 100 messages back * the test formerly referred to as BDB-Qpid-6 - * @throws Exception + * + * @throws Exception */ public void testForcibleStartStopMidTransaction() throws Exception { @@ -119,13 +122,14 @@ checkMessages(); } - /** - * starts the server, sends 100 committed messages, 5 uncommited ones, + /** + * starts the server, sends 100 committed messages, 5 uncommited ones, * restarts the client and gets 100 messages back. * the test formerly referred to as BDB-Qpid-7 - * + * * FIXME: is this a PersistentStoreTest? Seems more like a transaction test to me.. aidan - * @throws Exception + * + * @throws Exception */ public void testClientDeathMidTransaction() throws Exception { @@ -133,7 +137,7 @@ _con.close(); checkMessages(); } - + // /** // * starts the server, sends 50 committed messages, copies $QPID_WORK to a new location, // * sends 10 messages, stops the server, nukes the store, restores the copy, starts the server @@ -143,5 +147,37 @@ // { // -- removing as this will leave 100msgs on a queue // } - + + /** + * This test requires that we can send messages without commiting. + * QTC always commits the messages sent via sendMessages. + * + * @param session the session to use for sending + * @param destination where to send them to + * @param count no. of messages to send + * + * @return the sent messges + * + * @throws Exception + */ + @Override + public List<Message> sendMessage(Session session, Destination destination, + int count) throws Exception + { + List<Message> messages = new ArrayList<Message>(count); + + MessageProducer producer = session.createProducer(destination); + + for (int i = 0;i < (count); i++) + { + Message next = createNextMessage(session, i); + + producer.send(next); + + messages.add(next); + } + + return messages; + } + } Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java?rev=828770&r1=828769&r2=828770&view=diff ============================================================================== --- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java (original) +++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java Thu Oct 22 16:15:32 2009 @@ -1080,18 +1080,62 @@ return count; } + /** + * Send messages to the given destination. + * + * If session is transacted then messages will be commited before returning + * + * @param session the session to use for sending + * @param destination where to send them to + * @param count no. of messages to send + * + * @return the sent messges + * + * @throws Exception + */ public List<Message> sendMessage(Session session, Destination destination, int count) throws Exception { return sendMessage(session, destination, count, 0, 0); } + /** + * Send messages to the given destination. + * + * If session is transacted then messages will be commited before returning + * + * @param session the session to use for sending + * @param destination where to send them to + * @param count no. of messages to send + * + * @param batchSize the batchSize in which to commit, 0 means no batching, + * but a single commit at the end + * @return the sent messgse + * + * @throws Exception + */ public List<Message> sendMessage(Session session, Destination destination, int count, int batchSize) throws Exception { return sendMessage(session, destination, count, 0, batchSize); } + /** + * Send messages to the given destination. + * + * If session is transacted then messages will be commited before returning + * + * @param session the session to use for sending + * @param destination where to send them to + * @param count no. of messages to send + * + * @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 + * + * @throws Exception + */ public List<Message> sendMessage(Session session, Destination destination, int count, int offset, int batchSize) throws Exception { --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:commits-subscr...@qpid.apache.org