[jboss-cvs] JBoss Messaging SVN: r8523 - branches/JBossMessaging_1_4_8_SP5_JBMESSAGING-1920/tests/src/org/jboss/test/messaging/jms.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Apr 12 18:35:43 EDT 2012
Author: bershath27
Date: 2012-04-12 18:35:42 -0400 (Thu, 12 Apr 2012)
New Revision: 8523
Modified:
branches/JBossMessaging_1_4_8_SP5_JBMESSAGING-1920/tests/src/org/jboss/test/messaging/jms/XATest.java
Log:
JBPAPP-8680
Modified: branches/JBossMessaging_1_4_8_SP5_JBMESSAGING-1920/tests/src/org/jboss/test/messaging/jms/XATest.java
===================================================================
--- branches/JBossMessaging_1_4_8_SP5_JBMESSAGING-1920/tests/src/org/jboss/test/messaging/jms/XATest.java 2012-04-12 22:33:21 UTC (rev 8522)
+++ branches/JBossMessaging_1_4_8_SP5_JBMESSAGING-1920/tests/src/org/jboss/test/messaging/jms/XATest.java 2012-04-12 22:35:42 UTC (rev 8523)
@@ -30,6 +30,7 @@
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
+import javax.jms.Queue;
import javax.jms.ServerSession;
import javax.jms.ServerSessionPool;
import javax.jms.Session;
@@ -49,6 +50,7 @@
import com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple;
import org.jboss.jms.client.JBossConnection;
+import org.jboss.jms.client.JBossConnectionFactory;
import org.jboss.jms.client.JBossSession;
import org.jboss.jms.client.delegate.ClientConnectionDelegate;
import org.jboss.jms.client.delegate.DelegateSupport;
@@ -3577,12 +3579,113 @@
}
+ public void testCommit2ResourcesFromDiffUsers() throws Exception
+ {
+ String secConfigA = "<security>" + "<role name=\"guest\" read=\"true\" write=\"true\"/>"
+ + "</security>";
+
+ Queue securedQueueA = deployAndConfigureSecuredQueue("securedQueueA", secConfigA);
+
+ String secConfigB = "<security>" + "<role name=\"publisher\" read=\"true\" write=\"true\"/>"
+ + "</security>";
+
+ Queue securedQueueB = deployAndConfigureSecuredQueue("securedQueueB", secConfigB);
+
+ Connection conn0 = null;
+ XAConnection xconn1 = null;
+ XAConnection xconn2 = null;
+
+ try
+ {
+ conn0 = cf.createConnection();
+ conn0.start();
+ Session sess0 = conn0.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ MessageProducer prod = sess0.createProducer(securedQueueA);
+ Message m = sess0.createTextMessage("XATest1");
+ prod.send(m);
+
+ xconn1 = cf.createXAConnection("guest", "guest");
+ xconn1.start();
+
+ xconn2 = cf.createXAConnection("john", "needle");
+ xconn2.start();
+
+ tm.begin();
+
+ XASession xsess1 = xconn1.createXASession();
+ MessagingXAResource res1 = (MessagingXAResource)xsess1.getXAResource();
+
+ XASession xsess2 = xconn2.createXASession();
+ MessagingXAResource res2 = (MessagingXAResource)xsess2.getXAResource();
+
+ Transaction tx = tm.getTransaction();
+
+ tx.enlistResource(res1);
+ tx.enlistResource(res2);
+
+ MessageConsumer xcons1 = xsess1.createConsumer(securedQueueA);
+
+ TextMessage m2 = (TextMessage)xcons1.receive(MAX_TIMEOUT);
+
+ assertNotNull(m2);
+ assertEquals("XATest1", m2.getText());
+
+ MessageProducer xprod2 = xsess2.createProducer(securedQueueB);
+ xprod2.send(m2);
+
+ tx.delistResource(res1, XAResource.TMSUCCESS);
+ tx.delistResource(res2, XAResource.TMSUCCESS);
+
+ tm.commit();
+
+ //receive m2
+ MessageConsumer cons2 = xsess2.createConsumer(securedQueueB);
+ m2 = (TextMessage)cons2.receive(MAX_TIMEOUT);
+
+ assertNotNull(m2);
+ assertEquals("XATest1", m2.getText());
+ }
+ finally
+ {
+ if (conn0 != null)
+ {
+ conn0.close();
+ }
+ if (xconn1 != null)
+ {
+ xconn1.close();
+ }
+ if (xconn2 != null)
+ {
+ xconn2.close();
+ }
+
+ }
+
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
+ /**
+ * @param string
+ * @param secConfigA
+ * @return
+ * @throws Exception
+ */
+ private Queue deployAndConfigureSecuredQueue(String qname, String secConfig) throws Exception
+ {
+ ServerManagement.deployQueue(qname, qname);
+
+ ServerManagement.configureSecurityForDestination(qname, secConfig);
+
+ Queue queue = (Queue)ic.lookup(qname);
+ return queue;
+ }
+
private void assertEqualByteArrays(final byte[] b1, final byte[] b2)
{
log.info("b1 length: " + b1.length + " b2 length " + b2.length);
More information about the jboss-cvs-commits
mailing list