summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorArnaud Simon <arnaudsimon@apache.org>2007-10-02 14:17:26 +0000
committerArnaud Simon <arnaudsimon@apache.org>2007-10-02 14:17:26 +0000
commit1bfabf21207550a23203b37aa28e26efe41368e4 (patch)
tree9bcbfae1f7bb4d23e8ac7705b15011f50bfc41f8 /java
parent636129928afda987524bdf6bf66b1a5059efec13 (diff)
downloadqpid-python-1bfabf21207550a23203b37aa28e26efe41368e4.tar.gz
Changed to use bindingquery
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@581254 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java12
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java6
-rw-r--r--java/client/src/main/java/org/apache/qpidity/nclient/Session.java31
3 files changed, 42 insertions, 7 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java b/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
index c850d1000a..7916dd0d0e 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
+++ b/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
@@ -32,6 +32,8 @@ import org.apache.qpidity.ErrorCode;
import org.apache.qpidity.QpidException;
import org.apache.qpidity.transport.RangeSet;
import org.apache.qpidity.transport.Option;
+import org.apache.qpidity.transport.BindingQueryResult;
+import org.apache.qpidity.transport.Future;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -295,9 +297,13 @@ public class AMQSession_0_10 extends AMQSession
public boolean isQueueBound(final AMQShortString exchangeName, final AMQShortString queueName,
final AMQShortString routingKey) throws JMSException
{
- getQpidSession().queueBind(queueName.toString(), exchangeName.toString(), routingKey.toString(), null);
- // we asume that a binding is always successful
- return true;
+ Future<BindingQueryResult> result = getQpidSession().bindingQuery(exchangeName.toString(), queueName.toString(), routingKey.toString(), null);
+ BindingQueryResult bindingQueryResult = result.get();
+ return ! (bindingQueryResult.getArgsNotMatched() ||
+ bindingQueryResult.getExchangeNotFound() ||
+ bindingQueryResult.getKeyNotMatched() ||
+ bindingQueryResult.getQueueNotFound() ||
+ bindingQueryResult.getQueueNotMatched());
}
/**
diff --git a/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java b/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java
index 3a58a405c2..cf8ecd74ac 100644
--- a/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java
+++ b/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java
@@ -142,5 +142,11 @@ public class BasicMessageProducer_0_10 extends BasicMessageProducer
}
}
+
+
+ public boolean isBound(AMQDestination destination) throws JMSException
+ {
+ return _session.isQueueBound(destination.getExchangeName(), destination.getAMQQueueName(), destination.getRoutingKey());
+ }
}
diff --git a/java/client/src/main/java/org/apache/qpidity/nclient/Session.java b/java/client/src/main/java/org/apache/qpidity/nclient/Session.java
index c7e02fc1bb..0989afef61 100644
--- a/java/client/src/main/java/org/apache/qpidity/nclient/Session.java
+++ b/java/client/src/main/java/org/apache/qpidity/nclient/Session.java
@@ -481,7 +481,8 @@ public interface Session
* {@link Option#EXCLUSIVE}, {@link Option#PASSIVE} and {@link Option#NO_OPTION})
* @see Option
*/
- public void queueDeclare(String queueName, String alternateExchange, Map<String, Object> arguments, Option... options);
+ public void queueDeclare(String queueName, String alternateExchange, Map<String, Object> arguments,
+ Option... options);
/**
* Bind a queue with an exchange.
@@ -542,6 +543,28 @@ public interface Session
*/
public void queueDelete(String queueName, Option... options);
+
+ /**
+ * This method is used to request information on a particular queue.
+ *
+ * @param queueName The name of the queue for which information is requested.
+ * @return Information on the specified queue.
+ */
+ public Future<QueueQueryResult> queueQuery(String queueName);
+
+
+ /**
+ * This method is used to request information on a particular binding.
+ *
+ * @param exchange The exchange name.
+ * @param queue The queue name.
+ * @param routingKey The routing key
+ * @param arguments bacward compatibilties params.
+ * @return Information on the specified binding.
+ */
+ public Future<BindingQueryResult> bindingQuery(String exchange, String queue, String routingKey,
+ Map<String, Object> arguments);
+
// --------------------------------------
// exhcange methods
// --------------------------------------
@@ -573,8 +596,8 @@ public interface Session
* @param arguments Used for backward compatibility
* @see Option
*/
- public void exchangeDeclare(String exchangeName, String type, String alternateExchange, Map<String, Object> arguments,
- Option... options);
+ public void exchangeDeclare(String exchangeName, String type, String alternateExchange,
+ Map<String, Object> arguments, Option... options);
/**
* This method deletes an exchange. When an exchange is deleted all queue bindings on the
@@ -600,7 +623,7 @@ public interface Session
*
* @param exchangeName The name of the exchange for which information is requested. If not specified explicitly
* the default exchange is implied.
- * @result Information on the specified exchange.
+ * @return Information on the specified exchange.
*/
public Future<ExchangeQueryResult> exchangeQuery(String exchangeName);