You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2014/04/17 03:07:36 UTC

svn commit: r1588126 [3/3] - in /qpid/trunk/qpid/java: bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/ bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/ broker-core/src/main/java/org/apache/qpid/server/ broker-core/src/mai...

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java Thu Apr 17 01:07:34 2014
@@ -39,7 +39,6 @@ import org.mockito.stubbing.Answer;
 
 import org.apache.qpid.exchange.ExchangeDefaults;
 import org.apache.qpid.server.configuration.BrokerProperties;
-import org.apache.qpid.server.exchange.DefaultExchangeFactory;
 import org.apache.qpid.server.exchange.ExchangeImpl;
 import org.apache.qpid.server.logging.EventLogger;
 import org.apache.qpid.server.model.LifetimePolicy;
@@ -237,7 +236,7 @@ public class AMQQueueFactoryTest extends
     {
 
         String queueName = "testDeadLetterQueueEnabled";
-        String dlExchangeName = queueName + DefaultExchangeFactory.DEFAULT_DLE_NAME_SUFFIX;
+        String dlExchangeName = queueName + VirtualHostImpl.DEFAULT_DLE_NAME_SUFFIX;
         String dlQueueName = queueName + AMQQueueFactory.DEFAULT_DLQ_NAME_SUFFIX;
 
         assertNull("The DLQ should not yet exist", _virtualHost.getQueue(dlQueueName));
@@ -277,7 +276,7 @@ public class AMQQueueFactoryTest extends
     {
 
         String queueName = "testDeadLetterQueueEnabled";
-        String dlExchangeName = queueName + DefaultExchangeFactory.DEFAULT_DLE_NAME_SUFFIX;
+        String dlExchangeName = queueName + VirtualHostImpl.DEFAULT_DLE_NAME_SUFFIX;
         String dlQueueName = queueName + AMQQueueFactory.DEFAULT_DLQ_NAME_SUFFIX;
 
         assertNull("The DLQ should not yet exist", _virtualHost.getQueue(dlQueueName));
@@ -320,7 +319,7 @@ public class AMQQueueFactoryTest extends
 
 
         String queueName = "testDeadLetterQueueDisabled";
-        String dlExchangeName = queueName + DefaultExchangeFactory.DEFAULT_DLE_NAME_SUFFIX;
+        String dlExchangeName = queueName + VirtualHostImpl.DEFAULT_DLE_NAME_SUFFIX;
         String dlQueueName = queueName + AMQQueueFactory.DEFAULT_DLQ_NAME_SUFFIX;
 
         assertNull("The DLQ should not yet exist", _virtualHost.getQueue(dlQueueName));
@@ -350,7 +349,7 @@ public class AMQQueueFactoryTest extends
     {
 
         String queueName = "testDeadLetterQueueNotCreatedForAutodeleteQueues";
-        String dlExchangeName = queueName + DefaultExchangeFactory.DEFAULT_DLE_NAME_SUFFIX;
+        String dlExchangeName = queueName + VirtualHostImpl.DEFAULT_DLE_NAME_SUFFIX;
         String dlQueueName = queueName + AMQQueueFactory.DEFAULT_DLQ_NAME_SUFFIX;
 
         assertNull("The DLQ should not yet exist", _virtualHost.getQueue(dlQueueName));

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/StandardQueueTest.java Thu Apr 17 01:07:34 2014
@@ -44,6 +44,7 @@ public class StandardQueueTest extends A
     public void testAutoDeleteQueue() throws Exception
     {
         getQueue().stop();
+        getQueue().delete();
         Map<String,Object> queueAttributes = new HashMap<String, Object>();
         queueAttributes.put(Queue.ID, UUID.randomUUID());
         queueAttributes.put(Queue.NAME, getQname());

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java Thu Apr 17 01:07:34 2014
@@ -21,24 +21,33 @@
 package org.apache.qpid.server.util;
 
 import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.net.SocketAddress;
+import java.security.PrivilegedAction;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
 
+import javax.security.auth.Subject;
+
+import org.apache.qpid.server.BrokerOptions;
 import org.apache.qpid.server.configuration.store.JsonConfigurationEntryStore;
 import org.apache.qpid.server.configuration.updater.TaskExecutor;
-import org.apache.qpid.server.exchange.DefaultExchangeFactory;
 import org.apache.qpid.server.exchange.ExchangeImpl;
 import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.LogRecorder;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObjectFactory;
+import org.apache.qpid.server.model.ConfiguredObjectFactoryImpl;
+import org.apache.qpid.server.model.Exchange;
 import org.apache.qpid.server.model.Model;
 import org.apache.qpid.server.model.Queue;
 import org.apache.qpid.server.model.State;
+import org.apache.qpid.server.model.SystemContext;
+import org.apache.qpid.server.model.SystemContextImpl;
 import org.apache.qpid.server.model.UUIDGenerator;
 import org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory;
 import org.apache.qpid.server.protocol.AMQConnectionModel;
@@ -46,6 +55,7 @@ import org.apache.qpid.server.protocol.A
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.security.SecurityManager;
 import org.apache.qpid.server.security.SubjectCreator;
+import org.apache.qpid.server.store.DurableConfigurationStore;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.store.TestMemoryMessageStore;
 import org.apache.qpid.server.virtualhost.AbstractVirtualHost;
@@ -68,6 +78,7 @@ public class BrokerTestHelper
 
     public static Broker createBrokerMock()
     {
+        ConfiguredObjectFactory objectFactory = new ConfiguredObjectFactoryImpl(Model.getInstance());
         SubjectCreator subjectCreator = mock(SubjectCreator.class);
         when(subjectCreator.getMechanisms()).thenReturn("");
         Broker broker = mock(Broker.class);
@@ -77,7 +88,9 @@ public class BrokerTestHelper
         when(broker.getSubjectCreator(any(SocketAddress.class))).thenReturn(subjectCreator);
         when(broker.getVirtualHostRegistry()).thenReturn(new VirtualHostRegistry(new EventLogger()));
         when(broker.getSecurityManager()).thenReturn(new SecurityManager(mock(Broker.class), false));
+        when(broker.getObjectFactory()).thenReturn(objectFactory);
         when(broker.getEventLogger()).thenReturn(new EventLogger());
+        when(broker.getCategoryClass()).thenReturn(Broker.class);
         return broker;
     }
 
@@ -94,14 +107,20 @@ public class BrokerTestHelper
     {
 
         //VirtualHostFactory factory = new PluggableFactoryLoader<VirtualHostFactory>(VirtualHostFactory.class).get(hostType);
-
+        SystemContext systemContext = new SystemContextImpl(TASK_EXECUTOR,
+                                                            new ConfiguredObjectFactoryImpl(Model.getInstance()),
+                                                            mock(EventLogger.class),
+                                                            mock(LogRecorder.class),
+                                                            new BrokerOptions());
+        ConfiguredObjectFactory objectFactory = new ConfiguredObjectFactoryImpl(Model.getInstance());
         Broker broker = mock(Broker.class);
+        when(broker.getParent(eq(SystemContext.class))).thenReturn(systemContext);
         when(broker.getVirtualHostRegistry()).thenReturn(virtualHostRegistry);
         when(broker.getTaskExecutor()).thenReturn(TASK_EXECUTOR);
         SecurityManager securityManager = new SecurityManager(broker, false);
         when(broker.getSecurityManager()).thenReturn(securityManager);
-
-        ConfiguredObjectFactory objectFactory = new ConfiguredObjectFactory(Model.getInstance());
+        when(broker.getCategoryClass()).thenReturn(Broker.class);
+        when(broker.getObjectFactory()).thenReturn(objectFactory);
         ConfiguredObjectTypeFactory factory = objectFactory.getConfiguredObjectTypeFactory(org.apache.qpid.server.model.VirtualHost.class,
                                                                       attributes);
 
@@ -165,17 +184,29 @@ public class BrokerTestHelper
     public static ExchangeImpl createExchange(String hostName, final boolean durable, final EventLogger eventLogger) throws Exception
     {
         SecurityManager securityManager = new SecurityManager(mock(Broker.class), false);
-        VirtualHostImpl virtualHost = mock(VirtualHostImpl.class);
+        final VirtualHostImpl virtualHost = mock(VirtualHostImpl.class);
         when(virtualHost.getName()).thenReturn(hostName);
         when(virtualHost.getSecurityManager()).thenReturn(securityManager);
         when(virtualHost.getEventLogger()).thenReturn(eventLogger);
-        DefaultExchangeFactory factory = new DefaultExchangeFactory(virtualHost);
-        Map<String,Object> attributes = new HashMap<String, Object>();
+        when(virtualHost.getDurableConfigurationStore()).thenReturn(mock(DurableConfigurationStore.class));
+        ConfiguredObjectFactory objectFactory = new ConfiguredObjectFactoryImpl(Model.getInstance());
+        final Map<String,Object> attributes = new HashMap<String, Object>();
         attributes.put(org.apache.qpid.server.model.Exchange.ID, UUIDGenerator.generateExchangeUUID("amp.direct", virtualHost.getName()));
         attributes.put(org.apache.qpid.server.model.Exchange.NAME, "amq.direct");
         attributes.put(org.apache.qpid.server.model.Exchange.TYPE, "direct");
         attributes.put(org.apache.qpid.server.model.Exchange.DURABLE, durable);
-        return factory.createExchange(attributes);
+        final ConfiguredObjectTypeFactory<? extends Exchange> exchangeFactory =
+                objectFactory.getConfiguredObjectTypeFactory(Exchange.class, attributes);
+        return Subject.doAs(SecurityManager.getSubjectWithAddedSystemRights(), new PrivilegedAction<ExchangeImpl>()
+        {
+            @Override
+            public ExchangeImpl run()
+            {
+
+                return (ExchangeImpl) exchangeFactory.create(attributes, virtualHost);
+            }
+        });
+
     }
 
     public static AMQQueue createQueue(String queueName, VirtualHostImpl virtualHost)

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/DurableConfigurationRecovererTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/DurableConfigurationRecovererTest.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/DurableConfigurationRecovererTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/DurableConfigurationRecovererTest.java Thu Apr 17 01:07:34 2014
@@ -20,6 +20,15 @@
  */
 package org.apache.qpid.server.virtualhost;
 
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyMap;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
@@ -28,43 +37,39 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.UUID;
 
-import org.apache.qpid.server.exchange.ExchangeImpl;
-import org.apache.qpid.server.logging.EventLogger;
-import org.apache.qpid.server.store.ConfiguredObjectRecordImpl;
-import org.apache.qpid.server.store.StoreException;
+import org.mockito.ArgumentCaptor;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
-import org.apache.qpid.server.exchange.AMQUnknownExchangeType;
 import org.apache.qpid.server.exchange.DirectExchange;
-import org.apache.qpid.server.exchange.ExchangeFactory;
-import org.apache.qpid.server.exchange.ExchangeRegistry;
-import org.apache.qpid.server.exchange.FanoutExchange;
+import org.apache.qpid.server.exchange.ExchangeImpl;
 import org.apache.qpid.server.exchange.HeadersExchange;
 import org.apache.qpid.server.exchange.TopicExchange;
+import org.apache.qpid.server.logging.EventLogger;
 import org.apache.qpid.server.model.Binding;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.ConfiguredObjectFactory;
+import org.apache.qpid.server.model.Exchange;
 import org.apache.qpid.server.model.Model;
 import org.apache.qpid.server.model.Queue;
+import org.apache.qpid.server.model.SystemContext;
 import org.apache.qpid.server.model.UUIDGenerator;
 import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory;
 import org.apache.qpid.server.plugin.ExchangeType;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.QueueFactory;
 import org.apache.qpid.server.store.ConfiguredObjectRecord;
+import org.apache.qpid.server.store.ConfiguredObjectRecordImpl;
 import org.apache.qpid.server.store.DurableConfigurationRecoverer;
 import org.apache.qpid.server.store.DurableConfigurationStore;
 import org.apache.qpid.server.store.DurableConfiguredObjectRecoverer;
+import org.apache.qpid.server.store.StoreException;
+import org.apache.qpid.server.store.UnresolvedConfiguredObject;
 import org.apache.qpid.server.util.MapValueConverter;
 import org.apache.qpid.test.utils.QpidTestCase;
-import org.mockito.ArgumentCaptor;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyBoolean;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 
 public class DurableConfigurationRecovererTest extends QpidTestCase
 {
@@ -76,50 +81,55 @@ public class DurableConfigurationRecover
     private static final String CUSTOM_EXCHANGE_NAME = "customExchange";
 
     private DurableConfigurationRecoverer _durableConfigurationRecoverer;
-    private ExchangeImpl<?> _directExchange;
-    private ExchangeImpl<?> _topicExchange;
-    private ExchangeImpl<?> _matchExchange;
-    private ExchangeImpl<?> _fanoutExchange;
     private VirtualHostImpl _vhost;
     private DurableConfigurationStore _store;
-    private ExchangeFactory _exchangeFactory;
-    private ExchangeRegistry _exchangeRegistry;
     private QueueFactory _queueFactory;
+    private ConfiguredObjectFactory _configuredObjectFactory;
+    private ConfiguredObjectTypeFactory _exchangeFactory;
 
     @Override
     public void setUp() throws Exception
     {
         super.setUp();
-
-        _exchangeFactory = mock(ExchangeFactory.class);
-
-        _directExchange = createAndRegisterDefaultExchangeWithFactory(DirectExchange.TYPE);
-        _topicExchange = createAndRegisterDefaultExchangeWithFactory(TopicExchange.TYPE);
-        _matchExchange = createAndRegisterDefaultExchangeWithFactory(HeadersExchange.TYPE);
-        _fanoutExchange = createAndRegisterDefaultExchangeWithFactory(FanoutExchange.TYPE);
+        _configuredObjectFactory = mock(ConfiguredObjectFactory.class);
+        _exchangeFactory = mock(ConfiguredObjectTypeFactory.class);
 
         AMQQueue<?> queue = mock(AMQQueue.class);
 
         _vhost = mock(VirtualHostImpl.class);
         when(_vhost.getName()).thenReturn(VIRTUAL_HOST_NAME);
-
-        _exchangeRegistry = mock(ExchangeRegistry.class);
+        final Broker<?> broker = mock(Broker.class);
+        final SystemContext systemContext = mock(SystemContext.class);
+        when(systemContext.getObjectFactory()).thenReturn(_configuredObjectFactory);
+        when(broker.getObjectFactory()).thenReturn(_configuredObjectFactory);
+        when(broker.getParent(eq(SystemContext.class))).thenReturn(systemContext);
+        when(_vhost.getParent(eq(Broker.class))).thenReturn(broker);
 
         when(_vhost.getQueue(eq(QUEUE_ID))).thenReturn(queue);
 
-        final ArgumentCaptor<ExchangeImpl> registeredExchange = ArgumentCaptor.forClass(ExchangeImpl.class);
+        when(_configuredObjectFactory.getConfiguredObjectTypeFactory(eq(Exchange.class), anyMap())).thenReturn(_exchangeFactory);
+
+        final ArgumentCaptor<ConfiguredObjectRecord> recoveredExchange = ArgumentCaptor.forClass(ConfiguredObjectRecord.class);
         doAnswer(new Answer()
         {
 
             @Override
             public Object answer(final InvocationOnMock invocation) throws Throwable
             {
-                ExchangeImpl exchange = registeredExchange.getValue();
-                when(_exchangeRegistry.getExchange(eq(exchange.getId()))).thenReturn(exchange);
-                when(_exchangeRegistry.getExchange(eq(exchange.getName()))).thenReturn(exchange);
-                return null;
+                ConfiguredObjectRecord exchangeRecord = recoveredExchange.getValue();
+                ExchangeImpl exchange = mock(ExchangeImpl.class);
+                UUID id = exchangeRecord.getId();
+                String name = (String) exchangeRecord.getAttributes().get("name");
+                when(exchange.getId()).thenReturn(id);
+                when(exchange.getName()).thenReturn(name);
+                when(_vhost.getExchange(eq(id))).thenReturn(exchange);
+                when(_vhost.getExchange(eq(name))).thenReturn(exchange);
+
+                UnresolvedConfiguredObject unresolved = mock(UnresolvedConfiguredObject.class);
+                when(unresolved.resolve()).thenReturn(exchange);
+                return unresolved;
             }
-        }).when(_exchangeRegistry).registerExchange(registeredExchange.capture());
+        }).when(_exchangeFactory).recover(recoveredExchange.capture(), any(ConfiguredObject.class));
 
 
 
@@ -164,7 +174,7 @@ public class DurableConfigurationRecover
                         {
                             final UUID exchangeId = UUID.fromString(args.get(Queue.ALTERNATE_EXCHANGE).toString());
                             final ExchangeImpl exchange =
-                                    (ExchangeImpl) _exchangeRegistry.getExchange(exchangeId);
+                                    (ExchangeImpl) _vhost.getExchange(exchangeId);
                             queue.setAlternateExchange(exchange);
                         }
                         return queue;
@@ -174,9 +184,9 @@ public class DurableConfigurationRecover
 
 
         DurableConfiguredObjectRecoverer[] recoverers = {
-                new QueueRecoverer(_vhost, _exchangeRegistry, _queueFactory),
-                new ExchangeRecoverer(_exchangeRegistry, _exchangeFactory),
-                new BindingRecoverer(_vhost, _exchangeRegistry)
+                new QueueRecoverer(_vhost, _queueFactory),
+                new ExchangeRecoverer(_vhost),
+                new BindingRecoverer(_vhost)
         };
 
         final Map<String, DurableConfiguredObjectRecoverer> recovererMap= new HashMap<String, DurableConfiguredObjectRecoverer>();
@@ -192,19 +202,6 @@ public class DurableConfigurationRecover
 
     }
 
-    private ExchangeImpl<?> createAndRegisterDefaultExchangeWithFactory(ExchangeType<?> exchangeType) throws AMQUnknownExchangeType, UnknownExchangeException
-    {
-        ExchangeImpl exchange = mock(ExchangeImpl.class);
-        when(exchange.getExchangeType()).thenReturn(exchangeType);
-        Map<String, Object> directExchangeAttrsWithId = new HashMap<String, Object>();
-        directExchangeAttrsWithId.put(org.apache.qpid.server.model.Exchange.ID, UUIDGenerator.generateExchangeUUID(exchangeType.getDefaultExchangeName(), VIRTUAL_HOST_NAME));
-        directExchangeAttrsWithId.put(org.apache.qpid.server.model.Exchange.DURABLE, true);
-        directExchangeAttrsWithId.put(org.apache.qpid.server.model.Exchange.TYPE, exchangeType.getType());
-        directExchangeAttrsWithId.put(org.apache.qpid.server.model.Exchange.NAME, exchangeType.getDefaultExchangeName());
-        when(_exchangeFactory.restoreExchange(directExchangeAttrsWithId)).thenReturn(exchange);
-        return exchange;
-    }
-
     public void testUpgradeEmptyStore() throws Exception
     {
         _durableConfigurationRecoverer.beginConfigurationRecovery(_store);
@@ -295,47 +292,6 @@ public class DurableConfigurationRecover
                                                            "org.apache.qpid.server.model.Exchange",
                                                            createExchange(CUSTOM_EXCHANGE_NAME, HeadersExchange.TYPE)));
 
-        final ExchangeImpl customExchange = mock(ExchangeImpl.class);
-
-        final ArgumentCaptor<Map> attributesCaptor = ArgumentCaptor.forClass(Map.class);
-        when(_exchangeFactory.restoreExchange(attributesCaptor.capture())).thenAnswer(new Answer<ExchangeImpl>()
-        {
-            @Override
-            public ExchangeImpl answer(final InvocationOnMock invocation) throws Throwable
-            {
-                Map arguments = attributesCaptor.getValue();
-                String exchangeName = (String) arguments.get(org.apache.qpid.server.model.Exchange.NAME);
-                if(CUSTOM_EXCHANGE_NAME.equals(exchangeName)
-                    && HeadersExchange.TYPE.getType().equals(arguments.get(org.apache.qpid.server.model.Exchange.TYPE))
-                    && customExchangeId.equals((UUID) arguments.get(org.apache.qpid.server.model.Exchange.ID)))
-                {
-                    return customExchange;
-                }
-                else if ("amq.topic".equals(exchangeName))
-                {
-                    return _topicExchange;
-                }
-                else if ("amq.direct".equals(exchangeName))
-                {
-                    return _directExchange;
-                }
-                else if ("amq.fanout".equals(exchangeName))
-                {
-                    return _fanoutExchange;
-                }
-                else if ("amq.match".equals(exchangeName))
-                {
-                    return _matchExchange;
-                }
-                else
-                {
-                    return null;
-                }
-            }
-        });
-
-
-
         final ConfiguredObjectRecord[] expected = {
                 new ConfiguredObjectRecordImpl(new UUID(1, 0), "org.apache.qpid.server.model.Binding",
                         createBinding("key", "not-a-selector", "moo")),
@@ -443,49 +399,6 @@ public class DurableConfigurationRecover
         final UUID queueId = new UUID(1, 0);
         final UUID exchangeId = new UUID(2, 0);
 
-        final ExchangeImpl customExchange = mock(ExchangeImpl.class);
-
-        when(customExchange.getId()).thenReturn(exchangeId);
-        when(customExchange.getName()).thenReturn(CUSTOM_EXCHANGE_NAME);
-
-        final ArgumentCaptor<Map> attributesCaptor = ArgumentCaptor.forClass(Map.class);
-
-        when(_exchangeFactory.restoreExchange(attributesCaptor.capture())).thenAnswer(new Answer<ExchangeImpl>()
-        {
-            @Override
-            public ExchangeImpl answer(final InvocationOnMock invocation) throws Throwable
-            {
-                Map arguments = attributesCaptor.getValue();
-                String exchangeName = (String) arguments.get(org.apache.qpid.server.model.Exchange.NAME);
-                if(CUSTOM_EXCHANGE_NAME.equals(exchangeName)
-                   && HeadersExchange.TYPE.getType().equals(arguments.get(org.apache.qpid.server.model.Exchange.TYPE))
-                   && exchangeId.equals(arguments.get(org.apache.qpid.server.model.Exchange.ID)))
-                {
-                    return customExchange;
-                }
-                else if ("amq.topic".equals(exchangeName))
-                {
-                    return _topicExchange;
-                }
-                else if ("amq.direct".equals(exchangeName))
-                {
-                    return _directExchange;
-                }
-                else if ("amq.fanout".equals(exchangeName))
-                {
-                    return _fanoutExchange;
-                }
-                else if ("amq.match".equals(exchangeName))
-                {
-                    return _matchExchange;
-                }
-                else
-                {
-                    return null;
-                }
-            }
-        });
-
         _durableConfigurationRecoverer.beginConfigurationRecovery(_store);
 
         _durableConfigurationRecoverer.configuredObject(new ConfiguredObjectRecordImpl(queueId, Queue.class.getSimpleName(),
@@ -496,7 +409,7 @@ public class DurableConfigurationRecover
 
         _durableConfigurationRecoverer.completeConfigurationRecovery();
 
-        assertEquals(customExchange, _vhost.getQueue(queueId).getAlternateExchange());
+        assertEquals(CUSTOM_EXCHANGE_NAME, _vhost.getQueue(queueId).getAlternateExchange().getName());
     }
 
     private void verifyCorrectUpdates(final ConfiguredObjectRecord[] expected) throws StoreException
@@ -578,4 +491,5 @@ public class DurableConfigurationRecover
 
     }
 
+
 }

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java Thu Apr 17 01:07:34 2014
@@ -35,12 +35,12 @@ import org.apache.qpid.server.message.Me
 import org.apache.qpid.server.model.ConfigurationChangeListener;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.ConfiguredObjectAttribute;
+import org.apache.qpid.server.model.ConfiguredObjectFactory;
 import org.apache.qpid.server.model.Connection;
 import org.apache.qpid.server.model.IllegalStateTransitionException;
 import org.apache.qpid.server.model.LifetimePolicy;
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.VirtualHostAlias;
-import org.apache.qpid.server.plugin.ExchangeType;
 import org.apache.qpid.server.protocol.LinkRegistry;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.QueueRegistry;
@@ -433,20 +433,15 @@ public class MockVirtualHost implements 
         return null;
     }
 
-    @Override
-    public Collection<ExchangeType<? extends ExchangeImpl>> getExchangeTypes()
-    {
-        return null;
-    }
-
     public SecurityManager getSecurityManager()
     {
         return null;
     }
 
     @Override
-    public void addVirtualHostListener(VirtualHostListener listener)
+    public ConfiguredObjectFactory getObjectFactory()
     {
+        return null;
     }
 
     public LinkRegistry getLinkRegistry(String remoteContainerId)
@@ -535,6 +530,18 @@ public class MockVirtualHost implements 
     }
 
     @Override
+    public <C extends ConfiguredObject> C getChildById(final Class<C> clazz, final UUID id)
+    {
+        return null;
+    }
+
+    @Override
+    public <C extends ConfiguredObject> C getChildByName(final Class<C> clazz, final String name)
+    {
+        return null;
+    }
+
+    @Override
     public <C extends ConfiguredObject> C createChild(final Class<C> childClass,
                                                       final Map<String, Object> attributes,
                                                       final ConfiguredObject... otherParents)

Modified: qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java Thu Apr 17 01:07:34 2014
@@ -20,6 +20,10 @@
  */
 package org.apache.qpid.server.protocol.v0_10;
 
+import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CONNECTION_FORMAT;
+import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.SOCKET_FORMAT;
+import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.USER_FORMAT;
+
 import java.net.SocketAddress;
 import java.security.Principal;
 import java.security.PrivilegedAction;
@@ -29,7 +33,9 @@ import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
+
 import javax.security.auth.Subject;
+
 import org.apache.qpid.protocol.AMQConstant;
 import org.apache.qpid.server.connection.ConnectionPrincipal;
 import org.apache.qpid.server.logging.EventLogger;
@@ -55,10 +61,6 @@ import org.apache.qpid.transport.Method;
 import org.apache.qpid.transport.ProtocolEvent;
 import org.apache.qpid.transport.Session;
 
-import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CONNECTION_FORMAT;
-import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.SOCKET_FORMAT;
-import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.USER_FORMAT;
-
 public class ServerConnection extends Connection implements AMQConnectionModel<ServerConnection, ServerSession>,
                                                             LogSubject, AuthorizationHolder
 {

Modified: qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java Thu Apr 17 01:07:34 2014
@@ -299,6 +299,7 @@ public class ServerConnectionDelegate ex
         stopAllSubscriptions(conn, dtc);
         Session ssn = conn.getSession(dtc.getChannel());
         ((ServerSession)ssn).setClose(true);
+        ((ServerSession)ssn).getModelObject().delete();
         super.sessionDetach(conn, dtc);
     }
 

Modified: qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java Thu Apr 17 01:07:34 2014
@@ -130,6 +130,7 @@ public class ServerSession extends Sessi
     private final CheckCapacityAction _checkCapacityAction = new CheckCapacityAction();
     private final CopyOnWriteArrayList<ConsumerListener> _consumerListeners = new CopyOnWriteArrayList<ConsumerListener>();
     private final ConfigurationChangeListener _consumerClosedListener = new ConsumerClosedListener();
+    private org.apache.qpid.server.model.Session<?> _modelObject;
 
 
     public static interface MessageDispositionChangeListener
@@ -859,6 +860,10 @@ public class ServerSession extends Sessi
         // unregister subscriptions in order to prevent sending of new messages
         // to subscriptions with closing session
         unregisterSubscriptions();
+        if(_modelObject != null)
+        {
+            _modelObject.delete();
+        }
         super.close();
     }
 
@@ -1003,6 +1008,18 @@ public class ServerSession extends Sessi
         _consumerListeners.remove(listener);
     }
 
+    @Override
+    public void setModelObject(final org.apache.qpid.server.model.Session<?> session)
+    {
+        _modelObject = session;
+    }
+
+    @Override
+    public org.apache.qpid.server.model.Session<?> getModelObject()
+    {
+        return _modelObject;
+    }
+
     private void consumerAdded(Consumer<?> consumer)
     {
         for(ConsumerListener l : _consumerListeners)

Modified: qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java Thu Apr 17 01:07:34 2014
@@ -20,20 +20,22 @@
  */
 package org.apache.qpid.server.protocol.v0_10;
 
+import java.nio.ByteBuffer;
 import java.security.AccessControlException;
+import java.util.Collection;
 import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.UUID;
+
 import org.apache.log4j.Logger;
 
 import org.apache.qpid.server.consumer.ConsumerImpl;
+import org.apache.qpid.server.exchange.AMQUnknownExchangeType;
 import org.apache.qpid.server.exchange.DirectExchange;
 import org.apache.qpid.server.exchange.ExchangeImpl;
-import org.apache.qpid.server.model.ExclusivityPolicy;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.store.StoreException;
-import org.apache.qpid.server.exchange.AMQUnknownExchangeType;
 import org.apache.qpid.server.exchange.HeadersExchange;
 import org.apache.qpid.server.filter.AMQInvalidArgumentException;
 import org.apache.qpid.server.filter.FilterManager;
@@ -43,13 +45,15 @@ import org.apache.qpid.server.message.In
 import org.apache.qpid.server.message.MessageDestination;
 import org.apache.qpid.server.message.MessageReference;
 import org.apache.qpid.server.message.MessageSource;
+import org.apache.qpid.server.model.ExclusivityPolicy;
+import org.apache.qpid.server.model.LifetimePolicy;
 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.QueueArgumentsConverter;
 import org.apache.qpid.server.store.DurableConfigurationStore;
 import org.apache.qpid.server.store.MessageStore;
+import org.apache.qpid.server.store.StoreException;
 import org.apache.qpid.server.store.StoreFuture;
 import org.apache.qpid.server.store.StoredMessage;
 import org.apache.qpid.server.txn.AlreadyKnownDtxException;
@@ -63,14 +67,15 @@ import org.apache.qpid.server.txn.Suspen
 import org.apache.qpid.server.txn.TimeoutDtxException;
 import org.apache.qpid.server.txn.UnknownDtxBranchException;
 import org.apache.qpid.server.util.ServerScopedRuntimeException;
-import org.apache.qpid.server.virtualhost.*;
+import org.apache.qpid.server.virtualhost.ExchangeExistsException;
+import org.apache.qpid.server.virtualhost.ExchangeIsAlternateException;
+import org.apache.qpid.server.virtualhost.QueueExistsException;
+import org.apache.qpid.server.virtualhost.RequiredExchangeException;
+import org.apache.qpid.server.virtualhost.ReservedExchangeNameException;
+import org.apache.qpid.server.virtualhost.UnknownExchangeException;
+import org.apache.qpid.server.virtualhost.VirtualHostImpl;
 import org.apache.qpid.transport.*;
 
-import java.nio.ByteBuffer;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
 public class ServerSessionDelegate extends SessionDelegate
 {
     private static final Logger LOGGER = Logger.getLogger(ServerSessionDelegate.class);
@@ -1278,7 +1283,7 @@ public class ServerSessionDelegate exten
                     arguments.put(Queue.ALTERNATE_EXCHANGE, alternateExchangeName);
                 }
 
-                final UUID id = UUIDGenerator.generateQueueUUID(queueName, virtualHost.getName());
+                final UUID id = UUID.randomUUID();
 
                 arguments.put(Queue.ID, id);
                 arguments.put(Queue.NAME, queueName);

Modified: qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java Thu Apr 17 01:07:34 2014
@@ -86,6 +86,7 @@ import org.apache.qpid.server.message.Se
 import org.apache.qpid.server.model.ConfigurationChangeListener;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.Consumer;
+import org.apache.qpid.server.model.Session;
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.protocol.AMQSessionModel;
 import org.apache.qpid.server.protocol.CapacityChecker;
@@ -195,6 +196,7 @@ public class AMQChannel<T extends AMQPro
     private final CopyOnWriteArrayList<Consumer<?>> _consumers = new CopyOnWriteArrayList<Consumer<?>>();
     private final ConfigurationChangeListener _consumerClosedListener = new ConsumerClosedListener();
     private final CopyOnWriteArrayList<ConsumerListener> _consumerListeners = new CopyOnWriteArrayList<ConsumerListener>();
+    private Session<?> _modelObject;
 
 
     public AMQChannel(T session, int channelId, final MessageStore messageStore)
@@ -737,6 +739,10 @@ public class AMQChannel<T extends AMQPro
 
 
         _transaction.rollback();
+        if(_modelObject != null)
+        {
+            _modelObject.delete();
+        }
 
         try
         {
@@ -1759,4 +1765,16 @@ public class AMQChannel<T extends AMQPro
     {
         _consumerListeners.remove(listener);
     }
+
+    @Override
+    public void setModelObject(final Session<?> session)
+    {
+        _modelObject = session;
+    }
+
+    @Override
+    public Session<?> getModelObject()
+    {
+        return _modelObject;
+    }
 }

Modified: qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueDeclareHandler.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueDeclareHandler.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueDeclareHandler.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/QueueDeclareHandler.java Thu Apr 17 01:07:34 2014
@@ -36,7 +36,6 @@ import org.apache.qpid.protocol.AMQConst
 import org.apache.qpid.server.model.ExclusivityPolicy;
 import org.apache.qpid.server.model.LifetimePolicy;
 import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.UUIDGenerator;
 import org.apache.qpid.server.protocol.AMQSessionModel;
 import org.apache.qpid.server.protocol.v0_8.AMQChannel;
 import org.apache.qpid.server.protocol.v0_8.AMQProtocolSession;
@@ -192,7 +191,7 @@ public class QueueDeclareHandler impleme
                 QueueArgumentsConverter.convertWireArgsToModel(FieldTable.convertToMap(body.getArguments()));
         final String queueNameString = AMQShortString.toString(queueName);
         attributes.put(Queue.NAME, queueNameString);
-        attributes.put(Queue.ID, UUIDGenerator.generateQueueUUID(queueNameString, virtualHost.getName()));
+        attributes.put(Queue.ID, UUID.randomUUID());
         attributes.put(Queue.DURABLE, durable);
 
         LifetimePolicy lifetimePolicy;

Modified: qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java Thu Apr 17 01:07:34 2014
@@ -272,11 +272,13 @@ public class InternalTestProtocolSession
         }
     }
 
+    private static final AtomicInteger portNumber = new AtomicInteger(0);
+    
     private static class TestNetworkConnection implements NetworkConnection
     {
         private String _remoteHost = "127.0.0.1";
         private String _localHost = "127.0.0.1";
-        private int _port = 1;
+        private int _port = portNumber.incrementAndGet();
         private final Sender<ByteBuffer> _sender;
 
         public TestNetworkConnection()

Modified: qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java Thu Apr 17 01:07:34 2014
@@ -21,16 +21,18 @@
 package org.apache.qpid.server.protocol.v1_0;
 
 import java.security.AccessControlException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.log4j.Logger;
-import org.apache.qpid.server.binding.BindingImpl;
-import org.apache.qpid.server.consumer.ConsumerImpl;
-import org.apache.qpid.server.exchange.ExchangeImpl;
-import org.apache.qpid.server.model.ExclusivityPolicy;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.model.Queue;
+
 import org.apache.qpid.amqp_1_0.transport.DeliveryStateHandler;
 import org.apache.qpid.amqp_1_0.transport.LinkEndpoint;
 import org.apache.qpid.amqp_1_0.transport.SendingLinkEndpoint;
@@ -41,26 +43,41 @@ import org.apache.qpid.amqp_1_0.type.Del
 import org.apache.qpid.amqp_1_0.type.Outcome;
 import org.apache.qpid.amqp_1_0.type.Symbol;
 import org.apache.qpid.amqp_1_0.type.UnsignedInteger;
-import org.apache.qpid.amqp_1_0.type.messaging.*;
+import org.apache.qpid.amqp_1_0.type.messaging.Accepted;
+import org.apache.qpid.amqp_1_0.type.messaging.ExactSubjectFilter;
+import org.apache.qpid.amqp_1_0.type.messaging.Filter;
+import org.apache.qpid.amqp_1_0.type.messaging.MatchingSubjectFilter;
+import org.apache.qpid.amqp_1_0.type.messaging.Modified;
+import org.apache.qpid.amqp_1_0.type.messaging.NoLocalFilter;
+import org.apache.qpid.amqp_1_0.type.messaging.Released;
+import org.apache.qpid.amqp_1_0.type.messaging.Source;
+import org.apache.qpid.amqp_1_0.type.messaging.StdDistMode;
+import org.apache.qpid.amqp_1_0.type.messaging.Target;
+import org.apache.qpid.amqp_1_0.type.messaging.TerminusDurability;
 import org.apache.qpid.amqp_1_0.type.transport.AmqpError;
 import org.apache.qpid.amqp_1_0.type.transport.Detach;
 import org.apache.qpid.amqp_1_0.type.transport.Error;
 import org.apache.qpid.amqp_1_0.type.transport.Transfer;
 import org.apache.qpid.filter.SelectorParsingException;
 import org.apache.qpid.filter.selector.ParseException;
+import org.apache.qpid.server.binding.BindingImpl;
+import org.apache.qpid.server.consumer.ConsumerImpl;
 import org.apache.qpid.server.exchange.DirectExchange;
+import org.apache.qpid.server.exchange.ExchangeImpl;
 import org.apache.qpid.server.exchange.TopicExchange;
 import org.apache.qpid.server.filter.JMSSelectorFilter;
 import org.apache.qpid.server.filter.SimpleFilterManager;
 import org.apache.qpid.server.message.MessageInstance;
 import org.apache.qpid.server.message.MessageSource;
-import org.apache.qpid.server.model.UUIDGenerator;
+import org.apache.qpid.server.model.ExclusivityPolicy;
+import org.apache.qpid.server.model.LifetimePolicy;
+import org.apache.qpid.server.model.Queue;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.txn.AutoCommitTransaction;
 import org.apache.qpid.server.txn.ServerTransaction;
 import org.apache.qpid.server.util.ConnectionScopedRuntimeException;
-import org.apache.qpid.server.virtualhost.VirtualHostImpl;
 import org.apache.qpid.server.virtualhost.QueueExistsException;
+import org.apache.qpid.server.virtualhost.VirtualHostImpl;
 
 public class SendingLink_1_0 implements SendingLinkListener, Link_1_0, DeliveryStateHandler
 {
@@ -204,7 +221,7 @@ public class SendingLink_1_0 implements 
                 if(queue == null)
                 {
                     Map<String,Object> attributes = new HashMap<String,Object>();
-                    attributes.put(Queue.ID, UUIDGenerator.generateQueueUUID(name, _vhost.getName()));
+                    attributes.put(Queue.ID, UUID.randomUUID());
                     attributes.put(Queue.NAME, name);
                     attributes.put(Queue.DURABLE, isDurable);
                     attributes.put(Queue.LIFETIME_POLICY, LifetimePolicy.DELETE_ON_NO_OUTBOUND_LINKS);

Modified: qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java Thu Apr 17 01:07:34 2014
@@ -78,7 +78,7 @@ import org.apache.qpid.server.message.Me
 import org.apache.qpid.server.model.ConfigurationChangeListener;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.Consumer;
-import org.apache.qpid.server.model.UUIDGenerator;
+import org.apache.qpid.server.model.Session;
 import org.apache.qpid.server.protocol.AMQSessionModel;
 import org.apache.qpid.server.protocol.ConsumerListener;
 import org.apache.qpid.server.protocol.LinkRegistry;
@@ -112,6 +112,7 @@ public class Session_1_0 implements Sess
     private final CopyOnWriteArrayList<Consumer<?>> _consumers = new CopyOnWriteArrayList<Consumer<?>>();
     private final ConfigurationChangeListener _consumerClosedListener = new ConsumerClosedListener();
     private final CopyOnWriteArrayList<ConsumerListener> _consumerListeners = new CopyOnWriteArrayList<ConsumerListener>();
+    private Session<?> _modelObject;
 
 
     public Session_1_0(final Connection_1_0 connection, final SessionEndpoint endpoint)
@@ -433,7 +434,7 @@ public class Session_1_0 implements Sess
                                             ? null
                                             : (LifetimePolicy) properties.get(LIFETIME_POLICY);
             Map<String,Object> attributes = new HashMap<String,Object>();
-            attributes.put(org.apache.qpid.server.model.Queue.ID, UUIDGenerator.generateQueueUUID(queueName, getVirtualHost().getName()));
+            attributes.put(org.apache.qpid.server.model.Queue.ID, UUID.randomUUID());
             attributes.put(org.apache.qpid.server.model.Queue.NAME, queueName);
             attributes.put(org.apache.qpid.server.model.Queue.DURABLE, false);
 
@@ -570,6 +571,10 @@ public class Session_1_0 implements Sess
     {
         performCloseTasks();
         _endpoint.end();
+        if(_modelObject != null)
+        {
+            _modelObject.delete();
+        }
     }
 
     protected void performCloseTasks()
@@ -844,6 +849,18 @@ public class Session_1_0 implements Sess
         _consumerListeners.remove(listener);
     }
 
+    @Override
+    public void setModelObject(final Session<?> session)
+    {
+        _modelObject = session;
+    }
+
+    @Override
+    public Session<?> getModelObject()
+    {
+        return _modelObject;
+    }
+
     private void consumerAdded(Consumer<?> consumer)
     {
         for(ConsumerListener l : _consumerListeners)

Modified: qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java Thu Apr 17 01:07:34 2014
@@ -49,6 +49,7 @@ import org.apache.qpid.server.model.Queu
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.queue.QueueArgumentsConverter;
+import org.apache.qpid.server.virtualhost.RequiredExchangeException;
 
 @MBeanDescription("This MBean exposes the broker level management features")
 public class VirtualHostManagerMBean extends AbstractStatisticsGatheringMBean<VirtualHost> implements ManagedBroker
@@ -185,6 +186,10 @@ public class VirtualHostManagerMBean ext
         {
             theExchange.delete();
         }
+        catch(RequiredExchangeException e)
+        {
+            throw new UnsupportedOperationException(e.getMessage(), e);
+        }
         catch (IllegalStateException ex)
         {
             final JMException jme = new JMException(ex.toString());

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/GroupProviderRestTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/GroupProviderRestTest.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/GroupProviderRestTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/GroupProviderRestTest.java Thu Apr 17 01:07:34 2014
@@ -36,7 +36,8 @@ import org.apache.qpid.server.model.Grou
 import org.apache.qpid.server.model.LifetimePolicy;
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.UUIDGenerator;
-import org.apache.qpid.server.security.group.FileGroupManagerFactory;
+import org.apache.qpid.server.model.adapter.FileBasedGroupProvider;
+import org.apache.qpid.server.model.adapter.FileBasedGroupProviderImpl;
 import org.apache.qpid.test.utils.TestBrokerConfiguration;
 import org.apache.qpid.test.utils.TestFileUtils;
 
@@ -76,11 +77,11 @@ public class GroupProviderRestTest exten
         assertEquals("Unexpected number of providers", 1, providerDetails.size());
         for (Map<String, Object> provider : providerDetails)
         {
-            assertProvider(FILE_GROUP_MANAGER, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE, provider);
+            assertProvider(FILE_GROUP_MANAGER, FileBasedGroupProviderImpl.GROUP_FILE_PROVIDER_TYPE, provider);
             Map<String, Object> data = getRestTestHelper().getJsonAsSingletonList("/rest/groupprovider/"
                     + provider.get(GroupProvider.NAME));
             assertNotNull("Cannot load data for " + provider.get(GroupProvider.NAME), data);
-            assertProvider(FILE_GROUP_MANAGER, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE, data);
+            assertProvider(FILE_GROUP_MANAGER, FileBasedGroupProviderImpl.GROUP_FILE_PROVIDER_TYPE, data);
         }
     }
 
@@ -127,16 +128,16 @@ public class GroupProviderRestTest exten
             String providerName = getTestName();
             Map<String, Object> attributes = new HashMap<String, Object>();
             attributes.put(GroupProvider.NAME, providerName);
-            attributes.put(GroupProvider.TYPE, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE);
-            attributes.put(FileGroupManagerFactory.PATH, groupFile.getAbsolutePath());
+            attributes.put(GroupProvider.TYPE, FileBasedGroupProviderImpl.GROUP_FILE_PROVIDER_TYPE);
+            attributes.put(FileBasedGroupProvider.PATH, groupFile.getAbsolutePath());
 
             int responseCode = getRestTestHelper().submitRequest("/rest/groupprovider/" + providerName, "PUT", attributes);
             assertEquals("Group provider was not created", 201, responseCode);
 
             Map<String, Object> data = getRestTestHelper().getJsonAsSingletonList("/rest/groupprovider/" + providerName + "?depth=2");
-            assertProvider(providerName, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE, data);
+            assertProvider(providerName, FileBasedGroupProviderImpl.GROUP_FILE_PROVIDER_TYPE, data);
             assertEquals("Unexpected name", providerName, data.get(GroupProvider.NAME));
-            assertEquals("Unexpected path", groupFile.getAbsolutePath(), data.get(FileGroupManagerFactory.PATH));
+            assertEquals("Unexpected path", groupFile.getAbsolutePath(), data.get(FileBasedGroupProvider.PATH));
 
             @SuppressWarnings("unchecked")
             List<Map<String, Object>> groups = (List<Map<String, Object>>) data.get("groups");
@@ -174,7 +175,7 @@ public class GroupProviderRestTest exten
         String providerName = getTestName();
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(GroupProvider.NAME, providerName);
-        attributes.put(GroupProvider.TYPE, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE);
+        attributes.put(GroupProvider.TYPE, FileBasedGroupProviderImpl.GROUP_FILE_PROVIDER_TYPE);
 
         int responseCode = getRestTestHelper().submitRequest("/rest/groupprovider/" + providerName, "PUT", attributes);
         assertEquals("Group provider was created", 409, responseCode);
@@ -189,15 +190,15 @@ public class GroupProviderRestTest exten
             String providerName = getTestName();
             Map<String, Object> attributes = new HashMap<String, Object>();
             attributes.put(GroupProvider.NAME, providerName);
-            attributes.put(GroupProvider.TYPE, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE);
-            attributes.put(FileGroupManagerFactory.PATH, groupFile.getAbsolutePath());
+            attributes.put(GroupProvider.TYPE, FileBasedGroupProviderImpl.GROUP_FILE_PROVIDER_TYPE);
+            attributes.put(FileBasedGroupProvider.PATH, groupFile.getAbsolutePath());
 
             int responseCode = getRestTestHelper().submitRequest("/rest/groupprovider/" + providerName, "PUT", attributes);
             assertEquals("Group provider was not created", 201, responseCode);
 
             Map<String, Object> data = getRestTestHelper().getJsonAsSingletonList("/rest/groupprovider/" + providerName);
             assertEquals("Unexpected name", providerName, data.get(GroupProvider.NAME));
-            assertEquals("Unexpected path", groupFile.getAbsolutePath(), data.get(FileGroupManagerFactory.PATH));
+            assertEquals("Unexpected path", groupFile.getAbsolutePath(), data.get(FileBasedGroupProvider.PATH));
 
             @SuppressWarnings("unchecked")
             List<Map<String, Object>> groups = (List<Map<String, Object>>) data.get("groups");
@@ -220,8 +221,8 @@ public class GroupProviderRestTest exten
         {
             Map<String, Object> attributes = new HashMap<String, Object>();
             attributes.put(GroupProvider.NAME, providerName);
-            attributes.put(GroupProvider.TYPE, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE);
-            attributes.put(FileGroupManagerFactory.PATH, groupFile.getAbsolutePath());
+            attributes.put(GroupProvider.TYPE, FileBasedGroupProviderImpl.GROUP_FILE_PROVIDER_TYPE);
+            attributes.put(FileBasedGroupProvider.PATH, groupFile.getAbsolutePath());
 
             int responseCode = getRestTestHelper().submitRequest("/rest/groupprovider/" + providerName, "PUT", attributes);
             assertEquals("Group provider was not created", 201, responseCode);
@@ -244,8 +245,8 @@ public class GroupProviderRestTest exten
         {
             Map<String, Object> attributes = new HashMap<String, Object>();
             attributes.put(GroupProvider.NAME, providerName);
-            attributes.put(GroupProvider.TYPE, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE);
-            attributes.put(FileGroupManagerFactory.PATH, groupFile.getAbsolutePath());
+            attributes.put(GroupProvider.TYPE, FileBasedGroupProviderImpl.GROUP_FILE_PROVIDER_TYPE);
+            attributes.put(FileBasedGroupProvider.PATH, groupFile.getAbsolutePath());
 
             int responseCode = getRestTestHelper().submitRequest("/rest/groupprovider/" + providerName, "PUT", attributes);
             assertEquals("Expected to fail because we can have only one password provider", 201, responseCode);
@@ -271,14 +272,14 @@ public class GroupProviderRestTest exten
         {
             Map<String, Object> attributes = new HashMap<String, Object>();
             attributes.put(GroupProvider.NAME, providerName);
-            attributes.put(GroupProvider.TYPE, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE);
-            attributes.put(FileGroupManagerFactory.PATH, groupFile.getAbsolutePath());
+            attributes.put(GroupProvider.TYPE, FileBasedGroupProviderImpl.GROUP_FILE_PROVIDER_TYPE);
+            attributes.put(FileBasedGroupProvider.PATH, groupFile.getAbsolutePath());
 
             int responseCode = getRestTestHelper().submitRequest("/rest/groupprovider/" + providerName, "PUT", attributes);
             assertEquals("Expected to fail because we can have only one password provider", 201, responseCode);
 
             File newGroupFile = new File(TMP_FOLDER + File.separator + getTestName() + File.separator + "groups");
-            attributes.put(FileGroupManagerFactory.PATH, newGroupFile.getAbsolutePath());
+            attributes.put(FileBasedGroupProvider.PATH, newGroupFile.getAbsolutePath());
 
             responseCode = getRestTestHelper().submitRequest("/rest/groupprovider/" + providerName, "PUT", attributes);
             assertEquals("Expected to fail because we can have only one password provider", 409, responseCode);
@@ -310,7 +311,7 @@ public class GroupProviderRestTest exten
 
         Map<String, Object> groupProvider = getRestTestHelper().getJsonAsSingletonList("/rest/groupprovider/" + TestBrokerConfiguration.ENTRY_NAME_GROUP_FILE);
         assertEquals("Unexpected id", id.toString(), groupProvider.get(GroupProvider.ID));
-        assertEquals("Unexpected path", file.getAbsolutePath() , groupProvider.get(FileGroupManagerFactory.PATH));
+        assertEquals("Unexpected path", file.getAbsolutePath() , groupProvider.get(FileBasedGroupProvider.PATH));
         assertEquals("Unexpected state", State.ERRORED.name() , groupProvider.get(GroupProvider.STATE));
 
         int status = getRestTestHelper().submitRequest("/rest/groupprovider/" + TestBrokerConfiguration.ENTRY_NAME_GROUP_FILE, "DELETE", null);

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java Thu Apr 17 01:07:34 2014
@@ -41,13 +41,14 @@ import org.apache.qpid.server.model.Port
 import org.apache.qpid.server.model.Protocol;
 import org.apache.qpid.server.model.TrustStore;
 import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.model.adapter.FileBasedGroupProvider;
+import org.apache.qpid.server.model.adapter.FileBasedGroupProviderImpl;
 import org.apache.qpid.server.security.FileKeyStore;
 import org.apache.qpid.server.security.FileTrustStore;
 import org.apache.qpid.server.security.access.FileAccessControlProviderConstants;
 import org.apache.qpid.server.security.acl.AbstractACLTestCase;
 import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManagerFactory;
 import org.apache.qpid.server.security.auth.manager.PlainPasswordFileAuthenticationManagerFactory;
-import org.apache.qpid.server.security.group.FileGroupManagerFactory;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.virtualhost.StandardVirtualHost;
 import org.apache.qpid.systest.rest.QpidRestTestCase;
@@ -738,8 +739,8 @@ public class BrokerACLTest extends QpidR
 
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(GroupProvider.NAME, groupProviderName);
-        attributes.put(GroupProvider.TYPE, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE);
-        attributes.put(FileGroupManagerFactory.PATH, "/path/to/file");
+        attributes.put(GroupProvider.TYPE, FileBasedGroupProviderImpl.GROUP_FILE_PROVIDER_TYPE);
+        attributes.put(FileBasedGroupProvider.PATH, "/path/to/file");
         responseCode = getRestTestHelper().submitRequest("/rest/groupprovider/" + groupProviderName, "PUT", attributes);
         assertEquals("Setting of group provider attributes should be allowed but not supported", 409, responseCode);
     }
@@ -761,8 +762,8 @@ public class BrokerACLTest extends QpidR
 
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(GroupProvider.NAME, groupProviderName);
-        attributes.put(GroupProvider.TYPE, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE);
-        attributes.put(FileGroupManagerFactory.PATH, "/path/to/file");
+        attributes.put(GroupProvider.TYPE, FileBasedGroupProviderImpl.GROUP_FILE_PROVIDER_TYPE);
+        attributes.put(FileBasedGroupProvider.PATH, "/path/to/file");
         responseCode = getRestTestHelper().submitRequest("/rest/groupprovider/" + groupProviderName, "PUT", attributes);
         assertEquals("Setting of group provider attributes should be denied", 403, responseCode);
     }
@@ -852,8 +853,8 @@ public class BrokerACLTest extends QpidR
 
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(GroupProvider.NAME, accessControlProviderName);
-        attributes.put(GroupProvider.TYPE, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE);
-        attributes.put(FileGroupManagerFactory.PATH, "/path/to/file");
+        attributes.put(GroupProvider.TYPE, FileBasedGroupProviderImpl.GROUP_FILE_PROVIDER_TYPE);
+        attributes.put(FileBasedGroupProvider.PATH, "/path/to/file");
         responseCode = getRestTestHelper().submitRequest("/rest/accesscontrolprovider/" + accessControlProviderName, "PUT", attributes);
         assertEquals("Setting of access control provider attributes should be allowed but not supported", 409, responseCode);
     }
@@ -875,8 +876,8 @@ public class BrokerACLTest extends QpidR
 
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(GroupProvider.NAME, accessControlProviderName);
-        attributes.put(GroupProvider.TYPE, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE);
-        attributes.put(FileGroupManagerFactory.PATH, "/path/to/file");
+        attributes.put(GroupProvider.TYPE, FileBasedGroupProviderImpl.GROUP_FILE_PROVIDER_TYPE);
+        attributes.put(FileBasedGroupProvider.PATH, "/path/to/file");
         responseCode = getRestTestHelper().submitRequest("/rest/accesscontrolprovider/" + accessControlProviderName, "PUT", attributes);
         assertEquals("Setting of access control provider attributes should be denied", 403, responseCode);
     }
@@ -1073,8 +1074,8 @@ public class BrokerACLTest extends QpidR
         File file = TestFileUtils.createTempFile(this, ".groups");
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(GroupProvider.NAME, groupProviderName);
-        attributes.put(GroupProvider.TYPE, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE);
-        attributes.put(FileGroupManagerFactory.PATH, file.getAbsoluteFile());
+        attributes.put(GroupProvider.TYPE, FileBasedGroupProviderImpl.GROUP_FILE_PROVIDER_TYPE);
+        attributes.put(FileBasedGroupProvider.PATH, file.getAbsoluteFile());
 
         return getRestTestHelper().submitRequest("/rest/groupprovider/" + groupProviderName, "PUT", attributes);
     }

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java Thu Apr 17 01:07:34 2014
@@ -62,6 +62,7 @@ import org.apache.qpid.jms.ConnectionURL
 import org.apache.qpid.server.Broker;
 import org.apache.qpid.server.BrokerOptions;
 import org.apache.qpid.server.configuration.BrokerProperties;
+import org.apache.qpid.server.configuration.updater.TaskExecutor;
 import org.apache.qpid.server.model.Port;
 import org.apache.qpid.server.model.Protocol;
 import org.apache.qpid.server.model.VirtualHost;
@@ -77,6 +78,8 @@ import org.apache.qpid.util.SystemUtils;
  */
 public class QpidBrokerTestCase extends QpidTestCase
 {
+    private TaskExecutor _taskExecutor;
+
     public enum BrokerType
     {
         EXTERNAL /** Test case relies on a Broker started independently of the test-suite */,
@@ -226,7 +229,12 @@ public class QpidBrokerTestCase extends 
     public TestBrokerConfiguration createBrokerConfiguration(int port)
     {
         int actualPort = getPort(port);
-        TestBrokerConfiguration  configuration = new TestBrokerConfiguration(System.getProperty(_brokerStoreType), _configFile.getAbsolutePath());
+        if(_taskExecutor == null)
+        {
+            _taskExecutor = new TaskExecutor();
+            _taskExecutor.start();
+        }
+        TestBrokerConfiguration  configuration = new TestBrokerConfiguration(System.getProperty(_brokerStoreType), _configFile.getAbsolutePath(), _taskExecutor);
         synchronized (_brokerConfigurations)
         {
             _brokerConfigurations.put(actualPort, configuration);
@@ -341,7 +349,8 @@ public class QpidBrokerTestCase extends 
     protected void setUp() throws Exception
     {
         super.setUp();
-
+        _taskExecutor = new TaskExecutor();
+        _taskExecutor.start();
         if (!_configFile.exists())
         {
             fail("Unable to test without config file:" + _configFile);
@@ -1192,6 +1201,10 @@ public class QpidBrokerTestCase extends 
         {
             c.close();
         }
+        if(_taskExecutor != null)
+        {
+            _taskExecutor.stop();
+        }
     }
 
     /**

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java?rev=1588126&r1=1588125&r2=1588126&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java Thu Apr 17 01:07:34 2014
@@ -37,15 +37,16 @@ import org.apache.qpid.server.model.Acce
 import org.apache.qpid.server.model.AuthenticationProvider;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.ConfiguredObjectFactory;
+import org.apache.qpid.server.model.ConfiguredObjectFactoryImpl;
 import org.apache.qpid.server.model.GroupProvider;
 import org.apache.qpid.server.model.Model;
 import org.apache.qpid.server.model.Plugin;
 import org.apache.qpid.server.model.PreferencesProvider;
 import org.apache.qpid.server.model.SystemContextImpl;
 import org.apache.qpid.server.model.UUIDGenerator;
+import org.apache.qpid.server.model.adapter.FileBasedGroupProvider;
+import org.apache.qpid.server.model.adapter.FileBasedGroupProviderImpl;
 import org.apache.qpid.server.security.access.FileAccessControlProviderConstants;
-import org.apache.qpid.server.security.group.FileGroupManagerFactory;
 import org.apache.qpid.server.store.ConfiguredObjectRecord;
 import org.apache.qpid.server.store.ConfiguredObjectRecordImpl;
 import org.apache.qpid.server.store.handler.ConfiguredObjectRecordHandler;
@@ -73,9 +74,9 @@ public class TestBrokerConfiguration
     private MemoryConfigurationEntryStore _store;
     private boolean _saved;
 
-    public TestBrokerConfiguration(String storeType, String intialStoreLocation)
+    public TestBrokerConfiguration(String storeType, String intialStoreLocation, final TaskExecutor taskExecutor)
     {
-        _store = new MemoryConfigurationEntryStore(new SystemContextImpl(new TaskExecutor(), new ConfiguredObjectFactory(
+        _store = new MemoryConfigurationEntryStore(new SystemContextImpl(taskExecutor, new ConfiguredObjectFactoryImpl(
                 Model.getInstance()),
                                                                      mock(EventLogger.class), mock(LogRecorder.class),
                                                                      mock(BrokerOptions.class)),
@@ -163,8 +164,8 @@ public class TestBrokerConfiguration
     {
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(GroupProvider.NAME, ENTRY_NAME_GROUP_FILE);
-        attributes.put(GroupProvider.TYPE, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE);
-        attributes.put(FileGroupManagerFactory.PATH, groupFilePath);
+        attributes.put(GroupProvider.TYPE, FileBasedGroupProviderImpl.GROUP_FILE_PROVIDER_TYPE);
+        attributes.put(FileBasedGroupProvider.PATH, groupFilePath);
 
         return addObjectConfiguration(GroupProvider.class, attributes);
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org