diff options
author | Robert Godfrey <rgodfrey@apache.org> | 2013-08-21 02:00:50 +0000 |
---|---|---|
committer | Robert Godfrey <rgodfrey@apache.org> | 2013-08-21 02:00:50 +0000 |
commit | 8678750648ed61a0ed9b1f0a5e7ae37fd6cd96ac (patch) | |
tree | fbe56c804b3d4c02250d9b58bde8b57f083a1c9d | |
parent | bc33c0d9e43996153bd50823a436c3694460aa4e (diff) | |
download | qpid-python-8678750648ed61a0ed9b1f0a5e7ae37fd6cd96ac.tar.gz |
QPID-5088 : [Java Broker] Isolate use of AMQShortString and FieldTable to 0-8/9/9-1 protocol specific plugins
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1516058 13f79535-47bb-0310-9956-ffa450edef68
106 files changed, 606 insertions, 1009 deletions
diff --git a/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java b/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java index 69fc06f2d0..4c9eae6f3e 100644 --- a/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java +++ b/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java @@ -148,7 +148,7 @@ public class UpgradeFrom4To5 extends AbstractStoreUpgrade // if the queue name is in the gathered list then inspect its binding arguments // only topic exchange should have a JMS selector key in binding if (potentialDurableSubs.contains(queueName) - && exchangeName.equals(ExchangeDefaults.TOPIC_EXCHANGE_NAME)) + && exchangeName.equals(AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_NAME))) { if (arguments == null) { @@ -342,11 +342,11 @@ public class UpgradeFrom4To5 extends AbstractStoreUpgrade FieldTable emptyArguments = new FieldTable(); addBindingToDatabase(bindingTuple, newBindingsDatabase, transaction, queueNameAMQ, - ExchangeDefaults.DIRECT_EXCHANGE_NAME, queueNameAMQ, emptyArguments); + AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_NAME), queueNameAMQ, emptyArguments); // TODO QPID-3490 we should not persist a default exchange binding addBindingToDatabase(bindingTuple, newBindingsDatabase, transaction, queueNameAMQ, - ExchangeDefaults.DEFAULT_EXCHANGE_NAME, queueNameAMQ, emptyArguments); + AMQShortString.valueOf(ExchangeDefaults.DEFAULT_EXCHANGE_NAME), queueNameAMQ, emptyArguments); } }; new DatabaseTemplate(environment, NEW_QUEUE_DB_NAME, NEW_BINDINGS_DB_NAME, transaction).run(queueCreateOperation); @@ -364,7 +364,7 @@ public class UpgradeFrom4To5 extends AbstractStoreUpgrade DatabaseEntry key, DatabaseEntry value) { ExchangeRecord record = binding.entryToObject(value); - if (ExchangeDefaults.TOPIC_EXCHANGE_CLASS.equals(record.getType())) + if (AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_CLASS).equals(record.getType())) { topicExchanges.add(record.getName()); } diff --git a/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom5To6.java b/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom5To6.java index 5d84dc2c91..a478872ad0 100644 --- a/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom5To6.java +++ b/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom5To6.java @@ -87,11 +87,14 @@ public class UpgradeFrom5To6 extends AbstractStoreUpgrade static final String OLD_BRIDGES_DB_NAME = "bridges_v5"; static final String OLD_LINKS_DB_NAME = "links_v5"; - static final String[] DEFAULT_EXCHANGES = { ExchangeDefaults.DEFAULT_EXCHANGE_NAME.asString(), - ExchangeDefaults.DEFAULT_EXCHANGE_NAME.asString(), ExchangeDefaults.FANOUT_EXCHANGE_NAME.asString(), - ExchangeDefaults.HEADERS_EXCHANGE_NAME.asString(), ExchangeDefaults.TOPIC_EXCHANGE_NAME.asString(), - ExchangeDefaults.DIRECT_EXCHANGE_NAME.asString() }; - private static final Set<String> DEFAULT_EXCHANGES_SET = new HashSet<String>(Arrays.asList(DEFAULT_EXCHANGES)); + private static final Set<String> DEFAULT_EXCHANGES_SET = + new HashSet<String>(Arrays.asList( + ExchangeDefaults.DEFAULT_EXCHANGE_NAME, + ExchangeDefaults.FANOUT_EXCHANGE_NAME, + ExchangeDefaults.HEADERS_EXCHANGE_NAME, + ExchangeDefaults.TOPIC_EXCHANGE_NAME, + ExchangeDefaults.DIRECT_EXCHANGE_NAME)); + private static final String ARGUMENTS = "arguments"; private MapJsonSerializer _serializer = new MapJsonSerializer(); @@ -454,8 +457,7 @@ public class UpgradeFrom5To6 extends AbstractStoreUpgrade { // TODO: check and remove orphaned bindings BindingRecord bindingRecord = binding.entryToObject(key); - String exchangeName = bindingRecord.getExchangeName() == null ? ExchangeDefaults.DEFAULT_EXCHANGE_NAME - .asString() : bindingRecord.getExchangeName().asString(); + String exchangeName = bindingRecord.getExchangeName() == null ? ExchangeDefaults.DEFAULT_EXCHANGE_NAME : bindingRecord.getExchangeName().asString(); String queueName = bindingRecord.getQueueName().asString(); String routingKey = bindingRecord.getRoutingKey().asString(); FieldTable arguments = bindingRecord.getArguments(); diff --git a/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java b/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java index 181d693614..cc93c540df 100644 --- a/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java +++ b/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java @@ -42,7 +42,7 @@ import org.apache.qpid.test.utils.QpidTestCase; * The ruleset is configured directly rather than using an external file by adding rules individually, calling the * {@link RuleSet#grant(Integer, String, Permission, Operation, ObjectType, ObjectProperties)} method. Then, the * access control mechanism is validated by checking whether operations would be authorised by calling the - * {@link RuleSet#check(Principal, Operation, ObjectType, ObjectProperties)} method. + * {@link RuleSet#check(Subject, Operation, ObjectType, ObjectProperties)} method. * * It ensure that permissions can be granted correctly on users directly and on groups. */ @@ -53,9 +53,9 @@ public class RuleSetTest extends QpidTestCase private static final String TEST_USER = "user"; // Common things that are passed to frame constructors - private AMQShortString _queueName = new AMQShortString(this.getClass().getName() + "queue"); - private AMQShortString _exchangeName = new AMQShortString("amq.direct"); - private AMQShortString _exchangeType = new AMQShortString("direct"); + private String _queueName = this.getClass().getName() + "queue"; + private String _exchangeName = "amq.direct"; + private String _exchangeType = "direct"; private Subject _testSubject = TestPrincipalUtils.createTestSubject(TEST_USER); @Override @@ -116,7 +116,7 @@ public class RuleSetTest extends QpidTestCase public void testExchangeCreate() { ObjectProperties properties = new ObjectProperties(_exchangeName); - properties.put(ObjectProperties.Property.TYPE, _exchangeType.asString()); + properties.put(ObjectProperties.Property.TYPE, _exchangeType); assertDenyGrantAllow(_testSubject, Operation.CREATE, ObjectType.EXCHANGE, properties); } diff --git a/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageMetaData_0_10.java b/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageMetaData_0_10.java index ee2a40a5b2..092ea7c3c9 100755 --- a/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageMetaData_0_10.java +++ b/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageMetaData_0_10.java @@ -182,11 +182,6 @@ public class MessageMetaData_0_10 implements StorableMessageMetaData, InboundMes return _deliveryProps == null ? null : _deliveryProps.getRoutingKey(); } - public AMQShortString getRoutingKeyShortString() - { - return AMQShortString.valueOf(getRoutingKey()); - } - public AMQMessageHeader getMessageHeader() { return _messageHeader; diff --git a/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageTransferMessage.java b/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageTransferMessage.java index 4e8bfcb652..e5914d1d4e 100644 --- a/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageTransferMessage.java +++ b/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageTransferMessage.java @@ -52,11 +52,6 @@ public class MessageTransferMessage extends AbstractServerMessageImpl<MessageMet return getMetaData().getRoutingKey(); } - public AMQShortString getRoutingKeyShortString() - { - return AMQShortString.valueOf(getRoutingKey()); - } - public AMQMessageHeader getMessageHeader() { return getMetaData().getMessageHeader(); diff --git a/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java b/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java index 60211823f8..46626e3e92 100644 --- a/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java +++ b/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java @@ -37,12 +37,9 @@ import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.model.UUIDGenerator; import org.apache.qpid.server.plugin.ExchangeType; import org.apache.qpid.server.queue.AMQQueue; -import org.apache.qpid.server.queue.AMQQueueFactory; import org.apache.qpid.server.queue.BaseQueue; import org.apache.qpid.server.queue.QueueArgumentsConverter; -import org.apache.qpid.server.queue.QueueRegistry; import org.apache.qpid.server.security.SecurityManager; -import org.apache.qpid.server.store.DurableConfigurationStoreHelper; import org.apache.qpid.server.store.DurableConfigurationStore; import org.apache.qpid.server.store.MessageStore; import org.apache.qpid.server.store.StoreFuture; @@ -701,11 +698,11 @@ public class ServerSessionDelegate extends SessionDelegate } else { - if (!exchange.getTypeShortString().toString().equals(method.getType()) + if (!exchange.getTypeName().equals(method.getType()) && (method.getType() != null && method.getType().length() > 0)) { exception(session, method, ExecutionErrorCode.NOT_ALLOWED, "Attempt to redeclare exchange: " - + exchangeName + " of type " + exchange.getTypeShortString() + " to " + method.getType() + "."); + + exchangeName + " of type " + exchange.getTypeName() + " to " + method.getType() + "."); } } } @@ -738,11 +735,11 @@ public class ServerSessionDelegate extends SessionDelegate catch(ExchangeExistsException e) { Exchange exchange = e.getExistingExchange(); - if(!exchange.getTypeShortString().toString().equals(method.getType())) + if(!exchange.getTypeName().equals(method.getType())) { exception(session, method, ExecutionErrorCode.NOT_ALLOWED, "Attempt to redeclare exchange: " + exchangeName - + " of type " + exchange.getTypeShortString() + + " of type " + exchange.getTypeName() + " to " + method.getType() +"."); } else if(method.hasAlternateExchange() @@ -891,7 +888,7 @@ public class ServerSessionDelegate extends SessionDelegate { for(ExchangeType type : registeredTypes) { - if(type.getDefaultExchangeName().toString().equals( exchange.getName() )) + if(type.getDefaultExchangeName().equals( exchange.getName() )) { return true; } @@ -910,7 +907,7 @@ public class ServerSessionDelegate extends SessionDelegate if(exchange != null) { result.setDurable(exchange.isDurable()); - result.setType(exchange.getTypeShortString().toString()); + result.setType(exchange.getTypeName()); result.setNotFound(false); } else @@ -953,9 +950,9 @@ public class ServerSessionDelegate extends SessionDelegate { exception(session, method, ExecutionErrorCode.NOT_FOUND, "Exchange: '" + method.getExchange() + "' not found"); } - else if(exchange.getTypeShortString().equals(HeadersExchange.TYPE.getName()) && (!method.hasArguments() || method.getArguments() == null || !method.getArguments().containsKey("x-match"))) + else if(exchange.getType().equals(HeadersExchange.TYPE) && (!method.hasArguments() || method.getArguments() == null || !method.getArguments().containsKey("x-match"))) { - exception(session, method, ExecutionErrorCode.INTERNAL_ERROR, "Bindings to an exchange of type " + HeadersExchange.TYPE.getName() + " require an x-match header"); + exception(session, method, ExecutionErrorCode.INTERNAL_ERROR, "Bindings to an exchange of type " + HeadersExchange.TYPE.getType() + " require an x-match header"); } else { @@ -1422,7 +1419,7 @@ public class ServerSessionDelegate extends SessionDelegate if(queue != null) { - result.setQueue(queue.getNameShortString().toString()); + result.setQueue(queue.getName()); result.setDurable(queue.isDurable()); result.setExclusive(queue.isExclusive()); result.setAutoDelete(queue.isAutoDelete()); diff --git a/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/Subscription_0_10.java b/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/Subscription_0_10.java index 63582702cb..77b63906cc 100644 --- a/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/Subscription_0_10.java +++ b/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/Subscription_0_10.java @@ -600,7 +600,7 @@ public class Subscription_0_10 implements Subscription, FlowCreditManager.FlowCr //output operational logging for each delivery post commit for (final BaseQueue destinationQueue : destinationQueues) { - logActor.message( ChannelMessages.DEADLETTERMSG(msg.getMessageNumber(), destinationQueue.getNameShortString().asString())); + logActor.message( ChannelMessages.DEADLETTERMSG(msg.getMessageNumber(), destinationQueue.getName())); } } } @@ -875,7 +875,7 @@ public class Subscription_0_10 implements Subscription, FlowCreditManager.FlowCr public String toLogString() { String queueInfo = MessageFormat.format(QUEUE_FORMAT, _queue.getVirtualHost().getName(), - _queue.getNameShortString()); + _queue.getName()); String result = "[" + MessageFormat.format(SUBSCRIPTION_FORMAT, getSubscriptionID()) + "(" // queueString is "vh(/{0})/qu({1}) " so need to trim + queueInfo.substring(0, queueInfo.length() - 1) + ")" + "] "; diff --git a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java index 6867ee7bb5..a603807f87 100644 --- a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java +++ b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java @@ -1396,7 +1396,7 @@ public class AMQChannel implements AMQSessionModel, AsyncAutoCommitTransaction.F _message, _channelId, _errorCode.getCode(), - AMQShortString.valueOf(_description, true, true)); + AMQShortString.validValueOf(_description)); } catch (AMQException e) { @@ -1449,7 +1449,7 @@ public class AMQChannel implements AMQSessionModel, AsyncAutoCommitTransaction.F if(_blocking.compareAndSet(false,true)) { - _actor.message(_logSubject, ChannelMessages.FLOW_ENFORCED(queue.getNameShortString().toString())); + _actor.message(_logSubject, ChannelMessages.FLOW_ENFORCED(queue.getName())); flow(false); } } @@ -1568,7 +1568,7 @@ public class AMQChannel implements AMQSessionModel, AsyncAutoCommitTransaction.F //output operational logging for each delivery post commit for (final BaseQueue destinationQueue : destinationQueues) { - _actor.message(_logSubject, ChannelMessages.DEADLETTERMSG(msg.getMessageNumber(), destinationQueue.getNameShortString().asString())); + _actor.message(_logSubject, ChannelMessages.DEADLETTERMSG(msg.getMessageNumber(), destinationQueue.getName())); } } diff --git a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/IncomingMessage.java b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/IncomingMessage.java index 90c764daac..5267651a66 100644 --- a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/IncomingMessage.java +++ b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/IncomingMessage.java @@ -129,11 +129,6 @@ public class IncomingMessage implements Filterable, InboundMessage, EnqueableMes return _messagePublishInfo.getExchange(); } - public AMQShortString getRoutingKeyShortString() - { - return _messagePublishInfo.getRoutingKey(); - } - public String getRoutingKey() { return _messagePublishInfo.getRoutingKey() == null ? null : _messagePublishInfo.getRoutingKey().toString(); diff --git a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/SubscriptionImpl.java b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/SubscriptionImpl.java index 5803135b16..d1d86fe478 100644 --- a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/SubscriptionImpl.java +++ b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/SubscriptionImpl.java @@ -349,7 +349,7 @@ public abstract class SubscriptionImpl implements Subscription, FlowCreditManage _noLocal = noLocal; - _filters = FilterManagerFactory.createManager(arguments); + _filters = FilterManagerFactory.createManager(FieldTable.convertToMap(arguments)); _deliveryMethod = deliveryMethod; _recordMethod = recordMethod; diff --git a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicConsumeMethodHandler.java b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicConsumeMethodHandler.java index 4e620327c9..836de44f4e 100644 --- a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicConsumeMethodHandler.java +++ b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicConsumeMethodHandler.java @@ -102,13 +102,13 @@ public class BasicConsumeMethodHandler implements StateAwareMethodListener<Basic if (session == null || session.getConnectionModel() != protocolConnection) { throw body.getConnectionException(AMQConstant.NOT_ALLOWED, - "Queue " + queue.getNameShortString() + " is exclusive, but not created on this Connection."); + "Queue " + queue.getName() + " is exclusive, but not created on this Connection."); } } if (body.getConsumerTag() != null) { - consumerTagName = body.getConsumerTag().intern(); + consumerTagName = body.getConsumerTag().intern(false); } else { @@ -160,14 +160,14 @@ public class BasicConsumeMethodHandler implements StateAwareMethodListener<Basic { throw body.getChannelException(AMQConstant.ACCESS_REFUSED, "Cannot subscribe to queue " - + queue.getNameShortString() + + queue.getName() + " as it already has an existing exclusive consumer"); } catch (AMQQueue.ExistingSubscriptionPreventsExclusive e) { throw body.getChannelException(AMQConstant.ACCESS_REFUSED, "Cannot subscribe to queue " - + queue.getNameShortString() + + queue.getName() + " exclusively as it already has a consumer"); } diff --git a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicPublishMethodHandler.java b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicPublishMethodHandler.java index 96936dc429..497e97db3e 100644 --- a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicPublishMethodHandler.java +++ b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicPublishMethodHandler.java @@ -63,7 +63,7 @@ public class BasicPublishMethodHandler implements StateAwareMethodListener<Basic // TODO: check the delivery tag field details - is it unique across the broker or per subscriber? if (exchangeName == null) { - exchangeName = ExchangeDefaults.DEFAULT_EXCHANGE_NAME; + exchangeName = AMQShortString.valueOf(ExchangeDefaults.DEFAULT_EXCHANGE_NAME); } VirtualHost vHost = session.getVirtualHost(); diff --git a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ExchangeBoundHandler.java b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ExchangeBoundHandler.java index ba5692fc6c..0535236f94 100644 --- a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ExchangeBoundHandler.java +++ b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ExchangeBoundHandler.java @@ -149,7 +149,8 @@ public class ExchangeBoundHandler implements StateAwareMethodListener<ExchangeBo } else { - if (exchange.isBound(body.getRoutingKey(), queue)) + String bindingKey = body.getRoutingKey() == null ? null : body.getRoutingKey().asString(); + if (exchange.isBound(bindingKey, queue)) { response = methodRegistry.createExchangeBoundOkBody(OK, // replyCode @@ -172,7 +173,7 @@ public class ExchangeBoundHandler implements StateAwareMethodListener<ExchangeBo } else { - if (exchange.isBound(body.getRoutingKey())) + if (exchange.isBound(body.getRoutingKey() == null ? "" : body.getRoutingKey().asString())) { response = methodRegistry.createExchangeBoundOkBody(OK, // replyCode diff --git a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ExchangeDeclareHandler.java b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ExchangeDeclareHandler.java index 4949fcd62b..154c38a4bf 100644 --- a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ExchangeDeclareHandler.java +++ b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ExchangeDeclareHandler.java @@ -79,11 +79,11 @@ public class ExchangeDeclareHandler implements StateAwareMethodListener<Exchange { throw body.getChannelException(AMQConstant.NOT_FOUND, "Unknown exchange: " + exchangeName); } - else if (!exchange.getTypeShortString().equals(body.getType()) && !(body.getType() == null || body.getType().length() ==0)) + else if (!(body.getType() == null || body.getType().length() ==0) && !exchange.getTypeName().equals(body.getType().asString())) { throw new AMQConnectionException(AMQConstant.NOT_ALLOWED, "Attempt to redeclare exchange: " + - exchangeName + " of type " + exchange.getTypeShortString() + exchangeName + " of type " + exchange.getTypeName() + " to " + body.getType() +".",body.getClazz(), body.getMethod(),body.getMajor(),body.getMinor(),null); } @@ -110,11 +110,11 @@ public class ExchangeDeclareHandler implements StateAwareMethodListener<Exchange catch(ExchangeExistsException e) { exchange = e.getExistingExchange(); - if(!exchange.getTypeShortString().equals(body.getType())) + if(!new AMQShortString(exchange.getTypeName()).equals(body.getType())) { throw new AMQConnectionException(AMQConstant.NOT_ALLOWED, "Attempt to redeclare exchange: " + exchangeName + " of type " - + exchange.getTypeShortString() + + exchange.getTypeName() + " to " + body.getType() +".", body.getClazz(), body.getMethod(), body.getMajor(), body.getMinor(),null); diff --git a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueBindHandler.java b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueBindHandler.java index 359bd2eb19..d95d59f75f 100644 --- a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueBindHandler.java +++ b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueBindHandler.java @@ -30,6 +30,8 @@ import org.apache.qpid.framing.FieldTable; import org.apache.qpid.framing.MethodRegistry; import org.apache.qpid.framing.QueueBindBody; import org.apache.qpid.protocol.AMQConstant; +import org.apache.qpid.server.exchange.TopicExchange; +import org.apache.qpid.server.plugin.ExchangeType; import org.apache.qpid.server.protocol.v0_8.AMQChannel; import org.apache.qpid.server.binding.Binding; import org.apache.qpid.server.exchange.Exchange; @@ -86,7 +88,7 @@ public class QueueBindHandler implements StateAwareMethodListener<QueueBindBody> if (body.getRoutingKey() == null) { - routingKey = queue.getNameShortString(); + routingKey = AMQShortString.valueOf(queue.getName()); } else { @@ -119,16 +121,17 @@ public class QueueBindHandler implements StateAwareMethodListener<QueueBindBody> if (session == null || session.getConnectionModel() != protocolConnection) { throw body.getConnectionException(AMQConstant.NOT_ALLOWED, - "Queue " + queue.getNameShortString() + " is exclusive, but not created on this Connection."); + "Queue " + queue.getName() + " is exclusive, but not created on this Connection."); } } - if (!exch.isBound(routingKey, body.getArguments(), queue)) + Map<String,Object> arguments = FieldTable.convertToMap(body.getArguments()); + String bindingKey = String.valueOf(routingKey); + + if (!exch.isBound(bindingKey, arguments, queue)) { - String bindingKey = String.valueOf(routingKey); - Map<String,Object> arguments = FieldTable.convertToMap(body.getArguments()); - if(!exch.addBinding(bindingKey, queue, arguments) && ExchangeDefaults.TOPIC_EXCHANGE_CLASS.equals(exch.getTypeShortString())) + if(!exch.addBinding(bindingKey, queue, arguments) && TopicExchange.TYPE.equals(exch.getType())) { Binding oldBinding = exch.getBinding(bindingKey, queue, arguments); diff --git a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueDeclareHandler.java b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueDeclareHandler.java index fd547d4bac..3fdce83c2a 100644 --- a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueDeclareHandler.java +++ b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueDeclareHandler.java @@ -102,7 +102,7 @@ public class QueueDeclareHandler implements StateAwareMethodListener<QueueDeclar && (owningSession == null || owningSession.getConnectionModel() != protocolConnection)) { throw body.getConnectionException(AMQConstant.NOT_ALLOWED, - "Queue " + queue.getNameShortString() + " is exclusive, but not created on this Connection."); + "Queue " + queue.getName() + " is exclusive, but not created on this Connection."); } //set this as the default queue on the channel: @@ -153,13 +153,13 @@ public class QueueDeclareHandler implements StateAwareMethodListener<QueueDeclar if (queue.isExclusive() && !queue.isDurable() && (owningSession == null || owningSession.getConnectionModel() != protocolConnection)) { throw body.getConnectionException(AMQConstant.NOT_ALLOWED, - "Queue " + queue.getNameShortString() + " is exclusive, but not created on this Connection."); + "Queue " + queue.getName() + " is exclusive, but not created on this Connection."); } else if(queue.isExclusive() != body.getExclusive()) { throw body.getChannelException(AMQConstant.ALREADY_EXISTS, - "Cannot re-declare queue '" + queue.getNameShortString() + "' with different exclusivity (was: " + "Cannot re-declare queue '" + queue.getName() + "' with different exclusivity (was: " + queue.isExclusive() + " requested " + body.getExclusive() + ")"); } else if (body.getExclusive() && !(queue.isDurable() ? String.valueOf(queue.getOwner()).equals(session.getClientID()) : (owningSession == null || owningSession.getConnectionModel() == protocolConnection))) @@ -173,13 +173,13 @@ public class QueueDeclareHandler implements StateAwareMethodListener<QueueDeclar else if(queue.isAutoDelete() != body.getAutoDelete()) { throw body.getChannelException(AMQConstant.ALREADY_EXISTS, - "Cannot re-declare queue '" + queue.getNameShortString() + "' with different auto-delete (was: " + "Cannot re-declare queue '" + queue.getName() + "' with different auto-delete (was: " + queue.isAutoDelete() + " requested " + body.getAutoDelete() + ")"); } else if(queue.isDurable() != body.getDurable()) { throw body.getChannelException(AMQConstant.ALREADY_EXISTS, - "Cannot re-declare queue '" + queue.getNameShortString() + "' with different durability (was: " + "Cannot re-declare queue '" + queue.getName() + "' with different durability (was: " + queue.isDurable() + " requested " + body.getDurable() + ")"); } diff --git a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueDeleteHandler.java b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueDeleteHandler.java index a39faf2e70..d3c196a789 100644 --- a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueDeleteHandler.java +++ b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueDeleteHandler.java @@ -108,7 +108,7 @@ public class QueueDeleteHandler implements StateAwareMethodListener<QueueDeleteB if (queue.isExclusive() && !queue.isDurable() && (session == null || session.getConnectionModel() != protocolConnection)) { throw body.getConnectionException(AMQConstant.NOT_ALLOWED, - "Queue " + queue.getNameShortString() + " is exclusive, but not created on this Connection."); + "Queue " + queue.getName() + " is exclusive, but not created on this Connection."); } int purged = virtualHost.removeQueue(queue); diff --git a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueUnbindHandler.java b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueUnbindHandler.java index 20405b82ab..d568e0f581 100644 --- a/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueUnbindHandler.java +++ b/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueUnbindHandler.java @@ -80,13 +80,13 @@ public class QueueUnbindHandler implements StateAwareMethodListener<QueueUnbindB throw body.getChannelException(AMQConstant.NOT_FOUND, "No default queue defined on channel and queue was null"); } - routingKey = body.getRoutingKey() == null ? null : body.getRoutingKey().intern(); + routingKey = body.getRoutingKey() == null ? null : body.getRoutingKey().intern(false); } else { queue = virtualHost.getQueue(body.getQueue().toString()); - routingKey = body.getRoutingKey() == null ? null : body.getRoutingKey().intern(); + routingKey = body.getRoutingKey() == null ? null : body.getRoutingKey().intern(false); } if (queue == null) diff --git a/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AcknowledgeTest.java b/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AcknowledgeTest.java index a9eb0ebfe7..43f88ca2a3 100644 --- a/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AcknowledgeTest.java +++ b/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AcknowledgeTest.java @@ -126,7 +126,7 @@ public class AcknowledgeTest extends QpidTestCase BrokerTestHelper_0_8.publishMessages(getChannel(), sendMessageCount, _queueName, - ExchangeDefaults.DEFAULT_EXCHANGE_NAME.asString()); + ExchangeDefaults.DEFAULT_EXCHANGE_NAME); if (getChannel().isTransactional()) { diff --git a/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/QueueBrowserUsesNoAckTest.java b/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/QueueBrowserUsesNoAckTest.java index 21142e7ab6..4f9df3b38d 100644 --- a/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/QueueBrowserUsesNoAckTest.java +++ b/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/QueueBrowserUsesNoAckTest.java @@ -99,7 +99,7 @@ public class QueueBrowserUsesNoAckTest extends QpidTestCase BrokerTestHelper_0_8.publishMessages(getChannel(), sendMessageCount, _queueName, - ExchangeDefaults.DEFAULT_EXCHANGE_NAME.asString()); + ExchangeDefaults.DEFAULT_EXCHANGE_NAME); //Ensure they are stored checkStoreContents(sendMessageCount); diff --git a/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Message_1_0.java b/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Message_1_0.java index 9dc063e3ea..68e9a88b0b 100644 --- a/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Message_1_0.java +++ b/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Message_1_0.java @@ -97,11 +97,6 @@ public class Message_1_0 implements ServerMessage<MessageMetaData_1_0>, InboundM } } - public AMQShortString getRoutingKeyShortString() - { - return AMQShortString.valueOf(getRoutingKey()); - } - private MessageMetaData_1_0 getMessageMetaData() { return _storedMessage.getMetaData(); diff --git a/java/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java b/java/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java index c14896079f..e832ef7569 100644 --- a/java/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java +++ b/java/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java @@ -92,8 +92,8 @@ public class MessageConverter_0_10_to_0_8 implements MessageConverter<MessageTra Exchange exchange = vhost.getExchange(exchangeName); String exchangeClass = exchange == null - ? ExchangeDefaults.DIRECT_EXCHANGE_CLASS.asString() - : exchange.getType().getName().asString(); + ? ExchangeDefaults.DIRECT_EXCHANGE_CLASS + : exchange.getTypeName(); props.setReplyTo(exchangeClass + "://" + exchangeName + "//?routingkey='" + (routingKey == null ? "" : routingKey + "'")); diff --git a/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java b/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java index 9614ded3d8..42eecb28ac 100644 --- a/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java +++ b/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java @@ -219,14 +219,7 @@ public abstract class AbstractServlet extends HttpServlet } finally { - try - { - SecurityManager.setThreadSubject(null); - } - finally - { - AMQShortString.clearLocalCache(); - } + SecurityManager.setThreadSubject(null); } } diff --git a/java/broker/src/main/java/org/apache/qpid/server/Broker.java b/java/broker/src/main/java/org/apache/qpid/server/Broker.java index 703162a609..7de0ebe1de 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/Broker.java +++ b/java/broker/src/main/java/org/apache/qpid/server/Broker.java @@ -67,17 +67,11 @@ public class Broker } finally { - try - { - if (_applicationRegistry != null) - { - _applicationRegistry.close(); - } - } - finally + if (_applicationRegistry != null) { - clearAMQShortStringCache(); + _applicationRegistry.close(); } + } } @@ -96,14 +90,8 @@ public class Broker } finally { - try - { - CurrentActor.remove(); - } - finally - { - clearAMQShortStringCache(); - } + CurrentActor.remove(); + } } @@ -269,15 +257,6 @@ public class Broker LOGGER.debug("Skipping shutdown hook removal as there either isnt one, or we are it."); } } - /** - * Workaround that prevents AMQShortStrings cache from being left in the thread local. This is important - * when embedding the Broker in containers where the starting thread may not belong to Qpid. - * The long term solution here is to stop our use of AMQShortString outside the AMQP transport layer. - */ - private void clearAMQShortStringCache() - { - AMQShortString.clearLocalCache(); - } public org.apache.qpid.server.model.Broker getBroker() { diff --git a/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java b/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java index f37d06f117..25466d9c55 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java +++ b/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java @@ -117,7 +117,7 @@ public class QueueConfiguration extends AbstractConfiguration public String getExchange() { - return getStringValue("exchange", ExchangeDefaults.DEFAULT_EXCHANGE_NAME.asString()); + return getStringValue("exchange", ExchangeDefaults.DEFAULT_EXCHANGE_NAME); } public List getRoutingKeys() diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java index 631490ab5f..c30ebe17be 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java @@ -26,7 +26,6 @@ import org.apache.qpid.AMQException; import org.apache.qpid.AMQInternalException; import org.apache.qpid.AMQSecurityException; import org.apache.qpid.framing.AMQShortString; -import org.apache.qpid.framing.FieldTable; import org.apache.qpid.server.binding.Binding; import org.apache.qpid.server.logging.LogSubject; import org.apache.qpid.server.logging.actors.CurrentActor; @@ -39,7 +38,6 @@ import org.apache.qpid.server.model.UUIDGenerator; import org.apache.qpid.server.plugin.ExchangeType; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.queue.BaseQueue; -import org.apache.qpid.server.queue.QueueRegistry; import org.apache.qpid.server.store.DurableConfigurationStoreHelper; import org.apache.qpid.server.virtualhost.VirtualHost; @@ -57,7 +55,7 @@ import java.util.concurrent.atomic.AtomicLong; public abstract class AbstractExchange implements Exchange { private static final Logger _logger = Logger.getLogger(AbstractExchange.class); - private AMQShortString _name; + private String _name; private final AtomicBoolean _closed = new AtomicBoolean(); private Exchange _alternateExchange; @@ -98,19 +96,15 @@ public abstract class AbstractExchange implements Exchange _type = type; } - public AMQShortString getNameShortString() - { - return _name; - } - - public final AMQShortString getTypeShortString() + @Override + public String getTypeName() { - return _type.getName(); + return _type.getType(); } public void initialise(UUID id, VirtualHost host, - AMQShortString name, + String name, boolean durable, boolean autoDelete) throws AMQException @@ -124,7 +118,7 @@ public abstract class AbstractExchange implements Exchange _logSubject = new ExchangeLogSubject(this, this.getVirtualHost()); // Log Exchange creation - CurrentActor.get().message(ExchangeMessages.CREATED(String.valueOf(getTypeShortString()), String.valueOf(name), durable)); + CurrentActor.get().message(ExchangeMessages.CREATED(getType().getType(), name, durable)); } public boolean isDurable() @@ -159,7 +153,7 @@ public abstract class AbstractExchange implements Exchange public String toString() { - return getClass().getSimpleName() + "[" + getNameShortString() +"]"; + return getClass().getSimpleName() + "[" + getName() +"]"; } public VirtualHost getVirtualHost() @@ -167,11 +161,6 @@ public abstract class AbstractExchange implements Exchange return _virtualHost; } - public final boolean isBound(AMQShortString routingKey, FieldTable ft, AMQQueue queue) - { - return isBound(routingKey == null ? "" : routingKey.asString(), FieldTable.convertToMap(ft), queue); - } - public final boolean isBound(String bindingKey, Map<String,Object> arguments, AMQQueue queue) { for(Binding b : _bindings) @@ -186,11 +175,6 @@ public abstract class AbstractExchange implements Exchange return false; } - public final boolean isBound(AMQShortString routingKey, AMQQueue queue) - { - return isBound(routingKey==null ? "" : routingKey.asString(), queue); - } - public final boolean isBound(String bindingKey, AMQQueue queue) { for(Binding b : _bindings) @@ -203,11 +187,6 @@ public abstract class AbstractExchange implements Exchange return false; } - public final boolean isBound(AMQShortString routingKey) - { - return isBound(routingKey == null ? "" : routingKey.asString()); - } - public final boolean isBound(String bindingKey) { for(Binding b : _bindings) @@ -415,7 +394,7 @@ public abstract class AbstractExchange implements Exchange } if(_logger.isDebugEnabled()) { - _logger.debug("Exchange: " + getName() + " - attempt to enqueue message onto deleted queue " + String.valueOf(q.getNameShortString())); + _logger.debug("Exchange: " + getName() + " - attempt to enqueue message onto deleted queue " + q.getName()); } queues.remove(q); } @@ -531,7 +510,7 @@ public abstract class AbstractExchange implements Exchange // all operations on it to succeed. It is up to the broker to prevent illegal // attempts at binding to this exchange, not the ACLs. // Check access - if (!_virtualHost.getSecurityManager().authoriseUnbind(this, new AMQShortString(bindingKey), queue)) + if (!_virtualHost.getSecurityManager().authoriseUnbind(this, bindingKey, queue)) { throw new AMQSecurityException("Permission denied: unbinding " + bindingKey); } @@ -596,7 +575,7 @@ public abstract class AbstractExchange implements Exchange } //Perform ACLs - if (!_virtualHost.getSecurityManager().authoriseBind(AbstractExchange.this, queue, new AMQShortString(bindingKey))) + if (!_virtualHost.getSecurityManager().authoriseBind(AbstractExchange.this, queue, bindingKey)) { throw new AMQSecurityException("Permission denied: binding " + bindingKey); } diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchange.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchange.java index 8e9f980e6b..aed2ddb8cf 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchange.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchange.java @@ -32,7 +32,6 @@ import org.apache.qpid.AMQInternalException; import org.apache.qpid.AMQSecurityException; import org.apache.qpid.exchange.ExchangeDefaults; import org.apache.qpid.framing.AMQShortString; -import org.apache.qpid.framing.FieldTable; import org.apache.qpid.server.binding.Binding; import org.apache.qpid.server.logging.LogSubject; import org.apache.qpid.server.logging.actors.CurrentActor; @@ -65,7 +64,7 @@ public class DefaultExchange implements Exchange @Override public void initialise(UUID id, VirtualHost host, - AMQShortString name, + String name, boolean durable, boolean autoDelete) throws AMQException { @@ -76,7 +75,7 @@ public class DefaultExchange implements Exchange @Override public String getName() { - return ExchangeDefaults.DEFAULT_EXCHANGE_NAME.asString(); + return ExchangeDefaults.DEFAULT_EXCHANGE_NAME; } @Override @@ -167,7 +166,7 @@ public class DefaultExchange implements Exchange { String queueName = queue.getName(); - UUID exchangeId = UUIDGenerator.generateBindingUUID(ExchangeDefaults.DEFAULT_EXCHANGE_NAME.asString(), + UUID exchangeId = UUIDGenerator.generateBindingUUID(ExchangeDefaults.DEFAULT_EXCHANGE_NAME, queueName, queueName, _virtualHost.getName()); @@ -176,15 +175,9 @@ public class DefaultExchange implements Exchange } @Override - public AMQShortString getNameShortString() + public String getTypeName() { - return AMQShortString.EMPTY_STRING; - } - - @Override - public AMQShortString getTypeShortString() - { - return getType().getName(); + return getType().getType(); } @Override @@ -227,24 +220,6 @@ public class DefaultExchange implements Exchange } @Override - public boolean isBound(AMQShortString routingKey, FieldTable arguments, AMQQueue queue) - { - return isBound(routingKey, queue) && (arguments == null || arguments.isEmpty()); - } - - @Override - public boolean isBound(AMQShortString routingKey, AMQQueue queue) - { - return isBound(routingKey) && isBound(queue) && queue.getNameShortString().equals(routingKey); //To change body of implemented methods use File | Settings | File Templates. - } - - @Override - public boolean isBound(AMQShortString routingKey) - { - return _virtualHost.getQueue(routingKey == null ? null : routingKey.toString()) != null; - } - - @Override public boolean isBound(AMQQueue queue) { return _virtualHost.getQueue(queue.getName()) == queue; diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeFactory.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeFactory.java index a0b80a601c..7263387416 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeFactory.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeFactory.java @@ -44,14 +44,14 @@ public class DefaultExchangeFactory implements ExchangeFactory private static final Logger LOGGER = Logger.getLogger(DefaultExchangeFactory.class); - private static final AMQShortString[] BASE_EXCHANGE_TYPES = - new AMQShortString[]{ExchangeDefaults.DIRECT_EXCHANGE_CLASS, - ExchangeDefaults.FANOUT_EXCHANGE_CLASS, - ExchangeDefaults.HEADERS_EXCHANGE_CLASS, - ExchangeDefaults.TOPIC_EXCHANGE_CLASS}; + private static final String[] BASE_EXCHANGE_TYPES = + new String[]{ExchangeDefaults.DIRECT_EXCHANGE_CLASS, + ExchangeDefaults.FANOUT_EXCHANGE_CLASS, + ExchangeDefaults.HEADERS_EXCHANGE_CLASS, + ExchangeDefaults.TOPIC_EXCHANGE_CLASS}; private final VirtualHost _host; - private Map<AMQShortString, ExchangeType<? extends Exchange>> _exchangeClassMap = new HashMap<AMQShortString, ExchangeType<? extends Exchange>>(); + private Map<String, ExchangeType<? extends Exchange>> _exchangeClassMap = new HashMap<String, ExchangeType<? extends Exchange>>(); public DefaultExchangeFactory(VirtualHost host) { @@ -61,7 +61,7 @@ public class DefaultExchangeFactory implements ExchangeFactory Iterable<ExchangeType> exchangeTypes = loadExchangeTypes(); for (ExchangeType<?> exchangeType : exchangeTypes) { - AMQShortString typeName = exchangeType.getName(); + String typeName = exchangeType.getType(); if(LOGGER.isDebugEnabled()) { @@ -80,11 +80,11 @@ public class DefaultExchangeFactory implements ExchangeFactory _exchangeClassMap.put(typeName, exchangeType); } - for(AMQShortString type : BASE_EXCHANGE_TYPES) + for(String type : BASE_EXCHANGE_TYPES) { if(!_exchangeClassMap.containsKey(type)) { - throw new IllegalStateException("Did not find expected exchange type: " + type.asString()); + throw new IllegalStateException("Did not find expected exchange type: " + type); } } } @@ -114,19 +114,12 @@ public class DefaultExchangeFactory implements ExchangeFactory { UUID id = UUIDGenerator.generateExchangeUUID(exchange, _host.getName()); - return createExchange(id, new AMQShortString(exchange), new AMQShortString(type), durable, autoDelete); + return createExchange(id, exchange, type, durable, autoDelete); } public Exchange createExchange(UUID id, String exchange, String type, boolean durable, boolean autoDelete) throws AMQException { - return createExchange(id, new AMQShortString(exchange), new AMQShortString(type), durable, autoDelete); - } - - private Exchange createExchange(UUID id, AMQShortString exchange, AMQShortString type, boolean durable, - boolean autoDelete) - throws AMQException - { // Check access if (!_host.getSecurityManager().authoriseCreateExchange(autoDelete, durable, exchange, null, null, null, type)) { diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeRegistry.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeRegistry.java index d8263a3c80..b54f995b5e 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeRegistry.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeRegistry.java @@ -68,7 +68,7 @@ public class DefaultExchangeRegistry implements ExchangeRegistry _defaultExchange = new DefaultExchange(_queueRegistry); UUID defaultExchangeId = - UUIDGenerator.generateExchangeUUID(ExchangeDefaults.DEFAULT_EXCHANGE_NAME.asString(), _host.getName()); + UUIDGenerator.generateExchangeUUID(ExchangeDefaults.DEFAULT_EXCHANGE_NAME, _host.getName()); _defaultExchange.initialise(defaultExchangeId, _host, ExchangeDefaults.DEFAULT_EXCHANGE_NAME,false, false); @@ -81,7 +81,7 @@ public class DefaultExchangeRegistry implements ExchangeRegistry public void registerExchange(Exchange exchange) throws AMQException { - _exchangeMap.put(exchange.getNameShortString().toString(), exchange); + _exchangeMap.put(exchange.getName(), exchange); synchronized (_listeners) { for(RegistryChangeListener listener : _listeners) @@ -201,7 +201,7 @@ public class DefaultExchangeRegistry implements ExchangeRegistry public boolean isReservedExchangeName(String name) { - if (name == null || ExchangeDefaults.DEFAULT_EXCHANGE_NAME.asString().equals(name) + if (name == null || ExchangeDefaults.DEFAULT_EXCHANGE_NAME.equals(name) || name.startsWith("amq.") || name.startsWith("qpid.")) { return true; @@ -209,7 +209,7 @@ public class DefaultExchangeRegistry implements ExchangeRegistry Collection<ExchangeType<? extends Exchange>> registeredTypes = _host.getExchangeTypes(); for (ExchangeType<? extends Exchange> type : registeredTypes) { - if (type.getDefaultExchangeName().toString().equals(name)) + if (type.getDefaultExchangeName().equals(name)) { return true; } diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java index 2e2a93d638..1e022c994e 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java @@ -180,10 +180,9 @@ public class DirectExchange extends AbstractExchange { String bindingKey = binding.getBindingKey(); AMQQueue queue = binding.getQueue(); - AMQShortString routingKey = AMQShortString.valueOf(bindingKey); assert queue != null; - assert routingKey != null; + assert bindingKey != null; BindingSet bindings = _bindingsByKey.get(bindingKey); diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchangeType.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchangeType.java index afe00e1b60..d61d10155e 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchangeType.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchangeType.java @@ -33,16 +33,11 @@ public class DirectExchangeType implements ExchangeType<DirectExchange> @Override public String getType() { - return getName().toString(); - } - - public AMQShortString getName() - { return ExchangeDefaults.DIRECT_EXCHANGE_CLASS; } public DirectExchange newInstance(UUID id, VirtualHost host, - AMQShortString name, + String name, boolean durable, boolean autoDelete) throws AMQException { @@ -51,7 +46,7 @@ public class DirectExchangeType implements ExchangeType<DirectExchange> return exch; } - public AMQShortString getDefaultExchangeName() + public String getDefaultExchangeName() { return ExchangeDefaults.DIRECT_EXCHANGE_NAME; } diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/Exchange.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/Exchange.java index 735072cc82..d05e731daa 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/Exchange.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/Exchange.java @@ -23,8 +23,6 @@ package org.apache.qpid.server.exchange; import org.apache.qpid.AMQException; import org.apache.qpid.AMQInternalException; import org.apache.qpid.AMQSecurityException; -import org.apache.qpid.framing.AMQShortString; -import org.apache.qpid.framing.FieldTable; import org.apache.qpid.server.binding.Binding; import org.apache.qpid.server.message.InboundMessage; import org.apache.qpid.server.plugin.ExchangeType; @@ -39,7 +37,7 @@ import java.util.UUID; public interface Exchange extends ExchangeReferrer { - void initialise(UUID id, VirtualHost host, AMQShortString name, boolean durable, boolean autoDelete) + void initialise(UUID id, VirtualHost host, String name, boolean durable, boolean autoDelete) throws AMQException; @@ -47,11 +45,9 @@ public interface Exchange extends ExchangeReferrer String getName(); - AMQShortString getNameShortString(); - ExchangeType getType(); - AMQShortString getTypeShortString(); + String getTypeName(); boolean isDurable(); @@ -107,30 +103,32 @@ public interface Exchange extends ExchangeReferrer /** * Determines whether a message would be isBound to a particular queue using a specific routing key and arguments - * @param routingKey + * @param bindingKey * @param arguments * @param queue * @return * @throws AMQException */ - boolean isBound(AMQShortString routingKey, FieldTable arguments, AMQQueue queue); + + boolean isBound(String bindingKey, Map<String,Object> arguments, AMQQueue queue); /** * Determines whether a message would be isBound to a particular queue using a specific routing key - * @param routingKey + * @param bindingKey * @param queue * @return * @throws AMQException */ - boolean isBound(AMQShortString routingKey, AMQQueue queue); + + boolean isBound(String bindingKey, AMQQueue queue); /** * Determines whether a message is routing to any queue using a specific _routing key - * @param routingKey + * @param bindingKey * @return * @throws AMQException */ - boolean isBound(AMQShortString routingKey); + boolean isBound(String bindingKey); /** * Returns true if this exchange has at least one binding associated with it. @@ -141,20 +139,14 @@ public interface Exchange extends ExchangeReferrer Collection<Binding> getBindings(); - boolean isBound(String bindingKey); - boolean isBound(AMQQueue queue); boolean isBound(Map<String, Object> arguments); - boolean isBound(String bindingKey, AMQQueue queue); - boolean isBound(String bindingKey, Map<String, Object> arguments); boolean isBound(Map<String, Object> arguments, AMQQueue queue); - boolean isBound(String bindingKey, Map<String,Object> arguments, AMQQueue queue); - void removeReference(ExchangeReferrer exchange); void addReference(ExchangeReferrer exchange); diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeInitialiser.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeInitialiser.java index fd7c6a7fe0..6dbc1d54d1 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeInitialiser.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeInitialiser.java @@ -22,7 +22,6 @@ package org.apache.qpid.server.exchange; import org.apache.qpid.AMQException; -import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.server.plugin.ExchangeType; import org.apache.qpid.server.store.DurableConfigurationStoreHelper; import org.apache.qpid.server.store.DurableConfigurationStore; @@ -33,7 +32,7 @@ public class ExchangeInitialiser { for (ExchangeType<? extends Exchange> type : factory.getRegisteredTypes()) { - define (registry, factory, type.getDefaultExchangeName().toString(), type.getName().toString(), store); + define (registry, factory, type.getDefaultExchangeName(), type.getType(), store); } } diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchangeType.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchangeType.java index 43276d8eca..ac864df02c 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchangeType.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchangeType.java @@ -33,15 +33,10 @@ public class FanoutExchangeType implements ExchangeType<FanoutExchange> @Override public String getType() { - return getName().toString(); - } - - public AMQShortString getName() - { return ExchangeDefaults.FANOUT_EXCHANGE_CLASS; } - public FanoutExchange newInstance(UUID id, VirtualHost host, AMQShortString name, + public FanoutExchange newInstance(UUID id, VirtualHost host, String name, boolean durable, boolean autoDelete) throws AMQException { @@ -50,7 +45,7 @@ public class FanoutExchangeType implements ExchangeType<FanoutExchange> return exch; } - public AMQShortString getDefaultExchangeName() + public String getDefaultExchangeName() { return ExchangeDefaults.FANOUT_EXCHANGE_NAME; } diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/FilterSupport.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/FilterSupport.java index 81a89c9b4b..e78516cf69 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/FilterSupport.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/FilterSupport.java @@ -43,13 +43,6 @@ public class FilterSupport private static final Map<String, WeakReference<JMSSelectorFilter>> _selectorCache = Collections.synchronizedMap(new WeakHashMap<String, WeakReference<JMSSelectorFilter>>()); - static MessageFilter createJMSSelectorFilter(FieldTable args) throws AMQInvalidArgumentException - { - final String selectorString = args.getString(AMQPFilterTypes.JMS_SELECTOR.getValue()); - return getMessageFilter(selectorString); - } - - static MessageFilter createJMSSelectorFilter(Map<String, Object> args) throws AMQInvalidArgumentException { final String selectorString = (String) args.get(AMQPFilterTypes.JMS_SELECTOR.toString()); @@ -85,12 +78,6 @@ public class FilterSupport return selector; } - static boolean argumentsContainFilter(final FieldTable args) - { - return argumentsContainNoLocal(args) || argumentsContainJMSSelector(args); - } - - public static boolean argumentsContainFilter(final Map<String, Object> args) { return argumentsContainNoLocal(args) || argumentsContainJMSSelector(args); @@ -112,29 +99,12 @@ public class FilterSupport && Boolean.TRUE.equals(args.get(AMQPFilterTypes.NO_LOCAL.toString())); } - - static boolean argumentsContainNoLocal(final FieldTable args) - { - return args != null - && args.containsKey(AMQPFilterTypes.NO_LOCAL.getValue()) - && Boolean.TRUE.equals(args.get(AMQPFilterTypes.NO_LOCAL.getValue())); - } - - static boolean argumentsContainJMSSelector(final Map<String,Object> args) { return args != null && (args.get(AMQPFilterTypes.JMS_SELECTOR.toString()) instanceof String) && ((String)args.get(AMQPFilterTypes.JMS_SELECTOR.toString())).trim().length() != 0; } - - static boolean argumentsContainJMSSelector(final FieldTable args) - { - return args != null && (args.containsKey(AMQPFilterTypes.JMS_SELECTOR.getValue()) - && args.getString(AMQPFilterTypes.JMS_SELECTOR.getValue()).trim().length() != 0); - } - - static MessageFilter createMessageFilter(final Map<String,Object> args, AMQQueue queue) throws AMQInvalidArgumentException { if(argumentsContainNoLocal(args)) @@ -153,24 +123,6 @@ public class FilterSupport } } - static MessageFilter createMessageFilter(final FieldTable args, AMQQueue queue) throws AMQInvalidArgumentException - { - if(argumentsContainNoLocal(args)) - { - MessageFilter filter = new NoLocalFilter(queue); - - if(argumentsContainJMSSelector(args)) - { - filter = new CompoundFilter(filter, createJMSSelectorFilter(args)); - } - return filter; - } - else - { - return createJMSSelectorFilter(args); - } - } - static final class NoLocalFilter implements MessageFilter { private final AMQQueue _queue; diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java index 9fb745d553..41dd7e010c 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java @@ -89,7 +89,7 @@ public class HeadersExchange extends AbstractExchange { if (_logger.isDebugEnabled()) { - _logger.debug("Exchange " + getNameShortString() + ": routing message with headers " + payload.getMessageHeader()); + _logger.debug("Exchange " + getName() + ": routing message with headers " + payload.getMessageHeader()); } LinkedHashSet<BaseQueue> queues = new LinkedHashSet<BaseQueue>(); @@ -104,8 +104,8 @@ public class HeadersExchange extends AbstractExchange if (_logger.isDebugEnabled()) { - _logger.debug("Exchange " + getNameShortString() + ": delivering message with headers " + - payload.getMessageHeader() + " to " + b.getQueue().getNameShortString()); + _logger.debug("Exchange " + getName() + ": delivering message with headers " + + payload.getMessageHeader() + " to " + b.getQueue().getName()); } queues.add(b.getQueue()); } @@ -118,11 +118,10 @@ public class HeadersExchange extends AbstractExchange { String bindingKey = binding.getBindingKey(); AMQQueue queue = binding.getQueue(); - AMQShortString routingKey = AMQShortString.valueOf(bindingKey); Map<String,Object> args = binding.getArguments(); assert queue != null; - assert routingKey != null; + assert bindingKey != null; CopyOnWriteArraySet<Binding> bindings = _bindingsByKey.get(bindingKey); @@ -138,7 +137,7 @@ public class HeadersExchange extends AbstractExchange if(_logger.isDebugEnabled()) { - _logger.debug("Exchange " + getNameShortString() + ": Binding " + queue.getNameShortString() + + _logger.debug("Exchange " + getName() + ": Binding " + queue.getName() + " with binding key '" +bindingKey + "' and args: " + args); } diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeType.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeType.java index 324a4b9e51..42d04f5a97 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeType.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeType.java @@ -33,15 +33,10 @@ public class HeadersExchangeType implements ExchangeType<HeadersExchange> @Override public String getType() { - return getName().toString(); - } - - public AMQShortString getName() - { return ExchangeDefaults.HEADERS_EXCHANGE_CLASS; } - public HeadersExchange newInstance(UUID id, VirtualHost host, AMQShortString name, boolean durable, + public HeadersExchange newInstance(UUID id, VirtualHost host, String name, boolean durable, boolean autoDelete) throws AMQException { HeadersExchange exch = new HeadersExchange(); @@ -50,7 +45,7 @@ public class HeadersExchangeType implements ExchangeType<HeadersExchange> return exch; } - public AMQShortString getDefaultExchangeName() + public String getDefaultExchangeName() { return ExchangeDefaults.HEADERS_EXCHANGE_NAME; diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java index 9d41856dc0..6b8b84f5dd 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java @@ -50,10 +50,10 @@ public class TopicExchange extends AbstractExchange private final TopicParser _parser = new TopicParser(); - private final Map<AMQShortString, TopicExchangeResult> _topicExchangeResults = - new ConcurrentHashMap<AMQShortString, TopicExchangeResult>(); + private final Map<String, TopicExchangeResult> _topicExchangeResults = + new ConcurrentHashMap<String, TopicExchangeResult>(); - private final Map<Binding, FieldTable> _bindings = new HashMap<Binding, FieldTable>(); + private final Map<Binding, Map<String,Object>> _bindings = new HashMap<Binding, Map<String,Object>>(); public TopicExchange() { @@ -62,21 +62,21 @@ public class TopicExchange extends AbstractExchange protected synchronized void registerQueue(final Binding binding) throws AMQInvalidArgumentException { - AMQShortString rKey = new AMQShortString(binding.getBindingKey()) ; + final String bindingKey = binding.getBindingKey(); AMQQueue queue = binding.getQueue(); - FieldTable args = FieldTable.convertToFieldTable(binding.getArguments()); + Map<String,Object> args = binding.getArguments(); assert queue != null; - assert rKey != null; + assert bindingKey != null; - _logger.debug("Registering queue " + queue.getNameShortString() + " with routing key " + rKey); + _logger.debug("Registering queue " + queue.getName() + " with routing key " + bindingKey); - AMQShortString routingKey = TopicNormalizer.normalize(rKey); + String routingKey = TopicNormalizer.normalize(bindingKey); if(_bindings.containsKey(binding)) { - FieldTable oldArgs = _bindings.get(binding); + Map<String,Object> oldArgs = _bindings.get(binding); TopicExchangeResult result = _topicExchangeResults.get(routingKey); if(FilterSupport.argumentsContainFilter(args)) @@ -150,9 +150,9 @@ public class TopicExchange extends AbstractExchange public ArrayList<BaseQueue> doRoute(InboundMessage payload) { - final AMQShortString routingKey = payload.getRoutingKeyShortString() == null - ? AMQShortString.EMPTY_STRING - : payload.getRoutingKeyShortString(); + final String routingKey = payload.getRoutingKey() == null + ? "" + : payload.getRoutingKey(); final Collection<AMQQueue> matchedQueues = getMatchedQueues(payload, routingKey); @@ -181,8 +181,8 @@ public class TopicExchange extends AbstractExchange { if(_bindings.containsKey(binding)) { - FieldTable bindingArgs = _bindings.remove(binding); - AMQShortString bindingKey = TopicNormalizer.normalize(new AMQShortString(binding.getBindingKey())); + Map<String,Object> bindingArgs = _bindings.remove(binding); + String bindingKey = TopicNormalizer.normalize(binding.getBindingKey()); TopicExchangeResult result = _topicExchangeResults.get(bindingKey); result.removeBinding(binding); @@ -211,7 +211,7 @@ public class TopicExchange extends AbstractExchange } } - private Collection<AMQQueue> getMatchedQueues(InboundMessage message, AMQShortString routingKey) + private Collection<AMQQueue> getMatchedQueues(InboundMessage message, String routingKey) { Collection<TopicMatcherResult> results = _parser.parse(routingKey); diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchangeType.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchangeType.java index 5882d0cdc6..3bbae700be 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchangeType.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchangeType.java @@ -33,16 +33,11 @@ public class TopicExchangeType implements ExchangeType<TopicExchange> @Override public String getType() { - return getName().toString(); - } - - public AMQShortString getName() - { return ExchangeDefaults.TOPIC_EXCHANGE_CLASS; } public TopicExchange newInstance(UUID id, VirtualHost host, - AMQShortString name, + String name, boolean durable, boolean autoDelete) throws AMQException { @@ -51,7 +46,7 @@ public class TopicExchangeType implements ExchangeType<TopicExchange> return exch; } - public AMQShortString getDefaultExchangeName() + public String getDefaultExchangeName() { return ExchangeDefaults.TOPIC_EXCHANGE_NAME; } diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicMatcherDFAState.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicMatcherDFAState.java index dad951c3ca..85338c0760 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicMatcherDFAState.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicMatcherDFAState.java @@ -20,8 +20,8 @@ */ package org.apache.qpid.server.exchange.topic; -import org.apache.qpid.framing.AMQShortString; -import org.apache.qpid.framing.AMQShortStringTokenizer; +import java.util.Arrays; +import java.util.Iterator; import java.util.ArrayList; import java.util.Collection; @@ -44,7 +44,7 @@ public class TopicMatcherDFAState private final Collection<TopicMatcherResult> _results; private final Map<TopicWord, TopicMatcherDFAState> _nextStateMap; - private static final byte TOPIC_DELIMITTER = (byte)'.'; + private static final String TOPIC_DELIMITTER = "\\."; public TopicMatcherDFAState(Map<TopicWord, TopicMatcherDFAState> nextStateMap, @@ -67,19 +67,19 @@ public class TopicMatcherDFAState } - public Collection<TopicMatcherResult> parse(TopicWordDictionary dictionary, AMQShortString routingKey) + public Collection<TopicMatcherResult> parse(TopicWordDictionary dictionary, String routingKey) { - return parse(dictionary, routingKey.tokenize(TOPIC_DELIMITTER)); + return parse(dictionary, Arrays.asList(routingKey.split(TOPIC_DELIMITTER)).iterator()); } private Collection<TopicMatcherResult> parse(final TopicWordDictionary dictionary, - final AMQShortStringTokenizer tokens) + final Iterator<String> tokens) { - if(!tokens.hasMoreTokens()) + if(!tokens.hasNext()) { return _results; } - TopicWord word = dictionary.getWord(tokens.nextToken()); + TopicWord word = dictionary.getWord(tokens.next()); TopicMatcherDFAState nextState = _nextStateMap.get(word); if(nextState == null && word != TopicWord.ANY_WORD) { @@ -96,7 +96,7 @@ public class TopicMatcherDFAState } return nextState.parse(dictionary, tokens); - + } diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicNormalizer.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicNormalizer.java index aac696ae2d..e45d6a539d 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicNormalizer.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicNormalizer.java @@ -20,46 +20,36 @@ */ package org.apache.qpid.server.exchange.topic; -import org.apache.qpid.framing.AMQShortString; -import org.apache.qpid.framing.AMQShortStringTokenizer; - +import java.util.Arrays; +import java.util.Iterator; import java.util.ArrayList; import java.util.List; public class TopicNormalizer { - private static final byte TOPIC_SEPARATOR = (byte)'.'; - private static final byte HASH_BYTE = (byte)'#'; - private static final byte STAR_BYTE = (byte)'*'; - private static final AMQShortString TOPIC_SEPARATOR_AS_SHORTSTRING = new AMQShortString("."); - private static final AMQShortString AMQP_STAR_TOKEN = new AMQShortString("*"); - private static final AMQShortString AMQP_HASH_TOKEN = new AMQShortString("#"); + private static final String STAR_TOKEN = "*"; + private static final String HASH_TOKEN = "#"; + private static final String SEPARATOR = "."; + private TopicNormalizer() { } - public static AMQShortString normalize(AMQShortString routingKey) + public static String normalize(String routingKey) { if(routingKey == null) { - return AMQShortString.EMPTY_STRING; + return ""; } - else if(!(routingKey.contains(HASH_BYTE) || routingKey.contains(STAR_BYTE))) + else if(!(routingKey.contains(HASH_TOKEN) || !routingKey.contains(STAR_TOKEN))) { return routingKey; } else { - AMQShortStringTokenizer routingTokens = routingKey.tokenize(TOPIC_SEPARATOR); - - List<AMQShortString> subscriptionList = new ArrayList<AMQShortString>(); - - while (routingTokens.hasMoreTokens()) - { - subscriptionList.add(routingTokens.nextToken()); - } + List<String> subscriptionList = new ArrayList<String>(Arrays.asList(routingKey.split("\\."))); int size = subscriptionList.size(); @@ -68,9 +58,9 @@ public class TopicNormalizer // if there are more levels if ((index + 1) < size) { - if (subscriptionList.get(index).equals(AMQP_HASH_TOKEN)) + if (subscriptionList.get(index).equals(HASH_TOKEN)) { - if (subscriptionList.get(index + 1).equals(AMQP_HASH_TOKEN)) + if (subscriptionList.get(index + 1).equals(HASH_TOKEN)) { // we don't need #.# delete this one subscriptionList.remove(index); @@ -79,7 +69,7 @@ public class TopicNormalizer index--; } - if (subscriptionList.get(index + 1).equals(AMQP_STAR_TOKEN)) + if (subscriptionList.get(index + 1).equals(STAR_TOKEN)) { // we don't want #.* swap to *.# // remove it and put it in at index + 1 @@ -89,11 +79,14 @@ public class TopicNormalizer } // if we have more levels } - - - AMQShortString normalizedString = AMQShortString.join(subscriptionList, TOPIC_SEPARATOR_AS_SHORTSTRING); - - return normalizedString; + Iterator<String> iter = subscriptionList.iterator(); + StringBuilder builder = new StringBuilder(iter.next()); + while(iter.hasNext()) + { + builder.append(SEPARATOR).append(iter.next()); + } + return builder.toString(); } } + } diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicParser.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicParser.java index 6f47e4e7f2..214ca23b49 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicParser.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicParser.java @@ -20,9 +20,6 @@ */ package org.apache.qpid.server.exchange.topic; -import org.apache.qpid.framing.AMQShortString; -import org.apache.qpid.framing.AMQShortStringTokenizer; - import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -35,7 +32,7 @@ import java.util.concurrent.atomic.AtomicReference; public class TopicParser { - private static final byte TOPIC_DELIMITER = (byte)'.'; + private static final String TOPIC_DELIMITER = "\\."; private final TopicWordDictionary _dictionary = new TopicWordDictionary(); private final AtomicReference<TopicMatcherDFAState> _stateMachine = new AtomicReference<TopicMatcherDFAState>(); @@ -98,7 +95,7 @@ public class TopicParser } - public void addBinding(AMQShortString bindingKey, TopicMatcherResult result) + public void addBinding(String bindingKey, TopicMatcherResult result) { TopicMatcherDFAState startingStateMachine; @@ -121,7 +118,7 @@ public class TopicParser } - public Collection<TopicMatcherResult> parse(AMQShortString routingKey) + public Collection<TopicMatcherResult> parse(String routingKey) { TopicMatcherDFAState stateMachine = _stateMachine.get(); if(stateMachine == null) @@ -135,7 +132,7 @@ public class TopicParser } - TopicMatcherDFAState createStateMachine(AMQShortString bindingKey, TopicMatcherResult result) + TopicMatcherDFAState createStateMachine(String bindingKey, TopicMatcherResult result) { List<TopicWord> wordList = createTopicWordList(bindingKey); int wildCards = 0; @@ -422,16 +419,16 @@ public class TopicParser } - private List<TopicWord> createTopicWordList(final AMQShortString bindingKey) + private List<TopicWord> createTopicWordList(final String bindingKey) { - AMQShortStringTokenizer tokens = bindingKey.tokenize(TOPIC_DELIMITER); + String[] tokens = bindingKey.split(TOPIC_DELIMITER); TopicWord previousWord = null; List<TopicWord> wordList = new ArrayList<TopicWord>(); - while(tokens.hasMoreTokens()) + for(String token : tokens) { - TopicWord nextWord = _dictionary.getOrCreateWord(tokens.nextToken()); + TopicWord nextWord = _dictionary.getOrCreateWord(token); if(previousWord == TopicWord.WILDCARD_WORD) { diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicWord.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicWord.java index 7345d30a0a..c905299733 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicWord.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicWord.java @@ -21,29 +21,17 @@ package org.apache.qpid.server.exchange.topic; -import org.apache.qpid.framing.AMQShortString; - public final class TopicWord { public static final TopicWord ANY_WORD = new TopicWord("*"); public static final TopicWord WILDCARD_WORD = new TopicWord("#"); private String _word; - public TopicWord() - { - - } - public TopicWord(String s) { _word = s; } - public TopicWord(final AMQShortString name) - { - _word = name.toString(); - } - public String toString() { return _word; diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicWordDictionary.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicWordDictionary.java index 181c26dd66..24c41ee7da 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicWordDictionary.java +++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/topic/TopicWordDictionary.java @@ -20,27 +20,20 @@ */ package org.apache.qpid.server.exchange.topic; -import org.apache.qpid.framing.AMQShortString; - import java.util.concurrent.ConcurrentHashMap; public class TopicWordDictionary { - private final ConcurrentHashMap<AMQShortString,TopicWord> _dictionary = - new ConcurrentHashMap<AMQShortString,TopicWord>(); - - + private final ConcurrentHashMap<String,TopicWord> _dictionary = + new ConcurrentHashMap<String,TopicWord>(); public TopicWordDictionary() { - _dictionary.put(new AMQShortString("*"), TopicWord.ANY_WORD); - _dictionary.put(new AMQShortString("#"), TopicWord.WILDCARD_WORD); + _dictionary.put("*", TopicWord.ANY_WORD); + _dictionary.put("#", TopicWord.WILDCARD_WORD); } - - - - public TopicWord getOrCreateWord(AMQShortString name) + public TopicWord getOrCreateWord(String name) { TopicWord word = _dictionary.putIfAbsent(name, new TopicWord(name)); if(word == null) @@ -51,7 +44,7 @@ public class TopicWordDictionary } - public TopicWord getWord(AMQShortString name) + public TopicWord getWord(String name) { TopicWord word = _dictionary.get(name); if(word == null) diff --git a/java/broker/src/main/java/org/apache/qpid/server/filter/FilterManagerFactory.java b/java/broker/src/main/java/org/apache/qpid/server/filter/FilterManagerFactory.java index 56f0a6e08d..07049a6c97 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/filter/FilterManagerFactory.java +++ b/java/broker/src/main/java/org/apache/qpid/server/filter/FilterManagerFactory.java @@ -14,9 +14,9 @@ * "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. + * under the License. + * * - * */ package org.apache.qpid.server.filter; @@ -35,7 +35,7 @@ import java.util.Map; public class FilterManagerFactory { - + private final static Logger _logger = Logger.getLogger(FilterManagerFactory.class); private FilterManagerFactory() @@ -44,25 +44,23 @@ public class FilterManagerFactory //fixme move to a common class so it can be refered to from client code. - public static FilterManager createManager(FieldTable filters) throws AMQException + public static FilterManager createManager(Map<String,Object> filters) throws AMQException { FilterManager manager = null; if (filters != null) { - - - if(filters.containsKey(AMQPFilterTypes.JMS_SELECTOR.getValue())) + if(filters.containsKey(AMQPFilterTypes.JMS_SELECTOR.toString())) { - String selector = filters.getString(AMQPFilterTypes.JMS_SELECTOR.getValue()); + Object selector = filters.get(AMQPFilterTypes.JMS_SELECTOR.toString()); - if (selector != null && !selector.equals("")) + if (selector instanceof String && !selector.equals("")) { manager = new SimpleFilterManager(); try { - manager.add(new JMSSelectorFilter(selector)); + manager.add(new JMSSelectorFilter((String)selector)); } catch (ParseException e) { @@ -91,9 +89,5 @@ public class FilterManagerFactory return manager; } - - public static FilterManager createManager(Map<String,Object> map) throws AMQException - { - return createManager(FieldTable.convertToFieldTable(map)); - } + } diff --git a/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/BindingLogSubject.java b/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/BindingLogSubject.java index 6f18cbcc6b..a633162e85 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/BindingLogSubject.java +++ b/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/BindingLogSubject.java @@ -42,9 +42,9 @@ public class BindingLogSubject extends AbstractLogSubject { setLogStringWithFormat(BINDING_FORMAT, queue.getVirtualHost().getName(), - exchange.getTypeShortString(), - exchange.getNameShortString(), - queue.getNameShortString(), + exchange.getType().getType(), + exchange.getName(), + queue.getName(), routingKey); } diff --git a/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubject.java b/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubject.java index 99a54cc6d0..5affafad75 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubject.java +++ b/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubject.java @@ -32,6 +32,6 @@ public class ExchangeLogSubject extends AbstractLogSubject public ExchangeLogSubject(Exchange exchange, VirtualHost vhost) { setLogStringWithFormat(EXCHANGE_FORMAT, vhost.getName(), - exchange.getTypeShortString(), exchange.getNameShortString()); + exchange.getType().getType(), exchange.getName()); } } diff --git a/java/broker/src/main/java/org/apache/qpid/server/message/InboundMessage.java b/java/broker/src/main/java/org/apache/qpid/server/message/InboundMessage.java index c6dbb49061..1b3fdb1870 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/message/InboundMessage.java +++ b/java/broker/src/main/java/org/apache/qpid/server/message/InboundMessage.java @@ -21,13 +21,11 @@ package org.apache.qpid.server.message; -import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.server.queue.Filterable; public interface InboundMessage extends Filterable { String getRoutingKey(); - AMQShortString getRoutingKeyShortString(); AMQMessageHeader getMessageHeader(); diff --git a/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java b/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java index 07083fc661..8efce39ea2 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java +++ b/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java @@ -30,9 +30,7 @@ import java.util.Map; import org.apache.qpid.AMQException; import org.apache.qpid.AMQInternalException; import org.apache.qpid.AMQSecurityException; -import org.apache.qpid.protocol.AMQConstant; import org.apache.qpid.server.binding.Binding; -import org.apache.qpid.server.exchange.ExchangeRegistry; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.Exchange; import org.apache.qpid.server.model.LifetimePolicy; @@ -42,7 +40,6 @@ import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.Statistics; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.util.MapValueConverter; -import org.apache.qpid.server.virtualhost.ExchangeIsAlternateException; import org.apache.qpid.server.virtualhost.RequiredExchangeException; import org.apache.qpid.server.virtualhost.VirtualHost; @@ -90,7 +87,7 @@ final class ExchangeAdapter extends AbstractAdapter implements Exchange, org.apa public String getExchangeType() { - return _exchange.getType().getName().toString(); + return _exchange.getType().getType(); } public Collection<org.apache.qpid.server.model.Binding> getBindings() @@ -357,7 +354,7 @@ final class ExchangeAdapter extends AbstractAdapter implements Exchange, org.apa } else if(TYPE.equals(name)) { - return _exchange.getType().getName().asString(); + return _exchange.getTypeName(); } return super.getAttribute(name); } diff --git a/java/broker/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java b/java/broker/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java index 96a7eacb92..074f7c243b 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java +++ b/java/broker/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java @@ -411,7 +411,7 @@ final class QueueAdapter extends AbstractAdapter implements Queue, AMQQueue.Subs } else if(OWNER.equals(name)) { - return _queue.getOwner() == null ? null : _queue.getOwner().asString(); + return _queue.getOwner(); } else if(QUEUE_FLOW_CONTROL_SIZE_BYTES.equals(name)) { diff --git a/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java b/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java index 977fd5ae56..58b0b76735 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java +++ b/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java @@ -67,13 +67,11 @@ import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.queue.AMQQueueFactory; import org.apache.qpid.server.queue.QueueArgumentsConverter; import org.apache.qpid.server.queue.QueueEntry; -import org.apache.qpid.server.queue.QueueRegistry; import org.apache.qpid.server.queue.SimpleAMQQueue; import org.apache.qpid.server.security.SecurityManager; import org.apache.qpid.server.security.access.Operation; import org.apache.qpid.server.security.auth.AuthenticatedPrincipal; import org.apache.qpid.server.stats.StatisticsGatherer; -import org.apache.qpid.server.store.DurableConfigurationStoreHelper; import org.apache.qpid.server.store.MessageStore; import org.apache.qpid.server.txn.LocalTransaction; import org.apache.qpid.server.txn.ServerTransaction; @@ -767,7 +765,7 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual for(ExchangeType<? extends org.apache.qpid.server.exchange.Exchange> type : types) { - exchangeTypes.add(type.getName().asString()); + exchangeTypes.add(type.getType()); } return Collections.unmodifiableCollection(exchangeTypes); } @@ -921,7 +919,7 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual List<String> types = new ArrayList<String>(); for(@SuppressWarnings("rawtypes") ExchangeType type : _virtualHost.getExchangeTypes()) { - types.add(type.getName().asString()); + types.add(type.getType()); } return Collections.unmodifiableCollection(types); } diff --git a/java/broker/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java b/java/broker/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java index 8093ed3d16..ab19fa196e 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java +++ b/java/broker/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java @@ -30,8 +30,9 @@ import org.apache.qpid.server.virtualhost.VirtualHost; public interface ExchangeType<T extends Exchange> extends Pluggable { public String getType(); - public AMQShortString getName(); - public T newInstance(UUID id, VirtualHost host, AMQShortString name, + + public T newInstance(UUID id, VirtualHost host, String name, boolean durable, boolean autoDelete) throws AMQException; - public AMQShortString getDefaultExchangeName(); + + public String getDefaultExchangeName(); } diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java b/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java index cb6a9249d3..ceebe4f965 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java +++ b/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java @@ -76,7 +76,7 @@ public interface AMQQueue extends Comparable<AMQQueue>, ExchangeReferrer, Transa boolean isAutoDelete(); - AMQShortString getOwner(); + String getOwner(); AuthorizationHolder getAuthorizationHolder(); void setAuthorizationHolder(AuthorizationHolder principalHolder); diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java b/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java index 5001c2fd2b..86c436389a 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java +++ b/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java @@ -46,6 +46,7 @@ public class AMQQueueFactory implements QueueFactory public static final String DEFAULT_DLQ_NAME_SUFFIX = "_DLQ"; public static final String DLQ_ROUTING_KEY = "dlq"; + private static final int MAX_LENGTH = 255; private final VirtualHost _virtualHost; private final QueueRegistry _queueRegistry; @@ -59,15 +60,15 @@ public class AMQQueueFactory implements QueueFactory private abstract static class QueueProperty { - private final AMQShortString _argumentName; + private final String _argumentName; public QueueProperty(String argumentName) { - _argumentName = new AMQShortString(argumentName); + _argumentName = argumentName; } - public AMQShortString getArgumentName() + public String getArgumentName() { return _argumentName; } @@ -280,9 +281,9 @@ public class AMQQueueFactory implements QueueFactory { for(QueueProperty p : DECLAREABLE_PROPERTIES) { - if(arguments.containsKey(p.getArgumentName().toString())) + if(arguments.containsKey(p.getArgumentName())) { - p.setPropertyValue(q, arguments.get(p.getArgumentName().toString())); + p.setPropertyValue(q, arguments.get(p.getArgumentName())); } } @@ -305,7 +306,7 @@ public class AMQQueueFactory implements QueueFactory { dlExchange = _virtualHost.createExchange(dlExchangeId, dlExchangeName, - ExchangeDefaults.FANOUT_EXCHANGE_CLASS.toString(), + ExchangeDefaults.FANOUT_EXCHANGE_CLASS, true, false, null); } catch(ExchangeExistsException e) @@ -401,16 +402,16 @@ public class AMQQueueFactory implements QueueFactory { // check if DLQ name and DLQ exchange name do not exceed 255 String exchangeName = getDeadLetterExchangeName(name); - if (exchangeName.length() > AMQShortString.MAX_LENGTH) + if (exchangeName.length() > MAX_LENGTH) { throw new IllegalArgumentException("DL exchange name '" + exchangeName - + "' length exceeds limit of " + AMQShortString.MAX_LENGTH + " characters for queue " + name); + + "' length exceeds limit of " + MAX_LENGTH + " characters for queue " + name); } String queueName = getDeadLetterQueueName(name); - if (queueName.length() > AMQShortString.MAX_LENGTH) + if (queueName.length() > MAX_LENGTH) { throw new IllegalArgumentException("DLQ queue name '" + queueName + "' length exceeds limit of " - + AMQShortString.MAX_LENGTH + " characters for queue " + name); + + MAX_LENGTH + " characters for queue " + name); } } diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/BaseQueue.java b/java/broker/src/main/java/org/apache/qpid/server/queue/BaseQueue.java index cef7e2d0c8..6145570b0c 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/queue/BaseQueue.java +++ b/java/broker/src/main/java/org/apache/qpid/server/queue/BaseQueue.java @@ -40,5 +40,5 @@ public interface BaseQueue extends TransactionLogResource boolean isDurable(); boolean isDeleted(); - AMQShortString getNameShortString(); + String getName(); } diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/DefaultQueueRegistry.java b/java/broker/src/main/java/org/apache/qpid/server/queue/DefaultQueueRegistry.java index 7308433759..513bbeac3d 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/queue/DefaultQueueRegistry.java +++ b/java/broker/src/main/java/org/apache/qpid/server/queue/DefaultQueueRegistry.java @@ -20,7 +20,6 @@ */ package org.apache.qpid.server.queue; -import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.server.virtualhost.VirtualHost; import java.util.ArrayList; @@ -31,7 +30,7 @@ import java.util.concurrent.ConcurrentMap; public class DefaultQueueRegistry implements QueueRegistry { - private ConcurrentMap<AMQShortString, AMQQueue> _queueMap = new ConcurrentHashMap<AMQShortString, AMQQueue>(); + private ConcurrentMap<String, AMQQueue> _queueMap = new ConcurrentHashMap<String, AMQQueue>(); private final VirtualHost _virtualHost; private final Collection<RegistryChangeListener> _listeners = @@ -49,7 +48,7 @@ public class DefaultQueueRegistry implements QueueRegistry public void registerQueue(AMQQueue queue) { - _queueMap.put(queue.getNameShortString(), queue); + _queueMap.put(queue.getName(), queue); synchronized (_listeners) { for(RegistryChangeListener listener : _listeners) @@ -59,9 +58,8 @@ public class DefaultQueueRegistry implements QueueRegistry } } - public void unregisterQueue(String nameString) + public void unregisterQueue(String name) { - AMQShortString name = new AMQShortString(nameString); AMQQueue q = _queueMap.remove(name); if(q != null) { @@ -75,10 +73,6 @@ public class DefaultQueueRegistry implements QueueRegistry } } - private AMQQueue getQueue(AMQShortString name) - { - return _queueMap.get(name); - } public Collection<AMQQueue> getQueues() { @@ -87,7 +81,7 @@ public class DefaultQueueRegistry implements QueueRegistry public AMQQueue getQueue(String queue) { - return getQueue(new AMQShortString(queue)); + return _queueMap.get(queue); } public void addRegistryChangeListener(RegistryChangeListener listener) diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/InboundMessageAdapter.java b/java/broker/src/main/java/org/apache/qpid/server/queue/InboundMessageAdapter.java index d7dbd58537..2a78ee430c 100755 --- a/java/broker/src/main/java/org/apache/qpid/server/queue/InboundMessageAdapter.java +++ b/java/broker/src/main/java/org/apache/qpid/server/queue/InboundMessageAdapter.java @@ -44,12 +44,6 @@ public class InboundMessageAdapter implements InboundMessage _entry = entry; } - - public AMQShortString getRoutingKeyShortString() - { - return AMQShortString.valueOf(_entry.getMessage().getRoutingKey()); - } - public String getRoutingKey() { return _entry.getMessage().getRoutingKey(); diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/NotificationCheck.java b/java/broker/src/main/java/org/apache/qpid/server/queue/NotificationCheck.java index 3efef9ab98..566cdd0ea5 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/queue/NotificationCheck.java +++ b/java/broker/src/main/java/org/apache/qpid/server/queue/NotificationCheck.java @@ -28,7 +28,7 @@ public enum NotificationCheck MESSAGE_COUNT_ALERT
{
- public boolean notifyIfNecessary(ServerMessage<?> msg, AMQQueue queue, AMQQueue.NotificationListener listener) + public boolean notifyIfNecessary(ServerMessage<?> msg, AMQQueue queue, AMQQueue.NotificationListener listener)
{
int msgCount;
final long maximumMessageCount = queue.getMaximumMessageCount();
@@ -45,7 +45,7 @@ public enum NotificationCheck },
MESSAGE_SIZE_ALERT(true)
{
- public boolean notifyIfNecessary(ServerMessage<?> msg, AMQQueue queue, AMQQueue.NotificationListener listener) + public boolean notifyIfNecessary(ServerMessage<?> msg, AMQQueue queue, AMQQueue.NotificationListener listener)
{
final long maximumMessageSize = queue.getMaximumMessageSize();
if(maximumMessageSize != 0)
@@ -57,7 +57,7 @@ public enum NotificationCheck if (messageSize >= maximumMessageSize)
{
String notificationMsg = messageSize + "b : Maximum message size threshold ("+ maximumMessageSize +") breached. [Message ID=" + msg.getMessageNumber() + "]";
-
+
logNotification(this, queue, notificationMsg);
listener.notifyClients(this, queue, notificationMsg);
return true;
@@ -69,7 +69,7 @@ public enum NotificationCheck },
QUEUE_DEPTH_ALERT
{
- public boolean notifyIfNecessary(ServerMessage<?> msg, AMQQueue queue, AMQQueue.NotificationListener listener) + public boolean notifyIfNecessary(ServerMessage<?> msg, AMQQueue queue, AMQQueue.NotificationListener listener)
{
// Check for threshold queue depth in bytes
final long maximumQueueDepth = queue.getMaximumQueueDepth();
@@ -81,7 +81,7 @@ public enum NotificationCheck if (queueDepth >= maximumQueueDepth)
{
String notificationMsg = (queueDepth>>10) + "Kb : Maximum queue depth threshold ("+(maximumQueueDepth>>10)+"Kb) breached.";
-
+
logNotification(this, queue, notificationMsg);
listener.notifyClients(this, queue, notificationMsg);
return true;
@@ -93,7 +93,7 @@ public enum NotificationCheck },
MESSAGE_AGE_ALERT
{
- public boolean notifyIfNecessary(ServerMessage<?> msg, AMQQueue queue, AMQQueue.NotificationListener listener) + public boolean notifyIfNecessary(ServerMessage<?> msg, AMQQueue queue, AMQQueue.NotificationListener listener)
{
final long maxMessageAge = queue.getMaximumMessageAge();
@@ -107,7 +107,7 @@ public enum NotificationCheck {
long oldestAge = currentTime - firstArrivalTime;
String notificationMsg = (oldestAge/1000) + "s : Maximum age on queue threshold ("+(maxMessageAge /1000)+"s) breached.";
-
+
logNotification(this, queue, notificationMsg);
listener.notifyClients(this, queue, notificationMsg);
@@ -115,7 +115,7 @@ public enum NotificationCheck }
}
return false;
-
+
}
}
@@ -140,11 +140,11 @@ public enum NotificationCheck return _messageSpecific;
}
- public abstract boolean notifyIfNecessary(ServerMessage<?> msg, AMQQueue queue, AMQQueue.NotificationListener listener); + public abstract boolean notifyIfNecessary(ServerMessage<?> msg, AMQQueue queue, AMQQueue.NotificationListener listener);
//A bit of a hack, only for use until we do the logging listener
private static void logNotification(NotificationCheck notification, AMQQueue queue, String notificationMsg)
{
- LOGGER.info(notification.name() + " On Queue " + queue.getNameShortString() + " - " + notificationMsg);
+ LOGGER.info(notification.name() + " On Queue " + queue.getName() + " - " + notificationMsg);
}
}
diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java b/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java index e3dbd62b6c..fb36433799 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java +++ b/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java @@ -78,10 +78,10 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes private final VirtualHost _virtualHost; - private final AMQShortString _name; + private final String _name; /** null means shared */ - private final AMQShortString _owner; + private final String _owner; private AuthorizationHolder _authorizationHolder; @@ -194,25 +194,16 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes private AMQQueue.NotificationListener _notificationListener; private final long[] _lastNotificationTimes = new long[NotificationCheck.values().length]; - protected SimpleAMQQueue(UUID id, AMQShortString name, boolean durable, AMQShortString owner, boolean autoDelete, boolean exclusive, VirtualHost virtualHost, Map<String,Object> arguments) - { - this(id, name, durable, owner, autoDelete, exclusive,virtualHost, new SimpleQueueEntryList.Factory(), arguments); - } public SimpleAMQQueue(UUID id, String queueName, boolean durable, String owner, boolean autoDelete, boolean exclusive, VirtualHost virtualHost, Map<String, Object> arguments) { this(id, queueName, durable, owner, autoDelete, exclusive, virtualHost, new SimpleQueueEntryList.Factory(), arguments); } - public SimpleAMQQueue(UUID id, String queueName, boolean durable, String owner, boolean autoDelete, boolean exclusive, VirtualHost virtualHost, QueueEntryListFactory entryListFactory, Map<String, Object> arguments) - { - this(id, queueName == null ? null : new AMQShortString(queueName), durable, owner == null ? null : new AMQShortString(owner), autoDelete, exclusive, virtualHost, entryListFactory, arguments); - } - protected SimpleAMQQueue(UUID id, - AMQShortString name, + String name, boolean durable, - AMQShortString owner, + String owner, boolean autoDelete, boolean exclusive, VirtualHost virtualHost, @@ -311,11 +302,6 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes } } - public AMQShortString getNameShortString() - { - return _name; - } - public void setNoLocal(boolean nolocal) { _nolocal = nolocal; @@ -377,7 +363,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes return _autoDelete; } - public AMQShortString getOwner() + public String getOwner() { return _owner; } @@ -400,7 +386,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes public String getName() { - return getNameShortString().toString(); + return _name; } // ------ Manage Subscriptions @@ -1066,7 +1052,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes public int compareTo(final AMQQueue o) { - return _name.compareTo(o.getNameShortString()); + return _name.compareTo(o.getName()); } public AtomicInteger getAtomicQueueCount() @@ -2196,7 +2182,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes @Override public String toString() { - return String.valueOf(getNameShortString()); + return getName(); } public long getUnackedMessageCountHigh() diff --git a/java/broker/src/main/java/org/apache/qpid/server/security/SecurityManager.java b/java/broker/src/main/java/org/apache/qpid/server/security/SecurityManager.java index 960986ec45..ff45add206 100755 --- a/java/broker/src/main/java/org/apache/qpid/server/security/SecurityManager.java +++ b/java/broker/src/main/java/org/apache/qpid/server/security/SecurityManager.java @@ -20,7 +20,6 @@ package org.apache.qpid.server.security; import org.apache.log4j.Logger; -import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.server.exchange.Exchange; import org.apache.qpid.server.model.AccessControlProvider; @@ -290,7 +289,7 @@ public class SecurityManager implements ConfigurationChangeListener return true; } - public boolean authoriseBind(final Exchange exch, final AMQQueue queue, final AMQShortString routingKey) + public boolean authoriseBind(final Exchange exch, final AMQQueue queue, final String routingKey) { return checkAllPlugins(new AccessCheck() { @@ -352,8 +351,8 @@ public class SecurityManager implements ConfigurationChangeListener }); } - public boolean authoriseCreateExchange(final Boolean autoDelete, final Boolean durable, final AMQShortString exchangeName, - final Boolean internal, final Boolean nowait, final Boolean passive, final AMQShortString exchangeType) + public boolean authoriseCreateExchange(final Boolean autoDelete, final Boolean durable, final String exchangeName, + final Boolean internal, final Boolean nowait, final Boolean passive, final String exchangeType) { return checkAllPlugins(new AccessCheck() { @@ -492,7 +491,7 @@ public class SecurityManager implements ConfigurationChangeListener }); } - public boolean authoriseUnbind(final Exchange exch, final AMQShortString routingKey, final AMQQueue queue) + public boolean authoriseUnbind(final Exchange exch, final String routingKey, final AMQQueue queue) { return checkAllPlugins(new AccessCheck() { diff --git a/java/broker/src/main/java/org/apache/qpid/server/security/access/ObjectProperties.java b/java/broker/src/main/java/org/apache/qpid/server/security/access/ObjectProperties.java index 893b371d11..a379f85bbb 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/security/access/ObjectProperties.java +++ b/java/broker/src/main/java/org/apache/qpid/server/security/access/ObjectProperties.java @@ -26,7 +26,6 @@ import java.util.Map; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.builder.EqualsBuilder; -import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.server.exchange.Exchange; import org.apache.qpid.server.queue.AMQQueue; @@ -136,12 +135,6 @@ public class ObjectProperties setName(name); } - - public ObjectProperties(AMQShortString name) - { - setName(name); - } - public ObjectProperties(AMQQueue queue) { setName(queue.getName()); @@ -164,7 +157,7 @@ public class ObjectProperties } } - public ObjectProperties(Exchange exch, AMQQueue queue, AMQShortString routingKey) + public ObjectProperties(Exchange exch, AMQQueue queue, String routingKey) { this(queue); @@ -174,11 +167,6 @@ public class ObjectProperties put(Property.ROUTING_KEY, routingKey); } - public ObjectProperties(Exchange exch, AMQShortString routingKey) - { - this(exch.getName(), routingKey.asString()); - } - public ObjectProperties(String exchangeName, String routingKey, Boolean immediate) { this(exchangeName, routingKey); @@ -195,8 +183,8 @@ public class ObjectProperties put(Property.ROUTING_KEY, routingKey); } - public ObjectProperties(Boolean autoDelete, Boolean durable, AMQShortString exchangeName, - Boolean internal, Boolean nowait, Boolean passive, AMQShortString exchangeType) + public ObjectProperties(Boolean autoDelete, Boolean durable, String exchangeName, + Boolean internal, Boolean nowait, Boolean passive, String exchangeType) { super(); @@ -257,16 +245,6 @@ public class ObjectProperties _properties.put(Property.NAME, name); } - public void setName(AMQShortString name) - { - put(Property.NAME, name); - } - - public String put(Property key, AMQShortString value) - { - return put(key, value == null ? "" : value.asString()); - } - public String put(Property key, String value) { return _properties.put(key, value == null ? "" : value.trim()); diff --git a/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/amqplain/AmqPlainSaslServer.java b/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/amqplain/AmqPlainSaslServer.java index eecc704011..a4c4fff42f 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/amqplain/AmqPlainSaslServer.java +++ b/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/amqplain/AmqPlainSaslServer.java @@ -7,9 +7,9 @@ * 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 @@ -61,13 +61,13 @@ public class AmqPlainSaslServer implements SaslServer try { final FieldTable ft = FieldTableFactory.newFieldTable(new DataInputStream(new ByteArrayInputStream(response)), response.length); - String username = (String) ft.getString("LOGIN"); + String username = ft.getString("LOGIN"); // we do not care about the prompt but it throws if null NameCallback nameCb = new NameCallback("prompt", username); // we do not care about the prompt but it throws if null PasswordCallback passwordCb = new PasswordCallback("prompt", false); // TODO: should not get pwd as a String but as a char array... - String pwd = (String) ft.getString("PASSWORD"); + String pwd = ft.getString("PASSWORD"); AuthorizeCallback authzCb = new AuthorizeCallback(username, username); Callback[] callbacks = new Callback[]{nameCb, passwordCb, authzCb}; _cbh.handle(callbacks); diff --git a/java/broker/src/main/java/org/apache/qpid/server/store/DurableConfigurationStoreHelper.java b/java/broker/src/main/java/org/apache/qpid/server/store/DurableConfigurationStoreHelper.java index 15c2c768bb..d311685375 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/store/DurableConfigurationStoreHelper.java +++ b/java/broker/src/main/java/org/apache/qpid/server/store/DurableConfigurationStoreHelper.java @@ -53,7 +53,7 @@ public class DurableConfigurationStoreHelper { Map<String, Object> attributesMap = new LinkedHashMap<String, Object>(); attributesMap.put(Queue.NAME, queue.getName()); - attributesMap.put(Queue.OWNER, AMQShortString.toString(queue.getOwner())); + attributesMap.put(Queue.OWNER, queue.getOwner()); attributesMap.put(Queue.EXCLUSIVE, queue.isExclusive()); if (queue.getAlternateExchange() != null) @@ -79,7 +79,7 @@ public class DurableConfigurationStoreHelper { Map<String, Object> attributesMap = new HashMap<String, Object>(); attributesMap.put(Queue.NAME, queue.getName()); - attributesMap.put(Queue.OWNER, AMQShortString.toString(queue.getOwner())); + attributesMap.put(Queue.OWNER, queue.getOwner()); attributesMap.put(Queue.EXCLUSIVE, queue.isExclusive()); if (queue.getAlternateExchange() != null) { @@ -106,7 +106,7 @@ public class DurableConfigurationStoreHelper { Map<String, Object> attributesMap = new HashMap<String, Object>(); attributesMap.put(Exchange.NAME, exchange.getName()); - attributesMap.put(Exchange.TYPE, AMQShortString.toString(exchange.getTypeShortString())); + attributesMap.put(Exchange.TYPE, exchange.getTypeName()); attributesMap.put(Exchange.LIFETIME_POLICY, exchange.isAutoDelete() ? LifetimePolicy.AUTO_DELETE.name() : LifetimePolicy.PERMANENT.name()); store.create(exchange.getId(), EXCHANGE, attributesMap); diff --git a/java/broker/src/main/java/org/apache/qpid/server/txn/AsyncAutoCommitTransaction.java b/java/broker/src/main/java/org/apache/qpid/server/txn/AsyncAutoCommitTransaction.java index 43e60c8e13..31e4dc6def 100755 --- a/java/broker/src/main/java/org/apache/qpid/server/txn/AsyncAutoCommitTransaction.java +++ b/java/broker/src/main/java/org/apache/qpid/server/txn/AsyncAutoCommitTransaction.java @@ -38,7 +38,7 @@ import java.util.List; /** * An implementation of ServerTransaction where each enqueue/dequeue * operation takes place within it own transaction. - * + * * Since there is no long-lived transaction, the commit and rollback methods of * this implementation are empty. */ @@ -98,13 +98,13 @@ public class AsyncAutoCommitTransaction implements ServerTransaction { if (_logger.isDebugEnabled()) { - _logger.debug("Dequeue of message number " + message.getMessageNumber() + " from transaction log. Queue : " + queue.getNameShortString()); + _logger.debug("Dequeue of message number " + message.getMessageNumber() + " from transaction log. Queue : " + queue.getName()); } txn = _messageStore.newTransaction(); txn.dequeueMessage(queue, message); future = txn.commitTranAsync(); - + txn = null; } else @@ -172,7 +172,7 @@ public class AsyncAutoCommitTransaction implements ServerTransaction { if (_logger.isDebugEnabled()) { - _logger.debug("Dequeue of message number " + message.getMessageNumber() + " from transaction log. Queue : " + queue.getNameShortString()); + _logger.debug("Dequeue of message number " + message.getMessageNumber() + " from transaction log. Queue : " + queue.getName()); } if(txn == null) @@ -220,7 +220,7 @@ public class AsyncAutoCommitTransaction implements ServerTransaction { if (_logger.isDebugEnabled()) { - _logger.debug("Enqueue of message number " + message.getMessageNumber() + " to transaction log. Queue : " + queue.getNameShortString()); + _logger.debug("Enqueue of message number " + message.getMessageNumber() + " to transaction log. Queue : " + queue.getName()); } txn = _messageStore.newTransaction(); @@ -262,19 +262,19 @@ public class AsyncAutoCommitTransaction implements ServerTransaction { if (_logger.isDebugEnabled()) { - _logger.debug("Enqueue of message number " + message.getMessageNumber() + " to transaction log. Queue : " + queue.getNameShortString()); + _logger.debug("Enqueue of message number " + message.getMessageNumber() + " to transaction log. Queue : " + queue.getName()); } if (txn == null) { txn = _messageStore.newTransaction(); } - + txn.enqueueMessage(queue, message); } } - + } StoreFuture future; if (txn != null) @@ -320,8 +320,8 @@ public class AsyncAutoCommitTransaction implements ServerTransaction } }); } - } - + } + public void commit() { } diff --git a/java/broker/src/main/java/org/apache/qpid/server/txn/AutoCommitTransaction.java b/java/broker/src/main/java/org/apache/qpid/server/txn/AutoCommitTransaction.java index 8a9479a2d4..b081641f47 100755 --- a/java/broker/src/main/java/org/apache/qpid/server/txn/AutoCommitTransaction.java +++ b/java/broker/src/main/java/org/apache/qpid/server/txn/AutoCommitTransaction.java @@ -37,7 +37,7 @@ import java.util.List; /** * An implementation of ServerTransaction where each enqueue/dequeue * operation takes place within it own transaction. - * + * * Since there is no long-lived transaction, the commit and rollback methods of * this implementation are empty. */ @@ -82,7 +82,7 @@ public class AutoCommitTransaction implements ServerTransaction { if (_logger.isDebugEnabled()) { - _logger.debug("Dequeue of message number " + message.getMessageNumber() + " from transaction log. Queue : " + queue.getNameShortString()); + _logger.debug("Dequeue of message number " + message.getMessageNumber() + " from transaction log. Queue : " + queue.getName()); } txn = _messageStore.newTransaction(); @@ -119,7 +119,7 @@ public class AutoCommitTransaction implements ServerTransaction { if (_logger.isDebugEnabled()) { - _logger.debug("Dequeue of message number " + message.getMessageNumber() + " from transaction log. Queue : " + queue.getNameShortString()); + _logger.debug("Dequeue of message number " + message.getMessageNumber() + " from transaction log. Queue : " + queue.getName()); } if(txn == null) @@ -161,7 +161,7 @@ public class AutoCommitTransaction implements ServerTransaction { if (_logger.isDebugEnabled()) { - _logger.debug("Enqueue of message number " + message.getMessageNumber() + " to transaction log. Queue : " + queue.getNameShortString()); + _logger.debug("Enqueue of message number " + message.getMessageNumber() + " to transaction log. Queue : " + queue.getName()); } txn = _messageStore.newTransaction(); @@ -199,19 +199,19 @@ public class AutoCommitTransaction implements ServerTransaction { if (_logger.isDebugEnabled()) { - _logger.debug("Enqueue of message number " + message.getMessageNumber() + " to transaction log. Queue : " + queue.getNameShortString()); + _logger.debug("Enqueue of message number " + message.getMessageNumber() + " to transaction log. Queue : " + queue.getName()); } if (txn == null) { txn = _messageStore.newTransaction(); } - + txn.enqueueMessage(queue, message); } } - + } if (txn != null) { @@ -240,8 +240,8 @@ public class AutoCommitTransaction implements ServerTransaction public void commit(final Runnable immediatePostTransactionAction) { immediatePostTransactionAction.run(); - } - + } + public void commit() { } diff --git a/java/broker/src/main/java/org/apache/qpid/server/txn/LocalTransaction.java b/java/broker/src/main/java/org/apache/qpid/server/txn/LocalTransaction.java index afa7cb0fb4..23265199c7 100755 --- a/java/broker/src/main/java/org/apache/qpid/server/txn/LocalTransaction.java +++ b/java/broker/src/main/java/org/apache/qpid/server/txn/LocalTransaction.java @@ -1,5 +1,5 @@ /* - * + * * 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 @@ -7,16 +7,16 @@ * 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.server.txn; @@ -39,7 +39,7 @@ import java.util.List; /** * A concrete implementation of ServerTransaction where enqueue/dequeue * operations share a single long-lived transaction. - * + * * The caller is responsible for invoking commit() (or rollback()) as necessary. */ public class LocalTransaction implements ServerTransaction @@ -103,7 +103,7 @@ public class LocalTransaction implements ServerTransaction { if (_logger.isDebugEnabled()) { - _logger.debug("Dequeue of message number " + message.getMessageNumber() + " from transaction log. Queue : " + queue.getNameShortString()); + _logger.debug("Dequeue of message number " + message.getMessageNumber() + " from transaction log. Queue : " + queue.getName()); } beginTranIfNecessary(); @@ -135,7 +135,7 @@ public class LocalTransaction implements ServerTransaction { if (_logger.isDebugEnabled()) { - _logger.debug("Dequeue of message number " + message.getMessageNumber() + " from transaction log. Queue : " + queue.getNameShortString()); + _logger.debug("Dequeue of message number " + message.getMessageNumber() + " from transaction log. Queue : " + queue.getName()); } beginTranIfNecessary(); @@ -207,7 +207,7 @@ public class LocalTransaction implements ServerTransaction { if (_logger.isDebugEnabled()) { - _logger.debug("Enqueue of message number " + message.getMessageNumber() + " to transaction log. Queue : " + queue.getNameShortString()); + _logger.debug("Enqueue of message number " + message.getMessageNumber() + " to transaction log. Queue : " + queue.getName()); } beginTranIfNecessary(); @@ -238,7 +238,7 @@ public class LocalTransaction implements ServerTransaction { if (_logger.isDebugEnabled()) { - _logger.debug("Enqueue of message number " + message.getMessageNumber() + " to transaction log. Queue : " + queue.getNameShortString() ); + _logger.debug("Enqueue of message number " + message.getMessageNumber() + " to transaction log. Queue : " + queue.getName() ); } beginTranIfNecessary(); diff --git a/java/broker/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java b/java/broker/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java index d782594a0d..02144c6ae1 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java +++ b/java/broker/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java @@ -479,6 +479,12 @@ public abstract class AbstractVirtualHost implements VirtualHost, IConnectionReg boolean deleteOnNoConsumer, Map<String, Object> arguments) throws AMQException { + + if (queueName == null) + { + throw new IllegalArgumentException("Queue name must not be null"); + } + // Access check if (!getSecurityManager().authoriseCreateQueue(autoDelete, durable, @@ -610,7 +616,7 @@ public abstract class AbstractVirtualHost implements VirtualHost, IConnectionReg for(ExchangeType type : getExchangeTypes()) { - if(type.getDefaultExchangeName().toString().equals( exchange.getName() )) + if(type.getDefaultExchangeName().equals( exchange.getName() )) { throw new RequiredExchangeException(exchange.getName()); } @@ -890,8 +896,7 @@ public abstract class AbstractVirtualHost implements VirtualHost, IConnectionReg q.checkMessageStatus(); } catch (Exception e) { - _logger.error("Exception in housekeeping for queue: " - + q.getNameShortString().toString(), e); + _logger.error("Exception in housekeeping for queue: " + q.getName(), e); //Don't throw exceptions as this will stop the // house keeping task from running. } diff --git a/java/broker/src/main/java/org/apache/qpid/server/virtualhost/BindingRecoverer.java b/java/broker/src/main/java/org/apache/qpid/server/virtualhost/BindingRecoverer.java index 2d3a620e91..2e1ef61567 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/virtualhost/BindingRecoverer.java +++ b/java/broker/src/main/java/org/apache/qpid/server/virtualhost/BindingRecoverer.java @@ -114,7 +114,7 @@ public class BindingRecoverer extends AbstractDurableConfiguredObjectRecoverer<B { if(_exchange.getBinding(_bindingName, _queue, _bindingArgumentsMap) == null) { - _logger.info("Restoring binding: (Exchange: " + _exchange.getNameShortString() + ", Queue: " + _queue.getName() + _logger.info("Restoring binding: (Exchange: " + _exchange.getName() + ", Queue: " + _queue.getName() + ", Routing Key: " + _bindingName + ", Arguments: " + _bindingArgumentsMap + ")"); _exchange.restoreBinding(_bindingId, _bindingName, _queue, _bindingArgumentsMap); diff --git a/java/broker/src/test/java/org/apache/qpid/server/exchange/DefaultExchangeFactoryTest.java b/java/broker/src/test/java/org/apache/qpid/server/exchange/DefaultExchangeFactoryTest.java index cf6e98d6ca..86ae3e6e9c 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/exchange/DefaultExchangeFactoryTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/exchange/DefaultExchangeFactoryTest.java @@ -95,7 +95,7 @@ public class DefaultExchangeFactoryTest extends QpidTestCase } catch (IllegalStateException e) { - assertEquals("Unexpected exception message", "Did not find expected exchange type: " + _directExchangeType.getName(), e.getMessage()); + assertEquals("Unexpected exception message", "Did not find expected exchange type: " + _directExchangeType.getType(), e.getMessage()); } } @@ -112,7 +112,7 @@ public class DefaultExchangeFactoryTest extends QpidTestCase } catch (IllegalStateException e) { - assertEquals("Unexpected exception message", "Did not find expected exchange type: " + _topicExchangeType.getName(), e.getMessage()); + assertEquals("Unexpected exception message", "Did not find expected exchange type: " + _topicExchangeType.getType(), e.getMessage()); } } @@ -129,7 +129,7 @@ public class DefaultExchangeFactoryTest extends QpidTestCase } catch (IllegalStateException e) { - assertEquals("Unexpected exception message", "Did not find expected exchange type: " + _fanoutExchangeType.getName(), e.getMessage()); + assertEquals("Unexpected exception message", "Did not find expected exchange type: " + _fanoutExchangeType.getType(), e.getMessage()); } } @@ -146,7 +146,7 @@ public class DefaultExchangeFactoryTest extends QpidTestCase } catch (IllegalStateException e) { - assertEquals("Unexpected exception message", "Did not find expected exchange type: " + _headersExchangeType.getName(), e.getMessage()); + assertEquals("Unexpected exception message", "Did not find expected exchange type: " + _headersExchangeType.getType(), e.getMessage()); } } @@ -163,7 +163,7 @@ public class DefaultExchangeFactoryTest extends QpidTestCase catch (IllegalStateException e) { assertTrue( "Unexpected exception message", e.getMessage().contains("ExchangeType with type name '" - + _directExchangeType.getName() + "' is already registered using class '" + + _directExchangeType.getType() + "' is already registered using class '" + DirectExchangeType.class.getName())); } } @@ -175,24 +175,18 @@ public class DefaultExchangeFactoryTest extends QpidTestCase @Override public String getType() { - return getName().toString(); + return "my-custom-exchange"; } @Override - public AMQShortString getName() - { - return new AMQShortString("my-custom-exchange"); - } - - @Override - public Exchange newInstance(UUID id, VirtualHost host, AMQShortString name, boolean durable, + public Exchange newInstance(UUID id, VirtualHost host, String name, boolean durable, boolean autoDelete) throws AMQException { return null; } @Override - public AMQShortString getDefaultExchangeName() + public String getDefaultExchangeName() { return null; } diff --git a/java/broker/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java b/java/broker/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java index f608bc8cb0..7335d43b2e 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java @@ -22,11 +22,13 @@ package org.apache.qpid.server.exchange; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anySet; +import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.UUID; import junit.framework.TestCase; @@ -61,22 +63,22 @@ public class FanoutExchangeTest extends TestCase _virtualHost = mock(VirtualHost.class); SecurityManager securityManager = mock(SecurityManager.class); when(_virtualHost.getSecurityManager()).thenReturn(securityManager); - when(securityManager.authoriseBind(any(Exchange.class), any(AMQQueue.class), any(AMQShortString.class))).thenReturn(true); - when(securityManager.authoriseUnbind(any(Exchange.class), any(AMQShortString.class), any(AMQQueue.class))).thenReturn(true); + when(securityManager.authoriseBind(any(Exchange.class), any(AMQQueue.class), anyString())).thenReturn(true); + when(securityManager.authoriseUnbind(any(Exchange.class), anyString(), any(AMQQueue.class))).thenReturn(true); - _exchange.initialise(UUID.randomUUID(), _virtualHost, AMQShortString.valueOf("test"), false, false); + _exchange.initialise(UUID.randomUUID(), _virtualHost, "test", false, false); } - public void testIsBoundAMQShortStringFieldTableAMQQueueWhenQueueIsNull() + public void testIsBoundStringMapAMQQueueWhenQueueIsNull() { assertFalse("calling isBound(AMQShortString,FieldTable,AMQQueue) with null queue should return false", - _exchange.isBound((AMQShortString) null, (FieldTable) null, (AMQQueue) null)); + _exchange.isBound((String) null, (Map) null, (AMQQueue) null)); } - public void testIsBoundAMQShortStringAMQQueueWhenQueueIsNull() + public void testIsBoundStringAMQQueueWhenQueueIsNull() { assertFalse("calling isBound(AMQShortString,AMQQueue) with null queue should return false", - _exchange.isBound((AMQShortString) null, (AMQQueue) null)); + _exchange.isBound((String) null, (AMQQueue) null)); } public void testIsBoundAMQQueueWhenQueueIsNull() @@ -84,18 +86,18 @@ public class FanoutExchangeTest extends TestCase assertFalse("calling isBound(AMQQueue) with null queue should return false", _exchange.isBound((AMQQueue) null)); } - public void testIsBoundAMQShortStringFieldTableAMQQueue() throws AMQSecurityException, AMQInternalException + public void testIsBoundStringMapAMQQueue() throws AMQSecurityException, AMQInternalException { AMQQueue queue = bindQueue(); assertTrue("Should return true for a bound queue", - _exchange.isBound(new AMQShortString("matters"), (FieldTable) null, queue)); + _exchange.isBound("matters", null, queue)); } - public void testIsBoundAMQShortStringAMQQueue() throws AMQSecurityException, AMQInternalException + public void testIsBoundStringAMQQueue() throws AMQSecurityException, AMQInternalException { AMQQueue queue = bindQueue(); assertTrue("Should return true for a bound queue", - _exchange.isBound(new AMQShortString("matters"), queue)); + _exchange.isBound("matters", queue)); } public void testIsBoundAMQQueue() throws AMQSecurityException, AMQInternalException diff --git a/java/broker/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java b/java/broker/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java index d76c7d1128..0f1ab65244 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java @@ -65,10 +65,10 @@ public class HeadersExchangeTest extends TestCase _virtualHost = mock(VirtualHost.class); SecurityManager securityManager = mock(SecurityManager.class); when(_virtualHost.getSecurityManager()).thenReturn(securityManager); - when(securityManager.authoriseBind(any(Exchange.class), any(AMQQueue.class), any(AMQShortString.class))).thenReturn(true); - when(securityManager.authoriseUnbind(any(Exchange.class), any(AMQShortString.class), any(AMQQueue.class))).thenReturn(true); + when(securityManager.authoriseBind(any(Exchange.class), any(AMQQueue.class), anyString())).thenReturn(true); + when(securityManager.authoriseUnbind(any(Exchange.class), anyString(), any(AMQQueue.class))).thenReturn(true); - _exchange.initialise(UUID.randomUUID(), _virtualHost, AMQShortString.valueOf("test"), false, false); + _exchange.initialise(UUID.randomUUID(), _virtualHost, "test", false, false); } diff --git a/java/broker/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java b/java/broker/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java index 7adec3d595..a84f5e1ecb 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java @@ -316,7 +316,6 @@ public class TopicExchangeTest extends QpidTestCase { InboundMessage inboundMessage = mock(InboundMessage.class); when(inboundMessage.getRoutingKey()).thenReturn(routingKey); - when(inboundMessage.getRoutingKeyShortString()).thenReturn(new AMQShortString(routingKey)); List<? extends BaseQueue> queues = _exchange.route(inboundMessage); ServerMessage message = mock(ServerMessage.class); MessageReference ref = mock(MessageReference.class); diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ExchangeMessagesTest.java b/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ExchangeMessagesTest.java index 1cb4da55c3..f1452b8b88 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ExchangeMessagesTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ExchangeMessagesTest.java @@ -34,8 +34,8 @@ public class ExchangeMessagesTest extends AbstractTestMessages { Exchange exchange = BrokerTestHelper.createExchange("test"); - String type = exchange.getTypeShortString().toString(); - String name = exchange.getNameShortString().toString(); + String type = exchange.getTypeName(); + String name = exchange.getName(); _logMessage = ExchangeMessages.CREATED(type, name, false); List<Object> log = performLog(); @@ -49,8 +49,8 @@ public class ExchangeMessagesTest extends AbstractTestMessages { Exchange exchange = BrokerTestHelper.createExchange("test"); - String type = exchange.getTypeShortString().toString(); - String name = exchange.getNameShortString().toString(); + String type = exchange.getTypeName(); + String name = exchange.getName(); _logMessage = ExchangeMessages.CREATED(type, name, true); List<Object> log = performLog(); @@ -74,7 +74,7 @@ public class ExchangeMessagesTest extends AbstractTestMessages { Exchange exchange = BrokerTestHelper.createExchange("test"); - final String name = exchange.getNameShortString().toString(); + final String name = exchange.getName(); final String routingKey = "routingKey"; _logMessage = ExchangeMessages.DISCARDMSG(name, routingKey); diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java b/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java index f779295cd4..cd8f13d52e 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java @@ -21,7 +21,6 @@ package org.apache.qpid.server.logging.subjects; -import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.server.exchange.Exchange; import org.apache.qpid.server.logging.LogActor; import org.apache.qpid.server.logging.LogMessage; @@ -146,14 +145,14 @@ public abstract class AbstractTestLogSubject extends QpidTestCase * @param message The message to check * @param routingKey The routing key to check against */ - protected void verifyRoutingKey(String message, AMQShortString routingKey) + protected void verifyRoutingKey(String message, String routingKey) { String routingKeySlice = getSlice("rk", message); - assertNotNull("Routing Key not found:" + message, routingKey); + assertNotNull("Routing Key not found:" + message, routingKeySlice); assertEquals("Routing key not correct", - routingKey.toString(), routingKeySlice); + routingKey, routingKeySlice); } /** @@ -169,7 +168,7 @@ public abstract class AbstractTestLogSubject extends QpidTestCase assertNotNull("Queue not found:" + message, queueSlice); assertEquals("Queue name not correct", - queue.getNameShortString().toString(), queueSlice); + queue.getName(), queueSlice); } /** @@ -191,10 +190,10 @@ public abstract class AbstractTestLogSubject extends QpidTestCase exchangeParts.length); assertEquals("Exchange type not correct", - exchange.getTypeShortString().toString(), exchangeParts[0]); + exchange.getType().getType(), exchangeParts[0]); assertEquals("Exchange name not correct", - exchange.getNameShortString().toString(), exchangeParts[1]); + exchange.getName(), exchangeParts[1]); } diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/BindingLogSubjectTest.java b/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/BindingLogSubjectTest.java index e63744af9a..e52ead451e 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/BindingLogSubjectTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/BindingLogSubjectTest.java @@ -34,7 +34,7 @@ public class BindingLogSubjectTest extends AbstractTestLogSubject { private AMQQueue _queue; - private AMQShortString _routingKey; + private String _routingKey; private Exchange _exchange; private VirtualHost _testVhost; @@ -44,12 +44,12 @@ public class BindingLogSubjectTest extends AbstractTestLogSubject super.setUp(); _testVhost = BrokerTestHelper.createVirtualHost("test"); - _routingKey = new AMQShortString("RoutingKey"); + _routingKey = "RoutingKey"; _exchange = _testVhost.getExchange("amq.direct"); _queue = new MockAMQQueue("BindingLogSubjectTest"); ((MockAMQQueue) _queue).setVirtualHost(_testVhost); - _subject = new BindingLogSubject(String.valueOf(_routingKey), _exchange, _queue); + _subject = new BindingLogSubject(_routingKey, _exchange, _queue); } @Override diff --git a/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java b/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java index 62c9b4c46d..ecc20aa48a 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java @@ -39,7 +39,6 @@ import java.util.UUID; import org.apache.qpid.AMQException; import org.apache.qpid.exchange.ExchangeDefaults; -import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.server.configuration.BrokerProperties; import org.apache.qpid.server.configuration.QueueConfiguration; import org.apache.qpid.server.configuration.VirtualHostConfiguration; @@ -51,7 +50,6 @@ import org.apache.qpid.server.logging.actors.CurrentActor; import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.model.UUIDGenerator; import org.apache.qpid.server.plugin.ExchangeType; -import org.apache.qpid.server.security.SecurityManager; import org.apache.qpid.server.store.DurableConfigurationStore; import org.apache.qpid.server.virtualhost.VirtualHost; import org.apache.qpid.test.utils.QpidTestCase; @@ -176,9 +174,10 @@ public class AMQQueueFactoryTest extends QpidTestCase when(exchange.getName()).thenReturn(name); when(exchange.getId()).thenReturn(id); when(exchange.getType()).thenReturn(exType); + final String typeName = type.getValue(); when(exType.getType()).thenReturn(typeName); - when(exType.getName()).thenReturn(new AMQShortString(typeName)); + when(exchange.getTypeName()).thenReturn(typeName); when(_virtualHost.getExchange(eq(name))).thenReturn(exchange); when(_virtualHost.getExchange(eq(id))).thenReturn(exchange); @@ -277,7 +276,7 @@ public class AMQQueueFactoryTest extends QpidTestCase Exchange altExchange = queue.getAlternateExchange(); assertNotNull("Queue should have an alternate exchange as DLQ is enabled", altExchange); assertEquals("Alternate exchange name was not as expected", dlExchangeName, altExchange.getName()); - assertEquals("Alternate exchange type was not as expected", ExchangeDefaults.FANOUT_EXCHANGE_CLASS, altExchange.getType().getName()); + assertEquals("Alternate exchange type was not as expected", ExchangeDefaults.FANOUT_EXCHANGE_CLASS, altExchange.getTypeName()); assertNotNull("The alternate exchange was not registered as expected", _virtualHost.getExchange(dlExchangeName)); assertEquals("The registered exchange was not the expected exchange instance", altExchange, _virtualHost.getExchange(dlExchangeName)); @@ -318,7 +317,7 @@ public class AMQQueueFactoryTest extends QpidTestCase Exchange altExchange = queue.getAlternateExchange(); assertNotNull("Queue should have an alternate exchange as DLQ is enabled", altExchange); assertEquals("Alternate exchange name was not as expected", dlExchangeName, altExchange.getName()); - assertEquals("Alternate exchange type was not as expected", ExchangeDefaults.FANOUT_EXCHANGE_CLASS, altExchange.getType().getName()); + assertEquals("Alternate exchange type was not as expected", ExchangeDefaults.FANOUT_EXCHANGE_CLASS, altExchange.getTypeName()); assertNotNull("The alternate exchange was not registered as expected", _virtualHost.getExchange(dlExchangeName)); assertEquals("The registered exchange was not the expected exchange instance", altExchange, _virtualHost.getExchange(dlExchangeName)); diff --git a/java/broker/src/test/java/org/apache/qpid/server/queue/InboundMessageAdapterTest.java b/java/broker/src/test/java/org/apache/qpid/server/queue/InboundMessageAdapterTest.java index 2f160678ba..584e26d88f 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/queue/InboundMessageAdapterTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/queue/InboundMessageAdapterTest.java @@ -53,14 +53,6 @@ public class InboundMessageAdapterTest extends QpidTestCase assertEquals("Unexpected value for routing key", routingKey, _inboundMessageAdapter.getRoutingKey()); } - public void testGetRoutingKeyShortString() throws Exception - { - String routingKey = getTestName(); - when(_mockMessage.getRoutingKey()).thenReturn(routingKey); - - AMQShortString routingKeyShortString = AMQShortString.valueOf(routingKey); - assertEquals("Unexpected value for routing key short string", routingKeyShortString, _inboundMessageAdapter.getRoutingKeyShortString()); - } public void testGetMessageHeader() throws Exception { diff --git a/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java b/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java index e490db288c..2a0c12ff3e 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java +++ b/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java @@ -43,7 +43,7 @@ import java.util.concurrent.CopyOnWriteArrayList; public class MockAMQQueue implements AMQQueue { private boolean _deleted = false; - private AMQShortString _name; + private String _name; private VirtualHost _virtualhost; private AuthorizationHolder _authorizationHolder; @@ -54,7 +54,7 @@ public class MockAMQQueue implements AMQQueue public MockAMQQueue(String name) { - _name = new AMQShortString(name); + _name = name; } public boolean getDeleteOnNoConsumers() @@ -163,11 +163,6 @@ public class MockAMQQueue implements AMQQueue return 0; } - public AMQShortString getNameShortString() - { - return _name; - } - public void setNoLocal(boolean b) { @@ -194,7 +189,7 @@ public class MockAMQQueue implements AMQQueue } - public AMQShortString getOwner() + public String getOwner() { return null; } @@ -211,7 +206,7 @@ public class MockAMQQueue implements AMQQueue public String getName() { - return _name.asString(); + return _name; } public void registerSubscription(Subscription subscription, boolean exclusive) throws AMQException diff --git a/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java b/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java index 2328745b83..3a41bb9c72 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java @@ -60,41 +60,13 @@ public class SimpleAMQQueueTest extends QpidTestCase private SimpleAMQQueue _queue; private VirtualHost _virtualHost; - private AMQShortString _qname = new AMQShortString("qname"); - private AMQShortString _owner = new AMQShortString("owner"); - private AMQShortString _routingKey = new AMQShortString("routing key"); + private String _qname = "qname"; + private String _owner = "owner"; + private String _routingKey = "routing key"; private DirectExchange _exchange; private MockSubscription _subscription = new MockSubscription(); private Map<String,Object> _arguments = null; - private MessagePublishInfo info = new MessagePublishInfo() - { - - public AMQShortString getExchange() - { - return null; - } - - public void setExchange(AMQShortString exchange) - { - } - - public boolean isImmediate() - { - return false; - } - - public boolean isMandatory() - { - return false; - } - - public AMQShortString getRoutingKey() - { - return null; - } - }; - @Override public void setUp() throws Exception { @@ -103,10 +75,10 @@ public class SimpleAMQQueueTest extends QpidTestCase _virtualHost = BrokerTestHelper.createVirtualHost(getClass().getName()); - _queue = (SimpleAMQQueue) _virtualHost.createQueue(UUIDGenerator.generateRandomUUID(), _qname.asString(), false, _owner.asString(), + _queue = (SimpleAMQQueue) _virtualHost.createQueue(UUIDGenerator.generateRandomUUID(), _qname, false, _owner, false, false, false, _arguments); - _exchange = (DirectExchange) _virtualHost.getExchange(ExchangeDefaults.DIRECT_EXCHANGE_NAME.toString()); + _exchange = (DirectExchange) _virtualHost.getExchange(ExchangeDefaults.DIRECT_EXCHANGE_NAME); } @Override @@ -130,7 +102,7 @@ public class SimpleAMQQueueTest extends QpidTestCase try { _queue = (SimpleAMQQueue) _virtualHost.createQueue(UUIDGenerator.generateRandomUUID(), null, - false, _owner.asString(), false, + false, _owner, false, false, false, _arguments); assertNull("Queue was created", _queue); } @@ -153,7 +125,7 @@ public class SimpleAMQQueueTest extends QpidTestCase _queue = (SimpleAMQQueue) _virtualHost.createQueue(UUIDGenerator.generateRandomUUID(), "differentName", false, - _owner.asString(), false, + _owner, false, false, false, _arguments); assertNotNull("Queue was not created", _queue); } @@ -165,7 +137,7 @@ public class SimpleAMQQueueTest extends QpidTestCase public void testBinding() throws AMQSecurityException, AMQInternalException { - _exchange.addBinding(String.valueOf(_routingKey), _queue, Collections.EMPTY_MAP); + _exchange.addBinding(_routingKey, _queue, Collections.EMPTY_MAP); assertTrue("Routing key was not bound", _exchange.isBound(_routingKey)); @@ -173,12 +145,12 @@ public class SimpleAMQQueueTest extends QpidTestCase _exchange.isBound(_routingKey,_queue)); assertEquals("Exchange binding count", 1, _queue.getBindings().size()); - assertEquals("Wrong exchange bound", String.valueOf(_routingKey), + assertEquals("Wrong exchange bound", _routingKey, _queue.getBindings().get(0).getBindingKey()); assertEquals("Wrong exchange bound", _exchange, _queue.getBindings().get(0).getExchange()); - _exchange.removeBinding(String.valueOf(_routingKey), _queue, Collections.EMPTY_MAP); + _exchange.removeBinding(_routingKey, _queue, Collections.EMPTY_MAP); assertFalse("Routing key was still bound", _exchange.isBound(_routingKey)); @@ -873,8 +845,8 @@ public class SimpleAMQQueueTest extends QpidTestCase int dequeueMessageIndex = 1; // create queue with overridden method deliverAsync - SimpleAMQQueue testQueue = new SimpleAMQQueue(UUIDGenerator.generateRandomUUID(), new AMQShortString("test"), - false, new AMQShortString("testOwner"), false, false, _virtualHost, null) + SimpleAMQQueue testQueue = new SimpleAMQQueue(UUIDGenerator.generateRandomUUID(), "test", + false, "testOwner", false, false, _virtualHost, null) { @Override public void deliverAsync(Subscription sub) @@ -944,8 +916,8 @@ public class SimpleAMQQueueTest extends QpidTestCase public void testEnqueueDequeuedEntry() { // create a queue where each even entry is considered a dequeued - SimpleAMQQueue queue = new SimpleAMQQueue(UUIDGenerator.generateRandomUUID(), new AMQShortString("test"), false, - new AMQShortString("testOwner"), false, false, _virtualHost, new QueueEntryListFactory() + SimpleAMQQueue queue = new SimpleAMQQueue(UUIDGenerator.generateRandomUUID(), "test", false, + "testOwner", false, false, _virtualHost, new QueueEntryListFactory() { public QueueEntryList createQueueEntryList(AMQQueue queue) { @@ -1022,8 +994,8 @@ public class SimpleAMQQueueTest extends QpidTestCase public void testActiveConsumerCount() throws Exception { - final SimpleAMQQueue queue = new SimpleAMQQueue(UUIDGenerator.generateRandomUUID(), new AMQShortString("testActiveConsumerCount"), false, - new AMQShortString("testOwner"), false, false, _virtualHost, new SimpleQueueEntryList.Factory(), null); + final SimpleAMQQueue queue = new SimpleAMQQueue(UUIDGenerator.generateRandomUUID(), "testActiveConsumerCount", false, + "testOwner", false, false, _virtualHost, new SimpleQueueEntryList.Factory(), null); //verify adding an active subscription increases the count final MockSubscription subscription1 = new MockSubscription(); diff --git a/java/broker/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java b/java/broker/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java index 50a3582811..fd8148f2ce 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java +++ b/java/broker/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java @@ -38,8 +38,6 @@ import java.util.UUID; import org.apache.commons.configuration.Configuration; import org.apache.qpid.AMQStoreException; import org.apache.qpid.common.AMQPFilterTypes; -import org.apache.qpid.framing.AMQShortString; -import org.apache.qpid.framing.FieldTable; import org.apache.qpid.server.binding.Binding; import org.apache.qpid.server.exchange.Exchange; import org.apache.qpid.server.message.EnqueableMessage; @@ -80,7 +78,7 @@ public abstract class AbstractDurableConfigurationStoreTestCase extends QpidTest private Exchange _exchange = mock(Exchange.class); private static final String ROUTING_KEY = "routingKey"; private static final String QUEUE_NAME = "queueName"; - private FieldTable _bindingArgs; + private Map<String,Object> _bindingArgs; private UUID _queueId; private UUID _exchangeId; private DurableConfigurationStore _configStore; @@ -108,14 +106,15 @@ public abstract class AbstractDurableConfigurationStoreTestCase extends QpidTest when(_messageStoreRecoveryHandler.begin()).thenReturn(_storedMessageRecoveryHandler); when(_logRecoveryHandler.begin(any(MessageStore.class))).thenReturn(_queueEntryRecoveryHandler); when(_queueEntryRecoveryHandler.completeQueueEntryRecovery()).thenReturn(_dtxRecordRecoveryHandler); - when(_exchange.getNameShortString()).thenReturn(AMQShortString.valueOf(EXCHANGE_NAME)); + when(_exchange.getName()).thenReturn(EXCHANGE_NAME); + when(_exchange.getId()).thenReturn(_exchangeId); when(_configuration.getString(eq(MessageStoreConstants.ENVIRONMENT_PATH_PROPERTY), anyString())).thenReturn( _storePath); when(_virtualHost.getAttribute(eq(VirtualHost.STORE_PATH))).thenReturn(_storePath); - _bindingArgs = new FieldTable(); - AMQShortString argKey = AMQPFilterTypes.JMS_SELECTOR.getValue(); + _bindingArgs = new HashMap<String, Object>(); + String argKey = AMQPFilterTypes.JMS_SELECTOR.toString(); String argValue = "some selector expression"; _bindingArgs.put(argKey, argValue); @@ -183,7 +182,7 @@ public abstract class AbstractDurableConfigurationStoreTestCase extends QpidTest { AMQQueue queue = createTestQueue(QUEUE_NAME, "queueOwner", false, null); Binding binding = new Binding(UUIDGenerator.generateRandomUUID(), ROUTING_KEY, queue, - _exchange, FieldTable.convertToMap(_bindingArgs)); + _exchange, _bindingArgs); DurableConfigurationStoreHelper.createBinding(_configStore, binding); reopenStore(); @@ -192,7 +191,7 @@ public abstract class AbstractDurableConfigurationStoreTestCase extends QpidTest map.put(org.apache.qpid.server.model.Binding.EXCHANGE, _exchange.getId().toString()); map.put(org.apache.qpid.server.model.Binding.QUEUE, queue.getId().toString()); map.put(org.apache.qpid.server.model.Binding.NAME, ROUTING_KEY); - map.put(org.apache.qpid.server.model.Binding.ARGUMENTS,FieldTable.convertToMap(_bindingArgs)); + map.put(org.apache.qpid.server.model.Binding.ARGUMENTS,_bindingArgs); verify(_recoveryHandler).configuredObject(eq(binding.getId()), eq(BINDING), eq(map)); @@ -202,7 +201,7 @@ public abstract class AbstractDurableConfigurationStoreTestCase extends QpidTest { AMQQueue queue = createTestQueue(QUEUE_NAME, "queueOwner", false, null); Binding binding = new Binding(UUIDGenerator.generateRandomUUID(), ROUTING_KEY, queue, - _exchange, FieldTable.convertToMap(_bindingArgs)); + _exchange, _bindingArgs); DurableConfigurationStoreHelper.createBinding(_configStore, binding); DurableConfigurationStoreHelper.removeBinding(_configStore, binding); @@ -363,8 +362,7 @@ public abstract class AbstractDurableConfigurationStoreTestCase extends QpidTest { AMQQueue queue = mock(AMQQueue.class); when(queue.getName()).thenReturn(queueName); - when(queue.getNameShortString()).thenReturn(AMQShortString.valueOf(queueName)); - when(queue.getOwner()).thenReturn(AMQShortString.valueOf(queueOwner)); + when(queue.getOwner()).thenReturn(queueOwner); when(queue.isExclusive()).thenReturn(exclusive); when(queue.getId()).thenReturn(_queueId); when(queue.getAlternateExchange()).thenReturn(alternateExchange); @@ -391,9 +389,8 @@ public abstract class AbstractDurableConfigurationStoreTestCase extends QpidTest private Exchange createTestExchange() { Exchange exchange = mock(Exchange.class); - when(exchange.getNameShortString()).thenReturn(AMQShortString.valueOf(getName())); when(exchange.getName()).thenReturn(getName()); - when(exchange.getTypeShortString()).thenReturn(AMQShortString.valueOf(getName() + "Type")); + when(exchange.getTypeName()).thenReturn(getName() + "Type"); when(exchange.isAutoDelete()).thenReturn(true); when(exchange.getId()).thenReturn(_exchangeId); return exchange; diff --git a/java/broker/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java b/java/broker/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java index 4fa35c2ceb..b26d7530aa 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java +++ b/java/broker/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java @@ -47,7 +47,7 @@ public class MockSubscription implements Subscription { private boolean _closed = false; - private AMQShortString tag = new AMQShortString("mocktag"); + private String tag = "mocktag"; private AMQQueue queue = null; private StateListener _listener = null; private volatile AMQQueue.Context _queueContext = null; @@ -84,7 +84,7 @@ public class MockSubscription implements Subscription public String getConsumerName() { - return tag == null ? null : tag.asString(); + return tag; } public long getSubscriptionID() diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java b/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java index aadfb44ca0..0dc5cc68c1 100644 --- a/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java +++ b/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java @@ -152,10 +152,10 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect */ private QpidConnectionMetaData _connectionMetaData; - private AMQShortString _defaultTopicExchangeName = ExchangeDefaults.TOPIC_EXCHANGE_NAME; - private AMQShortString _defaultQueueExchangeName = ExchangeDefaults.DIRECT_EXCHANGE_NAME; - private AMQShortString _temporaryTopicExchangeName = ExchangeDefaults.TOPIC_EXCHANGE_NAME; - private AMQShortString _temporaryQueueExchangeName = ExchangeDefaults.DIRECT_EXCHANGE_NAME; + private AMQShortString _defaultTopicExchangeName = AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_NAME); + private AMQShortString _defaultQueueExchangeName = AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_NAME); + private AMQShortString _temporaryTopicExchangeName = AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_NAME); + private AMQShortString _temporaryQueueExchangeName = AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_NAME); /** Thread Pool for executing connection level processes. Such as returning bounced messages. */ private final ExecutorService _taskPool = Executors.newCachedThreadPool(); diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java b/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java index fc7762e77d..91c23ff384 100644 --- a/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java +++ b/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java @@ -47,7 +47,7 @@ import java.util.concurrent.atomic.AtomicLong; public abstract class AMQDestination implements Destination, Referenceable { private static final Logger _logger = LoggerFactory.getLogger(AMQDestination.class); - + private AMQShortString _exchangeName; private AMQShortString _exchangeClass; @@ -65,7 +65,7 @@ public abstract class AMQDestination implements Destination, Referenceable private boolean _isAutoDelete; private boolean _browseOnly; - + private AtomicLong _addressResolved = new AtomicLong(0); private AMQShortString _queueName; @@ -113,10 +113,10 @@ public abstract class AMQDestination implements Destination, Referenceable } // ----- Fields required to support new address syntax ------- - - public enum DestSyntax { + + public enum DestSyntax { BURL,ADDR; - + public static DestSyntax getSyntaxType(String s) { if (("BURL").equals(s)) @@ -133,11 +133,11 @@ public abstract class AMQDestination implements Destination, Referenceable " should be one of {BURL|ADDR}"); } } - } - - public enum AddressOption { - ALWAYS, NEVER, SENDER, RECEIVER; - + } + + public enum AddressOption { + ALWAYS, NEVER, SENDER, RECEIVER; + public static AddressOption getOption(String str) { if ("always".equals(str)) @@ -162,9 +162,9 @@ public abstract class AMQDestination implements Destination, Referenceable } } } - + private final static DestSyntax defaultDestSyntax; - + private DestSyntax _destSyntax = DestSyntax.ADDR; private AddressHelper _addrHelper; @@ -179,25 +179,25 @@ public abstract class AMQDestination implements Destination, Referenceable private Node _node; private Link _link; - + // ----- / Fields required to support new address syntax ------- - + static { defaultDestSyntax = DestSyntax.getSyntaxType( System.getProperty(ClientProperties.DEST_SYNTAX, DestSyntax.ADDR.toString())); - - + + } - + public static DestSyntax getDefaultDestSyntax() { return defaultDestSyntax; } protected AMQDestination() - { + { } protected AMQDestination(Address address) throws Exception @@ -207,10 +207,10 @@ public abstract class AMQDestination implements Destination, Referenceable _destSyntax = DestSyntax.ADDR; _logger.debug("Based on " + address + " the selected destination syntax is " + _destSyntax); } - + public static DestSyntax getDestType(String str) { - if (str.startsWith("BURL:") || + if (str.startsWith("BURL:") || (!str.startsWith("ADDR:") && defaultDestSyntax == DestSyntax.BURL)) { return DestSyntax.BURL; @@ -220,7 +220,7 @@ public abstract class AMQDestination implements Destination, Referenceable return DestSyntax.ADDR; } } - + public static String stripSyntaxPrefix(String str) { if (str.startsWith("BURL:") || str.startsWith("ADDR:")) @@ -232,7 +232,7 @@ public abstract class AMQDestination implements Destination, Referenceable return str; } } - + protected AMQDestination(String str) throws URISyntaxException { parseDestinationString(str); @@ -243,8 +243,8 @@ public abstract class AMQDestination implements Destination, Referenceable _destSyntax = getDestType(str); str = stripSyntaxPrefix(str); if (_destSyntax == DestSyntax.BURL) - { - getInfoFromBindingURL(new AMQBindingURL(str)); + { + getInfoFromBindingURL(new AMQBindingURL(str)); } else { @@ -262,7 +262,7 @@ public abstract class AMQDestination implements Destination, Referenceable } _logger.debug("Based on " + str + " the selected destination syntax is " + _destSyntax); } - + //retained for legacy support protected AMQDestination(BindingURL binding) { @@ -331,8 +331,8 @@ public abstract class AMQDestination implements Destination, Referenceable protected AMQDestination(AMQShortString exchangeName, AMQShortString exchangeClass, AMQShortString routingKey, boolean isExclusive, boolean isAutoDelete, AMQShortString queueName, boolean isDurable,AMQShortString[] bindingKeys, boolean browseOnly) { - if ( (ExchangeDefaults.DIRECT_EXCHANGE_CLASS.equals(exchangeClass) || - ExchangeDefaults.TOPIC_EXCHANGE_CLASS.equals(exchangeClass)) + if ( (AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_CLASS).equals(exchangeClass) || + AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_CLASS).equals(exchangeClass)) && routingKey == null) { throw new IllegalArgumentException("routing/binding key must not be null"); @@ -376,16 +376,16 @@ public abstract class AMQDestination implements Destination, Referenceable return toString(); } - public DestSyntax getDestSyntax() + public DestSyntax getDestSyntax() { return _destSyntax; } - + protected void setDestSyntax(DestSyntax syntax) { _destSyntax = syntax; } - + public AMQShortString getEncodedName() { if(_urlAsShortString == null) @@ -431,12 +431,12 @@ public abstract class AMQDestination implements Destination, Referenceable public boolean isTopic() { - return ExchangeDefaults.TOPIC_EXCHANGE_CLASS.equals(_exchangeClass); + return AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_CLASS).equals(_exchangeClass); } public boolean isQueue() { - return ExchangeDefaults.DIRECT_EXCHANGE_CLASS.equals(_exchangeClass); + return AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_CLASS).equals(_exchangeClass); } public String getQueueName() @@ -481,7 +481,7 @@ public abstract class AMQDestination implements Destination, Referenceable { return _isExclusive; } - + public boolean isAutoDelete() { return _isAutoDelete; @@ -720,15 +720,15 @@ public abstract class AMQDestination implements Destination, Referenceable { AMQShortString type = binding.getExchangeClass(); - if (type.equals(ExchangeDefaults.DIRECT_EXCHANGE_CLASS)) + if (type.equals(AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_CLASS))) { return new AMQQueue(binding); } - else if (type.equals(ExchangeDefaults.TOPIC_EXCHANGE_CLASS)) + else if (type.equals(AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_CLASS))) { return new AMQTopic(binding); } - else if (type.equals(ExchangeDefaults.HEADERS_EXCHANGE_CLASS)) + else if (type.equals(AMQShortString.valueOf(ExchangeDefaults.HEADERS_EXCHANGE_CLASS))) { return new AMQHeadersExchange(binding); } @@ -743,8 +743,8 @@ public abstract class AMQDestination implements Destination, Referenceable DestSyntax syntax = getDestType(str); str = stripSyntaxPrefix(str); if (syntax == DestSyntax.BURL) - { - return createDestination(new AMQBindingURL(str)); + { + return createDestination(new AMQBindingURL(str)); } else { @@ -752,16 +752,16 @@ public abstract class AMQDestination implements Destination, Referenceable return new AMQAnyDestination(address); } } - + // ----- new address syntax ----------- - + public static class Binding { private String exchange; private String bindingKey; private String queue; private Map<String,Object> args; - + public Binding(String exchange, String queue, String bindingKey, @@ -772,36 +772,36 @@ public abstract class AMQDestination implements Destination, Referenceable this.bindingKey = bindingKey; this.args = args; } - - public String getExchange() + + public String getExchange() { return exchange; } - public String getQueue() + public String getQueue() { return queue; } - - public String getBindingKey() + + public String getBindingKey() { return bindingKey; } - - public Map<String, Object> getArgs() + + public Map<String, Object> getArgs() { return args; } } - + public Address getAddress() { return _address; } - + protected void setAddress(Address addr) { _address = addr; } - + public int getAddressType(){ return _addressType; } @@ -809,11 +809,11 @@ public abstract class AMQDestination implements Destination, Referenceable public void setAddressType(int addressType){ _addressType = addressType; } - + public String getAddressName() { return _name; } - + public void setAddressName(String name){ _name = name; } @@ -825,15 +825,15 @@ public abstract class AMQDestination implements Destination, Referenceable public void setSubject(String subject) { _subject = subject; } - + public AddressOption getCreate() { return _create; } - + public void setCreate(AddressOption option) { _create = option; } - + public AddressOption getAssert() { return _assert; } @@ -841,7 +841,7 @@ public abstract class AMQDestination implements Destination, Referenceable public void setAssert(AddressOption option) { _assert = option; } - + public AddressOption getDelete() { return _delete; } @@ -869,22 +869,22 @@ public abstract class AMQDestination implements Destination, Referenceable { _link = link; } - + public void setExchangeName(AMQShortString name) { this._exchangeName = name; } - + public void setExchangeClass(AMQShortString type) { this._exchangeClass = type; } - + public void setRoutingKey(AMQShortString rk) { this._routingKey = rk; } - + public boolean isAddressResolved() { return _addressResolved.get() > 0; @@ -894,80 +894,80 @@ public abstract class AMQDestination implements Destination, Referenceable { _addressResolved.set(addressResolved); } - + private static Address createAddressFromString(String str) { return Address.parse(str); } - + private void getInfoFromAddress() throws Exception { _name = _address.getName(); _subject = _address.getSubject(); - + _addrHelper = new AddressHelper(_address); - + _create = _addrHelper.getCreate() != null ? AddressOption.getOption(_addrHelper.getCreate()):AddressOption.NEVER; - + _assert = _addrHelper.getAssert() != null ? AddressOption.getOption(_addrHelper.getAssert()):AddressOption.NEVER; _delete = _addrHelper.getDelete() != null ? AddressOption.getOption(_addrHelper.getDelete()):AddressOption.NEVER; - + _browseOnly = _addrHelper.isBrowseOnly(); - + _addressType = _addrHelper.getNodeType(); _node = _addrHelper.getNode(); - _link = _addrHelper.getLink(); + _link = _addrHelper.getLink(); } - - // ----- / new address syntax ----------- + + // ----- / new address syntax ----------- public boolean isBrowseOnly() { return _browseOnly; } - + private void setBrowseOnly(boolean b) { _browseOnly = b; } - + public AMQDestination copyDestination() { - AMQDestination dest = + AMQDestination dest = new AMQAnyDestination(_exchangeName, _exchangeClass, _routingKey, - _isExclusive, + _isExclusive, _isAutoDelete, - _queueName, + _queueName, _isDurable, _bindingKeys ); - + dest.setDestSyntax(_destSyntax); dest.setAddress(_address); dest.setAddressName(_name); dest.setSubject(_subject); - dest.setCreate(_create); - dest.setAssert(_assert); - dest.setDelete(_delete); + dest.setCreate(_create); + dest.setAssert(_assert); + dest.setDelete(_delete); dest.setBrowseOnly(_browseOnly); dest.setAddressType(_addressType); dest.setNode(_node); dest.setLink(_link); dest.setAddressResolved(_addressResolved.get()); - return dest; + return dest; } - + protected void setAutoDelete(boolean b) { _isAutoDelete = b; } - + protected void setDurable(boolean b) { _isDurable = b; diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQHeadersExchange.java b/java/client/src/main/java/org/apache/qpid/client/AMQHeadersExchange.java index 922cc1e2a7..714c38d37b 100644 --- a/java/client/src/main/java/org/apache/qpid/client/AMQHeadersExchange.java +++ b/java/client/src/main/java/org/apache/qpid/client/AMQHeadersExchange.java @@ -41,7 +41,7 @@ public class AMQHeadersExchange extends AMQDestination public AMQHeadersExchange(AMQShortString queueName) { - super(queueName, ExchangeDefaults.HEADERS_EXCHANGE_CLASS, queueName, true, true, null); + super(queueName, AMQShortString.valueOf(ExchangeDefaults.HEADERS_EXCHANGE_CLASS), queueName, true, true, null); } public boolean isNameRequired() diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQQueue.java b/java/client/src/main/java/org/apache/qpid/client/AMQQueue.java index 3e37f74d98..0f375e4921 100644 --- a/java/client/src/main/java/org/apache/qpid/client/AMQQueue.java +++ b/java/client/src/main/java/org/apache/qpid/client/AMQQueue.java @@ -38,7 +38,7 @@ public class AMQQueue extends AMQDestination implements Queue { super(address); } - + /** * Create a reference to a non temporary queue using a BindingURL object. * Note this does not actually imply the queue exists. @@ -70,13 +70,13 @@ public class AMQQueue extends AMQDestination implements Queue public AMQQueue(AMQShortString exchangeName, AMQShortString routingKey, AMQShortString queueName) { - super(exchangeName, ExchangeDefaults.DIRECT_EXCHANGE_CLASS, routingKey, false, + super(exchangeName, AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_CLASS), routingKey, false, false, queueName, false); } public AMQQueue(AMQShortString exchangeName, AMQShortString routingKey, AMQShortString queueName,AMQShortString[] bindingKeys) { - super(exchangeName, ExchangeDefaults.DIRECT_EXCHANGE_CLASS, routingKey, false, + super(exchangeName, AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_CLASS), routingKey, false, false, queueName, false,bindingKeys); } @@ -149,7 +149,7 @@ public class AMQQueue extends AMQDestination implements Queue public AMQQueue(AMQShortString exchangeName, AMQShortString routingKey, AMQShortString queueName, boolean exclusive, boolean autoDelete, boolean durable,AMQShortString[] bindingKeys) { - super(exchangeName, ExchangeDefaults.DIRECT_EXCHANGE_CLASS, routingKey, exclusive, + super(exchangeName, AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_CLASS), routingKey, exclusive, autoDelete, queueName, durable, bindingKeys); } 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 6b87316e87..9657a49d98 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 @@ -1380,7 +1380,7 @@ public class AMQSession_0_10 extends AMQSession<BasicMessageConsumer_0_10, Basic dest.setExchangeName(new AMQShortString(dest.getAddressName())); Node node = dest.getNode(); dest.setExchangeClass(node.getExchangeType() == null? - ExchangeDefaults.TOPIC_EXCHANGE_CLASS: + AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_CLASS): new AMQShortString(node.getExchangeType())); dest.setRoutingKey(new AMQShortString(dest.getSubject())); } diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQTopic.java b/java/client/src/main/java/org/apache/qpid/client/AMQTopic.java index d78e725a5d..4cc32022dc 100644 --- a/java/client/src/main/java/org/apache/qpid/client/AMQTopic.java +++ b/java/client/src/main/java/org/apache/qpid/client/AMQTopic.java @@ -60,12 +60,12 @@ public class AMQTopic extends AMQDestination implements Topic public AMQTopic(AMQShortString exchange, AMQShortString routingKey, AMQShortString queueName) { - super(exchange, ExchangeDefaults.TOPIC_EXCHANGE_CLASS, routingKey, true, true, queueName, false); + super(exchange, AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_CLASS), routingKey, true, true, queueName, false); } public AMQTopic(AMQShortString exchange, AMQShortString routingKey, AMQShortString queueName,AMQShortString[] bindingKeys) { - super(exchange, ExchangeDefaults.TOPIC_EXCHANGE_CLASS, routingKey, true, true, queueName, false,bindingKeys); + super(exchange, AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_CLASS), routingKey, true, true, queueName, false,bindingKeys); } public AMQTopic(AMQConnection conn, String routingKey) @@ -73,6 +73,10 @@ public class AMQTopic extends AMQDestination implements Topic this(conn.getDefaultTopicExchangeName(), new AMQShortString(routingKey)); } + public AMQTopic(String exchangeName, String routingKey) + { + this(AMQShortString.valueOf(exchangeName), new AMQShortString(routingKey)); + } public AMQTopic(AMQShortString exchangeName, String routingKey) { @@ -86,7 +90,7 @@ public class AMQTopic extends AMQDestination implements Topic public AMQTopic(AMQShortString exchangeName, AMQShortString name, boolean isAutoDelete, AMQShortString queueName, boolean isDurable) { - super(exchangeName, ExchangeDefaults.TOPIC_EXCHANGE_CLASS, name, true, isAutoDelete, queueName, isDurable); + super(exchangeName, AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_CLASS), name, true, isAutoDelete, queueName, isDurable); } diff --git a/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java b/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java index 1395f39b99..ad19b0e620 100644 --- a/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java +++ b/java/client/src/main/java/org/apache/qpid/client/message/AbstractAMQMessageDelegate.java @@ -46,7 +46,7 @@ import java.util.concurrent.ConcurrentHashMap; public abstract class AbstractAMQMessageDelegate implements AMQMessageDelegate { - private static Map<String, Integer> _exchangeTypeToDestinationType = new ConcurrentHashMap<String, Integer>(); + private static Map<String, Integer> _exchangeTypeToDestinationType = new ConcurrentHashMap<String, Integer>(); private static Map<String,ExchangeInfo> _exchangeMap = new ConcurrentHashMap<String, ExchangeInfo>(); /** @@ -55,32 +55,32 @@ public abstract class AbstractAMQMessageDelegate implements AMQMessageDelegate static { _exchangeTypeToDestinationType.put("", AMQDestination.QUEUE_TYPE); - _exchangeTypeToDestinationType.put(ExchangeDefaults.DIRECT_EXCHANGE_CLASS.toString(), AMQDestination.QUEUE_TYPE); - _exchangeTypeToDestinationType.put(ExchangeDefaults.TOPIC_EXCHANGE_CLASS.toString(), AMQDestination.TOPIC_TYPE); - _exchangeTypeToDestinationType.put(ExchangeDefaults.FANOUT_EXCHANGE_CLASS.toString(), AMQDestination.TOPIC_TYPE); - _exchangeTypeToDestinationType.put(ExchangeDefaults.HEADERS_EXCHANGE_CLASS.toString(), AMQDestination.QUEUE_TYPE); - + _exchangeTypeToDestinationType.put(ExchangeDefaults.DIRECT_EXCHANGE_CLASS, AMQDestination.QUEUE_TYPE); + _exchangeTypeToDestinationType.put(ExchangeDefaults.TOPIC_EXCHANGE_CLASS, AMQDestination.TOPIC_TYPE); + _exchangeTypeToDestinationType.put(ExchangeDefaults.FANOUT_EXCHANGE_CLASS, AMQDestination.TOPIC_TYPE); + _exchangeTypeToDestinationType.put(ExchangeDefaults.HEADERS_EXCHANGE_CLASS, AMQDestination.QUEUE_TYPE); + _exchangeMap.put("", new ExchangeInfo("","",AMQDestination.QUEUE_TYPE)); - - _exchangeMap.put(ExchangeDefaults.DIRECT_EXCHANGE_NAME.toString(), - new ExchangeInfo(ExchangeDefaults.DIRECT_EXCHANGE_NAME.toString(), - ExchangeDefaults.DIRECT_EXCHANGE_CLASS.toString(), + + _exchangeMap.put(ExchangeDefaults.DIRECT_EXCHANGE_NAME, + new ExchangeInfo(ExchangeDefaults.DIRECT_EXCHANGE_NAME, + ExchangeDefaults.DIRECT_EXCHANGE_CLASS, AMQDestination.QUEUE_TYPE)); - - _exchangeMap.put(ExchangeDefaults.TOPIC_EXCHANGE_NAME.toString(), - new ExchangeInfo(ExchangeDefaults.TOPIC_EXCHANGE_NAME.toString(), - ExchangeDefaults.TOPIC_EXCHANGE_CLASS.toString(), + + _exchangeMap.put(ExchangeDefaults.TOPIC_EXCHANGE_NAME, + new ExchangeInfo(ExchangeDefaults.TOPIC_EXCHANGE_NAME, + ExchangeDefaults.TOPIC_EXCHANGE_CLASS, AMQDestination.TOPIC_TYPE)); - - _exchangeMap.put(ExchangeDefaults.FANOUT_EXCHANGE_NAME.toString(), - new ExchangeInfo(ExchangeDefaults.FANOUT_EXCHANGE_NAME.toString(), - ExchangeDefaults.FANOUT_EXCHANGE_CLASS.toString(), + + _exchangeMap.put(ExchangeDefaults.FANOUT_EXCHANGE_NAME, + new ExchangeInfo(ExchangeDefaults.FANOUT_EXCHANGE_NAME, + ExchangeDefaults.FANOUT_EXCHANGE_CLASS, AMQDestination.TOPIC_TYPE)); - - _exchangeMap.put(ExchangeDefaults.HEADERS_EXCHANGE_NAME.toString(), - new ExchangeInfo(ExchangeDefaults.HEADERS_EXCHANGE_NAME.toString(), - ExchangeDefaults.HEADERS_EXCHANGE_CLASS.toString(), - AMQDestination.QUEUE_TYPE)); + + _exchangeMap.put(ExchangeDefaults.HEADERS_EXCHANGE_NAME, + new ExchangeInfo(ExchangeDefaults.HEADERS_EXCHANGE_NAME, + ExchangeDefaults.HEADERS_EXCHANGE_CLASS, + AMQDestination.QUEUE_TYPE)); } /** If the acknowledge mode is CLIENT_ACKNOWLEDGE the session is required */ @@ -115,19 +115,19 @@ public abstract class AbstractAMQMessageDelegate implements AMQMessageDelegate { AMQDestination dest; ExchangeInfo exchangeInfo = _exchangeMap.get(exchange.asString()); - + if (exchangeInfo == null) { exchangeInfo = new ExchangeInfo(exchange.asString(),"",AMQDestination.UNKNOWN_TYPE); } - + if ("topic".equals(exchangeInfo.getExchangeType())) { dest = new AMQTopic(exchange, routingKey, null); } else if ("direct".equals(exchangeInfo.getExchangeType())) { - dest = new AMQQueue(exchange, routingKey, routingKey); + dest = new AMQQueue(exchange, routingKey, routingKey); } else { @@ -161,7 +161,7 @@ public abstract class AbstractAMQMessageDelegate implements AMQMessageDelegate { type = AMQDestination.UNKNOWN_TYPE; } - + _exchangeMap.put(exchange, new ExchangeInfo(exchange,newtype,type)); } @@ -226,7 +226,7 @@ class ExchangeInfo private String exchangeName; private String exchangeType; private int destType = AMQDestination.QUEUE_TYPE; - + public ExchangeInfo(String exchangeName, String exchangeType, int destType) { diff --git a/java/client/src/main/java/org/apache/qpid/jndi/PropertiesFileInitialContextFactory.java b/java/client/src/main/java/org/apache/qpid/jndi/PropertiesFileInitialContextFactory.java index f17fb9b5f5..8c23ddad5e 100644 --- a/java/client/src/main/java/org/apache/qpid/jndi/PropertiesFileInitialContextFactory.java +++ b/java/client/src/main/java/org/apache/qpid/jndi/PropertiesFileInitialContextFactory.java @@ -274,11 +274,11 @@ public class PropertiesFileInitialContextFactory implements InitialContextFactor { if (value instanceof AMQShortString) { - return new AMQQueue(ExchangeDefaults.DIRECT_EXCHANGE_NAME, (AMQShortString) value); + return new AMQQueue(AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_NAME), (AMQShortString) value); } else if (value instanceof String) { - return new AMQQueue(ExchangeDefaults.DIRECT_EXCHANGE_NAME, new AMQShortString((String) value)); + return new AMQQueue(AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_NAME), new AMQShortString((String) value)); } else if (value instanceof BindingURL) { @@ -295,7 +295,7 @@ public class PropertiesFileInitialContextFactory implements InitialContextFactor { if (value instanceof AMQShortString) { - return new AMQTopic(ExchangeDefaults.TOPIC_EXCHANGE_NAME, (AMQShortString) value); + return new AMQTopic(AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_NAME), (AMQShortString) value); } else if (value instanceof String) { @@ -309,7 +309,7 @@ public class PropertiesFileInitialContextFactory implements InitialContextFactor } // The Destination has a dual nature. If this was used for a producer the key is used // for the routing key. If it was used for the consumer it becomes the bindingKey - return new AMQTopic(ExchangeDefaults.TOPIC_EXCHANGE_NAME,bindings[0],null,bindings); + return new AMQTopic(AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_NAME),bindings[0],null,bindings); } else if (value instanceof BindingURL) { diff --git a/java/client/src/test/java/org/apache/qpid/test/unit/client/destinationurl/DestinationURLTest.java b/java/client/src/test/java/org/apache/qpid/test/unit/client/destinationurl/DestinationURLTest.java index 4c558906b3..9c9664931a 100644 --- a/java/client/src/test/java/org/apache/qpid/test/unit/client/destinationurl/DestinationURLTest.java +++ b/java/client/src/test/java/org/apache/qpid/test/unit/client/destinationurl/DestinationURLTest.java @@ -139,7 +139,7 @@ public class DestinationURLTest extends TestCase AMQBindingURL dest = new AMQBindingURL(url); - assertTrue(dest.getExchangeClass().equals(ExchangeDefaults.DIRECT_EXCHANGE_CLASS)); + assertTrue(dest.getExchangeClass().equals(AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_CLASS))); assertTrue(dest.getExchangeName().equalsCharSequence("")); assertTrue(dest.getDestinationName().equalsCharSequence("")); assertTrue(dest.getQueueName().equalsCharSequence("IBMPerfQueue1")); diff --git a/java/common/src/main/java/org/apache/qpid/AMQChannelException.java b/java/common/src/main/java/org/apache/qpid/AMQChannelException.java index 44cd603a8d..df71ece787 100644 --- a/java/common/src/main/java/org/apache/qpid/AMQChannelException.java +++ b/java/common/src/main/java/org/apache/qpid/AMQChannelException.java @@ -7,9 +7,9 @@ * 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 @@ -21,6 +21,7 @@ package org.apache.qpid; import org.apache.qpid.framing.AMQFrame; +import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.MethodRegistry; import org.apache.qpid.framing.ProtocolVersion; import org.apache.qpid.protocol.AMQConstant; @@ -56,7 +57,8 @@ public class AMQChannelException extends AMQException public AMQFrame getCloseFrame(int channel) { MethodRegistry reg = MethodRegistry.getMethodRegistry(new ProtocolVersion(major,minor)); - return new AMQFrame(channel, reg.createChannelCloseBody(getErrorCode() == null ? AMQConstant.INTERNAL_ERROR.getCode() : getErrorCode().getCode(), getMessageAsShortString(),_classId,_methodId)); + return new AMQFrame(channel, reg.createChannelCloseBody(getErrorCode() == null ? AMQConstant.INTERNAL_ERROR.getCode() : getErrorCode().getCode(), + AMQShortString.validValueOf(getMessage()),_classId,_methodId)); } } diff --git a/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java b/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java index c7a0816f91..ef108eeb67 100644 --- a/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java +++ b/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java @@ -22,6 +22,7 @@ package org.apache.qpid; import org.apache.qpid.framing.AMQFrame; +import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.MethodRegistry; import org.apache.qpid.framing.ProtocolVersion; import org.apache.qpid.protocol.AMQConstant; @@ -64,7 +65,7 @@ public class AMQConnectionException extends AMQException MethodRegistry reg = MethodRegistry.getMethodRegistry(new ProtocolVersion(major,minor)); return new AMQFrame(0, reg.createConnectionCloseBody(getErrorCode().getCode(), - getMessageAsShortString(), + AMQShortString.validValueOf(getMessage()), _classId, _methodId)); diff --git a/java/common/src/main/java/org/apache/qpid/AMQException.java b/java/common/src/main/java/org/apache/qpid/AMQException.java index 40ecc3a946..591202d934 100644 --- a/java/common/src/main/java/org/apache/qpid/AMQException.java +++ b/java/common/src/main/java/org/apache/qpid/AMQException.java @@ -39,7 +39,7 @@ public class AMQException extends Exception { /** Holds the AMQ error code constant associated with this exception. */ private AMQConstant _errorCode; - + private boolean _isHardError; /** @@ -75,13 +75,13 @@ public class AMQException extends Exception * Deprecated constructors brought from M2.1 */ @Deprecated - public AMQException(String msg) + public AMQException(String msg) { this(null, (msg == null) ? "" : msg); } - - @Deprecated - public AMQException(AMQConstant errorCode, String msg) + + @Deprecated + public AMQException(AMQConstant errorCode, String msg) { this(errorCode, (msg == null) ? "" : msg, null); } @@ -97,7 +97,7 @@ public class AMQException extends Exception { return getClass().getName() + ": " + getMessage() + (_errorCode == null ? "" : " [error code " + _errorCode + "]"); } - + /** * Gets the AMQ protocol exception code associated with this exception. * @@ -141,14 +141,4 @@ public class AMQException extends Exception return newAMQE; } - /** - * Truncates the exception message to 255 characters if its length exceeds 255. - * - * @return exception message - */ - public AMQShortString getMessageAsShortString() - { - String message = getMessage(); - return AMQShortString.valueOf(message, true, true); - } } diff --git a/java/common/src/main/java/org/apache/qpid/exchange/ExchangeDefaults.java b/java/common/src/main/java/org/apache/qpid/exchange/ExchangeDefaults.java index c9bf67c11d..5e59628fb6 100644 --- a/java/common/src/main/java/org/apache/qpid/exchange/ExchangeDefaults.java +++ b/java/common/src/main/java/org/apache/qpid/exchange/ExchangeDefaults.java @@ -41,31 +41,30 @@ public class ExchangeDefaults } /** The default direct exchange, which is a special internal exchange that cannot be explicitly bound to. */ - public static final AMQShortString DEFAULT_EXCHANGE_NAME = AMQShortString.EMPTY_STRING; + public static final String DEFAULT_EXCHANGE_NAME = ""; /** The pre-defined topic exchange, the broker SHOULD provide this. */ - public static final AMQShortString TOPIC_EXCHANGE_NAME = new AMQShortString("amq.topic"); + public static final String TOPIC_EXCHANGE_NAME = "amq.topic"; /** Defines the identifying type name of topic exchanges. */ - public static final AMQShortString TOPIC_EXCHANGE_CLASS = new AMQShortString("topic"); + public static final String TOPIC_EXCHANGE_CLASS = "topic"; /** The pre-defined direct exchange, the broker MUST provide this. */ - public static final AMQShortString DIRECT_EXCHANGE_NAME = new AMQShortString("amq.direct"); + public static final String DIRECT_EXCHANGE_NAME = "amq.direct"; /** Defines the identifying type name of direct exchanges. */ - public static final AMQShortString DIRECT_EXCHANGE_CLASS = new AMQShortString("direct"); + public static final String DIRECT_EXCHANGE_CLASS = "direct"; /** The pre-defined headers exchange, the specification does not say this needs to be provided. */ - public static final AMQShortString HEADERS_EXCHANGE_NAME = new AMQShortString("amq.match"); + public static final String HEADERS_EXCHANGE_NAME = "amq.match"; /** Defines the identifying type name of headers exchanges. */ - public static final AMQShortString HEADERS_EXCHANGE_CLASS = new AMQShortString("headers"); + public static final String HEADERS_EXCHANGE_CLASS = "headers"; /** The pre-defined fanout exchange, the boker MUST provide this. */ - public static final AMQShortString FANOUT_EXCHANGE_NAME = new AMQShortString("amq.fanout"); + public static final String FANOUT_EXCHANGE_NAME = "amq.fanout"; /** Defines the identifying type name of fanout exchanges. */ - public static final AMQShortString FANOUT_EXCHANGE_CLASS = new AMQShortString("fanout"); - - public static final AMQShortString WILDCARD_ANY = new AMQShortString("*"); + public static final String FANOUT_EXCHANGE_CLASS = "fanout"; + } diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java b/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java index 4adc59b158..a06fa2d15b 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java +++ b/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java @@ -21,18 +21,15 @@ package org.apache.qpid.framing; +import java.util.concurrent.ConcurrentHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; -import java.lang.ref.WeakReference; import java.util.Arrays; import java.util.Collection; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.WeakHashMap; /** * A short string is a representation of an AMQ Short String @@ -64,7 +61,7 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt { if(_count == -1) { - _count = 1 + AMQShortString.this.occurences(_delim); + _count = 1 + AMQShortString.this.occurrences(_delim); } return _count; } @@ -100,40 +97,8 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt return new AMQShortString(_data, from+_offset, to-from); } - - private static final int LOCAL_INTERN_CACHE_SIZE = 2048; - - private static final ThreadLocal<Map<AMQShortString, AMQShortString>> _localInternMap = - new ThreadLocal<Map<AMQShortString, AMQShortString>>() - { - protected Map<AMQShortString, AMQShortString> initialValue() - { - return new LinkedHashMap<AMQShortString, AMQShortString>() - { - @Override - protected boolean removeEldestEntry(Map.Entry<AMQShortString, AMQShortString> eldest) - { - return size() > LOCAL_INTERN_CACHE_SIZE; - } - }; - }; - }; - - private static final Map<AMQShortString, WeakReference<AMQShortString>> _globalInternMap = - new WeakHashMap<AMQShortString, WeakReference<AMQShortString>>(); - - - private static final ThreadLocal<Map<String, WeakReference<AMQShortString>>> _localStringMap = - new ThreadLocal<Map<String, WeakReference<AMQShortString>>>() - { - protected Map<String, WeakReference<AMQShortString>> initialValue() - { - return new WeakHashMap<String, WeakReference<AMQShortString>>(); - }; - }; - - private static final Map<String, WeakReference<AMQShortString>> _globalStringMap = - new WeakHashMap<String, WeakReference<AMQShortString>>(); + private static final ConcurrentHashMap<AMQShortString, AMQShortString> _globalInternMap = + new ConcurrentHashMap<AMQShortString, AMQShortString>(); private static final Logger _logger = LoggerFactory.getLogger(AMQShortString.class); @@ -443,7 +408,7 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt { if (_asString == null) { - AMQShortString intern = intern(); + AMQShortString intern = intern(false); if(intern == this) { @@ -641,35 +606,9 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt public AMQShortString intern(boolean keep) { - hashCode(); - - Map<AMQShortString, AMQShortString> localMap = - _localInternMap.get(); - - AMQShortString internString = localMap.get(this); - + AMQShortString internString = keep ? _globalInternMap.putIfAbsent(this,this) : _globalInternMap.get(this); - if(internString != null) - { - return internString; - } - - - WeakReference<AMQShortString> ref; - synchronized(_globalInternMap) - { - - ref = _globalInternMap.get(this); - if((ref == null) || ((internString = ref.get()) == null)) - { - internString = keep ? shrink() : copy(); - ref = new WeakReference(internString); - _globalInternMap.put(internString, ref); - } - - } - localMap.put(internString, internString); - return internString; + return internString == null ? this : internString; } @@ -680,7 +619,7 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt return new AMQShortString(dataBytes,0,_length); } - private int occurences(final byte delim) + private int occurrences(final byte delim) { int count = 0; final int end = _offset + _length; @@ -794,7 +733,12 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt return false; //To change body of created methods use File | Settings | File Templates. } - public static AMQShortString valueOf(Object obj, boolean truncate, boolean nullAsEmptyString) + public static AMQShortString validValueOf(Object obj) + { + return valueOf(obj,true,true); + } + + static AMQShortString valueOf(Object obj, boolean truncate, boolean nullAsEmptyString) { if (obj == null) { @@ -826,37 +770,11 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt { return null; } - - Map<String, WeakReference<AMQShortString>> localMap = - _localStringMap.get(); - - WeakReference<AMQShortString> ref = localMap.get(obj); - AMQShortString internString; - - if(ref != null) + else { - internString = ref.get(); - if(internString != null) - { - return internString; - } + return new AMQShortString(obj); } - - synchronized(_globalStringMap) - { - - ref = _globalStringMap.get(obj); - if((ref == null) || ((internString = ref.get()) == null)) - { - internString = (new AMQShortString(obj)).intern(); - ref = new WeakReference<AMQShortString>(internString); - _globalStringMap.put(obj, ref); - } - - } - localMap.put(obj, ref); - return internString; } public static String toString(AMQShortString amqShortString) @@ -864,10 +782,4 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt return amqShortString == null ? null : amqShortString.asString(); } - public static void clearLocalCache() - { - _localInternMap.remove(); - _localStringMap.remove(); - } - } diff --git a/java/common/src/main/java/org/apache/qpid/framing/amqp_8_0/MethodConverter_8_0.java b/java/common/src/main/java/org/apache/qpid/framing/amqp_8_0/MethodConverter_8_0.java index 4c7772a3a9..575816db4f 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/amqp_8_0/MethodConverter_8_0.java +++ b/java/common/src/main/java/org/apache/qpid/framing/amqp_8_0/MethodConverter_8_0.java @@ -79,9 +79,9 @@ public class MethodConverter_8_0 extends AbstractMethodConverter implements Prot _basicPublishClassId = BasicPublishBodyImpl.CLASS_ID; _basicPublishMethodId = BasicPublishBodyImpl.METHOD_ID; - + } - + public AMQBody convertToBody(byte[] data) { return new ContentBody(data); @@ -97,7 +97,7 @@ public class MethodConverter_8_0 extends AbstractMethodConverter implements Prot return new MessagePublishInfoImpl(exchange == null ? null : exchange.intern(), publishBody.getImmediate(), publishBody.getMandatory(), - routingKey == null ? null : routingKey.intern()); + routingKey == null ? null : routingKey.intern(false)); } diff --git a/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java b/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java index 11a5a3ad62..77902c3531 100644 --- a/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java +++ b/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java @@ -34,9 +34,9 @@ public class AMQBindingURL implements BindingURL private static final Logger _logger = LoggerFactory.getLogger(AMQBindingURL.class); private String _url; - private AMQShortString _exchangeClass = ExchangeDefaults.DIRECT_EXCHANGE_CLASS; + private AMQShortString _exchangeClass = AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_CLASS); private AMQShortString _exchangeName = new AMQShortString(""); - private AMQShortString _destinationName = new AMQShortString("");; + private AMQShortString _destinationName = new AMQShortString(""); private AMQShortString _queueName = new AMQShortString(""); private AMQShortString[] _bindingKeys = new AMQShortString[0]; private HashMap<String, String> _options; @@ -93,7 +93,7 @@ public class AMQBindingURL implements BindingURL { _exchangeClass = exchangeClass; - if (exchangeClass.equals(ExchangeDefaults.TOPIC_EXCHANGE_CLASS)) + if (exchangeClass.equals(AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_CLASS))) { setOption(BindingURL.OPTION_EXCLUSIVE, "true"); } @@ -147,11 +147,11 @@ public class AMQBindingURL implements BindingURL public AMQShortString getRoutingKey() { - if (_exchangeClass.equals(ExchangeDefaults.DIRECT_EXCHANGE_CLASS)) + if (_exchangeClass.equals(AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_CLASS))) { if (containsOption(BindingURL.OPTION_ROUTING_KEY)) { - return new AMQShortString((String)getOption(OPTION_ROUTING_KEY)); + return new AMQShortString(getOption(OPTION_ROUTING_KEY)); } else { @@ -161,7 +161,7 @@ public class AMQBindingURL implements BindingURL if (containsOption(BindingURL.OPTION_ROUTING_KEY)) { - return new AMQShortString((String)getOption(OPTION_ROUTING_KEY)); + return new AMQShortString(getOption(OPTION_ROUTING_KEY)); } return getDestinationName(); @@ -191,7 +191,7 @@ public class AMQBindingURL implements BindingURL public String toString() { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); sb.append(_exchangeClass); sb.append("://"); @@ -207,7 +207,7 @@ public class AMQBindingURL implements BindingURL if (getRoutingKey() == null || getRoutingKey().toString().equals("")) { - if (sb.toString().indexOf("?") == -1) + if (!sb.toString().contains("?")) { sb.append("?"); } diff --git a/java/common/src/main/java/org/apache/qpid/url/BindingURLParser.java b/java/common/src/main/java/org/apache/qpid/url/BindingURLParser.java index 2adac843ef..ee823978b4 100644 --- a/java/common/src/main/java/org/apache/qpid/url/BindingURLParser.java +++ b/java/common/src/main/java/org/apache/qpid/url/BindingURLParser.java @@ -204,14 +204,14 @@ public class BindingURLParser // "myQueue?durable='true'" use case else if (nextChar == QUESTION_MARK_CHAR) { - _bindingURL.setExchangeClass(ExchangeDefaults.DIRECT_EXCHANGE_CLASS.asString()); + _bindingURL.setExchangeClass(ExchangeDefaults.DIRECT_EXCHANGE_CLASS); _bindingURL.setExchangeName(""); _bindingURL.setQueueName(builder.toString()); return BindingURLParserState.QUESTION_MARK_CHAR; } else { - _bindingURL.setExchangeClass(ExchangeDefaults.DIRECT_EXCHANGE_CLASS.asString()); + _bindingURL.setExchangeClass(ExchangeDefaults.DIRECT_EXCHANGE_CLASS); _bindingURL.setExchangeName(""); _bindingURL.setQueueName(builder.toString()); return BindingURLParserState.BINDING_URL_END; diff --git a/java/common/src/test/java/org/apache/qpid/AMQExceptionTest.java b/java/common/src/test/java/org/apache/qpid/AMQExceptionTest.java index 575058b7f8..9fceef337c 100644 --- a/java/common/src/test/java/org/apache/qpid/AMQExceptionTest.java +++ b/java/common/src/test/java/org/apache/qpid/AMQExceptionTest.java @@ -101,7 +101,7 @@ public class AMQExceptionTest extends TestCase sb.append("message [" + i + "]"); } AMQException e = new AMQException(AMQConstant.INTERNAL_ERROR, sb.toString(), null); - AMQShortString message = e.getMessageAsShortString(); + AMQShortString message = AMQShortString.validValueOf(e.getMessage()); assertEquals(sb.substring(0, AMQShortString.MAX_LENGTH - 3) + "...", message.toString()); } diff --git a/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java b/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java index 91f56f369b..69b529cf40 100644 --- a/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java +++ b/java/systests/src/main/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java @@ -30,6 +30,7 @@ import org.apache.qpid.client.AMQSession; import org.apache.qpid.client.AMQTopic; import org.apache.qpid.configuration.ClientProperties; import org.apache.qpid.exchange.ExchangeDefaults; +import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.FieldTable; import org.apache.qpid.test.utils.QpidBrokerTestCase; import org.apache.qpid.url.AMQBindingURL; diff --git a/java/systests/src/main/java/org/apache/qpid/server/store/MessageStoreTest.java b/java/systests/src/main/java/org/apache/qpid/server/store/MessageStoreTest.java index a57eca23bd..f89e33ccc4 100644 --- a/java/systests/src/main/java/org/apache/qpid/server/store/MessageStoreTest.java +++ b/java/systests/src/main/java/org/apache/qpid/server/store/MessageStoreTest.java @@ -47,7 +47,6 @@ import org.apache.qpid.server.model.UUIDGenerator; import org.apache.qpid.server.plugin.ExchangeType; import org.apache.qpid.server.queue.AMQPriorityQueue; import org.apache.qpid.server.queue.AMQQueue; -import org.apache.qpid.server.queue.AMQQueueFactory; import org.apache.qpid.server.queue.BaseQueue; import org.apache.qpid.server.queue.ConflationQueue; import org.apache.qpid.server.protocol.v0_8.IncomingMessage; @@ -97,10 +96,10 @@ public class MessageStoreTest extends QpidTestCase private String priorityQueueName = "MST-PriorityQueue"; private String queueName = "MST-Queue"; - private AMQShortString directRouting = new AMQShortString("MST-direct"); - private AMQShortString topicRouting = new AMQShortString("MST-topic"); + private String directRouting = "MST-direct"; + private String topicRouting = "MST-topic"; - private AMQShortString queueOwner = new AMQShortString("MST"); + private String queueOwner = "MST"; private PropertiesConfiguration _config; @@ -448,7 +447,7 @@ public class MessageStoreTest extends QpidTestCase //create durable queue and exchange, bind them Exchange exch = createExchange(DirectExchange.TYPE, directExchangeName, true); createQueue(durableQueueName, false, true, false, false); - bindQueueToExchange(exch, directRouting, getVirtualHost().getQueue(durableQueueName), false, null); + bindQueueToExchange(exch, directRouting, getVirtualHost().getQueue(durableQueueName), false); assertEquals("Incorrect number of bindings registered before recovery", 1, getVirtualHost().getQueue(durableQueueName).getBindings().size()); @@ -463,7 +462,7 @@ public class MessageStoreTest extends QpidTestCase assertNotNull("Exchange was not recovered", exch); //remove the binding and verify result after recovery - unbindQueueFromExchange(exch, directRouting, getVirtualHost().getQueue(durableQueueName), false, null); + unbindQueueFromExchange(exch, directRouting, getVirtualHost().getQueue(durableQueueName), false); reloadVirtualHost(); @@ -604,7 +603,7 @@ public class MessageStoreTest extends QpidTestCase } } - private void sendMessageOnExchange(Exchange exchange, AMQShortString routingKey, boolean deliveryMode) + private void sendMessageOnExchange(Exchange exchange, String routingKey, boolean deliveryMode) { //Set MessagePersistence BasicContentHeaderProperties properties = new BasicContentHeaderProperties(); @@ -733,7 +732,7 @@ public class MessageStoreTest extends QpidTestCase //Ideally we would be able to use the QueueDeclareHandler here. try { - queue = getVirtualHost().createQueue(UUIDGenerator.generateRandomUUID(), queueName, durable, queueOwner.asString(), false, exclusive, + queue = getVirtualHost().createQueue(UUIDGenerator.generateRandomUUID(), queueName, durable, queueOwner, false, exclusive, false, queueArguments); validateQueueProperties(queue, usePriority, durable, exclusive, lastValueQueue); @@ -766,7 +765,7 @@ public class MessageStoreTest extends QpidTestCase try { - exchange = getVirtualHost().createExchange(null, name, type.getName().toString(), durable, false, null); + exchange = getVirtualHost().createExchange(null, name, type.getType(), durable, false, null); } catch (AMQException e) { @@ -776,43 +775,40 @@ public class MessageStoreTest extends QpidTestCase return exchange; } - private void bindAllQueuesToExchange(Exchange exchange, AMQShortString routingKey) + private void bindAllQueuesToExchange(Exchange exchange, String routingKey) { - FieldTable queueArguments = new FieldTable(); - queueArguments.put(new AMQShortString(QueueArgumentsConverter.X_QPID_PRIORITIES), DEFAULT_PRIORTY_LEVEL); - - bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(durablePriorityQueueName), false, queueArguments); - bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(durableQueueName), false, null); - bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(priorityQueueName), false, queueArguments); - bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(queueName), false, null); - bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(durableExclusiveQueueName), false, null); + bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(durablePriorityQueueName), false); + bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(durableQueueName), false); + bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(priorityQueueName), false); + bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(queueName), false); + bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(durableExclusiveQueueName), false); } - private void bindAllTopicQueuesToExchange(Exchange exchange, AMQShortString routingKey) + private void bindAllTopicQueuesToExchange(Exchange exchange, String routingKey) { - FieldTable queueArguments = new FieldTable(); - queueArguments.put(new AMQShortString(QueueArgumentsConverter.X_QPID_PRIORITIES), DEFAULT_PRIORTY_LEVEL); - bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(durablePriorityTopicQueueName), true, queueArguments); - bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(durableTopicQueueName), true, null); - bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(priorityTopicQueueName), true, queueArguments); - bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(topicQueueName), true, null); + bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(durablePriorityTopicQueueName), true); + bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(durableTopicQueueName), true); + bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(priorityTopicQueueName), true); + bindQueueToExchange(exchange, routingKey, getVirtualHost().getQueue(topicQueueName), true); } - protected void bindQueueToExchange(Exchange exchange, AMQShortString routingKey, AMQQueue queue, boolean useSelector, FieldTable queueArguments) + protected void bindQueueToExchange(Exchange exchange, + String routingKey, + AMQQueue queue, + boolean useSelector) { - FieldTable bindArguments = null; + Map<String,Object> bindArguments = new HashMap<String, Object>(); if (useSelector) { - bindArguments = new FieldTable(); - bindArguments.put(AMQPFilterTypes.JMS_SELECTOR.getValue(), SELECTOR_VALUE ); + bindArguments.put(AMQPFilterTypes.JMS_SELECTOR.toString(), SELECTOR_VALUE ); } try { - exchange.addBinding(String.valueOf(routingKey), queue, FieldTable.convertToMap(bindArguments)); + exchange.addBinding(routingKey, queue, bindArguments); } catch (Exception e) { @@ -820,19 +816,21 @@ public class MessageStoreTest extends QpidTestCase } } - protected void unbindQueueFromExchange(Exchange exchange, AMQShortString routingKey, AMQQueue queue, boolean useSelector, FieldTable queueArguments) + protected void unbindQueueFromExchange(Exchange exchange, + String routingKey, + AMQQueue queue, + boolean useSelector) { - FieldTable bindArguments = null; + Map<String,Object> bindArguments = new HashMap<String, Object>(); if (useSelector) { - bindArguments = new FieldTable(); - bindArguments.put(AMQPFilterTypes.JMS_SELECTOR.getValue(), SELECTOR_VALUE ); + bindArguments.put(AMQPFilterTypes.JMS_SELECTOR.toString(), SELECTOR_VALUE ); } try { - exchange.removeBinding(String.valueOf(routingKey), queue, FieldTable.convertToMap(bindArguments)); + exchange.removeBinding(routingKey, queue, bindArguments); } catch (Exception e) { @@ -879,9 +877,9 @@ public class MessageStoreTest extends QpidTestCase Exchange _exchange; boolean _immediate; boolean _mandatory; - AMQShortString _routingKey; + String _routingKey; - TestMessagePublishInfo(Exchange exchange, boolean immediate, boolean mandatory, AMQShortString routingKey) + TestMessagePublishInfo(Exchange exchange, boolean immediate, boolean mandatory, String routingKey) { _exchange = exchange; _immediate = immediate; @@ -891,7 +889,7 @@ public class MessageStoreTest extends QpidTestCase public AMQShortString getExchange() { - return _exchange.getNameShortString(); + return new AMQShortString(_exchange.getName()); } public void setExchange(AMQShortString exchange) @@ -911,7 +909,7 @@ public class MessageStoreTest extends QpidTestCase public AMQShortString getRoutingKey() { - return _routingKey; + return new AMQShortString(_routingKey); } } } diff --git a/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ExchangeManagementTest.java b/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ExchangeManagementTest.java index cc662bddca..594239b2ee 100644 --- a/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ExchangeManagementTest.java +++ b/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ExchangeManagementTest.java @@ -53,10 +53,10 @@ public class ExchangeManagementTest extends QpidBrokerTestCase _managedBroker = _jmxUtils.getManagedBroker(VIRTUAL_HOST); _testQueueName = getTestName(); _managedBroker.createNewQueue(_testQueueName, null, true); - _directExchange = _jmxUtils.getManagedExchange(ExchangeDefaults.DIRECT_EXCHANGE_NAME.asString()); - _topicExchange = _jmxUtils.getManagedExchange(ExchangeDefaults.TOPIC_EXCHANGE_NAME.asString()); - _fanoutExchange = _jmxUtils.getManagedExchange(ExchangeDefaults.FANOUT_EXCHANGE_NAME.asString()); - _headersExchange = _jmxUtils.getManagedExchange(ExchangeDefaults.HEADERS_EXCHANGE_NAME.asString()); + _directExchange = _jmxUtils.getManagedExchange(ExchangeDefaults.DIRECT_EXCHANGE_NAME); + _topicExchange = _jmxUtils.getManagedExchange(ExchangeDefaults.TOPIC_EXCHANGE_NAME); + _fanoutExchange = _jmxUtils.getManagedExchange(ExchangeDefaults.FANOUT_EXCHANGE_NAME); + _headersExchange = _jmxUtils.getManagedExchange(ExchangeDefaults.HEADERS_EXCHANGE_NAME); _connection = getConnection(); _connection.start(); diff --git a/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java b/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java index 664b8fffa4..da72dd6f05 100644 --- a/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java +++ b/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java @@ -80,8 +80,8 @@ public class StructureRestTest extends QpidRestTestCase Map<String, Object> exchange = getRestTestHelper().find("name", exchangeName, exchanges); assertNotNull("Exchange " + exchangeName + " is not found ", exchange); assertNode(exchange, exchangeName); - if (ExchangeDefaults.DIRECT_EXCHANGE_NAME.asString().equalsIgnoreCase(exchangeName) || - ExchangeDefaults.DEFAULT_EXCHANGE_NAME.asString().equalsIgnoreCase(exchangeName)) + if (ExchangeDefaults.DIRECT_EXCHANGE_NAME.equalsIgnoreCase(exchangeName) || + ExchangeDefaults.DEFAULT_EXCHANGE_NAME.equalsIgnoreCase(exchangeName)) { @SuppressWarnings("unchecked") List<Map<String, Object>> bindings = (List<Map<String, Object>>) exchange.get("bindings"); diff --git a/java/systests/src/main/java/org/apache/qpid/test/unit/basic/MultipleConnectionTest.java b/java/systests/src/main/java/org/apache/qpid/test/unit/basic/MultipleConnectionTest.java index 3c26cbb3c9..2d8847ea33 100644 --- a/java/systests/src/main/java/org/apache/qpid/test/unit/basic/MultipleConnectionTest.java +++ b/java/systests/src/main/java/org/apache/qpid/test/unit/basic/MultipleConnectionTest.java @@ -19,6 +19,7 @@ */ package org.apache.qpid.test.unit.basic; +import org.apache.qpid.framing.AMQShortString; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -190,7 +191,7 @@ public class MultipleConnectionTest extends QpidBrokerTestCase String broker = _connectionString; int messages = 10; - AMQTopic topic = new AMQTopic(ExchangeDefaults.TOPIC_EXCHANGE_NAME, "amq.topic"); + AMQTopic topic = new AMQTopic(AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_NAME), "amq.topic"); Receiver[] receivers = new Receiver[] { new Receiver(broker, topic, 2), new Receiver(broker, topic, 14) }; diff --git a/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java b/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java index 67b2e099bf..963a23b0ba 100644 --- a/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java +++ b/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java @@ -88,16 +88,16 @@ public class ConnectionTest extends QpidBrokerTestCase AMQSession sess = (AMQSession) conn.createSession(false, Session.AUTO_ACKNOWLEDGE); sess.declareExchange(new AMQShortString("test.direct"), - ExchangeDefaults.DIRECT_EXCHANGE_CLASS, false); + AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_CLASS), false); sess.declareExchange(new AMQShortString("tmp.direct"), - ExchangeDefaults.DIRECT_EXCHANGE_CLASS, false); + AMQShortString.valueOf(ExchangeDefaults.DIRECT_EXCHANGE_CLASS), false); sess.declareExchange(new AMQShortString("tmp.topic"), - ExchangeDefaults.TOPIC_EXCHANGE_CLASS, false); + AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_CLASS), false); sess.declareExchange(new AMQShortString("test.topic"), - ExchangeDefaults.TOPIC_EXCHANGE_CLASS, false); + AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_CLASS), false); QueueSession queueSession = conn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); diff --git a/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java b/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java index 3828cd8ea0..38a7b90ebd 100755 --- a/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java +++ b/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java @@ -57,6 +57,7 @@ import org.apache.qpid.client.AMQConnectionURL; import org.apache.qpid.client.AMQQueue; import org.apache.qpid.client.AMQTopic; import org.apache.qpid.exchange.ExchangeDefaults; +import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.jms.BrokerDetails; import org.apache.qpid.jms.ConnectionURL; import org.apache.qpid.server.Broker; @@ -1190,7 +1191,7 @@ public class QpidBrokerTestCase extends QpidTestCase */ public Topic getTestTopic() { - return new AMQTopic(ExchangeDefaults.TOPIC_EXCHANGE_NAME, getTestQueueName()); + return new AMQTopic(AMQShortString.valueOf(ExchangeDefaults.TOPIC_EXCHANGE_NAME), getTestQueueName()); } @Override |