[jboss-cvs] JBoss Messaging SVN: r2238 - in branches/Branch_1_0_1_SP: src/main/org/jboss/messaging/core/plugin and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Feb 9 07:31:23 EST 2007
Author: ovidiu.feodorov at jboss.com
Date: 2007-02-09 07:31:23 -0500 (Fri, 09 Feb 2007)
New Revision: 2238
Modified:
branches/Branch_1_0_1_SP/src/main/org/jboss/messaging/core/ChannelSupport.java
branches/Branch_1_0_1_SP/src/main/org/jboss/messaging/core/plugin/JDBCPersistenceManager.java
branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/core/plugin/JDBCPersistenceManagerTest.java
Log:
minor reformatting
Modified: branches/Branch_1_0_1_SP/src/main/org/jboss/messaging/core/ChannelSupport.java
===================================================================
--- branches/Branch_1_0_1_SP/src/main/org/jboss/messaging/core/ChannelSupport.java 2007-02-09 11:43:13 UTC (rev 2237)
+++ branches/Branch_1_0_1_SP/src/main/org/jboss/messaging/core/ChannelSupport.java 2007-02-09 12:31:23 UTC (rev 2238)
@@ -1289,8 +1289,7 @@
+ messages.size());
}
- // Create references for these messages and add them to the reference
- // map
+ // Create references for these messages and add them to the reference map
iter = messages.iterator();
while (iter.hasNext())
Modified: branches/Branch_1_0_1_SP/src/main/org/jboss/messaging/core/plugin/JDBCPersistenceManager.java
===================================================================
--- branches/Branch_1_0_1_SP/src/main/org/jboss/messaging/core/plugin/JDBCPersistenceManager.java 2007-02-09 11:43:13 UTC (rev 2237)
+++ branches/Branch_1_0_1_SP/src/main/org/jboss/messaging/core/plugin/JDBCPersistenceManager.java 2007-02-09 12:31:23 UTC (rev 2238)
@@ -593,16 +593,13 @@
}
}
-
-
- /*
- * Retrieve a List of messages corresponding to the specified List of message ids.
- * The implementation here for HSQLDB does this by using a PreparedStatment with an IN clause
- * with a maximum of 100 elements.
- * If there are more than maxParams message to retrieve this is repeated a number of times.
- * For "Enterprise" databases (Oracle, DB2, Sybase etc) a more sophisticated technique should be used
- * e.g. Oracle ARRAY types in Oracle which can be submitted as a param to an Oracle prepared statement
- * Although this would all be DB specific.
+ /**
+ * Retrieve a List of messages corresponding to the specified List of message ids. The
+ * implementation here for HSQLDB does this by using a PreparedStatment with an IN clause with a
+ * maximum of 100 elements. If there are more than maxParams message to retrieve this is repeated
+ * a number of times. For "Enterprise" databases (Oracle, DB2, Sybase etc) a more sophisticated
+ * technique should be used e.g. Oracle ARRAY types in Oracle which can be submitted as a param
+ * to an Oracle prepared statement. Although this would all be DB specific.
*/
public List getMessages(List messageIds) throws Exception
{
@@ -632,8 +629,8 @@
{
if (ps == null)
{
- //PreparedStatements are cached in the JCA layer so we will never actually have more than
- //100 distinct ones
+ // PreparedStatements are cached in the JCA layer so we will never actually have more
+ // than 100 distinct ones
int numParams;
if (count < (size / maxParams) * maxParams)
{
@@ -1731,7 +1728,7 @@
psReference.setLong(3, ref.getMessageID());
- int rows = updateWithRetry(psReference);
+ updateWithRetry(psReference);
}
catch (Exception e)
{
Modified: branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/core/plugin/JDBCPersistenceManagerTest.java
===================================================================
--- branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/core/plugin/JDBCPersistenceManagerTest.java 2007-02-09 11:43:13 UTC (rev 2237)
+++ branches/Branch_1_0_1_SP/tests/src/org/jboss/test/messaging/core/plugin/JDBCPersistenceManagerTest.java 2007-02-09 12:31:23 UTC (rev 2238)
@@ -53,7 +53,6 @@
import org.jboss.tm.TransactionManagerService;
import org.jboss.util.id.GUID;
-
/**
* @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
* @version <tt>1.1</tt>
@@ -65,12 +64,12 @@
// Attributes ----------------------------------------------------
protected ServiceContainer sc;
-
+
protected JDBCPersistenceManager pm;
-
+
protected MessageStore ms;
-
-
+
+
// Constructors --------------------------------------------------
public JDBCPersistenceManagerTest(String name)
@@ -88,17 +87,17 @@
super.setUp();
sc = new ServiceContainer("all");
- sc.start();
-
+ sc.start();
+
}
-
+
protected void doSetup(boolean batch) throws Throwable
{
- pm = createPM();
- pm.setUsingBatchUpdates(batch);
- ms = new SimpleMessageStore("s0");
+ pm = createPM();
+ pm.setUsingBatchUpdates(batch);
+ ms = new SimpleMessageStore("s0");
}
-
+
protected JDBCPersistenceManager createPM() throws Throwable
{
JDBCPersistenceManager p = new JDBCPersistenceManager(sc.getDataSource(), sc.getTransactionManager());
@@ -116,17 +115,17 @@
pm.stop();
super.tearDown();
}
-
+
public void testGetMinOrdering() throws Throwable
{
doSetup(false);
-
+
Channel channel = new SimpleChannel(0, ms);
-
+
Message[] m = createMessages(10);
-
+
List refs = new ArrayList();
-
+
MessageReference ref1 = ms.reference(m[0]);
ref1.setOrdering(11);
MessageReference ref2 = ms.reference(m[1]);
@@ -147,7 +146,7 @@
ref9.setOrdering(678);
MessageReference ref10 = ms.reference(m[9]);
ref10.setOrdering(890);
-
+
refs.add(ref1);
refs.add(ref2);
refs.add(ref3);
@@ -158,9 +157,9 @@
refs.add(ref8);
refs.add(ref9);
refs.add(ref10);
-
+
pm.addReferences(channel.getChannelID(), refs, false);
-
+
List refIds = getReferenceIds(channel.getChannelID());
assertNotNull(refIds);
assertEquals(10, refIds.size());
@@ -174,7 +173,7 @@
assertTrue(refIds.contains(new Long(ref8.getMessageID())));
assertTrue(refIds.contains(new Long(ref9.getMessageID())));
assertTrue(refIds.contains(new Long(ref10.getMessageID())));
-
+
List msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(10, msgs.size());
@@ -188,15 +187,15 @@
assertTrue(msgs.contains(new Long(ref8.getMessageID())));
assertTrue(msgs.contains(new Long(ref9.getMessageID())));
assertTrue(msgs.contains(new Long(ref10.getMessageID())));
-
+
long minOrdering = pm.getMinOrdering(channel.getChannelID());
-
+
assertEquals(11, minOrdering);
-
+
pm.removeReferences(channel.getChannelID(), refs);
-
+
pm.addReferences(channel.getChannelID(), refs, true);
-
+
refIds = getReferenceIds(channel.getChannelID());
assertNotNull(refIds);
assertEquals(10, refIds.size());
@@ -210,7 +209,7 @@
assertTrue(refIds.contains(new Long(ref8.getMessageID())));
assertTrue(refIds.contains(new Long(ref9.getMessageID())));
assertTrue(refIds.contains(new Long(ref10.getMessageID())));
-
+
msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(10, msgs.size());
@@ -224,19 +223,19 @@
assertTrue(msgs.contains(new Long(ref8.getMessageID())));
assertTrue(msgs.contains(new Long(ref9.getMessageID())));
assertTrue(msgs.contains(new Long(ref10.getMessageID())));
-
+
minOrdering = pm.getMinOrdering(channel.getChannelID());
-
+
assertEquals(0, minOrdering);
-
+
}
-
+
public void testGetNumberOfReferences() throws Throwable
{
doSetup(false);
-
+
Channel channel = new SimpleChannel(0, ms);
-
+
Message m0 = this.createMessage((byte)0, false);
Message m1 = this.createMessage((byte)1, false);
Message m2 = this.createMessage((byte)2, false);
@@ -247,14 +246,14 @@
Message m7 = this.createMessage((byte)7, false);
Message m8 = this.createMessage((byte)8, false);
Message m9 = this.createMessage((byte)9, false);
-
+
Message m10 = this.createMessage((byte)10, true);
Message m11 = this.createMessage((byte)11, true);
Message m12 = this.createMessage((byte)12, true);
Message m13 = this.createMessage((byte)13, true);
Message m14 = this.createMessage((byte)14, true);
-
- MessageReference ref1 = ms.reference(m0);
+
+ MessageReference ref1 = ms.reference(m0);
ref1.setOrdering(0);
MessageReference ref2 = ms.reference(m1);
ref2.setOrdering(1);
@@ -274,7 +273,7 @@
ref9.setOrdering(8);
MessageReference ref10 = ms.reference(m9);
ref10.setOrdering(9);
-
+
MessageReference ref11 = ms.reference(m10);
ref11.setOrdering(10);
MessageReference ref12 = ms.reference(m11);
@@ -285,8 +284,8 @@
ref14.setOrdering(13);
MessageReference ref15 = ms.reference(m14);
ref15.setOrdering(14);
-
-
+
+
pm.addReference(channel.getChannelID(), ref1, null);
pm.addReference(channel.getChannelID(), ref2, null);
pm.addReference(channel.getChannelID(), ref3, null);
@@ -302,7 +301,7 @@
pm.addReference(channel.getChannelID(), ref13, null);
pm.addReference(channel.getChannelID(), ref14, null);
pm.addReference(channel.getChannelID(), ref15, null);
-
+
List refIds = getReferenceIds(channel.getChannelID());
assertNotNull(refIds);
assertEquals(15, refIds.size());
@@ -321,7 +320,7 @@
assertTrue(refIds.contains(new Long(ref13.getMessageID())));
assertTrue(refIds.contains(new Long(ref14.getMessageID())));
assertTrue(refIds.contains(new Long(ref15.getMessageID())));
-
+
List msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(15, msgs.size());
@@ -340,42 +339,42 @@
assertTrue(msgs.contains(new Long(ref13.getMessageID())));
assertTrue(msgs.contains(new Long(ref14.getMessageID())));
assertTrue(msgs.contains(new Long(ref15.getMessageID())));
-
+
int numberOfReferences = pm.getNumberOfUnloadedReferences(channel.getChannelID());
-
+
//getNumberOfReferences only returns refs with loaded = 'N' - these will be 'Y'
assertEquals(0, numberOfReferences);
-
+
List refs = new ArrayList();
-
+
refs.add(ref8);
refs.add(ref9);
refs.add(ref10);
refs.add(ref11);
refs.add(ref12);
refs.add(ref13);
-
+
pm.updateReferencesNotLoaded(channel.getChannelID(), refs);
-
+
numberOfReferences = pm.getNumberOfUnloadedReferences(channel.getChannelID());
-
+
assertEquals(6, numberOfReferences);
-
+
pm.updateReliableReferencesLoadedInRange(channel.getChannelID(), 8, 11);
-
+
numberOfReferences = pm.getNumberOfUnloadedReferences(channel.getChannelID());
-
- assertEquals(4, numberOfReferences);
+
+ assertEquals(4, numberOfReferences);
}
-
+
public void testGetReferenceInfos() throws Throwable
{
doSetup(false);
-
+
Channel channel = new SimpleChannel(0, ms);
-
+
Message[] m = createMessages(10);
-
+
MessageReference ref1 = ms.reference(m[0]);
ref1.setOrdering(0);
MessageReference ref2 = ms.reference(m[1]);
@@ -396,9 +395,9 @@
ref9.setOrdering(1001);
MessageReference ref10 = ms.reference(m[9]);
ref10.setOrdering(1002);
-
+
List refs = new ArrayList();
-
+
refs.add(ref1);
refs.add(ref2);
refs.add(ref3);
@@ -409,13 +408,13 @@
refs.add(ref8);
refs.add(ref9);
refs.add(ref10);
-
+
pm.addReferences(channel.getChannelID(), refs, false);
-
+
List refIds = getReferenceIds(channel.getChannelID());
assertNotNull(refIds);
assertEquals(10, refIds.size());
-
+
assertTrue(refIds.contains(new Long(ref1.getMessageID())));
assertTrue(refIds.contains(new Long(ref2.getMessageID())));
assertTrue(refIds.contains(new Long(ref3.getMessageID())));
@@ -426,7 +425,7 @@
assertTrue(refIds.contains(new Long(ref8.getMessageID())));
assertTrue(refIds.contains(new Long(ref9.getMessageID())));
assertTrue(refIds.contains(new Long(ref10.getMessageID())));
-
+
List msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(10, msgs.size());
@@ -440,19 +439,19 @@
assertTrue(msgs.contains(new Long(ref8.getMessageID())));
assertTrue(msgs.contains(new Long(ref9.getMessageID())));
assertTrue(msgs.contains(new Long(ref10.getMessageID())));
-
+
List refInfos = pm.getReferenceInfos(channel.getChannelID(), 0, 0);
-
+
assertNotNull(refInfos);
assertEquals(0, refInfos.size());
-
+
refInfos = pm.getReferenceInfos(channel.getChannelID(), 0, 3);
assertNotNull(refInfos);
assertEquals(3, refInfos.size());
assertEquals(ref1.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(0)).getMessageId());
assertEquals(ref2.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(1)).getMessageId());
assertEquals(ref3.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(2)).getMessageId());
-
+
refInfos = pm.getReferenceInfos(channel.getChannelID(), 0, 10);
assertNotNull(refInfos);
assertEquals(10, refInfos.size());
@@ -469,7 +468,7 @@
refInfos = pm.getReferenceInfos(channel.getChannelID(), 2, 6);
assertNotNull(refInfos);
- assertEquals(6, refInfos.size());
+ assertEquals(6, refInfos.size());
assertEquals(ref3.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(0)).getMessageId());
assertEquals(ref4.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(1)).getMessageId());
assertEquals(ref5.getMessageID(), ((PersistenceManager.ReferenceInfo)refInfos.get(2)).getMessageId());
@@ -487,16 +486,15 @@
//ok - there are not this many refs
}
}
-
-
+
public void testGetMessages() throws Throwable
{
doSetup(false);
-
+
Channel channel = new SimpleChannel(0, ms);
-
+
Message[] m = createMessages(10);
-
+
MessageReference ref1 = ms.reference(m[0]);
MessageReference ref2 = ms.reference(m[1]);
MessageReference ref3 = ms.reference(m[2]);
@@ -507,7 +505,7 @@
MessageReference ref8 = ms.reference(m[7]);
MessageReference ref9 = ms.reference(m[8]);
MessageReference ref10 = ms.reference(m[9]);
-
+
pm.addReference(channel.getChannelID(), ref1, null);
pm.addReference(channel.getChannelID(), ref2, null);
pm.addReference(channel.getChannelID(), ref3, null);
@@ -518,7 +516,7 @@
pm.addReference(channel.getChannelID(), ref8, null);
pm.addReference(channel.getChannelID(), ref9, null);
pm.addReference(channel.getChannelID(), ref10, null);
-
+
List refIds = getReferenceIds(channel.getChannelID());
assertNotNull(refIds);
assertEquals(10, refIds.size());
@@ -532,7 +530,7 @@
assertTrue(refIds.contains(new Long(ref8.getMessageID())));
assertTrue(refIds.contains(new Long(ref9.getMessageID())));
assertTrue(refIds.contains(new Long(ref10.getMessageID())));
-
+
List msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(10, msgs.size());
@@ -546,26 +544,26 @@
assertTrue(msgs.contains(new Long(ref8.getMessageID())));
assertTrue(msgs.contains(new Long(ref9.getMessageID())));
assertTrue(msgs.contains(new Long(ref10.getMessageID())));
-
+
List msgIds = new ArrayList();
msgIds.add(new Long(ref3.getMessageID()));
msgIds.add(new Long(ref4.getMessageID()));
msgIds.add(new Long(ref7.getMessageID()));
msgIds.add(new Long(ref9.getMessageID()));
msgIds.add(new Long(ref1.getMessageID()));
-
+
List ms = pm.getMessages(msgIds);
assertNotNull(ms);
assertEquals(5, ms.size());
-
+
assertTrue(containsMessage(ms, ref3.getMessageID()));
assertTrue(containsMessage(ms, ref4.getMessageID()));
assertTrue(containsMessage(ms, ref7.getMessageID()));
assertTrue(containsMessage(ms, ref9.getMessageID()));
assertTrue(containsMessage(ms, ref1.getMessageID()));
-
+
}
-
+
protected boolean containsMessage(List msgs, long msgId)
{
Iterator iter = msgs.iterator();
@@ -575,21 +573,21 @@
if (m.getMessageID() == msgId)
{
return true;
- }
+ }
}
return false;
}
-
+
public void testGetMessagesMaxParams() throws Throwable
{
doSetup(false);
-
+
pm.setMaxParams(5);
-
+
Channel channel = new SimpleChannel(0, ms);
-
+
Message[] m = createMessages(10);
-
+
MessageReference ref1 = ms.reference(m[0]);
MessageReference ref2 = ms.reference(m[1]);
MessageReference ref3 = ms.reference(m[2]);
@@ -600,7 +598,7 @@
MessageReference ref8 = ms.reference(m[7]);
MessageReference ref9 = ms.reference(m[8]);
MessageReference ref10 = ms.reference(m[9]);
-
+
pm.addReference(channel.getChannelID(), ref1, null);
pm.addReference(channel.getChannelID(), ref2, null);
pm.addReference(channel.getChannelID(), ref3, null);
@@ -611,7 +609,7 @@
pm.addReference(channel.getChannelID(), ref8, null);
pm.addReference(channel.getChannelID(), ref9, null);
pm.addReference(channel.getChannelID(), ref10, null);
-
+
List refIds = getReferenceIds(channel.getChannelID());
assertNotNull(refIds);
assertEquals(10, refIds.size());
@@ -625,7 +623,7 @@
assertTrue(refIds.contains(new Long(ref8.getMessageID())));
assertTrue(refIds.contains(new Long(ref9.getMessageID())));
assertTrue(refIds.contains(new Long(ref10.getMessageID())));
-
+
List msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(10, msgs.size());
@@ -639,14 +637,14 @@
assertTrue(msgs.contains(new Long(ref8.getMessageID())));
assertTrue(msgs.contains(new Long(ref9.getMessageID())));
assertTrue(msgs.contains(new Long(ref10.getMessageID())));
-
+
List msgIds = new ArrayList();
msgIds.add(new Long(ref3.getMessageID()));
msgIds.add(new Long(ref4.getMessageID()));
msgIds.add(new Long(ref7.getMessageID()));
msgIds.add(new Long(ref9.getMessageID()));
msgIds.add(new Long(ref1.getMessageID()));
-
+
List ms = pm.getMessages(msgIds);
assertNotNull(ms);
assertEquals(5, ms.size());
@@ -654,29 +652,29 @@
assertTrue(containsMessage(ms, ref4.getMessageID()));
assertTrue(containsMessage(ms, ref7.getMessageID()));
assertTrue(containsMessage(ms, ref9.getMessageID()));
- assertTrue(containsMessage(ms, ref1.getMessageID()));
+ assertTrue(containsMessage(ms, ref1.getMessageID()));
}
-
+
public void testaddRemoveGetReferences_Batch() throws Throwable
{
addRemoveGetReferences(true);
}
-
+
public void testaddRemoveGetReferences_NoBatch() throws Throwable
{
addRemoveGetReferences(false);
}
-
+
protected void addRemoveGetReferences(boolean batch) throws Throwable
{
doSetup(false);
-
+
Channel channel1 = new SimpleChannel(0, ms);
-
+
Channel channel2 = new SimpleChannel(1, ms);
-
+
Message[] m = createMessages(10);
-
+
MessageReference ref1 = ms.reference(m[0]);
MessageReference ref2 = ms.reference(m[1]);
MessageReference ref3 = ms.reference(m[2]);
@@ -687,13 +685,13 @@
MessageReference ref8 = ms.reference(m[7]);
MessageReference ref9 = ms.reference(m[8]);
MessageReference ref10 = ms.reference(m[9]);
-
+
MessageReference ref11 = ms.reference(m[0]);
MessageReference ref12 = ms.reference(m[1]);
MessageReference ref13 = ms.reference(m[2]);
MessageReference ref14 = ms.reference(m[3]);
MessageReference ref15 = ms.reference(m[4]);
-
+
List refs = new ArrayList();
refs.add(ref1);
refs.add(ref2);
@@ -705,18 +703,18 @@
refs.add(ref8);
refs.add(ref9);
refs.add(ref10);
-
+
pm.addReferences(channel1.getChannelID(), refs, true);
-
+
refs = new ArrayList();
refs.add(ref11);
refs.add(ref12);
refs.add(ref13);
refs.add(ref14);
refs.add(ref15);
-
+
pm.addReferences(channel2.getChannelID(), refs, true);
-
+
List refIds = getReferenceIds(channel1.getChannelID());
assertNotNull(refIds);
assertEquals(10, refIds.size());
@@ -730,7 +728,7 @@
assertTrue(refIds.contains(new Long(ref8.getMessageID())));
assertTrue(refIds.contains(new Long(ref9.getMessageID())));
assertTrue(refIds.contains(new Long(ref10.getMessageID())));
-
+
refIds = getReferenceIds(channel2.getChannelID());
assertNotNull(refIds);
assertEquals(5, refIds.size());
@@ -739,8 +737,8 @@
assertTrue(refIds.contains(new Long(ref13.getMessageID())));
assertTrue(refIds.contains(new Long(ref14.getMessageID())));
assertTrue(refIds.contains(new Long(ref15.getMessageID())));
-
-
+
+
List msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(10, msgs.size());
@@ -754,14 +752,14 @@
assertTrue(msgs.contains(new Long(ref8.getMessageID())));
assertTrue(msgs.contains(new Long(ref9.getMessageID())));
assertTrue(msgs.contains(new Long(ref10.getMessageID())));
-
+
List msgIds = new ArrayList();
msgIds.add(new Long(ref3.getMessageID()));
msgIds.add(new Long(ref4.getMessageID()));
msgIds.add(new Long(ref7.getMessageID()));
msgIds.add(new Long(ref9.getMessageID()));
msgIds.add(new Long(ref1.getMessageID()));
-
+
List ms = pm.getMessages(msgIds);
assertNotNull(ms);
assertEquals(5, ms.size());
@@ -770,24 +768,24 @@
assertTrue(containsMessage(ms, ref7.getMessageID()));
assertTrue(containsMessage(ms, ref9.getMessageID()));
assertTrue(containsMessage(ms, ref1.getMessageID()));
-
+
refs = new ArrayList();
refs.add(ref12);
refs.add(ref13);
refs.add(ref14);
refs.add(ref15);
pm.removeReferences(channel2.getChannelID(), refs);
-
+
refIds = getReferenceIds(channel2.getChannelID());
assertNotNull(refIds);
assertEquals(1, refIds.size());
assertTrue(refIds.contains(new Long(ref11.getMessageID())));
-
+
ms = getMessageIds();
assertNotNull(ms);
assertEquals(10, ms.size());
-
+
assertTrue(msgs.contains(new Long(ref1.getMessageID())));
assertTrue(msgs.contains(new Long(ref2.getMessageID())));
assertTrue(msgs.contains(new Long(ref3.getMessageID())));
@@ -798,14 +796,14 @@
assertTrue(msgs.contains(new Long(ref8.getMessageID())));
assertTrue(msgs.contains(new Long(ref9.getMessageID())));
assertTrue(msgs.contains(new Long(ref10.getMessageID())));
-
-
+
+
refs = new ArrayList();
refs.add(ref1);
refs.add(ref2);
refs.add(ref3);
pm.removeReferences(channel1.getChannelID(), refs);
-
+
refIds = getReferenceIds(channel1.getChannelID());
assertNotNull(refIds);
assertEquals(7, refIds.size());
@@ -816,13 +814,13 @@
assertTrue(refIds.contains(new Long(ref8.getMessageID())));
assertTrue(refIds.contains(new Long(ref9.getMessageID())));
assertTrue(refIds.contains(new Long(ref10.getMessageID())));
-
-
+
+
ms = getMessageIds();
-
+
assertNotNull(ms);
assertEquals(8, ms.size());
-
+
assertTrue(msgs.contains(new Long(ref1.getMessageID())));
assertTrue(msgs.contains(new Long(ref4.getMessageID())));
assertTrue(msgs.contains(new Long(ref5.getMessageID())));
@@ -831,11 +829,11 @@
assertTrue(msgs.contains(new Long(ref8.getMessageID())));
assertTrue(msgs.contains(new Long(ref9.getMessageID())));
assertTrue(msgs.contains(new Long(ref10.getMessageID())));
-
+
refs = new ArrayList();
refs.add(ref11);
pm.removeReferences(channel2.getChannelID(), refs);
-
+
refs = new ArrayList();
refs.add(ref4);
refs.add(ref5);
@@ -845,139 +843,139 @@
refs.add(ref9);
refs.add(ref10);
pm.removeReferences(channel1.getChannelID(), refs);
-
+
ms = getMessageIds();
assertNotNull(ms);
assertEquals(0, ms.size());
}
-
-
-
-
+
+
+
+
public void testAddRemoveReference() throws Throwable
{
doSetup(false);
-
+
Channel channel1 = new SimpleChannel(0, ms);
Channel channel2 = new SimpleChannel(1, ms);
- Message[] messages = createMessages(10);
-
+ Message[] messages = createMessages(10);
+
for (int i = 0; i < 5; i++)
{
Message m1 = messages[i * 2];
Message m2 = messages[i * 2 + 1];
-
+
MessageReference ref1_1 = ms.reference(m1);
MessageReference ref1_2 = ms.reference(m1);
-
+
MessageReference ref2_1 = ms.reference(m2);
MessageReference ref2_2 = ms.reference(m2);
-
+
pm.addReference(channel1.getChannelID(), ref1_1, null);
- pm.addReference(channel1.getChannelID(), ref2_1, null);
-
+ pm.addReference(channel1.getChannelID(), ref2_1, null);
+
pm.addReference(channel2.getChannelID(), ref1_2, null);
pm.addReference(channel2.getChannelID(), ref2_2, null);
-
+
List refs = getReferenceIds(channel1.getChannelID());
-
+
assertNotNull(refs);
assertEquals(2, refs.size());
assertTrue(refs.contains(new Long(m1.getMessageID())));
assertTrue(refs.contains(new Long(m2.getMessageID())));
-
+
refs = getReferenceIds(channel2.getChannelID());
-
+
assertNotNull(refs);
assertEquals(2, refs.size());
assertTrue(refs.contains(new Long(m1.getMessageID())));
assertTrue(refs.contains(new Long(m2.getMessageID())));
-
+
List msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(2, msgs.size());
assertTrue(msgs.contains(new Long(m1.getMessageID())));
assertTrue(msgs.contains(new Long(m2.getMessageID())));
-
+
pm.removeReference(channel1.getChannelID(), ref1_1, null);
-
+
refs = getReferenceIds(channel1.getChannelID());
assertNotNull(refs);
assertEquals(1, refs.size());
assertTrue(refs.contains(new Long(m2.getMessageID())));
-
+
refs = getReferenceIds(channel2.getChannelID());
assertNotNull(refs);
assertEquals(2, refs.size());
assertTrue(refs.contains(new Long(m1.getMessageID())));
assertTrue(refs.contains(new Long(m2.getMessageID())));
-
+
msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(2, msgs.size());
assertTrue(msgs.contains(new Long(m1.getMessageID())));
assertTrue(msgs.contains(new Long(m2.getMessageID())));
-
+
pm.removeReference(channel2.getChannelID(), ref1_2, null);
-
+
refs = getReferenceIds(channel1.getChannelID());
assertNotNull(refs);
assertEquals(1, refs.size());
assertTrue(refs.contains(new Long(m2.getMessageID())));
-
+
refs = getReferenceIds(channel2.getChannelID());
assertNotNull(refs);
- assertEquals(1, refs.size());
+ assertEquals(1, refs.size());
assertTrue(refs.contains(new Long(m2.getMessageID())));
-
+
msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(1, msgs.size());
assertTrue(msgs.contains(new Long(m2.getMessageID())));
-
+
pm.removeReference(channel1.getChannelID(), ref2_1, null);
-
+
refs = getReferenceIds(channel1.getChannelID());
assertNotNull(refs);
assertTrue(refs.isEmpty());
-
+
refs = getReferenceIds(channel2.getChannelID());
assertNotNull(refs);
- assertEquals(1, refs.size());
+ assertEquals(1, refs.size());
assertTrue(refs.contains(new Long(m2.getMessageID())));
-
+
msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(1, msgs.size());
assertTrue(msgs.contains(new Long(m2.getMessageID())));
-
+
pm.removeReference(channel2.getChannelID(), ref2_2, null);
-
+
refs = getReferenceIds(channel1.getChannelID());
assertNotNull(refs);
assertTrue(refs.isEmpty());
-
+
refs = getReferenceIds(channel2.getChannelID());
assertNotNull(refs);
assertTrue(refs.isEmpty());
-
+
msgs = getMessageIds();
assertNotNull(msgs);
assertTrue(msgs.isEmpty());
-
+
}
}
-
-
-
+
+
+
//non batch
-
+
public void testCommit_NotXA_Long_NB() throws Throwable
{
doTransactionCommit(false, false);
}
-
+
public void testCommit_XA_Long_NB() throws Throwable
{
doTransactionCommit(true, false);
@@ -987,20 +985,20 @@
{
doTransactionRollback(false, false);
}
-
+
public void testRollback_XA_Long_NB() throws Throwable
{
doTransactionRollback(true, false);
}
-
+
//batch
-
+
public void testCommit_NotXA_Long_B() throws Throwable
{
doTransactionCommit(false, true);
}
-
+
public void testCommit_XA_Long_B() throws Throwable
{
doTransactionCommit(true, true);
@@ -1010,53 +1008,53 @@
{
doTransactionRollback(false, true);
}
-
+
public void testRollback_XA_Long_B() throws Throwable
{
doTransactionRollback(true, true);
}
-
+
public void testRetrievePreparedTransactions() throws Throwable
{
doSetup(false);
-
+
Channel channel = new SimpleChannel(0, ms);
-
+
TransactionRepository txRep = new TransactionRepository();
txRep.start(pm);
Message[] messages = createMessages(10);
-
+
Xid[] xids = new Xid[messages.length];
Transaction[] txs = new Transaction[messages.length];
-
+
for (int i = 0; i < messages.length; i++)
- {
+ {
xids[i] = new MockXid();
txs[i] = txRep.createTransaction(xids[i]);
MessageReference ref = ms.reference(messages[i]);
pm.addReference(channel.getChannelID(), ref, txs[i]);
txs[i].prepare();
}
-
+
List txList = pm.retrievePreparedTransactions();
assertNotNull(txList);
assertEquals(messages.length, txList.size());
-
+
for (int i = 0; i < xids.length; i++)
{
Xid xid = xids[i];
assertTrue(txList.contains(xid));
}
-
+
//rollback the txs
for (int i = 0; i < txs.length; i++)
{
txs[i].rollback();
- }
+ }
}
-
+
protected Message createMessage(byte i, boolean reliable) throws Throwable
{
Map headers = generateFilledMap(true);
@@ -1070,30 +1068,30 @@
headers,
i % 2 == 0 ? new WibblishObject() : null);
}
-
+
protected Message[] createMessages(int num) throws Throwable
{
//Generate some messages with a good range of attribute values
Message[] messages = new Message[num];
for (int i = 0; i < num; i++)
- {
+ {
messages[i] = createMessage((byte)i, true);
}
return messages;
}
-
+
protected void checkEquivalent(Message m1, Message m2) throws Throwable
{
if (m1 == m2)
{
fail();
}
-
+
if (m1 == null || m2 == null)
{
fail();
}
-
+
//Attributes from org.jboss.messaging.core.Message
assertEquals(m1.getMessageID(), m2.getMessageID());
assertEquals(m1.isReference(), m2.isReference());
@@ -1107,7 +1105,7 @@
Map m2Headers = m2.getHeaders();
checkMapsEquivalent(m1Headers, m2Headers);
checkMapsEquivalent(m2Headers, m1Headers);
-
+
if (m1.getPayload() instanceof byte[] && m2.getPayload() instanceof byte[])
{
this.checkByteArraysEqual((byte[])m1.getPayload(), (byte[])m2.getPayload());
@@ -1121,12 +1119,12 @@
this.checkListsEquivalent((List)m1.getPayload(), (List)m2.getPayload());
}
else
- {
+ {
assertEquals(m1.getPayload(), m2.getPayload());
}
-
+
}
-
+
protected void checkMapsEquivalent(Map headers1, Map headers2)
{
Iterator iter = headers1.entrySet().iterator();
@@ -1145,16 +1143,16 @@
}
}
}
-
+
protected void checkListsEquivalent(List l1, List l2)
- {
+ {
Iterator iter1 = l1.iterator();
Iterator iter2 = l2.iterator();
while (iter1.hasNext())
{
Object o1 = iter1.next();
Object o2 = iter2.next();
-
+
if (o1 instanceof byte[])
{
checkByteArraysEqual((byte[])o1, (byte[])o2);
@@ -1165,7 +1163,7 @@
}
}
}
-
+
public static class WibblishObject implements Serializable
{
private static final long serialVersionUID = -822739710811857027L;
@@ -1184,7 +1182,7 @@
return oo.wibble.equals(this.wibble);
}
}
-
+
protected HashMap generateFilledMap(boolean useObject)
{
HashMap headers = new HashMap();
@@ -1200,7 +1198,7 @@
{
k = j % 10;
}
-
+
switch (k)
{
case 0:
@@ -1224,47 +1222,47 @@
case 9:
headers.put(new GUID().toString(), randByteArray(500));
case 10:
- headers.put(new GUID().toString(), new WibblishObject());
+ headers.put(new GUID().toString(), new WibblishObject());
}
}
return headers;
}
-
+
protected Byte randByte()
{
return new Byte((byte)(Math.random() * (2^8 - 1) - (2^7)));
}
-
+
protected Short randShort()
{
return new Short((short)(Math.random() * (2^16 - 1) - (2^15)));
}
-
+
protected Integer randInt()
{
return new Integer((int)(Math.random() * (2^32 - 1) - (2^31)));
}
-
+
protected Long randLong()
{
return new Long((long)(Math.random() * (2^64 - 1) - (2^64)));
}
-
+
protected Boolean randBool()
{
return new Boolean(Math.random() > 0.5);
}
-
+
protected Float randFloat()
{
return new Float((float)(Math.random() * 1000000));
}
-
+
protected Double randDouble()
{
return new Double(Math.random() * 1000000);
}
-
+
protected String randString(int length)
{
StringBuffer buf = new StringBuffer(length);
@@ -1274,18 +1272,18 @@
}
return buf.toString();
}
-
+
protected byte[] randByteArray(int size)
{
String s = randString(size / 2);
return s.getBytes();
}
-
+
protected Character randChar()
{
return new Character((char)randShort().shortValue());
}
-
+
protected void checkByteArraysEqual(byte[] b1, byte[] b2)
{
if (b1 == null || b2 == null)
@@ -1296,20 +1294,20 @@
{
fail();
}
-
+
for (int i = 0; i < b1.length; i++)
{
assertEquals(b1[i], b2[i]);
}
-
+
}
-
+
protected class MockXid implements Xid
{
byte[] branchQual;
int formatID;
byte[] globalTxId;
-
+
protected MockXid()
{
branchQual = new GUID().toString().getBytes();
@@ -1331,7 +1329,7 @@
{
return globalTxId;
}
-
+
public boolean equals(Object other)
{
if (!(other instanceof Xid))
@@ -1369,9 +1367,9 @@
}
return true;
}
-
+
}
-
+
protected void doTransactionCommit(boolean xa, boolean batch) throws Throwable
{
doSetup(batch);
@@ -1383,35 +1381,35 @@
log.debug("transaction log started");
Message[] messages = createMessages(10);
-
+
Message m1 = messages[0];
Message m2 = messages[1];
- Message m3 = messages[2];
+ Message m3 = messages[2];
Message m4 = messages[3];
Message m5 = messages[4];
Transaction tx = null;
if (xa)
- {
+ {
tx = txRep.createTransaction(new MockXid());
}
else
{
tx = txRep.createTransaction();
}
-
+
if (xa)
{
- assertEquals(1,txRep.getNumberOfRegisteredTransactions());
+ assertEquals(1,txRep.getNumberOfRegisteredTransactions());
}
else
{
- assertEquals(0,txRep.getNumberOfRegisteredTransactions());
+ assertEquals(0,txRep.getNumberOfRegisteredTransactions());
}
-
+
MessageReference ref1 = ms.reference(m1);
- MessageReference ref2 = ms.reference(m2);
- MessageReference ref3 = ms.reference(m3);
+ MessageReference ref2 = ms.reference(m2);
+ MessageReference ref3 = ms.reference(m3);
MessageReference ref4 = ms.reference(m4);
MessageReference ref5 = ms.reference(m5);
@@ -1420,14 +1418,14 @@
// Add first two refs non transactionally
pm.addReference(channel.getChannelID(), ref1, null);
pm.addReference(channel.getChannelID(), ref2, null);
-
+
//check they're there
List refs = getReferenceIds(channel.getChannelID());
assertNotNull(refs);
assertEquals(2, refs.size());
assertTrue(refs.contains(new Long(ref1.getMessageID())));
assertTrue(refs.contains(new Long(ref2.getMessageID())));
-
+
List msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(2, msgs.size());
@@ -1440,37 +1438,37 @@
pm.addReference(channel.getChannelID(), ref3, tx);
pm.addReference(channel.getChannelID(), ref4, tx);
pm.addReference(channel.getChannelID(), ref5, tx);
-
+
//Remove the other 2 transactionally
pm.removeReference(channel.getChannelID(), ref1, tx);
pm.removeReference(channel.getChannelID(), ref2, tx);
-
+
//Check the changes aren't visible
refs = getReferenceIds(channel.getChannelID());
assertNotNull(refs);
assertEquals(2, refs.size());
assertTrue(refs.contains(new Long(ref1.getMessageID())));
- assertTrue(refs.contains(new Long(ref2.getMessageID())));
-
+ assertTrue(refs.contains(new Long(ref2.getMessageID())));
+
msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(2, msgs.size());
assertTrue(msgs.contains(new Long(ref1.getMessageID())));
assertTrue(msgs.contains(new Long(ref2.getMessageID())));
-
+
//commit transaction
tx.commit();
assertEquals("numberOfRegisteredTransactions",0,txRep.getNumberOfRegisteredTransactions());
-
+
//check we can see only the last 3 refs
refs = getReferenceIds(channel.getChannelID());
assertNotNull(refs);
- assertEquals(3, refs.size());
+ assertEquals(3, refs.size());
assertTrue(refs.contains(new Long(ref3.getMessageID())));
- assertTrue(refs.contains(new Long(ref4.getMessageID())));
+ assertTrue(refs.contains(new Long(ref4.getMessageID())));
assertTrue(refs.contains(new Long(ref5.getMessageID())));
-
+
msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(3, msgs.size());
@@ -1478,7 +1476,7 @@
assertTrue(msgs.contains(new Long(ref4.getMessageID())));
assertTrue(msgs.contains(new Long(ref5.getMessageID())));
}
-
+
protected void doTransactionRollback(boolean xa, boolean batch) throws Throwable
{
doSetup(batch);
@@ -1486,16 +1484,16 @@
Channel channel = new SimpleChannel(0, ms);
TransactionRepository txRep = new TransactionRepository();
txRep.start(pm);
-
- Message[] messages = createMessages(10);
-
+
+ Message[] messages = createMessages(10);
+
Message m1 = messages[0];
Message m2 = messages[1];
- Message m3 = messages[2];
+ Message m3 = messages[2];
Message m4 = messages[3];
Message m5 = messages[4];
-
+
Transaction tx = null;
if (xa)
{
@@ -1505,77 +1503,77 @@
{
tx = txRep.createTransaction();
}
-
+
MessageReference ref1 = ms.reference(m1);
- MessageReference ref2 = ms.reference(m2);
- MessageReference ref3 = ms.reference(m3);
+ MessageReference ref2 = ms.reference(m2);
+ MessageReference ref3 = ms.reference(m3);
MessageReference ref4 = ms.reference(m4);
- MessageReference ref5 = ms.reference(m5);
+ MessageReference ref5 = ms.reference(m5);
//Add first two refs non transactionally
pm.addReference(channel.getChannelID(), ref1, null);
pm.addReference(channel.getChannelID(), ref2, null);
-
+
//check they're there
List refs = getReferenceIds(channel.getChannelID());
assertNotNull(refs);
assertEquals(2, refs.size());
assertTrue(refs.contains(new Long(ref1.getMessageID())));
- assertTrue(refs.contains(new Long(ref2.getMessageID())));
-
+ assertTrue(refs.contains(new Long(ref2.getMessageID())));
+
List msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(2, msgs.size());
assertTrue(msgs.contains(new Long(ref1.getMessageID())));
assertTrue(msgs.contains(new Long(ref2.getMessageID())));
-
-
-
+
+
+
//Add the next 3 refs transactionally
pm.addReference(channel.getChannelID(), ref3, tx);
pm.addReference(channel.getChannelID(), ref4, tx);
pm.addReference(channel.getChannelID(), ref5, tx);
-
+
//Remove the other 2 transactionally
pm.removeReference(channel.getChannelID(), ref1, tx);
pm.removeReference(channel.getChannelID(), ref2, tx);
-
+
//Check the changes aren't visible
refs = getReferenceIds(channel.getChannelID());
assertNotNull(refs);
assertEquals(2, refs.size());
assertTrue(refs.contains(new Long(ref1.getMessageID())));
- assertTrue(refs.contains(new Long(ref2.getMessageID())));
-
+ assertTrue(refs.contains(new Long(ref2.getMessageID())));
+
msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(2, msgs.size());
assertTrue(msgs.contains(new Long(ref1.getMessageID())));
assertTrue(msgs.contains(new Long(ref2.getMessageID())));
-
+
//rollback transaction
tx.rollback();
-
+
refs = getReferenceIds(channel.getChannelID());
assertNotNull(refs);
assertEquals(2, refs.size());
assertTrue(refs.contains(new Long(ref1.getMessageID())));
- assertTrue(refs.contains(new Long(ref2.getMessageID())));
-
+ assertTrue(refs.contains(new Long(ref2.getMessageID())));
+
msgs = getMessageIds();
assertNotNull(msgs);
assertEquals(2, msgs.size());
assertTrue(msgs.contains(new Long(ref1.getMessageID())));
- assertTrue(msgs.contains(new Long(ref2.getMessageID())));
+ assertTrue(msgs.contains(new Long(ref2.getMessageID())));
}
-
+
protected List getReferenceIds(long channelId) throws Throwable
{
InitialContext ctx = new InitialContext();
TransactionManager mgr = (TransactionManager)ctx.lookup(TransactionManagerService.JNDI_NAME);
DataSource ds = (DataSource)ctx.lookup("java:/DefaultDS");
-
+
javax.transaction.Transaction txOld = mgr.suspend();
mgr.begin();
@@ -1583,11 +1581,11 @@
String sql = "SELECT MESSAGEID FROM JMS_MESSAGE_REFERENCE WHERE CHANNELID=? ORDER BY ORD";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setLong(1, channelId);
-
+
ResultSet rs = ps.executeQuery();
-
+
List msgIds = new ArrayList();
-
+
while (rs.next())
{
long msgId = rs.getLong(1);
@@ -1603,28 +1601,28 @@
{
mgr.resume(txOld);
}
-
+
return msgIds;
}
-
+
protected List getMessageIds() throws Throwable
{
InitialContext ctx = new InitialContext();
TransactionManager mgr = (TransactionManager)ctx.lookup(TransactionManagerService.JNDI_NAME);
DataSource ds = (DataSource)ctx.lookup("java:/DefaultDS");
-
+
javax.transaction.Transaction txOld = mgr.suspend();
mgr.begin();
Connection conn = ds.getConnection();
String sql = "SELECT MESSAGEID FROM JMS_MESSAGE ORDER BY MESSAGEID";
PreparedStatement ps = conn.prepareStatement(sql);
-
+
ResultSet rs = ps.executeQuery();
-
+
List msgIds = new ArrayList();
-
+
while (rs.next())
{
long msgId = rs.getLong(1);
@@ -1640,10 +1638,10 @@
{
mgr.resume(txOld);
}
-
+
return msgIds;
}
-
+
}
More information about the jboss-cvs-commits
mailing list