You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2015/01/13 17:02:34 UTC
[1/5] qpid-jms git commit: check temporary destinations have not been
deleted before sending
Repository: qpid-jms
Updated Branches:
refs/heads/master 7335e5547 -> ec5c3e754
check temporary destinations have not been deleted before sending
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/89c79425
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/89c79425
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/89c79425
Branch: refs/heads/master
Commit: 89c7942595c1d58692683e9d3bfaf0a4afb37497
Parents: e1c1de7
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Jan 13 13:24:16 2015 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Jan 13 16:02:08 2015 +0000
----------------------------------------------------------------------
.../main/java/org/apache/qpid/jms/JmsConnection.java | 4 ++++
.../src/main/java/org/apache/qpid/jms/JmsSession.java | 5 +++++
.../org/apache/qpid/jms/JmsTemporaryDestination.java | 14 ++++++++++++++
3 files changed, 23 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/89c79425/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
index 51c238d..f926916 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
@@ -596,6 +596,10 @@ public class JmsConnection implements Connection, TopicConnection, QueueConnecti
}
}
+ protected boolean isTemporaryDestinationDeleted(JmsDestination destination) {
+ return !tempDestinations.containsKey(destination);
+ }
+
protected void checkClosed() throws IllegalStateException {
if (this.closed.get()) {
throw new IllegalStateException("The Connection is closed");
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/89c79425/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java
index 185dd36..e98f59b 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java
@@ -622,6 +622,11 @@ public class JmsSession implements Session, QueueSession, TopicSession, JmsMessa
protected void send(JmsMessageProducer producer, Destination dest, Message msg, int deliveryMode, int priority, long timeToLive, boolean disableMsgId, boolean disableTimestamp) throws JMSException {
JmsDestination destination = JmsMessageTransformation.transformDestination(connection, dest);
+
+ if(destination.isTemporary() && ((JmsTemporaryDestination) destination).isDeleted()) {
+ throw new IllegalStateException("Temporary destination has been deleted");
+ }
+
send(producer, destination, msg, deliveryMode, priority, timeToLive, disableMsgId, disableTimestamp);
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/89c79425/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryDestination.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryDestination.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryDestination.java
index 9e3234d..5afb030 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryDestination.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryDestination.java
@@ -26,6 +26,8 @@ import org.apache.qpid.jms.meta.JmsResourceVistor;
*/
public abstract class JmsTemporaryDestination extends JmsDestination implements JmsResource {
+ private boolean deleted;
+
public JmsTemporaryDestination() {
this(null, false);
}
@@ -52,6 +54,18 @@ public abstract class JmsTemporaryDestination extends JmsDestination implements
if (connection != null) {
connection.deleteDestination(this);
}
+
+ deleted = true;
+ }
+
+ protected boolean isDeleted() throws JMSException {
+ boolean result = deleted;
+
+ if (!result && connection != null) {
+ result = connection.isTemporaryDestinationDeleted(this);
+ }
+
+ return result;
}
@Override
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[2/5] qpid-jms git commit: prevent attemps to consume from temporary
destinations created by another connection
Posted by ro...@apache.org.
prevent attemps to consume from temporary destinations created by another connection
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/e1c1de74
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/e1c1de74
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/e1c1de74
Branch: refs/heads/master
Commit: e1c1de74e0180518ffc51da68baf8baca690f331
Parents: 184acd2
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Jan 13 13:06:48 2015 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Jan 13 16:02:08 2015 +0000
----------------------------------------------------------------------
.../src/main/java/org/apache/qpid/jms/JmsConnection.java | 9 +++++++++
.../main/java/org/apache/qpid/jms/JmsMessageConsumer.java | 4 ++++
2 files changed, 13 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/e1c1de74/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
index b2f5c76..51c238d 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
@@ -37,6 +37,7 @@ import javax.jms.ConnectionMetaData;
import javax.jms.Destination;
import javax.jms.ExceptionListener;
import javax.jms.IllegalStateException;
+import javax.jms.InvalidDestinationException;
import javax.jms.JMSException;
import javax.jms.Queue;
import javax.jms.QueueConnection;
@@ -544,6 +545,7 @@ public class JmsConnection implements Connection, TopicConnection, QueueConnecti
JmsTemporaryQueue queue = new JmsTemporaryQueue(destinationName);
queue = createResource(queue);
tempDestinations.put(queue, queue);
+ queue.setConnection(this);
return queue;
}
@@ -555,6 +557,7 @@ public class JmsConnection implements Connection, TopicConnection, QueueConnecti
JmsTemporaryTopic topic = new JmsTemporaryTopic(destinationName);
topic = createResource(topic);
tempDestinations.put(topic, topic);
+ topic.setConnection(this);
return topic;
}
@@ -587,6 +590,12 @@ public class JmsConnection implements Connection, TopicConnection, QueueConnecti
}
}
+ protected void checkConsumeFromTemporaryDestination(JmsTemporaryDestination destination) throws JMSException {
+ if (!this.equals(destination.getConnection())) {
+ throw new InvalidDestinationException("Can't consume from a temporary destination created using another connection");
+ }
+ }
+
protected void checkClosed() throws IllegalStateException {
if (this.closed.get()) {
throw new IllegalStateException("The Connection is closed");
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/e1c1de74/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java
index d56dfe6..b88de22 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java
@@ -91,6 +91,10 @@ public class JmsMessageConsumer implements MessageConsumer, JmsMessageAvailableC
this.connection = session.getConnection();
this.acknowledgementMode = session.acknowledgementMode();
+ if(destination.isTemporary()) {
+ connection.checkConsumeFromTemporaryDestination((JmsTemporaryDestination) destination);
+ }
+
if (connection.isMessagePrioritySupported()) {
this.messageQueue = new PriorityMessageQueue();
} else {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[5/5] qpid-jms git commit: add more TemporaryQueue tests
Posted by ro...@apache.org.
add more TemporaryQueue tests
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/ec5c3e75
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/ec5c3e75
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/ec5c3e75
Branch: refs/heads/master
Commit: ec5c3e7540fcef13a1cfca65f8643edd61146bc5
Parents: 71cff45
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Jan 13 15:51:37 2015 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Jan 13 16:02:09 2015 +0000
----------------------------------------------------------------------
.../jms/destinations/JmsTemporaryQueueTest.java | 80 ++++++++++++++++++++
1 file changed, 80 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/ec5c3e75/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/destinations/JmsTemporaryQueueTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/destinations/JmsTemporaryQueueTest.java b/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/destinations/JmsTemporaryQueueTest.java
index 1eccaf2..8021ede 100644
--- a/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/destinations/JmsTemporaryQueueTest.java
+++ b/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/destinations/JmsTemporaryQueueTest.java
@@ -18,7 +18,14 @@ package org.apache.qpid.jms.destinations;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+import javax.jms.Connection;
+import javax.jms.IllegalStateException;
+import javax.jms.InvalidDestinationException;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TemporaryQueue;
@@ -46,4 +53,77 @@ public class JmsTemporaryQueueTest extends AmqpTestSupport {
assertEquals(1, brokerService.getAdminView().getTemporaryQueues().length);
}
+
+ @Test(timeout = 60000)
+ public void testConsumeFromTemporaryQueueCreatedOnAnotherConnection() throws Exception {
+ connection = createAmqpConnection();
+ connection.start();
+
+ Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ TemporaryQueue tempQueue = session.createTemporaryQueue();
+ session.createConsumer(tempQueue);
+
+ Connection connection2 = createAmqpConnection();
+ try {
+ Session session2 = connection2.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ try {
+ session2.createConsumer(tempQueue);
+ fail("should not be able to consumer from temporary queue from another connection");
+ } catch (InvalidDestinationException ide) {
+ // expected
+ }
+ } finally {
+ connection2.close();
+ }
+ }
+
+ @Test(timeout = 60000)
+ public void testCantSendToTemporaryQueueFromClosedConnection() throws Exception {
+ connection = createAmqpConnection();
+ connection.start();
+
+ Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ TemporaryQueue tempQueue = session.createTemporaryQueue();
+
+ Connection connection2 = createAmqpConnection();
+ try {
+ Session session2 = connection2.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Message msg = session2.createMessage();
+ MessageProducer producer = session2.createProducer(tempQueue);
+
+ // Close the original connection
+ connection.close();
+
+ try {
+ producer.send(msg);
+ fail("should not be able to send to temporary queue from closed connection");
+ } catch (IllegalStateException ide) {
+ // expected
+ }
+ } finally {
+ connection2.close();
+ }
+ }
+
+ @Test(timeout = 60000)
+ public void testCantDeleteTemporaryQueueWithConsumers() throws Exception {
+ connection = createAmqpConnection();
+ connection.start();
+
+ Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ TemporaryQueue tempQueue = session.createTemporaryQueue();
+ MessageConsumer consumer = session.createConsumer(tempQueue);
+
+ try {
+ tempQueue.delete();
+ fail("should not be able to delete temporary queue with active consumers");
+ } catch (IllegalStateException ide) {
+ // expected
+ }
+
+ consumer.close();
+
+ // Now it should be allowed
+ tempQueue.delete();
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[4/5] qpid-jms git commit: update delete handling,
dont wrap exceptions
Posted by ro...@apache.org.
update delete handling, dont wrap exceptions
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/71cff459
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/71cff459
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/71cff459
Branch: refs/heads/master
Commit: 71cff459dfeb1f83915dae45c854b753a02002e3
Parents: 89c7942
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Jan 13 13:28:44 2015 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Jan 13 16:02:09 2015 +0000
----------------------------------------------------------------------
.../src/main/java/org/apache/qpid/jms/JmsConnection.java | 2 +-
.../src/main/java/org/apache/qpid/jms/JmsTemporaryQueue.java | 8 ++------
.../src/main/java/org/apache/qpid/jms/JmsTemporaryTopic.java | 8 ++------
3 files changed, 5 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/71cff459/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
index f926916..c71e3bc 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
@@ -569,7 +569,7 @@ public class JmsConnection implements Connection, TopicConnection, QueueConnecti
for (JmsSession session : this.sessions) {
if (session.isDestinationInUse(destination)) {
- throw new JMSException("A consumer is consuming from the temporary destination");
+ throw new IllegalStateException("A consumer is consuming from the temporary destination");
}
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/71cff459/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryQueue.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryQueue.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryQueue.java
index 856794f..dcc5b02 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryQueue.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryQueue.java
@@ -43,12 +43,8 @@ public class JmsTemporaryQueue extends JmsTemporaryDestination implements Tempor
* @see javax.jms.TemporaryQueue#delete()
*/
@Override
- public void delete() {
- try {
- tryDelete();
- } catch (JMSException e) {
- throw new RuntimeException(e);
- }
+ public void delete() throws JMSException {
+ tryDelete();
}
/**
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/71cff459/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryTopic.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryTopic.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryTopic.java
index aeb39e2..0c5acef 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryTopic.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryTopic.java
@@ -43,12 +43,8 @@ public class JmsTemporaryTopic extends JmsTemporaryDestination implements Tempor
* @see javax.jms.TemporaryTopic#delete()
*/
@Override
- public void delete() {
- try {
- tryDelete();
- } catch (JMSException e) {
- throw new RuntimeException(e);
- }
+ public void delete() throws JMSException {
+ tryDelete();
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[3/5] qpid-jms git commit: add common parent for temporary
destination objects to simplify handling
Posted by ro...@apache.org.
add common parent for temporary destination objects to simplify handling
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/184acd20
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/184acd20
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/184acd20
Branch: refs/heads/master
Commit: 184acd20e3410cf9f17aa04a29143d064c92c8f0
Parents: 7335e55
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Jan 13 11:54:21 2015 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Jan 13 16:02:08 2015 +0000
----------------------------------------------------------------------
.../java/org/apache/qpid/jms/JmsConnection.java | 8 +--
.../org/apache/qpid/jms/JmsDestination.java | 31 +---------
.../org/apache/qpid/jms/JmsMessageConsumer.java | 2 +-
.../qpid/jms/JmsTemporaryDestination.java | 61 ++++++++++++++++++++
.../org/apache/qpid/jms/JmsTemporaryQueue.java | 4 +-
.../org/apache/qpid/jms/JmsTemporaryTopic.java | 6 +-
.../jms/meta/JmsDefaultResourceVisitor.java | 4 +-
.../apache/qpid/jms/meta/JmsResourceVistor.java | 4 +-
.../qpid/jms/provider/amqp/AmqpConnection.java | 3 +-
.../qpid/jms/provider/amqp/AmqpProvider.java | 6 +-
.../provider/amqp/AmqpTemporaryDestination.java | 5 +-
.../jms/meta/JmsDefaultResourceVisitorTest.java | 4 +-
12 files changed, 86 insertions(+), 52 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/184acd20/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
index 042712e..b2f5c76 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
@@ -106,8 +106,8 @@ public class JmsConnection implements Connection, TopicConnection, QueueConnecti
private Provider provider;
private final Set<JmsConnectionListener> connectionListeners =
new CopyOnWriteArraySet<JmsConnectionListener>();
- private final Map<JmsDestination, JmsDestination> tempDestinations =
- new ConcurrentHashMap<JmsDestination, JmsDestination>();
+ private final Map<JmsTemporaryDestination, JmsTemporaryDestination> tempDestinations =
+ new ConcurrentHashMap<JmsTemporaryDestination, JmsTemporaryDestination>();
private final AtomicLong sessionIdGenerator = new AtomicLong();
private final AtomicLong tempDestIdGenerator = new AtomicLong();
private final AtomicLong transactionIdGenerator = new AtomicLong();
@@ -558,7 +558,7 @@ public class JmsConnection implements Connection, TopicConnection, QueueConnecti
return topic;
}
- protected void deleteDestination(JmsDestination destination) throws JMSException {
+ protected void deleteDestination(JmsTemporaryDestination destination) throws JMSException {
checkClosedOrFailed();
connect();
@@ -1030,7 +1030,7 @@ public class JmsConnection implements Connection, TopicConnection, QueueConnecti
provider.create(connectionInfo, request);
request.sync();
- for (JmsDestination tempDestination : tempDestinations.values()) {
+ for (JmsTemporaryDestination tempDestination : tempDestinations.values()) {
createResource(tempDestination);
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/184acd20/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsDestination.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsDestination.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsDestination.java
index 4874402..4471267 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsDestination.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsDestination.java
@@ -22,16 +22,12 @@ import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.Map;
-import javax.jms.JMSException;
-
import org.apache.qpid.jms.jndi.JNDIStorable;
-import org.apache.qpid.jms.meta.JmsResource;
-import org.apache.qpid.jms.meta.JmsResourceVistor;
/**
* Jms Destination
*/
-public abstract class JmsDestination extends JNDIStorable implements JmsResource, Externalizable, javax.jms.Destination, Comparable<JmsDestination> {
+public abstract class JmsDestination extends JNDIStorable implements Externalizable, javax.jms.Destination, Comparable<JmsDestination> {
protected transient String name;
protected transient boolean topic;
@@ -178,29 +174,4 @@ public abstract class JmsDestination extends JNDIStorable implements JmsResource
this.topic = in.readBoolean();
this.temporary = in.readBoolean();
}
-
- void setConnection(JmsConnection connection) {
- this.connection = connection;
- }
-
- JmsConnection getConnection() {
- return this.connection;
- }
-
- /**
- * Attempts to delete the destination if there is an assigned Connection object.
- *
- * @throws JMSException if an error occurs or the provider doesn't support
- * delete of destinations from the client.
- */
- protected void tryDelete() throws JMSException {
- if (connection != null) {
- connection.deleteDestination(this);
- }
- }
-
- @Override
- public void visit(JmsResourceVistor visitor) throws Exception {
- visitor.processDestination(this);
- }
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/184acd20/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java
index bdc2e6c..d56dfe6 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsMessageConsumer.java
@@ -70,7 +70,7 @@ public class JmsMessageConsumer implements MessageConsumer, JmsMessageAvailableC
* @throws JMSException
*/
protected JmsMessageConsumer(JmsConsumerId consumerId, JmsSession session, JmsDestination destination,
- String selector, boolean noLocal) throws JMSException {
+ String selector, boolean noLocal) throws JMSException {
this(consumerId, session, destination, null, selector, noLocal);
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/184acd20/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryDestination.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryDestination.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryDestination.java
new file mode 100644
index 0000000..9e3234d
--- /dev/null
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryDestination.java
@@ -0,0 +1,61 @@
+/**
+ * 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.qpid.jms;
+
+import javax.jms.JMSException;
+
+import org.apache.qpid.jms.meta.JmsResource;
+import org.apache.qpid.jms.meta.JmsResourceVistor;
+
+/**
+ * Temporary Destination Object
+ */
+public abstract class JmsTemporaryDestination extends JmsDestination implements JmsResource {
+
+ public JmsTemporaryDestination() {
+ this(null, false);
+ }
+
+ public JmsTemporaryDestination(String name, boolean topic) {
+ super(name, topic, true);
+ }
+
+ void setConnection(JmsConnection connection) {
+ this.connection = connection;
+ }
+
+ JmsConnection getConnection() {
+ return this.connection;
+ }
+
+ /**
+ * Attempts to delete the destination if there is an assigned Connection object.
+ *
+ * @throws JMSException if an error occurs or the provider doesn't support
+ * delete of destinations from the client.
+ */
+ protected void tryDelete() throws JMSException {
+ if (connection != null) {
+ connection.deleteDestination(this);
+ }
+ }
+
+ @Override
+ public void visit(JmsResourceVistor visitor) throws Exception {
+ visitor.processDestination(this);
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/184acd20/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryQueue.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryQueue.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryQueue.java
index cff489b..856794f 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryQueue.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryQueue.java
@@ -22,14 +22,14 @@ import javax.jms.TemporaryQueue;
/**
* Temporary Queue Object
*/
-public class JmsTemporaryQueue extends JmsDestination implements TemporaryQueue {
+public class JmsTemporaryQueue extends JmsTemporaryDestination implements TemporaryQueue {
public JmsTemporaryQueue() {
this(null);
}
public JmsTemporaryQueue(String name) {
- super(name, false, true);
+ super(name, false);
}
@Override
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/184acd20/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryTopic.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryTopic.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryTopic.java
index 46dfed3..aeb39e2 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryTopic.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsTemporaryTopic.java
@@ -22,14 +22,14 @@ import javax.jms.TemporaryTopic;
/**
* Temporary Topic Object
*/
-public class JmsTemporaryTopic extends JmsDestination implements TemporaryTopic {
+public class JmsTemporaryTopic extends JmsTemporaryDestination implements TemporaryTopic {
public JmsTemporaryTopic() {
- super(null, true, true);
+ this(null);
}
public JmsTemporaryTopic(String name) {
- super(name, true, true);
+ super(name, true);
}
@Override
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/184acd20/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsDefaultResourceVisitor.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsDefaultResourceVisitor.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsDefaultResourceVisitor.java
index ba2d3dc..fb18abb 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsDefaultResourceVisitor.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsDefaultResourceVisitor.java
@@ -16,7 +16,7 @@
*/
package org.apache.qpid.jms.meta;
-import org.apache.qpid.jms.JmsDestination;
+import org.apache.qpid.jms.JmsTemporaryDestination;
/**
* Default Visitor implementation that does nothing in each method to
@@ -42,7 +42,7 @@ public class JmsDefaultResourceVisitor implements JmsResourceVistor{
}
@Override
- public void processDestination(JmsDestination destination) throws Exception {
+ public void processDestination(JmsTemporaryDestination destination) throws Exception {
}
@Override
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/184acd20/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsResourceVistor.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsResourceVistor.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsResourceVistor.java
index 1e963d9..cbf48c2 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsResourceVistor.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsResourceVistor.java
@@ -16,7 +16,7 @@
*/
package org.apache.qpid.jms.meta;
-import org.apache.qpid.jms.JmsDestination;
+import org.apache.qpid.jms.JmsTemporaryDestination;
/**
* Visitor interface to make processing JmsResources simpler.
@@ -33,6 +33,6 @@ public interface JmsResourceVistor {
void processTransactionInfo(JmsTransactionInfo transactionInfo) throws Exception;
- void processDestination(JmsDestination destination) throws Exception;
+ void processDestination(JmsTemporaryDestination destination) throws Exception;
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/184acd20/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConnection.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConnection.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConnection.java
index b03b58e..2f7bf05 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConnection.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConnection.java
@@ -25,6 +25,7 @@ import javax.jms.JMSSecurityException;
import javax.jms.Session;
import org.apache.qpid.jms.JmsDestination;
+import org.apache.qpid.jms.JmsTemporaryDestination;
import org.apache.qpid.jms.meta.JmsConnectionInfo;
import org.apache.qpid.jms.meta.JmsSessionId;
import org.apache.qpid.jms.meta.JmsSessionInfo;
@@ -92,7 +93,7 @@ public class AmqpConnection extends AmqpAbstractResource<JmsConnectionInfo, Conn
return session;
}
- public AmqpTemporaryDestination createTemporaryDestination(JmsDestination destination) {
+ public AmqpTemporaryDestination createTemporaryDestination(JmsTemporaryDestination destination) {
AmqpTemporaryDestination temporary = new AmqpTemporaryDestination(connectionSession, destination);
return temporary;
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/184acd20/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
index e68bc6e..d455842 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
@@ -26,7 +26,7 @@ import java.util.concurrent.TimeUnit;
import javax.jms.JMSException;
-import org.apache.qpid.jms.JmsDestination;
+import org.apache.qpid.jms.JmsTemporaryDestination;
import org.apache.qpid.jms.message.JmsInboundMessageDispatch;
import org.apache.qpid.jms.message.JmsMessageFactory;
import org.apache.qpid.jms.message.JmsOutboundMessageDispatch;
@@ -255,7 +255,7 @@ public class AmqpProvider extends AbstractProvider implements TransportListener
}
@Override
- public void processDestination(JmsDestination destination) throws Exception {
+ public void processDestination(JmsTemporaryDestination destination) throws Exception {
if (destination.isTemporary()) {
AmqpTemporaryDestination temporary = connection.createTemporaryDestination(destination);
temporary.open(request);
@@ -375,7 +375,7 @@ public class AmqpProvider extends AbstractProvider implements TransportListener
}
@Override
- public void processDestination(JmsDestination destination) throws Exception {
+ public void processDestination(JmsTemporaryDestination destination) throws Exception {
// TODO - Delete remote temporary Topic or Queue
request.onSuccess();
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/184acd20/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpTemporaryDestination.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpTemporaryDestination.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpTemporaryDestination.java
index 5ab5607..7a14e0e 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpTemporaryDestination.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpTemporaryDestination.java
@@ -20,6 +20,7 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.qpid.jms.JmsDestination;
+import org.apache.qpid.jms.JmsTemporaryDestination;
import org.apache.qpid.jms.provider.amqp.message.AmqpDestinationHelper;
import org.apache.qpid.proton.amqp.Symbol;
import org.apache.qpid.proton.amqp.messaging.DeleteOnClose;
@@ -46,7 +47,7 @@ import org.slf4j.LoggerFactory;
* the broker in the case where the user does not have authorization to access temporary
* destinations.
*/
-public class AmqpTemporaryDestination extends AmqpAbstractResource<JmsDestination, Sender> {
+public class AmqpTemporaryDestination extends AmqpAbstractResource<JmsTemporaryDestination, Sender> {
public static final Symbol DYNAMIC_NODE_LIFETIME_POLICY = Symbol.valueOf("lifetime-policy");
private static final String TEMP_QUEUE_CREATOR = "temp-queue-creator:";
@@ -57,7 +58,7 @@ public class AmqpTemporaryDestination extends AmqpAbstractResource<JmsDestinatio
private final AmqpConnection connection;
private final AmqpSession session;
- public AmqpTemporaryDestination(AmqpSession session, JmsDestination destination) {
+ public AmqpTemporaryDestination(AmqpSession session, JmsTemporaryDestination destination) {
super(destination);
this.session = session;
this.connection = session.getConnection();
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/184acd20/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsDefaultResourceVisitorTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsDefaultResourceVisitorTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsDefaultResourceVisitorTest.java
index 4a32654..792f057 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsDefaultResourceVisitorTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsDefaultResourceVisitorTest.java
@@ -16,7 +16,7 @@
*/
package org.apache.qpid.jms.meta;
-import org.apache.qpid.jms.JmsTopic;
+import org.apache.qpid.jms.JmsTemporaryTopic;
import org.apache.qpid.jms.util.IdGenerator;
import org.junit.Before;
import org.junit.Test;
@@ -50,7 +50,7 @@ public class JmsDefaultResourceVisitorTest {
visitor.processSessionInfo(new JmsSessionInfo(sessionId));
visitor.processConsumerInfo(new JmsConsumerInfo(consumerId));
visitor.processProducerInfo(new JmsProducerInfo(producerId));
- visitor.processDestination(new JmsTopic("Test"));
+ visitor.processDestination(new JmsTemporaryTopic("Test"));
visitor.processTransactionInfo(new JmsTransactionInfo(sessionId, transactionId));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org