summaryrefslogtreecommitdiff
path: root/java/common/src/main/java/org/apache/qpid/url/BindingURLImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/common/src/main/java/org/apache/qpid/url/BindingURLImpl.java')
-rw-r--r--java/common/src/main/java/org/apache/qpid/url/BindingURLImpl.java261
1 files changed, 0 insertions, 261 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/url/BindingURLImpl.java b/java/common/src/main/java/org/apache/qpid/url/BindingURLImpl.java
deleted file mode 100644
index f12fb2cff2..0000000000
--- a/java/common/src/main/java/org/apache/qpid/url/BindingURLImpl.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/* 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.url;
-
-import org.apache.qpid.exchange.ExchangeDefaults;
-import org.slf4j.LoggerFactory;
-import org.slf4j.Logger;
-
-import java.util.HashMap;
-import java.net.URI;
-import java.net.URISyntaxException;
-
-public class BindingURLImpl implements QpidBindingURL
-{
- private static final Logger _logger = LoggerFactory.getLogger(BindingURLImpl.class);
-
- String _url;
- String _exchangeClass;
- String _exchangeName;
- String _destinationName;
- String _queueName;
- private HashMap<String, String> _options;
-
- public BindingURLImpl(String url) throws URLSyntaxException
- {
- // format:
- // <exch_class>://<exch_name>/[<destination>]/[<queue>]?<option>='<value>'[,<option>='<value>']*
- if (_logger.isDebugEnabled())
- {
- _logger.debug("Parsing URL: " + url);
- }
- _url = url;
- _options = new HashMap<String, String>();
- parseBindingURL();
- }
-
- private void parseBindingURL() throws URLSyntaxException
- {
- try
- {
- URI connection = new URI(_url);
- String exchangeClass = connection.getScheme();
- if (exchangeClass == null)
- {
- _url = ExchangeDefaults.DIRECT_EXCHANGE_CLASS + "://" + "" + "//" + _url;
- // URLHelper.parseError(-1, "Exchange Class not specified.", _url);
- parseBindingURL();
- return;
- }
- else
- {
- setExchangeClass(exchangeClass);
- }
- String exchangeName = connection.getHost();
- if (exchangeName == null)
- {
- if (getExchangeClass().equals(ExchangeDefaults.DIRECT_EXCHANGE_CLASS))
- {
- setExchangeName("");
- }
- else
- {
- throw URLHelper.parseError(-1, "Exchange Name not specified.", _url);
- }
- }
- else
- {
- setExchangeName(exchangeName);
- }
- String queueName;
- if ((connection.getPath() == null) || connection.getPath().equals(""))
- {
- throw URLHelper.parseError(_url.indexOf(_exchangeName) + _exchangeName.length(),
- "Destination or Queue requried", _url);
- }
- else
- {
- int slash = connection.getPath().indexOf("/", 1);
- if (slash == -1)
- {
- throw URLHelper.parseError(_url.indexOf(_exchangeName) + _exchangeName.length(),
- "Destination requried", _url);
- }
- else
- {
- String path = connection.getPath();
- setDestinationName(path.substring(1, slash));
-
- // We don't set queueName yet as the actual value we use depends on options set
- // when we are dealing with durable subscriptions
-
- queueName = path.substring(slash + 1);
-
- }
- }
-
- URLHelper.parseOptions(_options, connection.getQuery());
- processOptions();
- // We can now call setQueueName as the URL is full parsed.
- setQueueName(queueName);
- // Fragment is #string (not used)
- if (_logger.isDebugEnabled())
- {
- _logger.debug("URL Parsed: " + this);
- }
- }
- catch (URISyntaxException uris)
- {
- throw URLHelper.parseError(uris.getIndex(), uris.getReason(), uris.getInput());
- }
- }
-
-
- private void processOptions()
- {
- // this is where we would parse any options that needed more than just storage.
- }
-
- public String getURL()
- {
- return _url;
- }
-
- public String getExchangeClass()
- {
- return _exchangeClass;
- }
-
- private void setExchangeClass(String exchangeClass)
- {
-
- _exchangeClass = exchangeClass;
- if (exchangeClass.equals(ExchangeDefaults.TOPIC_EXCHANGE_CLASS))
- {
- setOption(BindingURL.OPTION_EXCLUSIVE, "true");
- }
-
- }
-
- public String getExchangeName()
- {
- return _exchangeName;
- }
-
- private void setExchangeName(String name)
- {
- _exchangeName = name;
- }
-
- public String getDestinationName()
- {
- return _destinationName;
- }
-
- private void setDestinationName(String name)
- {
- _destinationName = name;
- }
-
- public String getQueueName()
- {
- return _queueName;
- }
-
- public void setQueueName(String name) throws URLSyntaxException
- {
- if (_exchangeClass.equals(ExchangeDefaults.TOPIC_EXCHANGE_CLASS))
- {
- if (Boolean.parseBoolean(getOption(OPTION_DURABLE)))
- {
- if (containsOption(BindingURL.OPTION_CLIENTID) && containsOption(BindingURL.OPTION_SUBSCRIPTION))
- {
- _queueName = getOption(BindingURL.OPTION_CLIENTID + ":" + BindingURL.OPTION_SUBSCRIPTION);
- }
- else
- {
- throw URLHelper.parseError(-1,
- "Durable subscription must have values for " + BindingURL.OPTION_CLIENTID + " and " + BindingURL.OPTION_SUBSCRIPTION + ".",
- _url);
-
- }
- }
- else
- {
- _queueName = null;
- }
- }
- else
- {
- _queueName = name;
- }
-
- }
-
- public String getOption(String key)
- {
- return _options.get(key);
- }
-
- public void setOption(String key, String value)
- {
- _options.put(key, value);
- }
-
- public boolean containsOption(String key)
- {
- return _options.containsKey(key);
- }
-
- public String getRoutingKey()
- {
- if (_exchangeClass.equals(ExchangeDefaults.DIRECT_EXCHANGE_CLASS))
- {
- return getQueueName();
- }
-
- if (containsOption(BindingURL.OPTION_ROUTING_KEY))
- {
- return getOption(OPTION_ROUTING_KEY);
- }
-
- return getDestinationName();
- }
-
- public void setRoutingKey(String key)
- {
- setOption(OPTION_ROUTING_KEY, key);
- }
-
- public String toString()
- {
- StringBuffer sb = new StringBuffer();
-
- sb.append(_exchangeClass);
- sb.append("://");
- sb.append(_exchangeName);
- sb.append('/');
- sb.append(_destinationName);
- sb.append('/');
- sb.append(_queueName);
-
- sb.append(URLHelper.printOptions(_options));
-
- return sb.toString();
- }
-}