[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