diff options
author | Alex Rudyy <orudyy@apache.org> | 2013-01-16 13:57:04 +0000 |
---|---|---|
committer | Alex Rudyy <orudyy@apache.org> | 2013-01-16 13:57:04 +0000 |
commit | f645fece0ada24fac6bb7117d6888f61fe33bc35 (patch) | |
tree | ed00776043ea2d234be57fd92a9727731897e31f | |
parent | 7bfceb2e6a7e1a7eeec1f533c8a4e53ef004c77f (diff) | |
download | qpid-python-f645fece0ada24fac6bb7117d6888f61fe33bc35.tar.gz |
QPID-4390: Add broker defaults
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/java-broker-config-qpid-4390@1433936 13f79535-47bb-0310-9956-ffa450edef68
11 files changed, 172 insertions, 160 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerProperties.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerProperties.java index 40af0bd23a..414aacbdad 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerProperties.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerProperties.java @@ -7,23 +7,11 @@ import java.util.Locale; */ public class BrokerProperties { - public static final long DEFAULT_MINIMUM_ALERT_REPEAT_GAP = 30000l; - public static final long DEFAULT_HOUSEKEEPING_PERIOD = 30000L; - public static final int DEFAULT_HEART_BEAT_DELAY = 0; public static final int DEFAULT_HEART_BEAT_TIMEOUT_FACTOR = 2; - public static final int DEFAULT_STATISTICS_REPORTING_PERIOD = 0; public static final String PROPERTY_DEAD_LETTER_EXCHANGE_SUFFIX = "qpid.dead_letter_exchange_suffix"; public static final String PROPERTY_DEAD_LETTER_QUEUE_SUFFIX = "qpid.dead_letter_queue_suffix"; - public static final String PROPERTY_HOUSE_KEEPING_CHECK_PERIOD = "qpid.house_keeping_check_period"; - public static final String PROPERTY_MAXIMUM_MESSAGE_AGE = "qpid.maximum_message_age"; - public static final String PROPERTY_MAXIMUM_MESSAGE_COUNT = "qpid.maximum_message_count"; - public static final String PROPERTY_MAXIMUM_QUEUE_DEPTH = "qpid.maximum_queue_depth"; - public static final String PROPERTY_MAXIMUM_MESSAGE_SIZE = "qpid.maximum_message_size"; - public static final String PROPERTY_MAXIMUM_CHANNEL_COUNT = "qpid.maximum_channel_count"; - public static final String PROPERTY_MINIMUM_ALERT_REPEAT_GAP = "qpid.minimum_alert_repeat_gap"; - public static final String PROPERTY_FLOW_CAPACITY = "qpid.flow_capacity"; - public static final String PROPERTY_FLOW_RESUME_CAPACITY = "qpid.flow_resume_capacity"; + public static final String PROPERTY_FRAME_SIZE = "qpid.frame_size"; public static final String PROPERTY_MSG_AUTH = "qpid.msg_auth"; public static final String PROPERTY_STATUS_UPDATES = "qpid.status_updates"; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java index 60169e0165..4cf2e5796c 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java @@ -89,14 +89,6 @@ public class ServerConfiguration extends AbstractConfiguration { envVarMap.put(BrokerProperties.PROPERTY_MSG_AUTH, "security.msg-auth"); - envVarMap.put(BrokerProperties.PROPERTY_MAXIMUM_MESSAGE_AGE, "maximumMessageAge"); - envVarMap.put(BrokerProperties.PROPERTY_MAXIMUM_MESSAGE_COUNT, "maximumMessageCount"); - envVarMap.put(BrokerProperties.PROPERTY_MAXIMUM_QUEUE_DEPTH, "maximumQueueDepth"); - envVarMap.put(BrokerProperties.PROPERTY_MAXIMUM_MESSAGE_SIZE, "maximumMessageSize"); - envVarMap.put(BrokerProperties.PROPERTY_MAXIMUM_CHANNEL_COUNT, "maximumChannelCount"); - envVarMap.put(BrokerProperties.PROPERTY_MINIMUM_ALERT_REPEAT_GAP, "minimumAlertRepeatGap"); - envVarMap.put(BrokerProperties.PROPERTY_FLOW_CAPACITY, "capacity"); - envVarMap.put(BrokerProperties.PROPERTY_FLOW_RESUME_CAPACITY, "flowResumeCapacity"); } /** diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java index d6392f6d57..012f8a7133 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java @@ -28,7 +28,6 @@ public class BrokerRecoverer implements ConfiguredObjectRecoverer<Broker> private final RootMessageLogger _rootMessageLogger; private final AuthenticationProviderFactory _authenticationProviderFactory; private final PortFactory _portFactory; - private Map<String, Object> _defaults; public BrokerRecoverer(AuthenticationProviderFactory authenticationProviderFactory, PortFactory portFactory, StatisticsGatherer statisticsGatherer, VirtualHostRegistry virtualHostRegistry, LogRecorder logRecorder, @@ -45,8 +44,8 @@ public class BrokerRecoverer implements ConfiguredObjectRecoverer<Broker> @Override public Broker create(RecovererProvider recovererProvider, ConfigurationEntry entry, ConfiguredObject... parents) { - BrokerAdapter broker = new BrokerAdapter(entry.getId(), entry.getAttributes(), _defaults, _statisticsGatherer, - _virtualHostRegistry, _logRecorder, _rootMessageLogger, _authenticationProviderFactory, _portFactory); + BrokerAdapter broker = new BrokerAdapter(entry.getId(), entry.getAttributes(), _statisticsGatherer, _virtualHostRegistry, + _logRecorder, _rootMessageLogger, _authenticationProviderFactory, _portFactory); Map<String, Collection<ConfigurationEntry>> childEntries = entry.getChildren(); for (String type : childEntries.keySet()) { @@ -71,7 +70,7 @@ public class BrokerRecoverer implements ConfiguredObjectRecoverer<Broker> return broker; } - private void wireUpConfiguredObjects(BrokerAdapter broker, Map<String,Object> brokerAttributes) + private void wireUpConfiguredObjects(BrokerAdapter broker, Map<String, Object> brokerAttributes) { AuthenticationProvider defaultAuthenticationProvider = null; Collection<AuthenticationProvider> authenticationProviders = broker.getAuthenticationProviders(); @@ -105,7 +104,7 @@ public class BrokerRecoverer implements ConfiguredObjectRecoverer<Broker> Collection<Port> ports = broker.getPorts(); for (Port port : ports) { - String authenticationProviderName = (String)port.getAttribute(Port.AUTHENTICATION_MANAGER); + String authenticationProviderName = (String) port.getAttribute(Port.AUTHENTICATION_MANAGER); AuthenticationProvider provider = null; if (authenticationProviderName != null) { diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java index 59f795bae8..bb155ee1d2 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java @@ -77,7 +77,7 @@ public interface Broker extends ConfiguredObject String ACL_FILE = "aclFile"; // Attributes - public static final Collection<String> AVAILABLE_ATTRIBUTES = + Collection<String> AVAILABLE_ATTRIBUTES = Collections.unmodifiableList( Arrays.asList(BUILD_VERSION, BYTES_RETAINED, @@ -162,5 +162,5 @@ public interface Broker extends ConfiguredObject /* * TODO: Remove this method. Eventually the broker will become a registry. */ - public VirtualHostRegistry getVirtualHostRegistry(); + VirtualHostRegistry getVirtualHostRegistry(); } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java index f277de8ca1..ee7fd57699 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java @@ -48,7 +48,14 @@ abstract class AbstractAdapter implements ConfiguredObject _id = id; if (attributes != null) { - _attributes.putAll(attributes); + Collection<String> names = getAttributeNames(); + for (String name : names) + { + if (attributes.containsKey(name)) + { + _attributes.put(name, attributes.get(name)); + } + } } if (defaults != null) { diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java index d641c82e83..a2feb45a46 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java @@ -20,11 +20,6 @@ */ package org.apache.qpid.server.model.adapter; -import static org.apache.qpid.server.util.MapValueConverter.getLongAttribute; -import static org.apache.qpid.server.util.MapValueConverter.getIntegerAttribute; -import static org.apache.qpid.server.util.MapValueConverter.getBooleanAttribute; -import static org.apache.qpid.server.util.MapValueConverter.getStringAttribute; - import java.net.InetSocketAddress; import java.net.SocketAddress; import java.security.AccessControlException; @@ -37,7 +32,6 @@ import java.util.UUID; import org.apache.log4j.Logger; import org.apache.qpid.common.QpidProperties; -import org.apache.qpid.server.configuration.BrokerProperties; import org.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.qpid.server.logging.LogRecorder; import org.apache.qpid.server.logging.RootMessageLogger; @@ -60,17 +54,77 @@ import org.apache.qpid.server.security.group.GroupPrincipalAccessor; import org.apache.qpid.server.security.SecurityManager; import org.apache.qpid.server.security.SubjectCreator; import org.apache.qpid.server.stats.StatisticsGatherer; +import org.apache.qpid.server.util.MapValueConverter; import org.apache.qpid.server.virtualhost.VirtualHostRegistry; public class BrokerAdapter extends AbstractAdapter implements Broker, ConfigurationChangeListener { private static final Logger LOGGER = Logger.getLogger(BrokerAdapter.class); + @SuppressWarnings("serial") + public static final Map<String, Class<?>> ATTRIBUTE_TYPES = Collections.unmodifiableMap(new HashMap<String, Class<?>>(){{ + put(ALERT_THRESHOLD_MESSAGE_AGE, Long.class); + put(ALERT_THRESHOLD_MESSAGE_COUNT, Long.class); + put(ALERT_THRESHOLD_QUEUE_DEPTH, Long.class); + put(ALERT_THRESHOLD_MESSAGE_SIZE, Long.class); + put(ALERT_REPEAT_GAP, Long.class); + put(FLOW_CONTROL_SIZE_BYTES, Long.class); + put(FLOW_CONTROL_RESUME_SIZE_BYTES, Long.class); + put(HOUSEKEEPING_CHECK_PERIOD, Long.class); + + put(DEAD_LETTER_QUEUE_ENABLED, Boolean.class); + put(STATISTICS_REPORTING_RESET_ENABLED, Boolean.class); + + put(MAXIMUM_DELIVERY_ATTEMPTS, Integer.class); + put(SESSION_COUNT_LIMIT, Integer.class); + put(HEART_BEAT_DELAY, Integer.class); + put(STATISTICS_REPORTING_PERIOD, Integer.class); + + put(ACL_FILE, String.class); + put(NAME, String.class); + put(DEFAULT_VIRTUAL_HOST, String.class); + put(DEFAULT_AUTHENTICATION_PROVIDER, String.class); + }}); + + public static final int DEFAULT_STATISTICS_REPORTING_PERIOD = 0; + public static final boolean DEFAULT_STATISTICS_REPORTING_RESET_ENABLED = false; + public static final long DEFAULT_ALERT_REPEAT_GAP = 30000l; + public static final long DEFAULT_ALERT_THRESHOLD_MESSAGE_AGE = 0l; + public static final long DEFAULT_ALERT_THRESHOLD_MESSAGE_COUNT = 0l; + public static final long DEFAULT_ALERT_THRESHOLD_MESSAGE_SIZE = 0l; + public static final long DEFAULT_ALERT_THRESHOLD_QUEUE_DEPTH = 0l; + public static final boolean DEFAULT_DEAD_LETTER_QUEUE_ENABLED = false; + public static final int DEFAULT_MAXIMUM_DELIVERY_ATTEMPTS = 0; + public static final long DEFAULT_FLOW_CONTROL_RESUME_SIZE_BYTES = 0l; + public static final long DEFAULT_FLOW_CONTROL_SIZE_BYTES = 0l; + public static final long DEFAULT_HOUSEKEEPING_CHECK_PERIOD = 30000l; + public static final int DEFAULT_HEART_BEAT_DELAY = 0; + public static final int DEFAULT_SESSION_COUNT_LIMIT = 256; + public static final String DEFAULT_NAME = "QpidBroker"; + + @SuppressWarnings("serial") + private static final Map<String, Object> DEFAULTS = Collections.unmodifiableMap(new HashMap<String, Object>(){{ + put(Broker.STATISTICS_REPORTING_PERIOD, DEFAULT_STATISTICS_REPORTING_PERIOD); + put(Broker.STATISTICS_REPORTING_RESET_ENABLED, DEFAULT_STATISTICS_REPORTING_RESET_ENABLED); + put(Broker.ALERT_REPEAT_GAP, DEFAULT_ALERT_REPEAT_GAP); + put(Broker.ALERT_THRESHOLD_MESSAGE_AGE, DEFAULT_ALERT_THRESHOLD_MESSAGE_AGE); + put(Broker.ALERT_THRESHOLD_MESSAGE_COUNT, DEFAULT_ALERT_THRESHOLD_MESSAGE_COUNT); + put(Broker.ALERT_THRESHOLD_MESSAGE_SIZE, DEFAULT_ALERT_THRESHOLD_MESSAGE_SIZE); + put(Broker.ALERT_THRESHOLD_QUEUE_DEPTH, DEFAULT_ALERT_THRESHOLD_QUEUE_DEPTH); + put(Broker.DEAD_LETTER_QUEUE_ENABLED, DEFAULT_DEAD_LETTER_QUEUE_ENABLED); + put(Broker.MAXIMUM_DELIVERY_ATTEMPTS, DEFAULT_MAXIMUM_DELIVERY_ATTEMPTS); + put(Broker.FLOW_CONTROL_RESUME_SIZE_BYTES, DEFAULT_FLOW_CONTROL_RESUME_SIZE_BYTES); + put(Broker.FLOW_CONTROL_SIZE_BYTES, DEFAULT_FLOW_CONTROL_SIZE_BYTES); + put(Broker.HOUSEKEEPING_CHECK_PERIOD, DEFAULT_HOUSEKEEPING_CHECK_PERIOD); + put(Broker.HEART_BEAT_DELAY, DEFAULT_HEART_BEAT_DELAY); + put(Broker.SESSION_COUNT_LIMIT, DEFAULT_SESSION_COUNT_LIMIT); + put(Broker.NAME, DEFAULT_NAME); + }}); + private final StatisticsGatherer _statisticsGatherer; private final VirtualHostRegistry _virtualHostRegistry; private final LogRecorder _logRecorder; private final RootMessageLogger _rootMessageLogger; - private String _name; private StatisticsAdapter _statistics; private final Map<String, VirtualHost> _vhostAdapters = new HashMap<String, VirtualHost>(); @@ -87,57 +141,20 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat private final PortFactory _portFactory; private final SecurityManager _securityManager; - //TODO: delete these fields, instead, add the attributes into attribute map - private long _maximumMessageAge; - private long _maximumMessageCount; - private long _maximumQueueDepth; - private long _maximumMessageSize; - private long _minimumAlertRepeatGap; - private long _flowResumeCapacity; - private long _flowCapacity; - private int _maximumDeliveryCount; - private boolean _deadLetterQueueEnabled; - private long _housekeepingCheckPeriod; - private String _defaultVirtualHost; - private String _aclFile; - private int _sessionCountLimit; - private int _heartBeatDelay; - private int _statisticsReportingPeriod; - private boolean _statisticsReportingResetEnabled; - - public BrokerAdapter(UUID id, Map<String, Object> attributes, Map<String, Object> defaults, StatisticsGatherer statisticsGatherer, VirtualHostRegistry virtualHostRegistry, + public BrokerAdapter(UUID id, Map<String, Object> attributes, StatisticsGatherer statisticsGatherer, VirtualHostRegistry virtualHostRegistry, LogRecorder logRecorder, RootMessageLogger rootMessageLogger, AuthenticationProviderFactory authenticationProviderFactory, PortFactory portFactory) { - super(id, defaults); - _name = "Broker"; + super(id, DEFAULTS, MapValueConverter.convert(attributes, ATTRIBUTE_TYPES)); _statisticsGatherer = statisticsGatherer; _virtualHostRegistry = virtualHostRegistry; _logRecorder = logRecorder; _rootMessageLogger = rootMessageLogger; - _name = "Broker"; _statistics = new StatisticsAdapter(statisticsGatherer); _authenticationProviderFactory = authenticationProviderFactory; _portFactory = portFactory; + _securityManager = new SecurityManager((String)getAttribute(ACL_FILE)); - _maximumMessageAge = getLongAttribute(ALERT_THRESHOLD_MESSAGE_AGE, attributes, Long.getLong(BrokerProperties.PROPERTY_MAXIMUM_MESSAGE_AGE, 0)); - _maximumMessageCount = getLongAttribute(ALERT_THRESHOLD_MESSAGE_COUNT, attributes, Long.getLong(BrokerProperties.PROPERTY_MAXIMUM_MESSAGE_COUNT, 0)); - _maximumQueueDepth = getLongAttribute(ALERT_THRESHOLD_QUEUE_DEPTH, attributes, Long.getLong(BrokerProperties.PROPERTY_MAXIMUM_QUEUE_DEPTH, 0)); - _maximumMessageSize = getLongAttribute(ALERT_THRESHOLD_MESSAGE_SIZE, attributes, Long.getLong(BrokerProperties.PROPERTY_MAXIMUM_MESSAGE_SIZE, 0)); - _minimumAlertRepeatGap = getLongAttribute(ALERT_REPEAT_GAP, attributes, Long.getLong(BrokerProperties.PROPERTY_MINIMUM_ALERT_REPEAT_GAP, BrokerProperties.DEFAULT_MINIMUM_ALERT_REPEAT_GAP)); - _flowCapacity = getLongAttribute(FLOW_CONTROL_SIZE_BYTES, attributes, Long.getLong(BrokerProperties.PROPERTY_FLOW_CAPACITY, 0)); - _flowResumeCapacity = getLongAttribute(FLOW_CONTROL_RESUME_SIZE_BYTES, attributes, Long.getLong(BrokerProperties.PROPERTY_FLOW_RESUME_CAPACITY, _flowCapacity)); - _maximumDeliveryCount = getIntegerAttribute(MAXIMUM_DELIVERY_ATTEMPTS, attributes, 0); - _deadLetterQueueEnabled = getBooleanAttribute(DEAD_LETTER_QUEUE_ENABLED, attributes, false); - _housekeepingCheckPeriod = getLongAttribute(HOUSEKEEPING_CHECK_PERIOD, attributes, Long.getLong(BrokerProperties.PROPERTY_HOUSE_KEEPING_CHECK_PERIOD, BrokerProperties.DEFAULT_HOUSEKEEPING_PERIOD)); - _defaultVirtualHost = getStringAttribute(DEFAULT_VIRTUAL_HOST, attributes, null); - _aclFile = getStringAttribute(ACL_FILE, attributes, null); - _securityManager = new SecurityManager(_aclFile); - - _sessionCountLimit = getIntegerAttribute(SESSION_COUNT_LIMIT, attributes, 256); - _heartBeatDelay = getIntegerAttribute(HEART_BEAT_DELAY, attributes, BrokerProperties.DEFAULT_HEART_BEAT_DELAY); - _statisticsReportingPeriod = getIntegerAttribute(STATISTICS_REPORTING_PERIOD, attributes, BrokerProperties.DEFAULT_STATISTICS_REPORTING_PERIOD); - _statisticsReportingResetEnabled = getBooleanAttribute(STATISTICS_REPORTING_RESET_ENABLED, attributes, false); } public Collection<VirtualHost> getVirtualHosts() @@ -240,7 +257,7 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat public String getName() { - return _name; + return (String)getAttribute(NAME); } public String setName(final String currentName, final String desiredName) @@ -471,10 +488,6 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat { return getId(); } - else if(NAME.equals(name)) - { - return getName(); - } else if(STATE.equals(name)) { return State.ACTIVE; @@ -534,71 +547,7 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat { return _defaultAuthenticationProvider == null ? null : _defaultAuthenticationProvider.getName(); } - else if (DEFAULT_VIRTUAL_HOST.equals(name)) - { - return _defaultVirtualHost; - } - else if (ALERT_THRESHOLD_MESSAGE_AGE.equals(name)) - { - return _maximumMessageAge; - } - else if (ALERT_THRESHOLD_MESSAGE_COUNT.equals(name)) - { - return _maximumMessageCount; - } - else if (ALERT_THRESHOLD_QUEUE_DEPTH.equals(name)) - { - return _maximumQueueDepth; - } - else if (ALERT_THRESHOLD_MESSAGE_SIZE.equals(name)) - { - return _maximumMessageSize; - } - else if (ALERT_REPEAT_GAP.equals(name)) - { - return _minimumAlertRepeatGap; - } - else if (FLOW_CONTROL_SIZE_BYTES.equals(name)) - { - return _flowCapacity; - } - else if (FLOW_CONTROL_RESUME_SIZE_BYTES.equals(name)) - { - return _flowResumeCapacity; - } - else if (MAXIMUM_DELIVERY_ATTEMPTS.equals(name)) - { - return _maximumDeliveryCount; - } - else if (DEAD_LETTER_QUEUE_ENABLED.equals(name)) - { - return _deadLetterQueueEnabled; - } - else if (HOUSEKEEPING_CHECK_PERIOD.equals(name)) - { - return _housekeepingCheckPeriod; - } - else if (ACL_FILE.equals(name)) - { - return _aclFile; - } - else if (SESSION_COUNT_LIMIT.equals(name)) - { - return _sessionCountLimit; - } - else if (HEART_BEAT_DELAY.equals(name)) - { - return _heartBeatDelay; - } - else if (STATISTICS_REPORTING_PERIOD.equals(name)) - { - return _statisticsReportingPeriod; - } - else if (STATISTICS_REPORTING_RESET_ENABLED.equals(name)) - { - return _statisticsReportingResetEnabled; - } - return super.getAttribute(name); //TODO - Implement. + return super.getAttribute(name); } @Override diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java index bd60f154da..c83d776bd1 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java @@ -56,20 +56,11 @@ public class PortAdapter extends AbstractAdapter implements Port */ public PortAdapter(UUID id, Broker broker, Map<String, Object> attributes, Map<String, Object> defaults) { - super(id, defaults); + super(id, defaults, attributes); _broker = broker; addParent(Broker.class, broker); - Collection<String> names = getAttributeNames(); - for (String name : names) - { - if (attributes.containsKey(name)) - { - setAttribute(name, defaults.get(name), attributes.get(name)); - } - } - String name = (String)getAttribute(NAME); if (name == null) { diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/util/MapValueConverter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/util/MapValueConverter.java index a87d7745d6..4732900c60 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/util/MapValueConverter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/util/MapValueConverter.java @@ -22,6 +22,7 @@ package org.apache.qpid.server.util; import java.util.Collection; import java.util.Collections; +import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -32,7 +33,25 @@ public class MapValueConverter public static String getStringAttribute(String name, Map<String,Object> attributes, String defaultVal) { final Object value = attributes.get(name); - return value == null ? defaultVal : String.valueOf(value); + return toString(value, defaultVal); + } + + public static String toString(final Object value) + { + return toString(value, null); + } + + public static String toString(final Object value, String defaultVal) + { + if (value == null) + { + return defaultVal; + } + else if (value instanceof String) + { + return (String)value; + } + return String.valueOf(value); } public static String getStringAttribute(String name, Map<String, Object> attributes) @@ -100,6 +119,16 @@ public class MapValueConverter public static Boolean getBooleanAttribute(String name, Map<String,Object> attributes, Boolean defaultValue) { Object obj = attributes.get(name); + return toBoolean(name, obj, defaultValue); + } + + public static Boolean toBoolean(String name, Object obj) + { + return toBoolean(name, obj, null); + } + + public static Boolean toBoolean(String name, Object obj, Boolean defaultValue) + { if(obj == null) { return defaultValue; @@ -128,6 +157,16 @@ public class MapValueConverter public static Integer getIntegerAttribute(String name, Map<String,Object> attributes, Integer defaultValue) { Object obj = attributes.get(name); + return toInteger(name, obj, defaultValue); + } + + public static Integer toInteger(String name, Object obj) + { + return toInteger(name, obj, null); + } + + public static Integer toInteger(String name, Object obj, Integer defaultValue) + { if(obj == null) { return defaultValue; @@ -155,6 +194,16 @@ public class MapValueConverter public static Long getLongAttribute(String name, Map<String,Object> attributes, Long defaultValue) { Object obj = attributes.get(name); + return toLong(name, obj, defaultValue); + } + + public static Long toLong(String name, Object obj) + { + return toLong(name, obj, null); + } + + public static Long toLong(String name, Object obj, Long defaultValue) + { if(obj == null) { return defaultValue; @@ -246,4 +295,41 @@ public class MapValueConverter } return set; } + + public static Map<String, Object> convert(Map<String, Object> configurationAttributes, Map<String, Class<?>> attributeTypes) + { + Map<String, Object> attributes = new HashMap<String, Object>(); + for (Map.Entry<String, Class<?>> attributeEntry : attributeTypes.entrySet()) + { + String attributeName = attributeEntry.getKey(); + if (configurationAttributes.containsKey(attributeName)) + { + Class<?> classObject = attributeEntry.getValue(); + Object rawValue = configurationAttributes.get(attributeName); + Object value = null; + if (classObject == Long.class || classObject == long.class) + { + value = toLong(attributeName, rawValue); + } + else if (classObject == Integer.class || classObject == int.class) + { + value = toInteger(attributeName, rawValue); + } + else if (classObject == Boolean.class || classObject == boolean.class) + { + value = toBoolean(attributeName, rawValue); + } + else if (classObject == String.class) + { + value = toString(rawValue); + } + else + { + throw new IllegalArgumentException("Cannot convert '" + rawValue + "' into " + classObject); + } + attributes.put(attributeName, value); + } + } + return attributes; + } } diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java index 5a28e59cc9..d8eff63de9 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java @@ -54,7 +54,7 @@ public class VirtualHostConfigurationTest extends QpidTestCase _configXml.addProperty("virtualhosts.virtualhost(-1)."+getName()+".store.class", TestableMemoryMessageStore.class.getName()); _virtualHostRegistry = new VirtualHostRegistry(); _broker = mock(Broker.class); - when(_broker.getAttribute(Broker.HOUSEKEEPING_CHECK_PERIOD)).thenReturn(BrokerProperties.DEFAULT_HOUSEKEEPING_PERIOD); + when(_broker.getAttribute(Broker.HOUSEKEEPING_CHECK_PERIOD)).thenReturn(30000l); } @Override 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 2e2ce7de5d..8759254d12 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 @@ -105,7 +105,7 @@ public class BrokerRestTest extends QpidRestTestCase assertEquals("Unexpected value of attribute " + Broker.DURABLE, Boolean.TRUE, brokerDetails.get(Broker.DURABLE)); assertEquals("Unexpected value of attribute " + Broker.LIFETIME_POLICY, LifetimePolicy.PERMANENT.name(), brokerDetails.get(Broker.LIFETIME_POLICY)); - assertEquals("Unexpected value of attribute " + Broker.NAME, "Broker", brokerDetails.get(Broker.NAME)); + assertEquals("Unexpected value of attribute " + Broker.NAME, "QpidBroker", brokerDetails.get(Broker.NAME)); assertEquals("Unexpected value of attribute " + Broker.STATE, State.ACTIVE.name(), brokerDetails.get(Broker.STATE)); assertNotNull("Unexpected value of attribute " + Broker.ID, brokerDetails.get(Broker.ID)); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java index a021d33d4b..9971a6b549 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java @@ -32,7 +32,7 @@ public class StructureRestTest extends QpidRestTestCase { Map<String, Object> structure = getRestTestHelper().getJsonAsMap("/rest/structure"); assertNotNull("Structure data cannot be null", structure); - assertNode(structure, "Broker"); + assertNode(structure, "QpidBroker"); @SuppressWarnings("unchecked") List<Map<String, Object>> virtualhosts = (List<Map<String, Object>>) structure.get("virtualhosts"); |