You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by js...@apache.org on 2007/06/12 15:24:36 UTC
svn commit: r546476 - in /activemq/trunk/activemq-core/src:
main/java/org/apache/activemq/ main/java/org/apache/activemq/command/
test/java/org/apache/activemq/ test/java/org/apache/activemq/test/
test/java/org/apache/activemq/usecases/
Author: jstrachan
Date: Tue Jun 12 06:24:33 2007
New Revision: 546476
URL: http://svn.apache.org/viewvc?view=rev&rev=546476
Log:
added test case and fix for AMQ-1142
Added:
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/EmbeddedBrokerAndConnectionTestSupport.java (with props)
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/test/TemporaryDestinationToFromNameTest.java (with props)
Modified:
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQDestination.java
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/CreateLotsOfTemporaryQueuesTest.java
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/NewConsumerCreatesDestinationTest.java
Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java?view=diff&rev=546476&r1=546475&r2=546476
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQSession.java Tue Jun 12 06:24:33 2007
@@ -57,27 +57,7 @@
import org.apache.activemq.blob.BlobTransferPolicy;
import org.apache.activemq.blob.BlobUploader;
-import org.apache.activemq.command.ActiveMQBlobMessage;
-import org.apache.activemq.command.ActiveMQBytesMessage;
-import org.apache.activemq.command.ActiveMQDestination;
-import org.apache.activemq.command.ActiveMQMapMessage;
-import org.apache.activemq.command.ActiveMQMessage;
-import org.apache.activemq.command.ActiveMQObjectMessage;
-import org.apache.activemq.command.ActiveMQQueue;
-import org.apache.activemq.command.ActiveMQStreamMessage;
-import org.apache.activemq.command.ActiveMQTempDestination;
-import org.apache.activemq.command.ActiveMQTextMessage;
-import org.apache.activemq.command.ActiveMQTopic;
-import org.apache.activemq.command.Command;
-import org.apache.activemq.command.ConsumerId;
-import org.apache.activemq.command.MessageAck;
-import org.apache.activemq.command.MessageDispatch;
-import org.apache.activemq.command.MessageId;
-import org.apache.activemq.command.ProducerId;
-import org.apache.activemq.command.Response;
-import org.apache.activemq.command.SessionId;
-import org.apache.activemq.command.SessionInfo;
-import org.apache.activemq.command.TransactionId;
+import org.apache.activemq.command.*;
import org.apache.activemq.management.JMSSessionStatsImpl;
import org.apache.activemq.management.StatsCapable;
import org.apache.activemq.management.StatsImpl;
@@ -1030,6 +1010,9 @@
*/
public Queue createQueue(String queueName) throws JMSException {
checkClosed();
+ if (queueName.startsWith(ActiveMQDestination.TEMP_DESTINATION_NAME_PREFIX)) {
+ return new ActiveMQTempQueue(queueName);
+ }
return new ActiveMQQueue(queueName);
}
@@ -1057,6 +1040,9 @@
*/
public Topic createTopic(String topicName) throws JMSException {
checkClosed();
+ if (topicName.startsWith(ActiveMQDestination.TEMP_DESTINATION_NAME_PREFIX)) {
+ return new ActiveMQTempTopic(topicName);
+ }
return new ActiveMQTopic(topicName);
}
Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQDestination.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQDestination.java?view=diff&rev=546476&r1=546475&r2=546476
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQDestination.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQDestination.java Tue Jun 12 06:24:33 2007
@@ -59,7 +59,9 @@
public static final String TOPIC_QUALIFIED_PREFIX = "topic://";
public static final String TEMP_QUEUE_QUALIFED_PREFIX= "temp-queue://";
public static final String TEMP_TOPIC_QUALIFED_PREFIX = "temp-topic://";
-
+
+ public static final String TEMP_DESTINATION_NAME_PREFIX = "ID:";
+
protected String physicalName;
transient protected ActiveMQDestination[] compositeDestinations;
Added: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/EmbeddedBrokerAndConnectionTestSupport.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/EmbeddedBrokerAndConnectionTestSupport.java?view=auto&rev=546476
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/EmbeddedBrokerAndConnectionTestSupport.java (added)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/EmbeddedBrokerAndConnectionTestSupport.java Tue Jun 12 06:24:33 2007
@@ -0,0 +1,45 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq;
+
+import javax.jms.Connection;
+
+/**
+ * A base class for a test case which creates an embedded broker and uses a connection and session
+ *
+ * @version $Revision: 1.1 $
+ */
+public abstract class EmbeddedBrokerAndConnectionTestSupport extends EmbeddedBrokerTestSupport {
+ protected Connection connection;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ connection = createConnection();
+ connection.start();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ if (connection != null) {
+ connection.close();
+ }
+ super.tearDown();
+ }
+}
Propchange: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/EmbeddedBrokerAndConnectionTestSupport.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/test/TemporaryDestinationToFromNameTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/test/TemporaryDestinationToFromNameTest.java?view=auto&rev=546476
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/test/TemporaryDestinationToFromNameTest.java (added)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/test/TemporaryDestinationToFromNameTest.java Tue Jun 12 06:24:33 2007
@@ -0,0 +1,53 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.test;
+
+import org.apache.activemq.EmbeddedBrokerAndConnectionTestSupport;
+
+import javax.jms.Queue;
+import javax.jms.Session;
+import javax.jms.Topic;
+
+/**
+ * @version $Revision: 1.1 $
+ */
+public class TemporaryDestinationToFromNameTest extends EmbeddedBrokerAndConnectionTestSupport {
+ public void testCreateTemporaryQueueThenCreateAQueueFromItsName() throws Exception {
+ Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+ Queue tempQueue = session.createTemporaryQueue();
+ String name = tempQueue.getQueueName();
+ log.info("Created queue named: " + name);
+
+ Queue createdQueue = session.createQueue(name);
+
+ assertEquals("created queue not equal to temporary queue", tempQueue, createdQueue);
+ }
+
+ public void testCreateTemporaryTopicThenCreateATopicFromItsName() throws Exception {
+ Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+ Topic tempTopic = session.createTemporaryTopic();
+ String name = tempTopic.getTopicName();
+ log.info("Created topic named: " + name);
+
+ Topic createdTopic = session.createTopic(name);
+
+ assertEquals("created topic not equal to temporary topic", tempTopic, createdTopic);
+ }
+}
Propchange: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/test/TemporaryDestinationToFromNameTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/CreateLotsOfTemporaryQueuesTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/CreateLotsOfTemporaryQueuesTest.java?view=diff&rev=546476&r1=546475&r2=546476
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/CreateLotsOfTemporaryQueuesTest.java (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/CreateLotsOfTemporaryQueuesTest.java Tue Jun 12 06:24:33 2007
@@ -18,6 +18,7 @@
package org.apache.activemq.usecases;
import org.apache.activemq.EmbeddedBrokerTestSupport;
+import org.apache.activemq.EmbeddedBrokerAndConnectionTestSupport;
import javax.jms.Connection;
import javax.jms.Session;
@@ -31,7 +32,7 @@
*
* @version $Revision: 1.1 $
*/
-public class CreateLotsOfTemporaryQueuesTest extends EmbeddedBrokerTestSupport {
+public class CreateLotsOfTemporaryQueuesTest extends EmbeddedBrokerAndConnectionTestSupport {
private static int numberToCreate = 500;
private static long sleep = 20;
@@ -49,8 +50,6 @@
public void testCreateLotsOfTemporaryQueues() throws Exception {
log.info("Creating " + numberToCreate + " temporary queue(s)");
- Connection connection = createConnection();
- connection.start();
Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
for (int i = 0; i < numberToCreate; i++) {
if (i % 1000 == 0) {
@@ -61,7 +60,6 @@
Thread.sleep(sleep );
}
log.info("Created " + numberToCreate + " temporary queue(s)");
- connection.close();
}
public static void configure(String[] args) {
Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/NewConsumerCreatesDestinationTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/NewConsumerCreatesDestinationTest.java?view=diff&rev=546476&r1=546475&r2=546476
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/NewConsumerCreatesDestinationTest.java (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/NewConsumerCreatesDestinationTest.java Tue Jun 12 06:24:33 2007
@@ -17,6 +17,7 @@
package org.apache.activemq.usecases;
import org.apache.activemq.EmbeddedBrokerTestSupport;
+import org.apache.activemq.EmbeddedBrokerAndConnectionTestSupport;
import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.command.ActiveMQQueue;
@@ -30,13 +31,11 @@
*
* @version $Revision: $
*/
-public class NewConsumerCreatesDestinationTest extends EmbeddedBrokerTestSupport {
+public class NewConsumerCreatesDestinationTest extends EmbeddedBrokerAndConnectionTestSupport {
- private Connection connection;
private ActiveMQQueue wildcard;
public void testNewConsumerCausesNewDestinationToBeAutoCreated() throws Exception {
- connection = createConnection();
// lets create a wildcard thats kinda like those used by Virtual Topics
String wildcardText = "org.*" + getDestinationString().substring("org.apache".length());
@@ -53,13 +52,6 @@
assertDestinationCreated(destination, true);
assertDestinationCreated(wildcard, true);
- }
-
- protected void tearDown() throws Exception {
- if (connection != null) {
- connection.close();
- }
- super.tearDown();
}
protected void assertDestinationCreated(Destination destination, boolean expected) throws Exception {