You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2017/02/23 17:59:34 UTC
[1/2] activemq-artemis git commit: ARTEMIS-970 handle indeterminate
JMS destination
Repository: activemq-artemis
Updated Branches:
refs/heads/master 629aad19d -> f6ed811c1
ARTEMIS-970 handle indeterminate JMS destination
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/01465035
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/01465035
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/01465035
Branch: refs/heads/master
Commit: 01465035c0dc58c5b5c64b7573462bcf6804a048
Parents: 629aad1
Author: Justin Bertram <jb...@apache.org>
Authored: Wed Feb 22 08:53:09 2017 -0600
Committer: Clebert Suconic <cl...@apache.org>
Committed: Thu Feb 23 12:55:27 2017 -0500
----------------------------------------------------------------------
.../artemis/cli/commands/messages/Browse.java | 2 +-
.../artemis/cli/commands/messages/Consumer.java | 2 +-
.../artemis/cli/commands/messages/Producer.java | 2 +-
.../apache/activemq/cli/test/ArtemisTest.java | 2 +-
.../artemis/jms/client/ActiveMQDestination.java | 121 +++++++++++++------
.../artemis/jms/client/ActiveMQQueue.java | 8 +-
.../artemis/jms/client/ActiveMQTopic.java | 4 +-
.../artemis/junit/EmbeddedJMSResource.java | 8 +-
...MSResourceMultipleFileConfigurationTest.java | 2 +-
...dJMSResourceSingleFileConfigurationTest.java | 2 +-
.../junit/EmbeddedJMSResourceTopicTest.java | 2 +-
.../amqp/converter/jms/ServerDestination.java | 2 +-
.../crossprotocol/AMQPToJMSCore.java | 111 +++++++++++++++++
.../tests/unit/jms/ActiveMQDestinationTest.java | 9 +-
14 files changed, 214 insertions(+), 63 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/01465035/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Browse.java
----------------------------------------------------------------------
diff --git a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Browse.java b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Browse.java
index 936fba9..66336b3 100644
--- a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Browse.java
+++ b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Browse.java
@@ -42,7 +42,7 @@ public class Browse extends DestAbstract {
ActiveMQConnectionFactory factory = createConnectionFactory();
- Destination dest = ActiveMQDestination.createDestination(this.destination, ActiveMQDestination.QUEUE_TYPE);
+ Destination dest = ActiveMQDestination.createDestination(this.destination, ActiveMQDestination.TYPE.QUEUE);
try (Connection connection = factory.createConnection()) {
ConsumerThread[] threadsArray = new ConsumerThread[threads];
for (int i = 0; i < threads; i++) {
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/01465035/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Consumer.java
----------------------------------------------------------------------
diff --git a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Consumer.java b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Consumer.java
index ef5aefd..1af9fac 100644
--- a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Consumer.java
+++ b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Consumer.java
@@ -51,7 +51,7 @@ public class Consumer extends DestAbstract {
ActiveMQConnectionFactory factory = createConnectionFactory();
- Destination dest = ActiveMQDestination.createDestination(this.destination, ActiveMQDestination.QUEUE_TYPE);
+ Destination dest = ActiveMQDestination.createDestination(this.destination, ActiveMQDestination.TYPE.QUEUE);
try (Connection connection = factory.createConnection()) {
ConsumerThread[] threadsArray = new ConsumerThread[threads];
for (int i = 0; i < threads; i++) {
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/01465035/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Producer.java
----------------------------------------------------------------------
diff --git a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Producer.java b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Producer.java
index 8f76d31..4ec68ca 100644
--- a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Producer.java
+++ b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Producer.java
@@ -52,7 +52,7 @@ public class Producer extends DestAbstract {
ActiveMQConnectionFactory factory = createConnectionFactory();
- Destination dest = ActiveMQDestination.createDestination(this.destination, ActiveMQDestination.QUEUE_TYPE);
+ Destination dest = ActiveMQDestination.createDestination(this.destination, ActiveMQDestination.TYPE.QUEUE);
try (Connection connection = factory.createConnection()) {
ProducerThread[] threadsArray = new ProducerThread[threads];
for (int i = 0; i < threads; i++) {
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/01465035/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java
----------------------------------------------------------------------
diff --git a/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java b/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java
index c9f496e..72e2ca3 100644
--- a/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java
+++ b/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java
@@ -571,7 +571,7 @@ public class ArtemisTest extends CliTestBase {
ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = cf.createConnection("admin", "admin");
Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
- MessageProducer producer = session.createProducer(ActiveMQDestination.createDestination("queue://TEST", ActiveMQDestination.QUEUE_TYPE));
+ MessageProducer producer = session.createProducer(ActiveMQDestination.createDestination("queue://TEST", ActiveMQDestination.TYPE.QUEUE));
TextMessage message = session.createTextMessage("Banana");
message.setStringProperty("fruit", "banana");
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/01465035/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQDestination.java
----------------------------------------------------------------------
diff --git a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQDestination.java b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQDestination.java
index 37b0a98..297efe8 100644
--- a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQDestination.java
+++ b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQDestination.java
@@ -38,28 +38,12 @@ public class ActiveMQDestination implements Destination, Serializable, Reference
// Static --------------------------------------------------------
- /**
- *
- */
private static final long serialVersionUID = 5027962425462382883L;
-// public static final String JMS_QUEUE_ADDRESS_PREFIX = "jms.queue.";
-
-// public static final String JMS_TEMP_QUEUE_ADDRESS_PREFIX = "jms.tempqueue.";
-
-// public static final String JMS_TOPIC_ADDRESS_PREFIX = "jms.topic.";
-
-// public static final String JMS_TEMP_TOPIC_ADDRESS_PREFIX = "jms.temptopic.";
-
public static final String QUEUE_QUALIFIED_PREFIX = "queue://";
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 byte QUEUE_TYPE = 0x01;
- public static final byte TOPIC_TYPE = 0x02;
- public static final byte TEMP_MASK = 0x04;
- public static final byte TEMP_TOPIC_TYPE = TOPIC_TYPE | TEMP_MASK;
- public static final byte TEMP_QUEUE_TYPE = QUEUE_TYPE | TEMP_MASK;
private static final char SEPARATOR = '.';
@@ -73,7 +57,7 @@ public class ActiveMQDestination implements Destination, Serializable, Reference
/**
* Static helper method for working with destinations.
*/
- public static ActiveMQDestination createDestination(String name, byte defaultType) {
+ public static ActiveMQDestination createDestination(String name, TYPE defaultType) {
if (name.startsWith(QUEUE_QUALIFIED_PREFIX)) {
return new ActiveMQQueue(name.substring(QUEUE_QUALIFIED_PREFIX.length()));
} else if (name.startsWith(TOPIC_QUALIFIED_PREFIX)) {
@@ -85,14 +69,16 @@ public class ActiveMQDestination implements Destination, Serializable, Reference
}
switch (defaultType) {
- case QUEUE_TYPE:
+ case QUEUE:
return new ActiveMQQueue(name);
- case TOPIC_TYPE:
+ case TOPIC:
return new ActiveMQTopic(name);
- case TEMP_QUEUE_TYPE:
+ case TEMP_QUEUE:
return new ActiveMQQueue(name, true);
- case TEMP_TOPIC_TYPE:
+ case TEMP_TOPIC:
return new ActiveMQTopic(name, true);
+ case DESTINATION:
+ return new ActiveMQDestination(name, name, TYPE.DESTINATION, null);
default:
throw new IllegalArgumentException("Invalid default destination type: " + defaultType);
}
@@ -101,22 +87,18 @@ public class ActiveMQDestination implements Destination, Serializable, Reference
public static Destination fromPrefixedName(final String address) {
if (address.startsWith(ActiveMQDestination.QUEUE_QUALIFIED_PREFIX)) {
String name = address.substring(ActiveMQDestination.QUEUE_QUALIFIED_PREFIX.length());
-
return createQueue(name);
} else if (address.startsWith(ActiveMQDestination.TOPIC_QUALIFIED_PREFIX)) {
String name = address.substring(ActiveMQDestination.TOPIC_QUALIFIED_PREFIX.length());
-
return createTopic(name);
} else if (address.startsWith(ActiveMQDestination.TEMP_QUEUE_QUALIFED_PREFIX)) {
String name = address.substring(ActiveMQDestination.TEMP_QUEUE_QUALIFED_PREFIX.length());
-
return new ActiveMQTemporaryQueue(name, name, null);
} else if (address.startsWith(ActiveMQDestination.TEMP_TOPIC_QUALIFED_PREFIX)) {
String name = address.substring(ActiveMQDestination.TEMP_TOPIC_QUALIFED_PREFIX.length());
-
return new ActiveMQTemporaryTopic(name, name, null);
} else {
- throw new JMSRuntimeException("Invalid address " + address);
+ return new ActiveMQDestination(address, address, TYPE.DESTINATION, null);
}
}
@@ -222,7 +204,7 @@ public class ActiveMQDestination implements Destination, Serializable, Reference
}
public static ActiveMQTemporaryQueue createTemporaryQueue(final String name) {
- return createTemporaryQueue(/*TEMP_QUEUE_QUALIFED_PREFIX + */name, null);
+ return createTemporaryQueue(name, null);
}
public static ActiveMQTemporaryQueue createTemporaryQueue(final ActiveMQSession session) {
@@ -238,7 +220,7 @@ public class ActiveMQDestination implements Destination, Serializable, Reference
}
public static ActiveMQTemporaryTopic createTemporaryTopic(String name, final ActiveMQSession session) {
- return new ActiveMQTemporaryTopic(/*TEMP_TOPIC_QUALIFED_PREFIX + */name, name, session);
+ return new ActiveMQTemporaryTopic(name, name, session);
}
public static ActiveMQTemporaryTopic createTemporaryTopic(String name) {
@@ -262,9 +244,7 @@ public class ActiveMQDestination implements Destination, Serializable, Reference
*/
private final SimpleString simpleAddress;
- private final boolean temporary;
-
- private final boolean queue;
+ private final TYPE type;
private final transient ActiveMQSession session;
@@ -272,8 +252,7 @@ public class ActiveMQDestination implements Destination, Serializable, Reference
protected ActiveMQDestination(final String address,
final String name,
- final boolean temporary,
- final boolean queue,
+ final TYPE type,
final ActiveMQSession session) {
this.address = address;
@@ -281,9 +260,7 @@ public class ActiveMQDestination implements Destination, Serializable, Reference
simpleAddress = new SimpleString(address);
- this.temporary = temporary;
-
- this.queue = queue;
+ this.type = type;
this.session = session;
}
@@ -301,7 +278,7 @@ public class ActiveMQDestination implements Destination, Serializable, Reference
// Temporary queues will be deleted when the connection is closed.. nothing to be done then!
return;
}
- if (queue) {
+ if (isQueue()) {
session.deleteTemporaryQueue(this);
} else {
session.deleteTemporaryTopic(this);
@@ -310,7 +287,7 @@ public class ActiveMQDestination implements Destination, Serializable, Reference
}
public boolean isQueue() {
- return queue;
+ return TYPE.isQueue(type);
}
// Public --------------------------------------------------------
@@ -328,7 +305,11 @@ public class ActiveMQDestination implements Destination, Serializable, Reference
}
public boolean isTemporary() {
- return temporary;
+ return TYPE.isTemporary(type);
+ }
+
+ public TYPE getType() {
+ return type;
}
@Override
@@ -358,4 +339,66 @@ public class ActiveMQDestination implements Destination, Serializable, Reference
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
+
+ public enum TYPE {
+ QUEUE,
+ TOPIC,
+ TEMP_QUEUE,
+ TEMP_TOPIC,
+ DESTINATION; // unknown
+
+ public byte getType() {
+ switch (this) {
+ case QUEUE:
+ return 0;
+ case TOPIC:
+ return 1;
+ case TEMP_QUEUE:
+ return 2;
+ case TEMP_TOPIC:
+ return 3;
+ case DESTINATION:
+ return 4;
+ default:
+ return -1;
+ }
+ }
+
+ public static TYPE getType(byte type) {
+ switch (type) {
+ case 0:
+ return QUEUE;
+ case 1:
+ return TOPIC;
+ case 2:
+ return TEMP_QUEUE;
+ case 3:
+ return TEMP_TOPIC;
+ case 4:
+ return DESTINATION;
+ default:
+ return null;
+ }
+ }
+
+ public static boolean isQueue(TYPE type) {
+ boolean result = false;
+
+ if (type.equals(QUEUE) || type.equals(TEMP_QUEUE)) {
+ result = true;
+ }
+
+ return result;
+ }
+
+ public static boolean isTemporary(TYPE type) {
+ boolean result = false;
+
+ if (type.equals(TEMP_TOPIC) || type.equals(TEMP_QUEUE)) {
+ result = true;
+ }
+
+ return result;
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/01465035/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQQueue.java
----------------------------------------------------------------------
diff --git a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQQueue.java b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQQueue.java
index a6d047a..2f9a47b 100644
--- a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQQueue.java
+++ b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQQueue.java
@@ -41,11 +41,11 @@ public class ActiveMQQueue extends ActiveMQDestination implements Queue {
// Constructors --------------------------------------------------
public ActiveMQQueue(final String name) {
- super(name, name, false, true, null);
+ super(name, name, TYPE.QUEUE, null);
}
public ActiveMQQueue(final String name, boolean temporary) {
- super(name, name, temporary, true, null);
+ super(name, name, temporary ? TYPE.TEMP_QUEUE : TYPE.QUEUE, null);
}
/**
@@ -55,11 +55,11 @@ public class ActiveMQQueue extends ActiveMQDestination implements Queue {
* @param session
*/
public ActiveMQQueue(String address, String name, boolean temporary, ActiveMQSession session) {
- super(address, name, temporary, true, session);
+ super(address, name, temporary ? TYPE.TEMP_QUEUE : TYPE.QUEUE, session);
}
public ActiveMQQueue(final String address, final String name) {
- super(address, name, false, true, null);
+ super(address, name, TYPE.QUEUE, null);
}
// Queue implementation ------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/01465035/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTopic.java
----------------------------------------------------------------------
diff --git a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTopic.java b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTopic.java
index 941b440..94bdd25 100644
--- a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTopic.java
+++ b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQTopic.java
@@ -44,7 +44,7 @@ public class ActiveMQTopic extends ActiveMQDestination implements Topic {
}
public ActiveMQTopic(final String name, boolean temporary) {
- super(name, name, temporary, false, null);
+ super(name, name, TYPE.TOPIC, null);
}
/**
@@ -54,7 +54,7 @@ public class ActiveMQTopic extends ActiveMQDestination implements Topic {
* @param session
*/
protected ActiveMQTopic(String address, String name, boolean temporary, ActiveMQSession session) {
- super(address, name, temporary, false, session);
+ super(address, name, temporary ? TYPE.TEMP_TOPIC : TYPE.TOPIC, session);
}
// Topic implementation ------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/01465035/artemis-junit/src/main/java/org/apache/activemq/artemis/junit/EmbeddedJMSResource.java
----------------------------------------------------------------------
diff --git a/artemis-junit/src/main/java/org/apache/activemq/artemis/junit/EmbeddedJMSResource.java b/artemis-junit/src/main/java/org/apache/activemq/artemis/junit/EmbeddedJMSResource.java
index c7ef8f5..caaa12c 100644
--- a/artemis-junit/src/main/java/org/apache/activemq/artemis/junit/EmbeddedJMSResource.java
+++ b/artemis-junit/src/main/java/org/apache/activemq/artemis/junit/EmbeddedJMSResource.java
@@ -333,7 +333,7 @@ public class EmbeddedJMSResource extends ExternalResource {
*/
public Queue getDestinationQueue(String destinationName) {
Queue queue = null;
- ActiveMQDestination destination = ActiveMQDestination.createDestination(destinationName, ActiveMQDestination.QUEUE_TYPE);
+ ActiveMQDestination destination = ActiveMQDestination.createDestination(destinationName, ActiveMQDestination.TYPE.QUEUE);
String address = destination.getAddress();
String name = destination.getName();
if (destination.isQueue()) {
@@ -368,7 +368,7 @@ public class EmbeddedJMSResource extends ExternalResource {
*/
public List<Queue> getTopicQueues(String topicName) {
List<Queue> queues = new LinkedList<>();
- ActiveMQDestination destination = ActiveMQDestination.createDestination(topicName, ActiveMQDestination.TOPIC_TYPE);
+ ActiveMQDestination destination = ActiveMQDestination.createDestination(topicName, ActiveMQDestination.TYPE.TOPIC);
if (!destination.isQueue()) {
BindingQueryResult bindingQueryResult = null;
try {
@@ -405,7 +405,7 @@ public class EmbeddedJMSResource extends ExternalResource {
*/
public long getMessageCount(String destinationName) {
long count = 0;
- ActiveMQDestination destination = ActiveMQDestination.createDestination(destinationName, ActiveMQDestination.QUEUE_TYPE);
+ ActiveMQDestination destination = ActiveMQDestination.createDestination(destinationName, ActiveMQDestination.TYPE.QUEUE);
if (destination.isQueue()) {
Queue queue = getDestinationQueue(destinationName);
if (queue == null) {
@@ -529,7 +529,7 @@ public class EmbeddedJMSResource extends ExternalResource {
} else if (message == null) {
throw new IllegalArgumentException("sendMessage failure - a Message is required");
}
- ActiveMQDestination destination = ActiveMQDestination.createDestination(destinationName, ActiveMQDestination.QUEUE_TYPE);
+ ActiveMQDestination destination = ActiveMQDestination.createDestination(destinationName, ActiveMQDestination.TYPE.QUEUE);
getInternalClient().pushMessage(destination, message);
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/01465035/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceMultipleFileConfigurationTest.java
----------------------------------------------------------------------
diff --git a/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceMultipleFileConfigurationTest.java b/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceMultipleFileConfigurationTest.java
index 7e3b313..868f2e4 100644
--- a/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceMultipleFileConfigurationTest.java
+++ b/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceMultipleFileConfigurationTest.java
@@ -58,7 +58,7 @@ public class EmbeddedJMSResourceMultipleFileConfigurationTest {
connectionFactory = new ActiveMQConnectionFactory(jmsServer.getVmURL());
connection = connectionFactory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
- consumer = (ActiveMQMessageConsumer) session.createConsumer(ActiveMQDestination.createDestination(TEST_TOPIC, ActiveMQDestination.TOPIC_TYPE));
+ consumer = (ActiveMQMessageConsumer) session.createConsumer(ActiveMQDestination.createDestination(TEST_TOPIC, ActiveMQDestination.TYPE.TOPIC));
connection.start();
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/01465035/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceSingleFileConfigurationTest.java
----------------------------------------------------------------------
diff --git a/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceSingleFileConfigurationTest.java b/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceSingleFileConfigurationTest.java
index 9651a7a..3cf0cb5 100644
--- a/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceSingleFileConfigurationTest.java
+++ b/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceSingleFileConfigurationTest.java
@@ -58,7 +58,7 @@ public class EmbeddedJMSResourceSingleFileConfigurationTest {
connectionFactory = new ActiveMQConnectionFactory(jmsServer.getVmURL());
connection = connectionFactory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
- consumer = (ActiveMQMessageConsumer) session.createConsumer(ActiveMQDestination.createDestination(TEST_TOPIC, ActiveMQDestination.TOPIC_TYPE));
+ consumer = (ActiveMQMessageConsumer) session.createConsumer(ActiveMQDestination.createDestination(TEST_TOPIC, ActiveMQDestination.TYPE.TOPIC));
connection.start();
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/01465035/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceTopicTest.java
----------------------------------------------------------------------
diff --git a/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceTopicTest.java b/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceTopicTest.java
index 0bccba1..ebe0dc4 100644
--- a/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceTopicTest.java
+++ b/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceTopicTest.java
@@ -73,7 +73,7 @@ public class EmbeddedJMSResourceTopicTest {
connectionFactory = new ActiveMQConnectionFactory(jmsServer.getVmURL());
connection = connectionFactory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
- consumer = session.createConsumer(ActiveMQDestination.createDestination(TEST_DESTINATION_NAME, ActiveMQDestination.TOPIC_TYPE));
+ consumer = session.createConsumer(ActiveMQDestination.createDestination(TEST_DESTINATION_NAME, ActiveMQDestination.TYPE.TOPIC));
connection.start();
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/01465035/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/converter/jms/ServerDestination.java
----------------------------------------------------------------------
diff --git a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/converter/jms/ServerDestination.java b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/converter/jms/ServerDestination.java
index 8e82b89..cee9ee5 100644
--- a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/converter/jms/ServerDestination.java
+++ b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/converter/jms/ServerDestination.java
@@ -28,7 +28,7 @@ import org.apache.activemq.artemis.jms.client.ActiveMQDestination;
public class ServerDestination extends ActiveMQDestination implements Queue {
public ServerDestination(String name) {
- super(name, name, false, false, null);
+ super(name, name, TYPE.DESTINATION, null);
}
@Override
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/01465035/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToJMSCore.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToJMSCore.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToJMSCore.java
new file mode 100644
index 0000000..6335c69
--- /dev/null
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToJMSCore.java
@@ -0,0 +1,111 @@
+/**
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.artemis.tests.integration.crossprotocol;
+
+import javax.jms.Connection;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.Session;
+import java.net.URI;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.activemq.artemis.api.core.RoutingType;
+import org.apache.activemq.artemis.api.core.SimpleString;
+import org.apache.activemq.artemis.api.jms.ActiveMQJMSClient;
+import org.apache.activemq.artemis.core.config.Configuration;
+import org.apache.activemq.artemis.core.server.ActiveMQServer;
+import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
+import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
+import org.apache.activemq.artemis.jms.client.ActiveMQDestination;
+import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
+import org.apache.activemq.transport.amqp.client.AmqpClient;
+import org.apache.activemq.transport.amqp.client.AmqpConnection;
+import org.apache.activemq.transport.amqp.client.AmqpMessage;
+import org.apache.activemq.transport.amqp.client.AmqpSender;
+import org.apache.activemq.transport.amqp.client.AmqpSession;
+import org.apache.qpid.proton.amqp.UnsignedInteger;
+import org.apache.qpid.proton.amqp.messaging.Header;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class AMQPToJMSCore extends ActiveMQTestBase {
+
+ private ActiveMQServer server;
+ protected String queueName = "amqTestQueue1";
+ private SimpleString coreQueue;
+
+ @Override
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ server = createServer(true, true);
+ server.start();
+ server.waitForActivation(10, TimeUnit.SECONDS);
+
+ Configuration serverConfig = server.getConfiguration();
+ serverConfig.getAddressesSettings().put("#", new AddressSettings().setAutoCreateQueues(false)
+ .setAutoCreateAddresses(false)
+ .setDeadLetterAddress(new SimpleString("ActiveMQ.DLQ")));
+ serverConfig.setSecurityEnabled(false);
+ coreQueue = new SimpleString(queueName);
+ server.createQueue(coreQueue, RoutingType.ANYCAST, coreQueue, null, false, false);
+ }
+
+ @Override
+ @After
+ public void tearDown() throws Exception {
+ server.stop();
+ super.tearDown();
+ }
+
+ @Test
+ public void testMessageDestination() throws Exception {
+ System.out.println("foo");
+ AmqpClient client = new AmqpClient(new URI("tcp://127.0.0.1:61616"), null, null);
+ AmqpConnection amqpconnection = client.connect();
+ try {
+ AmqpSession session = amqpconnection.createSession();
+ AmqpSender sender = session.createSender(queueName);
+ AmqpMessage message = new AmqpMessage();
+ message.setMessageId("MessageID:" + 0);
+ // message.setApplicationProperty("_AMQ_ROUTING_TYPE", (byte) 1);
+ message.getWrappedMessage().setHeader(new Header());
+ message.getWrappedMessage().getHeader().setDeliveryCount(new UnsignedInteger(2));
+ sender.send(message);
+ } finally {
+ amqpconnection.close();
+ }
+ ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616");
+ Connection connection = null;
+ try {
+ connection = factory.createConnection();
+ Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ MessageConsumer consumer = session.createConsumer(ActiveMQJMSClient.createQueue(queueName));
+ connection.start();
+ Message message = consumer.receive(2000);
+ Assert.assertNotNull(message);
+ ActiveMQDestination jmsDestination = (ActiveMQDestination) message.getJMSDestination();
+ Assert.assertEquals(queueName, jmsDestination.getAddress());
+ } finally {
+ if (connection != null) {
+ connection.close();
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/01465035/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/jms/ActiveMQDestinationTest.java
----------------------------------------------------------------------
diff --git a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/jms/ActiveMQDestinationTest.java b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/jms/ActiveMQDestinationTest.java
index 5c66bc1..0e4ca36 100644
--- a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/jms/ActiveMQDestinationTest.java
+++ b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/jms/ActiveMQDestinationTest.java
@@ -16,7 +16,7 @@
*/
package org.apache.activemq.artemis.tests.unit.jms;
-import javax.jms.JMSRuntimeException;
+import javax.jms.Destination;
import javax.jms.Queue;
import javax.jms.Topic;
@@ -77,11 +77,8 @@ public class ActiveMQDestinationTest extends ActiveMQTestBase {
String invalidPrefix = "junk";
String destinationName = RandomUtil.randomString();
String address = invalidPrefix + destinationName;
- try {
- ActiveMQDestination.fromPrefixedName(address);
- Assert.fail("IllegalArgumentException");
- } catch (JMSRuntimeException e) {
- }
+ ActiveMQDestination destination = (ActiveMQDestination) ActiveMQDestination.fromPrefixedName(address);
+ Assert.assertTrue(destination instanceof Destination);
}
// Package protected ---------------------------------------------
[2/2] activemq-artemis git commit: This closes #1037
Posted by cl...@apache.org.
This closes #1037
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/f6ed811c
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/f6ed811c
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/f6ed811c
Branch: refs/heads/master
Commit: f6ed811c15786e4f76c90472a928646a3a916313
Parents: 629aad1 0146503
Author: Clebert Suconic <cl...@apache.org>
Authored: Thu Feb 23 12:55:28 2017 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Thu Feb 23 12:55:28 2017 -0500
----------------------------------------------------------------------
.../artemis/cli/commands/messages/Browse.java | 2 +-
.../artemis/cli/commands/messages/Consumer.java | 2 +-
.../artemis/cli/commands/messages/Producer.java | 2 +-
.../apache/activemq/cli/test/ArtemisTest.java | 2 +-
.../artemis/jms/client/ActiveMQDestination.java | 121 +++++++++++++------
.../artemis/jms/client/ActiveMQQueue.java | 8 +-
.../artemis/jms/client/ActiveMQTopic.java | 4 +-
.../artemis/junit/EmbeddedJMSResource.java | 8 +-
...MSResourceMultipleFileConfigurationTest.java | 2 +-
...dJMSResourceSingleFileConfigurationTest.java | 2 +-
.../junit/EmbeddedJMSResourceTopicTest.java | 2 +-
.../amqp/converter/jms/ServerDestination.java | 2 +-
.../crossprotocol/AMQPToJMSCore.java | 111 +++++++++++++++++
.../tests/unit/jms/ActiveMQDestinationTest.java | 9 +-
14 files changed, 214 insertions(+), 63 deletions(-)
----------------------------------------------------------------------