[jboss-cvs] JBoss Messaging SVN: r3173 - in trunk: src/main/org/jboss/jms/server and 7 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Oct 5 08:48:16 EDT 2007


Author: timfox
Date: 2007-10-05 08:48:16 -0400 (Fri, 05 Oct 2007)
New Revision: 3173

Added:
   trunk/src/main/org/jboss/jms/server/endpoint/SessionInternalEndpoint.java
Modified:
   trunk/src/etc/prepare-aop.xml
   trunk/src/main/org/jboss/jms/server/ServerPeer.java
   trunk/src/main/org/jboss/jms/server/endpoint/advised/SessionAdvised.java
   trunk/src/main/org/jboss/jms/wireformat/SessionSendRequest.java
   trunk/tests/src/org/jboss/test/messaging/jms/AcknowledgementTest.java
   trunk/tests/src/org/jboss/test/messaging/jms/MessageCleanupTest.java
   trunk/tests/src/org/jboss/test/messaging/jms/MessageProducerTest.java
   trunk/tests/src/org/jboss/test/messaging/jms/MessageProxyTest.java
   trunk/tests/src/org/jboss/test/messaging/jms/bridge/BridgeTestBase.java
   trunk/tests/src/org/jboss/test/messaging/jms/message/JMSPriorityHeaderTest.java
   trunk/tests/src/org/jboss/test/messaging/tools/container/ServiceContainer.java
Log:
http://jira.jboss.com/jira/browse/JBMESSAGING-880


Modified: trunk/src/etc/prepare-aop.xml
===================================================================
--- trunk/src/etc/prepare-aop.xml	2007-10-04 18:28:56 UTC (rev 3172)
+++ trunk/src/etc/prepare-aop.xml	2007-10-05 12:48:16 UTC (rev 3173)
@@ -18,7 +18,7 @@
   
   <prepare expr="execution(* org.jboss.jms.server.endpoint.advised.ConnectionFactoryAdvised->$implementing{org.jboss.jms.server.endpoint.ConnectionFactoryInternalEndpoint}(..))"/>
   <prepare expr="execution(* org.jboss.jms.server.endpoint.advised.ConnectionAdvised->$implementing{org.jboss.jms.delegate.ConnectionEndpoint}(..))"/>
-  <prepare expr="execution(* org.jboss.jms.server.endpoint.advised.SessionAdvised->$implementing{org.jboss.jms.delegate.SessionEndpoint}(..))"/> 
+  <prepare expr="execution(* org.jboss.jms.server.endpoint.advised.SessionAdvised->$implementing{org.jboss.jms.server.endpoint.SessionInternalEndpoint}(..))"/> 
   <prepare expr="execution(* org.jboss.jms.server.endpoint.advised.ConsumerAdvised->$implementing{org.jboss.jms.delegate.ConsumerEndpoint}(..))"/>
   <prepare expr="execution(* org.jboss.jms.server.endpoint.advised.BrowserAdvised->$implementing{org.jboss.jms.delegate.BrowserEndpoint}(..))"/>
 

Modified: trunk/src/main/org/jboss/jms/server/ServerPeer.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/ServerPeer.java	2007-10-04 18:28:56 UTC (rev 3172)
+++ trunk/src/main/org/jboss/jms/server/ServerPeer.java	2007-10-05 12:48:16 UTC (rev 3173)
@@ -28,6 +28,8 @@
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -72,9 +74,9 @@
 import org.jboss.messaging.core.impl.postoffice.MessagingPostOffice;
 import org.jboss.messaging.core.impl.tx.TransactionRepository;
 import org.jboss.messaging.util.ExceptionUtil;
+import org.jboss.messaging.util.JMXAccessor;
 import org.jboss.messaging.util.Util;
 import org.jboss.messaging.util.Version;
-import org.jboss.messaging.util.JMXAccessor;
 import org.jboss.mx.loading.UnifiedClassLoader3;
 import org.jboss.remoting.marshal.MarshalFactory;
 import org.jboss.system.ServiceCreator;
@@ -90,6 +92,7 @@
  * @author <a href="mailto:ovidiu at feodorov.com">Ovidiu Feodorov</a>
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  * @author <a href="mailto:juha at jboss.org">Juha Lindfors</a>
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
  * 
  * @version <tt>$Revision$</tt>
  *
@@ -843,6 +846,14 @@
    {
       List counters = getMessageCounters();
 
+      Collections.sort(counters, new Comparator() {
+      	public int compare(Object o1, Object o2) {
+      		MessageCounter m1 = (MessageCounter)o1;
+      		MessageCounter m2 = (MessageCounter)o2;
+      		return m1.getDestinationName().compareTo(m2.getDestinationName());
+      	}
+      });
+
       String ret =
          "<table width=\"100%\" border=\"1\" cellpadding=\"1\" cellspacing=\"1\">"
             + "<tr>"

Added: trunk/src/main/org/jboss/jms/server/endpoint/SessionInternalEndpoint.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/endpoint/SessionInternalEndpoint.java	                        (rev 0)
+++ trunk/src/main/org/jboss/jms/server/endpoint/SessionInternalEndpoint.java	2007-10-05 12:48:16 UTC (rev 3173)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.jms.server.endpoint;
+
+import javax.jms.JMSException;
+
+import org.jboss.jms.delegate.SessionEndpoint;
+import org.jboss.jms.message.JBossMessage;
+
+/**
+ * 
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @version <tt>$Revision: $</tt>5 Oct 2007
+ *
+ * $Id: $
+ *
+ */
+public interface SessionInternalEndpoint extends SessionEndpoint
+{
+	void send(JBossMessage msg, boolean checkForDuplicates, long seq) throws JMSException;   
+}

Modified: trunk/src/main/org/jboss/jms/server/endpoint/advised/SessionAdvised.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/endpoint/advised/SessionAdvised.java	2007-10-04 18:28:56 UTC (rev 3172)
+++ trunk/src/main/org/jboss/jms/server/endpoint/advised/SessionAdvised.java	2007-10-05 12:48:16 UTC (rev 3173)
@@ -35,6 +35,7 @@
 import org.jboss.jms.destination.JBossTopic;
 import org.jboss.jms.message.JBossMessage;
 import org.jboss.jms.server.endpoint.ServerSessionEndpoint;
+import org.jboss.jms.server.endpoint.SessionInternalEndpoint;
 
 /**
  * The server-side advised instance corresponding to a Session. It is bound to the AOP
@@ -47,10 +48,10 @@
  *
  * $Id$
  */
-public class SessionAdvised extends AdvisedSupport implements SessionEndpoint
+public class SessionAdvised extends AdvisedSupport implements SessionInternalEndpoint
 {
    // Constants -----------------------------------------------------
-
+	
    // Attributes ----------------------------------------------------
 
    protected SessionEndpoint endpoint;
@@ -78,7 +79,7 @@
 
    public void send(JBossMessage msg, boolean checkForDuplicates) throws JMSException
    {
-      endpoint.send(msg, checkForDuplicates);
+      throw new IllegalStateException("Invocation should not be handle here");
    }
    
    public void send(JBossMessage msg, boolean checkForDuplicates, long seq) throws JMSException

Modified: trunk/src/main/org/jboss/jms/wireformat/SessionSendRequest.java
===================================================================
--- trunk/src/main/org/jboss/jms/wireformat/SessionSendRequest.java	2007-10-04 18:28:56 UTC (rev 3172)
+++ trunk/src/main/org/jboss/jms/wireformat/SessionSendRequest.java	2007-10-05 12:48:16 UTC (rev 3173)
@@ -85,12 +85,15 @@
       SessionAdvised advised = 
          (SessionAdvised)Dispatcher.instance.getTarget(objectId);
       
-      if (advised == null)
+      if (advised != null)
+      {         
+         advised.send(msg, checkForDuplicates, sequence);
+      }
+      else
       {
-         throw new IllegalStateException("Cannot find object in dispatcher with id " + objectId);
+      	//Since NP messages are sent one way, there is a possibility the session has closed
+      	//by the time the message arrives, so we ignore this
       }
-
-      advised.send(msg, checkForDuplicates, sequence);
       
       return null;
    }

Modified: trunk/tests/src/org/jboss/test/messaging/jms/AcknowledgementTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/AcknowledgementTest.java	2007-10-04 18:28:56 UTC (rev 3172)
+++ trunk/tests/src/org/jboss/test/messaging/jms/AcknowledgementTest.java	2007-10-05 12:48:16 UTC (rev 3173)
@@ -954,8 +954,7 @@
 	      conn = cf.createConnection();
 	      Session sessSend = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
 	      MessageProducer prod = sessSend.createProducer(queue1);
-	      prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
-	      
+  
 	      log.trace("Sending messages");
 	      
 	      TextMessage tm1 = sessSend.createTextMessage("a");
@@ -1086,8 +1085,7 @@
 	      conn = cf.createConnection();
 	      Session sessSend = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
 	      MessageProducer prod = sessSend.createProducer(queue1);
-	      prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
-	      
+
 	      log.trace("Sending messages");
 	      
 	      TextMessage tm1 = sessSend.createTextMessage("a");
@@ -1150,7 +1148,7 @@
 	      conn = cf.createConnection();
 	      Session sessSend = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
 	      MessageProducer prod = sessSend.createProducer(queue1);
-	      prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+
 	      TextMessage tm1 = sessSend.createTextMessage("a");
 	      TextMessage tm2 = sessSend.createTextMessage("b");
 	      TextMessage tm3 = sessSend.createTextMessage("c");
@@ -1196,7 +1194,7 @@
 	      conn = cf.createConnection();
 	      Session sessSend = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
 	      MessageProducer prod = sessSend.createProducer(queue1);
-	      prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+
 	      TextMessage tm1 = sessSend.createTextMessage("a");
 	      TextMessage tm2 = sessSend.createTextMessage("b");
 	      TextMessage tm3 = sessSend.createTextMessage("c");

Modified: trunk/tests/src/org/jboss/test/messaging/jms/MessageCleanupTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/MessageCleanupTest.java	2007-10-04 18:28:56 UTC (rev 3172)
+++ trunk/tests/src/org/jboss/test/messaging/jms/MessageCleanupTest.java	2007-10-05 12:48:16 UTC (rev 3173)
@@ -94,15 +94,18 @@
       
       MessageProducer prod = sess.createProducer(ourTopic);
       
-      prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
-      
+      prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);      
+       
       MessageConsumer cons = sess.createConsumer(ourTopic);
                   
       for (int i = 0; i < 150; i++)
       {
          prod.send(sess.createMessage());
       }
-        
+      
+      //Give them time to arrive NP messages are sent one way
+      Thread.sleep(5000);
+              
       //50 Should be paged onto disk
       
       assertEquals(50, getReferenceIds().size());
@@ -145,8 +148,9 @@
          prod.send(sess.createMessage());
       }
       
-      SimpleMessageStore ms = (SimpleMessageStore)ServerManagement.getMessageStore();
-      
+      //Give them time to arrive NP messages are sent one way
+      Thread.sleep(5000);
+       
       assertEquals(100, getReferenceIds().size());
       
       assertEquals(50, getMessageIds().size());

Modified: trunk/tests/src/org/jboss/test/messaging/jms/MessageProducerTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/MessageProducerTest.java	2007-10-04 18:28:56 UTC (rev 3172)
+++ trunk/tests/src/org/jboss/test/messaging/jms/MessageProducerTest.java	2007-10-05 12:48:16 UTC (rev 3173)
@@ -26,12 +26,14 @@
 import javax.jms.Connection;
 import javax.jms.DeliveryMode;
 import javax.jms.Destination;
+import javax.jms.InvalidDestinationException;
 import javax.jms.Message;
 import javax.jms.MessageConsumer;
 import javax.jms.MessageProducer;
 import javax.jms.Session;
 import javax.jms.TextMessage;
 
+import org.jboss.jms.destination.JBossTopic;
 import org.jboss.test.messaging.jms.message.SimpleJMSMessage;
 import org.jboss.test.messaging.jms.message.SimpleJMSTextMessage;
 
@@ -98,11 +100,18 @@
    {
    }
    
-   /**
-    * The simplest possible non-transacted test.
-    */
-   public void testSimpleSend() throws Exception
+   public void testSendToQueuePersistent() throws Exception
    {
+   	sendToQueue(true);
+   }
+   
+   public void testSendToQueueNonPersistent() throws Exception
+   {
+   	sendToQueue(false);
+   }
+   
+   private void sendToQueue(boolean persistent) throws Exception
+   {
       Connection pconn = null;      
       Connection cconn = null;
       
@@ -133,11 +142,18 @@
       }
    }
 
-   /**
-    * The simplest possible transacted test.
-    */
-   public void testTransactedSend() throws Exception
+   public void testTransactedSendPersistent() throws Exception
    {
+   	transactedSend(true);
+   }
+   
+   public void testTransactedSendNonPersistent() throws Exception
+   {
+   	transactedSend(false);
+   }
+   
+   private void transactedSend(boolean persistent) throws Exception
+   {
       Connection pconn = null;
       Connection cconn = null;
 
@@ -203,10 +219,20 @@
          }
       }
    }
-
+   
    public void testPersistentSendToTopic() throws Exception
    {
+   	sendToTopic(true);
+   }
+   
+   public void testNonPersistentSendToTopic() throws Exception
+   {
+   	sendToTopic(false);      
+   }
 
+   private void sendToTopic(boolean persistent) throws Exception
+   {
+
       Connection pconn = cf.createConnection();
       Connection cconn = cf.createConnection();
 
@@ -215,6 +241,9 @@
          Session ps = pconn.createSession(false, Session.AUTO_ACKNOWLEDGE);
          Session cs = cconn.createSession(false, Session.AUTO_ACKNOWLEDGE);
          final MessageProducer p = ps.createProducer(topic1);
+         
+         p.setDeliveryMode(persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT);
+         
          MessageConsumer c = cs.createConsumer(topic1);
 
          cconn.start();
@@ -246,7 +275,9 @@
          cconn.close();
       }
    }
+   
 
+
    /**
     *  Test sending via anonymous producer
     * */
@@ -394,7 +425,7 @@
 //      {
 //         pconn.close();
 //      }
-//   }
+//   }  
 
    //
    // disabled MessageID tests

Modified: trunk/tests/src/org/jboss/test/messaging/jms/MessageProxyTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/MessageProxyTest.java	2007-10-04 18:28:56 UTC (rev 3172)
+++ trunk/tests/src/org/jboss/test/messaging/jms/MessageProxyTest.java	2007-10-05 12:48:16 UTC (rev 3173)
@@ -81,8 +81,7 @@
          Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
          
          MessageProducer prod = sess.createProducer(queue1);
-         prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
-         
+     
          MessageConsumer cons = sess.createConsumer(queue1);
          
          Message msent = sess.createMessage();
@@ -139,8 +138,7 @@
          Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
          
          MessageProducer prod = sess.createProducer(queue1);
-         prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
-         
+    
          MessageConsumer cons = sess.createConsumer(queue1);
          
          Message msent = sess.createMessage();
@@ -193,9 +191,7 @@
          Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
          
          MessageProducer prod = sess.createProducer(queue1);
-         
-         prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
-          
+               
          MapMessage m = sess.createMapMessage();
          
          JBossMessage check1 = ((MessageProxy)m).getMessage();
@@ -320,9 +316,7 @@
          Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
          
          MessageProducer prod = sess.createProducer(queue1);
-         
-         prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
-          
+              
          MapMessage m = sess.createMapMessage();
          
          MessageConsumer cons = sess.createConsumer(queue1);

Modified: trunk/tests/src/org/jboss/test/messaging/jms/bridge/BridgeTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/bridge/BridgeTestBase.java	2007-10-04 18:28:56 UTC (rev 3172)
+++ trunk/tests/src/org/jboss/test/messaging/jms/bridge/BridgeTestBase.java	2007-10-05 12:48:16 UTC (rev 3173)
@@ -189,6 +189,10 @@
             
             prod.send(tm);
          }
+         
+         //NP messages are sent async so if you close the connection too quickly you may lose the last
+         //one
+         Thread.sleep(1000);
       }
       finally
       {
@@ -294,6 +298,8 @@
             TextMessage tm = (TextMessage)cons.receive(30000);
             
             assertNotNull(tm);
+            
+            log.info("Got message " + tm.getText());
               
             assertEquals("message" + (i + start), tm.getText());
          } 

Modified: trunk/tests/src/org/jboss/test/messaging/jms/message/JMSPriorityHeaderTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/message/JMSPriorityHeaderTest.java	2007-10-04 18:28:56 UTC (rev 3172)
+++ trunk/tests/src/org/jboss/test/messaging/jms/message/JMSPriorityHeaderTest.java	2007-10-05 12:48:16 UTC (rev 3173)
@@ -91,6 +91,9 @@
       prod.send(m7, DeliveryMode.NON_PERSISTENT, 7, 0);
       prod.send(m8, DeliveryMode.NON_PERSISTENT, 8, 0);
       prod.send(m9, DeliveryMode.NON_PERSISTENT, 9, 0);
+      
+      //NP messages are sent async so we need to allow them time to all hit the server
+      Thread.sleep(2000);
 
       Session sessReceive = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
       
@@ -164,6 +167,9 @@
       prod.send(m8, DeliveryMode.NON_PERSISTENT, 5, 0);
       prod.send(m9, DeliveryMode.NON_PERSISTENT, 6, 0);
       
+      //Give them time to hit the server
+      Thread.sleep(2000);
+      
       cons = sessReceive.createConsumer(queue1);         
       
       {
@@ -418,6 +424,9 @@
       TextMessage m0 = sessSend.createTextMessage("a");
          
       prod.send(m0, DeliveryMode.NON_PERSISTENT, 7, 0);
+      
+      //Let it hit server
+      Thread.sleep(2000);
 
       Session sessReceive = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
       

Modified: trunk/tests/src/org/jboss/test/messaging/tools/container/ServiceContainer.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/tools/container/ServiceContainer.java	2007-10-04 18:28:56 UTC (rev 3172)
+++ trunk/tests/src/org/jboss/test/messaging/tools/container/ServiceContainer.java	2007-10-05 12:48:16 UTC (rev 3173)
@@ -903,6 +903,9 @@
 
          if (objectStoreDir != null)
          {
+         	//Delete the old one
+         	//deleteDirectory(new File(objectStoreDir));
+         	
             newObjectStore = objectStoreDir + "/" + newObjectStore;
          }
 
@@ -1090,7 +1093,6 @@
    {
       if (tm == null)
       {
-
          setupObjectStoreDir();
          log.info("Starting arjuna tx mgr");
          tm = com.arjuna.ats.jta.TransactionManager.transactionManager();
@@ -1112,7 +1114,7 @@
       log.debug("bound " + USER_TRANSACTION_JNDI_NAME);
    }
 
-   private boolean deleteDirectory(File directory)
+   private static boolean deleteDirectory(File directory)
    {
       if (directory.isDirectory())
       {




More information about the jboss-cvs-commits mailing list