You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2012/07/26 00:04:34 UTC
svn commit: r1365816 - in /activemq/trunk/activemq-core/src:
main/java/org/apache/activemq/ActiveMQConnection.java
main/java/org/apache/activemq/ActiveMQConnectionFactory.java
test/java/org/apache/activemq/joramtests/JoramJmsTest.java
Author: tabish
Date: Wed Jul 25 22:04:34 2012
New Revision: 1365816
URL: http://svn.apache.org/viewvc?rev=1365816&view=rev
Log:
fix test case UnifiedSessionTest for: https://issues.apache.org/jira/browse/AMQ-3944
ActiveMQConnection had no way to tell if it was a QueueConnection or not.
Modified:
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/joramtests/JoramJmsTest.java
Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java?rev=1365816&r1=1365815&r2=1365816&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnection.java Wed Jul 25 22:04:34 2012
@@ -154,6 +154,7 @@ public class ActiveMQConnection implemen
private int sendTimeout =0;
private boolean sendAcksAsync=true;
private boolean checkForDuplicates = true;
+ private boolean queueOnlyConnection = false;
private final Transport transport;
private final IdGenerator clientIdGenerator;
@@ -780,6 +781,11 @@ public class ActiveMQConnection implemen
public ConnectionConsumer createDurableConnectionConsumer(Topic topic, String subscriptionName, String messageSelector, ServerSessionPool sessionPool, int maxMessages,
boolean noLocal) throws JMSException {
checkClosedOrFailed();
+
+ if (queueOnlyConnection) {
+ throw new IllegalStateException("QueueConnection cannot be used to create Pub/Sub based resources.");
+ }
+
ensureConnectionInfoSent();
SessionId sessionId = new SessionId(info.getConnectionId(), -1);
ConsumerInfo info = new ConsumerInfo(new ConsumerId(sessionId, consumerIdGenerator.getNextSequenceId()));
@@ -2579,4 +2585,14 @@ public class ActiveMQConnection implemen
public void setMaxThreadPoolSize(int maxThreadPoolSize) {
this.maxThreadPoolSize = maxThreadPoolSize;
}
+
+ /**
+ * Enable enforcement of QueueConnection semantics.
+ *
+ * @return this object, useful for chaining
+ */
+ ActiveMQConnection enforceQueueOnlyConnection() {
+ this.queueOnlyConnection = true;
+ return this;
+ }
}
Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java?rev=1365816&r1=1365815&r2=1365816&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java Wed Jul 25 22:04:34 2012
@@ -205,14 +205,14 @@ public class ActiveMQConnectionFactory e
* @throws JMSException
*/
public QueueConnection createQueueConnection() throws JMSException {
- return createActiveMQConnection();
+ return createActiveMQConnection().enforceQueueOnlyConnection();
}
/**
* @return Returns the QueueConnection.
*/
public QueueConnection createQueueConnection(String userName, String password) throws JMSException {
- return createActiveMQConnection(userName, password);
+ return createActiveMQConnection(userName, password).enforceQueueOnlyConnection();
}
/**
Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/joramtests/JoramJmsTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/joramtests/JoramJmsTest.java?rev=1365816&r1=1365815&r2=1365816&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/joramtests/JoramJmsTest.java (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/joramtests/JoramJmsTest.java Wed Jul 25 22:04:34 2012
@@ -19,6 +19,7 @@ package org.apache.activemq.joramtests;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
+
import org.objectweb.jtests.jms.conform.connection.ConnectionTest;
import org.objectweb.jtests.jms.conform.connection.TopicConnectionTest;
import org.objectweb.jtests.jms.conform.message.MessageBodyTest;
@@ -27,11 +28,8 @@ import org.objectweb.jtests.jms.conform.
import org.objectweb.jtests.jms.conform.message.headers.MessageHeaderTest;
import org.objectweb.jtests.jms.conform.message.properties.JMSXPropertyTest;
import org.objectweb.jtests.jms.conform.message.properties.MessagePropertyConversionTest;
-import org.objectweb.jtests.jms.conform.message.properties.MessagePropertyTest;
-import org.objectweb.jtests.jms.conform.queue.QueueBrowserTest;
import org.objectweb.jtests.jms.conform.queue.TemporaryQueueTest;
import org.objectweb.jtests.jms.conform.selector.SelectorSyntaxTest;
-import org.objectweb.jtests.jms.conform.selector.SelectorTest;
import org.objectweb.jtests.jms.conform.session.QueueSessionTest;
import org.objectweb.jtests.jms.conform.session.SessionTest;
import org.objectweb.jtests.jms.conform.session.TopicSessionTest;
@@ -59,11 +57,11 @@ public class JoramJmsTest extends TestCa
suite.addTestSuite(SessionTest.class);
suite.addTestSuite(TopicSessionTest.class);
suite.addTestSuite(TemporaryTopicTest.class);
+ suite.addTestSuite(UnifiedSessionTest.class);
// TODO: figure out why the following tests are failing..
// suite.addTestSuite(MessagePropertyTest.class);
// suite.addTestSuite(QueueBrowserTest.class);
// suite.addTestSuite(SelectorTest.class);
-// suite.addTestSuite(UnifiedSessionTest.class);
return suite;
}