summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-02-23 18:38:07 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-02-23 18:38:07 +0000
commit3f605ec90f464d82213bdbaec9341c847b188326 (patch)
tree50316209cee2057e23e12ba781774b57dcdd66e1
parent5f16207bf77afd5caed1ba9329da7a32f1b0c718 (diff)
downloadqpid-python-3f605ec90f464d82213bdbaec9341c847b188326.tar.gz
QPID-5579 : [Java Broker] build attribute meta data the same way for REST API and AMQP Management
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1571054 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/StoreUpgrader.java52
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AccessControlProvider.java16
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AmqpManagement.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Attribute.java538
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java17
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Binding.java22
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java175
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java48
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java82
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Consumer.java33
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/EventType.java60
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Exchange.java36
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Group.java21
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupMember.java17
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupProvider.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java49
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java (renamed from qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Event.java)11
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Model.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PasswordCredentialManagingAuthenticationProvider.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java17
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Port.java63
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PreferencesProvider.java3
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Publisher.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java136
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Session.java19
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java37
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/User.java6
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java140
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostAlias.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractConfiguredObject.java (renamed from qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java)58
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractKeyStoreAdapter.java6
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java9
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderAdapter.java16
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java36
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java47
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java6
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BindingAdapter.java17
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java336
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java84
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConsumerAdapter.java38
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java26
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java43
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactory.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/GroupProviderAdapter.java34
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/KeyStoreAdapter.java53
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/NonAmqpPortAdapter.java39
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java66
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java132
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java30
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/TrustStoreAdapter.java46
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java161
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/PreferencesProviderFactory.java2
-rwxr-xr-xqpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueArgumentsConverter.java3
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java2
-rwxr-xr-xqpid/java/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java94
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java4
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/KeyStoreRecovererTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/TrustStoreRecovererTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java6
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java8
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderTest.java10
-rw-r--r--qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java14
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java48
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java12
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java4
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java4
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java4
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java2
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java4
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java16
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java35
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js4
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js4
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js4
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addKeystore.js4
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/showKeyStore.html2
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/showTrustStore.html2
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java46
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java10
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/MBeanUtils.java4
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java4
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostMBean.java2
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBeanTest.java4
-rw-r--r--qpid/java/broker-plugins/websocket/src/main/java/org/apache/qpid/server/transport/websocket/WebSocketProvider.java4
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java218
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java8
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsTest.java12
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java12
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/ConnectionRestTest.java12
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/GroupProviderRestTest.java13
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java2
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PreferencesProviderRestTest.java11
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QueueRestTest.java15
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java3
99 files changed, 2359 insertions, 1228 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/StoreUpgrader.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/StoreUpgrader.java
index 1a5ef9adca..124584e99c 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/StoreUpgrader.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/StoreUpgrader.java
@@ -82,6 +82,58 @@ public abstract class StoreUpgrader
}
};
+
+ private final static StoreUpgrader UPGRADE_1_2 = new StoreUpgrader("1.2")
+ {
+ @Override
+ protected void doUpgrade(ConfigurationEntryStore store)
+ {
+ ConfigurationEntry root = store.getRootEntry();
+ Map<String, Collection<ConfigurationEntry>> children = root.getChildren();
+ Collection<ConfigurationEntry> changed = new HashSet<ConfigurationEntry>();
+ Collection<ConfigurationEntry> keyStores = children.get("KeyStore");
+ if(keyStores != null)
+ {
+ for(ConfigurationEntry keyStore : keyStores)
+ {
+ Map<String, Object> attributes = keyStore.getAttributes();
+ if(attributes.containsKey("type"))
+ {
+ attributes = new HashMap<String, Object>(attributes);
+ attributes.put("keyStoreType", attributes.remove("type"));
+
+ changed.add(new ConfigurationEntry(keyStore.getId(),keyStore.getType(),attributes,keyStore.getChildrenIds(),store));
+
+ }
+
+ }
+ }
+ Collection<ConfigurationEntry> trustStores = children.get("TrustStore");
+ if(trustStores != null)
+ {
+ for(ConfigurationEntry trustStore : trustStores)
+ {
+ Map<String, Object> attributes = trustStore.getAttributes();
+ if(attributes.containsKey("type"))
+ {
+ attributes = new HashMap<String, Object>(attributes);
+ attributes.put("trustStoreType", attributes.remove("type"));
+
+ changed.add(new ConfigurationEntry(trustStore.getId(),trustStore.getType(),attributes,trustStore.getChildrenIds(),store));
+
+ }
+
+ }
+ }
+ Map<String, Object> attributes = new HashMap<String, Object>(root.getAttributes());
+ attributes.put(Broker.MODEL_VERSION, "1.3");
+ changed.add(new ConfigurationEntry(root.getId(),root.getType(),attributes,root.getChildrenIds(),store));
+
+ store.save(changed.toArray(new ConfigurationEntry[changed.size()]));
+
+ }
+ };
+
private StoreUpgrader(String version)
{
_upgraders.put(version, this);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AccessControlProvider.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AccessControlProvider.java
index 20d0166c9d..711bcbfda9 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AccessControlProvider.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AccessControlProvider.java
@@ -22,10 +22,11 @@ package org.apache.qpid.server.model;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.UUID;
import org.apache.qpid.server.security.AccessControl;
-public interface AccessControlProvider extends ConfiguredObject
+public interface AccessControlProvider<X extends AccessControlProvider<X>> extends ConfiguredObject<X>
{
public static final String DESCRIPTION = "description";
public static final String STATE = "state";
@@ -36,19 +37,6 @@ public interface AccessControlProvider extends ConfiguredObject
public static final String UPDATED = "updated";
public static final String TYPE = "type";
- public static final Collection<String> AVAILABLE_ATTRIBUTES =
- Collections.unmodifiableList(
- Arrays.asList(ID,
- NAME,
- DESCRIPTION,
- STATE,
- DURABLE,
- LIFETIME_POLICY,
- TIME_TO_LIVE,
- CREATED,
- UPDATED,
- TYPE));
-
//retrieve the underlying AccessControl object
AccessControl getAccessControl();
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AmqpManagement.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AmqpManagement.java
index 43b77bfe1d..a7ef6e4e4e 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AmqpManagement.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AmqpManagement.java
@@ -27,8 +27,8 @@ import java.lang.annotation.RetentionPolicy;
public @interface AmqpManagement
{
- String[] attributes();
- String[] operations();
+ String[] attributes() default {};
+ String[] operations() default {};
boolean managesChildren() default false; // for objects that manage children, a management node needs to be created
boolean creatable() default true;
String defaultImplementation() default ""; // in this case the class/interface itself is to be used
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Attribute.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Attribute.java
index 4fccf47e0e..2a419585bd 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Attribute.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Attribute.java
@@ -21,12 +21,100 @@
package org.apache.qpid.server.model;
-public abstract class Attribute<C extends ConfiguredObject, T>
+import java.lang.reflect.Method;
+import java.util.*;
+
+public final class Attribute<C extends ConfiguredObject, T>
{
+ private static Map<Class<? extends ConfiguredObject>, Collection<Attribute<?,?>>> _allAttributes =
+ Collections.synchronizedMap(new HashMap<Class<? extends ConfiguredObject>, Collection<Attribute<?, ?>>>());
+
private final String _name;
- public Attribute(String name)
+ private final Class<T> _type;
+ private final Converter<T> _converter;
+ private final Method _getter;
+
+ private Attribute(Class<C> clazz, String name, Class<T> type, final Method getter)
{
_name = name;
+ _type = type;
+ _converter = getConverter(type);
+ _getter = getter;
+ addToAttributesSet(clazz, this);
+ }
+
+ private static <X> Converter<X> getConverter(final Class<X> type)
+ {
+ if(type == String.class)
+ {
+ return (Converter<X>) STRING_CONVERTER;
+ }
+ else if(type == Integer.class)
+ {
+ return (Converter<X>) INT_CONVERTER;
+ }
+ else if(type == Long.class)
+ {
+ return (Converter<X>) LONG_CONVERTER;
+ }
+ else if(type == Boolean.class)
+ {
+ return (Converter<X>) BOOLEAN_CONVERTER;
+ }
+ else if(type == UUID.class)
+ {
+ return (Converter<X>) UUID_CONVERTER;
+ }
+ else if(Enum.class.isAssignableFrom(type))
+ {
+ return (Converter<X>) new EnumConverter((Class<? extends Enum>)type);
+ }
+ else if(List.class.isAssignableFrom(type))
+ {
+ return (Converter<X>) LIST_CONVERTER;
+ }
+ else if(Map.class.isAssignableFrom(type))
+ {
+ return (Converter<X>) MAP_CONVERTER;
+ }
+ else if(Collection.class.isAssignableFrom(type))
+ {
+ return (Converter<X>) COLLECTION_CONVERTER;
+ }
+ else if(ConfiguredObject.class.isAssignableFrom(type))
+ {
+ return (Converter<X>) new ConfiguredObjectConverter(type);
+ }
+ throw new IllegalArgumentException("Cannot create attributes of type " + type.getName());
+ }
+
+ private static void addToAttributesSet(final Class<? extends ConfiguredObject> clazz, final Attribute<?, ?> attribute)
+ {
+ synchronized (_allAttributes)
+ {
+ Collection<Attribute<?,?>> classAttributes = _allAttributes.get(clazz);
+ if(classAttributes == null)
+ {
+ classAttributes = new ArrayList<Attribute<?, ?>>();
+ for(Map.Entry<Class<? extends ConfiguredObject>, Collection<Attribute<?,?>>> entry : _allAttributes.entrySet())
+ {
+ if(entry.getKey().isAssignableFrom(clazz))
+ {
+ classAttributes.addAll(entry.getValue());
+ }
+ }
+ _allAttributes.put(clazz, classAttributes);
+
+ }
+ for(Map.Entry<Class<? extends ConfiguredObject>, Collection<Attribute<?,?>>> entry : _allAttributes.entrySet())
+ {
+ if(clazz.isAssignableFrom(entry.getKey()))
+ {
+ entry.getValue().add(attribute);
+ }
+ }
+
+ }
}
public String getName()
@@ -34,166 +122,466 @@ public abstract class Attribute<C extends ConfiguredObject, T>
return _name;
}
- abstract public Class<T> getType();
+ public Class<T> getType()
+ {
+ return _type;
+ }
public T getValue(C configuredObject)
{
Object o = configuredObject.getAttribute(_name);
- if(getType().isInstance(o))
- {
- return (T) o;
- }
- return null;
+ return _converter.convert(o);
}
-
- public T setValue(T expected, T desired, C configuredObject)
+
+
+ public T getValue(Map<String, Object> attributeMap)
{
- return (T) configuredObject.setAttribute(_name, expected, desired);
+ Object o = attributeMap.get(_name);
+ return _converter.convert(o);
}
- abstract public T setValue(String stringValue, C configuredObject);
- static class StringAttribute<C extends ConfiguredObject> extends Attribute<C, String>
+ @Override
+ public String toString()
+ {
+ return _name;
+ }
+
+ private static interface Converter<T>
{
+ T convert(Object o);
+ }
- public StringAttribute(String name)
+ private static final Converter<String> STRING_CONVERTER = new Converter<String>()
{
- super(name);
- }
+ @Override
+ public String convert(final Object o)
+ {
+ return o == null ? null : o.toString();
+ }
+ };
+ private static final Converter<UUID> UUID_CONVERTER = new Converter<UUID>()
+ {
@Override
- public Class<String> getType()
+ public UUID convert(final Object o)
{
- return String.class;
+ if(o instanceof UUID)
+ {
+ return (UUID)o;
+ }
+ else if(o instanceof String)
+ {
+ return UUID.fromString((String)o);
+ }
+ else if(o == null)
+ {
+ return null;
+ }
+ else
+ {
+ throw new IllegalArgumentException("Cannot convert type " + o.getClass() + " to a UUID");
+ }
}
+ };
+
+ private static final Converter<Long> LONG_CONVERTER = new Converter<Long>()
+ {
@Override
- public String setValue(String stringValue, C configuredObject)
+ public Long convert(final Object o)
{
- return setValue(getValue(configuredObject), stringValue, configuredObject);
+ if(o instanceof Long)
+ {
+ return (Long)o;
+ }
+ else if(o instanceof Number)
+ {
+ return ((Number)o).longValue();
+ }
+ else if(o instanceof String)
+ {
+ return Long.valueOf((String)o);
+ }
+ else if(o == null)
+ {
+ return null;
+ }
+ else
+ {
+ throw new IllegalArgumentException("Cannot convert type " + o.getClass() + " to a Long");
+ }
}
+ };
- }
-
- static class IntegerAttribute<C extends ConfiguredObject> extends Attribute<C, Integer>
+ private static final Converter<Integer> INT_CONVERTER = new Converter<Integer>()
{
- public IntegerAttribute(String name)
+ @Override
+ public Integer convert(final Object o)
{
- super(name);
+ if(o instanceof Integer)
+ {
+ return (Integer)o;
+ }
+ else if(o instanceof Number)
+ {
+ return ((Number)o).intValue();
+ }
+ else if(o instanceof String)
+ {
+ return Integer.valueOf((String)o);
+ }
+ else if(o == null)
+ {
+ return null;
+ }
+ else
+ {
+ throw new IllegalArgumentException("Cannot convert type " + o.getClass() + " to an Integer");
+ }
}
+ };
+
+ private static final Converter<Boolean> BOOLEAN_CONVERTER = new Converter<Boolean>()
+ {
@Override
- public Class<Integer> getType()
+ public Boolean convert(final Object o)
{
- return Integer.class;
+ if(o instanceof Boolean)
+ {
+ return (Boolean)o;
+ }
+ else if(o instanceof String)
+ {
+ return Boolean.valueOf((String)o);
+ }
+ else if(o == null)
+ {
+ return null;
+ }
+ else
+ {
+ throw new IllegalArgumentException("Cannot convert type " + o.getClass() + " to a Boolean");
+ }
}
+ };
+ private static final Converter<List> LIST_CONVERTER = new Converter<List>()
+ {
@Override
- public Integer setValue(String stringValue, C configuredObject)
+ public List convert(final Object o)
{
- try
+ if(o instanceof List)
+ {
+ return (List)o;
+ }
+ else if(o == null)
{
- Integer val = Integer.valueOf(stringValue);
- return setValue(getValue(configuredObject), val, configuredObject);
+ return null;
}
- catch (NumberFormatException e)
+ else
{
- throw new IllegalArgumentException(e);
+ throw new IllegalArgumentException("Cannot convert type " + o.getClass() + " to a List");
}
}
- }
-
+ };
- static class LongAttribute<C extends ConfiguredObject> extends Attribute<C, Long>
+ private static final Converter<Collection> COLLECTION_CONVERTER = new Converter<Collection>()
{
-
- public LongAttribute(String name)
+ @Override
+ public Collection convert(final Object o)
{
- super(name);
+ if(o instanceof Collection)
+ {
+ return (Collection)o;
+ }
+ else if(o == null)
+ {
+ return null;
+ }
+ else
+ {
+ throw new IllegalArgumentException("Cannot convert type " + o.getClass() + " to a List");
+ }
}
+ };
+ private static final Converter<Map> MAP_CONVERTER = new Converter<Map>()
+ {
@Override
- public Class<Long> getType()
+ public Map convert(final Object o)
{
- return Long.class;
+ if(o instanceof Map)
+ {
+ return (Map)o;
+ }
+ else if(o == null)
+ {
+ return null;
+ }
+ else
+ {
+ throw new IllegalArgumentException("Cannot convert type " + o.getClass() + " to a Map");
+ }
+ }
+ };
+
+ private static final class EnumConverter<X extends Enum<X>> implements Converter<X>
+ {
+ private final Class<X> _klazz;
+
+ private EnumConverter(final Class<X> klazz)
+ {
+ _klazz = klazz;
}
@Override
- public Long setValue(String stringValue, C configuredObject)
+ public X convert(final Object o)
{
- try
+ if(o == null)
+ {
+ return null;
+ }
+ else if(_klazz.isInstance(o))
{
- Long val = Long.valueOf(stringValue);
- return setValue(getValue(configuredObject), val, configuredObject);
+ return (X) o;
}
- catch (NumberFormatException e)
+ else if(o instanceof String)
{
- throw new IllegalArgumentException(e);
+ return Enum.valueOf(_klazz,(String)o);
+ }
+ else
+ {
+ throw new IllegalArgumentException("Cannot convert type " + o.getClass() + " to a " + _klazz.getName());
}
}
}
-
- static class DoubleAttribute<C extends ConfiguredObject> extends Attribute<C, Double>
+ private static final class ConfiguredObjectConverter<X extends ConfiguredObject<X>> implements Converter<X>
{
+ private final Class<X> _klazz;
- public DoubleAttribute(String name)
+ private ConfiguredObjectConverter(final Class<X> klazz)
{
- super(name);
+ _klazz = klazz;
}
@Override
- public Class<Double> getType()
+ public X convert(final Object o)
{
- return Double.class;
+ if(o == null)
+ {
+ return null;
+ }
+ else if(_klazz.isInstance(o))
+ {
+ return (X) o;
+ }
+ // TODO - traverse tree based on UUID
+ else
+ {
+ throw new IllegalArgumentException("Cannot convert type " + o.getClass() + " to a " + _klazz.getName());
+ }
}
+ }
- @Override
- public Double setValue(String stringValue, C configuredObject)
+
+ public static <X extends ConfiguredObject> Collection<String> getAttributeNames(Class<X> clazz)
+ {
+ final Collection<Attribute<? super X, ?>> attrs = getAttributes(clazz);
+
+ return new AbstractCollection<String>()
{
- try
+ @Override
+ public Iterator<String> iterator()
{
- Double val = Double.valueOf(stringValue);
- return setValue(getValue(configuredObject), val, configuredObject);
+ final Iterator<Attribute<? super X, ?>> underlyingIterator = attrs.iterator();
+ return new Iterator<String>()
+ {
+ @Override
+ public boolean hasNext()
+ {
+ return underlyingIterator.hasNext();
+ }
+
+ @Override
+ public String next()
+ {
+ return underlyingIterator.next().getName();
+ }
+
+ @Override
+ public void remove()
+ {
+ throw new UnsupportedOperationException();
+ }
+ };
}
- catch (NumberFormatException e)
+
+ @Override
+ public int size()
{
- throw new IllegalArgumentException(e);
+ return attrs.size();
}
- }
- }
+ };
+ }
- static class FloatAttribute<C extends ConfiguredObject> extends Attribute<C, Float>
+ protected static <X extends ConfiguredObject> Collection<Attribute<? super X, ?>> getAttributes(final Class<X> clazz)
{
+ if(!_allAttributes.containsKey(clazz))
+ {
+ processAttributes(clazz);
+ }
+ final Collection<Attribute<? super X, ?>> attributes = (Collection) _allAttributes.get(clazz);
+ return attributes;
+ }
- public FloatAttribute(String name)
+ private static <X extends ConfiguredObject> void processAttributes(final Class<X> clazz)
+ {
+ if(_allAttributes.containsKey(clazz))
{
- super(name);
+ return;
}
- @Override
- public Class<Float> getType()
+
+ for(Class<?> parent : clazz.getInterfaces())
{
- return Float.class;
+ if(ConfiguredObject.class.isAssignableFrom(parent))
+ {
+ processAttributes((Class<? extends ConfiguredObject>)parent);
+ }
+ }
+ final Class<? super X> superclass = clazz.getSuperclass();
+ if(superclass != null && ConfiguredObject.class.isAssignableFrom(superclass))
+ {
+ processAttributes((Class<? extends ConfiguredObject>) superclass);
}
- @Override
- public Float setValue(String stringValue, C configuredObject)
+ final ArrayList<Attribute<?, ?>> attributeList = new ArrayList<Attribute<?, ?>>();
+ _allAttributes.put(clazz, attributeList);
+
+ for(Class<?> parent : clazz.getInterfaces())
{
- try
+ if(ConfiguredObject.class.isAssignableFrom(parent))
{
- Float val = Float.valueOf(stringValue);
- return setValue(getValue(configuredObject), val, configuredObject);
+ Collection<Attribute<?, ?>> attrs = _allAttributes.get(parent);
+ for(Attribute<?,?> attr : attrs)
+ {
+ if(!attributeList.contains(attr))
+ {
+ attributeList.add(attr);
+ }
+ }
}
- catch (NumberFormatException e)
+ }
+ if(superclass != null && ConfiguredObject.class.isAssignableFrom(superclass))
+ {
+ Collection<Attribute<?, ?>> attrs = _allAttributes.get(superclass);
+ for(Attribute<?,?> attr : attrs)
{
- throw new IllegalArgumentException(e);
+ if(!attributeList.contains(attr))
+ {
+ attributeList.add(attr);
+ }
+ }
+
+ }
+
+
+ for(Method m : clazz.getDeclaredMethods())
+ {
+ ManagedAttribute annotation = m.getAnnotation(ManagedAttribute.class);
+ if(annotation != null)
+ {
+ if(m.getParameterTypes().length != 0)
+ {
+ throw new IllegalArgumentException("ManagedAttribute annotation should only be added to no-arg getters");
+ }
+ Class<?> type = m.getReturnType();
+ if(type.isPrimitive())
+ {
+ if(type == Boolean.TYPE)
+ {
+ type = Boolean.class;
+ }
+ else if(type == Byte.TYPE)
+ {
+ type = Byte.class;
+ }
+ else if(type == Short.TYPE)
+ {
+ type = Short.class;
+ }
+ else if(type == Integer.TYPE)
+ {
+ type = Integer.class;
+ }
+ else if(type == Long.TYPE)
+ {
+ type = Long.class;
+ }
+ else if(type == Float.TYPE)
+ {
+ type = Float.class;
+ }
+ else if(type == Double.TYPE)
+ {
+ type = Double.class;
+ }
+ else if(type == Character.TYPE)
+ {
+ type = Character.class;
+ }
+ }
+ String methodName = m.getName();
+ String baseName;
+
+ if(type == Boolean.class )
+ {
+ if((methodName.startsWith("get") || methodName.startsWith("has")) && methodName.length() >= 4)
+ {
+ baseName = methodName.substring(3);
+ }
+ else if(methodName.startsWith("is") && methodName.length() >= 3)
+ {
+ baseName = methodName.substring(2);
+ }
+ else
+ {
+ throw new IllegalArgumentException("Method name " + methodName + " does not conform to the required pattern for ManagedAttributes");
+ }
+ }
+ else
+ {
+ if(methodName.startsWith("get") && methodName.length() >= 4)
+ {
+ baseName = methodName.substring(3);
+ }
+ else
+ {
+ throw new IllegalArgumentException("Method name " + methodName + " does not conform to the required pattern for ManagedAttributes");
+ }
+ }
+
+ String name = baseName.length() == 1 ? baseName.toLowerCase() : baseName.substring(0,1).toLowerCase() + baseName.substring(1);
+ name = name.replace('_','.');
+ Attribute<X,?> newAttr = new Attribute(clazz,name,type,m);
+
}
}
}
+ public static void main(String[] args)
+ {
+ System.err.println(Attribute.getAttributeNames(KeyStore.class));
+ System.err.println(Attribute.getAttributeNames(Binding.class));
+ System.err.println(Attribute.getAttributeNames(Exchange.class));
+ System.err.println(Attribute.getAttributeNames(Broker.class));
+
+ }
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java
index c111f40cc8..6c6c8b8c66 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java
@@ -26,7 +26,7 @@ import java.util.Collections;
import org.apache.qpid.server.security.SubjectCreator;
-public interface AuthenticationProvider extends ConfiguredObject
+public interface AuthenticationProvider<X extends AuthenticationProvider<X>> extends ConfiguredObject<X>
{
public static final String DESCRIPTION = "description";
@@ -37,21 +37,6 @@ public interface AuthenticationProvider extends ConfiguredObject
public static final String CREATED = "created";
public static final String UPDATED = "updated";
- public static final String TYPE = "type";
-
- public static final Collection<String> AVAILABLE_ATTRIBUTES =
- Collections.unmodifiableList(
- Arrays.asList(ID,
- NAME,
- DESCRIPTION,
- STATE,
- DURABLE,
- LIFETIME_POLICY,
- TIME_TO_LIVE,
- CREATED,
- UPDATED,
- TYPE
- ));
//children
Collection<VirtualHostAlias> getVirtualHostPortBindings();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Binding.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Binding.java
index d5f833e393..030c7ce610 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Binding.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Binding.java
@@ -25,7 +25,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Map;
-public interface Binding extends ConfiguredObject
+public interface Binding<X extends Binding<X>> extends ConfiguredObject<X>
{
public String MATCHED_BYTES = "matchedBytes";
@@ -50,23 +50,13 @@ public interface Binding extends ConfiguredObject
public String QUEUE = "queue";
public String EXCHANGE = "exchange";
- public static final Collection<String> AVAILABLE_ATTRIBUTES =
- Collections.unmodifiableCollection(
- Arrays.asList(ID,
- NAME,
- STATE,
- DURABLE,
- LIFETIME_POLICY,
- TIME_TO_LIVE,
- CREATED,
- UPDATED,
- EXCHANGE,
- QUEUE,
- ARGUMENTS)
- );
-
+ @ManagedAttribute
+ Queue getQueue();
+ @ManagedAttribute
+ Exchange getExchange();
+ @ManagedAttribute
Map<String,Object> getArguments();
void delete();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
index 5df6d9475e..65f1429987 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
@@ -32,7 +32,7 @@ import org.apache.qpid.server.security.SecurityManager;
import org.apache.qpid.server.security.SubjectCreator;
import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
-public interface Broker extends ConfiguredObject
+public interface Broker<X extends Broker<X>> extends ConfiguredObject<X>
{
String BUILD_VERSION = "buildVersion";
@@ -45,7 +45,7 @@ public interface Broker extends ConfiguredObject
String SUPPORTED_VIRTUALHOST_TYPES = "supportedVirtualHostTypes";
String SUPPORTED_VIRTUALHOST_STORE_TYPES = "supportedVirtualHostStoreTypes";
String SUPPORTED_AUTHENTICATION_PROVIDERS = "supportedAuthenticationProviders";
- String SUPPORTED_PREFERENCES_PROVIDERS_TYPES = "supportedPreferencesProviderTypes";
+ String SUPPORTED_PREFERENCES_PROVIDER_TYPES = "supportedPreferencesProviderTypes";
String CREATED = "created";
String DURABLE = "durable";
String LIFETIME_POLICY = "lifetimePolicy";
@@ -80,63 +80,116 @@ public interface Broker extends ConfiguredObject
String VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE = "virtualhost.storeTransactionOpenTimeoutClose";
String VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_WARN = "virtualhost.storeTransactionOpenTimeoutWarn";
- // Attributes
- Collection<String> AVAILABLE_ATTRIBUTES =
- Collections.unmodifiableList(
- Arrays.asList(BUILD_VERSION,
- BYTES_RETAINED,
- OPERATING_SYSTEM,
- PLATFORM,
- PROCESS_PID,
- PRODUCT_VERSION,
- SUPPORTED_BROKER_STORE_TYPES,
- SUPPORTED_VIRTUALHOST_STORE_TYPES,
- SUPPORTED_AUTHENTICATION_PROVIDERS,
- SUPPORTED_PREFERENCES_PROVIDERS_TYPES,
- CREATED,
- DURABLE,
- ID,
- LIFETIME_POLICY,
- NAME,
- STATE,
- TIME_TO_LIVE,
- UPDATED,
- DEFAULT_VIRTUAL_HOST,
- QUEUE_ALERT_THRESHOLD_MESSAGE_AGE,
- QUEUE_ALERT_THRESHOLD_QUEUE_DEPTH_MESSAGES,
- QUEUE_ALERT_THRESHOLD_QUEUE_DEPTH_BYTES,
- QUEUE_ALERT_THRESHOLD_MESSAGE_SIZE,
- QUEUE_ALERT_REPEAT_GAP,
- QUEUE_FLOW_CONTROL_SIZE_BYTES,
- QUEUE_FLOW_CONTROL_RESUME_SIZE_BYTES,
- QUEUE_MAXIMUM_DELIVERY_ATTEMPTS,
- QUEUE_DEAD_LETTER_QUEUE_ENABLED,
- VIRTUALHOST_HOUSEKEEPING_CHECK_PERIOD,
- CONNECTION_SESSION_COUNT_LIMIT,
- CONNECTION_HEART_BEAT_DELAY,
- CONNECTION_CLOSE_WHEN_NO_ROUTE,
- STATISTICS_REPORTING_PERIOD,
- STATISTICS_REPORTING_RESET_ENABLED,
- STORE_TYPE,
- STORE_VERSION,
- STORE_PATH,
- MODEL_VERSION,
- VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE,
- VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_WARN,
- VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE,
- VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_WARN
- ));
+ @ManagedAttribute
+ String getBuildVersion();
+
+ @ManagedAttribute
+ String getOperatingSystem();
+
+ @ManagedAttribute
+ String getPlatform();
+
+ @ManagedAttribute
+ String getProcessPid();
+
+ @ManagedAttribute
+ String getProductVersion();
+
+ @ManagedAttribute
+ Collection<String> getSupportedBrokerStoreTypes();
+
+ @ManagedAttribute
+ Collection<String> getSupportedVirtualHostStoreTypes();
+
+ @ManagedAttribute
+ Collection<String> getSupportedAuthenticationProviders();
+
+ @ManagedAttribute
+ Collection<String> getSupportedPreferencesProviderTypes();
+
+ @ManagedAttribute
+ String getDefaultVirtualHost();
+
+ @ManagedAttribute
+ int getQueue_alertThresholdMessageAge();
+
+ @ManagedAttribute
+ long getQueue_alertThresholdQueueDepthMessages();
+
+ @ManagedAttribute
+ long getQueue_alertThresholdQueueDepthBytes();
+
+ @ManagedAttribute
+ long getQueue_alertThresholdMessageSize();
+
+ @ManagedAttribute
+ long getQueue_alertRepeatGap();
+
+ @ManagedAttribute
+ long getQueue_flowControlSizeBytes();
+
+ @ManagedAttribute
+ long getQueue_flowResumeSizeBytes();
+
+ @ManagedAttribute
+ int getQueue_maximumDeliveryAttempts();
+
+ @ManagedAttribute
+ boolean isQueue_deadLetterQueueEnabled();
+
+ @ManagedAttribute
+ long getVirtualhost_housekeepingCheckPeriod();
+
+ @ManagedAttribute
+ int getConnection_sessionCountLimit();
+
+ @ManagedAttribute
+ int getConnection_heartBeatDelay();
+
+ @ManagedAttribute
+ boolean getConnection_closeWhenNoRoute();
+
+ @ManagedAttribute
+ int getStatisticsReportingPeriod();
+
+ @ManagedAttribute
+ boolean getStatisticsReportingResetEnabled();
+
+ @ManagedAttribute
+ String getStoreType();
+
+ @ManagedAttribute
+ int getStoreVersion();
+
+ @ManagedAttribute
+ String getStorePath();
+
+ @ManagedAttribute
+ String getModelVersion();
+
+ @ManagedAttribute
+ long getVirtualhost_storeTransactionIdleTimeoutClose();
+
+ @ManagedAttribute
+ long getVirtualhost_storeTransactionIdleTimeoutWarn();
+
+ @ManagedAttribute
+ long getVirtualhost_storeTransactionOpenTimeoutClose();
+
+ @ManagedAttribute
+ long getVirtualhost_storeTransactionOpenTimeoutWarn();
+
//children
- Collection < VirtualHost > getVirtualHosts();
+ Collection < VirtualHost<?> > getVirtualHosts();
- Collection<Port> getPorts();
+ Collection<Port<?>> getPorts();
- Collection<AuthenticationProvider> getAuthenticationProviders();
+ Collection<AuthenticationProvider<?>> getAuthenticationProviders();
- Collection<AccessControlProvider> getAccessControlProviders();
+ Collection<AccessControlProvider<?>> getAccessControlProviders();
- Collection<GroupProvider> getGroupProviders();
+ Collection<GroupProvider<?>> getGroupProviders();
/**
* A temporary hack to expose root message logger via broker instance.
@@ -155,25 +208,25 @@ public interface Broker extends ConfiguredObject
*/
LogRecorder getLogRecorder();
- AuthenticationProvider findAuthenticationProviderByName(String authenticationProviderName);
+ AuthenticationProvider<?> findAuthenticationProviderByName(String authenticationProviderName);
- VirtualHost findVirtualHostByName(String name);
+ VirtualHost<?> findVirtualHostByName(String name);
- KeyStore findKeyStoreByName(String name);
+ KeyStore<?> findKeyStoreByName(String name);
- TrustStore findTrustStoreByName(String name);
+ TrustStore<?> findTrustStoreByName(String name);
/**
* Get the SubjectCreator for the given socket address.
* TODO: move the authentication related functionality into host aliases and AuthenticationProviders
*
- * @param address The (listening) socket address for which the AuthenticationManager is required
+ * @param localAddress The (listening) socket address for which the AuthenticationManager is required
*/
SubjectCreator getSubjectCreator(SocketAddress localAddress);
- Collection<KeyStore> getKeyStores();
+ Collection<KeyStore<?>> getKeyStores();
- Collection<TrustStore> getTrustStores();
+ Collection<TrustStore<?>> getTrustStores();
/*
* TODO: Remove this method. Eventually the broker will become a registry.
@@ -184,5 +237,5 @@ public interface Broker extends ConfiguredObject
boolean isManagementMode();
- AuthenticationProvider getAuthenticationProvider(SocketAddress localAddress);
+ AuthenticationProvider<?> getAuthenticationProvider(SocketAddress localAddress);
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
index ab9c60573a..b236581cbf 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
@@ -25,27 +25,28 @@ import java.util.Collection;
import java.util.Map;
import java.util.UUID;
-@AmqpManagement(
- attributes = {
- ConfiguredObject.ID,
- ConfiguredObject.NAME
- },
- operations = {},
- creatable = false
-)
+@AmqpManagement( creatable = false )
/**
* An object that can be "managed" (eg via the web interface) and usually read from configuration.
*/
-public interface ConfiguredObject
+public interface ConfiguredObject<X extends ConfiguredObject<X>>
{
public static final String ID = "id";
public static final String NAME = "name";
-// public static final String TYPE = "type";
+ public static final String TYPE = "type";
+ public static final String DESCRIPTION = "description";
+ public static final String LAST_UPDATED_BY = "lastUpdatedBy";
+ public static final String LAST_UPDATED_TIME = "lastUpdatedTime";
+ public static final String CREATED_BY = "createdBy";
+ public static final String CREATED_TIME = "createdTime";
+
+
/**
* Get the universally unique identifier for the object
*
* @return the objects id
*/
+ @ManagedAttribute
UUID getId();
/**
@@ -53,9 +54,28 @@ public interface ConfiguredObject
*
* @return the name of the object
*/
+ @ManagedAttribute
String getName();
+ @ManagedAttribute
+ String getDescription();
+
+ @ManagedAttribute
+ String getType();
+
+ @ManagedAttribute
+ String getLastUpdatedBy();
+
+ @ManagedAttribute
+ long getLastUpdatedTime();
+
+ @ManagedAttribute
+ String getCreatedBy();
+
+ @ManagedAttribute
+ long getCreatedTime();
+
/**
* Attempt to change the name of the object
*
@@ -109,7 +129,8 @@ public interface ConfiguredObject
*
* @return the actual state of the object
*/
- State getActualState();
+ @ManagedAttribute
+ State getState();
/**
@@ -142,6 +163,7 @@ public interface ConfiguredObject
*
* @return the durability
*/
+ @ManagedAttribute
boolean isDurable();
/**
@@ -162,6 +184,7 @@ public interface ConfiguredObject
*
* @return the lifetime policy
*/
+ @ManagedAttribute
LifetimePolicy getLifetimePolicy();
/**
@@ -183,6 +206,7 @@ public interface ConfiguredObject
*
* @return the time to live
*/
+ @ManagedAttribute
long getTimeToLive();
/**
@@ -222,6 +246,8 @@ public interface ConfiguredObject
*/
Object getAttribute(String name);
+ <T> T getAttribute(Attribute<? super X, T> attr);
+
/**
* Return the map containing only explicitly set attributes
*
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
index a7350f528c..5e86f83dfb 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
@@ -24,33 +24,8 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-@AmqpManagement(
- attributes = {
- Connection.ID,
- Connection.NAME,
- Connection.STATE,
- Connection.DURABLE,
- Connection.LIFETIME_POLICY,
- Connection.TIME_TO_LIVE,
- Connection.CREATED,
- Connection.UPDATED,
- Connection.CLIENT_ID,
- Connection.CLIENT_VERSION,
- Connection.INCOMING,
- Connection.LOCAL_ADDRESS,
- Connection.PRINCIPAL,
- Connection.PROPERTIES,
- Connection.REMOTE_ADDRESS,
- Connection.REMOTE_PROCESS_NAME,
- Connection.REMOTE_PROCESS_PID,
- Connection.SESSION_COUNT_LIMIT,
- Connection.TRANSPORT,
- Connection.PORT
- },
- operations = {},
- creatable = false
-)
-public interface Connection extends ConfiguredObject
+@AmqpManagement( creatable = false )
+public interface Connection<X extends Connection<X>> extends ConfiguredObject<X>
{
// Statistics
@@ -106,29 +81,38 @@ public interface Connection extends ConfiguredObject
/** Name of port associated with the connection */
public static final String PORT = "port";
+ @ManagedAttribute
+ String getClientId();
- public static final Collection<String> AVAILABLE_ATTRIBUTES =
- Collections.unmodifiableCollection(
- Arrays.asList( ID,
- NAME,
- STATE,
- DURABLE,
- LIFETIME_POLICY,
- TIME_TO_LIVE,
- CREATED,
- UPDATED,
- CLIENT_ID,
- CLIENT_VERSION,
- INCOMING,
- LOCAL_ADDRESS,
- PRINCIPAL,
- PROPERTIES,
- REMOTE_ADDRESS,
- REMOTE_PROCESS_NAME,
- REMOTE_PROCESS_PID,
- SESSION_COUNT_LIMIT,
- TRANSPORT,
- PORT));
+ @ManagedAttribute
+ String getClientVersion();
+
+ @ManagedAttribute
+ boolean isIncoming();
+
+ @ManagedAttribute
+ String getLocalAddress();
+
+ @ManagedAttribute
+ String getPrincipal();
+
+ @ManagedAttribute
+ String getRemoteAddress();
+
+ @ManagedAttribute
+ String getRemoteProcessName();
+
+ @ManagedAttribute
+ String getRemoteProcessPid();
+
+ @ManagedAttribute
+ long getSessionCountLimit();
+
+ @ManagedAttribute
+ Transport getTransport();
+
+ @ManagedAttribute
+ Port getPort();
//children
Collection<Session> getSessions();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Consumer.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Consumer.java
index 6f8726d0c8..54b81c724d 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Consumer.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Consumer.java
@@ -24,7 +24,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-public interface Consumer extends ConfiguredObject
+public interface Consumer<X extends Consumer<X>> extends ConfiguredObject<X>
{
public String DISTRIBUTION_MODE = "distributionMode";
public String EXCLUSIVE = "exclusive";
@@ -38,21 +38,22 @@ public interface Consumer extends ConfiguredObject
public String TIME_TO_LIVE = "timeToLive";
public String UPDATED = "updated";
- public Collection<String> AVAILABLE_ATTRIBUTES =
- Collections.unmodifiableCollection(
- Arrays.asList(ID,
- NAME,
- STATE,
- DURABLE,
- LIFETIME_POLICY,
- TIME_TO_LIVE,
- CREATED,
- UPDATED,
- DISTRIBUTION_MODE,
- SETTLEMENT_MODE,
- EXCLUSIVE,
- NO_LOCAL,
- SELECTOR));
+ @ManagedAttribute
+ String getDistributionMode();
+
+ @ManagedAttribute
+ String getSettlementMode();
+
+ @ManagedAttribute
+ boolean isExclusive();
+
+ @ManagedAttribute
+ boolean isNoLocal();
+
+ @ManagedAttribute
+ String getSelector();
+
+
public String BYTES_OUT = "bytesOut";
public String MESSAGES_OUT = "messagesOut";
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/EventType.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/EventType.java
deleted file mode 100644
index edd5ce4250..0000000000
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/EventType.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- *
- * 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;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * A type of event generated by a ConfiguredObject.
- */
-public abstract class EventType<T extends EventType<T>>
-{
- private static final Map<Class<? extends EventType>, Integer> EVENT_TYPES =
- new HashMap<Class<? extends EventType>, Integer>();
-
- private final int _classId;
-
- protected EventType()
- {
- synchronized (EVENT_TYPES)
- {
- if(EVENT_TYPES.containsKey(getClass()))
- {
- throw new IllegalArgumentException("Cannot define more one instance of the same EventType " +
- getClass().getName());
- }
- else
- {
- _classId = EVENT_TYPES.size();
- EVENT_TYPES.put(getClass(), _classId);
- }
- }
- }
-
- public final int getId()
- {
- return _classId;
- }
-
- abstract public Event<T> newEvent();
-}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Exchange.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Exchange.java
index c4575a7359..792453b13f 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Exchange.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Exchange.java
@@ -25,23 +25,9 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Map;
-@AmqpManagement(
- attributes = {
- Exchange.ID,
- Exchange.NAME,
- Exchange.STATE,
- Exchange.DURABLE,
- Exchange.LIFETIME_POLICY,
- Exchange.TIME_TO_LIVE,
- Exchange.CREATED,
- Exchange.UPDATED,
- Exchange.ALTERNATE_EXCHANGE,
- Exchange.TYPE
- },
- operations = {}
-)
+@AmqpManagement
-public interface Exchange extends ConfiguredObject
+public interface Exchange<X extends Exchange<X>> extends ConfiguredObject<X>
{
String BINDING_COUNT = "bindingCount";
String BYTES_DROPPED = "bytesDropped";
@@ -68,25 +54,11 @@ public interface Exchange extends ConfiguredObject
String TIME_TO_LIVE = "timeToLive";
String UPDATED = "updated";
String ALTERNATE_EXCHANGE = "alternateExchange";
- String TYPE = "type";
// Attributes
- public static final Collection<String> AVAILABLE_ATTRIBUTES =
- Collections.unmodifiableList(
- Arrays.asList(
- ID,
- NAME,
- STATE,
- DURABLE,
- LIFETIME_POLICY,
- TIME_TO_LIVE,
- CREATED,
- UPDATED,
- ALTERNATE_EXCHANGE,
- TYPE
- ));
- String getExchangeType();
+ @ManagedAttribute
+ Exchange<?> getAlternateExchange();
//children
Collection<Binding> getBindings();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Group.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Group.java
index e62949708d..47a467f7c4 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Group.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Group.java
@@ -19,11 +19,7 @@
*/
package org.apache.qpid.server.model;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-
-public interface Group extends ConfiguredObject
+public interface Group<X extends Group<X>> extends ConfiguredObject<X>
{
String CREATED = "created";
String DURABLE = "durable";
@@ -32,19 +28,4 @@ public interface Group extends ConfiguredObject
String TIME_TO_LIVE = "timeToLive";
String UPDATED = "updated";
- // Attributes
- public static final Collection<String> AVAILABLE_ATTRIBUTES =
- Collections.unmodifiableList(
- Arrays.asList(
- ID,
- NAME,
- STATE,
- DURABLE,
- LIFETIME_POLICY,
- TIME_TO_LIVE,
- CREATED,
- UPDATED
- ));
-
-
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupMember.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupMember.java
index 46dd6ec3e2..5b7720f8e4 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupMember.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupMember.java
@@ -23,7 +23,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-public interface GroupMember extends ConfiguredObject
+public interface GroupMember<X extends GroupMember<X>> extends ConfiguredObject<X>
{
String CREATED = "created";
String DURABLE = "durable";
@@ -32,19 +32,4 @@ public interface GroupMember extends ConfiguredObject
String TIME_TO_LIVE = "timeToLive";
String UPDATED = "updated";
- // Attributes
- public static final Collection<String> AVAILABLE_ATTRIBUTES =
- Collections.unmodifiableList(
- Arrays.asList(
- ID,
- NAME,
- STATE,
- DURABLE,
- LIFETIME_POLICY,
- TIME_TO_LIVE,
- CREATED,
- UPDATED
- ));
-
-
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupProvider.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupProvider.java
index e5c64ec882..35fa7e6ac5 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupProvider.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupProvider.java
@@ -25,7 +25,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Set;
-public interface GroupProvider extends ConfiguredObject
+public interface GroupProvider<X extends GroupProvider<X>> extends ConfiguredObject<X>
{
public static final String DESCRIPTION = "description";
public static final String STATE = "state";
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java
index 1e1cbb7cef..6d425492ea 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java
@@ -26,7 +26,7 @@ import java.util.Collection;
import java.util.Collections;
import javax.net.ssl.KeyManager;
-public interface KeyStore extends ConfiguredObject
+public interface KeyStore<X extends KeyStore<X>> extends ConfiguredObject<X>
{
String DURABLE = "durable";
String LIFETIME_POLICY = "lifetimePolicy";
@@ -38,30 +38,43 @@ public interface KeyStore extends ConfiguredObject
String PATH = "path";
String PASSWORD = "password";
- String TYPE = "type";
+ String KEY_STORE_TYPE = "keyStoreType";
String CERTIFICATE_ALIAS = "certificateAlias";
String KEY_MANAGER_FACTORY_ALGORITHM = "keyManagerFactoryAlgorithm";
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,
- CERTIFICATE_ALIAS,
- KEY_MANAGER_FACTORY_ALGORITHM
- ));
+ Arrays.asList(
+ ID,
+ NAME,
+ STATE,
+ DURABLE,
+ LIFETIME_POLICY,
+ TIME_TO_LIVE,
+ CREATED,
+ UPDATED,
+ DESCRIPTION,
+ PATH,
+ PASSWORD,
+ KEY_STORE_TYPE,
+ CERTIFICATE_ALIAS,
+ KEY_MANAGER_FACTORY_ALGORITHM
+ ));
+ @ManagedAttribute( secure = true )
public String getPassword();
+
+ @ManagedAttribute
+ public String getPath();
+
+ @ManagedAttribute
+ public String getCertificateAlias();
+
+ @ManagedAttribute
+ public String getKeyManagerFactoryAlgorithm();
+
+ @ManagedAttribute
+ public String getKeyStoreType();
public void setPassword(String password);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Event.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java
index 91b684f06e..534ff63b86 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Event.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java
@@ -1,3 +1,4 @@
+package org.apache.qpid.server.model;
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -19,9 +20,13 @@
*
*/
-package org.apache.qpid.server.model;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
-abstract public class Event<T extends EventType>
+public @interface ManagedAttribute
{
- abstract public T getEventType();
+ boolean secure() default false;
+ boolean derived() default false;
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Model.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Model.java
index 50538a5580..f940b323be 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Model.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Model.java
@@ -37,7 +37,7 @@ public class Model
*
*/
public static final int MODEL_MAJOR_VERSION = 1;
- public static final int MODEL_MINOR_VERSION = 2;
+ public static final int MODEL_MINOR_VERSION = 3;
public static final String MODEL_VERSION = MODEL_MAJOR_VERSION + "." + MODEL_MINOR_VERSION;
private static final Model MODEL_INSTANCE = new Model();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PasswordCredentialManagingAuthenticationProvider.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PasswordCredentialManagingAuthenticationProvider.java
index 1027e5ce8c..235cedf198 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PasswordCredentialManagingAuthenticationProvider.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PasswordCredentialManagingAuthenticationProvider.java
@@ -25,7 +25,7 @@ import java.util.Map;
import javax.security.auth.login.AccountNotFoundException;
-public interface PasswordCredentialManagingAuthenticationProvider extends AuthenticationProvider
+public interface PasswordCredentialManagingAuthenticationProvider<X extends PasswordCredentialManagingAuthenticationProvider<X>> extends AuthenticationProvider<X>
{
boolean createUser(String username, String password, Map<String, String> attributes);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java
index 7cdea9d12c..bb8a8b9ecd 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java
@@ -24,7 +24,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-public interface Plugin extends ConfiguredObject
+public interface Plugin<X extends Plugin<X>> extends ConfiguredObject<X>
{
//Hack, using it for the class name only for consistency with the other things.
String CREATED = "created";
@@ -35,16 +35,7 @@ public interface Plugin extends ConfiguredObject
String UPDATED = "updated";
// Attributes
- public static final Collection<String> AVAILABLE_ATTRIBUTES =
- Collections.unmodifiableList(
- Arrays.asList(
- ID,
- NAME,
- STATE,
- DURABLE,
- LIFETIME_POLICY,
- TIME_TO_LIVE,
- CREATED,
- UPDATED
- ));
+
+ @ManagedAttribute
+ String getPluginType();
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Port.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Port.java
index 9458ac4120..b443bd2804 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Port.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Port.java
@@ -24,8 +24,9 @@ import java.security.AccessControlException;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.List;
-public interface Port extends ConfiguredObject
+public interface Port<X extends Port<X>> extends ConfiguredObject<X>
{
String CREATED = "created";
String DURABLE = "durable";
@@ -47,41 +48,47 @@ public interface Port extends ConfiguredObject
String TRUST_STORES = "trustStores";
// Attributes
- public static final Collection<String> AVAILABLE_ATTRIBUTES =
- Collections.unmodifiableList(
- Arrays.asList(
- ID,
- NAME,
- STATE,
- DURABLE,
- LIFETIME_POLICY,
- TIME_TO_LIVE,
- CREATED,
- UPDATED,
- BINDING_ADDRESS,
- PORT,
- PROTOCOLS,
- TRANSPORTS,
- TCP_NO_DELAY,
- SEND_BUFFER_SIZE,
- RECEIVE_BUFFER_SIZE,
- NEED_CLIENT_AUTH,
- WANT_CLIENT_AUTH,
- AUTHENTICATION_PROVIDER,
- KEY_STORE,
- TRUST_STORES
- ));
-
+ @ManagedAttribute
String getBindingAddress();
+ @ManagedAttribute
int getPort();
+ @ManagedAttribute
+ Collection<Protocol> getProtocols();
+
+ @ManagedAttribute
+ Collection<Transport> getTransports();
+
+ @ManagedAttribute
+ boolean isTcpNoDelay();
+
+ @ManagedAttribute
+ int getSendBufferSize();
+
+ @ManagedAttribute
+ int getReceiveBufferSize();
+
+ @ManagedAttribute
+ boolean getNeedClientAuth();
+
+ @ManagedAttribute
+ boolean getWantClientAuth();
+
+ @ManagedAttribute
+ AuthenticationProvider getAuthenticationProvider();
+
+ @ManagedAttribute
KeyStore getKeyStore();
+ @ManagedAttribute
Collection<TrustStore> getTrustStores();
- Collection<Transport> getTransports();
+
+
+
+
void addTransport(Transport transport) throws IllegalStateException,
AccessControlException,
@@ -91,7 +98,6 @@ public interface Port extends ConfiguredObject
AccessControlException,
IllegalArgumentException;
- Collection<Protocol> getProtocols();
void addProtocol(Protocol protocol) throws IllegalStateException,
AccessControlException,
@@ -101,7 +107,6 @@ public interface Port extends ConfiguredObject
AccessControlException,
IllegalArgumentException;
- AuthenticationProvider getAuthenticationProvider();
//children
Collection<VirtualHostAlias> getVirtualHostBindings();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PreferencesProvider.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PreferencesProvider.java
index c895ce36f8..18ace288e4 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PreferencesProvider.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PreferencesProvider.java
@@ -27,9 +27,8 @@ import java.util.Collections;
import java.util.Map;
import java.util.Set;
-public interface PreferencesProvider extends ConfiguredObject
+public interface PreferencesProvider<X extends PreferencesProvider<X>> extends ConfiguredObject<X>
{
- String TYPE = "type";
String CREATED = "created";
String UPDATED = "updated";
String DURABLE = "durable";
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Publisher.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Publisher.java
index cdb85d8023..2cd8f1aad2 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Publisher.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Publisher.java
@@ -20,6 +20,6 @@
*/
package org.apache.qpid.server.model;
-public interface Publisher extends ConfiguredObject
+public interface Publisher<X extends Publisher<X>> extends ConfiguredObject<X>
{
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java
index dc65c6ef81..9f806caa93 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java
@@ -25,41 +25,9 @@ import java.util.Collection;
import java.util.Collections;
import org.apache.qpid.server.queue.QueueEntryVisitor;
-@AmqpManagement(
- attributes = {
- Queue.ID,
- Queue.NAME,
- Queue.DESCRIPTION,
- Queue.STATE,
- Queue.DURABLE,
- Queue.LIFETIME_POLICY,
- Queue.TIME_TO_LIVE,
- Queue.CREATED,
- Queue.UPDATED,
- Queue.QUEUE_TYPE,
- Queue.ALTERNATE_EXCHANGE,
- Queue.EXCLUSIVE,
- Queue.OWNER,
- Queue.NO_LOCAL,
- Queue.LVQ_KEY,
- Queue.SORT_KEY,
- Queue.MESSAGE_GROUP_KEY,
- Queue.MESSAGE_GROUP_SHARED_GROUPS,
- Queue.MAXIMUM_DELIVERY_ATTEMPTS,
- Queue.QUEUE_FLOW_CONTROL_SIZE_BYTES,
- Queue.QUEUE_FLOW_RESUME_SIZE_BYTES,
- Queue.QUEUE_FLOW_STOPPED,
- Queue.ALERT_THRESHOLD_MESSAGE_AGE,
- Queue.ALERT_THRESHOLD_MESSAGE_SIZE,
- Queue.ALERT_THRESHOLD_QUEUE_DEPTH_BYTES,
- Queue.ALERT_THRESHOLD_QUEUE_DEPTH_MESSAGES,
- Queue.ALERT_REPEAT_GAP,
- Queue.PRIORITIES
- },
- operations = {}
-)
-
-public interface Queue extends ConfiguredObject
+@AmqpManagement
+
+public interface Queue<X extends Queue<X>> extends ConfiguredObject<X>
{
public static final String BINDING_COUNT = "bindingCount";
public static final String CONSUMER_COUNT = "consumerCount";
@@ -103,14 +71,10 @@ public interface Queue extends ConfiguredObject
- public static final String DESCRIPTION = "description";
public static final String STATE = "state";
public static final String DURABLE = "durable";
public static final String LIFETIME_POLICY = "lifetimePolicy";
public static final String TIME_TO_LIVE = "timeToLive";
- public static final String CREATED = "created";
- public static final String UPDATED = "updated";
- public static final String ARGUMENTS = "arguments";
public static final String ALERT_REPEAT_GAP = "alertRepeatGap";
public static final String ALERT_THRESHOLD_MESSAGE_AGE = "alertThresholdMessageAge";
@@ -135,41 +99,69 @@ public interface Queue extends ConfiguredObject
public static final String CREATE_DLQ_ON_CREATION = "x-qpid-dlq-enabled"; // TODO - this value should change
- public static final String FEDERATION_EXCLUDES = "federationExcludes";
- public static final String FEDERATION_ID = "federationId";
+ @ManagedAttribute
+ String getQueueType();
+ @ManagedAttribute
+ Exchange getAlternateExchange();
+
+ @ManagedAttribute
+ ExclusivityPolicy getExclusive();
+
+ @ManagedAttribute
+ String getOwner();
+
+ @ManagedAttribute
+ boolean getNoLocal();
+
+ @ManagedAttribute
+ String getLvqKey();
+
+ @ManagedAttribute
+ String getSortKey();
+
+ @ManagedAttribute
+ String getMessageGroupKey();
+
+
+ // TODO - this should either be a boolean or maybe an enum
+ @ManagedAttribute
+ int getMessageGroupSharedGroups();
+
+
+ @ManagedAttribute
+ int getMaximumDeliveryAttempts();
+
+ @ManagedAttribute
+ long getQueueFlowControlSizeBytes();
+
+ @ManagedAttribute
+ long getQueueFlowResumeSizeBytes();
+
+
+ // TODO - this is not an attribute
+ @ManagedAttribute
+ boolean isQueueFlowStopped();
+
+
+ @ManagedAttribute
+ long getAlertThresholdMessageAge();
+
+ @ManagedAttribute
+ long getAlertThresholdMessageSize();
+
+ @ManagedAttribute
+ long getAlertThresholdQueueDepthBytes();
+
+ @ManagedAttribute
+ long getAlertThresholdQueueDepthMessages();
+
+ @ManagedAttribute
+ long getAlertRepeatGap();
+
+ @ManagedAttribute
+ int getPriorities();
- public static final Collection<String> AVAILABLE_ATTRIBUTES =
- Collections.unmodifiableList(
- Arrays.asList(ID,
- NAME,
- DESCRIPTION,
- STATE,
- DURABLE,
- LIFETIME_POLICY,
- TIME_TO_LIVE,
- CREATED,
- UPDATED,
- QUEUE_TYPE,
- ALTERNATE_EXCHANGE,
- EXCLUSIVE,
- OWNER,
- NO_LOCAL,
- LVQ_KEY,
- SORT_KEY,
- MESSAGE_GROUP_KEY,
- MESSAGE_GROUP_SHARED_GROUPS,
- MAXIMUM_DELIVERY_ATTEMPTS,
- QUEUE_FLOW_CONTROL_SIZE_BYTES,
- QUEUE_FLOW_RESUME_SIZE_BYTES,
- QUEUE_FLOW_STOPPED,
- ALERT_THRESHOLD_MESSAGE_AGE,
- ALERT_THRESHOLD_MESSAGE_SIZE,
- ALERT_THRESHOLD_QUEUE_DEPTH_BYTES,
- ALERT_THRESHOLD_QUEUE_DEPTH_MESSAGES,
- ALERT_REPEAT_GAP,
- PRIORITIES
- ));
//children
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Session.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Session.java
index 40ff3ef686..a6cd7cc9d6 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Session.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Session.java
@@ -24,7 +24,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-public interface Session extends ConfiguredObject
+public interface Session<X extends Session<X>> extends ConfiguredObject<X>
{
// Statistics
@@ -63,17 +63,12 @@ public interface Session extends ConfiguredObject
// available credit of both producer and consumer sides.
public static final String PRODUCER_FLOW_BLOCKED = "producerFlowBlocked";
- public static final Collection<String> AVAILABLE_ATTRIBUTES =
- Collections.unmodifiableCollection(Arrays.asList(ID,
- NAME,
- STATE,
- DURABLE,
- LIFETIME_POLICY,
- TIME_TO_LIVE,
- CREATED,
- UPDATED,
- CHANNEL_ID,
- PRODUCER_FLOW_BLOCKED));
+ @ManagedAttribute
+ int getChannelId();
+
+ @ManagedAttribute
+ boolean isProducerFlowBlocked();
+
Collection<Consumer> getConsumers();
Collection<Publisher> getPublishers();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java
index e4eac98bc0..3c660ac3a6 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java
@@ -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 ConfiguredObject
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;
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/User.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/User.java
index 9d7dd7c0cd..b242080e03 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/User.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/User.java
@@ -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 ConfiguredObject
PASSWORD
));
+
+ @ManagedAttribute
+ String getPassword();
+
public void setPassword(String password);
public Map<String, Object> getPreferences();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
index dd3e9e4b61..e24b048870 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
@@ -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
-)
-
-public interface VirtualHost extends ConfiguredObject
+@AmqpManagement( managesChildren = true )
+
+public interface VirtualHost<X extends VirtualHost<X>> extends ConfiguredObject<X>
{
// Statistics
@@ -121,47 +85,77 @@ public interface VirtualHost extends ConfiguredObject
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();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostAlias.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostAlias.java
index 31403d78e5..92e0d7fff9 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostAlias.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostAlias.java
@@ -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();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractConfiguredObject.java
index cc669538d8..bae890ecf6 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractConfiguredObject.java
@@ -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.configuration.updater.CreateChildTask;
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 implements ConfiguredObject
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 implements ConfiguredObject
}
}
- 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 implements ConfiguredObject
}
else
{
- return getActualState();
+ return getState();
}
}
else
@@ -232,6 +236,18 @@ public abstract class AbstractAdapter implements ConfiguredObject
}
@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 implements ConfiguredObject
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);
+ }
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractKeyStoreAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractKeyStoreAdapter.java
index 707cf8076d..315584c4d5 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractKeyStoreAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractKeyStoreAdapter.java
@@ -35,7 +35,7 @@ import org.apache.qpid.server.model.Statistics;
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 AbstractKeyStoreAdapter extends AbstractAdapter
}
@Override
- public State getActualState()
+ public State getState()
{
return State.ACTIVE;
}
@@ -140,7 +140,7 @@ public abstract class AbstractKeyStoreAdapter extends AbstractAdapter
}
else if(KeyStore.STATE.equals(name))
{
- return getActualState();
+ return getState();
}
else if(KeyStore.DURABLE.equals(name))
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java
index 2867a92410..ab33933eec 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java
@@ -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.State;
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 AbstractPluginAdapter extends AbstractAdapter implements P
}
@Override
- public State getActualState()
+ public State getState()
{
return null;
}
@@ -110,7 +111,7 @@ public abstract class AbstractPluginAdapter extends AbstractAdapter implements P
@Override
public Collection<String> getAttributeNames()
{
- return AVAILABLE_ATTRIBUTES;
+ return Attribute.getAttributeNames(Plugin.class);
}
@Override
@@ -122,7 +123,7 @@ public abstract class AbstractPluginAdapter extends AbstractAdapter implements P
}
else if (STATE.equals(name))
{
- return getActualState();
+ return getState();
}
else if (DURABLE.equals(name))
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderAdapter.java
index a6fe191523..3b69c66d7e 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderAdapter.java
@@ -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 AccessControlProviderAdapter extends AbstractAdapter implements Acc
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 AccessControlProviderAdapter extends AbstractAdapter implements Acc
}
@Override
- public State getActualState()
+ public State getState()
{
return _state.get();
}
@@ -183,7 +177,7 @@ public class AccessControlProviderAdapter extends AbstractAdapter implements Acc
}
else if(STATE.equals(name))
{
- return getActualState();
+ return getState();
}
else if(TIME_TO_LIVE.equals(name))
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java
index 42a234579b..1e1a9ba4ec 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java
@@ -50,12 +50,12 @@ import org.apache.qpid.server.transport.TransportProvider;
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 PortAdapter
}
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;
+ }
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java
index 162f579114..bf244975ee 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java
@@ -35,20 +35,7 @@ import java.util.concurrent.atomic.AtomicReference;
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.auth.manager.PrincipalDatabaseAuthenticat
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 AuthenticationProviderAdapter<T extends AuthenticationMana
}
@Override
- public State getActualState()
+ public State getState()
{
return _state.get();
}
@@ -200,7 +189,7 @@ public abstract class AuthenticationProviderAdapter<T extends AuthenticationMana
}
else if(STATE.equals(name))
{
- return getActualState();
+ return getState();
}
else if(TIME_TO_LIVE.equals(name))
{
@@ -250,7 +239,7 @@ public abstract class AuthenticationProviderAdapter<T extends AuthenticationMana
_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 AuthenticationProviderAdapter<T extends AuthenticationMana
_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 AuthenticationProviderAdapter<T extends AuthenticationMana
_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 AuthenticationProviderAdapter<T extends AuthenticationMana
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 AuthenticationProviderAdapter<T extends AuthenticationMana
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 AuthenticationProviderAdapter<T extends AuthenticationMana
}
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 AuthenticationProviderAdapter<T extends AuthenticationMana
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 AuthenticationProviderAdapter<T extends AuthenticationMana
}
@Override
+ public String getPassword()
+ {
+ return (String)getAttribute(PASSWORD);
+ }
+
+ @Override
public void setPassword(String password)
{
try
@@ -631,7 +626,7 @@ public abstract class AuthenticationProviderAdapter<T extends AuthenticationMana
}
@Override
- public State getActualState()
+ public State getState()
{
return State.ACTIVE;
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java
index 322c8a0ea4..06f3dbd50e 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java
@@ -60,7 +60,7 @@ public class AuthenticationProviderFactory
*/
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 AuthenticationProviderFactory
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,
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BindingAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BindingAdapter.java
index 5111810556..e53db4a2da 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BindingAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BindingAdapter.java
@@ -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;
-
-final class BindingAdapter extends AbstractAdapter implements Binding
+import org.apache.qpid.server.model.*;
+
+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 AbstractAdapter implements Binding
return null; //TODO
}
- public State getActualState()
+ public State getState()
{
return null; //TODO
}
@@ -195,7 +188,7 @@ final class BindingAdapter extends AbstractAdapter implements Binding
@Override
public Collection<String> getAttributeNames()
{
- return Binding.AVAILABLE_ATTRIBUTES;
+ return Attribute.getAttributeNames(Binding.class);
}
@Override
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
index d380996da2..95af3ec74c 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
@@ -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.RootMessageLogger;
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 AbstractAdapter implements Broker, Configurat
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 AbstractAdapter implements Broker, Configurat
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 AbstractAdapter implements Broker, Configurat
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 AbstractAdapter implements Broker, Configurat
return null;
}
- public KeyStore findKeyStoreByName(String keyStoreName)
+ public KeyStore<?> findKeyStoreByName(String keyStoreName)
{
synchronized(_keyStores)
{
@@ -273,7 +453,7 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat
}
}
- public TrustStore findTrustStoreByName(String trustStoreName)
+ public TrustStore<?> findTrustStoreByName(String trustStoreName)
{
synchronized(_trustStores)
{
@@ -282,13 +462,11 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat
}
@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 AbstractAdapter implements Broker, Configurat
}
- public State getActualState()
+ public State getState()
{
return null; //TODO
}
@@ -462,7 +640,7 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat
*/
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 AbstractAdapter implements Broker, Configurat
return port;
}
- private void addPort(Port port)
+ private void addPort(Port<?> port)
{
synchronized (_portAdapters)
{
@@ -485,19 +663,19 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat
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 AbstractAdapter implements Broker, Configurat
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 AbstractAdapter implements Broker, Configurat
/**
* @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 AbstractAdapter implements Broker, Configurat
{
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 AbstractAdapter implements Broker, Configurat
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 AbstractAdapter implements Broker, Configurat
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 AbstractAdapter implements Broker, Configurat
/**
* @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 AbstractAdapter implements Broker, Configurat
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 AbstractAdapter implements Broker, Configurat
@Override
public Collection<String> getAttributeNames()
{
- return AVAILABLE_ATTRIBUTES;
+ return Attribute.getAttributeNames(Broker.class);
}
@Override
@@ -786,7 +964,7 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat
{
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 AbstractAdapter implements Broker, Configurat
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 AbstractAdapter implements Broker, Configurat
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 AbstractAdapter implements Broker, Configurat
return removedAuthenticationProvider != null;
}
- private void addVirtualHost(VirtualHost virtualHost)
+ private void addVirtualHost(VirtualHost<?> virtualHost)
{
synchronized (_vhostAdapters)
{
@@ -909,7 +1087,7 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat
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 AbstractAdapter implements Broker, Configurat
{
//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 AbstractAdapter implements Broker, Configurat
}
- private Collection<ConfiguredObject> getPlugins()
+ private Collection<ConfiguredObject<?>> getPlugins()
{
synchronized(_plugins)
{
@@ -1104,12 +1282,12 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat
}
@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 AbstractAdapter implements Broker, Configurat
}
@Override
- public Collection<KeyStore> getKeyStores()
+ public Collection<KeyStore<?>> getKeyStores()
{
synchronized(_keyStores)
{
@@ -1130,7 +1308,7 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat
}
@Override
- public Collection<TrustStore> getTrustStores()
+ public Collection<TrustStore<?>> getTrustStores()
{
synchronized(_trustStores)
{
@@ -1245,11 +1423,11 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat
}
@Override
- public Collection<AccessControlProvider> getAccessControlProviders()
+ public Collection<AccessControlProvider<?>> getAccessControlProviders()
{
synchronized (_accessControlProviders)
{
- return new ArrayList<AccessControlProvider>(_accessControlProviders.values());
+ return new ArrayList<AccessControlProvider<?>>(_accessControlProviders.values());
}
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
index 3cb6493338..41510836db 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
@@ -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 AbstractAdapter implements Connection
_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 AbstractAdapter implements Connection
return null; //TODO
}
- public State getActualState()
+ public State getState()
{
return null; //TODO
}
@@ -230,8 +290,8 @@ final class ConnectionAdapter extends AbstractAdapter implements Connection
@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);
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConsumerAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConsumerAdapter.java
index 7935077a40..2573390851 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConsumerAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConsumerAdapter.java
@@ -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.AccessControlException;
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 AbstractAdapter implements org.apache.qpid.
return null; //TODO
}
- public State getActualState()
+ public State getState()
{
return null; //TODO
}
@@ -106,7 +108,7 @@ public class ConsumerAdapter extends AbstractAdapter implements org.apache.qpid.
@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 AbstractAdapter implements org.apache.qpid.
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
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java
index 52226d503a..cfd1af1f4b 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java
@@ -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 AbstractAdapter implements Exchange, org.apa
}
- public String getExchangeType()
+ @Override
+ public String getType()
{
return _exchange.getType().getType();
}
@@ -171,7 +165,7 @@ final class ExchangeAdapter extends AbstractAdapter implements Exchange, org.apa
return null; //TODO
}
- public State getActualState()
+ public State getState()
{
return null; //TODO
}
@@ -341,7 +335,7 @@ final class ExchangeAdapter extends AbstractAdapter implements Exchange, org.apa
}
else if(TYPE.equals(name))
{
- return _exchange.getTypeName();
+ return getType();
}
return super.getAttribute(name);
}
@@ -349,7 +343,7 @@ final class ExchangeAdapter extends AbstractAdapter implements Exchange, org.apa
@Override
public Collection<String> getAttributeNames()
{
- return AVAILABLE_ATTRIBUTES;
+ return Attribute.getAttributeNames(Exchange.class);
}
@Override
@@ -422,4 +416,10 @@ final class ExchangeAdapter extends AbstractAdapter implements Exchange, org.apa
return null; // TODO - Implement
}
}
+
+ @Override
+ public Exchange<?> getAlternateExchange()
+ {
+ return null;
+ }
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java
index ea1f735c15..bc43617a26 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java
@@ -45,14 +45,7 @@ import java.util.concurrent.atomic.AtomicReference;
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.ObjectMapper;
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 FileSystemPreferencesProvider extends AbstractAdapter implements Pr
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 FileSystemPreferencesProvider extends AbstractAdapter implements Pr
@Override
public Collection<String> getAttributeNames()
{
- return AVAILABLE_ATTRIBUTES;
+ return Attribute.getAttributeNames(FileSystemPreferencesProvider.class);
}
@Override
@@ -115,6 +102,12 @@ public class FileSystemPreferencesProvider extends AbstractAdapter implements Pr
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 FileSystemPreferencesProvider extends AbstractAdapter implements Pr
}
@Override
- public State getActualState()
+ public State getState()
{
return _state.get();
}
@@ -198,7 +191,7 @@ public class FileSystemPreferencesProvider extends AbstractAdapter implements Pr
}
else if (STATE.equals(name))
{
- return getActualState();
+ return getState();
}
else if (TIME_TO_LIVE.equals(name))
{
@@ -249,7 +242,7 @@ public class FileSystemPreferencesProvider extends AbstractAdapter implements Pr
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 FileSystemPreferencesProvider extends AbstractAdapter implements Pr
return _store.listUserIDs();
}
- public AuthenticationProvider getAuthenticationProvider()
+ public AuthenticationProvider<? extends AuthenticationProvider> getAuthenticationProvider()
{
return _authenticationProvider;
}
@@ -378,7 +371,7 @@ public class FileSystemPreferencesProvider extends AbstractAdapter implements Pr
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");
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactory.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactory.java
index 32ee910973..666fa47557 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactory.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactory.java
@@ -40,9 +40,9 @@ public class FileSystemPreferencesProviderFactory implements PreferencesProvider
@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
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/GroupProviderAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/GroupProviderAdapter.java
index 973fb6e416..559bdeb6f0 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/GroupProviderAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/GroupProviderAdapter.java
@@ -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 extends AbstractAdapter implements
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 extends AbstractAdapter implements
}
@Override
- public State getActualState()
+ public State getState()
{
return _state.get();
}
@@ -188,7 +178,7 @@ public class GroupProviderAdapter extends AbstractAdapter implements
}
else if (STATE.equals(name))
{
- return getActualState();
+ return getState();
}
else if (TIME_TO_LIVE.equals(name))
{
@@ -372,7 +362,7 @@ public class GroupProviderAdapter extends AbstractAdapter implements
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 extends AbstractAdapter implements
}
@Override
- public State getActualState()
+ public State getState()
{
return State.ACTIVE;
}
@@ -496,7 +486,7 @@ public class GroupProviderAdapter extends AbstractAdapter implements
@Override
public Collection<String> getAttributeNames()
{
- return Group.AVAILABLE_ATTRIBUTES;
+ return Attribute.getAttributeNames(Group.class);
}
@Override
@@ -541,8 +531,8 @@ public class GroupProviderAdapter extends AbstractAdapter implements
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 extends AbstractAdapter implements
@Override
public Collection<String> getAttributeNames()
{
- return GroupMember.AVAILABLE_ATTRIBUTES;
+ return Attribute.getAttributeNames(GroupMember.class);
}
@Override
@@ -586,7 +576,7 @@ public class GroupProviderAdapter extends AbstractAdapter implements
}
@Override
- public State getActualState()
+ public State getState()
{
return null;
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/KeyStoreAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/KeyStoreAdapter.java
index 27ecb9ca75..1ebdb7af4b 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/KeyStoreAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/KeyStoreAdapter.java
@@ -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.ServerScopedRuntimeException;
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 AbstractKeyStoreAdapter implements KeyStore
}
@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 AbstractKeyStoreAdapter implements KeyStore
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 AbstractKeyStoreAdapter implements KeyStore
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 AbstractKeyStoreAdapter implements KeyStore
if (alias != null)
{
- Certificate cert = null;
+ Certificate cert;
try
{
cert = keyStore.getCertificate(alias);
@@ -216,11 +223,35 @@ public class KeyStoreAdapter extends AbstractKeyStoreAdapter implements KeyStore
}
}
+ @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);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/NonAmqpPortAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/NonAmqpPortAdapter.java
new file mode 100644
index 0000000000..24b880c1b7
--- /dev/null
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/NonAmqpPortAdapter.java
@@ -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);
+ }
+}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java
index 882335626d..dcad57c7a4 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java
@@ -33,27 +33,14 @@ import java.util.Set;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicReference;
-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.Connection;
-import org.apache.qpid.server.model.KeyStore;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.model.Port;
-import org.apache.qpid.server.model.Protocol;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.Statistics;
-import org.apache.qpid.server.model.Transport;
-import org.apache.qpid.server.model.TrustStore;
-import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.model.VirtualHostAlias;
+import org.apache.qpid.server.model.*;
import org.apache.qpid.server.security.access.Operation;
import org.apache.qpid.server.util.MapValueConverter;
import org.apache.qpid.server.util.ParameterizedTypeImpl;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.configuration.updater.TaskExecutor;
-public class PortAdapter extends AbstractAdapter implements Port
+abstract public class PortAdapter<X extends PortAdapter<X>> extends AbstractConfiguredObject<X> implements Port<X>
{
@SuppressWarnings("serial")
public static final Map<String, Type> ATTRIBUTE_TYPES = Collections.unmodifiableMap(new HashMap<String, Type>(){{
@@ -73,11 +60,11 @@ public class PortAdapter extends AbstractAdapter implements Port
put(AUTHENTICATION_PROVIDER, String.class);
}});
- private final Broker _broker;
+ private final Broker<?> _broker;
private AuthenticationProvider _authenticationProvider;
private AtomicReference<State> _state;
- public PortAdapter(UUID id, Broker broker, Map<String, Object> attributes, Map<String, Object> defaults, TaskExecutor taskExecutor)
+ public PortAdapter(UUID id, Broker<?> broker, Map<String, Object> attributes, Map<String, Object> defaults, TaskExecutor taskExecutor)
{
super(id, defaults, MapValueConverter.convert(attributes, ATTRIBUTE_TYPES), taskExecutor);
_broker = broker;
@@ -162,9 +149,9 @@ public class PortAdapter extends AbstractAdapter implements Port
public Collection<VirtualHostAlias> getVirtualHostBindings()
{
List<VirtualHostAlias> aliases = new ArrayList<VirtualHostAlias>();
- for(VirtualHost vh : _broker.getVirtualHosts())
+ for(VirtualHost<?> vh : _broker.getVirtualHosts())
{
- for(VirtualHostAlias alias : vh.getAliases())
+ for(VirtualHostAlias<?> alias : vh.getAliases())
{
if(alias.getPort().equals(this))
{
@@ -194,7 +181,7 @@ public class PortAdapter extends AbstractAdapter implements Port
}
@Override
- public State getActualState()
+ public State getState()
{
return _state.get();
}
@@ -272,7 +259,7 @@ public class PortAdapter extends AbstractAdapter implements Port
}
else if(STATE.equals(name))
{
- return getActualState();
+ return getState();
}
else if(DURABLE.equals(name))
{
@@ -300,7 +287,7 @@ public class PortAdapter extends AbstractAdapter implements Port
@Override
public Collection<String> getAttributeNames()
{
- return AVAILABLE_ATTRIBUTES;
+ return Attribute.getAttributeNames(Port.class);
}
@Override
@@ -465,9 +452,9 @@ public class PortAdapter extends AbstractAdapter implements Port
String authenticationProviderName = (String)merged.get(AUTHENTICATION_PROVIDER);
if (authenticationProviderName != null)
{
- Collection<AuthenticationProvider> providers = _broker.getAuthenticationProviders();
- AuthenticationProvider provider = null;
- for (AuthenticationProvider p : providers)
+ Collection<AuthenticationProvider<?>> providers = _broker.getAuthenticationProviders();
+ AuthenticationProvider<?> provider = null;
+ for (AuthenticationProvider<?> p : providers)
{
if (p.getName().equals(authenticationProviderName))
{
@@ -567,4 +554,33 @@ public class PortAdapter extends AbstractAdapter implements Port
return getClass().getSimpleName() + " [id=" + getId() + ", name=" + getName() + ", port=" + getPort() + "]";
}
+ @Override
+ public boolean isTcpNoDelay()
+ {
+ return (Boolean)getAttribute(TCP_NO_DELAY);
+ }
+
+ @Override
+ public int getSendBufferSize()
+ {
+ return (Integer)getAttribute(SEND_BUFFER_SIZE);
+ }
+
+ @Override
+ public int getReceiveBufferSize()
+ {
+ return (Integer)getAttribute(RECEIVE_BUFFER_SIZE);
+ }
+
+ @Override
+ public boolean getNeedClientAuth()
+ {
+ return (Boolean)getAttribute(NEED_CLIENT_AUTH);
+ }
+
+ @Override
+ public boolean getWantClientAuth()
+ {
+ return (Boolean)getAttribute(WANT_CLIENT_AUTH);
+ }
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java
index 25a8cc93ad..8d7ba3688e 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java
@@ -141,7 +141,7 @@ public class PortFactory
}
defaults.put(Port.NAME, portValue + "-" + protocol.name());
- port = new PortAdapter(id, broker, attributes, defaults, broker.getTaskExecutor());
+ port = new NonAmqpPortAdapter(id, broker, attributes, defaults, broker.getTaskExecutor());
boolean rmiPort = port.getProtocols().contains(Protocol.RMI);
if (rmiPort && port.getTransports().contains(Transport.SSL))
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java
index 5223977136..80da77fe5f 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java
@@ -39,7 +39,7 @@ import org.apache.qpid.server.store.DurableConfigurationStoreHelper;
import org.apache.qpid.server.consumer.Consumer;
import org.apache.qpid.server.util.MapValueConverter;
-final class QueueAdapter<Q extends AMQQueue<?,Q,?>> extends AbstractAdapter implements Queue,
+final class QueueAdapter<Q extends AMQQueue<?,Q,?>> extends AbstractConfiguredObject<QueueAdapter<Q>> implements Queue<QueueAdapter<Q>>,
MessageSource.ConsumerRegistrationListener<Q>,
AMQQueue.NotificationListener
{
@@ -135,6 +135,124 @@ final class QueueAdapter<Q extends AMQQueue<?,Q,?>> extends AbstractAdapter impl
}
}
+ @Override
+ public String getQueueType()
+ {
+ return (String) getAttribute(QUEUE_TYPE);
+ }
+
+ @Override
+ public Exchange getAlternateExchange()
+ {
+ org.apache.qpid.server.exchange.Exchange alternateExchange = _queue.getAlternateExchange();
+ return alternateExchange == null ? null :
+ ConfiguredObjectFinder.findConfiguredObjectByName(_vhost.getExchanges(),
+ alternateExchange.getName());
+ }
+
+ @Override
+ public ExclusivityPolicy getExclusive()
+ {
+ return (ExclusivityPolicy) _queue.getAttribute(EXCLUSIVE);
+ }
+
+ @Override
+ public String getOwner()
+ {
+ return _queue.getOwner();
+ }
+
+ @Override
+ public boolean getNoLocal()
+ {
+ // TODO
+ return false;
+ }
+
+ @Override
+ public String getLvqKey()
+ {
+ return (String) _queue.getAttribute(LVQ_KEY);
+ }
+
+ @Override
+ public String getSortKey()
+ {
+ return (String) _queue.getAttribute(SORT_KEY);
+ }
+
+ @Override
+ public String getMessageGroupKey()
+ {
+ return (String) _queue.getAttribute(MESSAGE_GROUP_KEY);
+ }
+
+ @Override
+ public int getMessageGroupSharedGroups()
+ {
+ return (Integer) _queue.getAttribute(MESSAGE_GROUP_SHARED_GROUPS);
+ }
+
+ @Override
+ public int getMaximumDeliveryAttempts()
+ {
+ return _queue.getMaximumDeliveryCount();
+ }
+
+ @Override
+ public long getQueueFlowControlSizeBytes()
+ {
+ return _queue.getCapacity();
+ }
+
+ @Override
+ public long getQueueFlowResumeSizeBytes()
+ {
+ return _queue.getFlowResumeCapacity();
+ }
+
+ @Override
+ public boolean isQueueFlowStopped()
+ {
+ return false;
+ }
+
+ @Override
+ public long getAlertThresholdMessageAge()
+ {
+ return _queue.getMaximumMessageAge();
+ }
+
+ @Override
+ public long getAlertThresholdMessageSize()
+ {
+ return _queue.getMaximumMessageSize();
+ }
+
+ @Override
+ public long getAlertThresholdQueueDepthBytes()
+ {
+ return _queue.getMaximumQueueDepth();
+ }
+
+ @Override
+ public long getAlertThresholdQueueDepthMessages()
+ {
+ return _queue.getMaximumMessageCount();
+ }
+
+ @Override
+ public long getAlertRepeatGap()
+ {
+ return _queue.getMinimumAlertRepeatGap();
+ }
+
+ @Override
+ public int getPriorities()
+ {
+ return (Integer) _queue.getAttribute(PRIORITIES);
+ }
+
public Collection<org.apache.qpid.server.model.Binding> getBindings()
{
synchronized (_bindingAdapters)
@@ -173,7 +291,7 @@ final class QueueAdapter<Q extends AMQQueue<?,Q,?>> extends AbstractAdapter impl
return null; //TODO
}
- public State getActualState()
+ public State getState()
{
return null; //TODO
}
@@ -215,7 +333,7 @@ final class QueueAdapter<Q extends AMQQueue<?,Q,?>> extends AbstractAdapter impl
@Override
public Collection<String> getAttributeNames()
{
- return Queue.AVAILABLE_ATTRIBUTES;
+ return Attribute.getAttributeNames(Queue.class);
}
@Override
@@ -451,10 +569,6 @@ final class QueueAdapter<Q extends AMQQueue<?,Q,?>> extends AbstractAdapter impl
}
return "standard";
}
- else if(CREATED.equals(name))
- {
- // TODO
- }
else if(DURABLE.equals(name))
{
return _queue.isDurable();
@@ -479,10 +593,6 @@ final class QueueAdapter<Q extends AMQQueue<?,Q,?>> extends AbstractAdapter impl
{
// TODO
}
- else if(UPDATED.equals(name))
- {
- // TODO
- }
else if (DESCRIPTION.equals(name))
{
return _queue.getDescription();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java
index 6b76eeefa0..0e14709b83 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java
@@ -28,18 +28,13 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.model.Publisher;
-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.consumer.Consumer;
import org.apache.qpid.server.configuration.updater.TaskExecutor;
import org.apache.qpid.server.protocol.AMQSessionModel;
-final class SessionAdapter extends AbstractAdapter implements Session
+final class SessionAdapter extends AbstractConfiguredObject<SessionAdapter> implements Session<SessionAdapter>
{
// Attributes
@@ -55,6 +50,18 @@ final class SessionAdapter extends AbstractAdapter implements Session
_statistics = new SessionStatistics();
}
+ @Override
+ public int getChannelId()
+ {
+ return _session.getChannelId();
+ }
+
+ @Override
+ public boolean isProducerFlowBlocked()
+ {
+ return _session.getBlocking();
+ }
+
public Collection<org.apache.qpid.server.model.Consumer> getConsumers()
{
synchronized (_consumerAdapters)
@@ -79,7 +86,7 @@ final class SessionAdapter extends AbstractAdapter implements Session
return null; //TODO
}
- public State getActualState()
+ public State getState()
{
return null; //TODO
}
@@ -151,10 +158,7 @@ final class SessionAdapter extends AbstractAdapter implements Session
@Override
public Collection<String> getAttributeNames()
{
- Collection<String> names = new HashSet<String>(super.getAttributeNames());
- names.addAll(AVAILABLE_ATTRIBUTES);
-
- return Collections.unmodifiableCollection(names);
+ return Attribute.getAttributeNames(Session.class);
}
@Override
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/TrustStoreAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/TrustStoreAdapter.java
index 2d703e2baf..65b7a88bb9 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/TrustStoreAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/TrustStoreAdapter.java
@@ -38,9 +38,9 @@ import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509TrustManager;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.model.Attribute;
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.IntegrityViolationException;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.State;
@@ -52,35 +52,35 @@ import org.apache.qpid.transport.network.security.ssl.QpidMultipleTrustManager;
import org.apache.qpid.transport.network.security.ssl.QpidPeersOnlyTrustManager;
import org.apache.qpid.transport.network.security.ssl.SSLUtil;
-public class TrustStoreAdapter extends AbstractKeyStoreAdapter implements TrustStore
+public class TrustStoreAdapter extends AbstractKeyStoreAdapter<TrustStoreAdapter> implements TrustStore<TrustStoreAdapter>
{
@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(TRUST_STORE_TYPE, String.class);
put(PEERS_ONLY, Boolean.class);
put(TRUST_MANAGER_FACTORY_ALGORITHM, String.class);
}});
@SuppressWarnings("serial")
public static final Map<String, Object> DEFAULTS = Collections.unmodifiableMap(new HashMap<String, Object>(){{
- put(TrustStore.TYPE, DEFAULT_KEYSTORE_TYPE);
+ put(TrustStore.TRUST_STORE_TYPE, DEFAULT_KEYSTORE_TYPE);
put(TrustStore.PEERS_ONLY, Boolean.FALSE);
put(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM, TrustManagerFactory.getDefaultAlgorithm());
}});
- private Broker _broker;
+ private Broker<?> _broker;
- public TrustStoreAdapter(UUID id, Broker broker, Map<String, Object> attributes)
+ public TrustStoreAdapter(UUID id, Broker<?> broker, Map<String, Object> attributes)
{
super(id, broker, DEFAULTS, MapValueConverter.convert(attributes, ATTRIBUTE_TYPES));
_broker = broker;
String trustStorePath = (String) getAttribute(TrustStore.PATH);
String trustStorePassword = getPassword();
- String trustStoreType = (String) getAttribute(TrustStore.TYPE);
+ String trustStoreType = (String) getAttribute(TrustStore.TRUST_STORE_TYPE);
String trustManagerFactoryAlgorithm = (String) getAttribute(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM);
validateTrustStoreAttributes(trustStoreType, trustStorePath,
@@ -90,7 +90,7 @@ public class TrustStoreAdapter extends AbstractKeyStoreAdapter implements TrustS
@Override
public Collection<String> getAttributeNames()
{
- return AVAILABLE_ATTRIBUTES;
+ return Attribute.getAttributeNames(TrustStore.class);
}
@Override
@@ -101,7 +101,7 @@ public class TrustStoreAdapter extends AbstractKeyStoreAdapter implements TrustS
// verify that it is not in use
String storeName = getName();
- Collection<Port> ports = new ArrayList<Port>(_broker.getPorts());
+ Collection<Port<?>> ports = new ArrayList<Port<?>>(_broker.getPorts());
for (Port port : ports)
{
Collection<TrustStore> trustStores = port.getTrustStores();
@@ -180,7 +180,7 @@ public class TrustStoreAdapter extends AbstractKeyStoreAdapter implements TrustS
String trustStorePath = (String)merged.get(TrustStore.PATH);
String trustStorePassword = (String) merged.get(TrustStore.PASSWORD);
- String trustStoreType = (String)merged.get(TrustStore.TYPE);
+ String trustStoreType = (String)merged.get(TrustStore.TRUST_STORE_TYPE);
String trustManagerFactoryAlgorithm = (String)merged.get(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM);
validateTrustStoreAttributes(trustStoreType, trustStorePath,
@@ -211,11 +211,35 @@ public class TrustStoreAdapter extends AbstractKeyStoreAdapter implements TrustS
}
}
+ @Override
+ public String getPath()
+ {
+ return (String) getAttribute(PATH);
+ }
+
+ @Override
+ public String getTrustManagerFactoryAlgorithm()
+ {
+ return (String) getAttribute(TRUST_MANAGER_FACTORY_ALGORITHM);
+ }
+
+ @Override
+ public String getTrustStoreType()
+ {
+ return (String) getAttribute(TRUST_STORE_TYPE);
+ }
+
+ @Override
+ public boolean isPeersOnly()
+ {
+ return (Boolean) getAttribute(PEERS_ONLY);
+ }
+
public TrustManager[] getTrustManagers() throws GeneralSecurityException
{
String trustStorePath = (String)getAttribute(TrustStore.PATH);
String trustStorePassword = getPassword();
- String trustStoreType = (String)getAttribute(TrustStore.TYPE);
+ String trustStoreType = (String)getAttribute(TrustStore.TRUST_STORE_TYPE);
String trustManagerFactoryAlgorithm = (String)getAttribute(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM);
try
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
index 4c694657a8..65b658b22a 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
@@ -45,20 +45,7 @@ import org.apache.qpid.server.configuration.VirtualHostConfiguration;
import org.apache.qpid.server.configuration.XmlConfigurationUtilities.MyConfiguration;
import org.apache.qpid.server.message.MessageInstance;
import org.apache.qpid.server.message.ServerMessage;
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.Connection;
-import org.apache.qpid.server.model.Exchange;
-import org.apache.qpid.server.model.IntegrityViolationException;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.model.Port;
-import org.apache.qpid.server.model.Protocol;
-import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.QueueType;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.Statistics;
-import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.model.VirtualHostAlias;
+import org.apache.qpid.server.model.*;
import org.apache.qpid.server.configuration.updater.TaskExecutor;
import org.apache.qpid.server.plugin.ExchangeType;
import org.apache.qpid.server.protocol.AMQConnectionModel;
@@ -73,7 +60,6 @@ import org.apache.qpid.server.txn.ServerTransaction;
import org.apache.qpid.server.util.MapValueConverter;
import org.apache.qpid.server.plugin.VirtualHostFactory;
import org.apache.qpid.server.util.ServerScopedRuntimeException;
-import org.apache.qpid.server.virtualhost.AbstractVirtualHost;
import org.apache.qpid.server.virtualhost.ExchangeExistsException;
import org.apache.qpid.server.virtualhost.ReservedExchangeNameException;
import org.apache.qpid.server.virtualhost.UnknownExchangeException;
@@ -81,7 +67,7 @@ import org.apache.qpid.server.virtualhost.VirtualHostListener;
import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
import org.apache.qpid.server.virtualhost.QueueExistsException;
-public final class VirtualHostAdapter extends AbstractAdapter implements VirtualHost, VirtualHostListener
+public final class VirtualHostAdapter extends AbstractConfiguredObject<VirtualHostAdapter> implements VirtualHost<VirtualHostAdapter>, VirtualHostListener
{
private static final Logger LOGGER = Logger.getLogger(VirtualHostAdapter.class);
@@ -106,11 +92,11 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual
private final Map<org.apache.qpid.server.exchange.Exchange, ExchangeAdapter> _exchangeAdapters =
new HashMap<org.apache.qpid.server.exchange.Exchange, ExchangeAdapter>();
private StatisticsAdapter _statistics;
- private final Broker _broker;
+ private final Broker<?> _broker;
private final List<VirtualHostAlias> _aliases = new ArrayList<VirtualHostAlias>();
private StatisticsGatherer _brokerStatisticsGatherer;
- public VirtualHostAdapter(UUID id, Map<String, Object> attributes, Broker broker, StatisticsGatherer brokerStatisticsGatherer, TaskExecutor taskExecutor)
+ public VirtualHostAdapter(UUID id, Map<String, Object> attributes, Broker<?> broker, StatisticsGatherer brokerStatisticsGatherer, TaskExecutor taskExecutor)
{
super(id, null, MapValueConverter.convert(attributes, ATTRIBUTE_TYPES, false), taskExecutor, false);
_broker = broker;
@@ -460,7 +446,7 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual
@Override
- public State getActualState()
+ public State getState()
{
if (_virtualHost == null)
{
@@ -817,7 +803,7 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual
}
else if(STATE.equals(name))
{
- return getActualState();
+ return getState();
}
else if(DURABLE.equals(name))
{
@@ -931,7 +917,7 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual
@Override
public Collection<String> getAttributeNames()
{
- return AVAILABLE_ATTRIBUTES;
+ return Attribute.getAttributeNames(VirtualHost.class);
}
private void checkVHostStateIsActive()
@@ -943,6 +929,137 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual
}
}
+ @Override
+ public Collection<String> getSupportedExchangeTypes()
+ {
+ List<String> types = new ArrayList<String>();
+ for(@SuppressWarnings("rawtypes") ExchangeType type : _virtualHost.getExchangeTypes())
+ {
+ types.add(type.getType());
+ }
+ return Collections.unmodifiableCollection(types);
+ }
+
+ @Override
+ public Collection<String> getSupportedQueueTypes()
+ {
+ // TODO
+ return null;
+ }
+
+ @Override
+ public boolean isQueue_deadLetterQueueEnabled()
+ {
+ return _virtualHost.getConfiguration().isDeadLetterQueueEnabled();
+ }
+
+ @Override
+ public long getHousekeepingCheckPeriod()
+ {
+ return _virtualHost.getConfiguration().getHousekeepingCheckPeriod();
+ }
+
+ @Override
+ public int getQueue_maximumDeliveryAttempts()
+ {
+ return _virtualHost.getConfiguration().getMaxDeliveryCount();
+ }
+
+ @Override
+ public long getQueue_flowControlSizeBytes()
+ {
+ return _virtualHost.getConfiguration().getCapacity();
+ }
+
+ @Override
+ public long getQueue_flowResumeSizeBytes()
+ {
+ return _virtualHost.getConfiguration().getFlowResumeCapacity();
+ }
+
+ @Override
+ public String getConfigStoreType()
+ {
+ return (String) getAttribute(CONFIG_STORE_TYPE);
+ }
+
+ @Override
+ public String getConfigStorePath()
+ {
+ return (String) getAttribute(CONFIG_PATH);
+ }
+
+ @Override
+ public String getStoreType()
+ {
+ return _virtualHost.getMessageStore().getStoreType();
+ }
+
+ @Override
+ public String getStorePath()
+ {
+ return _virtualHost.getMessageStore().getStoreLocation();
+ }
+
+ @Override
+ public long getStoreTransactionIdleTimeoutClose()
+ {
+ return _virtualHost.getConfiguration().getTransactionTimeoutIdleClose();
+ }
+
+ @Override
+ public long getStoreTransactionIdleTimeoutWarn()
+ {
+ return _virtualHost.getConfiguration().getTransactionTimeoutIdleWarn();
+ }
+
+ @Override
+ public long getStoreTransactionOpenTimeoutClose()
+ {
+ return _virtualHost.getConfiguration().getTransactionTimeoutOpenClose();
+ }
+
+ @Override
+ public long getStoreTransactionOpenTimeoutWarn()
+ {
+ return _virtualHost.getConfiguration().getTransactionTimeoutOpenWarn();
+ }
+
+ @Override
+ public long getQueue_alertRepeatGap()
+ {
+ return _virtualHost.getConfiguration().getMinimumAlertRepeatGap();
+ }
+
+ @Override
+ public long getQueue_alertThresholdMessageAge()
+ {
+ return _virtualHost.getConfiguration().getMaximumMessageAge();
+ }
+
+ @Override
+ public long getQueue_alertThresholdMessageSize()
+ {
+ return _virtualHost.getConfiguration().getMaximumMessageSize();
+ }
+
+ @Override
+ public long getQueue_alertThresholdQueueDepthBytes()
+ {
+ return _virtualHost.getConfiguration().getMaximumQueueDepth();
+ }
+
+ @Override
+ public long getQueue_alertThresholdQueueDepthMessages()
+ {
+ return _virtualHost.getConfiguration().getMaximumMessageCount();
+ }
+
+ @Override
+ public String getConfigPath()
+ {
+ return (String) getAttribute(CONFIG_PATH);
+ }
private static class VirtualHostStatisticsAdapter extends StatisticsAdapter
{
@@ -1058,7 +1175,7 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual
_virtualHost = null;
}
- setAttribute(VirtualHost.STATE, getActualState(), State.DELETED);
+ setAttribute(VirtualHost.STATE, getState(), State.DELETED);
return true;
}
return false;
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java
index 91b705b004..43ae1d0c44 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java
@@ -36,7 +36,7 @@ import java.security.AccessControlException;
import java.util.Collection;
import java.util.Collections;
-public class VirtualHostAliasAdapter extends AbstractAdapter implements VirtualHostAlias
+public class VirtualHostAliasAdapter extends AbstractConfiguredObject<VirtualHostAliasAdapter> implements VirtualHostAlias<VirtualHostAliasAdapter>
{
private VirtualHostAdapter _vhost;
private Port _port;
@@ -79,7 +79,7 @@ public class VirtualHostAliasAdapter extends AbstractAdapter implements Virtual
}
@Override
- public State getActualState()
+ public State getState()
{
return State.ACTIVE; // TODO - Implement
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/PreferencesProviderFactory.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/PreferencesProviderFactory.java
index 92135ab14a..05de1950f7 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/PreferencesProviderFactory.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/PreferencesProviderFactory.java
@@ -28,6 +28,6 @@ public interface PreferencesProviderFactory extends Pluggable
{
PluggableFactoryLoader<PreferencesProviderFactory> FACTORIES = new PluggableFactoryLoader<PreferencesProviderFactory>(PreferencesProviderFactory.class);
- PreferencesProvider createInstance(UUID id, Map<String, Object> attributes, AuthenticationProvider authenticationProvider);
+ PreferencesProvider createInstance(UUID id, Map<String, Object> attributes, AuthenticationProvider<? extends AuthenticationProvider> authenticationProvider);
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java
index 3ce9383ee0..3742e6b3db 100755
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java
@@ -48,7 +48,7 @@ public class MultiVersionProtocolEngineFactory implements ProtocolEngineFactory
private final Transport _transport;
private final ProtocolEngineCreator[] _creators;
- public MultiVersionProtocolEngineFactory(Broker broker,
+ public MultiVersionProtocolEngineFactory(Broker<?> broker,
SSLContext sslContext,
boolean wantClientAuth,
boolean needClientAuth,
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueArgumentsConverter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueArgumentsConverter.java
index 49123f8412..43f0b4254c 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueArgumentsConverter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueArgumentsConverter.java
@@ -88,8 +88,7 @@ public class QueueArgumentsConverter
ATTRIBUTE_MAPPINGS.put(QPID_GROUP_HEADER_KEY, Queue.MESSAGE_GROUP_KEY);
//ATTRIBUTE_MAPPINGS.put(QPID_SHARED_MSG_GROUP, Queue.MESSAGE_GROUP_SHARED_GROUPS);
ATTRIBUTE_MAPPINGS.put(QPID_DEFAULT_MESSAGE_GROUP_ARG, Queue.MESSAGE_GROUP_DEFAULT_GROUP);
- ATTRIBUTE_MAPPINGS.put(QPID_TRACE_EXCLUDE, Queue.FEDERATION_EXCLUDES);
- ATTRIBUTE_MAPPINGS.put(QPID_TRACE_ID, Queue.FEDERATION_ID);
+
ATTRIBUTE_MAPPINGS.put(QPID_NO_LOCAL, Queue.NO_LOCAL);
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
index cc1b22d8e1..429f1b3fa1 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
@@ -253,7 +253,7 @@ public class ApplicationRegistry implements IApplicationRegistry
if (_broker != null)
{
- _broker.setDesiredState(_broker.getActualState(), State.STOPPED);
+ _broker.setDesiredState(_broker.getState(), State.STOPPED);
}
//Shutdown virtualhosts
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java
index 8dd8dda220..5dc8bb9077 100755
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java
@@ -587,7 +587,7 @@ public class SecurityManager implements ConfigurationChangeListener
Collection<AccessControlProvider> providers = _broker.getAccessControlProviders();
for(AccessControlProvider p : providers)
{
- if(p == object || p.getActualState() != State.ACTIVE)
+ if(p == object || p.getState() != State.ACTIVE)
{
//we don't count ourself as another
continue;
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java
index 9fbfba4872..ac9bfdcaae 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java
@@ -71,6 +71,24 @@ public class JsonFileConfigStore implements DurableConfigurationStore
{
_name = virtualHost.getName();
+ setup(virtualHost);
+ load();
+ recoveryHandler.beginConfigurationRecovery(this,_configVersion);
+ List<ConfiguredObjectRecord> records = new ArrayList<ConfiguredObjectRecord>(_objectsById.values());
+ for(ConfiguredObjectRecord record : records)
+ {
+ recoveryHandler.configuredObject(record.getId(), record.getType(), record.getAttributes());
+ }
+ int oldConfigVersion = _configVersion;
+ _configVersion = recoveryHandler.completeConfigurationRecovery();
+ if(oldConfigVersion != _configVersion)
+ {
+ save();
+ }
+ }
+
+ protected void setup(final VirtualHost virtualHost)
+ {
Object storePathAttr = virtualHost.getAttribute(VirtualHost.CONFIG_STORE_PATH);
if(!(storePathAttr instanceof String))
{
@@ -101,21 +119,6 @@ public class JsonFileConfigStore implements DurableConfigurationStore
renameFile(_backupFileName, _configFileName);
}
}
-
-
- load();
- recoveryHandler.beginConfigurationRecovery(this,_configVersion);
- List<ConfiguredObjectRecord> records = new ArrayList<ConfiguredObjectRecord>(_objectsById.values());
- for(ConfiguredObjectRecord record : records)
- {
- recoveryHandler.configuredObject(record.getId(), record.getType(), record.getAttributes());
- }
- int oldConfigVersion = _configVersion;
- _configVersion = recoveryHandler.completeConfigurationRecovery();
- if(oldConfigVersion != _configVersion)
- {
- save();
- }
}
private void renameFile(String fromFileName, String toFileName)
@@ -194,39 +197,13 @@ public class JsonFileConfigStore implements DurableConfigurationStore
}
}
- private void load()
+ protected void load()
{
final File configFile = new File(_directoryName, _configFileName);
try
{
Map data = _objectMapper.readValue(configFile,Map.class);
- Collection<Class<? extends ConfiguredObject>> childClasses =
- MODEL.getChildTypes(VirtualHost.class);
- data.remove("modelVersion");
- Object configVersion;
- if((configVersion = data.remove("configVersion")) instanceof Integer)
- {
- _configVersion = (Integer) configVersion;
- }
- for(Class<? extends ConfiguredObject> childClass : childClasses)
- {
- final String type = childClass.getSimpleName();
- String attrName = type.toLowerCase() + "s";
- Object children = data.remove(attrName);
- if(children != null)
- {
- if(children instanceof Collection)
- {
- for(Object child : (Collection)children)
- {
- if(child instanceof Map)
- {
- loadChild(childClass, (Map)child, VirtualHost.class, null);
- }
- }
- }
- }
- }
+ loadFromMap(data);
}
catch (JsonMappingException e)
{
@@ -243,6 +220,37 @@ public class JsonFileConfigStore implements DurableConfigurationStore
}
+ protected void loadFromMap(final Map data)
+ {
+ Collection<Class<? extends ConfiguredObject>> childClasses =
+ MODEL.getChildTypes(VirtualHost.class);
+ data.remove("modelVersion");
+ Object configVersion;
+ if((configVersion = data.remove("configVersion")) instanceof Integer)
+ {
+ _configVersion = (Integer) configVersion;
+ }
+ for(Class<? extends ConfiguredObject> childClass : childClasses)
+ {
+ final String type = childClass.getSimpleName();
+ String attrName = type.toLowerCase() + "s";
+ Object children = data.remove(attrName);
+ if(children != null)
+ {
+ if(children instanceof Collection)
+ {
+ for(Object child : (Collection)children)
+ {
+ if(child instanceof Map)
+ {
+ loadChild(childClass, (Map)child, VirtualHost.class, null);
+ }
+ }
+ }
+ }
+ }
+ }
+
private void loadChild(final Class<? extends ConfiguredObject> clazz,
final Map<String,Object> data,
final Class<? extends ConfiguredObject> parentClass,
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java
index a26f892483..377becf9ee 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java
@@ -40,13 +40,13 @@ class TCPandSSLTransport implements AcceptingTransport
private Set<Transport> _transports;
private SSLContext _sslContext;
private InetSocketAddress _bindingSocketAddress;
- private Port _port;
+ private Port<?> _port;
private Set<AmqpProtocolVersion> _supported;
private AmqpProtocolVersion _defaultSupportedProtocolReply;
TCPandSSLTransport(final Set<Transport> transports,
final SSLContext sslContext,
- final Port port,
+ final Port<?> port,
final Set<AmqpProtocolVersion> supported,
final AmqpProtocolVersion defaultSupportedProtocolReply)
{
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/KeyStoreRecovererTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/KeyStoreRecovererTest.java
index b372b44e42..1014f227a0 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/KeyStoreRecovererTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/KeyStoreRecovererTest.java
@@ -109,7 +109,7 @@ public class KeyStoreRecovererTest extends TestCase
attributes.put(KeyStore.NAME, getName());
attributes.put(KeyStore.PATH, TestSSLConstants.BROKER_KEYSTORE);
attributes.put(KeyStore.PASSWORD, TestSSLConstants.BROKER_KEYSTORE_PASSWORD);
- attributes.put(KeyStore.TYPE, "jks");
+ attributes.put(KeyStore.KEY_STORE_TYPE, "jks");
attributes.put(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM, KeyManagerFactory.getDefaultAlgorithm());
attributes.put(KeyStore.CERTIFICATE_ALIAS, "java-broker");
return attributes;
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/TrustStoreRecovererTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/TrustStoreRecovererTest.java
index 3ffa5e496f..f0637f3628 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/TrustStoreRecovererTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/TrustStoreRecovererTest.java
@@ -108,7 +108,7 @@ public class TrustStoreRecovererTest extends QpidTestCase
attributes.put(TrustStore.NAME, getName());
attributes.put(TrustStore.PATH, TestSSLConstants.BROKER_TRUSTSTORE);
attributes.put(TrustStore.PASSWORD, TestSSLConstants.BROKER_TRUSTSTORE_PASSWORD);
- attributes.put(TrustStore.TYPE, "jks");
+ attributes.put(TrustStore.TRUST_STORE_TYPE, "jks");
attributes.put(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM, TrustManagerFactory.getDefaultAlgorithm());
attributes.put(TrustStore.PEERS_ONLY, Boolean.TRUE);
return attributes;
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java
index d419030c1d..18484999de 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java
@@ -286,7 +286,7 @@ public abstract class ConfigurationEntryStoreTestCase extends QpidTestCase
attributes.put(TrustStore.NAME, getName());
attributes.put(TrustStore.PATH, "/path/to/truststore");
attributes.put(TrustStore.PASSWORD, "my-secret-password");
- attributes.put(TrustStore.TYPE, "NON-JKS");
+ attributes.put(TrustStore.TRUST_STORE_TYPE, "NON-JKS");
attributes.put(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM, "NON-STANDARD");
attributes.put(TrustStore.DESCRIPTION, "Description");
@@ -309,7 +309,7 @@ public abstract class ConfigurationEntryStoreTestCase extends QpidTestCase
attributes.put(KeyStore.NAME, getName());
attributes.put(KeyStore.PATH, "/path/to/truststore");
attributes.put(KeyStore.PASSWORD, "my-secret-password");
- attributes.put(KeyStore.TYPE, "NON-JKS");
+ attributes.put(KeyStore.KEY_STORE_TYPE, "NON-JKS");
attributes.put(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM, "NON-STANDARD");
attributes.put(KeyStore.DESCRIPTION, "Description");
attributes.put(KeyStore.CERTIFICATE_ALIAS, "Alias");
@@ -382,7 +382,7 @@ public abstract class ConfigurationEntryStoreTestCase extends QpidTestCase
attributes.put(KeyStore.NAME, getName());
attributes.put(KeyStore.PATH, "/path/to/truststore");
attributes.put(KeyStore.PASSWORD, "my-secret-password");
- attributes.put(KeyStore.TYPE, "NON-JKS");
+ attributes.put(KeyStore.KEY_STORE_TYPE, "NON-JKS");
attributes.put(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM, "NON-STANDARD");
attributes.put(KeyStore.DESCRIPTION, "Description");
attributes.put(KeyStore.CERTIFICATE_ALIAS, "Alias");
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java
index 1b7ef39b89..cf7aa86320 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java
@@ -180,7 +180,7 @@ public class ConfiguredObjectStateTransitionTest extends QpidTestCase
private void assertInvalidStateTransition(ConfiguredObject object, State initialState, State... invalidStates)
{
- assertEquals("Unexpected state", initialState, object.getActualState());
+ assertEquals("Unexpected state", initialState, object.getState());
for (State state : invalidStates)
{
try
@@ -192,19 +192,19 @@ public class ConfiguredObjectStateTransitionTest extends QpidTestCase
// expected
}
assertEquals("Transition from state " + initialState + " into state " + state + " did occur", initialState,
- object.getActualState());
+ object.getState());
}
}
private void assertValidStateTransition(ConfiguredObject object, State initialState, State... validStateSequence)
{
- assertEquals("Unexpected state", initialState, object.getActualState());
+ assertEquals("Unexpected state", initialState, object.getState());
State currentState = initialState;
for (State state : validStateSequence)
{
object.setDesiredState(currentState, state);
assertEquals("Transition from state " + currentState + " into state " + state + " did not occur", state,
- object.getActualState());
+ object.getState());
currentState = state;
}
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java
index 05ac4a1ec3..46a5ab9a3c 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java
@@ -139,7 +139,7 @@ public class VirtualHostTest extends QpidTestCase
host.createChild(Queue.class, arguments);
- Queue queue = ConfiguredObjectFinder.findConfiguredObjectByName(host.getQueues(), queueName);
+ Queue queue = (Queue) ConfiguredObjectFinder.findConfiguredObjectByName(host.getQueues(), queueName);
Object messageGroupKey = queue.getAttribute(Queue.MESSAGE_GROUP_KEY);
assertEquals("Unexpected message group key attribute", "mykey", messageGroupKey);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderTest.java
index 11c16cd9aa..1d942705c7 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderTest.java
@@ -71,7 +71,7 @@ public class FileSystemPreferencesProviderTest extends QpidTestCase
{
if (_preferencesProvider != null)
{
- _preferencesProvider.setDesiredState(_preferencesProvider.getActualState(), State.DELETED);
+ _preferencesProvider.setDesiredState(_preferencesProvider.getState(), State.DELETED);
}
BrokerTestHelper.tearDown();
_preferencesFile.delete();
@@ -85,7 +85,7 @@ public class FileSystemPreferencesProviderTest extends QpidTestCase
public void testConstructionWithExistingFile()
{
_preferencesProvider = createPreferencesProvider();
- assertEquals(State.INITIALISING, _preferencesProvider.getActualState());
+ assertEquals(State.INITIALISING, _preferencesProvider.getState());
}
public void testConstructionWithNonExistingFile()
@@ -98,7 +98,7 @@ public class FileSystemPreferencesProviderTest extends QpidTestCase
attributes.put(FileSystemPreferencesProvider.PATH, nonExistingFile.getAbsolutePath());
_preferencesProvider = new FileSystemPreferencesProvider(UUID.randomUUID(), attributes, _authenticationProvider, _broker.getTaskExecutor());
_preferencesProvider.createStoreIfNotExist();
- assertEquals(State.INITIALISING, _preferencesProvider.getActualState());
+ assertEquals(State.INITIALISING, _preferencesProvider.getState());
assertTrue("Preferences file was not created", nonExistingFile.exists());
}
finally
@@ -117,7 +117,7 @@ public class FileSystemPreferencesProviderTest extends QpidTestCase
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(FileSystemPreferencesProvider.PATH, emptyPrefsFile.getAbsolutePath());
_preferencesProvider = new FileSystemPreferencesProvider(UUID.randomUUID(), attributes, _authenticationProvider, _broker.getTaskExecutor());
- assertEquals(State.INITIALISING, _preferencesProvider.getActualState());
+ assertEquals(State.INITIALISING, _preferencesProvider.getState());
}
finally
{
@@ -130,7 +130,7 @@ public class FileSystemPreferencesProviderTest extends QpidTestCase
_preferencesProvider = createPreferencesProvider();
_preferencesProvider.setDesiredState(State.INITIALISING, State.ACTIVE);
- assertEquals("Unexpected state", State.ACTIVE, _preferencesProvider.getActualState());
+ assertEquals("Unexpected state", State.ACTIVE, _preferencesProvider.getState());
}
public void testChangeAttributes()
diff --git a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
index 7fe280649f..9a6dfa3b7e 100644
--- a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
+++ b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
@@ -33,6 +33,7 @@ import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.message.internal.InternalMessage;
import org.apache.qpid.server.message.internal.InternalMessageHeader;
import org.apache.qpid.server.model.AmqpManagement;
+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.Model;
@@ -96,7 +97,7 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
new CopyOnWriteArrayList<ConsumerRegistrationListener<ManagementNode>>();
private final SystemNodeCreator.SystemNodeRegistry _registry;
- private final ConfiguredObject _managedObject;
+ private final ConfiguredObject<?> _managedObject;
private Map<String, ManagementNodeConsumer> _consumers = new ConcurrentHashMap<String, ManagementNodeConsumer>();
private Map<String,ManagedEntityType> _entityTypes = Collections.synchronizedMap(new LinkedHashMap<String, ManagedEntityType>());
@@ -105,7 +106,7 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
public ManagementNode(final SystemNodeCreator.SystemNodeRegistry registry,
- final ConfiguredObject configuredObject)
+ final ConfiguredObject<?> configuredObject)
{
_virtualHost = registry.getVirtualHost();
_registry = registry;
@@ -213,7 +214,9 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
}
}
- managedEntityType = new ManagedEntityType(clazz.getName(), parentSet.toArray(new ManagedEntityType[parentSet.size()]), entityType.attributes(), opsList.toArray(new String[opsList.size()]));
+ managedEntityType = new ManagedEntityType(clazz.getName(), parentSet.toArray(new ManagedEntityType[parentSet.size()]),
+ (String[])(Attribute.getAttributeNames(clazz).toArray(new String[0])),
+ opsList.toArray(new String[opsList.size()]));
_entityTypes.put(clazz.getName(),managedEntityType);
_entities.put(managedEntityType, Collections.synchronizedMap(new LinkedHashMap<String, ConfiguredObject>()));
@@ -463,7 +466,7 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
responseHeader.setHeader(TYPE_ATTRIBUTE, type);
try
{
- entity.setDesiredState(entity.getActualState(),State.DELETED);
+ entity.setDesiredState(entity.getState(),State.DELETED);
responseHeader.setHeader(STATUS_CODE_HEADER, STATUS_CODE_NO_CONTENT);
}
catch(AccessControlException e)
@@ -802,7 +805,6 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
count = Integer.MAX_VALUE;
}
- responseHeader.setHeader(ATTRIBUTES_HEADER, attributes);
responseHeader.setHeader(STATUS_CODE_HEADER, STATUS_CODE_OK);
List<List<? extends Object>> responseList = new ArrayList<List<? extends Object>>();
@@ -855,7 +857,7 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
break;
}
}
- responseHeader.setHeader(COUNT_HEADER, count);
+ responseHeader.setHeader(COUNT_HEADER, responseList.size()-1);
responseMessage = InternalMessage.createListMessage(_virtualHost.getMessageStore(),
responseHeader,
responseList);
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
index 08b99a206d..14196310a5 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
@@ -51,28 +51,8 @@ import org.apache.qpid.server.management.plugin.servlet.rest.UserPreferencesServ
import org.apache.qpid.server.management.plugin.servlet.rest.RestServlet;
import org.apache.qpid.server.management.plugin.servlet.rest.SaslServlet;
import org.apache.qpid.server.management.plugin.servlet.rest.StructureServlet;
-import org.apache.qpid.server.model.AccessControlProvider;
-import org.apache.qpid.server.model.AuthenticationProvider;
-import org.apache.qpid.server.model.Binding;
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.Connection;
-import org.apache.qpid.server.model.Exchange;
-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.KeyStore;
-import org.apache.qpid.server.model.Plugin;
-import org.apache.qpid.server.model.Port;
-import org.apache.qpid.server.model.PreferencesProvider;
-import org.apache.qpid.server.model.Protocol;
+import org.apache.qpid.server.model.*;
import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.Session;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.Transport;
-import org.apache.qpid.server.model.TrustStore;
-import org.apache.qpid.server.model.User;
-import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.model.adapter.AbstractPluginAdapter;
import org.apache.qpid.server.plugin.PluginFactory;
import org.apache.qpid.server.util.MapValueConverter;
@@ -88,7 +68,7 @@ import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.util.ssl.SslContextFactory;
-public class HttpManagement extends AbstractPluginAdapter implements HttpManagementConfiguration
+public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implements HttpManagementConfiguration<HttpManagement>
{
private final Logger _logger = Logger.getLogger(HttpManagement.class);
@@ -108,17 +88,6 @@ public class HttpManagement extends AbstractPluginAdapter implements HttpManagem
public static final String PLUGIN_TYPE = "MANAGEMENT-HTTP";
- @SuppressWarnings("serial")
- private static final Collection<String> AVAILABLE_ATTRIBUTES = Collections.unmodifiableSet(new HashSet<String>(Plugin.AVAILABLE_ATTRIBUTES)
- {{
- add(HTTP_BASIC_AUTHENTICATION_ENABLED);
- add(HTTPS_BASIC_AUTHENTICATION_ENABLED);
- add(HTTP_SASL_AUTHENTICATION_ENABLED);
- add(HTTPS_SASL_AUTHENTICATION_ENABLED);
- add(TIME_OUT);
- add(PluginFactory.PLUGIN_TYPE);
- }});
-
private static final String OPERATIONAL_LOGGING_NAME = "Web";
@@ -206,8 +175,7 @@ public class HttpManagement extends AbstractPluginAdapter implements HttpManagem
CurrentActor.get().message(ManagementConsoleMessages.STOPPED(OPERATIONAL_LOGGING_NAME));
}
- /** Added for testing purposes */
- int getSessionTimeout()
+ public int getSessionTimeout()
{
return (Integer)getAttribute(TIME_OUT);
}
@@ -224,7 +192,7 @@ public class HttpManagement extends AbstractPluginAdapter implements HttpManagem
int lastPort = -1;
for (Port port : ports)
{
- if (State.QUIESCED.equals(port.getActualState()))
+ if (State.QUIESCED.equals(port.getState()))
{
continue;
}
@@ -462,7 +430,7 @@ public class HttpManagement extends AbstractPluginAdapter implements HttpManagem
@Override
public Collection<String> getAttributeNames()
{
- return Collections.unmodifiableCollection(AVAILABLE_ATTRIBUTES);
+ return Attribute.getAttributeNames(HttpManagement.class);
}
@Override
@@ -524,4 +492,10 @@ public class HttpManagement extends AbstractPluginAdapter implements HttpManagem
}
}
+
+ @Override
+ public String getPluginType()
+ {
+ return PLUGIN_TYPE;
+ }
}
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java
index 7d89daa427..3b159b1e5d 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java
@@ -23,16 +23,26 @@ package org.apache.qpid.server.management.plugin;
import java.net.SocketAddress;
import org.apache.qpid.server.model.AuthenticationProvider;
+import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.ManagedAttribute;
+import org.apache.qpid.server.model.Plugin;
-public interface HttpManagementConfiguration
+public interface HttpManagementConfiguration<X extends HttpManagementConfiguration<X>> extends Plugin<X>
{
+ @ManagedAttribute
boolean isHttpsSaslAuthenticationEnabled();
+ @ManagedAttribute
boolean isHttpSaslAuthenticationEnabled();
+ @ManagedAttribute
boolean isHttpsBasicAuthenticationEnabled();
+ @ManagedAttribute
boolean isHttpBasicAuthenticationEnabled();
+ @ManagedAttribute
+ public int getSessionTimeout();
+
AuthenticationProvider getAuthenticationProvider(SocketAddress localAddress);
}
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java
index 0efb76a241..ec6b91f829 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java
@@ -75,9 +75,9 @@ public class HttpManagementUtil
private static final String ATTR_SUBJECT = "Qpid.subject";
private static final String ATTR_LOG_ACTOR = "Qpid.logActor";
- public static Broker getBroker(ServletContext servletContext)
+ public static Broker<?> getBroker(ServletContext servletContext)
{
- return (Broker) servletContext.getAttribute(ATTR_BROKER);
+ return (Broker<?>) servletContext.getAttribute(ATTR_BROKER);
}
public static HttpManagementConfiguration getManagementConfiguration(ServletContext servletContext)
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java
index 1a13733ff5..1133b6e091 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java
@@ -50,7 +50,7 @@ public abstract class AbstractServlet extends HttpServlet
{
private static final Logger LOGGER = Logger.getLogger(AbstractServlet.class);
- private Broker _broker;
+ private Broker<?> _broker;
private HttpManagementConfiguration _managementConfiguration;
protected AbstractServlet()
@@ -240,7 +240,7 @@ public abstract class AbstractServlet extends HttpServlet
return subject;
}
- protected Broker getBroker()
+ protected Broker<?> getBroker()
{
return _broker;
}
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java
index 03dd7c66a8..0d5d868af2 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java
@@ -37,7 +37,7 @@ public class ConfiguredObjectToMapConverter
private Model _model = Model.getInstance();
- public Map<String, Object> convertObjectToMap(final ConfiguredObject confObject,
+ public Map<String, Object> convertObjectToMap(final ConfiguredObject<?> confObject,
Class<? extends ConfiguredObject> clazz,
int depth)
{
@@ -62,7 +62,7 @@ public class ConfiguredObjectToMapConverter
}
private void incorporateAttributesIntoMap(
- final ConfiguredObject confObject, Map<String, Object> object)
+ final ConfiguredObject<?> confObject, Map<String, Object> object)
{
for(String name : confObject.getAttributeNames())
{
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java
index 80ce338d0a..db635e31ce 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java
@@ -58,7 +58,7 @@ public class HelperServlet extends AbstractServlet
new ListAuthenticationProviderAttributes(),
new ListBrokerAttribute(Broker.SUPPORTED_VIRTUALHOST_STORE_TYPES, "ListMessageStoreTypes"),
new ListBrokerAttribute(Broker.SUPPORTED_VIRTUALHOST_TYPES, "ListVirtualHostTypes"),
- new ListBrokerAttribute(Broker.SUPPORTED_PREFERENCES_PROVIDERS_TYPES, "ListPreferencesProvidersTypes"),
+ new ListBrokerAttribute(Broker.SUPPORTED_PREFERENCES_PROVIDER_TYPES, "ListPreferencesProvidersTypes"),
new ListBrokerAttribute(Broker.PRODUCT_VERSION, "version"),
new ListGroupProviderAttributes(),
new ListAccessControlProviderAttributes(),
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java
index 0329379713..d6d52f86ba 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java
@@ -77,7 +77,7 @@ public class MessageContentServlet extends AbstractServlet
String vhostName = pathInfoElements[0];
String queueName = pathInfoElements[1];
- VirtualHost vhost = null;
+ VirtualHost<?> vhost = null;
for(VirtualHost vh : getBroker().getVirtualHosts())
{
@@ -91,7 +91,7 @@ public class MessageContentServlet extends AbstractServlet
return getQueueFromVirtualHost(queueName, vhost);
}
- private Queue getQueueFromVirtualHost(String queueName, VirtualHost vhost)
+ private Queue getQueueFromVirtualHost(String queueName, VirtualHost<?> vhost)
{
Queue queue = null;
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java
index 3eafa7c294..fa7fb06077 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java
@@ -122,7 +122,7 @@ public class MessageServlet extends AbstractServlet
mapper.writeValue(writer, messages);
}
- private Queue getQueueFromRequest(HttpServletRequest request)
+ private Queue<?> getQueueFromRequest(HttpServletRequest request)
{
// TODO - validation that there is a vhost and queue and only those in the path
@@ -134,9 +134,9 @@ public class MessageServlet extends AbstractServlet
String vhostName = pathInfoElements[0];
String queueName = pathInfoElements[1];
- VirtualHost vhost = null;
+ VirtualHost<?> vhost = null;
- for(VirtualHost vh : getBroker().getVirtualHosts())
+ for(VirtualHost<?> vh : getBroker().getVirtualHosts())
{
if(vh.getName().equals(vhostName))
{
@@ -148,7 +148,7 @@ public class MessageServlet extends AbstractServlet
return getQueueFromVirtualHost(queueName, vhost);
}
- private Queue getQueueFromVirtualHost(String queueName, VirtualHost vhost)
+ private Queue getQueueFromVirtualHost(String queueName, VirtualHost<?> vhost)
{
Queue queue = null;
@@ -410,7 +410,7 @@ public class MessageServlet extends AbstractServlet
try
{
- final Queue sourceQueue = getQueueFromRequest(request);
+ final Queue<?> sourceQueue = getQueueFromRequest(request);
ObjectMapper mapper = new ObjectMapper();
@@ -420,7 +420,7 @@ public class MessageServlet extends AbstractServlet
String destQueueName = (String) providedObject.get("destinationQueue");
Boolean move = (Boolean) providedObject.get("move");
- final VirtualHost vhost = sourceQueue.getParent(VirtualHost.class);
+ final VirtualHost<?> vhost = sourceQueue.getParent(VirtualHost.class);
boolean isMoveTransaction = move != null && Boolean.valueOf(move);
@@ -459,9 +459,9 @@ public class MessageServlet extends AbstractServlet
protected void doDeleteWithSubjectAndActor(HttpServletRequest request, HttpServletResponse response)
{
- final Queue sourceQueue = getQueueFromRequest(request);
+ final Queue<?> sourceQueue = getQueueFromRequest(request);
- final VirtualHost vhost = sourceQueue.getParent(VirtualHost.class);
+ final VirtualHost<?> vhost = sourceQueue.getParent(VirtualHost.class);
final List<Long> messageIds = new ArrayList<Long>();
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
index e6bc46aa77..005358faf4 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
@@ -112,7 +112,7 @@ public class RestServlet extends AbstractServlet
}
}
- protected Collection<ConfiguredObject> getObjects(HttpServletRequest request)
+ protected Collection<ConfiguredObject<?>> getObjects(HttpServletRequest request)
{
String[] pathInfoElements = getPathInfoElements(request);
List<String> names = new ArrayList<String>();
@@ -128,8 +128,9 @@ public class RestServlet extends AbstractServlet
names.addAll(Arrays.asList(pathInfoElements));
}
- Collection<ConfiguredObject> parents = Collections.singleton((ConfiguredObject) getBroker());
- Collection<ConfiguredObject> children = new ArrayList<ConfiguredObject>();
+ Collection<ConfiguredObject<?>> parents = new ArrayList<ConfiguredObject<?>>();
+ parents.add(getBroker());
+ Collection<ConfiguredObject<?>> children = new ArrayList<ConfiguredObject<?>>();
Map<Class<? extends ConfiguredObject>, String> filters =
new HashMap<Class<? extends ConfiguredObject>, String>();
@@ -139,14 +140,14 @@ public class RestServlet extends AbstractServlet
if(i == 0 || Model.getInstance().getChildTypes(_hierarchy[i - 1]).contains(_hierarchy[i]))
{
- for(ConfiguredObject parent : parents)
+ for(ConfiguredObject<?> parent : parents)
{
if(names.size() > i
&& names.get(i) != null
&& !names.get(i).equals("*")
&& names.get(i).trim().length() != 0)
{
- for(ConfiguredObject child : parent.getChildren(_hierarchy[i]))
+ for(ConfiguredObject<?> child : parent.getChildren(_hierarchy[i]))
{
if(child.getName().equals(names.get(i)))
{
@@ -156,7 +157,7 @@ public class RestServlet extends AbstractServlet
}
else
{
- children.addAll(parent.getChildren(_hierarchy[i]));
+ children.addAll((Collection<? extends ConfiguredObject<?>>) parent.getChildren(_hierarchy[i]));
}
}
}
@@ -173,13 +174,13 @@ public class RestServlet extends AbstractServlet
}
parents = children;
- children = new ArrayList<ConfiguredObject>();
+ children = new ArrayList<ConfiguredObject<?>>();
}
if(!filters.isEmpty())
{
- Collection<ConfiguredObject> potentials = parents;
- parents = new ArrayList<ConfiguredObject>();
+ Collection<ConfiguredObject<?>> potentials = parents;
+ parents = new ArrayList<ConfiguredObject<?>>();
for(ConfiguredObject o : potentials)
{
@@ -215,7 +216,7 @@ public class RestServlet extends AbstractServlet
return filter(parents, request);
}
- private Collection<ConfiguredObject> filter(Collection<ConfiguredObject> objects, HttpServletRequest request)
+ private Collection<ConfiguredObject<?>> filter(Collection<ConfiguredObject<?>> objects, HttpServletRequest request)
{
@@ -234,9 +235,9 @@ public class RestServlet extends AbstractServlet
return objects;
}
- Collection<ConfiguredObject> filteredObj = new ArrayList<ConfiguredObject>(objects);
+ Collection<ConfiguredObject<?>> filteredObj = new ArrayList<ConfiguredObject<?>>(objects);
- Iterator<ConfiguredObject> iter = filteredObj.iterator();
+ Iterator<ConfiguredObject<?>> iter = filteredObj.iterator();
while(iter.hasNext())
{
@@ -293,7 +294,7 @@ public class RestServlet extends AbstractServlet
setCachingHeadersOnResponse(response);
- Collection<ConfiguredObject> allObjects = getObjects(request);
+ Collection<ConfiguredObject<?>> allObjects = getObjects(request);
// TODO - sort special params, everything else should act as a filter
int depth = getDepthParameterFromRequest(request);
@@ -392,9 +393,9 @@ public class RestServlet extends AbstractServlet
{
if(Model.getInstance().getChildTypes(_hierarchy[j]).contains(_hierarchy[i]))
{
- for(ConfiguredObject parent : objects[j])
+ for(ConfiguredObject<?> parent : objects[j])
{
- for(ConfiguredObject object : parent.getChildren(_hierarchy[i]))
+ for(ConfiguredObject<?> object : parent.getChildren(_hierarchy[i]))
{
if(object.getName().equals(names.get(i)))
{
@@ -523,10 +524,10 @@ public class RestServlet extends AbstractServlet
setCachingHeadersOnResponse(response);
try
{
- Collection<ConfiguredObject> allObjects = getObjects(request);
+ Collection<ConfiguredObject<?>> allObjects = getObjects(request);
for(ConfiguredObject o : allObjects)
{
- o.setDesiredState(o.getActualState(), State.DELETED);
+ o.setDesiredState(o.getState(), State.DELETED);
}
response.setStatus(HttpServletResponse.SC_OK);
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
index aebaa39564..41f43bdeaa 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
@@ -606,7 +606,7 @@ define(["dojo/_base/xhr",
new UpdatableStore(that.brokerData.keystores, query(".broker-key-stores")[0],
[ { name: "Name", field: "name", width: "20%"},
{ name: "Path", field: "path", width: "40%"},
- { name: "Type", field: "type", width: "5%"},
+ { name: "Type", field: "keyStoreType", width: "5%"},
{ name: "Key Manager Algorithm", field: "keyManagerFactoryAlgorithm", width: "20%"},
{ name: "Alias", field: "certificateAlias", width: "15%"}
], function(obj) {
@@ -623,7 +623,7 @@ define(["dojo/_base/xhr",
new UpdatableStore(that.brokerData.truststores, query(".broker-trust-stores")[0],
[ { name: "Name", field: "name", width: "20%"},
{ name: "Path", field: "path", width: "40%"},
- { name: "Type", field: "type", width: "5%"},
+ { name: "Type", field: "trustStoreType", width: "5%"},
{ name: "Trust Manager Algorithm", field: "trustManagerFactoryAlgorithm", width: "25%"},
{ name: "Peers only", field: "peersOnly", width: "10%",
formatter: function(val){
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js
index 36930be85a..4820e42ccf 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js
@@ -101,7 +101,7 @@ define(["dojo/dom",
storeNodes(["name",
"path",
- "type",
+ "keyStoreType",
"keyManagerFactoryAlgorithm",
"certificateAlias",
"peersOnly"
@@ -121,7 +121,7 @@ define(["dojo/dom",
{
this.name.innerHTML = entities.encode(String(this.keyStoreData[ "name" ]));
this.path.innerHTML = entities.encode(String(this.keyStoreData[ "path" ]));
- this.type.innerHTML = entities.encode(String(this.keyStoreData[ "type" ]));
+ this.keyStoreType.innerHTML = entities.encode(String(this.keyStoreData[ "keyStoreType" ]));
this.keyManagerFactoryAlgorithm.innerHTML = entities.encode(String(this.keyStoreData[ "keyManagerFactoryAlgorithm" ]));
this.certificateAlias.innerHTML = this.keyStoreData[ "certificateAlias" ] ? entities.encode(String( this.keyStoreData[ "certificateAlias" ])) : "";
};
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js
index e3d880ce24..1d3c462d1e 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js
@@ -101,7 +101,7 @@ define(["dojo/dom",
storeNodes(["name",
"path",
- "type",
+ "trustStoreType",
"trustManagerFactoryAlgorithm",
"certificateAlias",
"peersOnly"
@@ -121,7 +121,7 @@ define(["dojo/dom",
{
this.name.innerHTML = entities.encode(String(this.keyStoreData[ "name" ]));
this.path.innerHTML = entities.encode(String(this.keyStoreData[ "path" ]));
- this.type.innerHTML = entities.encode(String(this.keyStoreData[ "type" ]));
+ this.trustStoreType.innerHTML = entities.encode(String(this.keyStoreData[ "trustStoreType" ]));
this.trustManagerFactoryAlgorithm.innerHTML = entities.encode(String(this.keyStoreData[ "trustManagerFactoryAlgorithm" ]));
this.peersOnly.innerHTML = "<input type='checkbox' disabled='disabled' "+(this.keyStoreData[ "peersOnly" ] ? "checked='checked'": "")+" />" ;
};
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addKeystore.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addKeystore.js
index 4fdcffb7f1..ae54d19750 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addKeystore.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addKeystore.js
@@ -129,10 +129,10 @@ define(["dojo/_base/lang",
}
optionalFieldContainer.addChild(new dijit.form.ValidationTextBox({
required: false,
- value: keystore.type,
+ value: isKeystore ? keystore.keyStoreType : keystore.trustStoreType,
label: "Key store type:",
placeHolder: "Use default",
- name: "type"}));
+ name: isKeystore ? "keyStoreType" : "trustStoreType"}));
var panel = new dijit.TitlePane({title: "Optional Attributes", content: optionalFieldContainer.domNode, open: false});
return panel;
}
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/showKeyStore.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/showKeyStore.html
index 5caee836d3..41b877c058 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/showKeyStore.html
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/showKeyStore.html
@@ -25,7 +25,7 @@
<div class="nameValue" style="float:left;"></div><br/>
<div class="formLabel-labelCell" style="float:left; width: 250px;">Type:</div>
- <div class="typeValue" style="float:left;"></div><br/>
+ <div class="keyStoreTypeValue" style="float:left;"></div><br/>
<div class="formLabel-labelCell" style="float:left; width: 250px;">Key Manager Factory Algorithm:</div>
<div class="keyManagerFactoryAlgorithmValue" style="float:left;"></div><br/>
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/showTrustStore.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/showTrustStore.html
index 6f9146fdfe..09f5e2037a 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/showTrustStore.html
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/showTrustStore.html
@@ -25,7 +25,7 @@
<div class="nameValue" style="float:left;"></div><br/>
<div class="formLabel-labelCell" style="float:left; width: 250px;">Type:</div>
- <div class="typeValue" style="float:left;"></div><br/>
+ <div class="trustStoreTypeValue" style="float:left;"></div><br/>
<div class="formLabel-labelCell" style="float:left; width: 250px;">Trust Manager Factory Algorithm:</div>
<div class="trustManagerFactoryAlgorithmValue" style="float:left;"></div><br/>
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
index e418275d7e..cb3cde8259 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
@@ -40,23 +40,14 @@ import org.apache.qpid.server.jmx.mbeans.ServerInformationMBean;
import org.apache.qpid.server.jmx.mbeans.Shutdown;
import org.apache.qpid.server.jmx.mbeans.VirtualHostMBean;
import org.apache.qpid.server.logging.log4j.LoggingManagementFacade;
-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.PasswordCredentialManagingAuthenticationProvider;
-import org.apache.qpid.server.model.Plugin;
-import org.apache.qpid.server.model.Port;
-import org.apache.qpid.server.model.Protocol;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.model.*;
import org.apache.qpid.server.model.adapter.AbstractPluginAdapter;
import org.apache.qpid.server.plugin.PluginFactory;
import org.apache.qpid.server.plugin.QpidServiceLoader;
import org.apache.qpid.server.util.MapValueConverter;
import org.apache.qpid.server.util.ServerScopedRuntimeException;
-public class JMXManagement extends AbstractPluginAdapter implements ConfigurationChangeListener
+public class JMXManagement extends AbstractPluginAdapter<JMXManagement> implements ConfigurationChangeListener
{
private static final Logger LOGGER = Logger.getLogger(JMXManagement.class);
@@ -71,13 +62,6 @@ public class JMXManagement extends AbstractPluginAdapter implements Configuratio
public static final boolean DEFAULT_USE_PLATFORM_MBEAN_SERVER = true;
@SuppressWarnings("serial")
- private static final Collection<String> AVAILABLE_ATTRIBUTES = Collections.unmodifiableCollection(new HashSet<String>(Plugin.AVAILABLE_ATTRIBUTES){{
- add(NAME);
- add(USE_PLATFORM_MBEAN_SERVER);
- add(PluginFactory.PLUGIN_TYPE);
- }});
-
- @SuppressWarnings("serial")
private static final Map<String, Object> DEFAULTS = new HashMap<String, Object>(){{
put(USE_PLATFORM_MBEAN_SERVER, DEFAULT_USE_PLATFORM_MBEAN_SERVER);
put(NAME, DEFAULT_NAME);
@@ -125,13 +109,13 @@ public class JMXManagement extends AbstractPluginAdapter implements Configuratio
private void start() throws JMException, IOException
{
- Broker broker = getBroker();
+ Broker<?> broker = getBroker();
Port connectorPort = null;
Port registryPort = null;
- Collection<Port> ports = broker.getPorts();
+ Collection<Port<?>> ports = broker.getPorts();
for (Port port : ports)
{
- if (State.QUIESCED.equals(port.getActualState()))
+ if (State.QUIESCED.equals(port.getState()))
{
continue;
}
@@ -160,7 +144,7 @@ public class JMXManagement extends AbstractPluginAdapter implements Configuratio
synchronized (_children)
{
- for(VirtualHost virtualHost : broker.getVirtualHosts())
+ for(VirtualHost<?> virtualHost : broker.getVirtualHosts())
{
if(!_children.containsKey(virtualHost))
{
@@ -177,8 +161,8 @@ public class JMXManagement extends AbstractPluginAdapter implements Configuratio
createAdditionalMBeansFromProviders(virtualHost, mbean);
}
}
- Collection<AuthenticationProvider> authenticationProviders = broker.getAuthenticationProviders();
- for (AuthenticationProvider authenticationProvider : authenticationProviders)
+ Collection<AuthenticationProvider<?>> authenticationProviders = broker.getAuthenticationProviders();
+ for (AuthenticationProvider<?> authenticationProvider : authenticationProviders)
{
if(authenticationProvider instanceof PasswordCredentialManagingAuthenticationProvider)
{
@@ -336,7 +320,7 @@ public class JMXManagement extends AbstractPluginAdapter implements Configuratio
@Override
public Collection<String> getAttributeNames()
{
- return AVAILABLE_ATTRIBUTES;
+ return Attribute.getAttributeNames(JMXManagement.class);
}
@Override
@@ -374,4 +358,16 @@ public class JMXManagement extends AbstractPluginAdapter implements Configuratio
}
}
}
+
+ @Override
+ public String getPluginType()
+ {
+ return PLUGIN_TYPE;
+ }
+
+ @ManagedAttribute
+ public boolean getUsePlatformMBeanServer()
+ {
+ return (Boolean)getAttribute(USE_PLATFORM_MBEAN_SERVER);
+ }
}
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java
index ed5e195043..27901bfbf7 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java
@@ -112,7 +112,7 @@ public class ExchangeMBean extends AMQManagedObject implements ManagedExchange
}
- private final Exchange _exchange;
+ private final Exchange<?> _exchange;
private final VirtualHostMBean _vhostMBean;
protected ExchangeMBean(Exchange exchange, VirtualHostMBean virtualHostMBean)
@@ -151,7 +151,7 @@ public class ExchangeMBean extends AMQManagedObject implements ManagedExchange
public String getExchangeType()
{
- return _exchange.getExchangeType();
+ return _exchange.getType();
}
public Integer getTicketNo()
@@ -171,7 +171,7 @@ public class ExchangeMBean extends AMQManagedObject implements ManagedExchange
public TabularData bindings() throws IOException, JMException
{
- if(HEADERS_EXCHANGE_TYPE.equals(_exchange.getExchangeType()))
+ if(HEADERS_EXCHANGE_TYPE.equals(_exchange.getType()))
{
return getHeadersBindings(_exchange.getBindings());
}
@@ -235,7 +235,7 @@ public class ExchangeMBean extends AMQManagedObject implements ManagedExchange
for (Binding binding : bindings)
{
- String key = FANOUT_EXCHANGE_TYPE.equals(_exchange.getExchangeType()) ? "*" : binding.getName();
+ String key = FANOUT_EXCHANGE_TYPE.equals(_exchange.getType()) ? "*" : binding.getName();
List<String> queueList = bindingMap.get(key);
if(queueList == null)
{
@@ -268,7 +268,7 @@ public class ExchangeMBean extends AMQManagedObject implements ManagedExchange
@Override
public void createNewBinding(String queueName, String binding, Map<String, Object> arguments) throws JMException
{
- if(HEADERS_EXCHANGE_TYPE.equals(_exchange.getExchangeType()))
+ if(HEADERS_EXCHANGE_TYPE.equals(_exchange.getType()))
{
arguments = new HashMap<String, Object>(arguments);
final String[] bindings = binding.split(",");
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/MBeanUtils.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/MBeanUtils.java
index 97e84d4796..575fec58e9 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/MBeanUtils.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/MBeanUtils.java
@@ -29,7 +29,7 @@ import org.apache.qpid.server.model.VirtualHost;
public class MBeanUtils
{
- public static Queue findQueueFromQueueName(VirtualHost virtualHost, String queueName) throws OperationsException
+ public static Queue findQueueFromQueueName(VirtualHost<?> virtualHost, String queueName) throws OperationsException
{
Queue queue = ConfiguredObjectFinder.findConfiguredObjectByName(virtualHost.getQueues(), queueName);
if (queue == null)
@@ -42,7 +42,7 @@ public class MBeanUtils
}
}
- public static Exchange findExchangeFromExchangeName(VirtualHost virtualHost, String exchangeName) throws OperationsException
+ public static Exchange findExchangeFromExchangeName(VirtualHost<?> virtualHost, String exchangeName) throws OperationsException
{
Exchange exchange = ConfiguredObjectFinder.findConfiguredObjectByName(virtualHost.getExchanges(), exchangeName);
if (exchange == null)
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java
index b44a752312..67abe77e1f 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java
@@ -115,7 +115,7 @@ public class QueueMBean extends AMQManagedObject implements ManagedQueue, QueueN
}
}
- private final Queue _queue;
+ private final Queue<?> _queue;
private final VirtualHostMBean _vhostMBean;
/** Date/time format used for message expiration and message timestamp formatting */
@@ -298,7 +298,7 @@ public class QueueMBean extends AMQManagedObject implements ManagedQueue, QueueN
}
else
{
- VirtualHost virtualHost = _queue.getParent(VirtualHost.class);
+ VirtualHost<?> virtualHost = _queue.getParent(VirtualHost.class);
Exchange exchange = MBeanUtils.findExchangeFromExchangeName(virtualHost, exchangeName);
_queue.setAttribute(Queue.ALTERNATE_EXCHANGE, getAlternateExchange(), exchange);
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostMBean.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostMBean.java
index e9e3e1df49..906f1a481d 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostMBean.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostMBean.java
@@ -45,7 +45,7 @@ public class VirtualHostMBean extends AMQManagedObject implements ManagedVirtual
{
private static final Logger LOGGER = Logger.getLogger(VirtualHostMBean.class);
- private final VirtualHost _virtualHost;
+ private final VirtualHost<?> _virtualHost;
private final Map<ConfiguredObject, AMQManagedObject> _children =
new HashMap<ConfiguredObject, AMQManagedObject>();
diff --git a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBeanTest.java b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBeanTest.java
index e2b4567867..746dc0e63f 100644
--- a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBeanTest.java
+++ b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBeanTest.java
@@ -64,7 +64,7 @@ public class ExchangeMBeanTest extends TestCase
{
_mockExchange = mock(Exchange.class);
when(_mockExchange.getName()).thenReturn(EXCHANGE_NAME);
- when(_mockExchange.getExchangeType()).thenReturn(EXCHANGE_TYPE);
+ when(_mockExchange.getType()).thenReturn(EXCHANGE_TYPE);
_mockVirtualHostMBean = mock(VirtualHostMBean.class);
_mockManagedObjectRegistry = mock(ManagedObjectRegistry.class);
@@ -80,7 +80,7 @@ public class ExchangeMBeanTest extends TestCase
_exchangeMBean = new ExchangeMBean(_mockExchange, _mockVirtualHostMBean);
_mockHeadersExchange = mock(Exchange.class);
- when(_mockHeadersExchange.getExchangeType()).thenReturn(ExchangeMBean.HEADERS_EXCHANGE_TYPE);
+ when(_mockHeadersExchange.getType()).thenReturn(ExchangeMBean.HEADERS_EXCHANGE_TYPE);
when(_mockHeadersExchange.getParent(VirtualHost.class)).thenReturn(mockVirtualHost);
}
diff --git a/qpid/java/broker-plugins/websocket/src/main/java/org/apache/qpid/server/transport/websocket/WebSocketProvider.java b/qpid/java/broker-plugins/websocket/src/main/java/org/apache/qpid/server/transport/websocket/WebSocketProvider.java
index 81dcb05a41..83e7cff3bd 100644
--- a/qpid/java/broker-plugins/websocket/src/main/java/org/apache/qpid/server/transport/websocket/WebSocketProvider.java
+++ b/qpid/java/broker-plugins/websocket/src/main/java/org/apache/qpid/server/transport/websocket/WebSocketProvider.java
@@ -58,7 +58,7 @@ class WebSocketProvider implements AcceptingTransport
public static final String AMQP_WEBSOCKET_SUBPROTOCOL = "AMQPWSB10";
private final Transport _transport;
private final SSLContext _sslContext;
- private final Port _port;
+ private final Port<?> _port;
private final Set<AmqpProtocolVersion> _supported;
private final AmqpProtocolVersion _defaultSupportedProtocolReply;
private final ProtocolEngineFactory _factory;
@@ -66,7 +66,7 @@ class WebSocketProvider implements AcceptingTransport
WebSocketProvider(final Transport transport,
final SSLContext sslContext,
- final Port port,
+ final Port<?> port,
final Set<AmqpProtocolVersion> supported,
final AmqpProtocolVersion defaultSupportedProtocolReply)
{
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java
index 1b27ee74f6..a5e30be1a3 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java
@@ -41,33 +41,52 @@ public class Asserts
public static void assertVirtualHost(String virtualHostName, Map<String, Object> virtualHost)
{
assertNotNull("Virtualhost " + virtualHostName + " data are not found", virtualHost);
- assertAttributesPresent(virtualHost, VirtualHost.AVAILABLE_ATTRIBUTES, VirtualHost.TIME_TO_LIVE,
- VirtualHost.CREATED, VirtualHost.UPDATED, VirtualHost.SUPPORTED_QUEUE_TYPES, VirtualHost.STORE_PATH,
- VirtualHost.CONFIG_PATH, VirtualHost.TYPE, VirtualHost.CONFIG_STORE_PATH, VirtualHost.CONFIG_STORE_TYPE);
-
- assertEquals("Unexpected value of attribute " + VirtualHost.NAME, virtualHostName, virtualHost.get(VirtualHost.NAME));
+ assertAttributesPresent(virtualHost,
+ Attribute.getAttributeNames(VirtualHost.class),
+ ConfiguredObject.CREATED_BY,
+ ConfiguredObject.CREATED_TIME,
+ ConfiguredObject.LAST_UPDATED_BY,
+ ConfiguredObject.LAST_UPDATED_TIME,
+ ConfiguredObject.DESCRIPTION,
+ VirtualHost.TIME_TO_LIVE,
+ VirtualHost.SUPPORTED_QUEUE_TYPES,
+ VirtualHost.STORE_PATH,
+ VirtualHost.CONFIG_PATH,
+ VirtualHost.TYPE,
+ VirtualHost.CONFIG_STORE_PATH,
+ VirtualHost.CONFIG_STORE_TYPE);
+
+ assertEquals("Unexpected value of attribute " + VirtualHost.NAME,
+ virtualHostName,
+ virtualHost.get(VirtualHost.NAME));
assertNotNull("Unexpected value of attribute " + VirtualHost.ID, virtualHost.get(VirtualHost.ID));
assertEquals("Unexpected value of attribute " + VirtualHost.STATE, State.ACTIVE.name(),
- virtualHost.get(VirtualHost.STATE));
+ virtualHost.get(VirtualHost.STATE));
assertEquals("Unexpected value of attribute " + VirtualHost.DURABLE, Boolean.TRUE,
- virtualHost.get(VirtualHost.DURABLE));
+ virtualHost.get(VirtualHost.DURABLE));
assertEquals("Unexpected value of attribute " + VirtualHost.LIFETIME_POLICY, LifetimePolicy.PERMANENT.name(),
- virtualHost.get(VirtualHost.LIFETIME_POLICY));
+ virtualHost.get(VirtualHost.LIFETIME_POLICY));
assertEquals("Unexpected value of attribute " + VirtualHost.QUEUE_DEAD_LETTER_QUEUE_ENABLED, Boolean.FALSE,
- virtualHost.get(VirtualHost.QUEUE_DEAD_LETTER_QUEUE_ENABLED));
+ virtualHost.get(VirtualHost.QUEUE_DEAD_LETTER_QUEUE_ENABLED));
@SuppressWarnings("unchecked")
Collection<String> exchangeTypes = (Collection<String>) virtualHost.get(VirtualHost.SUPPORTED_EXCHANGE_TYPES);
assertEquals("Unexpected value of attribute " + VirtualHost.SUPPORTED_EXCHANGE_TYPES,
- new HashSet<String>(Arrays.asList("headers", "topic", "direct", "fanout")),
- new HashSet<String>(exchangeTypes));
+ new HashSet<String>(Arrays.asList("headers", "topic", "direct", "fanout")),
+ new HashSet<String>(exchangeTypes));
@SuppressWarnings("unchecked")
Map<String, Object> statistics = (Map<String, Object>) virtualHost.get(STATISTICS_ATTRIBUTE);
- Asserts.assertAttributesPresent(statistics, VirtualHost.AVAILABLE_STATISTICS, VirtualHost.BYTES_RETAINED,
- VirtualHost.LOCAL_TRANSACTION_BEGINS, VirtualHost.LOCAL_TRANSACTION_ROLLBACKS,
- VirtualHost.MESSAGES_RETAINED, VirtualHost.STATE_CHANGED, VirtualHost.XA_TRANSACTION_BRANCH_ENDS,
- VirtualHost.XA_TRANSACTION_BRANCH_STARTS, VirtualHost.XA_TRANSACTION_BRANCH_SUSPENDS);
+ Asserts.assertAttributesPresent(statistics,
+ VirtualHost.AVAILABLE_STATISTICS,
+ VirtualHost.BYTES_RETAINED,
+ VirtualHost.LOCAL_TRANSACTION_BEGINS,
+ VirtualHost.LOCAL_TRANSACTION_ROLLBACKS,
+ VirtualHost.MESSAGES_RETAINED,
+ VirtualHost.STATE_CHANGED,
+ VirtualHost.XA_TRANSACTION_BRANCH_ENDS,
+ VirtualHost.XA_TRANSACTION_BRANCH_STARTS,
+ VirtualHost.XA_TRANSACTION_BRANCH_SUSPENDS);
}
@@ -76,38 +95,59 @@ public class Asserts
assertQueue(queueName, queueType, queueData, null);
}
- public static void assertQueue(String queueName, String queueType, Map<String, Object> queueData, Map<String, Object> expectedAttributes)
+ public static void assertQueue(String queueName,
+ String queueType,
+ Map<String, Object> queueData,
+ Map<String, Object> expectedAttributes)
{
assertNotNull("Queue " + queueName + " is not found!", queueData);
- Asserts.assertAttributesPresent(queueData, Queue.AVAILABLE_ATTRIBUTES, Queue.CREATED, Queue.UPDATED,
- Queue.DESCRIPTION, Queue.TIME_TO_LIVE, Queue.ALTERNATE_EXCHANGE, Queue.OWNER, Queue.NO_LOCAL, Queue.LVQ_KEY,
- Queue.SORT_KEY, Queue.MESSAGE_GROUP_KEY, Queue.MESSAGE_GROUP_SHARED_GROUPS, Queue.PRIORITIES);
+ Asserts.assertAttributesPresent(queueData,
+ Attribute.getAttributeNames(Queue.class),
+ Queue.CREATED_BY,
+ Queue.CREATED_TIME,
+ Queue.LAST_UPDATED_BY,
+ Queue.LAST_UPDATED_TIME,
+ Queue.TYPE,
+ Queue.DESCRIPTION,
+ Queue.TIME_TO_LIVE,
+ Queue.ALTERNATE_EXCHANGE,
+ Queue.OWNER,
+ Queue.NO_LOCAL,
+ Queue.LVQ_KEY,
+ Queue.SORT_KEY,
+ Queue.MESSAGE_GROUP_KEY,
+ Queue.MESSAGE_GROUP_SHARED_GROUPS,
+ Queue.PRIORITIES);
assertEquals("Unexpected value of queue attribute " + Queue.NAME, queueName, queueData.get(Queue.NAME));
assertNotNull("Unexpected value of queue attribute " + Queue.ID, queueData.get(Queue.ID));
- assertEquals("Unexpected value of queue attribute " + Queue.STATE, State.ACTIVE.name(), queueData.get(Queue.STATE));
+ assertEquals("Unexpected value of queue attribute " + Queue.STATE,
+ State.ACTIVE.name(),
+ queueData.get(Queue.STATE));
assertEquals("Unexpected value of queue attribute " + Queue.LIFETIME_POLICY, LifetimePolicy.PERMANENT.name(),
- queueData.get(Queue.LIFETIME_POLICY));
- assertEquals("Unexpected value of queue attribute " + Queue.QUEUE_TYPE, queueType, queueData.get(Queue.QUEUE_TYPE));
+ queueData.get(Queue.LIFETIME_POLICY));
+ assertEquals("Unexpected value of queue attribute " + Queue.QUEUE_TYPE,
+ queueType,
+ queueData.get(Queue.QUEUE_TYPE));
if (expectedAttributes == null)
{
assertEquals("Unexpected value of queue attribute " + Queue.EXCLUSIVE,
ExclusivityPolicy.NONE.name(), queueData.get(Queue.EXCLUSIVE));
assertEquals("Unexpected value of queue attribute " + Queue.MAXIMUM_DELIVERY_ATTEMPTS, 0,
- queueData.get(Queue.MAXIMUM_DELIVERY_ATTEMPTS));
+ queueData.get(Queue.MAXIMUM_DELIVERY_ATTEMPTS));
assertEquals("Unexpected value of queue attribute " + Queue.QUEUE_FLOW_CONTROL_SIZE_BYTES, 0,
- queueData.get(Queue.QUEUE_FLOW_CONTROL_SIZE_BYTES));
+ queueData.get(Queue.QUEUE_FLOW_CONTROL_SIZE_BYTES));
assertEquals("Unexpected value of queue attribute " + Queue.QUEUE_FLOW_RESUME_SIZE_BYTES, 0,
- queueData.get(Queue.QUEUE_FLOW_RESUME_SIZE_BYTES));
+ queueData.get(Queue.QUEUE_FLOW_RESUME_SIZE_BYTES));
assertEquals("Unexpected value of queue attribute " + Queue.QUEUE_FLOW_STOPPED, Boolean.FALSE,
- queueData.get(Queue.QUEUE_FLOW_STOPPED));
+ queueData.get(Queue.QUEUE_FLOW_STOPPED));
}
else
{
for (Map.Entry<String, Object> attribute : expectedAttributes.entrySet())
{
assertEquals("Unexpected value of " + queueName + " queue attribute " + attribute.getKey(),
- attribute.getValue(), queueData.get(attribute.getKey()));
+ attribute.getValue(), queueData.get(attribute.getKey()));
}
}
@@ -115,7 +155,7 @@ public class Asserts
@SuppressWarnings("unchecked")
Map<String, Object> statistics = (Map<String, Object>) queueData.get(Asserts.STATISTICS_ATTRIBUTE);
Asserts.assertAttributesPresent(statistics, Queue.AVAILABLE_STATISTICS, Queue.DISCARDS_TTL_BYTES,
- Queue.DISCARDS_TTL_MESSAGES, Queue.STATE_CHANGED);
+ Queue.DISCARDS_TTL_MESSAGES, Queue.STATE_CHANGED);
}
public static void assertAttributesPresent(Map<String, Object> data, String... attributes)
@@ -127,7 +167,7 @@ public class Asserts
}
public static void assertAttributesPresent(Map<String, Object> data, Collection<String> attributes,
- String... unsupportedAttributes)
+ String... unsupportedAttributes)
{
for (String name : attributes)
{
@@ -148,30 +188,49 @@ public class Asserts
}
}
- public static void assertConnection(Map<String, Object> connectionData, AMQConnection connection) throws JMSException
+ public static void assertConnection(Map<String, Object> connectionData, AMQConnection connection)
+ throws JMSException
{
assertNotNull("Unexpected connection data", connectionData);
- assertAttributesPresent(connectionData, Connection.AVAILABLE_ATTRIBUTES, Connection.STATE, Connection.DURABLE,
- Connection.LIFETIME_POLICY, Connection.TIME_TO_LIVE, Connection.CREATED, Connection.UPDATED,
- Connection.INCOMING, Connection.REMOTE_PROCESS_NAME, Connection.REMOTE_PROCESS_PID,
- Connection.LOCAL_ADDRESS, Connection.PROPERTIES);
+ assertAttributesPresent(connectionData,
+ Attribute.getAttributeNames(Connection.class),
+ Connection.STATE,
+ Connection.DURABLE,
+ Connection.LIFETIME_POLICY,
+ Connection.TIME_TO_LIVE,
+ Connection.INCOMING,
+ Connection.REMOTE_PROCESS_NAME,
+ Connection.REMOTE_PROCESS_PID,
+ Connection.LOCAL_ADDRESS,
+ Connection.PROPERTIES,
+ ConfiguredObject.TYPE,
+ ConfiguredObject.CREATED_BY,
+ ConfiguredObject.CREATED_TIME,
+ ConfiguredObject.LAST_UPDATED_BY,
+ ConfiguredObject.LAST_UPDATED_TIME,
+ ConfiguredObject.DESCRIPTION);
assertEquals("Unexpected value for connection attribute " + Connection.PORT,
- TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT, connectionData.get(Connection.PORT));
+ TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT, connectionData.get(Connection.PORT));
assertEquals("Unexpected value of connection attribute " + Connection.SESSION_COUNT_LIMIT,
- (int) connection.getMaximumChannelCount(), connectionData.get(Connection.SESSION_COUNT_LIMIT));
+ (int) connection.getMaximumChannelCount(), connectionData.get(Connection.SESSION_COUNT_LIMIT));
assertEquals("Unexpected value of connection attribute " + Connection.CLIENT_ID, "clientid",
- connectionData.get(Connection.CLIENT_ID));
+ connectionData.get(Connection.CLIENT_ID));
assertEquals("Unexpected value of connection attribute " + Connection.PRINCIPAL, "guest",
- connectionData.get(Connection.PRINCIPAL));
+ connectionData.get(Connection.PRINCIPAL));
@SuppressWarnings("unchecked")
Map<String, Object> statistics = (Map<String, Object>) connectionData.get(STATISTICS_ATTRIBUTE);
- assertAttributesPresent(statistics, Connection.AVAILABLE_STATISTICS, Connection.LOCAL_TRANSACTION_BEGINS,
- Connection.LOCAL_TRANSACTION_ROLLBACKS, Connection.STATE_CHANGED, Connection.XA_TRANSACTION_BRANCH_ENDS,
- Connection.XA_TRANSACTION_BRANCH_STARTS, Connection.XA_TRANSACTION_BRANCH_SUSPENDS);
+ assertAttributesPresent(statistics,
+ Connection.AVAILABLE_STATISTICS,
+ Connection.LOCAL_TRANSACTION_BEGINS,
+ Connection.LOCAL_TRANSACTION_ROLLBACKS,
+ Connection.STATE_CHANGED,
+ Connection.XA_TRANSACTION_BRANCH_ENDS,
+ Connection.XA_TRANSACTION_BRANCH_STARTS,
+ Connection.XA_TRANSACTION_BRANCH_SUSPENDS);
assertEquals("Unexpected value of connection statistics attribute " + Connection.SESSION_COUNT, 1,
- statistics.get(Connection.SESSION_COUNT));
+ statistics.get(Connection.SESSION_COUNT));
}
public static void assertPortAttributes(Map<String, Object> port)
@@ -184,7 +243,7 @@ public class Asserts
assertNotNull("Unexpected value of attribute " + Port.ID, port.get(Port.ID));
assertEquals("Unexpected value of attribute " + Port.DURABLE, Boolean.FALSE, port.get(Port.DURABLE));
assertEquals("Unexpected value of attribute " + Port.LIFETIME_POLICY, LifetimePolicy.PERMANENT.name(),
- port.get(Broker.LIFETIME_POLICY));
+ port.get(Broker.LIFETIME_POLICY));
assertEquals("Unexpected value of attribute " + Port.STATE, state.name(), port.get(Port.STATE));
assertEquals("Unexpected value of attribute " + Port.TIME_TO_LIVE, 0, port.get(Port.TIME_TO_LIVE));
@@ -202,20 +261,44 @@ public class Asserts
}
if (isAMQPPort)
{
- assertAttributesPresent(port, Port.AVAILABLE_ATTRIBUTES, Port.CREATED, Port.UPDATED, Port.AUTHENTICATION_PROVIDER, Port.KEY_STORE, Port.TRUST_STORES);
+ assertAttributesPresent(port,
+ Attribute.getAttributeNames(Port.class),
+ ConfiguredObject.TYPE,
+ ConfiguredObject.CREATED_BY,
+ ConfiguredObject.CREATED_TIME,
+ ConfiguredObject.LAST_UPDATED_BY,
+ ConfiguredObject.LAST_UPDATED_TIME,
+ ConfiguredObject.DESCRIPTION,
+ Port.AUTHENTICATION_PROVIDER,
+ Port.KEY_STORE,
+ Port.TRUST_STORES);
assertNotNull("Unexpected value of attribute " + Port.BINDING_ADDRESS, port.get(Port.BINDING_ADDRESS));
}
else
{
- assertAttributesPresent(port, Port.AVAILABLE_ATTRIBUTES, Port.CREATED, Port.UPDATED, Port.AUTHENTICATION_PROVIDER,
- Port.BINDING_ADDRESS, Port.TCP_NO_DELAY, Port.SEND_BUFFER_SIZE, Port.RECEIVE_BUFFER_SIZE,
- Port.NEED_CLIENT_AUTH, Port.WANT_CLIENT_AUTH, Port.KEY_STORE, Port.TRUST_STORES);
+ assertAttributesPresent(port,
+ Attribute.getAttributeNames(Port.class),
+ ConfiguredObject.TYPE,
+ ConfiguredObject.CREATED_BY,
+ ConfiguredObject.CREATED_TIME,
+ ConfiguredObject.LAST_UPDATED_BY,
+ ConfiguredObject.LAST_UPDATED_TIME,
+ ConfiguredObject.DESCRIPTION,
+ Port.AUTHENTICATION_PROVIDER,
+ Port.BINDING_ADDRESS,
+ Port.TCP_NO_DELAY,
+ Port.SEND_BUFFER_SIZE,
+ Port.RECEIVE_BUFFER_SIZE,
+ Port.NEED_CLIENT_AUTH,
+ Port.WANT_CLIENT_AUTH,
+ Port.KEY_STORE,
+ Port.TRUST_STORES);
}
@SuppressWarnings("unchecked")
Collection<String> transports = (Collection<String>) port.get(Port.TRANSPORTS);
assertEquals("Unexpected value of attribute " + Port.TRANSPORTS, new HashSet<String>(Arrays.asList("TCP")),
- new HashSet<String>(transports));
+ new HashSet<String>(transports));
}
public static void assertDurableExchange(String exchangeName, String type, Map<String, Object> exchangeData)
@@ -223,42 +306,59 @@ public class Asserts
assertExchange(exchangeName, type, exchangeData);
assertEquals("Unexpected value of exchange attribute " + Exchange.DURABLE, Boolean.TRUE,
- exchangeData.get(Exchange.DURABLE));
+ exchangeData.get(Exchange.DURABLE));
}
public static void assertExchange(String exchangeName, String type, Map<String, Object> exchangeData)
{
assertNotNull("Exchange " + exchangeName + " is not found!", exchangeData);
- assertAttributesPresent(exchangeData, Exchange.AVAILABLE_ATTRIBUTES, Exchange.CREATED, Exchange.UPDATED,
- Exchange.ALTERNATE_EXCHANGE, Exchange.TIME_TO_LIVE);
+ assertAttributesPresent(exchangeData, Attribute.getAttributeNames(Exchange.class),
+ Exchange.ALTERNATE_EXCHANGE, Exchange.TIME_TO_LIVE,
+ ConfiguredObject.CREATED_BY,
+ ConfiguredObject.CREATED_TIME,
+ ConfiguredObject.LAST_UPDATED_BY,
+ ConfiguredObject.LAST_UPDATED_TIME,
+ ConfiguredObject.DESCRIPTION);
assertEquals("Unexpected value of exchange attribute " + Exchange.NAME, exchangeName,
- exchangeData.get(Exchange.NAME));
+ exchangeData.get(Exchange.NAME));
assertNotNull("Unexpected value of exchange attribute " + Exchange.ID, exchangeData.get(VirtualHost.ID));
assertEquals("Unexpected value of exchange attribute " + Exchange.STATE, State.ACTIVE.name(),
- exchangeData.get(Exchange.STATE));
+ exchangeData.get(Exchange.STATE));
- assertEquals("Unexpected value of exchange attribute " + Exchange.LIFETIME_POLICY, LifetimePolicy.PERMANENT.name(),
- exchangeData.get(Exchange.LIFETIME_POLICY));
+ assertEquals("Unexpected value of exchange attribute " + Exchange.LIFETIME_POLICY,
+ LifetimePolicy.PERMANENT.name(),
+ exchangeData.get(Exchange.LIFETIME_POLICY));
assertEquals("Unexpected value of exchange attribute " + Exchange.TYPE, type, exchangeData.get(Exchange.TYPE));
assertNotNull("Unexpected value of exchange attribute statistics", exchangeData.get(STATISTICS_ATTRIBUTE));
@SuppressWarnings("unchecked")
Map<String, Object> statistics = (Map<String, Object>) exchangeData.get(STATISTICS_ATTRIBUTE);
- assertAttributesPresent(statistics, Exchange.AVAILABLE_STATISTICS, Exchange.STATE_CHANGED, Exchange.PRODUCER_COUNT);
+ assertAttributesPresent(statistics,
+ Exchange.AVAILABLE_STATISTICS,
+ Exchange.STATE_CHANGED,
+ Exchange.PRODUCER_COUNT);
}
public static void assertBinding(String bindingName, String queueName, String exchange, Map<String, Object> binding)
{
assertNotNull("Binding map should not be null", binding);
- assertAttributesPresent(binding, Binding.AVAILABLE_ATTRIBUTES, Binding.STATE, Binding.TIME_TO_LIVE,
- Binding.CREATED, Binding.UPDATED);
+ assertAttributesPresent(binding,
+ Attribute.getAttributeNames(Binding.class),
+ Binding.STATE,
+ Binding.TIME_TO_LIVE,
+ ConfiguredObject.TYPE,
+ ConfiguredObject.CREATED_BY,
+ ConfiguredObject.CREATED_TIME,
+ ConfiguredObject.LAST_UPDATED_BY,
+ ConfiguredObject.LAST_UPDATED_TIME,
+ ConfiguredObject.DESCRIPTION);
assertEquals("Unexpected binding attribute " + Binding.NAME, bindingName, binding.get(Binding.NAME));
assertEquals("Unexpected binding attribute " + Binding.QUEUE, queueName, binding.get(Binding.QUEUE));
assertEquals("Unexpected binding attribute " + Binding.EXCHANGE, exchange, binding.get(Binding.EXCHANGE));
assertEquals("Unexpected binding attribute " + Binding.LIFETIME_POLICY, LifetimePolicy.PERMANENT.name(),
- binding.get(Binding.LIFETIME_POLICY));
+ binding.get(Binding.LIFETIME_POLICY));
}
public static void assertBinding(String queueName, String exchange, Map<String, Object> binding)
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java
index bb01d1facf..e73e8767ac 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java
@@ -27,7 +27,9 @@ import java.util.Map;
import java.util.UUID;
import org.apache.qpid.server.BrokerOptions;
+import org.apache.qpid.server.model.Attribute;
import org.apache.qpid.server.model.AuthenticationProvider;
+import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.LifetimePolicy;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.State;
@@ -302,9 +304,9 @@ public class AuthenticationProviderRestTest extends QpidRestTestCase
private void assertProvider(boolean managesPrincipals, String type, Map<String, Object> provider)
{
- Asserts.assertAttributesPresent(provider, AuthenticationProvider.AVAILABLE_ATTRIBUTES,
- AuthenticationProvider.CREATED, AuthenticationProvider.UPDATED, AuthenticationProvider.DESCRIPTION,
- AuthenticationProvider.TIME_TO_LIVE);
+ Asserts.assertAttributesPresent(provider, Attribute.getAttributeNames(AuthenticationProvider.class),
+ AuthenticationProvider.DESCRIPTION, AuthenticationProvider.TIME_TO_LIVE, ConfiguredObject.CREATED_BY,
+ ConfiguredObject.CREATED_TIME, ConfiguredObject.LAST_UPDATED_BY, ConfiguredObject.LAST_UPDATED_TIME);
assertEquals("Unexpected value of provider attribute " + AuthenticationProvider.STATE, State.ACTIVE.name(),
provider.get(AuthenticationProvider.STATE));
assertEquals("Unexpected value of provider attribute " + AuthenticationProvider.LIFETIME_POLICY,
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsTest.java
index 18370185e5..07c1e7c8b8 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsTest.java
@@ -29,7 +29,9 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.commons.configuration.ConfigurationException;
+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.Port;
import org.apache.qpid.server.model.Protocol;
import org.apache.qpid.server.model.Transport;
@@ -62,7 +64,13 @@ public class BrokerRestHttpsTest extends QpidRestTestCase
{
Map<String, Object> brokerDetails = getRestTestHelper().getJsonAsSingletonList("/rest/broker");
- Asserts.assertAttributesPresent(brokerDetails, Broker.AVAILABLE_ATTRIBUTES, Broker.BYTES_RETAINED,
- Broker.PROCESS_PID, Broker.SUPPORTED_VIRTUALHOST_STORE_TYPES, Broker.CREATED, Broker.TIME_TO_LIVE, Broker.UPDATED);
+ Asserts.assertAttributesPresent(brokerDetails, Attribute.getAttributeNames(Broker.class), Broker.BYTES_RETAINED,
+ Broker.PROCESS_PID, Broker.SUPPORTED_VIRTUALHOST_STORE_TYPES, Broker.CREATED, Broker.TIME_TO_LIVE,
+ ConfiguredObject.TYPE,
+ ConfiguredObject.CREATED_BY,
+ ConfiguredObject.CREATED_TIME,
+ ConfiguredObject.LAST_UPDATED_BY,
+ ConfiguredObject.LAST_UPDATED_TIME,
+ ConfiguredObject.DESCRIPTION);
}
}
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java
index 30a9ea2f21..76b4e7eefb 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java
@@ -34,7 +34,9 @@ import javax.jms.TextMessage;
import org.apache.qpid.common.QpidProperties;
import org.apache.qpid.server.configuration.BrokerConfigurationStoreCreator;
+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;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.State;
@@ -232,9 +234,15 @@ public class BrokerRestTest extends QpidRestTestCase
protected void assertBrokerAttributes(Map<String, Object> brokerDetails)
{
- Asserts.assertAttributesPresent(brokerDetails, Broker.AVAILABLE_ATTRIBUTES,
+ Asserts.assertAttributesPresent(brokerDetails, Attribute.getAttributeNames(Broker.class),
Broker.BYTES_RETAINED, Broker.PROCESS_PID,
- Broker.CREATED, Broker.TIME_TO_LIVE, Broker.UPDATED);
+ Broker.TIME_TO_LIVE,
+ ConfiguredObject.TYPE,
+ ConfiguredObject.CREATED_BY,
+ ConfiguredObject.CREATED_TIME,
+ ConfiguredObject.LAST_UPDATED_BY,
+ ConfiguredObject.LAST_UPDATED_TIME,
+ ConfiguredObject.DESCRIPTION);
assertEquals("Unexpected value of attribute " + Broker.BUILD_VERSION, QpidProperties.getBuildVersion(),
brokerDetails.get(Broker.BUILD_VERSION));
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/ConnectionRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/ConnectionRestTest.java
index d558e07ed7..cecf4b2ab5 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/ConnectionRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/ConnectionRestTest.java
@@ -33,6 +33,8 @@ import javax.jms.MessageProducer;
import org.apache.qpid.client.AMQConnection;
import org.apache.qpid.client.AMQSession;
+import org.apache.qpid.server.model.Attribute;
+import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.Connection;
import org.apache.qpid.server.model.Session;
@@ -172,7 +174,15 @@ public class ConnectionRestTest extends QpidRestTestCase
private void assertSession(Map<String, Object> sessionData, AMQSession<?, ?> session)
{
assertNotNull("Session map cannot be null", sessionData);
- Asserts.assertAttributesPresent(sessionData, Session.AVAILABLE_ATTRIBUTES, Session.STATE, Session.DURABLE,
+ Asserts.assertAttributesPresent(sessionData, Attribute.getAttributeNames(Session.class),
+ ConfiguredObject.TYPE,
+ ConfiguredObject.CREATED_BY,
+ ConfiguredObject.CREATED_TIME,
+ ConfiguredObject.LAST_UPDATED_BY,
+ ConfiguredObject.LAST_UPDATED_TIME,
+ ConfiguredObject.DESCRIPTION,
+ Session.STATE,
+ Session.DURABLE,
Session.LIFETIME_POLICY, Session.TIME_TO_LIVE, Session.CREATED, Session.UPDATED);
assertEquals("Unexpecte value of attribute " + Session.NAME, session.getChannelId() + "",
sessionData.get(Session.NAME));
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/GroupProviderRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/GroupProviderRestTest.java
index d09d5a8d02..85d8d31758 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/GroupProviderRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/GroupProviderRestTest.java
@@ -29,6 +29,8 @@ import java.util.Properties;
import java.util.UUID;
import org.apache.qpid.server.BrokerOptions;
+import org.apache.qpid.server.model.Attribute;
+import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.Group;
import org.apache.qpid.server.model.GroupProvider;
import org.apache.qpid.server.model.LifetimePolicy;
@@ -320,9 +322,14 @@ public class GroupProviderRestTest extends QpidRestTestCase
private void assertProvider(String name, String type, Map<String, Object> provider)
{
- Asserts.assertAttributesPresent(provider, GroupProvider.AVAILABLE_ATTRIBUTES,
- GroupProvider.CREATED, GroupProvider.UPDATED, GroupProvider.DESCRIPTION,
- GroupProvider.TIME_TO_LIVE);
+ Asserts.assertAttributesPresent(provider, Attribute.getAttributeNames(GroupProvider.class),
+ GroupProvider.TIME_TO_LIVE,
+ ConfiguredObject.TYPE,
+ ConfiguredObject.CREATED_BY,
+ ConfiguredObject.CREATED_TIME,
+ ConfiguredObject.LAST_UPDATED_BY,
+ ConfiguredObject.LAST_UPDATED_TIME,
+ ConfiguredObject.DESCRIPTION);
assertEquals("Unexpected value of provider attribute " + GroupProvider.STATE, State.ACTIVE.name(),
provider.get(GroupProvider.STATE));
assertEquals("Unexpected value of provider attribute " + GroupProvider.LIFETIME_POLICY,
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java
index c38d9bb396..f825ffbb0f 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java
@@ -258,7 +258,7 @@ public class KeyStoreRestTest extends QpidRestTestCase
assertEquals("unexpected (dummy) password of default systests key store",
AbstractKeyStoreAdapter.DUMMY_PASSWORD_MASK, keystore.get(KeyStore.PASSWORD));
assertEquals("unexpected type of default systests key store",
- java.security.KeyStore.getDefaultType(), keystore.get(KeyStore.TYPE));
+ java.security.KeyStore.getDefaultType(), keystore.get(KeyStore.KEY_STORE_TYPE));
assertEquals("unexpected certificateAlias value",
certAlias, keystore.get(KeyStore.CERTIFICATE_ALIAS));
if(certAlias == null)
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PreferencesProviderRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PreferencesProviderRestTest.java
index 7f604bada7..9a657b0019 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PreferencesProviderRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PreferencesProviderRestTest.java
@@ -28,7 +28,9 @@ import java.util.List;
import java.util.Map;
import org.apache.commons.configuration.ConfigurationException;
+import org.apache.qpid.server.model.Attribute;
import org.apache.qpid.server.model.AuthenticationProvider;
+import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.LifetimePolicy;
import org.apache.qpid.server.model.PreferencesProvider;
import org.apache.qpid.server.model.State;
@@ -161,8 +163,13 @@ public class PreferencesProviderRestTest extends QpidRestTestCase
public void assertProviderCommonAttributes(Map<String, Object> provider)
{
- Asserts.assertAttributesPresent(provider, PreferencesProvider.AVAILABLE_ATTRIBUTES, PreferencesProvider.CREATED,
- PreferencesProvider.UPDATED, PreferencesProvider.TIME_TO_LIVE);
+ Asserts.assertAttributesPresent(provider,
+ Attribute.getAttributeNames(PreferencesProvider.class),
+ ConfiguredObject.CREATED_BY,
+ ConfiguredObject.CREATED_TIME,
+ ConfiguredObject.LAST_UPDATED_BY,
+ ConfiguredObject.LAST_UPDATED_TIME,
+ ConfiguredObject.DESCRIPTION, PreferencesProvider.TIME_TO_LIVE);
assertEquals("Unexpected value of provider attribute " + PreferencesProvider.STATE, State.ACTIVE.name(),
provider.get(PreferencesProvider.STATE));
assertEquals("Unexpected value of provider attribute " + PreferencesProvider.LIFETIME_POLICY,
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QueueRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QueueRestTest.java
index 3833af3ca5..a95c0a082f 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QueueRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QueueRestTest.java
@@ -34,7 +34,9 @@ import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Session;
+import org.apache.qpid.server.model.Attribute;
import org.apache.qpid.server.model.Binding;
+import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.Consumer;
import org.apache.qpid.server.model.LifetimePolicy;
import org.apache.qpid.server.model.Queue;
@@ -209,9 +211,16 @@ public class QueueRestTest extends QpidRestTestCase
private void assertConsumer(Map<String, Object> consumer)
{
assertNotNull("Consumer map should not be null", consumer);
- Asserts.assertAttributesPresent(consumer, Consumer.AVAILABLE_ATTRIBUTES, Consumer.STATE, Consumer.TIME_TO_LIVE,
- Consumer.CREATED, Consumer.UPDATED, Consumer.SETTLEMENT_MODE, Consumer.EXCLUSIVE, Consumer.SELECTOR,
- Consumer.NO_LOCAL);
+ Asserts.assertAttributesPresent(consumer,
+ Attribute.getAttributeNames(Consumer.class), Consumer.STATE, Consumer.TIME_TO_LIVE,
+ Consumer.SETTLEMENT_MODE, Consumer.EXCLUSIVE, Consumer.SELECTOR,
+ Consumer.NO_LOCAL,
+ ConfiguredObject.TYPE,
+ ConfiguredObject.CREATED_BY,
+ ConfiguredObject.CREATED_TIME,
+ ConfiguredObject.LAST_UPDATED_BY,
+ ConfiguredObject.LAST_UPDATED_TIME,
+ ConfiguredObject.DESCRIPTION);
assertEquals("Unexpected binding attribute " + Consumer.NAME, "1", consumer.get(Consumer.NAME));
assertEquals("Unexpected binding attribute " + Consumer.DURABLE, Boolean.FALSE, consumer.get(Consumer.DURABLE));
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java
index 8b788780d6..7927bff07f 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java
@@ -26,7 +26,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.qpid.server.model.KeyStore;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Transport;
import org.apache.qpid.server.model.TrustStore;
@@ -255,7 +254,7 @@ public class TrustStoreRestTest extends QpidRestTestCase
assertEquals("unexpected (dummy) password of default systests trust store",
AbstractKeyStoreAdapter.DUMMY_PASSWORD_MASK, truststore.get(TrustStore.PASSWORD));
assertEquals("unexpected type of default systests trust store",
- java.security.KeyStore.getDefaultType(), truststore.get(TrustStore.TYPE));
+ java.security.KeyStore.getDefaultType(), truststore.get(TrustStore.TRUST_STORE_TYPE));
assertEquals("unexpected peersOnly value",
peersOnly, truststore.get(TrustStore.PEERS_ONLY));
}