From 67d46dc8034c3f836cf49e8eaf818f983232dc38 Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Mon, 4 Feb 2013 14:16:37 +0000 Subject: QPID-4312 : [Java Client] add option for verification of queue existence during creation of a MessageProducer git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1442128 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/qpid/client/AMQConnection.java | 22 ++++++++- .../org/apache/qpid/client/AMQSession_0_10.java | 4 +- .../apache/qpid/client/BasicMessageProducer.java | 53 ++++++++++++++++++++-- .../java/org/apache/qpid/jms/ConnectionURL.java | 9 ++-- .../apache/qpid/client/AMQSession_0_10Test.java | 1 - 5 files changed, 76 insertions(+), 13 deletions(-) (limited to 'qpid/java/client') diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java index a0e659c359..9612417266 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java @@ -183,6 +183,9 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect // new amqp-0-10 list encoded format. private boolean _useLegacyStreamMessageFormat; + // When sending to a Queue destination for the first time, check that the queue is bound + private final boolean _validateQueueOnSend; + //used to track the last failover time for //Address resolution purposes private volatile long _lastFailoverTime = 0; @@ -310,6 +313,18 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect true : Boolean.getBoolean(ClientProperties.USE_LEGACY_STREAM_MESSAGE_FORMAT); } + if(connectionURL.getOption(ConnectionURL.OPTIONS_VERIFY_QUEUE_ON_SEND) != null) + { + _validateQueueOnSend = Boolean.parseBoolean( + connectionURL.getOption(ConnectionURL.OPTIONS_VERIFY_QUEUE_ON_SEND)); + } + else + { + _validateQueueOnSend = + Boolean.parseBoolean(System.getProperty(ClientProperties.VERIFY_QUEUE_ON_SEND, "false")); + } + + String amqpVersion = System.getProperty((ClientProperties.AMQP_VERSION), "0-10"); if (_logger.isDebugEnabled()) { @@ -1441,7 +1456,7 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect { return _delegate.getProtocolVersion(); } - + public String getBrokerUUID() { if(getProtocolVersion().equals(ProtocolVersion.v0_10)) @@ -1565,4 +1580,9 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect { _delegate.setHeartbeatListener(listener); } + + public boolean validateQueueOnSend() + { + return _validateQueueOnSend; + } } diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java index 85c96bc3bb..8490a724bf 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java @@ -584,7 +584,7 @@ public class AMQSession_0_10 extends AMQSession args) @@ -1605,4 +1605,4 @@ public class AMQSession_0_10 extends AMQSession