[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