Author: orudyy
Date: Fri Jan 18 17:54:08 2013
New Revision: 1435274

URL: http://svn.apache.org/viewvc?rev=1435274&view=rev
Log:
QPID-4390: Remove attributes which have default values from initial store. 
Improve Virtual host adapter code to return virtual host implementation 
attributes only when virtual host implementation is created

Modified:
    
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/resources/default.json
    
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java

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=1435274&r1=1435273&r2=1435274&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
 Fri Jan 18 17:54:08 2013
@@ -35,6 +35,7 @@ import java.util.Set;
 import java.util.UUID;
 
 import org.apache.commons.configuration.CompositeConfiguration;
+import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.PropertiesConfiguration;
 import org.apache.commons.configuration.SystemConfiguration;
 import org.apache.qpid.AMQException;
@@ -119,10 +120,10 @@ public final class VirtualHostAdapter ex
         {
             throw new IllegalConfigurationException("Virtual host name must be 
specified");
         }
-        Map<String, Object> actualAttributes = getActualAttributes();
-        String configurationFile = (String) actualAttributes.get(CONFIG_PATH);
-        String storePath = (String) actualAttributes.get(STORE_PATH);
-        String storeType = (String) actualAttributes.get(STORE_TYPE);
+
+        String configurationFile = (String) getAttribute(CONFIG_PATH);
+        String storePath = (String) getAttribute(STORE_PATH);
+        String storeType = (String) getAttribute(STORE_TYPE);
         boolean invalidAttributes = false;
         if (configurationFile == null)
         {
@@ -782,10 +783,19 @@ public final class VirtualHostAdapter ex
         {
             // TODO
         }
-        else if(SUPPORTED_EXCHANGE_TYPES.equals(name))
+        else if (_virtualHost != null)
+        {
+            return getAttributeFromVirtualHostImplementation(name);
+        }
+        return super.getAttribute(name);
+    }
+
+    private Object getAttributeFromVirtualHostImplementation(String name)
+    {
+        if(SUPPORTED_EXCHANGE_TYPES.equals(name))
         {
             List<String> types = new ArrayList<String>();
-            for(ExchangeType type : 
_virtualHost.getExchangeFactory().getRegisteredTypes())
+            for(@SuppressWarnings("rawtypes") ExchangeType type : 
_virtualHost.getExchangeFactory().getRegisteredTypes())
             {
                 types.add(type.getName().asString());
             }
@@ -938,27 +948,9 @@ public final class VirtualHostAdapter ex
         {
             VirtualHostRegistry virtualHostRegistry = 
_broker.getVirtualHostRegistry();
             String virtualHostName = getName();
-            String configurationFile = (String)getAttribute(CONFIG_PATH);
-            VirtualHostConfiguration configuration = null;
             try
             {
-                if (configurationFile == null)
-                {
-                    final MyConfiguration basicConfiguration = new 
MyConfiguration();
-                    PropertiesConfiguration config = new 
PropertiesConfiguration();
-                    config.addProperty("store.type", 
(String)getAttribute(STORE_TYPE));
-                    config.addProperty("store.environment-path", 
(String)getAttribute(STORE_PATH));
-                    basicConfiguration.addConfiguration(config);
-
-                    CompositeConfiguration compositeConfiguration = new 
CompositeConfiguration();
-                    compositeConfiguration.addConfiguration(new 
SystemConfiguration());
-                    
compositeConfiguration.addConfiguration(basicConfiguration);
-                    configuration = new 
VirtualHostConfiguration(virtualHostName, compositeConfiguration , _broker);
-                }
-                else
-                {
-                    configuration = new 
VirtualHostConfiguration(virtualHostName, new File(configurationFile) , 
_broker);
-                }
+                VirtualHostConfiguration configuration = 
createVirtualHostConfiguration(virtualHostName);
                 _virtualHost = new 
VirtualHostImpl(_broker.getVirtualHostRegistry(), _brokerStatisticsGatherer, 
_broker.getSecurityManager(), configuration);
             }
             catch (Exception e)
@@ -1006,6 +998,30 @@ public final class VirtualHostAdapter ex
         return false;
     }
 
+    private VirtualHostConfiguration createVirtualHostConfiguration(String 
virtualHostName) throws ConfigurationException
+    {
+        VirtualHostConfiguration configuration;
+        String configurationFile = (String)getAttribute(CONFIG_PATH);
+        if (configurationFile == null)
+        {
+            final MyConfiguration basicConfiguration = new MyConfiguration();
+            PropertiesConfiguration config = new PropertiesConfiguration();
+            config.addProperty("store.type", (String)getAttribute(STORE_TYPE));
+            config.addProperty("store.environment-path", 
(String)getAttribute(STORE_PATH));
+            basicConfiguration.addConfiguration(config);
+
+            CompositeConfiguration compositeConfiguration = new 
CompositeConfiguration();
+            compositeConfiguration.addConfiguration(new SystemConfiguration());
+            compositeConfiguration.addConfiguration(basicConfiguration);
+            configuration = new VirtualHostConfiguration(virtualHostName, 
compositeConfiguration , _broker);
+        }
+        else
+        {
+            configuration = new VirtualHostConfiguration(virtualHostName, new 
File(configurationFile) , _broker);
+        }
+        return configuration;
+    }
+
     @Override
     public SecurityManager getSecurityManager()
     {

Modified: 
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/resources/default.json
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/resources/default.json?rev=1435274&r1=1435273&r2=1435274&view=diff
==============================================================================
--- 
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/resources/default.json
 (original)
+++ 
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/resources/default.json
 Fri Jan 18 17:54:08 2013
@@ -23,21 +23,6 @@
   "name": "Broker",
   "defaultAuthenticationProvider" : "defaultAuthenticationProvider",
   "defaultVirtualHost" : "default",
-  "aclFile" : null,
-  "alertThresholdQueueDepth" : 0,
-  "alertThresholdMessageCount" : 0,
-  "alertThresholdMessageSize" : 0,
-  "alertThresholdMessageAge" : 0,
-  "alertRepeatGap" : 30000,
-  "heartBeatDelay" : 0,
-  "sessionCountLimit" : 256,
-  "deadLetterQueueEnabled" : false,
-  "maximumDeliveryAttempts" : 0,
-  "housekeepingCheckPeriod" : 30000,
-  "queueFlowControlSizeBytes" : 0,
-  "queueFlowResumeSizeBytes" : 0,
-  "statisticsReportingPeriod" : 0,
-  "statisticsReportingResetEnabled" : false,
   "authenticationproviders" : [ {
     "type" : "AuthenticationProvider",
     "name" : "defaultAuthenticationProvider",
@@ -46,38 +31,29 @@
   } ],
   "ports" : [ {
     "type" : "Port",
-    "name" : "8080",
     "port" : 8080,
-    "transports" : [ "TCP" ],
+    "name" : "8080",
     "protocols" : [ "HTTP" ]
   }, {
     "type" : "Port",
     "name" : "5672",
-    "port" : 5672,
-    "tcpNoDelay" : true,
-    "transports" : [ "TCP" ],
-    "protocols" : [ "AMQP_0_8", "AMQP_0_9", "AMQP_0_9_1", "AMQP_0_10", 
"AMQP_1_0" ],
-    "wantClientAuth" : false,
-    "needClientAuth" : false,
-    "receiveBufferSize" : 262144,
-    "sendBufferSize" : 262144
+    "port" : 5672
   }, {
     "type" : "Port",
     "name" : "9099",
     "port" : 9099,
-    "transports" : [ "TCP" ],
     "protocols" : [ "JMX_RMI" ]
   }, {
     "type" : "Port",
     "name" : "8999",
     "port" : 8999,
-    "transports" : [ "TCP" ],
     "protocols" : [ "RMI" ]
   } ],
   "virtualhosts" : [ {
     "type" : "VirtualHost",
     "name" : "default",
-    "configuration" : "${QPID_HOME}/etc/virtualhosts.xml"
+    "storeType" : "DERBY",
+    "storePath" : "${QPID_WORK}/store"
   } ],
   "plugins" : [ {
     "type" : "Plugin",

Modified: 
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java?rev=1435274&r1=1435273&r2=1435274&view=diff
==============================================================================
--- 
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java
 (original)
+++ 
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java
 Fri Jan 18 17:54:08 2013
@@ -57,6 +57,27 @@ public class VirtualHostRecovererTest ex
         assertEquals("Unexpected name", getName(), host.getName());
     }
 
+    public void testCreateVirtualHostFromStoreConfigAtrributes()
+    {
+        StatisticsGatherer statisticsGatherer = mock(StatisticsGatherer.class);
+        SecurityManager securityManager = mock(SecurityManager.class);
+        ConfigurationEntry entry = mock(ConfigurationEntry.class);
+        Broker parent = mock(Broker.class);
+        when(parent.getSecurityManager()).thenReturn(securityManager);
+
+        VirtualHostRecoverer recoverer = new 
VirtualHostRecoverer(statisticsGatherer);
+        Map<String, Object> attributes = new HashMap<String, Object>();
+        attributes.put(VirtualHost.NAME, getName());
+        attributes.put(VirtualHost.STORE_PATH, "/path/to/virtualhost/store");
+        attributes.put(VirtualHost.STORE_TYPE, "DERBY");
+        when(entry.getAttributes()).thenReturn(attributes);
+
+        VirtualHost host = recoverer.create(null, entry, parent);
+
+        assertNotNull("Null is returned", host);
+        assertEquals("Unexpected name", getName(), host.getName());
+    }
+
     public void testCreateWithoutMandatoryAttributesResultsInException()
     {
         Map<String, Object> attributes = new HashMap<String, Object>();



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to