diff options
| author | Robert Gemmell <robbie@apache.org> | 2012-07-08 15:29:04 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2012-07-08 15:29:04 +0000 |
| commit | 16a59fad4a73a52505cfb6ebe4ed2f6bf86f7e2c (patch) | |
| tree | 56783953077bcef98f76643fc0231138834f1ac1 /qpid/java/broker/src | |
| parent | 961d36e600fab24b35c6920481a55f8d022f9c85 (diff) | |
| download | qpid-python-16a59fad4a73a52505cfb6ebe4ed2f6bf86f7e2c.tar.gz | |
QPID-3923, QPID-3998: update the Adapter layer to either use UUIDGenerator itself, or use the ID directly from the entity being adapted
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1358758 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker/src')
16 files changed, 203 insertions, 87 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/UUIDGenerator.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/UUIDGenerator.java index fa59226642..36b6a454dc 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/UUIDGenerator.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/UUIDGenerator.java @@ -30,29 +30,51 @@ public class UUIDGenerator return UUID.randomUUID(); } + private static UUID createUUID(String objectType, String... names) + { + StringBuilder sb = new StringBuilder(); + sb.append(objectType); + + for(String name : names) + { + sb.append("/").append(name); + } + + return UUID.nameUUIDFromBytes(sb.toString().getBytes()); + } + public static UUID generateExchangeUUID(String exchangeName, String virtualHostName) { - return generateUUID(exchangeName, virtualHostName, Exchange.class.getName()); + return createUUID(Exchange.class.getName(), virtualHostName, exchangeName); } public static UUID generateQueueUUID(String queueName, String virtualHostName) { - return generateUUID(queueName, virtualHostName, Queue.class.getName()); + return createUUID(Queue.class.getName(), virtualHostName, queueName); } - private static UUID generateUUID(String objectName, String virtualHostName, String objectType) + public static UUID generateBindingUUID(String exchangeName, String queueName, String bindingKey, String virtualHostName) { - StringBuilder sb = new StringBuilder(); - sb.append(virtualHostName).append(objectName).append(objectType); + return createUUID(Binding.class.getName(), virtualHostName, exchangeName, queueName, bindingKey); + } - return UUID.nameUUIDFromBytes(sb.toString().getBytes()); + public static UUID generateUserUUID(String authenticationProviderName, String userName) + { + return createUUID(User.class.getName(), authenticationProviderName, userName); } - public static UUID generateBindingUUID(String exchangeName, String queueName, String bindingKey, String virtualHostName) + public static UUID generateVhostUUID(String virtualHostName) { - StringBuilder sb = new StringBuilder(); - sb.append(exchangeName).append(queueName).append(bindingKey).append(virtualHostName).append(Binding.class.getName()); + return createUUID(VirtualHost.class.getName(), virtualHostName); + } - return UUID.nameUUIDFromBytes(sb.toString().getBytes()); + public static UUID generateVhostAliasUUID(String virtualHostName, String portName) + { + return createUUID(VirtualHostAlias.class.getName(), virtualHostName, portName); + } + + public static UUID generateConsumerUUID(String virtualHostName, String queueName, String connectionRemoteAddress, String channelNumber, String consumerName) + { + return createUUID(Consumer.class.getName(), virtualHostName, queueName, connectionRemoteAddress, channelNumber, consumerName); } } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java index 78880c232d..7d6aa9b2cb 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java @@ -41,19 +41,9 @@ abstract class AbstractAdapter implements ConfiguredObject private final UUID _id; - protected AbstractAdapter(String... names) + protected AbstractAdapter(UUID id) { - StringBuilder sb = new StringBuilder(); - for(String name : names) - { - sb.append('/').append(name); - } - _id = UUID.nameUUIDFromBytes(sb.toString().getBytes()); - } - - protected AbstractAdapter() - { - _id = UUID.randomUUID(); + _id = id; } static String getStringAttribute(String name, Map<String,Object> attributes, String defaultVal) diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java index 8a75818f04..8c2bc98ba7 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java @@ -50,6 +50,7 @@ public abstract class AuthenticationProviderAdapter<T extends AuthenticationMana private AuthenticationProviderAdapter(BrokerAdapter brokerAdapter, final T authManager) { + super(UUIDGenerator.generateRandomUUID()); _broker = brokerAdapter; _authManager = authManager; } @@ -329,7 +330,7 @@ public abstract class AuthenticationProviderAdapter<T extends AuthenticationMana public PrincipalAdapter(Principal user) { - super(PrincipalDatabaseAuthenticationManagerAdapter.this.getName(), user.getName()); + super(UUIDGenerator.generateUserUUID(PrincipalDatabaseAuthenticationManagerAdapter.this.getName(), user.getName())); _user = user; } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BindingAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BindingAdapter.java index d3d04be70f..f041494781 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BindingAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BindingAdapter.java @@ -47,10 +47,7 @@ final class BindingAdapter extends AbstractAdapter implements Binding ExchangeAdapter exchangeAdapter, QueueAdapter queueAdapter) { - super(exchangeAdapter.getExchange().getVirtualHost().getName(), - exchangeAdapter.getName(), - queueAdapter.getName(), - binding.getBindingKey()); + super(binding.getId()); _binding = binding; _exchange = exchangeAdapter; _queue = queueAdapter; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java index e1b7c8fb26..e1a6b6a337 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java @@ -35,6 +35,7 @@ import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.Statistics; +import org.apache.qpid.server.model.UUIDGenerator; import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.registry.IApplicationRegistry; import org.apache.qpid.server.security.auth.manager.AuthenticationManager; @@ -61,6 +62,7 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, VirtualHos public BrokerAdapter(final IApplicationRegistry instance) { + super(UUIDGenerator.generateRandomUUID()); _applicationRegistry = instance; _name = "Broker"; _statistics = new StatisticsAdapter(instance); diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java index 8114156e3a..5439f6a560 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java @@ -37,16 +37,13 @@ import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Session; import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.Statistics; +import org.apache.qpid.server.model.UUIDGenerator; import org.apache.qpid.server.protocol.AMQConnectionModel; import org.apache.qpid.server.protocol.AMQSessionModel; import org.apache.qpid.server.stats.StatisticsGatherer; final class ConnectionAdapter extends AbstractAdapter implements Connection { - - - - private AMQConnectionModel _connection; private final Map<AMQSessionModel, SessionAdapter> _sessionAdapters = @@ -55,6 +52,7 @@ final class ConnectionAdapter extends AbstractAdapter implements Connection public ConnectionAdapter(final AMQConnectionModel conn) { + super(UUIDGenerator.generateRandomUUID()); _connection = conn; _statistics = new ConnectionStatisticsAdapter(conn); } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConsumerAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConsumerAdapter.java index 6fb6f4971d..031d518670 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConsumerAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConsumerAdapter.java @@ -26,6 +26,7 @@ import org.apache.qpid.server.model.Consumer; import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.Statistics; +import org.apache.qpid.server.model.UUIDGenerator; import org.apache.qpid.server.subscription.Subscription; import java.security.AccessControlException; @@ -40,12 +41,11 @@ public class ConsumerAdapter extends AbstractAdapter implements Consumer public ConsumerAdapter(final QueueAdapter queueAdapter, final Subscription subscription) { - super(queueAdapter.getVirtualHost().getName(), - queueAdapter.getName(), - subscription.getSessionModel().getConnectionModel().getRemoteAddressString(), - String.valueOf(subscription.getSessionModel().getChannelId()), - subscription.getConsumerName() ); - + super(UUIDGenerator.generateConsumerUUID(queueAdapter.getVirtualHost().getName(), + queueAdapter.getName(), + subscription.getSessionModel().getConnectionModel().getRemoteAddressString(), + String.valueOf(subscription.getSessionModel().getChannelId()), + subscription.getConsumerName())); _subscription = subscription; _queue = queueAdapter; _statistics = new ConsumerStatistics(); diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java index 12befab0d7..c0d85845d6 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java @@ -26,7 +26,6 @@ import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; -import java.util.UUID; import org.apache.qpid.AMQException; import org.apache.qpid.AMQInternalException; @@ -39,7 +38,6 @@ import org.apache.qpid.server.model.Publisher; import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.Statistics; -import org.apache.qpid.server.model.UUIDGenerator; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.virtualhost.VirtualHost; @@ -56,7 +54,7 @@ final class ExchangeAdapter extends AbstractAdapter implements Exchange, org.apa public ExchangeAdapter(final VirtualHostAdapter virtualHostAdapter, final org.apache.qpid.server.exchange.Exchange exchange) { - super(virtualHostAdapter.getName(), exchange.getName()); + super(exchange.getId()); _statistics = new ExchangeStatistics(); _vhost = virtualHostAdapter; _exchange = exchange; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/HTTPPortAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/HTTPPortAdapter.java index fdcc5e0184..a20185802f 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/HTTPPortAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/HTTPPortAdapter.java @@ -33,6 +33,7 @@ import org.apache.qpid.server.model.Protocol; import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.Statistics; import org.apache.qpid.server.model.Transport; +import org.apache.qpid.server.model.UUIDGenerator; import org.apache.qpid.server.model.VirtualHostAlias; public class HTTPPortAdapter extends AbstractAdapter implements Port @@ -41,6 +42,7 @@ public class HTTPPortAdapter extends AbstractAdapter implements Port private int _port; public HTTPPortAdapter(BrokerAdapter brokerAdapter, int port) { + super(UUIDGenerator.generateRandomUUID()); _broker = brokerAdapter; _port = port; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java index 0021431ee3..7653fcc9b9 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java @@ -30,6 +30,7 @@ import org.apache.qpid.server.model.Protocol; import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.Statistics; import org.apache.qpid.server.model.Transport; +import org.apache.qpid.server.model.UUIDGenerator; import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.model.VirtualHostAlias; import org.apache.qpid.server.protocol.AmqpProtocolVersion; @@ -51,6 +52,7 @@ public class PortAdapter extends AbstractAdapter implements Port public PortAdapter(BrokerAdapter brokerAdapter, QpidAcceptor acceptor, InetSocketAddress address) { + super(UUIDGenerator.generateRandomUUID()); _broker = brokerAdapter; _acceptor = acceptor; _address = address; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java index 5c35fe5f7b..24df5e97fa 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java @@ -76,7 +76,7 @@ final class QueueAdapter extends AbstractAdapter implements Queue, AMQQueue.Subs public QueueAdapter(final VirtualHostAdapter virtualHostAdapter, final AMQQueue queue) { - super(virtualHostAdapter.getName(), queue.getName()); + super(queue.getId()); _vhost = virtualHostAdapter; addParent(org.apache.qpid.server.model.VirtualHost.class, virtualHostAdapter); diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java index 25d9c6feb1..fa0293ad18 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java @@ -33,6 +33,7 @@ import org.apache.qpid.server.model.Session; import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.Statistics; import org.apache.qpid.server.model.Consumer; +import org.apache.qpid.server.model.UUIDGenerator; import org.apache.qpid.server.protocol.AMQSessionModel; final class SessionAdapter extends AbstractAdapter implements Session @@ -45,6 +46,7 @@ final class SessionAdapter extends AbstractAdapter implements Session public SessionAdapter(final AMQSessionModel session) { + super(UUIDGenerator.generateRandomUUID()); _session = session; _statistics = new SessionStatistics(); } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java index e2efb05205..52cf806be2 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java @@ -84,7 +84,7 @@ final class VirtualHostAdapter extends AbstractAdapter implements VirtualHost, E VirtualHostAdapter(BrokerAdapter brokerAdapter, final org.apache.qpid.server.virtualhost.VirtualHost virtualHost) { - super(virtualHost.getName()); + super(virtualHost.getId()); _broker = brokerAdapter; _virtualHost = virtualHost; _statistics = new VirtualHostStatisticsAdapter(virtualHost); diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java index 22ea2e612b..367d1ff518 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java @@ -28,6 +28,7 @@ import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.Statistics; +import org.apache.qpid.server.model.UUIDGenerator; import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.model.VirtualHostAlias; @@ -42,7 +43,7 @@ public class VirtualHostAliasAdapter extends AbstractAdapter implements Virtual public VirtualHostAliasAdapter(VirtualHostAdapter virtualHostAdapter, Port port) { - super(virtualHostAdapter.getName(), port.getName()); + super(UUIDGenerator.generateVhostAliasUUID(virtualHostAdapter.getName(), port.getName())); _vhost = virtualHostAdapter; _port = port; } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java index 2d0e61ec2e..e07464c52c 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java @@ -27,7 +27,6 @@ import java.util.List; import java.util.UUID; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; -import javax.management.JMException; import javax.security.auth.Subject; import org.apache.qpid.AMQException; import org.apache.qpid.protocol.AMQConstant; diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/model/UUIDGeneratorTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/UUIDGeneratorTest.java index e99ac1f063..643132d371 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/model/UUIDGeneratorTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/UUIDGeneratorTest.java @@ -20,6 +20,8 @@ */ package org.apache.qpid.server.model; +import java.util.HashSet; +import java.util.Set; import java.util.UUID; import org.apache.qpid.test.utils.QpidTestCase; @@ -28,84 +30,184 @@ public class UUIDGeneratorTest extends QpidTestCase { private static final String VIRTUAL_HOST_NAME_1 = "virtualHost1"; private static final String VIRTUAL_HOST_NAME_2 = "virtualHost2"; + private static final String VHOST_ALIAS_1 = "alias1"; + private static final String VHOST_ALIAS_2 = "alias2"; private static final String QUEUE_NAME_1 = "queue1"; private static final String QUEUE_NAME_2 = "queue2"; private static final String EXCHANGE_NAME_1 = "exchange1"; private static final String EXCHANGE_NAME_2 = "exchange2"; private static final String BINDING_KEY_1 = "bindingKey1"; private static final String BINDING_KEY_2 = "bindingKey2"; + private static final String PORT_1 = "port1"; + private static final String PORT_2 = "port2"; + private static final String CONN_REMOTE_ADDR_1 = "localhost:1234"; + private static final String CONN_REMOTE_ADDR_2 = "localhost:5678"; + private static final String CHANNEL_NUMBER_1 = "1"; + private static final String CHANNEL_NUMBER_2 = "2"; + private static final String CONSUMER_NAME_1 = "consumer1"; + private static final String CONSUMER_NAME_2 = "consumer2"; + private static final String PROVIDER_1 = "provider1"; + private static final String PROVIDER_2 = "provider2"; + private static final String USER_1 = "user1"; + private static final String USER_2 = "user2"; public void testDifferentObjectTypeReturnDifferentIdFromSameValues() throws Exception { - UUID id1 = UUIDGenerator.generateQueueUUID("name", "vhost"); - UUID id2 = UUIDGenerator.generateExchangeUUID("name", "vhost"); - UUID id3 = UUIDGenerator.generateBindingUUID("name", "name", "name", "vhost"); + String value = "name"; + Set<UUID> idSet = new HashSet<UUID>(); - assertFalse("IDs should not be equal", id1.equals(id2)); - assertFalse("IDs should not be equal", id2.equals(id3)); - assertFalse("IDs should not be equal", id1.equals(id3)); - } + UUID id1 = UUIDGenerator.generateQueueUUID(value, value); + idSet.add(id1); + UUID id2 = UUIDGenerator.generateExchangeUUID(value, value); + idSet.add(id2); + UUID id3 = UUIDGenerator.generateBindingUUID(value, value, value, value); + idSet.add(id3); + UUID id4 = UUIDGenerator.generateConsumerUUID(value, value, value, value, value); + idSet.add(id4); + UUID id5 = UUIDGenerator.generateUserUUID(value, value); + idSet.add(id5); + UUID id6 = UUIDGenerator.generateVhostUUID(value); + idSet.add(id6); + UUID id7 = UUIDGenerator.generateVhostAliasUUID(value, value); + idSet.add(id7); - public void testRepeatedQueueIdGenerationIsDeterministic() throws Exception - { - UUID queueIdIteration1 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); - UUID queueIdIteration2 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); - assertEquals("Queue IDs should be equal", queueIdIteration1, queueIdIteration2); + assertEquals("The produced UUIDs were not all unique", 7, idSet.size()); } - public void testRepeatedExchangeIdGenerationIsDeterministic() throws Exception + public void testQueueIdGeneration() throws Exception { - UUID exchangeIdIteration1 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_1); - UUID exchangeIdIteration2 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_1); - assertEquals("Exchange IDs should be equal", exchangeIdIteration1, exchangeIdIteration2); - } + //check repeated generation is deterministic + UUID queue1 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); + UUID queue2 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); + assertEquals("Queue IDs should be equal", queue1, queue2); - public void testRepeatedBindingIdGenerationIsDeterministic() throws Exception - { - UUID bindingIdIteration1 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_1); - UUID bindingIdIteration2 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_1); - assertEquals("Binding IDs should be equal", bindingIdIteration1, bindingIdIteration2); - } + //check different name gives different ID + queue1 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); + queue2 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_2, VIRTUAL_HOST_NAME_1); + assertFalse("Queue IDs should not be equal", queue1.equals(queue2)); - public void testDifferentQueueNameGivesDifferentQueueId() throws Exception - { - UUID queue1 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); - UUID queue2 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_2, VIRTUAL_HOST_NAME_1); + //check different vhost name gives different ID + queue1 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); + queue2 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_2); assertFalse("Queue IDs should not be equal", queue1.equals(queue2)); } - public void testDifferentExchangeNameGivesDifferentExchangeId() throws Exception + public void testExchangeIdGeneration() throws Exception { + //check repeated generation is deterministic UUID exchange1 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_1); - UUID exchange2 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_2, VIRTUAL_HOST_NAME_1); + UUID exchange2 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_1); + assertEquals("Exchange IDs should be equal", exchange1, exchange2); + + //check different name gives different ID + exchange1 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_1); + exchange2 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_2, VIRTUAL_HOST_NAME_1); + assertFalse("Exchange IDs should not be equal", exchange1.equals(exchange2)); + + //check different vhost name gives different ID + exchange1 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_1); + exchange2 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_2); assertFalse("Exchange IDs should not be equal", exchange1.equals(exchange2)); } - public void testDifferentBindingNameGivesDifferentBindingId() throws Exception + public void testBindingIdGeneration() throws Exception { + //check repeated generation is deterministic UUID binding1 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_1); - UUID binding2 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_2, VIRTUAL_HOST_NAME_1); + UUID binding2 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_1); + assertEquals("Binding IDs should be equal", binding1, binding2); + + //check different name gives different ID + binding1 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_1); + binding2 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_2, VIRTUAL_HOST_NAME_1); + assertFalse("Binding IDs should not be equal", binding1.equals(binding2)); + + //check different vhost name gives different ID + binding1 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_1); + binding2 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_2); assertFalse("Binding IDs should not be equal", binding1.equals(binding2)); } - public void testDifferentVirtualHostNameGivesDifferentQueueId() throws Exception + public void testVhostIdGeneration() throws Exception { - UUID queue1 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); - UUID queue2 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_2); - assertFalse("Queue IDs should not be equal", queue1.equals(queue2)); + //check repeated generation is deterministic + UUID vhost1 = UUIDGenerator.generateVhostUUID(VIRTUAL_HOST_NAME_1); + UUID vhost2 = UUIDGenerator.generateVhostUUID(VIRTUAL_HOST_NAME_1); + assertTrue("Virtualhost IDs should be equal", vhost1.equals(vhost2)); + + //check different vhost name gives different ID + vhost1 = UUIDGenerator.generateVhostUUID(VIRTUAL_HOST_NAME_1); + vhost2 = UUIDGenerator.generateVhostUUID(VIRTUAL_HOST_NAME_2); + assertFalse("Virtualhost IDs should not be equal", vhost1.equals(vhost2)); } - public void testDifferentVirtualHostNameGivesDifferentExchangeId() throws Exception + public void testVhostAliasIdGeneration() throws Exception { - UUID exchange1 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_1); - UUID exchange2 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_2); - assertFalse("Exchange IDs should not be equal", exchange1.equals(exchange2)); + //check repeated generation is deterministic + UUID alias1 = UUIDGenerator.generateVhostAliasUUID(VHOST_ALIAS_1, PORT_1); + UUID alias2 = UUIDGenerator.generateVhostAliasUUID(VHOST_ALIAS_1, PORT_1); + assertTrue("Virtualhost Alias IDs should be equal", alias1.equals(alias2)); + + //check different port name gives different ID + alias1 = UUIDGenerator.generateVhostAliasUUID(VHOST_ALIAS_1, PORT_1); + alias2 = UUIDGenerator.generateVhostAliasUUID(VHOST_ALIAS_2, PORT_1); + assertFalse("Virtualhost Alias IDs should not be equal", alias1.equals(alias2)); + + //check different alias name gives different ID + alias1 = UUIDGenerator.generateVhostAliasUUID(VHOST_ALIAS_1, PORT_1); + alias2 = UUIDGenerator.generateVhostAliasUUID(VHOST_ALIAS_1, PORT_2); + assertFalse("Virtualhost Alias IDs should not be equal", alias1.equals(alias2)); } - public void testDifferentVirtualHostNameGivesDifferentBindingId() throws Exception + public void testConsumerIdGeneration() throws Exception { - UUID binding1 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_1); - UUID binding2 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_2); - assertFalse("Binding IDs should not be equal", binding1.equals(binding2)); + //check repeated generation is deterministic + UUID consumer1 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + UUID consumer2 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + assertTrue("Consumer IDs should be equal", consumer1.equals(consumer2)); + + //check different name gives different ID + consumer1 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + consumer2 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_2); + assertFalse("Consumer IDs should not be equal", consumer1.equals(consumer2)); + + //check different vhost name gives different ID + consumer1 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + consumer2 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_2, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + assertFalse("Consumer IDs should not be equal", consumer1.equals(consumer2)); + + //check different consumer name gives different ID + consumer1 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + consumer2 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_2, CONSUMER_NAME_1); + assertFalse("Consumer IDs should not be equal", consumer1.equals(consumer2)); + + //check different address name gives different ID + consumer1 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + consumer2 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_2, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + assertFalse("Consumer IDs should not be equal", consumer1.equals(consumer2)); + + //check different queue name gives different ID + consumer1 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + consumer2 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_2, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + assertFalse("Consumer IDs should not be equal", consumer1.equals(consumer2)); + } + + public void testUserIdGeneration() throws Exception + { + //check repeated generation is deterministic + UUID user1 = UUIDGenerator.generateUserUUID(PROVIDER_1, USER_1); + UUID user2 = UUIDGenerator.generateUserUUID(PROVIDER_1, USER_1); + assertTrue("User IDs should be equal", user1.equals(user2)); + + //check different name gives different ID + user1 = UUIDGenerator.generateUserUUID(PROVIDER_1, USER_1); + user2 = UUIDGenerator.generateUserUUID(PROVIDER_1, USER_2); + assertFalse("User IDs should not be equal", user1.equals(user2)); + + //check different provider gives different ID + user1 = UUIDGenerator.generateUserUUID(PROVIDER_1, USER_1); + user2 = UUIDGenerator.generateUserUUID(PROVIDER_2, USER_1); + assertFalse("User IDs should not be equal", user1.equals(user2)); } + } |
