You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2012/12/10 15:13:50 UTC

svn commit: r1419482 [1/2] - in /qpid/branches/java-broker-config-qpid-4390/qpid/java: bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/ broker/src/main/java/org/apache/qpid/server/ broker/src/main/java/org/apache/qpid/server/configuratio...

Author: orudyy
Date: Mon Dec 10 14:13:41 2012
New Revision: 1419482

URL: http://svn.apache.org/viewvc?rev=1419482&view=rev
Log:
QPID-4390: Remove references to ApplicationRegistry from broker components

Modified:
    qpid/branches/java-broker-config-qpid-4390/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAMessageStoreTest.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerLauncher.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProvider.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/VirtualHostRecoverer.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionSecureOkMethodHandler.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionStartOkMethodHandler.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0_SASL.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/IApplicationRegistry.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/state/AMQStateManager.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/AmqpPortAdapter.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnectionDelegate.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostRegistry.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/AMQChannelTest.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/exchange/AbstractHeadersExchangeTestBase.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/exchange/HeadersExchangeTest.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/BrokerShutdownTest.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/InternalTestProtocolSession.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactoryTest.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/store/MessageStoreTest.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/util/BrokerTestHelper.java
    qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAMessageStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAMessageStoreTest.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAMessageStoreTest.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAMessageStoreTest.java Mon Dec 10 14:13:41 2012
@@ -30,7 +30,6 @@ import org.apache.qpid.server.configurat
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.util.BrokerTestHelper;
 import org.apache.qpid.server.virtualhost.VirtualHost;
-import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
 import org.apache.qpid.test.utils.QpidTestCase;
 import org.apache.qpid.util.FileUtils;
 
@@ -51,7 +50,7 @@ public class BDBHAMessageStoreTest exten
     private int _masterPort;
     private String _host;
     private XMLConfiguration _configXml;
-    private VirtualHostRegistry _virtualHostRegistry;
+    private VirtualHost _virtualHost;
 
     public void setUp() throws Exception
     {
@@ -64,16 +63,14 @@ public class BDBHAMessageStoreTest exten
 
         FileUtils.delete(new File(_workDir), true);
         _configXml = new XMLConfiguration();
-        _configXml.addProperty("management.enabled", "false");
-        _configXml.addProperty("management.http.enabled", "false");
-    }
+     }
 
     public void tearDown() throws Exception
     {
         FileUtils.delete(new File(_workDir), true);
-        if (_virtualHostRegistry != null)
+        if (_virtualHost != null)
         {
-            _virtualHostRegistry.close();
+            _virtualHost.close();
         }
         super.tearDown();
     }
@@ -82,9 +79,10 @@ public class BDBHAMessageStoreTest exten
     {
         // create virtual host configuration, registry and host instance
         addVirtualHostConfiguration();
-        _virtualHostRegistry = BrokerTestHelper.createVirtualHostRegistry();
-        VirtualHost virtualhost = BrokerTestHelper.createVirtualHost(new VirtualHostConfiguration("test" + _masterPort, _configXml, mock(Broker.class)), _virtualHostRegistry);
-        BDBHAMessageStore store = (BDBHAMessageStore) virtualhost.getMessageStore();
+        String vhostName = "test" + _masterPort;
+        VirtualHostConfiguration configuration = new VirtualHostConfiguration(vhostName, _configXml.subset("virtualhosts.virtualhost." + vhostName), mock(Broker.class));
+        _virtualHost = BrokerTestHelper.createVirtualHost(configuration);
+        BDBHAMessageStore store = (BDBHAMessageStore) _virtualHost.getMessageStore();
 
         // test whether JVM system settings were applied
         Environment env = store.getEnvironment();
@@ -107,8 +105,10 @@ public class BDBHAMessageStoreTest exten
         }
         String nodeName = getNodeNameForNodeAt(port);
 
-        String vhostPrefix = "";
+        String vhostName = "test" + port;
+        String vhostPrefix = "virtualhosts.virtualhost." + vhostName;
 
+        _configXml.addProperty("virtualhosts.virtualhost.name", vhostName);
         _configXml.addProperty(vhostPrefix + ".store.class", BDBHAMessageStore.class.getName());
         _configXml.addProperty(vhostPrefix + ".store.environment-path", _workDir + File.separator
                 + port);

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerLauncher.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerLauncher.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerLauncher.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerLauncher.java Mon Dec 10 14:13:41 2012
@@ -38,12 +38,14 @@ import org.apache.qpid.server.logging.ac
 import org.apache.qpid.server.logging.log4j.LoggingManagementFacade;
 import org.apache.qpid.server.logging.messages.BrokerMessages;
 import org.apache.qpid.server.registry.ApplicationRegistry;
+import org.apache.qpid.server.registry.IApplicationRegistry;
 
 public class BrokerLauncher
 {
     private static final Logger LOGGER = Logger.getLogger(BrokerLauncher.class);
 
     private volatile Thread _shutdownHookThread;
+    private volatile IApplicationRegistry _applicationRegistry;
 
     protected static class InitException extends RuntimeException
     {
@@ -65,7 +67,10 @@ public class BrokerLauncher
         {
             try
             {
-                ApplicationRegistry.remove();
+                if (_applicationRegistry != null)
+                {
+                    _applicationRegistry.close();
+                }
             }
             finally
             {
@@ -115,9 +120,23 @@ public class BrokerLauncher
 
         ConfigurationEntryStore store = new XMLConfigurationEntryStore(configFile, options);
 
-        ApplicationRegistry applicationRegistry = new ApplicationRegistry(store);
-
-        ApplicationRegistry.initialise(applicationRegistry);
+        _applicationRegistry = new ApplicationRegistry(store);
+        try
+        {
+            _applicationRegistry.initialise();
+        }
+        catch(Exception e)
+        {
+            try
+            {
+                _applicationRegistry.close();
+            }
+            catch(Exception ce)
+            {
+                LOGGER.debug("An error occured when closing the registry following initialization failure", ce);
+            }
+            throw e;
+        }
 
     }
 

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java Mon Dec 10 14:13:41 2012
@@ -389,7 +389,6 @@ private static final Option OPTION_INCLU
 
     protected void shutdown(final int status)
     {
-        ApplicationRegistry.remove();
         System.exit(status);
     }
 

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java Mon Dec 10 14:13:41 2012
@@ -7,6 +7,8 @@ import org.apache.qpid.server.configurat
 import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer;
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
 import org.apache.qpid.server.configuration.RecovererProvider;
+import org.apache.qpid.server.logging.LogRecorder;
+import org.apache.qpid.server.logging.RootMessageLogger;
 import org.apache.qpid.server.model.AuthenticationProvider;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObject;
@@ -14,27 +16,36 @@ import org.apache.qpid.server.model.Port
 import org.apache.qpid.server.model.adapter.AuthenticationProviderFactory;
 import org.apache.qpid.server.model.adapter.BrokerAdapter;
 import org.apache.qpid.server.model.adapter.PortFactory;
-import org.apache.qpid.server.registry.IApplicationRegistry;
 import org.apache.qpid.server.security.group.GroupPrincipalAccessor;
+import org.apache.qpid.server.stats.StatisticsGatherer;
+import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
 
 public class BrokerRecoverer implements ConfiguredObjectRecoverer<Broker>
 {
-
-    private final IApplicationRegistry _registry;
-    private final PortFactory _portFactory;
+    private final StatisticsGatherer _statisticsGatherer;
+    private final VirtualHostRegistry _virtualHostRegistry;
+    private final LogRecorder _logRecorder;
+    private final RootMessageLogger _rootMessageLogger;
     private final AuthenticationProviderFactory _authenticationProviderFactory;
+    private final PortFactory _portFactory;
 
-    public BrokerRecoverer(AuthenticationProviderFactory authenticationProviderFactory, PortFactory portFactory, IApplicationRegistry registry)
+    public BrokerRecoverer(AuthenticationProviderFactory authenticationProviderFactory, PortFactory portFactory,
+            StatisticsGatherer statisticsGatherer, VirtualHostRegistry virtualHostRegistry, LogRecorder logRecorder,
+            RootMessageLogger rootMessageLogger)
     {
-        _registry = registry;
         _portFactory = portFactory;
         _authenticationProviderFactory = authenticationProviderFactory;
+        _statisticsGatherer = statisticsGatherer;
+        _virtualHostRegistry = virtualHostRegistry;
+        _logRecorder = logRecorder;
+        _rootMessageLogger = rootMessageLogger;
     }
 
     @Override
     public Broker create(RecovererProvider recovererProvider, ConfigurationEntry entry, ConfiguredObject... parents)
     {
-        BrokerAdapter broker = new BrokerAdapter(entry.getId(), entry.getAttributes(), _registry, _authenticationProviderFactory, _portFactory);
+        BrokerAdapter broker = new BrokerAdapter(entry.getId(), entry.getAttributes(), _statisticsGatherer,
+                _virtualHostRegistry, _logRecorder, _rootMessageLogger, _authenticationProviderFactory, _portFactory);
         Map<String, Collection<ConfigurationEntry>> childEntries = entry.getChildren();
         for (String type : childEntries.keySet())
         {

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProvider.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProvider.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProvider.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProvider.java Mon Dec 10 14:13:41 2012
@@ -22,6 +22,8 @@ package org.apache.qpid.server.configura
 
 import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer;
 import org.apache.qpid.server.configuration.RecovererProvider;
+import org.apache.qpid.server.logging.LogRecorder;
+import org.apache.qpid.server.logging.RootMessageLogger;
 import org.apache.qpid.server.model.AuthenticationProvider;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.GroupProvider;
@@ -36,23 +38,30 @@ import org.apache.qpid.server.plugin.Aut
 import org.apache.qpid.server.plugin.GroupManagerFactory;
 import org.apache.qpid.server.plugin.PluginFactory;
 import org.apache.qpid.server.plugin.QpidServiceLoader;
-import org.apache.qpid.server.registry.IApplicationRegistry;
 import org.apache.qpid.server.stats.StatisticsGatherer;
+import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
 
 public class DefaultRecovererProvider implements RecovererProvider
 {
 
+    private final StatisticsGatherer _brokerStatisticsGatherer;
+    private final VirtualHostRegistry _virtualHostRegistry;
+    private final LogRecorder _logRecorder;
+    private final RootMessageLogger _rootMessageLogger;
     private final AuthenticationProviderFactory _authenticationProviderFactory;
     private final PortFactory _portFactory;
-    private final IApplicationRegistry _registry;
     private final QpidServiceLoader<GroupManagerFactory> _groupManagerServiceLoader;
     private final QpidServiceLoader<PluginFactory> _pluginFactoryServiceLoader;
 
-    public DefaultRecovererProvider(IApplicationRegistry registry)
+    public DefaultRecovererProvider(StatisticsGatherer brokerStatisticsGatherer, VirtualHostRegistry virtualHostRegistry,
+            LogRecorder logRecorder, RootMessageLogger rootMessageLogger)
     {
         _authenticationProviderFactory = new AuthenticationProviderFactory(new QpidServiceLoader<AuthenticationManagerFactory>());
-        _portFactory = new PortFactory(registry);
-        _registry = registry;
+        _portFactory = new PortFactory();
+        _brokerStatisticsGatherer = brokerStatisticsGatherer;
+        _virtualHostRegistry = virtualHostRegistry;
+        _logRecorder = logRecorder;
+        _rootMessageLogger = rootMessageLogger;
         _groupManagerServiceLoader = new QpidServiceLoader<GroupManagerFactory>();
         _pluginFactoryServiceLoader = new QpidServiceLoader<PluginFactory>();
     }
@@ -60,13 +69,14 @@ public class DefaultRecovererProvider im
     @Override
     public ConfiguredObjectRecoverer<?> getRecoverer(String type)
     {
-        if(Broker.class.getSimpleName().equals(type))
+        if (Broker.class.getSimpleName().equals(type))
         {
-            return new BrokerRecoverer(_authenticationProviderFactory, _portFactory, _registry);
+            return new BrokerRecoverer(_authenticationProviderFactory, _portFactory, _brokerStatisticsGatherer, _virtualHostRegistry,
+                    _logRecorder, _rootMessageLogger);
         }
         else if(VirtualHost.class.getSimpleName().equals(type))
         {
-            return new VirtualHostRecoverer(_registry.getVirtualHostRegistry(),(StatisticsGatherer)_registry);
+            return new VirtualHostRecoverer(_brokerStatisticsGatherer);
         }
         else if(AuthenticationProvider.class.getSimpleName().equals(type))
         {

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/VirtualHostRecoverer.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/VirtualHostRecoverer.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/VirtualHostRecoverer.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/VirtualHostRecoverer.java Mon Dec 10 14:13:41 2012
@@ -37,18 +37,15 @@ import org.apache.qpid.server.model.Brok
 import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.model.adapter.VirtualHostAdapter;
 import org.apache.qpid.server.stats.StatisticsGatherer;
-import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
 
 public class VirtualHostRecoverer extends AbstractBrokerChildRecoverer<VirtualHost>
 {
-    private VirtualHostRegistry _virtualHostRegistry;
-    private StatisticsGatherer _statisticsGatherer;
+    private StatisticsGatherer _brokerStatisticsGatherer;
 
-    public VirtualHostRecoverer(VirtualHostRegistry virtualHostRegistry, StatisticsGatherer statisticsGatherer)
+    public VirtualHostRecoverer(StatisticsGatherer brokerStatisticsGatherer)
     {
         super();
-        _virtualHostRegistry = virtualHostRegistry;
-        _statisticsGatherer = statisticsGatherer;
+        _brokerStatisticsGatherer = brokerStatisticsGatherer;
     }
 
     @Override
@@ -91,7 +88,7 @@ public class VirtualHostRecoverer extend
         {
             throw new IllegalConfigurationException("Cannot create configuration for virtual host '" + name + "'");
         }
-        return new VirtualHostAdapter(entry.getId(), broker, attributes, _virtualHostRegistry, _statisticsGatherer, broker.getSecurityManager(),
+        return new VirtualHostAdapter(entry.getId(), broker, attributes, _brokerStatisticsGatherer, broker.getSecurityManager(),
                 virtualHostConfiguration);
     }
 

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionSecureOkMethodHandler.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionSecureOkMethodHandler.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionSecureOkMethodHandler.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionSecureOkMethodHandler.java Mon Dec 10 14:13:41 2012
@@ -30,8 +30,8 @@ import org.apache.qpid.framing.Connectio
 import org.apache.qpid.framing.ConnectionTuneBody;
 import org.apache.qpid.framing.MethodRegistry;
 import org.apache.qpid.protocol.AMQConstant;
+import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.protocol.AMQProtocolSession;
-import org.apache.qpid.server.registry.ApplicationRegistry;
 import org.apache.qpid.server.security.SubjectCreator;
 import org.apache.qpid.server.security.auth.SubjectAuthenticationResult;
 import org.apache.qpid.server.state.AMQState;
@@ -58,6 +58,7 @@ public class ConnectionSecureOkMethodHan
 
     public void methodReceived(AMQStateManager stateManager, ConnectionSecureOkBody body, int channelId) throws AMQException
     {
+        Broker broker = stateManager.getBroker();
         AMQProtocolSession session = stateManager.getProtocolSession();
 
         SubjectCreator subjectCreator = stateManager.getSubjectCreator();
@@ -95,11 +96,10 @@ public class ConnectionSecureOkMethodHan
                 }
                 stateManager.changeState(AMQState.CONNECTION_NOT_TUNED);
 
-                // XXX remove reference on ServerConfiguration
                 ConnectionTuneBody tuneBody =
-                        methodRegistry.createConnectionTuneBody(ApplicationRegistry.getInstance().getConfiguration().getMaxChannelCount(),
-                                                                ConnectionStartOkMethodHandler.getConfiguredFrameSize(),
-                                                                ApplicationRegistry.getInstance().getConfiguration().getHeartBeatDelay());
+                        methodRegistry.createConnectionTuneBody((Integer)broker.getAttribute(Broker.SESSION_COUNT_LIMIT),
+                                                                (Integer)broker.getAttribute(Broker.FRAME_SIZE),
+                                                                (Integer)broker.getAttribute(Broker.HEART_BEAT_DELAY));
                 session.writeFrame(tuneBody.generateFrame(0));
                 session.setAuthorizedSubject(authResult.getSubject());
                 disposeSaslServer(session);

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionStartOkMethodHandler.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionStartOkMethodHandler.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionStartOkMethodHandler.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionStartOkMethodHandler.java Mon Dec 10 14:13:41 2012
@@ -29,9 +29,8 @@ import org.apache.qpid.framing.Connectio
 import org.apache.qpid.framing.ConnectionTuneBody;
 import org.apache.qpid.framing.MethodRegistry;
 import org.apache.qpid.protocol.AMQConstant;
-import org.apache.qpid.server.configuration.ServerConfiguration;
+import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.protocol.AMQProtocolSession;
-import org.apache.qpid.server.registry.ApplicationRegistry;
 import org.apache.qpid.server.security.SubjectCreator;
 import org.apache.qpid.server.security.auth.SubjectAuthenticationResult;
 import org.apache.qpid.server.state.AMQState;
@@ -59,6 +58,7 @@ public class ConnectionStartOkMethodHand
 
     public void methodReceived(AMQStateManager stateManager, ConnectionStartOkBody body, int channelId) throws AMQException
     {
+        Broker broker = stateManager.getBroker();
         AMQProtocolSession session = stateManager.getProtocolSession();
 
         _logger.info("SASL Mechanism selected: " + body.getMechanism());
@@ -111,10 +111,9 @@ public class ConnectionStartOkMethodHand
 
                     stateManager.changeState(AMQState.CONNECTION_NOT_TUNED);
 
-                 // XXX remove reference on ServerConfiguration
-                    ConnectionTuneBody tuneBody = methodRegistry.createConnectionTuneBody(ApplicationRegistry.getInstance().getConfiguration().getMaxChannelCount(),
-                                                                                          getConfiguredFrameSize(),
-                                                                                          ApplicationRegistry.getInstance().getConfiguration().getHeartBeatDelay());
+                    ConnectionTuneBody tuneBody = methodRegistry.createConnectionTuneBody((Integer)broker.getAttribute(Broker.SESSION_COUNT_LIMIT),
+                                                                                          (Integer)broker.getAttribute(Broker.FRAME_SIZE),
+                                                                                          (Integer)broker.getAttribute(Broker.HEART_BEAT_DELAY));
                     session.writeFrame(tuneBody.generateFrame(0));
                     break;
                 case CONTINUE:
@@ -148,14 +147,6 @@ public class ConnectionStartOkMethodHand
         }
     }
 
-    static int getConfiguredFrameSize()
-    {
-        // XXX remove reference to ServerConfiguration and introduce FRAME_SIZE attribute in Broker interface
-        final ServerConfiguration config = ApplicationRegistry.getInstance().getConfiguration();
-        final int framesize = config.getFrameSize();
-        _logger.info("Framesize set to " + framesize);
-        return framesize;
-    }
 }
 
 

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java Mon Dec 10 14:13:41 2012
@@ -31,6 +31,7 @@ import org.apache.qpid.server.logging.Lo
 import org.apache.qpid.server.logging.RootMessageLogger;
 import org.apache.qpid.server.security.SecurityManager;
 import org.apache.qpid.server.security.SubjectCreator;
+import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
 
 public interface Broker extends ConfiguredObject
 {
@@ -169,4 +170,9 @@ public interface Broker extends Configur
     Collection<KeyStore> getKeyStores();
 
     Collection<TrustStore> getTrustStores();
+
+    /*
+     * TODO: Remove this method. Eventually the broker will become a registry.
+     */
+    public VirtualHostRegistry getVirtualHostRegistry();
 }

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java Mon Dec 10 14:13:41 2012
@@ -21,6 +21,7 @@
 package org.apache.qpid.server.model.adapter;
 
 import static org.apache.qpid.server.util.MapValueConverter.getDoubleAttribute;
+import static org.apache.qpid.server.util.MapValueConverter.getEnumAttribute;
 import static org.apache.qpid.server.util.MapValueConverter.getLongAttribute;
 import static org.apache.qpid.server.util.MapValueConverter.getIntegerAttribute;
 import static org.apache.qpid.server.util.MapValueConverter.getBooleanAttribute;
@@ -58,7 +59,7 @@ import org.apache.qpid.server.model.Stat
 import org.apache.qpid.server.model.Statistics;
 import org.apache.qpid.server.model.TrustStore;
 import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.registry.IApplicationRegistry;
+import org.apache.qpid.server.protocol.AmqpProtocolVersion;
 import org.apache.qpid.server.security.group.GroupPrincipalAccessor;
 import org.apache.qpid.server.security.SecurityManager;
 import org.apache.qpid.server.security.SubjectCreator;
@@ -69,7 +70,10 @@ public class BrokerAdapter extends Abstr
 {
     private static final Logger LOGGER = Logger.getLogger(BrokerAdapter.class);
 
-    private IApplicationRegistry _applicationRegistry;
+    private final StatisticsGatherer _statisticsGatherer;
+    private final VirtualHostRegistry _virtualHostRegistry;
+    private final LogRecorder _logRecorder;
+    private final RootMessageLogger _rootMessageLogger;
     private String _name;
     private StatisticsAdapter _statistics;
 
@@ -103,21 +107,25 @@ public class BrokerAdapter extends Abstr
     private int _frameSize;
     private int _heartBeatDelay;
     private double _heartBeatTimeoutFactor;
-    private String _defaultSupportedProtocolReply;
+    private AmqpProtocolVersion _defaultSupportedProtocolReply;
     private Set<String> _disabledFeatures;
     private boolean _statisticsEnabled;
     private int _statisticsSamplePeriod;
     private int _statisticsReportingPeriod;
     private boolean _statisticsReportingResetEnabled;
 
-    public BrokerAdapter(UUID id, Map<String, Object> attributes, IApplicationRegistry instance,
-            AuthenticationProviderFactory authenticationProviderFactory, PortFactory portFactory)
+    public BrokerAdapter(UUID id, Map<String, Object> attributes, StatisticsGatherer statisticsGatherer, VirtualHostRegistry virtualHostRegistry,
+            LogRecorder logRecorder, RootMessageLogger rootMessageLogger, AuthenticationProviderFactory authenticationProviderFactory,
+            PortFactory portFactory)
     {
         super(id);
         _name = "Broker";
-        _applicationRegistry = instance;
+        _statisticsGatherer = statisticsGatherer;
+        _virtualHostRegistry = virtualHostRegistry;
+        _logRecorder = logRecorder;
+        _rootMessageLogger = rootMessageLogger;
         _name = "Broker";
-        _statistics = new StatisticsAdapter(instance);
+        _statistics = new StatisticsAdapter(statisticsGatherer);
         _authenticationProviderFactory = authenticationProviderFactory;
         _portFactory = portFactory;
 
@@ -139,7 +147,7 @@ public class BrokerAdapter extends Abstr
         _frameSize = getIntegerAttribute(FRAME_SIZE, attributes, Integer.getInteger(BrokerProperties.PROPERTY_FRAME_SIZE, BrokerProperties.DEFAULT_FRAME_SIZE));
         _heartBeatDelay = getIntegerAttribute(HEART_BEAT_DELAY, attributes, BrokerProperties.DEFAULT_HEART_BEAT_DELAY);
         _heartBeatTimeoutFactor = getDoubleAttribute(HEART_BEAT_TIMEOUT_FACTOR, attributes, BrokerProperties.DEFAULT_HEART_BEAT_TIMEOUT_FACTOR);
-        _defaultSupportedProtocolReply = getStringAttribute(DEFAULT_SUPPORTED_PROTOCOL_REPLY, attributes, null);
+        _defaultSupportedProtocolReply = getEnumAttribute(AmqpProtocolVersion.class, DEFAULT_SUPPORTED_PROTOCOL_REPLY, attributes, null);
         _disabledFeatures = getSetOfStringAttribute(DISABLED_FEATURES, attributes, Collections.<String>emptySet());
         _statisticsEnabled = getBooleanAttribute(STATISTICS_ENABLED, attributes, false);
         _statisticsSamplePeriod =  getIntegerAttribute(STATISTICS_SAMPLE_PERIOD, attributes, BrokerProperties.DEFAULT_STATISTICS_SAMPLE_PERIOD);
@@ -222,10 +230,8 @@ public class BrokerAdapter extends Abstr
     private VirtualHost createVirtualHost(final Map<String, Object> attributes)
             throws AccessControlException, IllegalArgumentException
     {
-        VirtualHostRegistry virtualHostRegistry = _applicationRegistry.getVirtualHostRegistry();
-        final VirtualHostAdapter virtualHostAdapter = new VirtualHostAdapter(UUID.randomUUID(), this,
-                attributes, virtualHostRegistry, (StatisticsGatherer)_applicationRegistry,
-                _securityManager, null);
+        final VirtualHostAdapter virtualHostAdapter = new VirtualHostAdapter(UUID.randomUUID(), this, attributes,
+                _statisticsGatherer, _securityManager, null);
 
         synchronized (_vhostAdapters)
         {
@@ -680,7 +686,7 @@ public class BrokerAdapter extends Abstr
             changeState(_groupProviders, currentState, State.ACTIVE, false);
             changeState(_authenticationProviders, currentState, State.ACTIVE, false);
 
-            CurrentActor.set(new BrokerActor(_applicationRegistry.getRootMessageLogger()));
+            CurrentActor.set(new BrokerActor(getRootMessageLogger()));
             try
             {
                 changeState(_vhostAdapters, currentState, State.ACTIVE, false);
@@ -838,7 +844,7 @@ public class BrokerAdapter extends Abstr
     @Override
     public RootMessageLogger getRootMessageLogger()
     {
-        return _applicationRegistry.getRootMessageLogger();
+        return _rootMessageLogger;
     }
 
     @Override
@@ -850,7 +856,7 @@ public class BrokerAdapter extends Abstr
     @Override
     public LogRecorder getLogRecorder()
     {
-        return _applicationRegistry.getLogRecorder();
+        return _logRecorder;
     }
 
     @Override
@@ -894,4 +900,10 @@ public class BrokerAdapter extends Abstr
         }
     }
 
+    @Override
+    public VirtualHostRegistry getVirtualHostRegistry()
+    {
+        return _virtualHostRegistry;
+    }
+
 }

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java Mon Dec 10 14:13:41 2012
@@ -30,18 +30,15 @@ import org.apache.qpid.server.model.Brok
 import org.apache.qpid.server.model.Port;
 import org.apache.qpid.server.model.Protocol;
 import org.apache.qpid.server.model.Protocol.ProtocolType;
-import org.apache.qpid.server.registry.IApplicationRegistry;
 import org.apache.qpid.server.transport.AmqpPortAdapter;
 import org.apache.qpid.server.util.MapValueConverter;
 
 public class PortFactory
 {
-    private final IApplicationRegistry _applicationRegistry;
     private final PortAttributeDestringifier _portAttributeDestringifier = new PortAttributeDestringifier();
 
-    public PortFactory(IApplicationRegistry applicationRegistry)
+    public PortFactory()
     {
-        _applicationRegistry = applicationRegistry;
     }
 
     /**
@@ -53,7 +50,7 @@ public class PortFactory
         final Port port;
         if (isAmqpProtocol(attributes))
         {
-            port = new AmqpPortAdapter(id, broker, attributes, _applicationRegistry);
+            port = new AmqpPortAdapter(id, broker, attributes);
         }
         else
         {

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java Mon Dec 10 14:13:41 2012
@@ -93,23 +93,20 @@ public final class VirtualHostAdapter ex
 
     private final String _name;
 
-    private VirtualHostRegistry _virtualHostRegistry;
-
     private VirtualHostConfiguration _configuration;
 
-    private StatisticsGatherer _statisticsGatherer;
+    private StatisticsGatherer _brokerStatisticsGatherer;
 
     private SecurityManager _securityManager;
 
-    public VirtualHostAdapter(UUID id, Broker broker, Map<String, Object> attributes, VirtualHostRegistry virtualHostRegistry,
-            StatisticsGatherer statisticsGatherer, SecurityManager securityManager, VirtualHostConfiguration configuration)
+    public VirtualHostAdapter(UUID id, Broker broker, Map<String, Object> attributes,
+            StatisticsGatherer brokerStatisticsGatherer, SecurityManager securityManager, VirtualHostConfiguration configuration)
     {
         super(id);
         _broker = broker;
         _name = (String)attributes.get(NAME);
-        _virtualHostRegistry = virtualHostRegistry;
         _configuration = configuration;
-        _statisticsGatherer = statisticsGatherer;
+        _brokerStatisticsGatherer = brokerStatisticsGatherer;
         _securityManager = securityManager;
         addParent(Broker.class, broker);
     }
@@ -902,16 +899,17 @@ public final class VirtualHostAdapter ex
     {
         if (desiredState == State.ACTIVE)
         {
+            VirtualHostRegistry virtualHostRegistry = _broker.getVirtualHostRegistry();
             try
             {
-                _virtualHost = new VirtualHostImpl(_virtualHostRegistry, _statisticsGatherer, _securityManager, _configuration);
+                _virtualHost = new VirtualHostImpl(virtualHostRegistry, _brokerStatisticsGatherer, _securityManager, _configuration);
             }
             catch (Exception e)
             {
                throw new RuntimeException("Failed to create virtual host", e);
             }
 
-            _virtualHostRegistry.registerVirtualHost(_virtualHost);
+            virtualHostRegistry.registerVirtualHost(_virtualHost);
 
             _statistics = new VirtualHostStatisticsAdapter(_virtualHost);
             _virtualHost.getQueueRegistry().addRegistryChangeListener(this);
@@ -943,7 +941,7 @@ public final class VirtualHostAdapter ex
                 }
                 finally
                 {
-                    _virtualHostRegistry.unregisterVirtualHost(_virtualHost);
+                    _broker.getVirtualHostRegistry().unregisterVirtualHost(_virtualHost);
                 }
             }
             return true;

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java Mon Dec 10 14:13:41 2012
@@ -60,10 +60,10 @@ import org.apache.qpid.server.logging.ac
 import org.apache.qpid.server.logging.actors.ManagementActor;
 import org.apache.qpid.server.logging.messages.ConnectionMessages;
 import org.apache.qpid.server.logging.subjects.ConnectionLogSubject;
+import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.output.ProtocolOutputConverter;
 import org.apache.qpid.server.output.ProtocolOutputConverterRegistry;
 import org.apache.qpid.server.queue.QueueEntry;
-import org.apache.qpid.server.registry.ApplicationRegistry;
 import org.apache.qpid.server.security.auth.AuthenticatedPrincipal;
 import org.apache.qpid.server.state.AMQState;
 import org.apache.qpid.server.state.AMQStateManager;
@@ -72,7 +72,6 @@ import org.apache.qpid.server.subscripti
 import org.apache.qpid.server.subscription.Subscription;
 import org.apache.qpid.server.subscription.SubscriptionImpl;
 import org.apache.qpid.server.virtualhost.VirtualHost;
-import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
 import org.apache.qpid.transport.Sender;
 import org.apache.qpid.transport.TransportException;
 import org.apache.qpid.transport.network.NetworkConnection;
@@ -152,20 +151,21 @@ public class AMQProtocolEngine implement
 
     private final Lock _receivedLock;
     private AtomicLong _lastWriteTime = new AtomicLong(System.currentTimeMillis());
+    private final Broker _broker;
 
 
-    public AMQProtocolEngine(VirtualHostRegistry virtualHostRegistry, NetworkConnection network, final long connectionId)
+    public AMQProtocolEngine(Broker broker, NetworkConnection network, final long connectionId)
     {
-        // XXX remove references to ServerConfiguration and ApplicationRegistry
-        _maxNoOfChannels = virtualHostRegistry.getApplicationRegistry().getConfiguration().getMaxChannelCount();
+        _broker = broker;
+        _maxNoOfChannels = (Integer)broker.getAttribute(Broker.SESSION_COUNT_LIMIT);
         _receivedLock = new ReentrantLock();
-        _stateManager = new AMQStateManager(virtualHostRegistry, this);
+        _stateManager = new AMQStateManager(broker, this);
         _codecFactory = new AMQCodecFactory(true, this);
 
         setNetworkConnection(network);
         _connectionID = connectionId;
 
-        _actor = new AMQPConnectionActor(this, virtualHostRegistry.getApplicationRegistry().getRootMessageLogger());
+        _actor = new AMQPConnectionActor(this, _broker.getRootMessageLogger());
 
         _logSubject = new ConnectionLogSubject(this);
 
@@ -363,7 +363,7 @@ public class AMQProtocolEngine implement
             // This sets the protocol version (and hence framing classes) for this session.
             setProtocolVersion(pv);
 
-            String mechanisms = ApplicationRegistry.getInstance().getSubjectCreator(getLocalAddress()).getMechanisms();
+            String mechanisms = _broker.getSubjectCreator(getLocalAddress()).getMechanisms();
 
             String locales = "en_US";
 
@@ -743,13 +743,12 @@ public class AMQProtocolEngine implement
      *
      * @param delay delay in seconds (not ms)
      */
-    // XXX remove reference on ServerConfiguration
     public void initHeartbeats(int delay)
     {
         if (delay > 0)
         {
             _network.setMaxWriteIdle(delay);
-            _network.setMaxReadIdle((int) (ApplicationRegistry.getInstance().getConfiguration().getHeartBeatTimeout() * delay));
+            _network.setMaxReadIdle(((Number)_broker.getAttribute(Broker.HEART_BEAT_TIMEOUT_FACTOR)).intValue() * delay);
         }
     }
 

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java Mon Dec 10 14:13:41 2012
@@ -28,7 +28,7 @@ import java.util.Set;
 
 import org.apache.log4j.Logger;
 import org.apache.qpid.protocol.ServerProtocolEngine;
-import org.apache.qpid.server.registry.IApplicationRegistry;
+import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.transport.ServerConnection;
 import org.apache.qpid.transport.ConnectionDelegate;
 import org.apache.qpid.transport.Sender;
@@ -42,24 +42,24 @@ public class MultiVersionProtocolEngine 
 
     private Set<AmqpProtocolVersion> _supported;
     private String _fqdn;
-    private IApplicationRegistry _appRegistry;
+    private final Broker _broker;
     private NetworkConnection _network;
     private Sender<ByteBuffer> _sender;
     private final AmqpProtocolVersion _defaultSupportedReply;
 
     private volatile ServerProtocolEngine _delegate = new SelfDelegateProtocolEngine();
 
-    public MultiVersionProtocolEngine(final IApplicationRegistry appRegistry,
+    public MultiVersionProtocolEngine(final Broker broker,
                                       final Set<AmqpProtocolVersion> supported,
                                       final AmqpProtocolVersion defaultSupportedReply,
                                       final long id,
                                       final NetworkConnection network)
     {
-        this(appRegistry, supported, defaultSupportedReply, id);
+        this(broker, supported, defaultSupportedReply, id);
         setNetworkConnection(network);
     }
 
-    public MultiVersionProtocolEngine(final IApplicationRegistry appRegistry,
+    public MultiVersionProtocolEngine(final Broker broker,
                                       final Set<AmqpProtocolVersion> supported,
                                       final AmqpProtocolVersion defaultSupportedReply,
                                       final long id)
@@ -71,7 +71,7 @@ public class MultiVersionProtocolEngine 
         }
 
         _id = id;
-        _appRegistry = appRegistry;
+        _broker = broker;
         _supported = supported;
         _defaultSupportedReply = defaultSupportedReply;
     }
@@ -252,7 +252,7 @@ public class MultiVersionProtocolEngine 
 
         public ServerProtocolEngine getProtocolEngine()
         {
-            return new AMQProtocolEngine(_appRegistry.getVirtualHostRegistry(), _network, _id);
+            return new AMQProtocolEngine(_broker, _network, _id);
         }
     };
 
@@ -272,7 +272,7 @@ public class MultiVersionProtocolEngine 
 
         public ServerProtocolEngine getProtocolEngine()
         {
-            return new AMQProtocolEngine(_appRegistry.getVirtualHostRegistry(), _network, _id);
+            return new AMQProtocolEngine(_broker, _network, _id);
         }
     };
 
@@ -292,7 +292,7 @@ public class MultiVersionProtocolEngine 
 
         public ServerProtocolEngine getProtocolEngine()
         {
-            return new AMQProtocolEngine(_appRegistry.getVirtualHostRegistry(), _network, _id);
+            return new AMQProtocolEngine(_broker, _network, _id);
         }
     };
 
@@ -313,8 +313,8 @@ public class MultiVersionProtocolEngine 
 
         public ServerProtocolEngine getProtocolEngine()
         {
-            final ConnectionDelegate connDelegate =
-                    new org.apache.qpid.server.transport.ServerConnectionDelegate(_appRegistry, _fqdn, _appRegistry.getSubjectCreator(getLocalAddress()));
+            final ConnectionDelegate connDelegate = new org.apache.qpid.server.transport.ServerConnectionDelegate(_broker,
+                    _fqdn, _broker.getSubjectCreator(getLocalAddress()));
 
             ServerConnection conn = new ServerConnection(_id);
 
@@ -341,7 +341,7 @@ public class MultiVersionProtocolEngine 
 
         public ServerProtocolEngine getProtocolEngine()
         {
-            return new ProtocolEngine_1_0_0(_network, _appRegistry,_id);
+            return new ProtocolEngine_1_0_0(_network, _broker, _id);
         }
     };
 
@@ -361,7 +361,7 @@ public class MultiVersionProtocolEngine 
 
         public ServerProtocolEngine getProtocolEngine()
         {
-            return new ProtocolEngine_1_0_0_SASL(_network, _appRegistry, _id);
+            return new ProtocolEngine_1_0_0_SASL(_network, _broker, _id);
         }
     };
 

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java Mon Dec 10 14:13:41 2012
@@ -22,7 +22,7 @@ package org.apache.qpid.server.protocol;
 
 import org.apache.qpid.protocol.ProtocolEngineFactory;
 import org.apache.qpid.protocol.ServerProtocolEngine;
-import org.apache.qpid.server.registry.IApplicationRegistry;
+import org.apache.qpid.server.model.Broker;
 
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
@@ -31,11 +31,12 @@ public class MultiVersionProtocolEngineF
 {
     private static final AtomicLong ID_GENERATOR = new AtomicLong(0);
 
-    private final IApplicationRegistry _appRegistry;
+    private final Broker _broker;
     private final Set<AmqpProtocolVersion> _supported;
     private final AmqpProtocolVersion _defaultSupportedReply;
 
-    public MultiVersionProtocolEngineFactory(IApplicationRegistry appRegistry, final Set<AmqpProtocolVersion> supportedVersions, final AmqpProtocolVersion defaultSupportedReply)
+    public MultiVersionProtocolEngineFactory(Broker broker,
+            final Set<AmqpProtocolVersion> supportedVersions, final AmqpProtocolVersion defaultSupportedReply)
     {
         if(defaultSupportedReply != null && !supportedVersions.contains(defaultSupportedReply))
         {
@@ -43,14 +44,14 @@ public class MultiVersionProtocolEngineF
                                              + ") to an unsupported protocol version initiation is itself not supported!");
         }
 
-        _appRegistry = appRegistry;
+        _broker = broker;
         _supported = supportedVersions;
         _defaultSupportedReply = defaultSupportedReply;
     }
 
     public ServerProtocolEngine newProtocolEngine()
     {
-        return new MultiVersionProtocolEngine(_appRegistry, _supported, _defaultSupportedReply, ID_GENERATOR.getAndIncrement());
+        return new MultiVersionProtocolEngine(_broker, _supported, _defaultSupportedReply, ID_GENERATOR.getAndIncrement());
     }
 
 }

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java Mon Dec 10 14:13:41 2012
@@ -22,7 +22,6 @@ package org.apache.qpid.server.protocol;
 
 import java.net.SocketAddress;
 import java.nio.ByteBuffer;
-import java.util.UUID;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -39,10 +38,10 @@ import org.apache.qpid.amqp_1_0.transpor
 import org.apache.qpid.amqp_1_0.type.Binary;
 import org.apache.qpid.amqp_1_0.type.FrameBody;
 import org.apache.qpid.protocol.ServerProtocolEngine;
+import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.protocol.v1_0.Connection_1_0;
-import org.apache.qpid.server.registry.IApplicationRegistry;
 import org.apache.qpid.server.security.SubjectCreator;
-import org.apache.qpid.server.security.auth.manager.AuthenticationManager;
+import org.apache.qpid.server.virtualhost.VirtualHost;
 import org.apache.qpid.transport.Sender;
 import org.apache.qpid.transport.network.NetworkConnection;
 
@@ -55,7 +54,7 @@ public class ProtocolEngine_1_0_0 implem
     private long _writtenBytes;
     private long _lastReadTime;
     private long _lastWriteTime;
-    private final IApplicationRegistry _appRegistry;
+    private final Broker _broker;
     private long _createTime = System.currentTimeMillis();
     private ConnectionEndpoint _conn;
     private final long _connectionId;
@@ -99,9 +98,9 @@ public class ProtocolEngine_1_0_0 implem
 
 
 
-    public ProtocolEngine_1_0_0(final NetworkConnection networkDriver, final IApplicationRegistry appRegistry, long id)
+    public ProtocolEngine_1_0_0(final NetworkConnection networkDriver, final Broker broker, long id)
     {
-        _appRegistry = appRegistry;
+        _broker = broker;
         _connectionId = id;
         if(networkDriver != null)
         {
@@ -145,11 +144,12 @@ public class ProtocolEngine_1_0_0 implem
         _network = network;
         _sender = sender;
 
-        Container container = new Container(_appRegistry.getBrokerId().toString());
+        Container container = new Container(_broker.getId().toString());
 
-        _conn = new ConnectionEndpoint(container, asSaslServerProvider(_appRegistry.getSubjectCreator(
+        _conn = new ConnectionEndpoint(container, asSaslServerProvider(_broker.getSubjectCreator(
                 getLocalAddress())));
-        _conn.setConnectionEventListener(new Connection_1_0(_appRegistry, _conn, _connectionId));
+        VirtualHost virtualHost = _broker.getVirtualHostRegistry().getVirtualHost((String)_broker.getAttribute(Broker.DEFAULT_VIRTUAL_HOST));
+        _conn.setConnectionEventListener(new Connection_1_0(virtualHost, _conn, _connectionId));
         _conn.setFrameOutputHandler(this);
         _conn.setRemoteAddress(_network.getRemoteAddress());
 

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0_SASL.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0_SASL.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0_SASL.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0_SASL.java Mon Dec 10 14:13:41 2012
@@ -23,7 +23,6 @@ package org.apache.qpid.server.protocol;
 import java.io.PrintWriter;
 import java.net.SocketAddress;
 import java.nio.ByteBuffer;
-import java.util.UUID;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import javax.security.sasl.SaslException;
@@ -40,10 +39,10 @@ import org.apache.qpid.amqp_1_0.transpor
 import org.apache.qpid.amqp_1_0.type.Binary;
 import org.apache.qpid.amqp_1_0.type.FrameBody;
 import org.apache.qpid.protocol.ServerProtocolEngine;
+import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.protocol.v1_0.Connection_1_0;
-import org.apache.qpid.server.registry.ApplicationRegistry;
-import org.apache.qpid.server.registry.IApplicationRegistry;
 import org.apache.qpid.server.security.SubjectCreator;
+import org.apache.qpid.server.virtualhost.VirtualHost;
 import org.apache.qpid.transport.Sender;
 import org.apache.qpid.transport.network.NetworkConnection;
 
@@ -54,7 +53,7 @@ public class ProtocolEngine_1_0_0_SASL i
 
        private long _lastReadTime;
        private long _lastWriteTime;
-       private final IApplicationRegistry _appRegistry;
+       private final Broker _broker;
        private long _createTime = System.currentTimeMillis();
        private ConnectionEndpoint _conn;
        private long _connectionId;
@@ -113,12 +112,11 @@ public class ProtocolEngine_1_0_0_SASL i
        private State _state = State.A;
 
 
-    public ProtocolEngine_1_0_0_SASL(final NetworkConnection networkDriver, final IApplicationRegistry appRegistry,
+    public ProtocolEngine_1_0_0_SASL(final NetworkConnection networkDriver, final Broker broker,
                                      long id)
     {
         _connectionId = id;
-        _appRegistry = appRegistry;
-
+        _broker = broker;
         if(networkDriver != null)
         {
             setNetworkConnection(networkDriver, networkDriver.getSender());
@@ -161,10 +159,11 @@ public class ProtocolEngine_1_0_0_SASL i
         _network = network;
         _sender = sender;
 
-        Container container = new Container(_appRegistry.getBrokerId().toString());
+        Container container = new Container(_broker.getId().toString());
 
-        _conn = new ConnectionEndpoint(container, asSaslServerProvider(_appRegistry.getSubjectCreator(getLocalAddress())));
-        _conn.setConnectionEventListener(new Connection_1_0(_appRegistry, _conn, _connectionId));
+        _conn = new ConnectionEndpoint(container, asSaslServerProvider(_broker.getSubjectCreator(getLocalAddress())));
+        VirtualHost virtualHost = _broker.getVirtualHostRegistry().getVirtualHost((String)_broker.getAttribute(Broker.DEFAULT_VIRTUAL_HOST));
+        _conn.setConnectionEventListener(new Connection_1_0(virtualHost, _conn, _connectionId));
         _conn.setRemoteAddress(getRemoteAddress());
 
 

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java Mon Dec 10 14:13:41 2012
@@ -31,7 +31,6 @@ import org.apache.qpid.protocol.AMQConst
 import org.apache.qpid.server.logging.LogSubject;
 import org.apache.qpid.server.protocol.AMQConnectionModel;
 import org.apache.qpid.server.protocol.AMQSessionModel;
-import org.apache.qpid.server.registry.IApplicationRegistry;
 import org.apache.qpid.server.stats.StatisticsCounter;
 import org.apache.qpid.server.virtualhost.VirtualHost;
 
@@ -44,7 +43,6 @@ import static org.apache.qpid.server.log
 public class Connection_1_0 implements ConnectionEventListener
 {
 
-    private IApplicationRegistry _appRegistry;
     private VirtualHost _vhost;
     private final ConnectionEndpoint _conn;
     private final long _connectionId;
@@ -62,10 +60,9 @@ public class Connection_1_0 implements C
 
 
 
-    public Connection_1_0(IApplicationRegistry appRegistry, ConnectionEndpoint conn, long connectionId)
+    public Connection_1_0(VirtualHost virtualHost, ConnectionEndpoint conn, long connectionId)
     {
-        _appRegistry = appRegistry;
-        _vhost = _appRegistry.getVirtualHostRegistry().getDefaultVirtualHost();
+        _vhost = virtualHost;
         _conn = conn;
         _connectionId = connectionId;
         _vhost.getConnectionRegistry().registerConnection(_model);
@@ -74,7 +71,7 @@ public class Connection_1_0 implements C
 
     public void remoteSessionCreation(SessionEndpoint endpoint)
     {
-        Session_1_0 session = new Session_1_0(_vhost, _appRegistry, this);
+        Session_1_0 session = new Session_1_0(_vhost, this);
         _sessions.add(session);
         endpoint.setSessionEventListener(session);
     }

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java Mon Dec 10 14:13:41 2012
@@ -36,7 +36,6 @@ import org.apache.qpid.amqp_1_0.type.tra
 import org.apache.qpid.amqp_1_0.type.transport.Error;
 import org.apache.qpid.AMQException;
 import org.apache.qpid.AMQSecurityException;
-import org.apache.qpid.protocol.ProtocolEngine;
 import org.apache.qpid.server.exchange.Exchange;
 import org.apache.qpid.server.logging.LogSubject;
 import org.apache.qpid.server.message.InboundMessage;
@@ -45,8 +44,6 @@ import org.apache.qpid.server.protocol.A
 import org.apache.qpid.server.protocol.AMQSessionModel;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.AMQQueueFactory;
-import org.apache.qpid.server.registry.IApplicationRegistry;
-import org.apache.qpid.server.transport.ServerConnection;
 import org.apache.qpid.server.txn.AutoCommitTransaction;
 import org.apache.qpid.server.txn.ServerTransaction;
 import org.apache.qpid.server.virtualhost.VirtualHost;
@@ -58,7 +55,6 @@ import static org.apache.qpid.server.log
 public class Session_1_0 implements SessionEventListener, AMQSessionModel, LogSubject
 {
     private static final Symbol LIFETIME_POLICY = Symbol.valueOf("lifetime-policy");
-    private IApplicationRegistry _appRegistry;
     private VirtualHost _vhost;
     private AutoCommitTransaction _transaction;
 
@@ -68,9 +64,8 @@ public class Session_1_0 implements Sess
     private UUID _id = UUID.randomUUID();
 
 
-    public Session_1_0(VirtualHost vhost, IApplicationRegistry appRegistry, final Connection_1_0 connection)
+    public Session_1_0(VirtualHost vhost, final Connection_1_0 connection)
     {
-        _appRegistry = appRegistry;
         _vhost = vhost;
         _transaction = new AutoCommitTransaction(vhost.getMessageStore());
         _connection = connection;

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java Mon Dec 10 14:13:41 2012
@@ -20,11 +20,8 @@
  */
 package org.apache.qpid.server.registry;
 
-import java.net.SocketAddress;
 import java.util.Timer;
 import java.util.TimerTask;
-import java.util.UUID;
-import java.util.concurrent.atomic.AtomicReference;
 
 import org.apache.log4j.Logger;
 import org.apache.qpid.common.Closeable;
@@ -33,10 +30,7 @@ import org.apache.qpid.server.configurat
 import org.apache.qpid.server.configuration.ConfigurationEntryStore;
 import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer;
 import org.apache.qpid.server.configuration.RecovererProvider;
-import org.apache.qpid.server.configuration.ServerConfiguration;
-import org.apache.qpid.server.configuration.VirtualHostConfiguration;
 import org.apache.qpid.server.configuration.startup.DefaultRecovererProvider;
-import org.apache.qpid.server.configuration.store.XMLConfigurationEntryStore;
 import org.apache.qpid.server.logging.CompositeStartupMessageLogger;
 import org.apache.qpid.server.logging.Log4jMessageLogger;
 import org.apache.qpid.server.logging.LogActor;
@@ -49,15 +43,12 @@ import org.apache.qpid.server.logging.ac
 import org.apache.qpid.server.logging.actors.GenericActor;
 import org.apache.qpid.server.logging.messages.BrokerMessages;
 import org.apache.qpid.server.logging.messages.VirtualHostMessages;
-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.Port;
 import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.security.SubjectCreator;
 import org.apache.qpid.server.stats.StatisticsCounter;
+import org.apache.qpid.server.stats.StatisticsGatherer;
 import org.apache.qpid.server.virtualhost.VirtualHost;
-import org.apache.qpid.server.virtualhost.VirtualHostImpl;
 import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
 
 
@@ -71,9 +62,7 @@ public class ApplicationRegistry impleme
 {
     private static final Logger _logger = Logger.getLogger(ApplicationRegistry.class);
 
-    private static AtomicReference<IApplicationRegistry> _instance = new AtomicReference<IApplicationRegistry>(null);
-
-    private final VirtualHostRegistry _virtualHostRegistry = new VirtualHostRegistry(this);
+    private final VirtualHostRegistry _virtualHostRegistry = new VirtualHostRegistry();
 
     private volatile RootMessageLogger _rootMessageLogger;
 
@@ -91,67 +80,6 @@ public class ApplicationRegistry impleme
         _rootMessageLogger = rootMessageLogger;
     }
 
-    public static void initialise(IApplicationRegistry instance) throws Exception
-    {
-        if(instance == null)
-        {
-            throw new IllegalArgumentException("ApplicationRegistry instance must not be null");
-        }
-
-        if(!_instance.compareAndSet(null, instance))
-        {
-            throw new IllegalStateException("An ApplicationRegistry is already initialised");
-        }
-
-        _logger.info("Initialising Application Registry(" + instance + ")");
-
-
-        try
-        {
-            instance.initialise();
-        }
-        catch (Exception e)
-        {
-            try
-            {
-                instance.close();
-            }
-            catch(Exception e1)
-            {
-                _logger.error("Failed to close uninitialized registry", e1);
-            }
-
-            //remove the Broker instance, then re-throw
-            _instance.set(null);
-            throw e;
-        }
-    }
-
-    public static boolean isConfigured()
-    {
-        return _instance.get() != null;
-    }
-
-    public static void remove()
-    {
-        IApplicationRegistry instance = _instance.getAndSet(null);
-        try
-        {
-            if (instance != null)
-            {
-                if (_logger.isInfoEnabled())
-                {
-                    _logger.info("Shutting down ApplicationRegistry(" + instance + ")");
-                }
-                instance.close();
-            }
-        }
-        catch (Exception e)
-        {
-            _logger.error("Error shutting down Application Registry(" + instance + "): " + e, e);
-        }
-    }
-
     public ApplicationRegistry(ConfigurationEntryStore store)
     {
         _store = store;
@@ -160,38 +88,31 @@ public class ApplicationRegistry impleme
 
     public void initialise() throws Exception
     {
+        // Create the RootLogger to be used during broker operation
+        boolean statusUpdatesEnabled = Boolean.parseBoolean(System.getProperty(BrokerProperties.PROPERTY_STATUS_UPDATES, "true"));
+        _rootMessageLogger = new Log4jMessageLogger(statusUpdatesEnabled);
+
         _logRecorder = new LogRecorder();
 
         //Create the composite (log4j+SystemOut MessageLogger to be used during startup
-        RootMessageLogger[] messageLoggers = {new SystemOutMessageLogger(), new Log4jMessageLogger(true)};
+        RootMessageLogger[] messageLoggers = {new SystemOutMessageLogger(), _rootMessageLogger};
         CompositeStartupMessageLogger startupMessageLogger = new CompositeStartupMessageLogger(messageLoggers);
 
         BrokerActor actor = new BrokerActor(startupMessageLogger);
-        CurrentActor.setDefault(actor);
         CurrentActor.set(actor);
-
+        CurrentActor.setDefault(actor);
         try
         {
-
             logStartupMessages(CurrentActor.get());
 
-            // XXX hack
-            ServerConfiguration configuration =  ((XMLConfigurationEntryStore)_store).getConfiguration();
-
-            RecovererProvider provider = new DefaultRecovererProvider(this);
+            RecovererProvider provider = new DefaultRecovererProvider((StatisticsGatherer)this, _virtualHostRegistry, _logRecorder, _rootMessageLogger);
             ConfiguredObjectRecoverer<? extends ConfiguredObject> brokerRecoverer =  provider.getRecoverer(Broker.class.getSimpleName());
             _broker = (Broker) brokerRecoverer.create(provider, _store.getRootEntry());
 
-            getVirtualHostRegistry().setDefaultVirtualHostName(configuration.getDefaultVirtualHost());
+            _virtualHostRegistry.setDefaultVirtualHostName((String)_broker.getAttribute(Broker.DEFAULT_VIRTUAL_HOST));
 
-            // Create the RootLogger to be used during broker operation
-            boolean statusUpdatesEnabled = Boolean.parseBoolean(System.getProperty(BrokerProperties.PROPERTY_STATUS_UPDATES, "true"));
-            _rootMessageLogger = new Log4jMessageLogger(statusUpdatesEnabled);
             initialiseStatisticsReporting();
 
-            CurrentActor.setDefault(new BrokerActor(_rootMessageLogger));
-            GenericActor.setDefaultMessageLogger(_rootMessageLogger);
-
             // starting the broker
             _broker.setDesiredState(State.INITIALISING, State.ACTIVE);
 
@@ -202,21 +123,19 @@ public class ApplicationRegistry impleme
             CurrentActor.remove();
         }
 
+        CurrentActor.setDefault(new BrokerActor(_rootMessageLogger));
+        GenericActor.setDefaultMessageLogger(_rootMessageLogger);
     }
 
-    public void initialiseStatisticsReporting()
+    private void initialiseStatisticsReporting()
     {
-        boolean isStatisticsEnabled = (Boolean)_broker.getAttribute(Broker.STATISTICS_ENABLED);
         long report = ((Number)_broker.getAttribute(Broker.STATISTICS_REPORTING_PERIOD)).intValue() * 1000; // convert to ms
         final boolean reset = (Boolean)_broker.getAttribute(Broker.STATISTICS_REPORTING_RESET_ENABLED);
 
         /* add a timer task to report statistics if generation is enabled for broker or virtualhosts */
-        if (report > 0L && isStatisticsEnabled)
+        if (report > 0L)
         {
             _reportingTimer = new Timer("Statistics-Reporting", true);
-
-            // TODO: use virtual host "statisticsEnabled" attribute to check whether statistics collection is required on that virtual host
-            // temporarily enabling the statistics collection for all virtual hosts
             StatisticsReportingTask task = new StatisticsReportingTask(true, true, reset, _rootMessageLogger);
             _reportingTimer.scheduleAtFixedRate(task, report / 2, report);
         }
@@ -260,7 +179,7 @@ public class ApplicationRegistry impleme
 
             if (_virtualhost)
             {
-                for (VirtualHost vhost : getVirtualHostRegistry().getVirtualHosts())
+                for (VirtualHost vhost : _virtualHostRegistry.getVirtualHosts())
                 {
                     String name = vhost.getName();
                     StatisticsCounter dataDelivered = vhost.getDataDeliveryStatistics();
@@ -285,25 +204,6 @@ public class ApplicationRegistry impleme
     }
 
     /**
-     * Get the ApplicationRegistry
-     * @return the IApplicationRegistry instance
-     * @throws IllegalStateException if no registry instance has been initialised.
-     */
-    @Deprecated
-    public static IApplicationRegistry getInstance() throws IllegalStateException
-    {
-        IApplicationRegistry iApplicationRegistry = _instance.get();
-        if (iApplicationRegistry == null)
-        {
-            throw new IllegalStateException("No ApplicationRegistry has been initialised");
-        }
-        else
-        {
-            return iApplicationRegistry;
-        }
-    }
-
-    /**
      * Close non-null Closeable items and log any errors
      * @param close
      */
@@ -330,7 +230,7 @@ public class ApplicationRegistry impleme
         }
 
         //Set the Actor for Broker Shutdown
-        CurrentActor.set(new BrokerActor(getRootMessageLogger()));
+        CurrentActor.set(new BrokerActor(_rootMessageLogger));
         try
         {
             //Stop Statistics Reporting
@@ -360,41 +260,6 @@ public class ApplicationRegistry impleme
         _broker = null;
     }
 
-    public ServerConfiguration getConfiguration()
-    {
-        // XXX hack
-        return ((XMLConfigurationEntryStore)_store).getConfiguration();
-    }
-
-    @Override
-    public VirtualHostRegistry getVirtualHostRegistry()
-    {
-        return _virtualHostRegistry;
-    }
-
-    @Override
-    public SubjectCreator getSubjectCreator(SocketAddress localAddress)
-    {
-        return _broker.getSubjectCreator(localAddress);
-    }
-
-    public RootMessageLogger getRootMessageLogger()
-    {
-        return _rootMessageLogger;
-    }
-
-    public UUID getBrokerId()
-    {
-        return getBroker().getId();
-    }
-
-    public VirtualHost createVirtualHost(final VirtualHostConfiguration vhostConfig) throws Exception
-    {
-        VirtualHostImpl virtualHost = new VirtualHostImpl(this.getVirtualHostRegistry(), this, getBroker().getSecurityManager(), vhostConfig);
-        _virtualHostRegistry.registerVirtualHost(virtualHost);
-        return virtualHost;
-    }
-
     public void registerMessageDelivered(long messageSize)
     {
         _messagesDelivered.registerEvent(1L);
@@ -461,15 +326,4 @@ public class ApplicationRegistry impleme
         logActor.message(BrokerMessages.MAX_MEMORY(Runtime.getRuntime().maxMemory()));
     }
 
-    @Override
-    public Broker getBroker()
-    {
-        return _broker;
-    }
-
-    @Override
-    public LogRecorder getLogRecorder()
-    {
-        return _logRecorder;
-    }
 }

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/IApplicationRegistry.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/IApplicationRegistry.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/IApplicationRegistry.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/IApplicationRegistry.java Mon Dec 10 14:13:41 2012
@@ -20,19 +20,7 @@
  */
 package org.apache.qpid.server.registry;
 
-import org.apache.qpid.server.configuration.ServerConfiguration;
-import org.apache.qpid.server.configuration.VirtualHostConfiguration;
-import org.apache.qpid.server.logging.LogRecorder;
-import org.apache.qpid.server.logging.RootMessageLogger;
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.security.SecurityManager;
-import org.apache.qpid.server.security.SubjectCreator;
 import org.apache.qpid.server.stats.StatisticsGatherer;
-import org.apache.qpid.server.virtualhost.VirtualHost;
-import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
-
-import java.net.SocketAddress;
-import java.util.UUID;
 
 public interface IApplicationRegistry extends StatisticsGatherer
 {
@@ -48,31 +36,4 @@ public interface IApplicationRegistry ex
      */
     void close();
 
-    /**
-     * Get the low level configuration. For use cases where the configured object approach is not required
-     * you can get the complete configuration information.
-     * @return a Commons Configuration instance
-     */
-    ServerConfiguration getConfiguration();
-
-    /**
-     * Get the SubjectCreator for the given socket address.
-     *
-     * @param address The (listening) socket address for which the AuthenticationManager is required
-     */
-    SubjectCreator getSubjectCreator(SocketAddress localAddress);
-
-    VirtualHostRegistry getVirtualHostRegistry();
-
-    RootMessageLogger getRootMessageLogger();
-
-    public UUID getBrokerId();
-
-    Broker getBroker();
-
-    VirtualHost createVirtualHost(VirtualHostConfiguration vhostConfig) throws Exception;
-
-    void initialiseStatisticsReporting();
-
-    LogRecorder getLogRecorder();
 }

Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/state/AMQStateManager.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/state/AMQStateManager.java?rev=1419482&r1=1419481&r2=1419482&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/state/AMQStateManager.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/state/AMQStateManager.java Mon Dec 10 14:13:41 2012
@@ -31,11 +31,10 @@ import org.apache.qpid.framing.MethodDis
 import org.apache.qpid.protocol.AMQConstant;
 import org.apache.qpid.protocol.AMQMethodEvent;
 import org.apache.qpid.protocol.AMQMethodListener;
+import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.protocol.AMQProtocolSession;
-import org.apache.qpid.server.registry.IApplicationRegistry;
 import org.apache.qpid.server.security.SecurityManager;
 import org.apache.qpid.server.security.SubjectCreator;
-import org.apache.qpid.server.security.auth.manager.AuthenticationManager;
 import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
 
 import java.util.concurrent.CopyOnWriteArraySet;
@@ -48,32 +47,29 @@ public class AMQStateManager implements 
 {
     private static final Logger _logger = Logger.getLogger(AMQStateManager.class);
 
-    private final VirtualHostRegistry _virtualHostRegistry;
+    private final Broker _broker;
     private final AMQProtocolSession _protocolSession;
     /** The current state */
     private AMQState _currentState;
 
     private CopyOnWriteArraySet<StateListener> _stateListeners = new CopyOnWriteArraySet<StateListener>();
 
-    public AMQStateManager(VirtualHostRegistry virtualHostRegistry, AMQProtocolSession protocolSession)
+    public AMQStateManager(Broker broker, AMQProtocolSession protocolSession)
     {
-
-        _virtualHostRegistry = virtualHostRegistry;
+        _broker = broker;
         _protocolSession = protocolSession;
         _currentState = AMQState.CONNECTION_NOT_STARTED;
 
     }
 
     /**
-     * Get the ApplicationRegistry associated with this AMQStateManager
-     *
-     * returns the application registry associated with the VirtualHostRegistry of the AMQStateManager
+     * Get the Broker instance
      *
-     * @return the ApplicationRegistry
+     * @return the Broker
      */
-    public IApplicationRegistry getApplicationRegistry()
+    public Broker getBroker()
     {
-        return _virtualHostRegistry.getApplicationRegistry();
+        return _broker;
     }
 
     public AMQState getCurrentState()
@@ -149,7 +145,7 @@ public class AMQStateManager implements 
 
     public VirtualHostRegistry getVirtualHostRegistry()
     {
-        return _virtualHostRegistry;
+        return _broker.getVirtualHostRegistry();
     }
 
     public AMQProtocolSession getProtocolSession()
@@ -161,6 +157,6 @@ public class AMQStateManager implements 
     
     public SubjectCreator getSubjectCreator()
     {
-        return getApplicationRegistry().getSubjectCreator(getProtocolSession().getLocalAddress());
+        return _broker.getSubjectCreator(getProtocolSession().getLocalAddress());
     }
 }



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