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/02/23 19:38:10 UTC

svn commit: r1571054 [2/4] - in /qpid/trunk/qpid/java: broker-core/src/main/java/org/apache/qpid/server/configuration/startup/ broker-core/src/main/java/org/apache/qpid/server/model/ broker-core/src/main/java/org/apache/qpid/server/model/adapter/ broke...

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=1571054&r1=1571053&r2=1571054&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 Sun Feb 23 18:38:07 2014
@@ -26,7 +26,7 @@ import java.util.Collection;
 import java.util.Collections;
 import javax.net.ssl.TrustManager;
 
-public interface TrustStore extends ConfiguredObject
+public interface TrustStore<X extends TrustStore<X>> extends ConfiguredObject<X>
 {
     String DURABLE = "durable";
     String LIFETIME_POLICY = "lifetimePolicy";
@@ -38,31 +38,26 @@ public interface TrustStore extends Conf
 
     String PATH = "path";
     String PASSWORD = "password";
-    String TYPE = "type";
+    String TRUST_STORE_TYPE = "trustStoreType";
     String PEERS_ONLY = "peersOnly";
     String TRUST_MANAGER_FACTORY_ALGORITHM = "trustManagerFactoryAlgorithm";
 
-    public static final Collection<String> AVAILABLE_ATTRIBUTES =
-            Collections.unmodifiableList(
-                Arrays.asList(
-                              ID,
-                              NAME,
-                              STATE,
-                              DURABLE,
-                              LIFETIME_POLICY,
-                              TIME_TO_LIVE,
-                              CREATED,
-                              UPDATED,
-                              DESCRIPTION,
-                              PATH,
-                              PASSWORD,
-                              TYPE,
-                              PEERS_ONLY,
-                              TRUST_MANAGER_FACTORY_ALGORITHM
-                              ));
-
+    @ManagedAttribute( secure = true )
     public String getPassword();
 
+    @ManagedAttribute
+    public String getPath();
+
+    @ManagedAttribute
+    public String getTrustManagerFactoryAlgorithm();
+
+    @ManagedAttribute
+    public String getTrustStoreType();
+
+    @ManagedAttribute
+    public boolean isPeersOnly();
+
+
     public void setPassword(String password);
 
     public TrustManager[] getTrustManagers() throws GeneralSecurityException;

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/User.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/User.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/User.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/User.java Sun Feb 23 18:38:07 2014
@@ -26,7 +26,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Map;
 
-public interface User extends ConfiguredObject
+public interface User<X extends User<X>> extends ConfiguredObject<X>
 {
     String CREATED         = "created";
     String DURABLE         = "durable";
@@ -51,6 +51,10 @@ public interface User extends Configured
                            PASSWORD
                    ));
 
+
+    @ManagedAttribute
+    String getPassword();
+
     public void setPassword(String password);
 
     public Map<String, Object> getPreferences();

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=1571054&r1=1571053&r2=1571054&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 Sun Feb 23 18:38:07 2014
@@ -21,7 +21,6 @@
 package org.apache.qpid.server.model;
 
 import org.apache.qpid.server.message.MessageInstance;
-import org.apache.qpid.server.queue.QueueEntry;
 import org.apache.qpid.server.security.SecurityManager;
 import org.apache.qpid.server.store.MessageStore;
 
@@ -31,44 +30,9 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Map;
 
-@AmqpManagement(
-        attributes = {
-                VirtualHost.ID,
-                VirtualHost.NAME,
-                VirtualHost.TYPE,
-                VirtualHost.STATE,
-                VirtualHost.DURABLE,
-                VirtualHost.LIFETIME_POLICY,
-                VirtualHost.TIME_TO_LIVE,
-                VirtualHost.CREATED,
-                VirtualHost.UPDATED,
-                VirtualHost.SUPPORTED_EXCHANGE_TYPES,
-                VirtualHost.SUPPORTED_QUEUE_TYPES,
-                VirtualHost.QUEUE_DEAD_LETTER_QUEUE_ENABLED,
-                VirtualHost.HOUSEKEEPING_CHECK_PERIOD,
-                VirtualHost.QUEUE_MAXIMUM_DELIVERY_ATTEMPTS,
-                VirtualHost.QUEUE_FLOW_CONTROL_SIZE_BYTES,
-                VirtualHost.QUEUE_FLOW_RESUME_SIZE_BYTES,
-                VirtualHost.CONFIG_STORE_TYPE,
-                VirtualHost.CONFIG_STORE_PATH,
-                VirtualHost.STORE_TYPE,
-                VirtualHost.STORE_PATH,
-                VirtualHost.STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE,
-                VirtualHost.STORE_TRANSACTION_IDLE_TIMEOUT_WARN,
-                VirtualHost.STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE,
-                VirtualHost.STORE_TRANSACTION_OPEN_TIMEOUT_WARN,
-                VirtualHost.QUEUE_ALERT_REPEAT_GAP,
-                VirtualHost.QUEUE_ALERT_THRESHOLD_MESSAGE_AGE,
-                VirtualHost.QUEUE_ALERT_THRESHOLD_MESSAGE_SIZE,
-                VirtualHost.QUEUE_ALERT_THRESHOLD_QUEUE_DEPTH_BYTES,
-                VirtualHost.QUEUE_ALERT_THRESHOLD_QUEUE_DEPTH_MESSAGES,
-                VirtualHost.CONFIG_PATH
-            },
-        operations = {},
-        managesChildren = true
-)
+@AmqpManagement( managesChildren = true )
 
-public interface VirtualHost extends ConfiguredObject
+public interface VirtualHost<X extends VirtualHost<X>> extends ConfiguredObject<X>
 {
     // Statistics
 
@@ -121,47 +85,77 @@ public interface VirtualHost extends Con
     String LIFETIME_POLICY                      = "lifetimePolicy";
     String STATE                                = "state";
     String TIME_TO_LIVE                         = "timeToLive";
-    String TYPE                                 = "type";
     String UPDATED                              = "updated";
     String CONFIG_PATH                          = "configPath";
 
     // Attributes
-    public static final Collection<String> AVAILABLE_ATTRIBUTES =
-            Collections.unmodifiableList(
-                    Arrays.asList(
-                            ID,
-                            NAME,
-                            TYPE,
-                            STATE,
-                            DURABLE,
-                            LIFETIME_POLICY,
-                            TIME_TO_LIVE,
-                            CREATED,
-                            UPDATED,
-                            SUPPORTED_EXCHANGE_TYPES,
-                            SUPPORTED_QUEUE_TYPES,
-                            QUEUE_DEAD_LETTER_QUEUE_ENABLED,
-                            HOUSEKEEPING_CHECK_PERIOD,
-                            QUEUE_MAXIMUM_DELIVERY_ATTEMPTS,
-                            QUEUE_FLOW_CONTROL_SIZE_BYTES,
-                            QUEUE_FLOW_RESUME_SIZE_BYTES,
-                            CONFIG_STORE_TYPE,
-                            CONFIG_STORE_PATH,
-                            STORE_TYPE,
-                            STORE_PATH,
-                            STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE,
-                            STORE_TRANSACTION_IDLE_TIMEOUT_WARN,
-                            STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE,
-                            STORE_TRANSACTION_OPEN_TIMEOUT_WARN,
-                            QUEUE_ALERT_REPEAT_GAP,
-                            QUEUE_ALERT_THRESHOLD_MESSAGE_AGE,
-                            QUEUE_ALERT_THRESHOLD_MESSAGE_SIZE,
-                            QUEUE_ALERT_THRESHOLD_QUEUE_DEPTH_BYTES,
-                            QUEUE_ALERT_THRESHOLD_QUEUE_DEPTH_MESSAGES,
-                            CONFIG_PATH));
 
     int CURRENT_CONFIG_VERSION = 4;
 
+    @ManagedAttribute
+    Collection<String> getSupportedExchangeTypes();
+
+    @ManagedAttribute
+    Collection<String> getSupportedQueueTypes();
+
+    @ManagedAttribute
+    boolean isQueue_deadLetterQueueEnabled();
+
+    @ManagedAttribute
+    long getHousekeepingCheckPeriod();
+
+    @ManagedAttribute
+    int getQueue_maximumDeliveryAttempts();
+
+    @ManagedAttribute
+    long getQueue_flowControlSizeBytes();
+
+    @ManagedAttribute
+    long getQueue_flowResumeSizeBytes();
+
+    @ManagedAttribute
+    String getConfigStoreType();
+
+    @ManagedAttribute
+    String getConfigStorePath();
+
+    @ManagedAttribute
+    String getStoreType();
+
+    @ManagedAttribute
+    String getStorePath();
+
+    @ManagedAttribute
+    long getStoreTransactionIdleTimeoutClose();
+
+    @ManagedAttribute
+    long getStoreTransactionIdleTimeoutWarn();
+
+    @ManagedAttribute
+    long getStoreTransactionOpenTimeoutClose();
+
+    @ManagedAttribute
+    long getStoreTransactionOpenTimeoutWarn();
+
+    @ManagedAttribute
+    long getQueue_alertRepeatGap();
+
+    @ManagedAttribute
+    long getQueue_alertThresholdMessageAge();
+
+    @ManagedAttribute
+    long getQueue_alertThresholdMessageSize();
+
+    @ManagedAttribute
+    long getQueue_alertThresholdQueueDepthBytes();
+
+    @ManagedAttribute
+    long getQueue_alertThresholdQueueDepthMessages();
+
+    @ManagedAttribute
+    String getConfigPath();
+
+
     //children
     Collection<VirtualHostAlias> getAliases();
     Collection<Connection> getConnections();

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostAlias.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostAlias.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostAlias.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostAlias.java Sun Feb 23 18:38:07 2014
@@ -23,7 +23,7 @@ package org.apache.qpid.server.model;
 import java.security.AccessControlException;
 import java.util.Collection;
 
-public interface VirtualHostAlias extends ConfiguredObject
+public interface VirtualHostAlias<X extends VirtualHostAlias<X>> extends ConfiguredObject<X>
 {
     // parents
     Port getPort();

Copied: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractConfiguredObject.java (from r1569102, qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java)
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractConfiguredObject.java?p2=qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractConfiguredObject.java&p1=qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java&r1=1569102&r2=1571054&rev=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractConfiguredObject.java Sun Feb 23 18:38:07 2014
@@ -28,6 +28,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
+import org.apache.qpid.server.model.Attribute;
 import org.apache.qpid.server.model.ConfigurationChangeListener;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.IllegalStateTransitionException;
@@ -39,7 +40,7 @@ import org.apache.qpid.server.configurat
 import org.apache.qpid.server.configuration.updater.SetAttributeTask;
 import org.apache.qpid.server.configuration.updater.TaskExecutor;
 
-public abstract class AbstractAdapter implements ConfiguredObject
+public abstract class AbstractConfiguredObject<X extends ConfiguredObject<X>> implements ConfiguredObject<X>
 {
     private static final Object ID = "id";
     private final Map<String,Object> _attributes = new HashMap<String, Object>();
@@ -52,13 +53,16 @@ public abstract class AbstractAdapter im
     private final Map<String, Object> _defaultAttributes = new HashMap<String, Object>();
     private final TaskExecutor _taskExecutor;
 
-    protected AbstractAdapter(UUID id, Map<String, Object> defaults, Map<String, Object> attributes, TaskExecutor taskExecutor)
+    protected AbstractConfiguredObject(UUID id,
+                                       Map<String, Object> defaults,
+                                       Map<String, Object> attributes,
+                                       TaskExecutor taskExecutor)
     {
         this(id, defaults, attributes, taskExecutor, true);
     }
 
-    protected AbstractAdapter(UUID id, Map<String, Object> defaults, Map<String, Object> attributes,
-                              TaskExecutor taskExecutor, boolean filterAttributes)
+    protected AbstractConfiguredObject(UUID id, Map<String, Object> defaults, Map<String, Object> attributes,
+                                       TaskExecutor taskExecutor, boolean filterAttributes)
 
     {
         _taskExecutor = taskExecutor;
@@ -97,7 +101,7 @@ public abstract class AbstractAdapter im
         }
     }
 
-    protected AbstractAdapter(UUID id, TaskExecutor taskExecutor)
+    protected AbstractConfiguredObject(UUID id, TaskExecutor taskExecutor)
     {
         this(id, null, null, taskExecutor);
     }
@@ -126,7 +130,7 @@ public abstract class AbstractAdapter im
             }
             else
             {
-                return getActualState();
+                return getState();
             }
         }
         else
@@ -232,6 +236,18 @@ public abstract class AbstractAdapter im
     }
 
     @Override
+    public String getDescription()
+    {
+        return (String) getAttribute(DESCRIPTION);
+    }
+
+    @Override
+    public <T> T getAttribute(final Attribute<? super X, T> attr)
+    {
+        return (T) getAttribute(attr.getName());
+    }
+
+    @Override
     public final Map<String, Object> getActualAttributes()
     {
         synchronized (_attributes)
@@ -474,4 +490,34 @@ public abstract class AbstractAdapter im
 
         return merged;
     }
+
+    @Override
+    public String getLastUpdatedBy()
+    {
+        return null;
+    }
+
+    @Override
+    public long getLastUpdatedTime()
+    {
+        return 0;
+    }
+
+    @Override
+    public String getCreatedBy()
+    {
+        return null;
+    }
+
+    @Override
+    public long getCreatedTime()
+    {
+        return 0;
+    }
+
+    @Override
+    public String getType()
+    {
+        return (String)getAttribute(TYPE);
+    }
 }

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractKeyStoreAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractKeyStoreAdapter.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractKeyStoreAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractKeyStoreAdapter.java Sun Feb 23 18:38:07 2014
@@ -35,7 +35,7 @@ import org.apache.qpid.server.model.Stat
 import org.apache.qpid.server.model.TrustStore;
 import org.apache.qpid.server.util.MapValueConverter;
 
-public abstract class AbstractKeyStoreAdapter extends AbstractAdapter
+public abstract class AbstractKeyStoreAdapter<X extends ConfiguredObject<X>> extends AbstractConfiguredObject<X>
 {
     public static final String DUMMY_PASSWORD_MASK = "********";
     public static final String DEFAULT_KEYSTORE_TYPE = java.security.KeyStore.getDefaultType();
@@ -67,7 +67,7 @@ public abstract class AbstractKeyStoreAd
     }
 
     @Override
-    public State getActualState()
+    public State getState()
     {
         return State.ACTIVE;
     }
@@ -140,7 +140,7 @@ public abstract class AbstractKeyStoreAd
         }
         else if(KeyStore.STATE.equals(name))
         {
-            return getActualState();
+            return getState();
         }
         else if(KeyStore.DURABLE.equals(name))
         {

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java Sun Feb 23 18:38:07 2014
@@ -26,6 +26,7 @@ import java.util.Collections;
 import java.util.Map;
 import java.util.UUID;
 
+import org.apache.qpid.server.model.Attribute;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.LifetimePolicy;
@@ -34,7 +35,7 @@ import org.apache.qpid.server.model.Stat
 import org.apache.qpid.server.model.Statistics;
 import org.apache.qpid.server.security.access.Operation;
 
-public abstract class AbstractPluginAdapter extends AbstractAdapter implements Plugin
+public abstract class AbstractPluginAdapter<X extends Plugin<X>> extends AbstractConfiguredObject<X> implements Plugin<X>
 {
     private Broker _broker;
 
@@ -52,7 +53,7 @@ public abstract class AbstractPluginAdap
     }
 
     @Override
-    public State getActualState()
+    public State getState()
     {
         return null;
     }
@@ -110,7 +111,7 @@ public abstract class AbstractPluginAdap
     @Override
     public Collection<String> getAttributeNames()
     {
-        return AVAILABLE_ATTRIBUTES;
+        return Attribute.getAttributeNames(Plugin.class);
     }
 
     @Override
@@ -122,7 +123,7 @@ public abstract class AbstractPluginAdap
         }
         else if (STATE.equals(name))
         {
-            return getActualState();
+            return getState();
         }
         else if (DURABLE.equals(name))
         {

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderAdapter.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderAdapter.java Sun Feb 23 18:38:07 2014
@@ -30,19 +30,13 @@ import java.util.UUID;
 import java.util.concurrent.atomic.AtomicReference;
 
 import org.apache.log4j.Logger;
-import org.apache.qpid.server.model.AccessControlProvider;
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.IllegalStateTransitionException;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.Statistics;
+import org.apache.qpid.server.model.*;
 import org.apache.qpid.server.plugin.AccessControlFactory;
 import org.apache.qpid.server.security.AccessControl;
 import org.apache.qpid.server.security.access.Operation;
 import org.apache.qpid.server.util.MapValueConverter;
 
-public class AccessControlProviderAdapter extends AbstractAdapter implements AccessControlProvider
+public class AccessControlProviderAdapter extends AbstractConfiguredObject<AccessControlProviderAdapter> implements AccessControlProvider<AccessControlProviderAdapter>
 {
     private static final Logger LOGGER = Logger.getLogger(AccessControlProviderAdapter.class);
 
@@ -85,7 +79,7 @@ public class AccessControlProviderAdapte
 
     protected Collection<String> createSupportedAttributes(Collection<String> factoryAttributes)
     {
-        List<String> attributesNames = new ArrayList<String>(AVAILABLE_ATTRIBUTES);
+        List<String> attributesNames = new ArrayList<String>(Attribute.getAttributeNames(AccessControlProvider.class));
         if (factoryAttributes != null)
         {
             attributesNames.addAll(factoryAttributes);
@@ -107,7 +101,7 @@ public class AccessControlProviderAdapte
     }
 
     @Override
-    public State getActualState()
+    public State getState()
     {
         return _state.get();
     }
@@ -183,7 +177,7 @@ public class AccessControlProviderAdapte
         }
         else if(STATE.equals(name))
         {
-            return getActualState();
+            return getState();
         }
         else if(TIME_TO_LIVE.equals(name))
         {

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java Sun Feb 23 18:38:07 2014
@@ -50,12 +50,12 @@ import org.apache.qpid.server.transport.
 import org.apache.qpid.server.util.ServerScopedRuntimeException;
 import org.apache.qpid.transport.network.security.ssl.QpidMultipleTrustManager;
 
-public class AmqpPortAdapter extends PortAdapter
+public class AmqpPortAdapter extends PortAdapter<AmqpPortAdapter>
 {
-    private final Broker _broker;
+    private final Broker<?> _broker;
     private AcceptingTransport _transport;
 
-    public AmqpPortAdapter(UUID id, Broker broker, Map<String, Object> attributes, Map<String, Object> defaultAttributes, TaskExecutor taskExecutor)
+    public AmqpPortAdapter(UUID id, Broker<?> broker, Map<String, Object> attributes, Map<String, Object> defaultAttributes, TaskExecutor taskExecutor)
     {
         super(id, broker, attributes, defaultAttributes, taskExecutor);
         _broker = broker;
@@ -201,4 +201,34 @@ public class AmqpPortAdapter extends Por
         }
         return null;
     }
+
+    @Override
+    public boolean isTcpNoDelay()
+    {
+        return false;
+    }
+
+    @Override
+    public int getSendBufferSize()
+    {
+        return 0;
+    }
+
+    @Override
+    public int getReceiveBufferSize()
+    {
+        return 0;
+    }
+
+    @Override
+    public boolean getNeedClientAuth()
+    {
+        return false;
+    }
+
+    @Override
+    public boolean getWantClientAuth()
+    {
+        return false;
+    }
 }

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java Sun Feb 23 18:38:07 2014
@@ -35,20 +35,7 @@ import java.util.concurrent.atomic.Atomi
 import javax.security.auth.login.AccountNotFoundException;
 
 import org.apache.log4j.Logger;
-import org.apache.qpid.server.model.AuthenticationProvider;
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.IllegalStateTransitionException;
-import org.apache.qpid.server.model.IntegrityViolationException;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.model.PasswordCredentialManagingAuthenticationProvider;
-import org.apache.qpid.server.model.Port;
-import org.apache.qpid.server.model.PreferencesProvider;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.Statistics;
-import org.apache.qpid.server.model.UUIDGenerator;
-import org.apache.qpid.server.model.User;
-import org.apache.qpid.server.model.VirtualHostAlias;
+import org.apache.qpid.server.model.*;
 import org.apache.qpid.server.plugin.AuthenticationManagerFactory;
 import org.apache.qpid.server.plugin.PreferencesProviderFactory;
 import org.apache.qpid.server.plugin.QpidServiceLoader;
@@ -63,7 +50,9 @@ import org.apache.qpid.server.security.a
 import org.apache.qpid.server.security.SecurityManager;
 import org.apache.qpid.server.util.MapValueConverter;
 
-public abstract class AuthenticationProviderAdapter<T extends AuthenticationManager> extends AbstractAdapter implements AuthenticationProvider
+public abstract class AuthenticationProviderAdapter<X extends AuthenticationProvider<X>, T extends AuthenticationManager> extends
+                                                                                                                          AbstractConfiguredObject<X>
+        implements AuthenticationProvider<X>
 {
     private static final Logger LOGGER = Logger.getLogger(AuthenticationProviderAdapter.class);
 
@@ -124,7 +113,7 @@ public abstract class AuthenticationProv
     }
 
     @Override
-    public State getActualState()
+    public State getState()
     {
         return _state.get();
     }
@@ -200,7 +189,7 @@ public abstract class AuthenticationProv
         }
         else if(STATE.equals(name))
         {
-            return getActualState();
+            return getState();
         }
         else if(TIME_TO_LIVE.equals(name))
         {
@@ -250,7 +239,7 @@ public abstract class AuthenticationProv
                 _authManager.onDelete();
                 if (_preferencesProvider != null)
                 {
-                    _preferencesProvider.setDesiredState(_preferencesProvider.getActualState(), State.DELETED);
+                    _preferencesProvider.setDesiredState(_preferencesProvider.getState(), State.DELETED);
                 }
                 return true;
             }
@@ -268,7 +257,7 @@ public abstract class AuthenticationProv
                     _authManager.initialise();
                     if (_preferencesProvider != null)
                     {
-                        _preferencesProvider.setDesiredState(_preferencesProvider.getActualState(), State.ACTIVE);
+                        _preferencesProvider.setDesiredState(_preferencesProvider.getState(), State.ACTIVE);
                     }
                     return true;
                 }
@@ -304,7 +293,7 @@ public abstract class AuthenticationProv
                 _authManager.close();
                 if (_preferencesProvider != null)
                 {
-                    _preferencesProvider.setDesiredState(_preferencesProvider.getActualState(), State.STOPPED);
+                    _preferencesProvider.setDesiredState(_preferencesProvider.getState(), State.STOPPED);
                 }
                 return true;
             }
@@ -350,7 +339,7 @@ public abstract class AuthenticationProv
 
     protected Collection<String> createSupportedAttributes(Collection<String> factoryAttributes)
     {
-        List<String> attributesNames = new ArrayList<String>(AVAILABLE_ATTRIBUTES);
+        List<String> attributesNames = new ArrayList<String>(Attribute.getAttributeNames(AuthenticationProvider.class));
         if (factoryAttributes != null)
         {
             attributesNames.addAll(factoryAttributes);
@@ -449,7 +438,7 @@ public abstract class AuthenticationProv
         throw new IllegalArgumentException("Cannot create child of class " + childClass.getSimpleName());
     }
 
-    public static class SimpleAuthenticationProviderAdapter extends AuthenticationProviderAdapter<AuthenticationManager>
+    public static class SimpleAuthenticationProviderAdapter extends AuthenticationProviderAdapter<SimpleAuthenticationProviderAdapter,AuthenticationManager>
     {
 
         public SimpleAuthenticationProviderAdapter(
@@ -460,8 +449,8 @@ public abstract class AuthenticationProv
     }
 
     public static class PrincipalDatabaseAuthenticationManagerAdapter
-            extends AuthenticationProviderAdapter<PrincipalDatabaseAuthenticationManager>
-            implements PasswordCredentialManagingAuthenticationProvider
+            extends AuthenticationProviderAdapter<PrincipalDatabaseAuthenticationManagerAdapter, PrincipalDatabaseAuthenticationManager>
+            implements PasswordCredentialManagingAuthenticationProvider<PrincipalDatabaseAuthenticationManagerAdapter>
     {
         public PrincipalDatabaseAuthenticationManagerAdapter(
                 UUID id, Broker broker, PrincipalDatabaseAuthenticationManager authManager, Map<String, Object> attributes, Collection<String> attributeNames)
@@ -592,7 +581,7 @@ public abstract class AuthenticationProv
             super.childRemoved(child);
         }
 
-        private class PrincipalAdapter extends AbstractAdapter implements User
+        private class PrincipalAdapter extends AbstractConfiguredObject<PrincipalAdapter> implements User<PrincipalAdapter>
         {
             private final Principal _user;
 
@@ -605,6 +594,12 @@ public abstract class AuthenticationProv
             }
 
             @Override
+            public String getPassword()
+            {
+                return (String)getAttribute(PASSWORD);
+            }
+
+            @Override
             public void setPassword(String password)
             {
                 try
@@ -631,7 +626,7 @@ public abstract class AuthenticationProv
             }
 
             @Override
-            public State getActualState()
+            public State getState()
             {
                 return State.ACTIVE;
             }

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java Sun Feb 23 18:38:07 2014
@@ -60,7 +60,7 @@ public class AuthenticationProviderFacto
      */
     public AuthenticationProvider create(UUID id, Broker broker, Map<String, Object> attributes)
     {
-        AuthenticationProviderAdapter<?> provider = createAuthenticationProvider(id, broker, attributes);
+        AuthenticationProviderAdapter provider = createAuthenticationProvider(id, broker, attributes);
         provider.getAuthManager().onCreate();
         return provider;
     }
@@ -76,14 +76,14 @@ public class AuthenticationProviderFacto
         return createAuthenticationProvider(id, broker, attributes);
     }
 
-    private AuthenticationProviderAdapter<?> createAuthenticationProvider(UUID id, Broker broker, Map<String, Object> attributes)
+    private AuthenticationProviderAdapter createAuthenticationProvider(UUID id, Broker broker, Map<String, Object> attributes)
     {
         for (AuthenticationManagerFactory factory : _factories)
         {
             AuthenticationManager manager = factory.createInstance(broker, attributes);
             if (manager != null)
             {
-                AuthenticationProviderAdapter<?> authenticationProvider;
+                AuthenticationProviderAdapter authenticationProvider;
                 if (manager instanceof PrincipalDatabaseAuthenticationManager)
                 {
                     authenticationProvider = new PrincipalDatabaseAuthenticationManagerAdapter(id, broker,

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BindingAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BindingAdapter.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BindingAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BindingAdapter.java Sun Feb 23 18:38:07 2014
@@ -26,16 +26,9 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.qpid.server.model.Binding;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.Exchange;
-import org.apache.qpid.server.model.IllegalStateTransitionException;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.Statistics;
+import org.apache.qpid.server.model.*;
 
-final class BindingAdapter extends AbstractAdapter implements Binding
+final class BindingAdapter extends AbstractConfiguredObject<BindingAdapter> implements Binding<BindingAdapter>
 {
     private final org.apache.qpid.server.binding.Binding _binding;
     private Statistics _statistics = NoStatistics.getInstance();
@@ -76,7 +69,7 @@ final class BindingAdapter extends Abstr
         return null;  //TODO
     }
 
-    public State getActualState()
+    public State getState()
     {
         return null;  //TODO
     }
@@ -195,7 +188,7 @@ final class BindingAdapter extends Abstr
     @Override
     public Collection<String> getAttributeNames()
     {
-        return Binding.AVAILABLE_ATTRIBUTES;
+        return Attribute.getAttributeNames(Binding.class);
     }
 
     @Override

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=1571054&r1=1571053&r2=1571054&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 Sun Feb 23 18:38:07 2014
@@ -25,7 +25,6 @@ import java.net.InetSocketAddress;
 import java.net.SocketAddress;
 import java.security.AccessControlException;
 import java.security.PrivilegedAction;
-import java.security.PrivilegedExceptionAction;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -45,22 +44,7 @@ import org.apache.qpid.server.logging.Ro
 import org.apache.qpid.server.logging.actors.BrokerActor;
 import org.apache.qpid.server.logging.actors.CurrentActor;
 import org.apache.qpid.server.logging.messages.BrokerMessages;
-import org.apache.qpid.server.model.AccessControlProvider;
-import org.apache.qpid.server.model.AuthenticationProvider;
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfigurationChangeListener;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.GroupProvider;
-import org.apache.qpid.server.model.KeyStore;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.model.Model;
-import org.apache.qpid.server.model.Plugin;
-import org.apache.qpid.server.model.Port;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.Statistics;
-import org.apache.qpid.server.model.TrustStore;
-import org.apache.qpid.server.model.UUIDGenerator;
-import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.model.*;
 import org.apache.qpid.server.model.adapter.AuthenticationProviderAdapter.SimpleAuthenticationProviderAdapter;
 import org.apache.qpid.server.plugin.PreferencesProviderFactory;
 import org.apache.qpid.server.plugin.VirtualHostFactory;
@@ -77,7 +61,7 @@ import org.apache.qpid.util.SystemUtils;
 
 import javax.security.auth.Subject;
 
-public class BrokerAdapter extends AbstractAdapter implements Broker, ConfigurationChangeListener
+public class BrokerAdapter<X extends Broker<X>> extends AbstractConfiguredObject<X> implements Broker<X>, ConfigurationChangeListener
 {
     private static final Logger LOGGER = Logger.getLogger(BrokerAdapter.class);
 
@@ -171,15 +155,15 @@ public class BrokerAdapter extends Abstr
     private final RootMessageLogger _rootMessageLogger;
     private StatisticsAdapter _statistics;
 
-    private final Map<String, VirtualHost> _vhostAdapters = new HashMap<String, VirtualHost>();
-    private final Map<UUID, Port> _portAdapters = new HashMap<UUID, Port>();
+    private final Map<String, VirtualHost<?>> _vhostAdapters = new HashMap<String, VirtualHost<?>>();
+    private final Map<UUID, Port<?>> _portAdapters = new HashMap<UUID, Port<?>>();
     private final Map<Port, Integer> _stillInUsePortNumbers = new HashMap<Port, Integer>();
-    private final Map<UUID, AuthenticationProvider> _authenticationProviders = new HashMap<UUID, AuthenticationProvider>();
-    private final Map<String, GroupProvider> _groupProviders = new HashMap<String, GroupProvider>();
-    private final Map<UUID, ConfiguredObject> _plugins = new HashMap<UUID, ConfiguredObject>();
-    private final Map<String, KeyStore> _keyStores = new HashMap<String, KeyStore>();
-    private final Map<String, TrustStore> _trustStores = new HashMap<String, TrustStore>();
-    private final Map<UUID, AccessControlProvider> _accessControlProviders = new HashMap<UUID, AccessControlProvider>();
+    private final Map<UUID, AuthenticationProvider<?>> _authenticationProviders = new HashMap<UUID, AuthenticationProvider<?>>();
+    private final Map<String, GroupProvider<?>> _groupProviders = new HashMap<String, GroupProvider<?>>();
+    private final Map<UUID, ConfiguredObject<?>> _plugins = new HashMap<UUID, ConfiguredObject<?>>();
+    private final Map<String, KeyStore<?>> _keyStores = new HashMap<String, KeyStore<?>>();
+    private final Map<String, TrustStore<?>> _trustStores = new HashMap<String, TrustStore<?>>();
+    private final Map<UUID, AccessControlProvider<?>> _accessControlProviders = new HashMap<UUID, AccessControlProvider<?>>();
 
     private final GroupProviderFactory _groupProviderFactory;
     private final AuthenticationProviderFactory _authenticationProviderFactory;
@@ -191,7 +175,7 @@ public class BrokerAdapter extends Abstr
     private Collection<String> _supportedBrokerStoreTypes;
     private final ConfigurationEntryStore _brokerStore;
 
-    private AuthenticationProvider _managementAuthenticationProvider;
+    private AuthenticationProvider<?> _managementAuthenticationProvider;
     private BrokerOptions _brokerOptions;
 
     public BrokerAdapter(UUID id, Map<String, Object> attributes, StatisticsGatherer statisticsGatherer, VirtualHostRegistry virtualHostRegistry,
@@ -217,45 +201,241 @@ public class BrokerAdapter extends Abstr
         if (_brokerOptions.isManagementMode())
         {
             AuthenticationManager authManager = new SimpleAuthenticationManager(BrokerOptions.MANAGEMENT_MODE_USER_NAME, _brokerOptions.getManagementModePassword());
-            AuthenticationProvider authenticationProvider = new SimpleAuthenticationProviderAdapter(UUID.randomUUID(), this,
+            _managementAuthenticationProvider = new SimpleAuthenticationProviderAdapter(UUID.randomUUID(), this,
                     authManager, Collections.<String, Object> emptyMap(), Collections.<String> emptySet());
-            _managementAuthenticationProvider = authenticationProvider;
         }
     }
 
-    public Collection<VirtualHost> getVirtualHosts()
+    @Override
+    public String getBuildVersion()
+    {
+        return (String) getAttribute(BUILD_VERSION);
+    }
+
+    @Override
+    public String getOperatingSystem()
+    {
+        return (String) getAttribute(OPERATING_SYSTEM);
+    }
+
+    @Override
+    public String getPlatform()
+    {
+        return (String) getAttribute(PLATFORM);
+    }
+
+    @Override
+    public String getProcessPid()
+    {
+        return (String) getAttribute(PROCESS_PID);
+    }
+
+    @Override
+    public String getProductVersion()
+    {
+        return (String) getAttribute(PRODUCT_VERSION);
+    }
+
+    @Override
+    public Collection<String> getSupportedBrokerStoreTypes()
+    {
+        return _supportedBrokerStoreTypes;
+    }
+
+    @Override
+    public Collection<String> getSupportedVirtualHostStoreTypes()
+    {
+        return _supportedVirtualHostStoreTypes;
+    }
+
+    @Override
+    public Collection<String> getSupportedAuthenticationProviders()
+    {
+        return _authenticationProviderFactory.getSupportedAuthenticationProviders();
+    }
+
+    @Override
+    public Collection<String> getSupportedPreferencesProviderTypes()
+    {
+        return PreferencesProviderFactory.FACTORIES.getDescriptiveTypes();
+    }
+
+    @Override
+    public String getDefaultVirtualHost()
+    {
+        return (String) getAttribute(DEFAULT_VIRTUAL_HOST);
+    }
+
+    @Override
+    public int getQueue_alertThresholdMessageAge()
+    {
+        return (Integer) getAttribute(QUEUE_ALERT_THRESHOLD_MESSAGE_AGE);
+    }
+
+    @Override
+    public long getQueue_alertThresholdQueueDepthMessages()
+    {
+        return (Long) getAttribute(QUEUE_ALERT_THRESHOLD_QUEUE_DEPTH_MESSAGES);
+    }
+
+    @Override
+    public long getQueue_alertThresholdQueueDepthBytes()
+    {
+        return (Long) getAttribute(QUEUE_ALERT_THRESHOLD_QUEUE_DEPTH_BYTES);
+    }
+
+    @Override
+    public long getQueue_alertThresholdMessageSize()
+    {
+        return (Long) getAttribute(QUEUE_ALERT_THRESHOLD_MESSAGE_SIZE);
+    }
+
+    @Override
+    public long getQueue_alertRepeatGap()
+    {
+        return (Long) getAttribute(QUEUE_ALERT_REPEAT_GAP);
+    }
+
+    @Override
+    public long getQueue_flowControlSizeBytes()
+    {
+        return (Long) getAttribute(QUEUE_FLOW_CONTROL_SIZE_BYTES);
+    }
+
+    @Override
+    public long getQueue_flowResumeSizeBytes()
+    {
+        return (Long) getAttribute(QUEUE_FLOW_CONTROL_RESUME_SIZE_BYTES);
+    }
+
+    @Override
+    public int getQueue_maximumDeliveryAttempts()
+    {
+        return (Integer) getAttribute(QUEUE_MAXIMUM_DELIVERY_ATTEMPTS);
+    }
+
+    @Override
+    public boolean isQueue_deadLetterQueueEnabled()
+    {
+        return (Boolean) getAttribute(QUEUE_DEAD_LETTER_QUEUE_ENABLED);
+    }
+
+    @Override
+    public long getVirtualhost_housekeepingCheckPeriod()
+    {
+        return (Long) getAttribute(VIRTUALHOST_HOUSEKEEPING_CHECK_PERIOD);
+    }
+
+    @Override
+    public int getConnection_sessionCountLimit()
+    {
+        return (Integer) getAttribute(CONNECTION_SESSION_COUNT_LIMIT);
+    }
+
+    @Override
+    public int getConnection_heartBeatDelay()
+    {
+        return (Integer) getAttribute(CONNECTION_HEART_BEAT_DELAY);
+    }
+
+    @Override
+    public boolean getConnection_closeWhenNoRoute()
+    {
+        return (Boolean) getAttribute(CONNECTION_CLOSE_WHEN_NO_ROUTE);
+    }
+
+    @Override
+    public int getStatisticsReportingPeriod()
+    {
+        return (Integer) getAttribute(STATISTICS_REPORTING_PERIOD);
+    }
+
+    @Override
+    public boolean getStatisticsReportingResetEnabled()
+    {
+        return (Boolean) getAttribute(STATISTICS_REPORTING_RESET_ENABLED);
+    }
+
+    @Override
+    public String getStoreType()
+    {
+        return _brokerStore.getType();
+    }
+
+    @Override
+    public int getStoreVersion()
+    {
+        return _brokerStore.getVersion();
+    }
+
+    @Override
+    public String getStorePath()
+    {
+        return _brokerStore.getStoreLocation();
+    }
+
+    @Override
+    public String getModelVersion()
+    {
+        return Model.MODEL_VERSION;
+    }
+
+    @Override
+    public long getVirtualhost_storeTransactionIdleTimeoutClose()
+    {
+        return (Long) getAttribute(VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE);
+    }
+
+    @Override
+    public long getVirtualhost_storeTransactionIdleTimeoutWarn()
+    {
+        return (Long) getAttribute(VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_WARN);
+    }
+
+    @Override
+    public long getVirtualhost_storeTransactionOpenTimeoutClose()
+    {
+        return (Long) getAttribute(VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE);
+    }
+
+    @Override
+    public long getVirtualhost_storeTransactionOpenTimeoutWarn()
+    {
+        return (Long) getAttribute(VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_WARN);
+    }
+
+    public Collection<VirtualHost<?>> getVirtualHosts()
     {
         synchronized(_vhostAdapters)
         {
-            return new ArrayList<VirtualHost>(_vhostAdapters.values());
+            return new ArrayList<VirtualHost<?>>(_vhostAdapters.values());
         }
     }
 
-    public Collection<Port> getPorts()
+    public Collection<Port<?>> getPorts()
     {
         synchronized (_portAdapters)
         {
-            final ArrayList<Port> ports = new ArrayList<Port>(_portAdapters.values());
-            return ports;
+            return new ArrayList<Port<?>>(_portAdapters.values());
         }
     }
 
-    public Collection<AuthenticationProvider> getAuthenticationProviders()
+    public Collection<AuthenticationProvider<?>> getAuthenticationProviders()
     {
         synchronized (_authenticationProviders)
         {
-            return new ArrayList<AuthenticationProvider>(_authenticationProviders.values());
+            return new ArrayList<AuthenticationProvider<?>>(_authenticationProviders.values());
         }
     }
 
-    public AuthenticationProvider findAuthenticationProviderByName(String authenticationProviderName)
+    public AuthenticationProvider<?> findAuthenticationProviderByName(String authenticationProviderName)
     {
         if (isManagementMode())
         {
             return _managementAuthenticationProvider;
         }
-        Collection<AuthenticationProvider> providers = getAuthenticationProviders();
-        for (AuthenticationProvider authenticationProvider : providers)
+        Collection<AuthenticationProvider<?>> providers = getAuthenticationProviders();
+        for (AuthenticationProvider<?> authenticationProvider : providers)
         {
             if (authenticationProvider.getName().equals(authenticationProviderName))
             {
@@ -265,7 +445,7 @@ public class BrokerAdapter extends Abstr
         return null;
     }
 
-    public KeyStore findKeyStoreByName(String keyStoreName)
+    public KeyStore<?> findKeyStoreByName(String keyStoreName)
     {
         synchronized(_keyStores)
         {
@@ -273,7 +453,7 @@ public class BrokerAdapter extends Abstr
         }
     }
 
-    public TrustStore findTrustStoreByName(String trustStoreName)
+    public TrustStore<?> findTrustStoreByName(String trustStoreName)
     {
         synchronized(_trustStores)
         {
@@ -282,13 +462,11 @@ public class BrokerAdapter extends Abstr
     }
 
     @Override
-    public Collection<GroupProvider> getGroupProviders()
+    public Collection<GroupProvider<?>> getGroupProviders()
     {
         synchronized (_groupProviders)
         {
-            final ArrayList<GroupProvider> groupManagers =
-                    new ArrayList<GroupProvider>(_groupProviders.values());
-            return groupManagers;
+            return new ArrayList<GroupProvider<?>>(_groupProviders.values());
         }
     }
 
@@ -335,7 +513,7 @@ public class BrokerAdapter extends Abstr
     }
 
 
-    public State getActualState()
+    public State getState()
     {
         return null;  //TODO
     }
@@ -462,7 +640,7 @@ public class BrokerAdapter extends Abstr
      */
     private Port createPort(Map<String, Object> attributes)
     {
-        Port port = _portFactory.createPort(UUID.randomUUID(), this, attributes);
+        Port<?> port = _portFactory.createPort(UUID.randomUUID(), this, attributes);
         addPort(port);
 
         //1. AMQP ports are disabled during ManagementMode.
@@ -477,7 +655,7 @@ public class BrokerAdapter extends Abstr
         return port;
     }
 
-    private void addPort(Port port)
+    private void addPort(Port<?> port)
     {
         synchronized (_portAdapters)
         {
@@ -485,19 +663,19 @@ public class BrokerAdapter extends Abstr
             String portName = port.getName();
             UUID portId = port.getId();
 
-            for(Port p : _portAdapters.values())
+            for(Port<?> p : _portAdapters.values())
             {
                 if(portNumber == p.getPort())
                 {
                     throw new IllegalConfigurationException("Can't add port " + portName + " because port number " + portNumber + " is already configured for port " + p.getName());
                 }
 
-                if(portName == p.getName())
+                if(portName.equals(p.getName()))
                 {
                     throw new IllegalConfigurationException("Can't add Port because one with name " + portName + " already exists");
                 }
 
-                if(portId == p.getId())
+                if(portId.equals(p.getId()))
                 {
                     throw new IllegalConfigurationException("Can't add Port because one with id " + portId + " already exists");
                 }
@@ -508,9 +686,9 @@ public class BrokerAdapter extends Abstr
         port.addChangeListener(this);
     }
 
-    private AccessControlProvider createAccessControlProvider(Map<String, Object> attributes)
+    private AccessControlProvider<?> createAccessControlProvider(Map<String, Object> attributes)
     {
-        AccessControlProvider accessControlProvider = null;
+        AccessControlProvider<?> accessControlProvider;
         synchronized (_accessControlProviders)
         {
             accessControlProvider = _accessControlProviderFactory.create(UUID.randomUUID(), this, attributes);
@@ -526,7 +704,7 @@ public class BrokerAdapter extends Abstr
     /**
      * @throws IllegalConfigurationException if an AuthenticationProvider with the same name already exists
      */
-    private void addAccessControlProvider(AccessControlProvider accessControlProvider)
+    private void addAccessControlProvider(AccessControlProvider<?> accessControlProvider)
     {
         String name = accessControlProvider.getName();
         synchronized (_authenticationProviders)
@@ -535,7 +713,7 @@ public class BrokerAdapter extends Abstr
             {
                 throw new IllegalConfigurationException("Can't add AccessControlProvider because one with id " + accessControlProvider.getId() + " already exists");
             }
-            for (AccessControlProvider provider : _accessControlProviders.values())
+            for (AccessControlProvider<?> provider : _accessControlProviders.values())
             {
                 if (provider.getName().equals(name))
                 {
@@ -549,9 +727,9 @@ public class BrokerAdapter extends Abstr
         accessControlProvider.addChangeListener(_securityManager);
     }
 
-    private boolean deleteAccessControlProvider(AccessControlProvider accessControlProvider)
+    private boolean deleteAccessControlProvider(AccessControlProvider<?> accessControlProvider)
     {
-        AccessControlProvider removedAccessControlProvider = null;
+        AccessControlProvider removedAccessControlProvider;
         synchronized (_accessControlProviders)
         {
             removedAccessControlProvider = _accessControlProviders.remove(accessControlProvider.getId());
@@ -568,7 +746,7 @@ public class BrokerAdapter extends Abstr
 
     private AuthenticationProvider createAuthenticationProvider(Map<String, Object> attributes)
     {
-        AuthenticationProvider authenticationProvider = _authenticationProviderFactory.create(UUID.randomUUID(), this, attributes);
+        AuthenticationProvider<?> authenticationProvider = _authenticationProviderFactory.create(UUID.randomUUID(), this, attributes);
         authenticationProvider.setDesiredState(State.INITIALISING, State.ACTIVE);
         addAuthenticationProvider(authenticationProvider);
         return authenticationProvider;
@@ -577,7 +755,7 @@ public class BrokerAdapter extends Abstr
     /**
      * @throws IllegalConfigurationException if an AuthenticationProvider with the same name already exists
      */
-    private void addAuthenticationProvider(AuthenticationProvider authenticationProvider)
+    private void addAuthenticationProvider(AuthenticationProvider<?> authenticationProvider)
     {
         String name = authenticationProvider.getName();
         synchronized (_authenticationProviders)
@@ -598,15 +776,15 @@ public class BrokerAdapter extends Abstr
         authenticationProvider.addChangeListener(this);
     }
 
-    private GroupProvider createGroupProvider(Map<String, Object> attributes)
+    private GroupProvider<?> createGroupProvider(Map<String, Object> attributes)
     {
-        GroupProvider groupProvider = _groupProviderFactory.create(UUID.randomUUID(), this, attributes);
+        GroupProvider<?> groupProvider = _groupProviderFactory.create(UUID.randomUUID(), this, attributes);
         groupProvider.setDesiredState(State.INITIALISING, State.ACTIVE);
         addGroupProvider(groupProvider);
         return groupProvider;
     }
 
-    private void addGroupProvider(GroupProvider groupProvider)
+    private void addGroupProvider(GroupProvider<?> groupProvider)
     {
         synchronized (_groupProviders)
         {
@@ -711,7 +889,7 @@ public class BrokerAdapter extends Abstr
     @Override
     public Collection<String> getAttributeNames()
     {
-        return AVAILABLE_ATTRIBUTES;
+        return Attribute.getAttributeNames(Broker.class);
     }
 
     @Override
@@ -786,7 +964,7 @@ public class BrokerAdapter extends Abstr
         {
             return _authenticationProviderFactory.getSupportedAuthenticationProviders();
         }
-        else if (SUPPORTED_PREFERENCES_PROVIDERS_TYPES.equals(name))
+        else if (SUPPORTED_PREFERENCES_PROVIDER_TYPES.equals(name))
         {
             return PreferencesProviderFactory.FACTORIES.getDescriptiveTypes();
         }
@@ -811,7 +989,7 @@ public class BrokerAdapter extends Abstr
 
     private boolean deletePort(State oldState, Port portAdapter)
     {
-        Port removedPort = null;
+        Port<?> removedPort;
         synchronized (_portAdapters)
         {
             removedPort = _portAdapters.remove(portAdapter.getId());
@@ -832,9 +1010,9 @@ public class BrokerAdapter extends Abstr
         return removedPort != null;
     }
 
-    private boolean deleteAuthenticationProvider(AuthenticationProvider authenticationProvider)
+    private boolean deleteAuthenticationProvider(AuthenticationProvider<?> authenticationProvider)
     {
-        AuthenticationProvider removedAuthenticationProvider = null;
+        AuthenticationProvider removedAuthenticationProvider;
         synchronized (_authenticationProviders)
         {
             removedAuthenticationProvider = _authenticationProviders.remove(authenticationProvider.getId());
@@ -848,7 +1026,7 @@ public class BrokerAdapter extends Abstr
         return removedAuthenticationProvider != null;
     }
 
-    private void addVirtualHost(VirtualHost virtualHost)
+    private void addVirtualHost(VirtualHost<?> virtualHost)
     {
         synchronized (_vhostAdapters)
         {
@@ -909,7 +1087,7 @@ public class BrokerAdapter extends Abstr
             Collection<? extends ConfiguredObject> adapters = configuredObjectMap.values();
             for (ConfiguredObject configuredObject : adapters)
             {
-                if (State.ACTIVE.equals(desiredState) && State.QUIESCED.equals(configuredObject.getActualState()))
+                if (State.ACTIVE.equals(desiredState) && State.QUIESCED.equals(configuredObject.getState()))
                 {
                     if (LOGGER.isDebugEnabled())
                     {
@@ -997,14 +1175,14 @@ public class BrokerAdapter extends Abstr
         {
             //Record all the originally used port numbers of active ports, to ensure that when
             //creating new ports we don't try to re-bind a port number that we are still using
-            if(attributeName == Port.PORT && object.getActualState() == State.ACTIVE)
+            if(Port.PORT.equals(attributeName) && object.getState() == State.ACTIVE)
             {
                 recordPreviouslyUsedPortNumberIfNecessary((Port) object, (Integer)oldAttributeValue);
             }
         }
     }
 
-    private void addPlugin(ConfiguredObject plugin)
+    private void addPlugin(ConfiguredObject<?> plugin)
     {
         synchronized(_plugins)
         {
@@ -1018,7 +1196,7 @@ public class BrokerAdapter extends Abstr
     }
 
 
-    private Collection<ConfiguredObject> getPlugins()
+    private Collection<ConfiguredObject<?>> getPlugins()
     {
         synchronized(_plugins)
         {
@@ -1104,12 +1282,12 @@ public class BrokerAdapter extends Abstr
     }
 
     @Override
-    public AuthenticationProvider getAuthenticationProvider(SocketAddress localAddress)
+    public AuthenticationProvider<?> getAuthenticationProvider(SocketAddress localAddress)
     {
         InetSocketAddress inetSocketAddress = (InetSocketAddress)localAddress;
         AuthenticationProvider provider = null;
-        Collection<Port> ports = getPorts();
-        for (Port p : ports)
+        Collection<Port<?>> ports = getPorts();
+        for (Port<?> p : ports)
         {
             if (inetSocketAddress.getPort() == p.getPort())
             {
@@ -1121,7 +1299,7 @@ public class BrokerAdapter extends Abstr
     }
 
     @Override
-    public Collection<KeyStore> getKeyStores()
+    public Collection<KeyStore<?>> getKeyStores()
     {
         synchronized(_keyStores)
         {
@@ -1130,7 +1308,7 @@ public class BrokerAdapter extends Abstr
     }
 
     @Override
-    public Collection<TrustStore> getTrustStores()
+    public Collection<TrustStore<?>> getTrustStores()
     {
         synchronized(_trustStores)
         {
@@ -1245,11 +1423,11 @@ public class BrokerAdapter extends Abstr
     }
 
     @Override
-    public Collection<AccessControlProvider> getAccessControlProviders()
+    public Collection<AccessControlProvider<?>> getAccessControlProviders()
     {
         synchronized (_accessControlProviders)
         {
-            return new ArrayList<AccessControlProvider>(_accessControlProviders.values());
+            return new ArrayList<AccessControlProvider<?>>(_accessControlProviders.values());
         }
     }
 

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=1571054&r1=1571053&r2=1571054&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 Sun Feb 23 18:38:07 2014
@@ -32,20 +32,13 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.qpid.protocol.AMQConstant;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.Connection;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.model.Port;
-import org.apache.qpid.server.model.Session;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.Statistics;
-import org.apache.qpid.server.model.UUIDGenerator;
+import org.apache.qpid.server.model.*;
 import org.apache.qpid.server.configuration.updater.TaskExecutor;
 import org.apache.qpid.server.protocol.AMQConnectionModel;
 import org.apache.qpid.server.protocol.AMQSessionModel;
 import org.apache.qpid.server.stats.StatisticsGatherer;
 
-final class ConnectionAdapter extends AbstractAdapter implements Connection
+final class ConnectionAdapter extends AbstractConfiguredObject<ConnectionAdapter> implements Connection<ConnectionAdapter>
 {
     private AMQConnectionModel _connection;
 
@@ -60,6 +53,73 @@ final class ConnectionAdapter extends Ab
         _statistics = new ConnectionStatisticsAdapter(conn);
     }
 
+    @Override
+    public String getClientId()
+    {
+        return (String) getAttribute(CLIENT_ID);
+    }
+
+    @Override
+    public String getClientVersion()
+    {
+        return (String) getAttribute(CLIENT_VERSION);
+    }
+
+    @Override
+    public boolean isIncoming()
+    {
+        return true;
+    }
+
+    @Override
+    public String getLocalAddress()
+    {
+        return (String)getAttribute(LOCAL_ADDRESS);
+    }
+
+    @Override
+    public String getPrincipal()
+    {
+        final Principal authorizedPrincipal = _connection.getAuthorizedPrincipal();
+        return authorizedPrincipal == null ? null : authorizedPrincipal.getName();
+    }
+
+    @Override
+    public String getRemoteAddress()
+    {
+        return _connection.getRemoteAddressString();
+    }
+
+    @Override
+    public String getRemoteProcessName()
+    {
+        return null;
+    }
+
+    @Override
+    public String getRemoteProcessPid()
+    {
+        return null;
+    }
+
+    @Override
+    public long getSessionCountLimit()
+    {
+        return _connection.getSessionCountLimit();
+    }
+
+    @Override
+    public Transport getTransport()
+    {
+        return _connection.getTransport();
+    }
+
+    @Override
+    public Port getPort()
+    {
+        return _connection.getPort();
+    }
+
     public Collection<Session> getSessions()
     {
         List<AMQSessionModel> actualSessions = _connection.getSessionModels();
@@ -124,7 +184,7 @@ final class ConnectionAdapter extends Ab
         return null;  //TODO
     }
 
-    public State getActualState()
+    public State getState()
     {
         return null;  //TODO
     }
@@ -230,8 +290,8 @@ final class ConnectionAdapter extends Ab
     @Override
     public Collection<String> getAttributeNames()
     {
-        final HashSet<String> attrNames = new HashSet<String>(super.getAttributeNames());
-        attrNames.addAll(Connection.AVAILABLE_ATTRIBUTES);
+        final HashSet<String> attrNames = new HashSet<String>(Attribute.getAttributeNames(Connection.class));
+
         return Collections.unmodifiableCollection(attrNames);
     }
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConsumerAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConsumerAdapter.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConsumerAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConsumerAdapter.java Sun Feb 23 18:38:07 2014
@@ -21,6 +21,8 @@
 package org.apache.qpid.server.model.adapter;
 
 import java.util.Map;
+
+import org.apache.qpid.server.model.Attribute;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.LifetimePolicy;
 import org.apache.qpid.server.model.State;
@@ -32,7 +34,7 @@ import java.security.AccessControlExcept
 import java.util.Collection;
 import java.util.Collections;
 
-public class ConsumerAdapter extends AbstractAdapter implements org.apache.qpid.server.model.Consumer
+public class ConsumerAdapter extends AbstractConfiguredObject<ConsumerAdapter> implements org.apache.qpid.server.model.Consumer<ConsumerAdapter>
 {
     private final Consumer _consumer;
     private final QueueAdapter _queue;
@@ -65,7 +67,7 @@ public class ConsumerAdapter extends Abs
         return null;  //TODO
     }
 
-    public State getActualState()
+    public State getState()
     {
         return null;  //TODO
     }
@@ -106,7 +108,7 @@ public class ConsumerAdapter extends Abs
     @Override
     public Collection<String> getAttributeNames()
     {
-        return org.apache.qpid.server.model.Consumer.AVAILABLE_ATTRIBUTES;
+        return Attribute.getAttributeNames(org.apache.qpid.server.model.Consumer.class);
     }
 
     @Override
@@ -184,6 +186,36 @@ public class ConsumerAdapter extends Abs
         throw new IllegalArgumentException();
     }
 
+    @Override
+    public String getDistributionMode()
+    {
+        return _consumer.acquires() ? "MOVE" : "COPY";
+    }
+
+    @Override
+    public String getSettlementMode()
+    {
+        return null;
+    }
+
+    @Override
+    public boolean isExclusive()
+    {
+        return false;
+    }
+
+    @Override
+    public boolean isNoLocal()
+    {
+        return false;
+    }
+
+    @Override
+    public String getSelector()
+    {
+        return null;
+    }
+
     private class ConsumerStatistics implements Statistics
     {
 

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java Sun Feb 23 18:38:07 2014
@@ -28,20 +28,13 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.qpid.server.binding.Binding;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.ConfiguredObjectFinder;
-import org.apache.qpid.server.model.Exchange;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.model.Publisher;
-import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.Statistics;
+import org.apache.qpid.server.model.*;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.util.MapValueConverter;
 import org.apache.qpid.server.virtualhost.ExchangeIsAlternateException;
 import org.apache.qpid.server.virtualhost.RequiredExchangeException;
 
-final class ExchangeAdapter extends AbstractAdapter implements Exchange, org.apache.qpid.server.exchange.Exchange.BindingListener
+final class ExchangeAdapter extends AbstractConfiguredObject<ExchangeAdapter> implements Exchange<ExchangeAdapter>, org.apache.qpid.server.exchange.Exchange.BindingListener
 {
 
     private final org.apache.qpid.server.exchange.Exchange _exchange;
@@ -83,7 +76,8 @@ final class ExchangeAdapter extends Abst
 
     }
 
-    public String getExchangeType()
+    @Override
+    public String getType()
     {
         return _exchange.getType().getType();
     }
@@ -171,7 +165,7 @@ final class ExchangeAdapter extends Abst
         return null;  //TODO
     }
 
-    public State getActualState()
+    public State getState()
     {
         return null;  //TODO
     }
@@ -341,7 +335,7 @@ final class ExchangeAdapter extends Abst
         }
         else if(TYPE.equals(name))
         {
-            return _exchange.getTypeName();
+            return getType();
         }
         return super.getAttribute(name);
     }
@@ -349,7 +343,7 @@ final class ExchangeAdapter extends Abst
     @Override
     public Collection<String> getAttributeNames()
     {
-        return AVAILABLE_ATTRIBUTES;
+        return Attribute.getAttributeNames(Exchange.class);
     }
 
     @Override
@@ -422,4 +416,10 @@ final class ExchangeAdapter extends Abst
             return null;  // TODO - Implement
         }
     }
+
+    @Override
+    public Exchange<?> getAlternateExchange()
+    {
+        return null;
+    }
 }

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=1571054&r1=1571053&r2=1571054&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 Sun Feb 23 18:38:07 2014
@@ -45,14 +45,7 @@ import java.util.concurrent.atomic.Atomi
 import org.apache.log4j.Logger;
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
 import org.apache.qpid.server.configuration.updater.TaskExecutor;
-import org.apache.qpid.server.model.AuthenticationProvider;
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.IllegalStateTransitionException;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.model.PreferencesProvider;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.Statistics;
+import org.apache.qpid.server.model.*;
 import org.apache.qpid.server.util.MapValueConverter;
 import org.codehaus.jackson.JsonParser;
 import org.codehaus.jackson.JsonProcessingException;
@@ -60,7 +53,7 @@ import org.codehaus.jackson.map.ObjectMa
 import org.codehaus.jackson.map.SerializationConfig;
 import org.codehaus.jackson.type.TypeReference;
 
-public class FileSystemPreferencesProvider extends AbstractAdapter implements PreferencesProvider
+public class FileSystemPreferencesProvider extends AbstractConfiguredObject<FileSystemPreferencesProvider> implements PreferencesProvider<FileSystemPreferencesProvider>
 {
     private static final Logger LOGGER = Logger.getLogger(FileSystemPreferencesProvider.class);
     public static String PATH = "path";
@@ -80,20 +73,14 @@ public class FileSystemPreferencesProvid
             put(TYPE, String.class);
     }});
 
-    @SuppressWarnings("serial")
-    private static Collection<String> AVAILABLE_ATTRIBUTES = Collections.unmodifiableList(new ArrayList<String>(
-            PreferencesProvider.AVAILABLE_ATTRIBUTES)
-    {{
-            add(PATH);
-    }});
-
-    private final AuthenticationProvider _authenticationProvider;
+    private final AuthenticationProvider<? extends AuthenticationProvider> _authenticationProvider;
     private AtomicReference<State> _state;
 
     private FileSystemPreferencesStore _store;
 
-    protected FileSystemPreferencesProvider(UUID id, Map<String, Object> attributes, AuthenticationProvider authenticationProvider,
-            TaskExecutor taskExecutor)
+    protected FileSystemPreferencesProvider(UUID id, Map<String, Object> attributes,
+                                            AuthenticationProvider<? extends AuthenticationProvider> authenticationProvider,
+                                            TaskExecutor taskExecutor)
     {
         super(id, DEFAULTS, MapValueConverter.convert(attributes, ATTRIBUTE_TYPES), taskExecutor);
         State state = MapValueConverter.getEnumAttribute(State.class, STATE, attributes, State.INITIALISING);
@@ -106,7 +93,7 @@ public class FileSystemPreferencesProvid
     @Override
     public Collection<String> getAttributeNames()
     {
-        return AVAILABLE_ATTRIBUTES;
+        return Attribute.getAttributeNames(FileSystemPreferencesProvider.class);
     }
 
     @Override
@@ -115,6 +102,12 @@ public class FileSystemPreferencesProvid
         return (String) getAttribute(AuthenticationProvider.NAME);
     }
 
+    @ManagedAttribute
+    public String getPath()
+    {
+        return (String) getAttribute(PATH);
+    }
+
     @Override
     public String setName(String currentName, String desiredName) throws IllegalStateException, AccessControlException
     {
@@ -122,7 +115,7 @@ public class FileSystemPreferencesProvid
     }
 
     @Override
-    public State getActualState()
+    public State getState()
     {
         return _state.get();
     }
@@ -198,7 +191,7 @@ public class FileSystemPreferencesProvid
         }
         else if (STATE.equals(name))
         {
-            return getActualState();
+            return getState();
         }
         else if (TIME_TO_LIVE.equals(name))
         {
@@ -249,7 +242,7 @@ public class FileSystemPreferencesProvid
                 catch (RuntimeException e)
                 {
                     _state.compareAndSet(State.ACTIVE, State.ERRORED);
-                    Broker broker = getAuthenticationProvider().getParent(Broker.class);
+                    Broker<?> broker = getAuthenticationProvider().getParent(Broker.class);
                     if (broker != null && broker.isManagementMode())
                     {
                         LOGGER.warn("Failed to activate preferences provider: " + getName(), e);
@@ -313,7 +306,7 @@ public class FileSystemPreferencesProvid
         return _store.listUserIDs();
     }
 
-    public AuthenticationProvider getAuthenticationProvider()
+    public AuthenticationProvider<? extends AuthenticationProvider> getAuthenticationProvider()
     {
         return _authenticationProvider;
     }
@@ -378,7 +371,7 @@ public class FileSystemPreferencesProvid
             throw new IllegalConfigurationException("Changing the type of preferences provider is not supported");
         }
         String path = (String) attributes.get(PATH);
-        if (path == null || path.equals("") || !(path instanceof String))
+        if (path == null || path.equals(""))
         {
             throw new IllegalConfigurationException("Path to preferences file is not specified");
         }

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactory.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactory.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactory.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactory.java Sun Feb 23 18:38:07 2014
@@ -40,9 +40,9 @@ public class FileSystemPreferencesProvid
 
     @Override
     public PreferencesProvider createInstance(UUID id, Map<String, Object> attributes,
-            AuthenticationProvider authenticationProvider)
+            AuthenticationProvider<? extends AuthenticationProvider> authenticationProvider)
     {
-        Broker broker = authenticationProvider.getParent(Broker.class);
+        Broker<?> broker = authenticationProvider.getParent(Broker.class);
         FileSystemPreferencesProvider provider = new FileSystemPreferencesProvider(id, attributes, authenticationProvider, broker.getTaskExecutor());
 
         // create store if such does not exist

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/GroupProviderAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/GroupProviderAdapter.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/GroupProviderAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/GroupProviderAdapter.java Sun Feb 23 18:38:07 2014
@@ -31,24 +31,14 @@ import java.util.UUID;
 import java.util.concurrent.atomic.AtomicReference;
 
 import org.apache.log4j.Logger;
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.Group;
-import org.apache.qpid.server.model.GroupMember;
-import org.apache.qpid.server.model.GroupProvider;
-import org.apache.qpid.server.model.IllegalStateTransitionException;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.Statistics;
-import org.apache.qpid.server.model.UUIDGenerator;
+import org.apache.qpid.server.model.*;
 import org.apache.qpid.server.configuration.updater.TaskExecutor;
 import org.apache.qpid.server.security.access.Operation;
 import org.apache.qpid.server.security.group.GroupManager;
 import org.apache.qpid.server.security.SecurityManager;
 import org.apache.qpid.server.util.MapValueConverter;
 
-public class GroupProviderAdapter extends AbstractAdapter implements
-        GroupProvider
+public class GroupProviderAdapter extends AbstractConfiguredObject<GroupProviderAdapter> implements GroupProvider<GroupProviderAdapter>
 {
     private static Logger LOGGER = Logger.getLogger(GroupProviderAdapter.class);
 
@@ -87,7 +77,7 @@ public class GroupProviderAdapter extend
 
     protected Collection<String> createSupportedAttributes(Collection<String> factoryAttributes)
     {
-        List<String> attributesNames = new ArrayList<String>(AVAILABLE_ATTRIBUTES);
+        List<String> attributesNames = new ArrayList<String>(Attribute.getAttributeNames(GroupProvider.class));
         if (factoryAttributes != null)
         {
             attributesNames.addAll(factoryAttributes);
@@ -110,7 +100,7 @@ public class GroupProviderAdapter extend
     }
 
     @Override
-    public State getActualState()
+    public State getState()
     {
         return _state.get();
     }
@@ -188,7 +178,7 @@ public class GroupProviderAdapter extend
         }
         else if (STATE.equals(name))
         {
-            return getActualState();
+            return getState();
         }
         else if (TIME_TO_LIVE.equals(name))
         {
@@ -372,7 +362,7 @@ public class GroupProviderAdapter extend
         throw new UnsupportedOperationException("Changing attributes on group providers is not supported.");
     }
 
-    private class GroupAdapter extends AbstractAdapter implements Group
+    private class GroupAdapter extends AbstractConfiguredObject<GroupAdapter> implements Group<GroupAdapter>
     {
         private final String _group;
 
@@ -397,7 +387,7 @@ public class GroupProviderAdapter extend
         }
 
         @Override
-        public State getActualState()
+        public State getState()
         {
             return State.ACTIVE;
         }
@@ -496,7 +486,7 @@ public class GroupProviderAdapter extend
         @Override
         public Collection<String> getAttributeNames()
         {
-            return Group.AVAILABLE_ATTRIBUTES;
+            return Attribute.getAttributeNames(Group.class);
         }
 
         @Override
@@ -541,8 +531,8 @@ public class GroupProviderAdapter extend
             throw new UnsupportedOperationException("Changing attributes on group is not supported.");
         }
 
-        private class GroupMemberAdapter extends AbstractAdapter implements
-                GroupMember
+        private class GroupMemberAdapter extends AbstractConfiguredObject<GroupMemberAdapter> implements
+                GroupMember<GroupMemberAdapter>
         {
             private String _memberName;
 
@@ -555,7 +545,7 @@ public class GroupProviderAdapter extend
             @Override
             public Collection<String> getAttributeNames()
             {
-                return GroupMember.AVAILABLE_ATTRIBUTES;
+                return Attribute.getAttributeNames(GroupMember.class);
             }
 
             @Override
@@ -586,7 +576,7 @@ public class GroupProviderAdapter extend
             }
 
             @Override
-            public State getActualState()
+            public State getState()
             {
                 return null;
             }

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/KeyStoreAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/KeyStoreAdapter.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/KeyStoreAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/KeyStoreAdapter.java Sun Feb 23 18:38:07 2014
@@ -38,6 +38,7 @@ import javax.net.ssl.KeyManager;
 import javax.net.ssl.KeyManagerFactory;
 
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.model.Attribute;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.IntegrityViolationException;
 import org.apache.qpid.server.model.KeyStore;
@@ -49,34 +50,34 @@ import org.apache.qpid.server.util.Serve
 import org.apache.qpid.transport.network.security.ssl.QpidClientX509KeyManager;
 import org.apache.qpid.transport.network.security.ssl.SSLUtil;
 
-public class KeyStoreAdapter extends AbstractKeyStoreAdapter implements KeyStore
+public class KeyStoreAdapter extends AbstractKeyStoreAdapter<KeyStoreAdapter> implements KeyStore<KeyStoreAdapter>
 {
     @SuppressWarnings("serial")
     public static final Map<String, Type> ATTRIBUTE_TYPES = Collections.unmodifiableMap(new HashMap<String, Type>(){{
         put(NAME, String.class);
         put(PATH, String.class);
         put(PASSWORD, String.class);
-        put(TYPE, String.class);
+        put(KEY_STORE_TYPE, String.class);
         put(CERTIFICATE_ALIAS, String.class);
         put(KEY_MANAGER_FACTORY_ALGORITHM, String.class);
     }});
 
     @SuppressWarnings("serial")
     public static final Map<String, Object> DEFAULTS = Collections.unmodifiableMap(new HashMap<String, Object>(){{
-        put(KeyStore.TYPE, DEFAULT_KEYSTORE_TYPE);
+        put(KeyStore.KEY_STORE_TYPE, DEFAULT_KEYSTORE_TYPE);
         put(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM, KeyManagerFactory.getDefaultAlgorithm());
     }});
 
-    private Broker _broker;
+    private Broker<?> _broker;
 
-    public KeyStoreAdapter(UUID id, Broker broker, Map<String, Object> attributes)
+    public KeyStoreAdapter(UUID id, Broker<?> broker, Map<String, Object> attributes)
     {
         super(id, broker, DEFAULTS, MapValueConverter.convert(attributes, ATTRIBUTE_TYPES));
         _broker = broker;
 
         String keyStorePath = (String)getAttribute(KeyStore.PATH);
         String keyStorePassword = getPassword();
-        String keyStoreType = (String)getAttribute(KeyStore.TYPE);
+        String keyStoreType = (String)getAttribute(KeyStore.KEY_STORE_TYPE);
         String keyManagerFactoryAlgorithm = (String)getAttribute(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM);
         String certAlias = (String)getAttribute(KeyStore.CERTIFICATE_ALIAS);
 
@@ -85,9 +86,15 @@ public class KeyStoreAdapter extends Abs
     }
 
     @Override
+    public String getDescription()
+    {
+        return null;
+    }
+
+    @Override
     public Collection<String> getAttributeNames()
     {
-        return AVAILABLE_ATTRIBUTES;
+        return Attribute.getAttributeNames(KeyStore.class);
     }
 
     @Override
@@ -162,7 +169,7 @@ public class KeyStoreAdapter extends Abs
 
         String keyStorePath = (String)merged.get(KeyStore.PATH);
         String keyStorePassword = (String) merged.get(KeyStore.PASSWORD);
-        String keyStoreType = (String)merged.get(KeyStore.TYPE);
+        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);
 
@@ -176,7 +183,7 @@ public class KeyStoreAdapter extends Abs
                                             String keyStorePassword, String alias,
                                             String keyManagerFactoryAlgorithm)
     {
-        java.security.KeyStore keyStore = null;
+        java.security.KeyStore keyStore;
         try
         {
             keyStore = SSLUtil.getInitializedKeyStore(keyStorePath, keyStorePassword, type);
@@ -188,7 +195,7 @@ public class KeyStoreAdapter extends Abs
 
         if (alias != null)
         {
-            Certificate cert = null;
+            Certificate cert;
             try
             {
                 cert = keyStore.getCertificate(alias);
@@ -216,11 +223,35 @@ public class KeyStoreAdapter extends Abs
         }
     }
 
+    @Override
+    public String getPath()
+    {
+        return (String) getAttribute(PATH);
+    }
+
+    @Override
+    public String getCertificateAlias()
+    {
+        return (String) getAttribute(CERTIFICATE_ALIAS);
+    }
+
+    @Override
+    public String getKeyManagerFactoryAlgorithm()
+    {
+        return (String) getAttribute(KEY_MANAGER_FACTORY_ALGORITHM);
+    }
+
+    @Override
+    public String getKeyStoreType()
+    {
+        return (String) getAttribute(KEY_STORE_TYPE);
+    }
+
     public KeyManager[] getKeyManagers() throws GeneralSecurityException
     {
         String keyStorePath = (String)getAttribute(KeyStore.PATH);
         String keyStorePassword = getPassword();
-        String keyStoreType = (String)getAttribute(KeyStore.TYPE);
+        String keyStoreType = (String)getAttribute(KeyStore.KEY_STORE_TYPE);
         String keyManagerFactoryAlgorithm = (String)getAttribute(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM);
         String certAlias = (String)getAttribute(KeyStore.CERTIFICATE_ALIAS);
 

Added: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/NonAmqpPortAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/NonAmqpPortAdapter.java?rev=1571054&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/NonAmqpPortAdapter.java (added)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/NonAmqpPortAdapter.java Sun Feb 23 18:38:07 2014
@@ -0,0 +1,39 @@
+/*
+ *
+ * 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.adapter;
+
+import org.apache.qpid.server.configuration.updater.TaskExecutor;
+import org.apache.qpid.server.model.Broker;
+
+import java.util.Map;
+import java.util.UUID;
+
+public class NonAmqpPortAdapter extends PortAdapter<NonAmqpPortAdapter>
+{
+    public NonAmqpPortAdapter(final UUID id,
+                              final Broker<?> broker,
+                              final Map<String, Object> attributes,
+                              final Map<String, Object> defaults,
+                              final TaskExecutor taskExecutor)
+    {
+        super(id, broker, attributes, defaults, taskExecutor);
+    }
+}



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