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

svn commit: r1586683 [1/2] - in /qpid/trunk/qpid/java: broker-core/src/main/java/org/apache/qpid/server/exchange/ broker-core/src/main/java/org/apache/qpid/server/model/ broker-core/src/main/java/org/apache/qpid/server/model/adapter/ broker-core/src/ma...

Author: rgodfrey
Date: Fri Apr 11 15:30:38 2014
New Revision: 1586683

URL: http://svn.apache.org/r1586683
Log:
QPID-5680 : [Java Broker] move configuration defualts to annotations

Added:
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/RuntimeDefault.java
Removed:
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStoreAdapter.java
Modified:
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/SystemContext.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProvider.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemNodeCreator.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStore.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStore.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
    qpid/trunk/qpid/java/broker-core/src/main/resources/initial-config.json
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileKeyStoreCreationTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileTrustStoreCreationTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostCreationTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java
    qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java
    qpid/trunk/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProvider.java
    qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java
    qpid/trunk/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
    qpid/trunk/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java
    qpid/trunk/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementFactoryTest.java
    qpid/trunk/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementTest.java
    qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
    qpid/trunk/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/JMXManagementFactoryTest.java
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/HttpManagementRestTest.java
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java Fri Apr 11 15:30:38 2014
@@ -20,11 +20,18 @@
  */
 package org.apache.qpid.server.exchange;
 
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArraySet;
+
 import org.apache.log4j.Logger;
+
 import org.apache.qpid.server.binding.BindingImpl;
 import org.apache.qpid.server.filter.AMQInvalidArgumentException;
 import org.apache.qpid.server.filter.FilterSupport;
@@ -32,18 +39,14 @@ import org.apache.qpid.server.filter.Fil
 import org.apache.qpid.server.filter.MessageFilter;
 import org.apache.qpid.server.message.InstanceProperties;
 import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.plugin.ExchangeType;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.BaseQueue;
 import org.apache.qpid.server.virtualhost.UnknownExchangeException;
 import org.apache.qpid.server.virtualhost.VirtualHostImpl;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.CopyOnWriteArraySet;
-
+@ManagedObject( category = false, type = "direct" )
 public class DirectExchange extends AbstractExchange<DirectExchange>
 {
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java Fri Apr 11 15:30:38 2014
@@ -20,11 +20,13 @@
  */
 package org.apache.qpid.server.exchange;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.atomic.AtomicReference;
+
 import org.apache.log4j.Logger;
 
 import org.apache.qpid.server.binding.BindingImpl;
@@ -34,14 +36,14 @@ import org.apache.qpid.server.filter.Fil
 import org.apache.qpid.server.filter.MessageFilter;
 import org.apache.qpid.server.message.InstanceProperties;
 import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.plugin.ExchangeType;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.BaseQueue;
 import org.apache.qpid.server.virtualhost.UnknownExchangeException;
 import org.apache.qpid.server.virtualhost.VirtualHostImpl;
 
-import java.util.ArrayList;
-
+@ManagedObject( category = false, type = "fanout" )
 public class FanoutExchange extends AbstractExchange<FanoutExchange>
 {
     private static final Logger _logger = Logger.getLogger(FanoutExchange.class);

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java Fri Apr 11 15:30:38 2014
@@ -20,25 +20,26 @@
  */
 package org.apache.qpid.server.exchange;
 
+import java.util.ArrayList;
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.CopyOnWriteArraySet;
+
 import org.apache.log4j.Logger;
 
 import org.apache.qpid.server.binding.BindingImpl;
 import org.apache.qpid.server.filter.Filterable;
 import org.apache.qpid.server.message.InstanceProperties;
 import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.plugin.ExchangeType;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.BaseQueue;
 import org.apache.qpid.server.virtualhost.UnknownExchangeException;
 import org.apache.qpid.server.virtualhost.VirtualHostImpl;
 
-import java.util.ArrayList;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.concurrent.CopyOnWriteArraySet;
-
 /**
  * An exchange that binds queues based on a set of required headers and header values
  * and routes messages to these queues by matching the headers of the message against
@@ -66,6 +67,7 @@ import java.util.concurrent.CopyOnWriteA
  *  amq.match - pub/sub on field content/value
  *  </pre>
  */
+@ManagedObject( category = false, type = "headers" )
 public class HeadersExchange extends AbstractExchange<HeadersExchange>
 {
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java Fri Apr 11 15:30:38 2014
@@ -38,6 +38,7 @@ import org.apache.qpid.server.filter.Fil
 import org.apache.qpid.server.filter.Filterable;
 import org.apache.qpid.server.message.InstanceProperties;
 import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.plugin.ExchangeType;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.BaseQueue;
@@ -45,6 +46,7 @@ import org.apache.qpid.server.util.Conne
 import org.apache.qpid.server.virtualhost.UnknownExchangeException;
 import org.apache.qpid.server.virtualhost.VirtualHostImpl;
 
+@ManagedObject( category = false, type = "topic" )
 public class TopicExchange extends AbstractExchange<TopicExchange>
 {
     public static final ExchangeType<TopicExchange> TYPE = new TopicExchangeType();

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java Fri Apr 11 15:30:38 2014
@@ -80,10 +80,13 @@ public abstract class AbstractConfigured
     private static final Map<Class<? extends ConfiguredObject>, Map<String, Field>> _allAutomatedFields =
             Collections.synchronizedMap(new HashMap<Class<? extends ConfiguredObject>, Map<String, Field>>());
     private static final Map<Class, Object> SECURE_VALUES;
+
+    public static final String SECURED_STRING_VALUE = "********";
+
     static
     {
         Map<Class,Object> secureValues = new HashMap<Class, Object>();
-        secureValues.put(String.class, "********");
+        secureValues.put(String.class, SECURED_STRING_VALUE);
         secureValues.put(Integer.class, 0);
         secureValues.put(Long.class, 0l);
         secureValues.put(Byte.class, (byte)0);
@@ -135,12 +138,14 @@ public abstract class AbstractConfigured
     private final Map<String, Attribute<?,?>> _attributeTypes;
     private final Map<String, Field> _automatedFields;
 
+    @ManagedAttributeField
+    private String _type;
+
     protected AbstractConfiguredObject(UUID id,
-                                       Map<String, Object> defaults,
                                        Map<String, Object> attributes,
                                        TaskExecutor taskExecutor)
     {
-        this(defaults, combineIdWithAttributes(id,attributes), taskExecutor);
+        this(combineIdWithAttributes(id,attributes), taskExecutor);
     }
 
     public static Map<String,Object> combineIdWithAttributes(UUID id, Map<String,Object> attributes)
@@ -151,20 +156,11 @@ public abstract class AbstractConfigured
     }
 
 
-    protected AbstractConfiguredObject(UUID id, Map<String, Object> defaults, Map<String, Object> attributes,
-                                       TaskExecutor taskExecutor, boolean filterAttributes)
-
-    {
-        this(Collections.<Class<? extends ConfiguredObject>, ConfiguredObject<?>>emptyMap(),
-             defaults, combineIdWithAttributes(id, attributes), taskExecutor, filterAttributes);
-    }
-
-    protected AbstractConfiguredObject(Map<String, Object> defaults,
-                                       Map<String, Object> attributes,
+    protected AbstractConfiguredObject(Map<String, Object> attributes,
                                        TaskExecutor taskExecutor)
     {
         this(Collections.<Class<? extends ConfiguredObject>, ConfiguredObject<?>>emptyMap(),
-             defaults, attributes, taskExecutor, true);
+             Collections.<String,Object>emptyMap(), attributes, taskExecutor, true);
     }
 
     protected AbstractConfiguredObject(final Map<Class<? extends ConfiguredObject>, ConfiguredObject<?>> parents,
@@ -198,6 +194,15 @@ public abstract class AbstractConfigured
 
         _attributeTypes = getAttributeTypes(getClass());
         _automatedFields = getAutomatedFields(getClass());
+        _type = getType(getClass());
+        if(attributes.get(TYPE) != null)
+        {
+            if(!_type.equals(attributes.get(TYPE)))
+            {
+                throw new IllegalConfigurationException("Provided type is " + attributes.get(TYPE)
+                                                        + " but calculated type is " + _type);
+            }
+        }
 
         for (Class<? extends ConfiguredObject> childClass : Model.getInstance().getChildTypes(getCategoryClass()))
         {
@@ -277,11 +282,15 @@ public abstract class AbstractConfigured
 
     }
 
-    private void automatedSetValue(final String name, final Object value)
+    private void automatedSetValue(final String name, Object value)
     {
         try
         {
             final Attribute attribute = _attributeTypes.get(name);
+            if(value == null && !"".equals(attribute.getAnnotation().defaultValue()))
+            {
+                value = attribute.getAnnotation().defaultValue();
+            }
             _automatedFields.get(name).set(this, attribute.convert(value, this));
         }
         catch (IllegalAccessException e)
@@ -292,7 +301,7 @@ public abstract class AbstractConfigured
 
     protected AbstractConfiguredObject(UUID id, TaskExecutor taskExecutor)
     {
-        this(id, Collections.<String,Object>emptyMap(), Collections.<String,Object>emptyMap(), taskExecutor);
+        this(id, Collections.<String,Object>emptyMap(), taskExecutor);
     }
 
     public void open()
@@ -1037,9 +1046,9 @@ public abstract class AbstractConfigured
     }
 
     @Override
-    public String getType()
+    public final String getType()
     {
-        return (String)getAttribute(TYPE);
+        return _type;
     }
 
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java Fri Apr 11 15:30:38 2014
@@ -59,6 +59,9 @@ public interface Broker<X extends Broker
     String CONNECTION_HEART_BEAT_DELAY = "connection.heartBeatDelay";
     String CONNECTION_CLOSE_WHEN_NO_ROUTE = "connection.closeWhenNoRoute";
 
+    @ManagedContextDefault(name = "broker.name")
+    static final String DEFAULT_BROKER_NAME = "Broker";
+
     @ManagedAttribute( derived = true )
     String getBuildVersion();
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java Fri Apr 11 15:30:38 2014
@@ -65,7 +65,7 @@ public interface ConfiguredObject<X exte
     @ManagedAttribute
     String getDescription();
 
-    @ManagedAttribute
+    @ManagedAttribute( automate = true )
     String getType();
 
     @ManagedAttribute(automate = true)

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java Fri Apr 11 15:30:38 2014
@@ -31,29 +31,6 @@ public interface KeyStore<X extends KeyS
     String STATE = "state";
     String DESCRIPTION = "description";
 
-    String PATH = "path";
-    String PASSWORD = "password";
-    String KEY_STORE_TYPE = "keyStoreType";
-    String CERTIFICATE_ALIAS = "certificateAlias";
-    String KEY_MANAGER_FACTORY_ALGORITHM = "keyManagerFactoryAlgorithm";
-
-    @ManagedAttribute( secure = true, automate = true, mandatory = true )
-    public String getPassword();
-    
-    @ManagedAttribute( automate = true, mandatory = true)
-    public String getPath();
-
-    @ManagedAttribute( automate = true )
-    public String getCertificateAlias();
-
-    @ManagedAttribute( automate = true )
-    public String getKeyManagerFactoryAlgorithm();
-
-    @ManagedAttribute( automate = true )
-    public String getKeyStoreType();
-
-    public void setPassword(String password);
-
     public KeyManager[] getKeyManagers() throws GeneralSecurityException;
 
 }

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java Fri Apr 11 15:30:38 2014
@@ -20,10 +20,6 @@
  */
 package org.apache.qpid.server.model;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-
 @ManagedObject
 public interface Plugin<X extends Plugin<X>> extends ConfiguredObject<X>
 {
@@ -31,8 +27,4 @@ public interface Plugin<X extends Plugin
     String DURABLE                              = "durable";
     String LIFETIME_POLICY                      = "lifetimePolicy";
 
-    // Attributes
-
-    @ManagedAttribute
-    String getPluginType();
 }

Added: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/RuntimeDefault.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/RuntimeDefault.java?rev=1586683&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/RuntimeDefault.java (added)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/RuntimeDefault.java Fri Apr 11 15:30:38 2014
@@ -0,0 +1,33 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.model;
+
+public abstract class RuntimeDefault<T>
+{
+    public abstract T value();
+
+    final public String toString()
+    {
+        T value = value();
+        return value == null ? null : value.toString();
+    }
+
+}

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/SystemContext.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/SystemContext.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/SystemContext.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/SystemContext.java Fri Apr 11 15:30:38 2014
@@ -24,7 +24,6 @@ import java.security.AccessControlExcept
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
@@ -64,7 +63,7 @@ public class SystemContext extends Abstr
                          final LogRecorder logRecorder,
                          final BrokerOptions brokerOptions)
     {
-        super(SYSTEM_ID, Collections.<String,Object>emptyMap(), createAttributes(brokerOptions), taskExecutor);
+        super(SYSTEM_ID, createAttributes(brokerOptions), taskExecutor);
         _eventLogger = eventLogger;
         getTaskExecutor().start();
         _objectFactory = configuredObjectFactory;

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java Fri Apr 11 15:30:38 2014
@@ -28,30 +28,11 @@ public interface TrustStore<X extends Tr
 {
     String DURABLE = "durable";
     String LIFETIME_POLICY = "lifetimePolicy";
-    String STATE = "state";
     String DESCRIPTION = "description";
 
-    String PATH = "path";
-    String PASSWORD = "password";
-    String TRUST_STORE_TYPE = "trustStoreType";
-    String PEERS_ONLY = "peersOnly";
-    String TRUST_MANAGER_FACTORY_ALGORITHM = "trustManagerFactoryAlgorithm";
-
     @ManagedAttribute( secure = true, automate = true, mandatory = true)
     public String getPassword();
 
-    @ManagedAttribute( automate = true, mandatory = true )
-    public String getPath();
-
-    @ManagedAttribute( automate = true )
-    public String getTrustManagerFactoryAlgorithm();
-
-    @ManagedAttribute( automate = true )
-    public String getTrustStoreType();
-
-    @ManagedAttribute( automate = true )
-    public boolean isPeersOnly();
-
 
     public void setPassword(String password);
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java Fri Apr 11 15:30:38 2014
@@ -96,8 +96,19 @@ public interface VirtualHost<X extends V
     @ManagedAttribute
     String getSecurityAcl();
 
-    @ManagedAttribute
-    int getHouseKeepingThreadCount();
+    @ManagedContextDefault( name = "virtualhost.housekeepingThreadCount")
+    public static final RuntimeDefault<Integer> DEFAULT_HOUSEKEEPING_THREAD_COUNT =
+            new RuntimeDefault<Integer>()
+            {
+                @Override
+                public Integer value()
+                {
+                    return Runtime.getRuntime().availableProcessors();
+                }
+            };
+
+    @ManagedAttribute( automate = true, defaultValue = "${virtualhost.housekeepingThreadCount}")
+    int getHousekeepingThreadCount();
 
     @ManagedAttribute( automate = true )
     Map<String, Object> getMessageStoreSettings();

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java Fri Apr 11 15:30:38 2014
@@ -87,13 +87,6 @@ public class BrokerAdapter extends Abstr
         put(STORE_VERSION, String.class);
     }});
 
-    public static final String DEFAULT_NAME = "QpidBroker";
-
-    @SuppressWarnings("serial")
-    private static final Map<String, Object> DEFAULTS = Collections.unmodifiableMap(new HashMap<String, Object>(){{
-        put(Broker.NAME, DEFAULT_NAME);
-
-    }});
     public static final String MANAGEMENT_MODE_AUTHENTICATION = "MANAGEMENT_MODE_AUTHENTICATION";
     private final ConfiguredObjectFactory _objectFactory;
 
@@ -143,7 +136,8 @@ public class BrokerAdapter extends Abstr
                          Map<String, Object> attributes,
                          SystemContext parent)
     {
-        super(Collections.<Class<? extends ConfiguredObject>, ConfiguredObject<?>>singletonMap(SystemContext.class, parent), DEFAULTS, combineIdWithAttributes(id,MapValueConverter.convert(attributes, ATTRIBUTE_TYPES)), parent.getTaskExecutor());
+        super(Collections.<Class<? extends ConfiguredObject>, ConfiguredObject<?>>singletonMap(SystemContext.class, parent),
+              Collections.<String,Object>emptyMap(), combineIdWithAttributes(id,MapValueConverter.convert(attributes, ATTRIBUTE_TYPES)), parent.getTaskExecutor());
 
         _objectFactory = parent.getObjectFactory();
         _virtualHostRegistry = new VirtualHostRegistry(parent.getEventLogger());

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java Fri Apr 11 15:30:38 2014
@@ -60,7 +60,7 @@ public final class ConnectionAdapter ext
 
     public ConnectionAdapter(final AMQConnectionModel conn, TaskExecutor taskExecutor)
     {
-        super(Collections.<String,Object>emptyMap(), createAttributes(conn), taskExecutor);
+        super(createAttributes(conn), taskExecutor);
         _connection = conn;
         open();
         conn.addSessionListener(this);

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProvider.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProvider.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProvider.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProvider.java Fri Apr 11 15:30:38 2014
@@ -358,7 +358,7 @@ public class FileBasedGroupProvider
 
         public GroupAdapter(Map<String,Object> attributes, TaskExecutor taskExecutor)
         {
-            super(Collections.<String,Object>emptyMap(),attributes, taskExecutor);
+            super(attributes, taskExecutor);
         }
 
 
@@ -508,7 +508,7 @@ public class FileBasedGroupProvider
 
             public GroupMemberAdapter(Map<String,Object> attrMap, TaskExecutor taskExecutor)
             {
-                super(Collections.<String,Object>emptyMap(), attrMap, taskExecutor);
+                super(attrMap, taskExecutor);
             }
 
             @Override

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java Fri Apr 11 15:30:38 2014
@@ -68,18 +68,13 @@ public class FileSystemPreferencesProvid
     public static String PATH = "path";
     public static final String PROVIDER_TYPE = "FileSystemPreferences";
 
-    @SuppressWarnings("serial")
-    private static final Map<String, Object> DEFAULTS = Collections.unmodifiableMap(new HashMap<String, Object>()
-    {{
-            put(TYPE, FileSystemPreferencesProvider.class.getSimpleName());
-    }});
+
 
     @SuppressWarnings("serial")
     private static final Map<String, Type> ATTRIBUTE_TYPES = Collections.unmodifiableMap(new HashMap<String, Type>()
     {{
             put(NAME, String.class);
             put(PATH, String.class);
-            put(TYPE, String.class);
     }});
 
     private final AuthenticationProvider<? extends AuthenticationProvider> _authenticationProvider;
@@ -91,7 +86,7 @@ public class FileSystemPreferencesProvid
                                             AuthenticationProvider<? extends AuthenticationProvider> authenticationProvider)
     {
         super(Collections.<Class<? extends ConfiguredObject>, ConfiguredObject<?>>singletonMap(AuthenticationProvider.class, authenticationProvider),
-              DEFAULTS,
+              Collections.<String,Object>emptyMap(),
               combineIdWithAttributes(id,MapValueConverter.convert(attributes, ATTRIBUTE_TYPES)),
               authenticationProvider.getParent(Broker.class).getTaskExecutor());
         State state = MapValueConverter.getEnumAttribute(State.class, STATE, attributes, State.INITIALISING);
@@ -341,7 +336,7 @@ public class FileSystemPreferencesProvid
         }
         String newType = (String) attributes.get(TYPE);
         String currentType = (String) getAttribute(TYPE);
-        if (!currentType.equals(newType))
+        if (newType != null && !currentType.equals(newType))
         {
             throw new IllegalConfigurationException("Changing the type of preferences provider is not supported");
         }

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java Fri Apr 11 15:30:38 2014
@@ -45,7 +45,7 @@ final class SessionAdapter extends Abstr
 
     public SessionAdapter(final AMQSessionModel session, TaskExecutor taskExecutor)
     {
-        super(Collections.<String,Object>emptyMap(),createAttributes(session), taskExecutor);
+        super(createAttributes(session), taskExecutor);
         _session = session;
         _session.addConsumerListener(new ConsumerListener()
         {

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java Fri Apr 11 15:30:38 2014
@@ -44,8 +44,8 @@ public class VirtualHostAliasAdapter ext
 
     public VirtualHostAliasAdapter(VirtualHost virtualHost, Port port)
     {
-        super(Collections.<String, Object>emptyMap(),
-              createAttributes(virtualHost, port),
+        super(
+                createAttributes(virtualHost, port),
               virtualHost.getTaskExecutor());
         _vhost = virtualHost;
         _port = port;

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java Fri Apr 11 15:30:38 2014
@@ -120,10 +120,6 @@ abstract public class AbstractPort<X ext
         {
             updatedDefaults.put(Port.TRANSPORTS, Collections.singleton(DEFAULT_TRANSPORT));
         }
-        if(!defaults.containsKey(NAME))
-        {
-            updatedDefaults.put(NAME,  attributes.get(PORT) + "-" + attributes.get(TYPE));
-        }
         return updatedDefaults;
     }
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemNodeCreator.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemNodeCreator.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemNodeCreator.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemNodeCreator.java Fri Apr 11 15:30:38 2014
@@ -31,7 +31,6 @@ public interface SystemNodeCreator exten
         void removeSystemNode(MessageNode node);
 
         VirtualHostImpl getVirtualHost();
-        org.apache.qpid.server.model.VirtualHost getVirtualHostModel();
     }
 
     void register(SystemNodeRegistry registry);

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java Fri Apr 11 15:30:38 2014
@@ -121,8 +121,8 @@ class QueueConsumerImpl
                       final Class<? extends ServerMessage> messageClass,
                       EnumSet<Option> optionSet)
     {
-        super(Collections.<String,Object>emptyMap(),
-              createAttributeMap(consumerName,filters,optionSet),
+        super(
+                createAttributeMap(consumerName,filters,optionSet),
               queue.getVirtualHost().getTaskExecutor());
         _messageClass = messageClass;
         _sessionReference = target.getSessionModel().getConnectionReference();

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStore.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStore.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStore.java Fri Apr 11 15:30:38 2014
@@ -38,12 +38,18 @@ import javax.net.ssl.KeyManager;
 import javax.net.ssl.KeyManagerFactory;
 
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.model.AbstractConfiguredObject;
 import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.IntegrityViolationException;
 import org.apache.qpid.server.model.KeyStore;
+import org.apache.qpid.server.model.LifetimePolicy;
+import org.apache.qpid.server.model.ManagedAttribute;
 import org.apache.qpid.server.model.ManagedAttributeField;
+import org.apache.qpid.server.model.ManagedContextDefault;
 import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.model.Port;
+import org.apache.qpid.server.model.RuntimeDefault;
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.security.access.Operation;
 import org.apache.qpid.server.util.MapValueConverter;
@@ -52,8 +58,13 @@ import org.apache.qpid.transport.network
 import org.apache.qpid.transport.network.security.ssl.SSLUtil;
 
 @ManagedObject( category = false )
-public class FileKeyStore extends AbstractKeyStoreAdapter<FileKeyStore> implements KeyStore<FileKeyStore>
+public class FileKeyStore extends AbstractConfiguredObject<FileKeyStore> implements KeyStore<FileKeyStore>
 {
+    public static final String KEY_MANAGER_FACTORY_ALGORITHM = "keyManagerFactoryAlgorithm";
+    public static final String CERTIFICATE_ALIAS = "certificateAlias";
+    public static final String KEY_STORE_TYPE = "keyStoreType";
+    public static final String PASSWORD = "password";
+    public static final String PATH = "path";
     @SuppressWarnings("serial")
     public static final Map<String, Type> ATTRIBUTE_TYPES = Collections.unmodifiableMap(new HashMap<String, Type>(){{
         put(NAME, String.class);
@@ -64,6 +75,30 @@ public class FileKeyStore extends Abstra
         put(KEY_MANAGER_FACTORY_ALGORITHM, String.class);
     }});
 
+
+    @ManagedContextDefault(name = "keyStoreFile.keyStoreType")
+    public static final RuntimeDefault<String> DEFAULT_KEYSTORE_TYPE =
+            new RuntimeDefault<String>()
+            {
+                @Override
+                public String value()
+                {
+                    return java.security.KeyStore.getDefaultType();
+                }
+            };
+
+    @ManagedContextDefault(name = "keyStoreFile.keyManagerFactoryAlgorithm")
+    public static final RuntimeDefault<String> DEFAULT_KEY_MANAGER_FACTORY_ALGORITHM =
+            new RuntimeDefault<String>()
+            {
+                @Override
+                public String value()
+                {
+                    return KeyManagerFactory.getDefaultAlgorithm();
+                }
+            };
+
+
     @ManagedAttributeField
     private String _type;
     @ManagedAttributeField
@@ -74,18 +109,18 @@ public class FileKeyStore extends Abstra
     private String _keyManagerFactoryAlgorithm;
     @ManagedAttributeField
     private String _path;
+    @ManagedAttributeField
+    private String _password;
 
-    @SuppressWarnings("serial")
-    public static final Map<String, Object> DEFAULTS = Collections.unmodifiableMap(new HashMap<String, Object>(){{
-        put(KeyStore.KEY_STORE_TYPE, DEFAULT_KEYSTORE_TYPE);
-        put(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM, KeyManagerFactory.getDefaultAlgorithm());
-    }});
 
     private Broker<?> _broker;
 
     public FileKeyStore(UUID id, Broker<?> broker, Map<String, Object> attributes)
     {
-        super(id, broker, DEFAULTS, attributes);
+        super(Collections.<Class<? extends ConfiguredObject>,ConfiguredObject<?>>singletonMap(Broker.class, broker),
+              Collections.<String,Object>emptyMap(), combineIdWithAttributes(id, attributes),
+              broker.getTaskExecutor());
+
         _broker = broker;
     }
 
@@ -100,7 +135,62 @@ public class FileKeyStore extends Abstra
     @Override
     public Collection<String> getAttributeNames()
     {
-        return getAttributeNames(KeyStore.class);
+        return getAttributeNames(getClass());
+    }
+    @Override
+    public String setName(String currentName, String desiredName) throws IllegalStateException, AccessControlException
+    {
+        throw new IllegalStateException();
+    }
+
+    @Override
+    public State getState()
+    {
+        return State.ACTIVE;
+    }
+
+    @Override
+    public boolean isDurable()
+    {
+        return true;
+    }
+
+    @Override
+    public void setDurable(boolean durable) throws IllegalStateException, AccessControlException, IllegalArgumentException
+    {
+        throw new IllegalStateException();
+    }
+
+    @Override
+    public LifetimePolicy getLifetimePolicy()
+    {
+        return LifetimePolicy.PERMANENT;
+    }
+
+    @Override
+    public LifetimePolicy setLifetimePolicy(LifetimePolicy expected, LifetimePolicy desired) throws IllegalStateException, AccessControlException,
+                                                                                                    IllegalArgumentException
+    {
+        throw new IllegalStateException();
+    }
+
+    @Override
+    public Object getAttribute(String name)
+    {
+        if(KeyStore.STATE.equals(name))
+        {
+            return getState();
+        }
+        else if(KeyStore.DURABLE.equals(name))
+        {
+            return isDurable();
+        }
+        else if(KeyStore.LIFETIME_POLICY.equals(name))
+        {
+            return getLifetimePolicy();
+        }
+
+        return super.getAttribute(name);
     }
 
     @Override
@@ -171,13 +261,13 @@ public class FileKeyStore extends Abstra
             }
         }
 
-        Map<String, Object> merged = generateEffectiveAttributes(changedValues);
-
-        String keyStorePath = (String)merged.get(KeyStore.PATH);
-        String keyStorePassword = (String) merged.get(KeyStore.PASSWORD);
-        String keyStoreType = (String)merged.get(KeyStore.KEY_STORE_TYPE);
-        String keyManagerFactoryAlgorithm = (String)merged.get(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM);
-        String certAlias = (String)merged.get(KeyStore.CERTIFICATE_ALIAS);
+        String keyStorePath = changedValues.containsKey(PATH) ? (String)changedValues.get(PATH) : getPath();
+        String keyStorePassword = changedValues.containsKey(PASSWORD) ? (String) changedValues.get(PASSWORD) : getPassword();
+        String keyStoreType = changedValues.containsKey(KEY_STORE_TYPE) ? (String)changedValues.get(KEY_STORE_TYPE) : getKeyStoreType();
+        String keyManagerFactoryAlgorithm = changedValues.containsKey(KEY_MANAGER_FACTORY_ALGORITHM) ?
+                (String)changedValues.get(KEY_MANAGER_FACTORY_ALGORITHM) : getKeyManagerFactoryAlgorithm();
+        String certAlias = changedValues.containsKey(CERTIFICATE_ALIAS) ? (String)changedValues.get(CERTIFICATE_ALIAS)
+                : getCertificateAlias();
 
         validateKeyStoreAttributes(keyStoreType, keyStorePath, keyStorePassword,
                                    certAlias, keyManagerFactoryAlgorithm);
@@ -229,30 +319,41 @@ public class FileKeyStore extends Abstra
         }
     }
 
-    @Override
+    @ManagedAttribute( automate = true, mandatory = true)
     public String getPath()
     {
         return _path;
     }
 
-    @Override
+    @ManagedAttribute( automate = true )
     public String getCertificateAlias()
     {
         return _certificateAlias;
     }
 
-    @Override
+    @ManagedAttribute( automate = true, defaultValue = "${keyStoreFile.keyManagerFactoryAlgorithm}" )
     public String getKeyManagerFactoryAlgorithm()
     {
         return _keyManagerFactoryAlgorithm;
     }
 
-    @Override
+    @ManagedAttribute( automate = true, defaultValue = "${keyStoreFile.keyStoreType}" )
     public String getKeyStoreType()
     {
         return _keyStoreType;
     }
 
+    @ManagedAttribute( secure = true, automate = true, mandatory = true )
+    public String getPassword()
+    {
+        return _password;
+    }
+
+    public void setPassword(String password)
+    {
+        _password = password;
+    }
+
     public KeyManager[] getKeyManagers() throws GeneralSecurityException
     {
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStore.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStore.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStore.java Fri Apr 11 15:30:38 2014
@@ -33,6 +33,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
 
+import javax.net.ssl.KeyManagerFactory;
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.TrustManagerFactory;
 
@@ -48,8 +49,36 @@ import org.apache.qpid.transport.network
 import org.apache.qpid.transport.network.security.ssl.SSLUtil;
 
 @ManagedObject( category = false )
-public class FileTrustStore extends AbstractKeyStoreAdapter<FileTrustStore> implements TrustStore<FileTrustStore>
+public class FileTrustStore extends AbstractConfiguredObject<FileTrustStore> implements TrustStore<FileTrustStore>
 {
+
+
+    @ManagedContextDefault(name = "trustStoreFile.trustStoreType")
+    public static final RuntimeDefault<String> DEFAULT_TRUSTSTORE_TYPE =
+            new RuntimeDefault<String>()
+            {
+                @Override
+                public String value()
+                {
+                    return java.security.KeyStore.getDefaultType();
+                }
+            };
+    @ManagedContextDefault(name = "trustStoreFile.trustManagerFactoryAlgorithm")
+    public static final RuntimeDefault<String> DEFAULT_TRUST_MANAGER_FACTORY_ALGORITHM =
+            new RuntimeDefault<String>()
+            {
+                @Override
+                public String value()
+                {
+                    return KeyManagerFactory.getDefaultAlgorithm();
+                }
+            };
+
+    public static final String TRUST_MANAGER_FACTORY_ALGORITHM = "trustManagerFactoryAlgorithm";
+    public static final String PEERS_ONLY = "peersOnly";
+    public static final String TRUST_STORE_TYPE = "trustStoreType";
+    public static final String PASSWORD = "password";
+    public static final String PATH = "path";
     @SuppressWarnings("serial")
     public static final Map<String, Type> ATTRIBUTE_TYPES = Collections.unmodifiableMap(new HashMap<String, Type>(){{
         put(NAME, String.class);
@@ -60,13 +89,6 @@ public class FileTrustStore extends Abst
         put(TRUST_MANAGER_FACTORY_ALGORITHM, String.class);
     }});
 
-    @SuppressWarnings("serial")
-    public static final Map<String, Object> DEFAULTS = Collections.unmodifiableMap(new HashMap<String, Object>(){{
-        put(TrustStore.TRUST_STORE_TYPE, DEFAULT_KEYSTORE_TYPE);
-        put(TrustStore.PEERS_ONLY, Boolean.FALSE);
-        put(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM, TrustManagerFactory.getDefaultAlgorithm());
-    }});
-
     @ManagedAttributeField
     private String _trustStoreType;
     @ManagedAttributeField
@@ -75,13 +97,16 @@ public class FileTrustStore extends Abst
     private String _path;
     @ManagedAttributeField
     private boolean _peersOnly;
-
+    @ManagedAttributeField
+    private String _password;
 
     private Broker<?> _broker;
 
     public FileTrustStore(UUID id, Broker<?> broker, Map<String, Object> attributes)
     {
-        super(id, broker, DEFAULTS, attributes);
+        super(Collections.<Class<? extends ConfiguredObject>,ConfiguredObject<?>>singletonMap(Broker.class, broker),
+              Collections.<String,Object>emptyMap(), combineIdWithAttributes(id, attributes),
+              broker.getTaskExecutor());
         _broker = broker;
     }
 
@@ -95,7 +120,43 @@ public class FileTrustStore extends Abst
     @Override
     public Collection<String> getAttributeNames()
     {
-        return getAttributeNames(TrustStore.class);
+        return getAttributeNames(getClass());
+    }
+    @Override
+    public String setName(String currentName, String desiredName) throws IllegalStateException, AccessControlException
+    {
+        throw new IllegalStateException();
+    }
+
+    @Override
+    public State getState()
+    {
+        return State.ACTIVE;
+    }
+
+    @Override
+    public boolean isDurable()
+    {
+        return true;
+    }
+
+    @Override
+    public void setDurable(boolean durable) throws IllegalStateException, AccessControlException, IllegalArgumentException
+    {
+        throw new IllegalStateException();
+    }
+
+    @Override
+    public LifetimePolicy getLifetimePolicy()
+    {
+        return LifetimePolicy.PERMANENT;
+    }
+
+    @Override
+    public LifetimePolicy setLifetimePolicy(LifetimePolicy expected, LifetimePolicy desired) throws IllegalStateException, AccessControlException,
+                                                                                                    IllegalArgumentException
+    {
+        throw new IllegalStateException();
     }
 
     @Override
@@ -189,10 +250,16 @@ public class FileTrustStore extends Abst
 
         Map<String, Object> merged = generateEffectiveAttributes(changedValues);
 
-        String trustStorePath = (String)merged.get(TrustStore.PATH);
-        String trustStorePassword = (String) merged.get(TrustStore.PASSWORD);
-        String trustStoreType = (String)merged.get(TrustStore.TRUST_STORE_TYPE);
-        String trustManagerFactoryAlgorithm = (String)merged.get(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM);
+        String trustStorePath = changedValues.containsKey(PATH) ? (String) changedValues.get(PATH) : getPath();
+        String trustStorePassword =
+                changedValues.containsKey(PASSWORD) ? (String) changedValues.get(PASSWORD) : getPassword();
+        String trustStoreType = changedValues.containsKey(TRUST_STORE_TYPE)
+                ? (String) changedValues.get(TRUST_STORE_TYPE)
+                : getTrustStoreType();
+        String trustManagerFactoryAlgorithm =
+                changedValues.containsKey(TRUST_MANAGER_FACTORY_ALGORITHM)
+                        ? (String) changedValues.get(TRUST_MANAGER_FACTORY_ALGORITHM)
+                        : getTrustManagerFactoryAlgorithm();
 
         validateTrustStoreAttributes(trustStoreType, trustStorePath,
                                      trustStorePassword, trustManagerFactoryAlgorithm);
@@ -223,29 +290,57 @@ public class FileTrustStore extends Abst
     }
 
     @Override
+    public Object getAttribute(String name)
+    {
+        if(STATE.equals(name))
+        {
+            return getState();
+        }
+        else if(DURABLE.equals(name))
+        {
+            return isDurable();
+        }
+        else if(org.apache.qpid.server.model.KeyStore.LIFETIME_POLICY.equals(name))
+        {
+            return getLifetimePolicy();
+        }
+
+        return super.getAttribute(name);
+    }
+    @ManagedAttribute( automate = true, mandatory = true )
     public String getPath()
     {
         return _path;
     }
 
-    @Override
+    @ManagedAttribute( automate = true, defaultValue = "${trustStoreFile.trustManagerFactoryAlgorithm}")
     public String getTrustManagerFactoryAlgorithm()
     {
         return _trustManagerFactoryAlgorithm;
     }
 
-    @Override
+    @ManagedAttribute( automate = true, defaultValue = "${trustStoreFile.trustStoreType}")
     public String getTrustStoreType()
     {
         return _trustStoreType;
     }
 
-    @Override
+    @ManagedAttribute( automate = true, defaultValue = "false" )
     public boolean isPeersOnly()
     {
         return _peersOnly;
     }
 
+    @ManagedAttribute( secure = true, automate = true, mandatory = true )
+    public String getPassword()
+    {
+        return _password;
+    }
+
+    public void setPassword(String password)
+    {
+        _password = password;
+    }
     public TrustManager[] getTrustManagers() throws GeneralSecurityException
     {
         String trustStorePath = _path;

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java Fri Apr 11 15:30:38 2014
@@ -356,7 +356,7 @@ public abstract class PrincipalDatabaseA
 
         public PrincipalAdapter(Principal user)
         {
-            super(Collections.<String,Object>emptyMap(), createPrincipalAttributes(PrincipalDatabaseAuthenticationManager.this, user),
+            super(createPrincipalAttributes(PrincipalDatabaseAuthenticationManager.this, user),
                   PrincipalDatabaseAuthenticationManager.this.getTaskExecutor());
             _user = user;
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java Fri Apr 11 15:30:38 2014
@@ -20,7 +20,6 @@
  */
 package org.apache.qpid.server.virtualhost;
 
-import java.lang.reflect.Type;
 import java.security.AccessControlException;
 import java.security.PrivilegedAction;
 import java.util.ArrayList;
@@ -89,7 +88,6 @@ import org.apache.qpid.server.txn.DtxReg
 import org.apache.qpid.server.txn.LocalTransaction;
 import org.apache.qpid.server.txn.ServerTransaction;
 import org.apache.qpid.server.util.MapValueConverter;
-import org.apache.qpid.server.util.ParameterizedTypeImpl;
 
 public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> extends AbstractConfiguredObject<X>
         implements VirtualHostImpl<X, AMQQueue<?>, ExchangeImpl<?>>, IConnectionRegistry.RegistryChangeListener, EventListener,
@@ -101,7 +99,7 @@ public abstract class AbstractVirtualHos
 
     private final long _createTime = System.currentTimeMillis();
 
-    private final ScheduledThreadPoolExecutor _houseKeepingTasks;
+    private ScheduledThreadPoolExecutor _houseKeepingTasks;
 
     private final Broker<?> _broker;
 
@@ -132,31 +130,6 @@ public abstract class AbstractVirtualHos
 
     private final EventLogger _eventLogger;
 
-    @SuppressWarnings("serial")
-    public static final Map<String, Type> ATTRIBUTE_TYPES = Collections.unmodifiableMap(new HashMap<String, Type>(){{
-        put(NAME, String.class);
-        put(TYPE, String.class);
-        put(STATE, State.class);
-
-        put(QUEUE_DEAD_LETTER_QUEUE_ENABLED, Boolean.class);
-
-        put(HOUSEKEEPING_CHECK_PERIOD, Long.class);
-        put(STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE, Long.class);
-        put(STORE_TRANSACTION_IDLE_TIMEOUT_WARN, Long.class);
-        put(STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE, Long.class);
-        put(STORE_TRANSACTION_OPEN_TIMEOUT_WARN, Long.class);
-
-        put(MESSAGE_STORE_SETTINGS, new ParameterizedTypeImpl(Map.class, String.class, Object.class));
-        put(CONFIGURATION_STORE_SETTINGS, new ParameterizedTypeImpl(Map.class, String.class, Object.class));
-
-    }});
-
-    @SuppressWarnings("serial")
-    private static final Map<String, Object> DEFAULTS = Collections.unmodifiableMap(new HashMap<String, Object>(){{
-        put(HOUSE_KEEPING_THREAD_COUNT, Runtime.getRuntime().availableProcessors());
-    }});
-
-
     private final Map<AMQConnectionModel, ConnectionAdapter> _connectionAdapters =
             new HashMap<AMQConnectionModel, ConnectionAdapter>();
 
@@ -187,10 +160,15 @@ public abstract class AbstractVirtualHos
     @ManagedAttributeField
     private long _storeTransactionOpenTimeoutWarn;
 
+    @ManagedAttributeField
+    private int _housekeepingThreadCount;
+
 
     public AbstractVirtualHost(final Map<String, Object> attributes, Broker<?> broker)
     {
-        super(parentsMap(broker), DEFAULTS, enhanceWithId(attributes), broker.getTaskExecutor());
+        super(parentsMap(broker),
+              Collections.<String,Object>emptyMap(),
+              enhanceWithId(attributes), broker.getTaskExecutor());
         _broker = broker;
         _dtxRegistry = new DtxRegistry();
 
@@ -201,9 +179,6 @@ public abstract class AbstractVirtualHos
         _connectionRegistry = new ConnectionRegistry();
         _connectionRegistry.addRegistryChangeListener(this);
 
-        _houseKeepingTasks = new ScheduledThreadPoolExecutor(getHouseKeepingThreadCount());
-
-
         _queueRegistry = new DefaultQueueRegistry(this);
 
         _queueFactory = new AMQQueueFactory(this, _queueRegistry);
@@ -249,6 +224,7 @@ public abstract class AbstractVirtualHos
     protected void onOpen()
     {
         super.onOpen();
+        _houseKeepingTasks = new ScheduledThreadPoolExecutor(getHousekeepingThreadCount());
 
         registerSystemNodes();
 
@@ -379,12 +355,6 @@ public abstract class AbstractVirtualHos
         throw new IllegalStateException();
     }
 
-
-    public String getType()
-    {
-        return (String)getAttribute(TYPE);
-    }
-
     public String setType(final String currentType, final String desiredType)
             throws IllegalStateException, AccessControlException
     {
@@ -526,19 +496,22 @@ public abstract class AbstractVirtualHos
 
     protected void shutdownHouseKeeping()
     {
-        _houseKeepingTasks.shutdown();
-
-        try
+        if(_houseKeepingTasks != null)
         {
-            if (!_houseKeepingTasks.awaitTermination(HOUSEKEEPING_SHUTDOWN_TIMEOUT, TimeUnit.SECONDS))
+            _houseKeepingTasks.shutdown();
+
+            try
             {
-                _houseKeepingTasks.shutdownNow();
+                if (!_houseKeepingTasks.awaitTermination(HOUSEKEEPING_SHUTDOWN_TIMEOUT, TimeUnit.SECONDS))
+                {
+                    _houseKeepingTasks.shutdownNow();
+                }
+            }
+            catch (InterruptedException e)
+            {
+                _logger.warn("Interrupted during Housekeeping shutdown:", e);
+                Thread.currentThread().interrupt();
             }
-        }
-        catch (InterruptedException e)
-        {
-            _logger.warn("Interrupted during Housekeeping shutdown:", e);
-            Thread.currentThread().interrupt();
         }
     }
 
@@ -1375,12 +1348,6 @@ public abstract class AbstractVirtualHos
             return AbstractVirtualHost.this;
         }
 
-        @Override
-        public org.apache.qpid.server.model.VirtualHost getVirtualHostModel()
-        {
-            return AbstractVirtualHost.this;
-        }
-
     }
 
 
@@ -1390,12 +1357,6 @@ public abstract class AbstractVirtualHos
         return isQueue_deadLetterQueueEnabled();
     }
 
-    @Override
-    public org.apache.qpid.server.model.VirtualHost getModel()
-    {
-        return this;
-    }
-
 
     public void executeTransaction(TransactionalOperation op)
     {
@@ -1649,9 +1610,9 @@ public abstract class AbstractVirtualHos
     }
 
     @Override
-    public int getHouseKeepingThreadCount()
+    public int getHousekeepingThreadCount()
     {
-        return (Integer)getAttribute(HOUSE_KEEPING_THREAD_COUNT);
+        return _housekeepingThreadCount;
     }
 
 
@@ -1661,24 +1622,6 @@ public abstract class AbstractVirtualHos
     {
         if (desiredState == State.ACTIVE)
         {
-/*
-            try
-            {
-                onOpen();
-            }
-            catch(RuntimeException e)
-            {
-                changeAttribute(STATE, State.INITIALISING, State.ERRORED);
-                if (_broker.isManagementMode())
-                {
-                    _logger.warn("Failed to activate virtual host: " + getName(), e);
-                }
-                else
-                {
-                    throw e;
-                }
-            }
-*/
             return true;
         }
         else if (desiredState == State.STOPPED)
@@ -1722,7 +1665,7 @@ public abstract class AbstractVirtualHos
                         _logger.warn("Exception occurred on store deletion", e);
                     }
                 }
-                setAttribute(org.apache.qpid.server.model.VirtualHost.STATE, getState(), State.DELETED);
+                setAttribute(VirtualHost.STATE, getState(), State.DELETED);
                 deleted();
             }
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java Fri Apr 11 15:30:38 2014
@@ -126,7 +126,5 @@ public interface VirtualHostImpl< X exte
 
     TaskExecutor getTaskExecutor();
 
-    org.apache.qpid.server.model.VirtualHost getModel();
-
     EventLogger getEventLogger();
 }

Modified: qpid/trunk/qpid/java/broker-core/src/main/resources/initial-config.json
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/resources/initial-config.json?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/resources/initial-config.json (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/resources/initial-config.json Fri Apr 11 15:30:38 2014
@@ -19,7 +19,7 @@
  *
  */
 {
-  "name": "Broker",
+  "name": "${broker.name}",
   "storeVersion": 1,
   "modelVersion": "1.4",
   "defaultVirtualHost" : "default",

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java Fri Apr 11 15:30:38 2014
@@ -20,6 +20,20 @@
  */
 package org.apache.qpid.server.configuration;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.io.StringWriter;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.SerializationConfig;
+
 import org.apache.qpid.server.BrokerOptions;
 import org.apache.qpid.server.configuration.store.JsonConfigurationEntryStore;
 import org.apache.qpid.server.configuration.updater.TaskExecutor;
@@ -32,19 +46,6 @@ import org.apache.qpid.server.model.Syst
 import org.apache.qpid.test.utils.QpidTestCase;
 import org.apache.qpid.test.utils.TestFileUtils;
 import org.apache.qpid.util.FileUtils;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.SerializationConfig;
-
-import java.io.File;
-import java.io.StringWriter;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 
 public class BrokerConfigurationStoreCreatorTest extends QpidTestCase
 {
@@ -117,7 +118,7 @@ public class BrokerConfigurationStoreCre
         ObjectMapper objectMapper = new ObjectMapper();
         objectMapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
 
-        String defaultBrokerName = "Broker";
+        String defaultBrokerName = "${broker.name}";
         String testBrokerName = getTestName();
 
         Map<String, Object> brokerObjectMap = new HashMap<String, Object>();

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java Fri Apr 11 15:30:38 2014
@@ -76,7 +76,11 @@ public class BrokerRecovererTest extends
 
         when(_brokerEntry.getId()).thenReturn(_brokerId);
         when(_brokerEntry.getType()).thenReturn(Broker.class.getSimpleName());
-        when(_brokerEntry.getAttributes()).thenReturn(Collections.<String, Object>singletonMap(Broker.MODEL_VERSION, Model.MODEL_VERSION));
+        Map<String, Object> attributesMap = new HashMap<String, Object>();
+        attributesMap.put(Broker.MODEL_VERSION, Model.MODEL_VERSION);
+        attributesMap.put(Broker.NAME, getName());
+
+        when(_brokerEntry.getAttributes()).thenReturn(attributesMap);
         when(_brokerEntry.getParents()).thenReturn(Collections.singletonMap(SystemContext.class.getSimpleName(), _systemContext.asObjectRecord()));
 
         //Add a base AuthenticationProvider for all tests
@@ -90,6 +94,7 @@ public class BrokerRecovererTest extends
     public void testCreateBrokerAttributes()
     {
         Map<String, Object> attributes = new HashMap<String, Object>();
+        attributes.put(Broker.NAME, getName());
         attributes.put(Broker.DEFAULT_VIRTUAL_HOST, "test");
         attributes.put(Broker.CONNECTION_SESSION_COUNT_LIMIT, 1000);
         attributes.put(Broker.CONNECTION_HEART_BEAT_DELAY, 2000);
@@ -270,6 +275,7 @@ public class BrokerRecovererTest extends
             // need to reset all the shared objects for every iteration of the test
             setUp();
             brokerAttributes.put(Broker.MODEL_VERSION, incompatibleVersion);
+            brokerAttributes.put(Broker.NAME, getName());
             when(_brokerEntry.getAttributes()).thenReturn(brokerAttributes);
 
             try
@@ -293,6 +299,8 @@ public class BrokerRecovererTest extends
         Map<String, Object> brokerAttributes = new HashMap<String, Object>();
         String incompatibleVersion = Model.MODEL_MAJOR_VERSION + "." + Integer.MAX_VALUE;
         brokerAttributes.put(Broker.MODEL_VERSION, incompatibleVersion);
+        brokerAttributes.put(Broker.NAME, getName());
+
         when(_brokerEntry.getAttributes()).thenReturn(brokerAttributes);
 
         try
@@ -311,6 +319,8 @@ public class BrokerRecovererTest extends
     public void testIncorrectModelVersion() throws Exception
     {
         Map<String, Object> brokerAttributes = new HashMap<String, Object>();
+        brokerAttributes.put(Broker.NAME, getName());
+
         String[] versions = { Integer.MAX_VALUE + "_" + 0, "", null };
         for (String modelVersion : versions)
         {

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileKeyStoreCreationTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileKeyStoreCreationTest.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileKeyStoreCreationTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileKeyStoreCreationTest.java Fri Apr 11 15:30:38 2014
@@ -32,12 +32,13 @@ import javax.security.auth.Subject;
 
 import junit.framework.TestCase;
 
+import org.apache.qpid.server.model.AbstractConfiguredObject;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.ConfiguredObjectFactory;
 import org.apache.qpid.server.model.KeyStore;
 import org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory;
-import org.apache.qpid.server.security.AbstractKeyStoreAdapter;
+import org.apache.qpid.server.security.FileKeyStore;
 import org.apache.qpid.server.security.SecurityManager;
 import org.apache.qpid.test.utils.TestSSLConstants;
 
@@ -59,7 +60,7 @@ public class FileKeyStoreCreationTest ex
 
         Broker broker = mock(Broker.class);
 
-        final KeyStore keyStore =
+        final FileKeyStore keyStore =
                 createKeyStore(attributes, broker);
 
 
@@ -75,7 +76,7 @@ public class FileKeyStoreCreationTest ex
                 assertNotNull(keyStore.getPassword());
                 assertEquals(TestSSLConstants.BROKER_TRUSTSTORE_PASSWORD, keyStore.getPassword());
                 //verify that we haven't configured the key store with the actual dummy password value
-                assertFalse(AbstractKeyStoreAdapter.DUMMY_PASSWORD_MASK.equals(keyStore.getPassword()));
+                assertFalse(AbstractConfiguredObject.SECURED_STRING_VALUE.equals(keyStore.getPassword()));
                 return null;
             }
         });
@@ -83,7 +84,7 @@ public class FileKeyStoreCreationTest ex
 
         // Verify the remaining attributes, including that the password value returned
         // via getAttribute is actually the dummy value and not the real password
-        attributesCopy.put(KeyStore.PASSWORD, AbstractKeyStoreAdapter.DUMMY_PASSWORD_MASK);
+        attributesCopy.put(FileKeyStore.PASSWORD, AbstractConfiguredObject.SECURED_STRING_VALUE);
         for (Map.Entry<String, Object> attribute : attributesCopy.entrySet())
         {
             Object attributeValue = keyStore.getAttribute(attribute.getKey());
@@ -91,11 +92,11 @@ public class FileKeyStoreCreationTest ex
         }
     }
 
-    protected KeyStore createKeyStore(final Map<String, Object> attributes, final Broker broker)
+    protected FileKeyStore createKeyStore(final Map<String, Object> attributes, final Broker broker)
     {
         ConfiguredObjectTypeFactory configuredObjectTypeFactory =
                 _factory.getConfiguredObjectTypeFactory(KeyStore.class, attributes);
-        return (KeyStore) configuredObjectTypeFactory.create(attributes, broker);
+        return (FileKeyStore) configuredObjectTypeFactory.create(attributes, broker);
     }
 
     public void testCreateWithMissedRequiredAttributes()
@@ -105,7 +106,7 @@ public class FileKeyStoreCreationTest ex
         UUID id = UUID.randomUUID();
         Broker broker = mock(Broker.class);
 
-        String[] mandatoryProperties = {KeyStore.NAME, KeyStore.PATH, KeyStore.PASSWORD};
+        String[] mandatoryProperties = {KeyStore.NAME, FileKeyStore.PATH, FileKeyStore.PASSWORD};
         for (int i = 0; i < mandatoryProperties.length; i++)
         {
             Map<String, Object> properties =  new HashMap<String, Object>(attributes);
@@ -127,11 +128,11 @@ public class FileKeyStoreCreationTest ex
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(KeyStore.ID, UUID.randomUUID());
         attributes.put(KeyStore.NAME, getName());
-        attributes.put(KeyStore.PATH, TestSSLConstants.BROKER_KEYSTORE);
-        attributes.put(KeyStore.PASSWORD, TestSSLConstants.BROKER_KEYSTORE_PASSWORD);
-        attributes.put(KeyStore.KEY_STORE_TYPE, "jks");
-        attributes.put(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM, KeyManagerFactory.getDefaultAlgorithm());
-        attributes.put(KeyStore.CERTIFICATE_ALIAS, "java-broker");
+        attributes.put(FileKeyStore.PATH, TestSSLConstants.BROKER_KEYSTORE);
+        attributes.put(FileKeyStore.PASSWORD, TestSSLConstants.BROKER_KEYSTORE_PASSWORD);
+        attributes.put(FileKeyStore.KEY_STORE_TYPE, "jks");
+        attributes.put(FileKeyStore.KEY_MANAGER_FACTORY_ALGORITHM, KeyManagerFactory.getDefaultAlgorithm());
+        attributes.put(FileKeyStore.CERTIFICATE_ALIAS, "java-broker");
         return attributes;
     }
 

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileTrustStoreCreationTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileTrustStoreCreationTest.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileTrustStoreCreationTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileTrustStoreCreationTest.java Fri Apr 11 15:30:38 2014
@@ -30,9 +30,9 @@ import java.util.UUID;
 import javax.net.ssl.TrustManagerFactory;
 import javax.security.auth.Subject;
 
+import org.apache.qpid.server.model.AbstractConfiguredObject;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.TrustStore;
-import org.apache.qpid.server.security.AbstractKeyStoreAdapter;
 import org.apache.qpid.server.security.FileTrustStore;
 import org.apache.qpid.server.security.SecurityManager;
 import org.apache.qpid.test.utils.QpidTestCase;
@@ -48,7 +48,7 @@ public class FileTrustStoreCreationTest 
         UUID id = UUID.randomUUID();
         Broker broker = mock(Broker.class);
 
-        final TrustStore trustStore = new FileTrustStore(id, broker, attributes);
+        final FileTrustStore trustStore = new FileTrustStore(id, broker, attributes);
         trustStore.open();
         assertNotNull("Trust store configured object is not created", trustStore);
         assertEquals(id, trustStore.getId());
@@ -62,7 +62,7 @@ public class FileTrustStoreCreationTest 
                 assertEquals(TestSSLConstants.BROKER_TRUSTSTORE_PASSWORD, trustStore.getPassword());
                 assertNotNull(trustStore.getPassword());
                 //verify that we haven't configured the trust store with the actual dummy password value
-                assertFalse(AbstractKeyStoreAdapter.DUMMY_PASSWORD_MASK.equals(trustStore.getPassword()));
+                assertFalse(AbstractConfiguredObject.SECURED_STRING_VALUE.equals(trustStore.getPassword()));
                 return null;
             }
         });
@@ -70,7 +70,7 @@ public class FileTrustStoreCreationTest 
 
         // Verify the remaining attributes, including that the password value returned
         // via getAttribute is actually the dummy value and not the real password
-        attributesCopy.put(TrustStore.PASSWORD, AbstractKeyStoreAdapter.DUMMY_PASSWORD_MASK);
+        attributesCopy.put(FileTrustStore.PASSWORD, AbstractConfiguredObject.SECURED_STRING_VALUE);
         for (Map.Entry<String, Object> attribute : attributesCopy.entrySet())
         {
             Object attributeValue = trustStore.getAttribute(attribute.getKey());
@@ -85,7 +85,7 @@ public class FileTrustStoreCreationTest 
         UUID id = UUID.randomUUID();
         Broker broker = mock(Broker.class);
 
-        String[] mandatoryProperties = {TrustStore.NAME, TrustStore.PATH, TrustStore.PASSWORD};
+        String[] mandatoryProperties = {TrustStore.NAME, FileTrustStore.PATH, FileTrustStore.PASSWORD};
         for (int i = 0; i < mandatoryProperties.length; i++)
         {
             Map<String, Object> properties =  new HashMap<String, Object>(attributes);
@@ -107,11 +107,11 @@ public class FileTrustStoreCreationTest 
     {
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(TrustStore.NAME, getName());
-        attributes.put(TrustStore.PATH, TestSSLConstants.BROKER_TRUSTSTORE);
-        attributes.put(TrustStore.PASSWORD, TestSSLConstants.BROKER_TRUSTSTORE_PASSWORD);
-        attributes.put(TrustStore.TRUST_STORE_TYPE, "jks");
-        attributes.put(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM, TrustManagerFactory.getDefaultAlgorithm());
-        attributes.put(TrustStore.PEERS_ONLY, Boolean.TRUE);
+        attributes.put(FileTrustStore.PATH, TestSSLConstants.BROKER_TRUSTSTORE);
+        attributes.put(FileTrustStore.PASSWORD, TestSSLConstants.BROKER_TRUSTSTORE_PASSWORD);
+        attributes.put(FileTrustStore.TRUST_STORE_TYPE, "jks");
+        attributes.put(FileTrustStore.TRUST_MANAGER_FACTORY_ALGORITHM, TrustManagerFactory.getDefaultAlgorithm());
+        attributes.put(FileTrustStore.PEERS_ONLY, Boolean.TRUE);
         return attributes;
     }
 

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostCreationTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostCreationTest.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostCreationTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostCreationTest.java Fri Apr 11 15:30:38 2014
@@ -76,7 +76,7 @@ public class VirtualHostCreationTest ext
         attributes.put(VirtualHost.TYPE, StandardVirtualHost.TYPE);
         attributes.put(VirtualHost.MESSAGE_STORE_SETTINGS, Collections.singletonMap(MessageStore.STORE_TYPE,
                                                                                     TestMemoryMessageStore.TYPE));
-        String[] mandatoryAttributes = {VirtualHost.NAME, VirtualHost.TYPE, VirtualHost.MESSAGE_STORE_SETTINGS};
+        String[] mandatoryAttributes = {VirtualHost.NAME, VirtualHost.MESSAGE_STORE_SETTINGS};
 
         checkMandatoryAttributesAreValidated(mandatoryAttributes, attributes);
     }

Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java?rev=1586683&r1=1586682&r2=1586683&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java Fri Apr 11 15:30:38 2014
@@ -39,6 +39,8 @@ import org.apache.qpid.server.model.Tran
 import org.apache.qpid.server.model.TrustStore;
 import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.model.adapter.FileSystemPreferencesProvider;
+import org.apache.qpid.server.security.FileKeyStore;
+import org.apache.qpid.server.security.FileTrustStore;
 import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManager;
 import org.apache.qpid.server.security.auth.manager.ExternalAuthenticationManager;
 import org.apache.qpid.server.store.ConfiguredObjectRecord;
@@ -303,10 +305,10 @@ public abstract class ConfigurationEntry
         UUID trustStoreId = UUID.randomUUID();
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(TrustStore.NAME, getName());
-        attributes.put(TrustStore.PATH, "/path/to/truststore");
-        attributes.put(TrustStore.PASSWORD, "my-secret-password");
-        attributes.put(TrustStore.TRUST_STORE_TYPE, "NON-JKS");
-        attributes.put(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM, "NON-STANDARD");
+        attributes.put(FileTrustStore.PATH, "/path/to/truststore");
+        attributes.put(FileTrustStore.PASSWORD, "my-secret-password");
+        attributes.put(FileTrustStore.TRUST_STORE_TYPE, "NON-JKS");
+        attributes.put(FileTrustStore.TRUST_MANAGER_FACTORY_ALGORITHM, "NON-STANDARD");
         attributes.put(TrustStore.DESCRIPTION, "Description");
 
         ConfigurationEntry
@@ -327,12 +329,12 @@ public abstract class ConfigurationEntry
         UUID keyStoreId = UUID.randomUUID();
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(KeyStore.NAME, getName());
-        attributes.put(KeyStore.PATH, "/path/to/truststore");
-        attributes.put(KeyStore.PASSWORD, "my-secret-password");
-        attributes.put(KeyStore.KEY_STORE_TYPE, "NON-JKS");
-        attributes.put(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM, "NON-STANDARD");
+        attributes.put(FileKeyStore.PATH, "/path/to/truststore");
+        attributes.put(FileKeyStore.PASSWORD, "my-secret-password");
+        attributes.put(FileKeyStore.KEY_STORE_TYPE, "NON-JKS");
+        attributes.put(FileKeyStore.KEY_MANAGER_FACTORY_ALGORITHM, "NON-STANDARD");
         attributes.put(KeyStore.DESCRIPTION, "Description");
-        attributes.put(KeyStore.CERTIFICATE_ALIAS, "Alias");
+        attributes.put(FileKeyStore.CERTIFICATE_ALIAS, "Alias");
 
         ConfigurationEntry keyStoreEntry = new ConfigurationEntryImpl(keyStoreId, KeyStore.class.getSimpleName(), attributes, Collections.<UUID> emptySet(),
                 _store);
@@ -401,12 +403,12 @@ public abstract class ConfigurationEntry
         UUID keyStoreId = UUID.randomUUID();
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put(KeyStore.NAME, getName());
-        attributes.put(KeyStore.PATH, "/path/to/truststore");
-        attributes.put(KeyStore.PASSWORD, "my-secret-password");
-        attributes.put(KeyStore.KEY_STORE_TYPE, "NON-JKS");
-        attributes.put(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM, "NON-STANDARD");
+        attributes.put(FileKeyStore.PATH, "/path/to/truststore");
+        attributes.put(FileKeyStore.PASSWORD, "my-secret-password");
+        attributes.put(FileKeyStore.KEY_STORE_TYPE, "NON-JKS");
+        attributes.put(FileKeyStore.KEY_MANAGER_FACTORY_ALGORITHM, "NON-STANDARD");
         attributes.put(KeyStore.DESCRIPTION, "Description");
-        attributes.put(KeyStore.CERTIFICATE_ALIAS, "Alias");
+        attributes.put(FileKeyStore.CERTIFICATE_ALIAS, "Alias");
 
         ConfigurationEntry keyStoreEntry = new ConfigurationEntryImpl(keyStoreId, KeyStore.class.getSimpleName(), attributes, Collections.<UUID> emptySet(),
                 _store);



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