You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2014/02/23 19:38:10 UTC
svn commit: r1571054 [1/4] - in /qpid/trunk/qpid/java:
broker-core/src/main/java/org/apache/qpid/server/configuration/startup/
broker-core/src/main/java/org/apache/qpid/server/model/
broker-core/src/main/java/org/apache/qpid/server/model/adapter/ broke...
Author: rgodfrey
Date: Sun Feb 23 18:38:07 2014
New Revision: 1571054
URL: http://svn.apache.org/r1571054
Log:
QPID-5579 : [Java Broker] build attribute meta data the same way for REST API and AMQP Management
Added:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractConfiguredObject.java
- copied, changed from r1569102, qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/NonAmqpPortAdapter.java
Removed:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Event.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/EventType.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/StoreUpgrader.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AccessControlProvider.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AmqpManagement.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Attribute.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Binding.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Consumer.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Exchange.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Group.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupMember.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupProvider.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Model.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PasswordCredentialManagingAuthenticationProvider.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Port.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PreferencesProvider.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Publisher.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Session.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/User.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostAlias.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractKeyStoreAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BindingAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConsumerAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactory.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/GroupProviderAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/KeyStoreAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortFactory.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/TrustStoreAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/PreferencesProviderFactory.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueArgumentsConverter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/JsonFileConfigStore.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/KeyStoreRecovererTest.java
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/TrustStoreRecovererTest.java
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderTest.java
qpid/trunk/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addKeystore.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showKeyStore.html
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showTrustStore.html
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/MBeanUtils.java
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostMBean.java
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBeanTest.java
qpid/trunk/qpid/java/broker-plugins/websocket/src/main/java/org/apache/qpid/server/transport/websocket/WebSocketProvider.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsTest.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/ConnectionRestTest.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/GroupProviderRestTest.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PreferencesProviderRestTest.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QueueRestTest.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/StoreUpgrader.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/StoreUpgrader.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/StoreUpgrader.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/StoreUpgrader.java Sun Feb 23 18:38:07 2014
@@ -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);
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AccessControlProvider.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AccessControlProvider.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AccessControlProvider.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AccessControlProvider.java Sun Feb 23 18:38:07 2014
@@ -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 e
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();
}
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AmqpManagement.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AmqpManagement.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AmqpManagement.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AmqpManagement.java Sun Feb 23 18:38:07 2014
@@ -27,8 +27,8 @@ import java.lang.annotation.RetentionPol
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
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Attribute.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Attribute.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Attribute.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Attribute.java Sun Feb 23 18:38:07 2014
@@ -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 extend
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;
+ }
- public StringAttribute(String name)
+ private static interface Converter<T>
+ {
+ T convert(Object o);
+ }
+
+ 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))
+ {
+ return (X) o;
+ }
+ else if(o instanceof String)
{
- Long val = Long.valueOf(stringValue);
- return setValue(getValue(configuredObject), val, configuredObject);
+ return Enum.valueOf(_klazz,(String)o);
}
- catch (NumberFormatException e)
+ else
{
- throw new IllegalArgumentException(e);
+ 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())
+ {
+ if(ConfiguredObject.class.isAssignableFrom(parent))
+ {
+ processAttributes((Class<? extends ConfiguredObject>)parent);
+ }
+ }
+ final Class<? super X> superclass = clazz.getSuperclass();
+ if(superclass != null && ConfiguredObject.class.isAssignableFrom(superclass))
{
- return Float.class;
+ 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())
+ {
+ if(ConfiguredObject.class.isAssignableFrom(parent))
+ {
+ Collection<Attribute<?, ?>> attrs = _allAttributes.get(parent);
+ for(Attribute<?,?> attr : attrs)
+ {
+ if(!attributeList.contains(attr))
+ {
+ attributeList.add(attr);
+ }
+ }
+ }
+ }
+ if(superclass != null && ConfiguredObject.class.isAssignableFrom(superclass))
{
- try
+ Collection<Attribute<?, ?>> attrs = _allAttributes.get(superclass);
+ for(Attribute<?,?> attr : attrs)
{
- Float val = Float.valueOf(stringValue);
- return setValue(getValue(configuredObject), val, configuredObject);
+ if(!attributeList.contains(attr))
+ {
+ attributeList.add(attr);
+ }
}
- catch (NumberFormatException e)
+
+ }
+
+
+ for(Method m : clazz.getDeclaredMethods())
+ {
+ ManagedAttribute annotation = m.getAnnotation(ManagedAttribute.class);
+ if(annotation != null)
{
- throw new IllegalArgumentException(e);
+ 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));
+
+ }
}
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java Sun Feb 23 18:38:07 2014
@@ -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
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();
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Binding.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Binding.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Binding.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Binding.java Sun Feb 23 18:38:07 2014
@@ -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 Configu
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();
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java Sun Feb 23 18:38:07 2014
@@ -32,7 +32,7 @@ import org.apache.qpid.server.security.S
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 Configur
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 Configur
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 Configur
*/
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 Configur
boolean isManagementMode();
- AuthenticationProvider getAuthenticationProvider(SocketAddress localAddress);
+ AuthenticationProvider<?> getAuthenticationProvider(SocketAddress localAddress);
}
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java Sun Feb 23 18:38:07 2014
@@ -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
*
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java Sun Feb 23 18:38:07 2014
@@ -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 Conf
/** 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();
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Consumer.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Consumer.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Consumer.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Consumer.java Sun Feb 23 18:38:07 2014
@@ -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 Config
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";
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Exchange.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Exchange.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Exchange.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Exchange.java Sun Feb 23 18:38:07 2014
@@ -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 Config
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();
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Group.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Group.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Group.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Group.java Sun Feb 23 18:38:07 2014
@@ -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 Configure
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
- ));
-
-
}
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupMember.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupMember.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupMember.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupMember.java Sun Feb 23 18:38:07 2014
@@ -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 Con
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
- ));
-
-
}
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupProvider.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupProvider.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupProvider.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupProvider.java Sun Feb 23 18:38:07 2014
@@ -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";
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java Sun Feb 23 18:38:07 2014
@@ -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 Config
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);
Added: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java?rev=1571054&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java (added)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java Sun Feb 23 18:38:07 2014
@@ -0,0 +1,32 @@
+package org.apache.qpid.server.model;
+/*
+ *
+ * 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.
+ *
+ */
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+
+public @interface ManagedAttribute
+{
+ boolean secure() default false;
+ boolean derived() default false;
+}
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Model.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Model.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Model.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Model.java Sun Feb 23 18:38:07 2014
@@ -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();
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PasswordCredentialManagingAuthenticationProvider.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PasswordCredentialManagingAuthenticationProvider.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PasswordCredentialManagingAuthenticationProvider.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PasswordCredentialManagingAuthenticationProvider.java Sun Feb 23 18:38:07 2014
@@ -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);
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java Sun Feb 23 18:38:07 2014
@@ -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 Configur
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();
}
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Port.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Port.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Port.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Port.java Sun Feb 23 18:38:07 2014
@@ -24,8 +24,9 @@ import java.security.AccessControlExcept
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 Configured
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 Configured
AccessControlException,
IllegalArgumentException;
- Collection<Protocol> getProtocols();
void addProtocol(Protocol protocol) throws IllegalStateException,
AccessControlException,
@@ -101,7 +107,6 @@ public interface Port extends Configured
AccessControlException,
IllegalArgumentException;
- AuthenticationProvider getAuthenticationProvider();
//children
Collection<VirtualHostAlias> getVirtualHostBindings();
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PreferencesProvider.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PreferencesProvider.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PreferencesProvider.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/PreferencesProvider.java Sun Feb 23 18:38:07 2014
@@ -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";
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Publisher.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Publisher.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Publisher.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Publisher.java Sun Feb 23 18:38:07 2014
@@ -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>
{
}
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java Sun Feb 23 18:38:07 2014
@@ -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 = {}
-)
+@AmqpManagement
-public interface Queue extends ConfiguredObject
+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 Configure
- 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 Configure
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
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Session.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Session.java?rev=1571054&r1=1571053&r2=1571054&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Session.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Session.java Sun Feb 23 18:38:07 2014
@@ -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 Configu
// 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();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org