summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-04-11 15:30:38 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-04-11 15:30:38 +0000
commit58a7f5e8759446fd6c2cc5876581bc414d78d9bd (patch)
tree21b0e5263029bb9bfa9f2c90643ef7d9a6ba38ed /qpid/java
parentc7f2cd12b45f051cd1d421d8c440f12d007a50b4 (diff)
downloadqpid-python-58a7f5e8759446fd6c2cc5876581bc414d78d9bd.tar.gz
QPID-5680 : [Java Broker] move configuration defualts to annotations
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1586683 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java15
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java6
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java16
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java45
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java3
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java23
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java8
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/RuntimeDefault.java33
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/SystemContext.java3
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java19
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java15
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java10
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProvider.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java11
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemNodeCreator.java1
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStoreAdapter.java130
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStore.java139
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStore.java131
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java105
-rwxr-xr-xqpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java2
-rw-r--r--qpid/java/broker-core/src/main/resources/initial-config.json2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java29
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java12
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileKeyStoreCreationTest.java25
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileTrustStoreCreationTest.java20
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostCreationTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java30
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java8
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java8
-rw-r--r--qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProvider.java9
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java41
-rw-r--r--qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java29
-rw-r--r--qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java2
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java115
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java12
-rw-r--r--qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementFactoryTest.java10
-rw-r--r--qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementTest.java2
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java24
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/JMXManagementFactoryTest.java2
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java7
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/HttpManagementRestTest.java6
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java31
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java29
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java44
52 files changed, 640 insertions, 600 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java
index ca5800547e..671cbbe7e7 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java
@@ -20,11 +20,18 @@
*/
package org.apache.qpid.server.exchange;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArraySet;
+
import org.apache.log4j.Logger;
+
import org.apache.qpid.server.binding.BindingImpl;
import org.apache.qpid.server.filter.AMQInvalidArgumentException;
import org.apache.qpid.server.filter.FilterSupport;
@@ -32,18 +39,14 @@ import org.apache.qpid.server.filter.Filterable;
import org.apache.qpid.server.filter.MessageFilter;
import org.apache.qpid.server.message.InstanceProperties;
import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.model.ManagedObject;
import org.apache.qpid.server.plugin.ExchangeType;
import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.queue.BaseQueue;
import org.apache.qpid.server.virtualhost.UnknownExchangeException;
import org.apache.qpid.server.virtualhost.VirtualHostImpl;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.CopyOnWriteArraySet;
-
+@ManagedObject( category = false, type = "direct" )
public class DirectExchange extends AbstractExchange<DirectExchange>
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
index 893ffee4c1..1484480c5d 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
@@ -20,11 +20,13 @@
*/
package org.apache.qpid.server.exchange;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.log4j.Logger;
import org.apache.qpid.server.binding.BindingImpl;
@@ -34,14 +36,14 @@ import org.apache.qpid.server.filter.Filterable;
import org.apache.qpid.server.filter.MessageFilter;
import org.apache.qpid.server.message.InstanceProperties;
import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.model.ManagedObject;
import org.apache.qpid.server.plugin.ExchangeType;
import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.queue.BaseQueue;
import org.apache.qpid.server.virtualhost.UnknownExchangeException;
import org.apache.qpid.server.virtualhost.VirtualHostImpl;
-import java.util.ArrayList;
-
+@ManagedObject( category = false, type = "fanout" )
public class FanoutExchange extends AbstractExchange<FanoutExchange>
{
private static final Logger _logger = Logger.getLogger(FanoutExchange.class);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java
index dd5fa5fb4b..6aa32c8528 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java
@@ -20,25 +20,26 @@
*/
package org.apache.qpid.server.exchange;
+import java.util.ArrayList;
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.CopyOnWriteArraySet;
+
import org.apache.log4j.Logger;
import org.apache.qpid.server.binding.BindingImpl;
import org.apache.qpid.server.filter.Filterable;
import org.apache.qpid.server.message.InstanceProperties;
import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.model.ManagedObject;
import org.apache.qpid.server.plugin.ExchangeType;
import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.queue.BaseQueue;
import org.apache.qpid.server.virtualhost.UnknownExchangeException;
import org.apache.qpid.server.virtualhost.VirtualHostImpl;
-import java.util.ArrayList;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.concurrent.CopyOnWriteArraySet;
-
/**
* An exchange that binds queues based on a set of required headers and header values
* and routes messages to these queues by matching the headers of the message against
@@ -66,6 +67,7 @@ import java.util.concurrent.CopyOnWriteArraySet;
* amq.match - pub/sub on field content/value
* </pre>
*/
+@ManagedObject( category = false, type = "headers" )
public class HeadersExchange extends AbstractExchange<HeadersExchange>
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
index 409d77a460..992d9714cb 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
@@ -38,6 +38,7 @@ import org.apache.qpid.server.filter.FilterSupport;
import org.apache.qpid.server.filter.Filterable;
import org.apache.qpid.server.message.InstanceProperties;
import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.model.ManagedObject;
import org.apache.qpid.server.plugin.ExchangeType;
import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.queue.BaseQueue;
@@ -45,6 +46,7 @@ import org.apache.qpid.server.util.ConnectionScopedRuntimeException;
import org.apache.qpid.server.virtualhost.UnknownExchangeException;
import org.apache.qpid.server.virtualhost.VirtualHostImpl;
+@ManagedObject( category = false, type = "topic" )
public class TopicExchange extends AbstractExchange<TopicExchange>
{
public static final ExchangeType<TopicExchange> TYPE = new TopicExchangeType();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
index b4203bfed5..278e8a5304 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
@@ -80,10 +80,13 @@ public abstract class AbstractConfiguredObject<X extends ConfiguredObject<X>> im
private static final Map<Class<? extends ConfiguredObject>, Map<String, Field>> _allAutomatedFields =
Collections.synchronizedMap(new HashMap<Class<? extends ConfiguredObject>, Map<String, Field>>());
private static final Map<Class, Object> SECURE_VALUES;
+
+ public static final String SECURED_STRING_VALUE = "********";
+
static
{
Map<Class,Object> secureValues = new HashMap<Class, Object>();
- secureValues.put(String.class, "********");
+ secureValues.put(String.class, SECURED_STRING_VALUE);
secureValues.put(Integer.class, 0);
secureValues.put(Long.class, 0l);
secureValues.put(Byte.class, (byte)0);
@@ -135,12 +138,14 @@ public abstract class AbstractConfiguredObject<X extends ConfiguredObject<X>> im
private final Map<String, Attribute<?,?>> _attributeTypes;
private final Map<String, Field> _automatedFields;
+ @ManagedAttributeField
+ private String _type;
+
protected AbstractConfiguredObject(UUID id,
- Map<String, Object> defaults,
Map<String, Object> attributes,
TaskExecutor taskExecutor)
{
- this(defaults, combineIdWithAttributes(id,attributes), taskExecutor);
+ this(combineIdWithAttributes(id,attributes), taskExecutor);
}
public static Map<String,Object> combineIdWithAttributes(UUID id, Map<String,Object> attributes)
@@ -151,20 +156,11 @@ public abstract class AbstractConfiguredObject<X extends ConfiguredObject<X>> im
}
- protected AbstractConfiguredObject(UUID id, Map<String, Object> defaults, Map<String, Object> attributes,
- TaskExecutor taskExecutor, boolean filterAttributes)
-
- {
- this(Collections.<Class<? extends ConfiguredObject>, ConfiguredObject<?>>emptyMap(),
- defaults, combineIdWithAttributes(id, attributes), taskExecutor, filterAttributes);
- }
-
- protected AbstractConfiguredObject(Map<String, Object> defaults,
- Map<String, Object> attributes,
+ protected AbstractConfiguredObject(Map<String, Object> attributes,
TaskExecutor taskExecutor)
{
this(Collections.<Class<? extends ConfiguredObject>, ConfiguredObject<?>>emptyMap(),
- defaults, attributes, taskExecutor, true);
+ Collections.<String,Object>emptyMap(), attributes, taskExecutor, true);
}
protected AbstractConfiguredObject(final Map<Class<? extends ConfiguredObject>, ConfiguredObject<?>> parents,
@@ -198,6 +194,15 @@ public abstract class AbstractConfiguredObject<X extends ConfiguredObject<X>> im
_attributeTypes = getAttributeTypes(getClass());
_automatedFields = getAutomatedFields(getClass());
+ _type = getType(getClass());
+ if(attributes.get(TYPE) != null)
+ {
+ if(!_type.equals(attributes.get(TYPE)))
+ {
+ throw new IllegalConfigurationException("Provided type is " + attributes.get(TYPE)
+ + " but calculated type is " + _type);
+ }
+ }
for (Class<? extends ConfiguredObject> childClass : Model.getInstance().getChildTypes(getCategoryClass()))
{
@@ -277,11 +282,15 @@ public abstract class AbstractConfiguredObject<X extends ConfiguredObject<X>> im
}
- private void automatedSetValue(final String name, final Object value)
+ private void automatedSetValue(final String name, Object value)
{
try
{
final Attribute attribute = _attributeTypes.get(name);
+ if(value == null && !"".equals(attribute.getAnnotation().defaultValue()))
+ {
+ value = attribute.getAnnotation().defaultValue();
+ }
_automatedFields.get(name).set(this, attribute.convert(value, this));
}
catch (IllegalAccessException e)
@@ -292,7 +301,7 @@ public abstract class AbstractConfiguredObject<X extends ConfiguredObject<X>> im
protected AbstractConfiguredObject(UUID id, TaskExecutor taskExecutor)
{
- this(id, Collections.<String,Object>emptyMap(), Collections.<String,Object>emptyMap(), taskExecutor);
+ this(id, Collections.<String,Object>emptyMap(), taskExecutor);
}
public void open()
@@ -1037,9 +1046,9 @@ public abstract class AbstractConfiguredObject<X extends ConfiguredObject<X>> im
}
@Override
- public String getType()
+ public final String getType()
{
- return (String)getAttribute(TYPE);
+ return _type;
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
index 9c7bb295b9..6bb2e1beb3 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
@@ -59,6 +59,9 @@ public interface Broker<X extends Broker<X>> extends ConfiguredObject<X>, EventL
String CONNECTION_HEART_BEAT_DELAY = "connection.heartBeatDelay";
String CONNECTION_CLOSE_WHEN_NO_ROUTE = "connection.closeWhenNoRoute";
+ @ManagedContextDefault(name = "broker.name")
+ static final String DEFAULT_BROKER_NAME = "Broker";
+
@ManagedAttribute( derived = true )
String getBuildVersion();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
index b4321a2625..9f0237e97a 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
@@ -65,7 +65,7 @@ public interface ConfiguredObject<X extends ConfiguredObject<X>>
@ManagedAttribute
String getDescription();
- @ManagedAttribute
+ @ManagedAttribute( automate = true )
String getType();
@ManagedAttribute(automate = true)
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java
index 47f5a65477..5d574055a4 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/KeyStore.java
@@ -31,29 +31,6 @@ public interface KeyStore<X extends KeyStore<X>> extends ConfiguredObject<X>
String STATE = "state";
String DESCRIPTION = "description";
- String PATH = "path";
- String PASSWORD = "password";
- String KEY_STORE_TYPE = "keyStoreType";
- String CERTIFICATE_ALIAS = "certificateAlias";
- String KEY_MANAGER_FACTORY_ALGORITHM = "keyManagerFactoryAlgorithm";
-
- @ManagedAttribute( secure = true, automate = true, mandatory = true )
- public String getPassword();
-
- @ManagedAttribute( automate = true, mandatory = true)
- public String getPath();
-
- @ManagedAttribute( automate = true )
- public String getCertificateAlias();
-
- @ManagedAttribute( automate = true )
- public String getKeyManagerFactoryAlgorithm();
-
- @ManagedAttribute( automate = true )
- public String getKeyStoreType();
-
- public void setPassword(String password);
-
public KeyManager[] getKeyManagers() throws GeneralSecurityException;
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java
index ff28014090..5c311908f6 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Plugin.java
@@ -20,10 +20,6 @@
*/
package org.apache.qpid.server.model;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-
@ManagedObject
public interface Plugin<X extends Plugin<X>> extends ConfiguredObject<X>
{
@@ -31,8 +27,4 @@ public interface Plugin<X extends Plugin<X>> extends ConfiguredObject<X>
String DURABLE = "durable";
String LIFETIME_POLICY = "lifetimePolicy";
- // Attributes
-
- @ManagedAttribute
- String getPluginType();
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/RuntimeDefault.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/RuntimeDefault.java
new file mode 100644
index 0000000000..9014de69f2
--- /dev/null
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/RuntimeDefault.java
@@ -0,0 +1,33 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.model;
+
+public abstract class RuntimeDefault<T>
+{
+ public abstract T value();
+
+ final public String toString()
+ {
+ T value = value();
+ return value == null ? null : value.toString();
+ }
+
+}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/SystemContext.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/SystemContext.java
index 367df3ea5c..8e3a2acd79 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/SystemContext.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/SystemContext.java
@@ -24,7 +24,6 @@ import java.security.AccessControlException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -64,7 +63,7 @@ public class SystemContext extends AbstractConfiguredObject<SystemContext>
final LogRecorder logRecorder,
final BrokerOptions brokerOptions)
{
- super(SYSTEM_ID, Collections.<String,Object>emptyMap(), createAttributes(brokerOptions), taskExecutor);
+ super(SYSTEM_ID, createAttributes(brokerOptions), taskExecutor);
_eventLogger = eventLogger;
getTaskExecutor().start();
_objectFactory = configuredObjectFactory;
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java
index 92ea8e7863..d1b1a3d7a5 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/TrustStore.java
@@ -28,30 +28,11 @@ public interface TrustStore<X extends TrustStore<X>> extends ConfiguredObject<X>
{
String DURABLE = "durable";
String LIFETIME_POLICY = "lifetimePolicy";
- String STATE = "state";
String DESCRIPTION = "description";
- String PATH = "path";
- String PASSWORD = "password";
- String TRUST_STORE_TYPE = "trustStoreType";
- String PEERS_ONLY = "peersOnly";
- String TRUST_MANAGER_FACTORY_ALGORITHM = "trustManagerFactoryAlgorithm";
-
@ManagedAttribute( secure = true, automate = true, mandatory = true)
public String getPassword();
- @ManagedAttribute( automate = true, mandatory = true )
- public String getPath();
-
- @ManagedAttribute( automate = true )
- public String getTrustManagerFactoryAlgorithm();
-
- @ManagedAttribute( automate = true )
- public String getTrustStoreType();
-
- @ManagedAttribute( automate = true )
- public boolean isPeersOnly();
-
public void setPassword(String password);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
index 37ca65001c..33ccee8e71 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
@@ -96,8 +96,19 @@ public interface VirtualHost<X extends VirtualHost<X, Q, E>, Q extends Queue<?>,
@ManagedAttribute
String getSecurityAcl();
- @ManagedAttribute
- int getHouseKeepingThreadCount();
+ @ManagedContextDefault( name = "virtualhost.housekeepingThreadCount")
+ public static final RuntimeDefault<Integer> DEFAULT_HOUSEKEEPING_THREAD_COUNT =
+ new RuntimeDefault<Integer>()
+ {
+ @Override
+ public Integer value()
+ {
+ return Runtime.getRuntime().availableProcessors();
+ }
+ };
+
+ @ManagedAttribute( automate = true, defaultValue = "${virtualhost.housekeepingThreadCount}")
+ int getHousekeepingThreadCount();
@ManagedAttribute( automate = true )
Map<String, Object> getMessageStoreSettings();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
index e8dba7ed3f..b36d31b6e8 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
@@ -87,13 +87,6 @@ public class BrokerAdapter extends AbstractConfiguredObject<BrokerAdapter> imple
put(STORE_VERSION, String.class);
}});
- public static final String DEFAULT_NAME = "QpidBroker";
-
- @SuppressWarnings("serial")
- private static final Map<String, Object> DEFAULTS = Collections.unmodifiableMap(new HashMap<String, Object>(){{
- put(Broker.NAME, DEFAULT_NAME);
-
- }});
public static final String MANAGEMENT_MODE_AUTHENTICATION = "MANAGEMENT_MODE_AUTHENTICATION";
private final ConfiguredObjectFactory _objectFactory;
@@ -143,7 +136,8 @@ public class BrokerAdapter extends AbstractConfiguredObject<BrokerAdapter> imple
Map<String, Object> attributes,
SystemContext parent)
{
- super(Collections.<Class<? extends ConfiguredObject>, ConfiguredObject<?>>singletonMap(SystemContext.class, parent), DEFAULTS, combineIdWithAttributes(id,MapValueConverter.convert(attributes, ATTRIBUTE_TYPES)), parent.getTaskExecutor());
+ super(Collections.<Class<? extends ConfiguredObject>, ConfiguredObject<?>>singletonMap(SystemContext.class, parent),
+ Collections.<String,Object>emptyMap(), combineIdWithAttributes(id,MapValueConverter.convert(attributes, ATTRIBUTE_TYPES)), parent.getTaskExecutor());
_objectFactory = parent.getObjectFactory();
_virtualHostRegistry = new VirtualHostRegistry(parent.getEventLogger());
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
index 595a262486..f432a540e5 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
@@ -60,7 +60,7 @@ public final class ConnectionAdapter extends AbstractConfiguredObject<Connection
public ConnectionAdapter(final AMQConnectionModel conn, TaskExecutor taskExecutor)
{
- super(Collections.<String,Object>emptyMap(), createAttributes(conn), taskExecutor);
+ super(createAttributes(conn), taskExecutor);
_connection = conn;
open();
conn.addSessionListener(this);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProvider.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProvider.java
index 22877a4ea9..525a02d3a6 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProvider.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProvider.java
@@ -358,7 +358,7 @@ public class FileBasedGroupProvider
public GroupAdapter(Map<String,Object> attributes, TaskExecutor taskExecutor)
{
- super(Collections.<String,Object>emptyMap(),attributes, taskExecutor);
+ super(attributes, taskExecutor);
}
@@ -508,7 +508,7 @@ public class FileBasedGroupProvider
public GroupMemberAdapter(Map<String,Object> attrMap, TaskExecutor taskExecutor)
{
- super(Collections.<String,Object>emptyMap(), attrMap, taskExecutor);
+ super(attrMap, taskExecutor);
}
@Override
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java
index ec2a0574fa..7281799fc2 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProvider.java
@@ -68,18 +68,13 @@ public class FileSystemPreferencesProvider extends AbstractConfiguredObject<File
public static String PATH = "path";
public static final String PROVIDER_TYPE = "FileSystemPreferences";
- @SuppressWarnings("serial")
- private static final Map<String, Object> DEFAULTS = Collections.unmodifiableMap(new HashMap<String, Object>()
- {{
- put(TYPE, FileSystemPreferencesProvider.class.getSimpleName());
- }});
+
@SuppressWarnings("serial")
private static final Map<String, Type> ATTRIBUTE_TYPES = Collections.unmodifiableMap(new HashMap<String, Type>()
{{
put(NAME, String.class);
put(PATH, String.class);
- put(TYPE, String.class);
}});
private final AuthenticationProvider<? extends AuthenticationProvider> _authenticationProvider;
@@ -91,7 +86,7 @@ public class FileSystemPreferencesProvider extends AbstractConfiguredObject<File
AuthenticationProvider<? extends AuthenticationProvider> authenticationProvider)
{
super(Collections.<Class<? extends ConfiguredObject>, ConfiguredObject<?>>singletonMap(AuthenticationProvider.class, authenticationProvider),
- DEFAULTS,
+ Collections.<String,Object>emptyMap(),
combineIdWithAttributes(id,MapValueConverter.convert(attributes, ATTRIBUTE_TYPES)),
authenticationProvider.getParent(Broker.class).getTaskExecutor());
State state = MapValueConverter.getEnumAttribute(State.class, STATE, attributes, State.INITIALISING);
@@ -341,7 +336,7 @@ public class FileSystemPreferencesProvider extends AbstractConfiguredObject<File
}
String newType = (String) attributes.get(TYPE);
String currentType = (String) getAttribute(TYPE);
- if (!currentType.equals(newType))
+ if (newType != null && !currentType.equals(newType))
{
throw new IllegalConfigurationException("Changing the type of preferences provider is not supported");
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java
index 959f5757e2..0d11b6e97d 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java
@@ -45,7 +45,7 @@ final class SessionAdapter extends AbstractConfiguredObject<SessionAdapter> impl
public SessionAdapter(final AMQSessionModel session, TaskExecutor taskExecutor)
{
- super(Collections.<String,Object>emptyMap(),createAttributes(session), taskExecutor);
+ super(createAttributes(session), taskExecutor);
_session = session;
_session.addConsumerListener(new ConsumerListener()
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java
index 9faa5f9493..15843d14fe 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java
@@ -44,8 +44,8 @@ public class VirtualHostAliasAdapter extends AbstractConfiguredObject<VirtualHos
public VirtualHostAliasAdapter(VirtualHost virtualHost, Port port)
{
- super(Collections.<String, Object>emptyMap(),
- createAttributes(virtualHost, port),
+ super(
+ createAttributes(virtualHost, port),
virtualHost.getTaskExecutor());
_vhost = virtualHost;
_port = port;
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java
index 592968ab94..ef79f9f6bd 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java
@@ -120,10 +120,6 @@ abstract public class AbstractPort<X extends AbstractPort<X>> extends AbstractCo
{
updatedDefaults.put(Port.TRANSPORTS, Collections.singleton(DEFAULT_TRANSPORT));
}
- if(!defaults.containsKey(NAME))
- {
- updatedDefaults.put(NAME, attributes.get(PORT) + "-" + attributes.get(TYPE));
- }
return updatedDefaults;
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemNodeCreator.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemNodeCreator.java
index eb3a21e77e..b7cb56718c 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemNodeCreator.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemNodeCreator.java
@@ -31,7 +31,6 @@ public interface SystemNodeCreator extends Pluggable
void removeSystemNode(MessageNode node);
VirtualHostImpl getVirtualHost();
- org.apache.qpid.server.model.VirtualHost getVirtualHostModel();
}
void register(SystemNodeRegistry registry);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java
index b42eb1e67f..8910a7ef60 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java
@@ -121,8 +121,8 @@ class QueueConsumerImpl
final Class<? extends ServerMessage> messageClass,
EnumSet<Option> optionSet)
{
- super(Collections.<String,Object>emptyMap(),
- createAttributeMap(consumerName,filters,optionSet),
+ super(
+ createAttributeMap(consumerName,filters,optionSet),
queue.getVirtualHost().getTaskExecutor());
_messageClass = messageClass;
_sessionReference = target.getSessionModel().getConnectionReference();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStoreAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStoreAdapter.java
deleted file mode 100644
index 39682ff055..0000000000
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStoreAdapter.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.server.security;
-
-import java.security.AccessControlException;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Map;
-import java.util.UUID;
-
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.KeyStore;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.model.ManagedAttributeField;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.AbstractConfiguredObject;
-import org.apache.qpid.server.util.MapValueConverter;
-
-public abstract class AbstractKeyStoreAdapter<X extends ConfiguredObject<X>> extends AbstractConfiguredObject<X>
-{
- public static final String DUMMY_PASSWORD_MASK = "********";
- public static final String DEFAULT_KEYSTORE_TYPE = java.security.KeyStore.getDefaultType();
-
- @ManagedAttributeField
- private String _password;
-
-
- protected AbstractKeyStoreAdapter(UUID id, Broker broker, Map<String, Object> defaults,
- Map<String, Object> attributes)
- {
- super(Collections.<Class<? extends ConfiguredObject>,ConfiguredObject<?>>singletonMap(Broker.class, broker),
- defaults,
- combineIdWithAttributes(id, attributes),
- broker.getTaskExecutor());
-
- MapValueConverter.assertMandatoryAttribute(KeyStore.PATH, attributes);
- }
-
-
- @Override
- public String setName(String currentName, String desiredName) throws IllegalStateException, AccessControlException
- {
- throw new IllegalStateException();
- }
-
- @Override
- public State getState()
- {
- return State.ACTIVE;
- }
-
- @Override
- public boolean isDurable()
- {
- return true;
- }
-
- @Override
- public void setDurable(boolean durable) throws IllegalStateException, AccessControlException, IllegalArgumentException
- {
- throw new IllegalStateException();
- }
-
- @Override
- public LifetimePolicy getLifetimePolicy()
- {
- return LifetimePolicy.PERMANENT;
- }
-
- @Override
- public LifetimePolicy setLifetimePolicy(LifetimePolicy expected, LifetimePolicy desired) throws IllegalStateException, AccessControlException,
- IllegalArgumentException
- {
- throw new IllegalStateException();
- }
-
- @Override
- public <C extends ConfiguredObject> Collection<C> getChildren(Class<C> clazz)
- {
- return Collections.emptySet();
- }
-
- @Override
- public Object getAttribute(String name)
- {
- if(KeyStore.STATE.equals(name))
- {
- return getState();
- }
- else if(KeyStore.DURABLE.equals(name))
- {
- return isDurable();
- }
- else if(KeyStore.LIFETIME_POLICY.equals(name))
- {
- return getLifetimePolicy();
- }
-
- return super.getAttribute(name);
- }
-
- public String getPassword()
- {
- return _password;
- }
-
- public void setPassword(String password)
- {
- _password = password;
- }
-}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStore.java
index c162a66e64..822245f1a8 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStore.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStore.java
@@ -38,12 +38,18 @@ import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.IntegrityViolationException;
import org.apache.qpid.server.model.KeyStore;
+import org.apache.qpid.server.model.LifetimePolicy;
+import org.apache.qpid.server.model.ManagedAttribute;
import org.apache.qpid.server.model.ManagedAttributeField;
+import org.apache.qpid.server.model.ManagedContextDefault;
import org.apache.qpid.server.model.ManagedObject;
import org.apache.qpid.server.model.Port;
+import org.apache.qpid.server.model.RuntimeDefault;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.security.access.Operation;
import org.apache.qpid.server.util.MapValueConverter;
@@ -52,8 +58,13 @@ import org.apache.qpid.transport.network.security.ssl.QpidClientX509KeyManager;
import org.apache.qpid.transport.network.security.ssl.SSLUtil;
@ManagedObject( category = false )
-public class FileKeyStore extends AbstractKeyStoreAdapter<FileKeyStore> implements KeyStore<FileKeyStore>
+public class FileKeyStore extends AbstractConfiguredObject<FileKeyStore> implements KeyStore<FileKeyStore>
{
+ public static final String KEY_MANAGER_FACTORY_ALGORITHM = "keyManagerFactoryAlgorithm";
+ public static final String CERTIFICATE_ALIAS = "certificateAlias";
+ public static final String KEY_STORE_TYPE = "keyStoreType";
+ public static final String PASSWORD = "password";
+ public static final String PATH = "path";
@SuppressWarnings("serial")
public static final Map<String, Type> ATTRIBUTE_TYPES = Collections.unmodifiableMap(new HashMap<String, Type>(){{
put(NAME, String.class);
@@ -64,6 +75,30 @@ public class FileKeyStore extends AbstractKeyStoreAdapter<FileKeyStore> implemen
put(KEY_MANAGER_FACTORY_ALGORITHM, String.class);
}});
+
+ @ManagedContextDefault(name = "keyStoreFile.keyStoreType")
+ public static final RuntimeDefault<String> DEFAULT_KEYSTORE_TYPE =
+ new RuntimeDefault<String>()
+ {
+ @Override
+ public String value()
+ {
+ return java.security.KeyStore.getDefaultType();
+ }
+ };
+
+ @ManagedContextDefault(name = "keyStoreFile.keyManagerFactoryAlgorithm")
+ public static final RuntimeDefault<String> DEFAULT_KEY_MANAGER_FACTORY_ALGORITHM =
+ new RuntimeDefault<String>()
+ {
+ @Override
+ public String value()
+ {
+ return KeyManagerFactory.getDefaultAlgorithm();
+ }
+ };
+
+
@ManagedAttributeField
private String _type;
@ManagedAttributeField
@@ -74,18 +109,18 @@ public class FileKeyStore extends AbstractKeyStoreAdapter<FileKeyStore> implemen
private String _keyManagerFactoryAlgorithm;
@ManagedAttributeField
private String _path;
+ @ManagedAttributeField
+ private String _password;
- @SuppressWarnings("serial")
- public static final Map<String, Object> DEFAULTS = Collections.unmodifiableMap(new HashMap<String, Object>(){{
- put(KeyStore.KEY_STORE_TYPE, DEFAULT_KEYSTORE_TYPE);
- put(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM, KeyManagerFactory.getDefaultAlgorithm());
- }});
private Broker<?> _broker;
public FileKeyStore(UUID id, Broker<?> broker, Map<String, Object> attributes)
{
- super(id, broker, DEFAULTS, attributes);
+ super(Collections.<Class<? extends ConfiguredObject>,ConfiguredObject<?>>singletonMap(Broker.class, broker),
+ Collections.<String,Object>emptyMap(), combineIdWithAttributes(id, attributes),
+ broker.getTaskExecutor());
+
_broker = broker;
}
@@ -100,7 +135,62 @@ public class FileKeyStore extends AbstractKeyStoreAdapter<FileKeyStore> implemen
@Override
public Collection<String> getAttributeNames()
{
- return getAttributeNames(KeyStore.class);
+ return getAttributeNames(getClass());
+ }
+ @Override
+ public String setName(String currentName, String desiredName) throws IllegalStateException, AccessControlException
+ {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public State getState()
+ {
+ return State.ACTIVE;
+ }
+
+ @Override
+ public boolean isDurable()
+ {
+ return true;
+ }
+
+ @Override
+ public void setDurable(boolean durable) throws IllegalStateException, AccessControlException, IllegalArgumentException
+ {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public LifetimePolicy getLifetimePolicy()
+ {
+ return LifetimePolicy.PERMANENT;
+ }
+
+ @Override
+ public LifetimePolicy setLifetimePolicy(LifetimePolicy expected, LifetimePolicy desired) throws IllegalStateException, AccessControlException,
+ IllegalArgumentException
+ {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public Object getAttribute(String name)
+ {
+ if(KeyStore.STATE.equals(name))
+ {
+ return getState();
+ }
+ else if(KeyStore.DURABLE.equals(name))
+ {
+ return isDurable();
+ }
+ else if(KeyStore.LIFETIME_POLICY.equals(name))
+ {
+ return getLifetimePolicy();
+ }
+
+ return super.getAttribute(name);
}
@Override
@@ -171,13 +261,13 @@ public class FileKeyStore extends AbstractKeyStoreAdapter<FileKeyStore> implemen
}
}
- Map<String, Object> merged = generateEffectiveAttributes(changedValues);
-
- String keyStorePath = (String)merged.get(KeyStore.PATH);
- String keyStorePassword = (String) merged.get(KeyStore.PASSWORD);
- String keyStoreType = (String)merged.get(KeyStore.KEY_STORE_TYPE);
- String keyManagerFactoryAlgorithm = (String)merged.get(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM);
- String certAlias = (String)merged.get(KeyStore.CERTIFICATE_ALIAS);
+ String keyStorePath = changedValues.containsKey(PATH) ? (String)changedValues.get(PATH) : getPath();
+ String keyStorePassword = changedValues.containsKey(PASSWORD) ? (String) changedValues.get(PASSWORD) : getPassword();
+ String keyStoreType = changedValues.containsKey(KEY_STORE_TYPE) ? (String)changedValues.get(KEY_STORE_TYPE) : getKeyStoreType();
+ String keyManagerFactoryAlgorithm = changedValues.containsKey(KEY_MANAGER_FACTORY_ALGORITHM) ?
+ (String)changedValues.get(KEY_MANAGER_FACTORY_ALGORITHM) : getKeyManagerFactoryAlgorithm();
+ String certAlias = changedValues.containsKey(CERTIFICATE_ALIAS) ? (String)changedValues.get(CERTIFICATE_ALIAS)
+ : getCertificateAlias();
validateKeyStoreAttributes(keyStoreType, keyStorePath, keyStorePassword,
certAlias, keyManagerFactoryAlgorithm);
@@ -229,30 +319,41 @@ public class FileKeyStore extends AbstractKeyStoreAdapter<FileKeyStore> implemen
}
}
- @Override
+ @ManagedAttribute( automate = true, mandatory = true)
public String getPath()
{
return _path;
}
- @Override
+ @ManagedAttribute( automate = true )
public String getCertificateAlias()
{
return _certificateAlias;
}
- @Override
+ @ManagedAttribute( automate = true, defaultValue = "${keyStoreFile.keyManagerFactoryAlgorithm}" )
public String getKeyManagerFactoryAlgorithm()
{
return _keyManagerFactoryAlgorithm;
}
- @Override
+ @ManagedAttribute( automate = true, defaultValue = "${keyStoreFile.keyStoreType}" )
public String getKeyStoreType()
{
return _keyStoreType;
}
+ @ManagedAttribute( secure = true, automate = true, mandatory = true )
+ public String getPassword()
+ {
+ return _password;
+ }
+
+ public void setPassword(String password)
+ {
+ _password = password;
+ }
+
public KeyManager[] getKeyManagers() throws GeneralSecurityException
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStore.java
index c97668e5a9..adc187bd38 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStore.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStore.java
@@ -33,6 +33,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
+import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
@@ -48,8 +49,36 @@ import org.apache.qpid.transport.network.security.ssl.QpidPeersOnlyTrustManager;
import org.apache.qpid.transport.network.security.ssl.SSLUtil;
@ManagedObject( category = false )
-public class FileTrustStore extends AbstractKeyStoreAdapter<FileTrustStore> implements TrustStore<FileTrustStore>
+public class FileTrustStore extends AbstractConfiguredObject<FileTrustStore> implements TrustStore<FileTrustStore>
{
+
+
+ @ManagedContextDefault(name = "trustStoreFile.trustStoreType")
+ public static final RuntimeDefault<String> DEFAULT_TRUSTSTORE_TYPE =
+ new RuntimeDefault<String>()
+ {
+ @Override
+ public String value()
+ {
+ return java.security.KeyStore.getDefaultType();
+ }
+ };
+ @ManagedContextDefault(name = "trustStoreFile.trustManagerFactoryAlgorithm")
+ public static final RuntimeDefault<String> DEFAULT_TRUST_MANAGER_FACTORY_ALGORITHM =
+ new RuntimeDefault<String>()
+ {
+ @Override
+ public String value()
+ {
+ return KeyManagerFactory.getDefaultAlgorithm();
+ }
+ };
+
+ public static final String TRUST_MANAGER_FACTORY_ALGORITHM = "trustManagerFactoryAlgorithm";
+ public static final String PEERS_ONLY = "peersOnly";
+ public static final String TRUST_STORE_TYPE = "trustStoreType";
+ public static final String PASSWORD = "password";
+ public static final String PATH = "path";
@SuppressWarnings("serial")
public static final Map<String, Type> ATTRIBUTE_TYPES = Collections.unmodifiableMap(new HashMap<String, Type>(){{
put(NAME, String.class);
@@ -60,13 +89,6 @@ public class FileTrustStore extends AbstractKeyStoreAdapter<FileTrustStore> impl
put(TRUST_MANAGER_FACTORY_ALGORITHM, String.class);
}});
- @SuppressWarnings("serial")
- public static final Map<String, Object> DEFAULTS = Collections.unmodifiableMap(new HashMap<String, Object>(){{
- put(TrustStore.TRUST_STORE_TYPE, DEFAULT_KEYSTORE_TYPE);
- put(TrustStore.PEERS_ONLY, Boolean.FALSE);
- put(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM, TrustManagerFactory.getDefaultAlgorithm());
- }});
-
@ManagedAttributeField
private String _trustStoreType;
@ManagedAttributeField
@@ -75,13 +97,16 @@ public class FileTrustStore extends AbstractKeyStoreAdapter<FileTrustStore> impl
private String _path;
@ManagedAttributeField
private boolean _peersOnly;
-
+ @ManagedAttributeField
+ private String _password;
private Broker<?> _broker;
public FileTrustStore(UUID id, Broker<?> broker, Map<String, Object> attributes)
{
- super(id, broker, DEFAULTS, attributes);
+ super(Collections.<Class<? extends ConfiguredObject>,ConfiguredObject<?>>singletonMap(Broker.class, broker),
+ Collections.<String,Object>emptyMap(), combineIdWithAttributes(id, attributes),
+ broker.getTaskExecutor());
_broker = broker;
}
@@ -95,7 +120,43 @@ public class FileTrustStore extends AbstractKeyStoreAdapter<FileTrustStore> impl
@Override
public Collection<String> getAttributeNames()
{
- return getAttributeNames(TrustStore.class);
+ return getAttributeNames(getClass());
+ }
+ @Override
+ public String setName(String currentName, String desiredName) throws IllegalStateException, AccessControlException
+ {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public State getState()
+ {
+ return State.ACTIVE;
+ }
+
+ @Override
+ public boolean isDurable()
+ {
+ return true;
+ }
+
+ @Override
+ public void setDurable(boolean durable) throws IllegalStateException, AccessControlException, IllegalArgumentException
+ {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public LifetimePolicy getLifetimePolicy()
+ {
+ return LifetimePolicy.PERMANENT;
+ }
+
+ @Override
+ public LifetimePolicy setLifetimePolicy(LifetimePolicy expected, LifetimePolicy desired) throws IllegalStateException, AccessControlException,
+ IllegalArgumentException
+ {
+ throw new IllegalStateException();
}
@Override
@@ -189,10 +250,16 @@ public class FileTrustStore extends AbstractKeyStoreAdapter<FileTrustStore> impl
Map<String, Object> merged = generateEffectiveAttributes(changedValues);
- String trustStorePath = (String)merged.get(TrustStore.PATH);
- String trustStorePassword = (String) merged.get(TrustStore.PASSWORD);
- String trustStoreType = (String)merged.get(TrustStore.TRUST_STORE_TYPE);
- String trustManagerFactoryAlgorithm = (String)merged.get(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM);
+ String trustStorePath = changedValues.containsKey(PATH) ? (String) changedValues.get(PATH) : getPath();
+ String trustStorePassword =
+ changedValues.containsKey(PASSWORD) ? (String) changedValues.get(PASSWORD) : getPassword();
+ String trustStoreType = changedValues.containsKey(TRUST_STORE_TYPE)
+ ? (String) changedValues.get(TRUST_STORE_TYPE)
+ : getTrustStoreType();
+ String trustManagerFactoryAlgorithm =
+ changedValues.containsKey(TRUST_MANAGER_FACTORY_ALGORITHM)
+ ? (String) changedValues.get(TRUST_MANAGER_FACTORY_ALGORITHM)
+ : getTrustManagerFactoryAlgorithm();
validateTrustStoreAttributes(trustStoreType, trustStorePath,
trustStorePassword, trustManagerFactoryAlgorithm);
@@ -223,29 +290,57 @@ public class FileTrustStore extends AbstractKeyStoreAdapter<FileTrustStore> impl
}
@Override
+ public Object getAttribute(String name)
+ {
+ if(STATE.equals(name))
+ {
+ return getState();
+ }
+ else if(DURABLE.equals(name))
+ {
+ return isDurable();
+ }
+ else if(org.apache.qpid.server.model.KeyStore.LIFETIME_POLICY.equals(name))
+ {
+ return getLifetimePolicy();
+ }
+
+ return super.getAttribute(name);
+ }
+ @ManagedAttribute( automate = true, mandatory = true )
public String getPath()
{
return _path;
}
- @Override
+ @ManagedAttribute( automate = true, defaultValue = "${trustStoreFile.trustManagerFactoryAlgorithm}")
public String getTrustManagerFactoryAlgorithm()
{
return _trustManagerFactoryAlgorithm;
}
- @Override
+ @ManagedAttribute( automate = true, defaultValue = "${trustStoreFile.trustStoreType}")
public String getTrustStoreType()
{
return _trustStoreType;
}
- @Override
+ @ManagedAttribute( automate = true, defaultValue = "false" )
public boolean isPeersOnly()
{
return _peersOnly;
}
+ @ManagedAttribute( secure = true, automate = true, mandatory = true )
+ public String getPassword()
+ {
+ return _password;
+ }
+
+ public void setPassword(String password)
+ {
+ _password = password;
+ }
public TrustManager[] getTrustManagers() throws GeneralSecurityException
{
String trustStorePath = _path;
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
index 130413d99d..f681565767 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
@@ -356,7 +356,7 @@ public abstract class PrincipalDatabaseAuthenticationManager<T extends Principal
public PrincipalAdapter(Principal user)
{
- super(Collections.<String,Object>emptyMap(), createPrincipalAttributes(PrincipalDatabaseAuthenticationManager.this, user),
+ super(createPrincipalAttributes(PrincipalDatabaseAuthenticationManager.this, user),
PrincipalDatabaseAuthenticationManager.this.getTaskExecutor());
_user = user;
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
index 73e6133725..0c1016f012 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
@@ -20,7 +20,6 @@
*/
package org.apache.qpid.server.virtualhost;
-import java.lang.reflect.Type;
import java.security.AccessControlException;
import java.security.PrivilegedAction;
import java.util.ArrayList;
@@ -89,7 +88,6 @@ import org.apache.qpid.server.txn.DtxRegistry;
import org.apache.qpid.server.txn.LocalTransaction;
import org.apache.qpid.server.txn.ServerTransaction;
import org.apache.qpid.server.util.MapValueConverter;
-import org.apache.qpid.server.util.ParameterizedTypeImpl;
public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> extends AbstractConfiguredObject<X>
implements VirtualHostImpl<X, AMQQueue<?>, ExchangeImpl<?>>, IConnectionRegistry.RegistryChangeListener, EventListener,
@@ -101,7 +99,7 @@ public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> exte
private final long _createTime = System.currentTimeMillis();
- private final ScheduledThreadPoolExecutor _houseKeepingTasks;
+ private ScheduledThreadPoolExecutor _houseKeepingTasks;
private final Broker<?> _broker;
@@ -132,31 +130,6 @@ public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> exte
private final EventLogger _eventLogger;
- @SuppressWarnings("serial")
- public static final Map<String, Type> ATTRIBUTE_TYPES = Collections.unmodifiableMap(new HashMap<String, Type>(){{
- put(NAME, String.class);
- put(TYPE, String.class);
- put(STATE, State.class);
-
- put(QUEUE_DEAD_LETTER_QUEUE_ENABLED, Boolean.class);
-
- put(HOUSEKEEPING_CHECK_PERIOD, Long.class);
- put(STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE, Long.class);
- put(STORE_TRANSACTION_IDLE_TIMEOUT_WARN, Long.class);
- put(STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE, Long.class);
- put(STORE_TRANSACTION_OPEN_TIMEOUT_WARN, Long.class);
-
- put(MESSAGE_STORE_SETTINGS, new ParameterizedTypeImpl(Map.class, String.class, Object.class));
- put(CONFIGURATION_STORE_SETTINGS, new ParameterizedTypeImpl(Map.class, String.class, Object.class));
-
- }});
-
- @SuppressWarnings("serial")
- private static final Map<String, Object> DEFAULTS = Collections.unmodifiableMap(new HashMap<String, Object>(){{
- put(HOUSE_KEEPING_THREAD_COUNT, Runtime.getRuntime().availableProcessors());
- }});
-
-
private final Map<AMQConnectionModel, ConnectionAdapter> _connectionAdapters =
new HashMap<AMQConnectionModel, ConnectionAdapter>();
@@ -187,10 +160,15 @@ public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> exte
@ManagedAttributeField
private long _storeTransactionOpenTimeoutWarn;
+ @ManagedAttributeField
+ private int _housekeepingThreadCount;
+
public AbstractVirtualHost(final Map<String, Object> attributes, Broker<?> broker)
{
- super(parentsMap(broker), DEFAULTS, enhanceWithId(attributes), broker.getTaskExecutor());
+ super(parentsMap(broker),
+ Collections.<String,Object>emptyMap(),
+ enhanceWithId(attributes), broker.getTaskExecutor());
_broker = broker;
_dtxRegistry = new DtxRegistry();
@@ -201,9 +179,6 @@ public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> exte
_connectionRegistry = new ConnectionRegistry();
_connectionRegistry.addRegistryChangeListener(this);
- _houseKeepingTasks = new ScheduledThreadPoolExecutor(getHouseKeepingThreadCount());
-
-
_queueRegistry = new DefaultQueueRegistry(this);
_queueFactory = new AMQQueueFactory(this, _queueRegistry);
@@ -249,6 +224,7 @@ public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> exte
protected void onOpen()
{
super.onOpen();
+ _houseKeepingTasks = new ScheduledThreadPoolExecutor(getHousekeepingThreadCount());
registerSystemNodes();
@@ -379,12 +355,6 @@ public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> exte
throw new IllegalStateException();
}
-
- public String getType()
- {
- return (String)getAttribute(TYPE);
- }
-
public String setType(final String currentType, final String desiredType)
throws IllegalStateException, AccessControlException
{
@@ -526,19 +496,22 @@ public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> exte
protected void shutdownHouseKeeping()
{
- _houseKeepingTasks.shutdown();
-
- try
+ if(_houseKeepingTasks != null)
{
- if (!_houseKeepingTasks.awaitTermination(HOUSEKEEPING_SHUTDOWN_TIMEOUT, TimeUnit.SECONDS))
+ _houseKeepingTasks.shutdown();
+
+ try
{
- _houseKeepingTasks.shutdownNow();
+ if (!_houseKeepingTasks.awaitTermination(HOUSEKEEPING_SHUTDOWN_TIMEOUT, TimeUnit.SECONDS))
+ {
+ _houseKeepingTasks.shutdownNow();
+ }
+ }
+ catch (InterruptedException e)
+ {
+ _logger.warn("Interrupted during Housekeeping shutdown:", e);
+ Thread.currentThread().interrupt();
}
- }
- catch (InterruptedException e)
- {
- _logger.warn("Interrupted during Housekeeping shutdown:", e);
- Thread.currentThread().interrupt();
}
}
@@ -1375,12 +1348,6 @@ public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> exte
return AbstractVirtualHost.this;
}
- @Override
- public org.apache.qpid.server.model.VirtualHost getVirtualHostModel()
- {
- return AbstractVirtualHost.this;
- }
-
}
@@ -1390,12 +1357,6 @@ public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> exte
return isQueue_deadLetterQueueEnabled();
}
- @Override
- public org.apache.qpid.server.model.VirtualHost getModel()
- {
- return this;
- }
-
public void executeTransaction(TransactionalOperation op)
{
@@ -1649,9 +1610,9 @@ public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> exte
}
@Override
- public int getHouseKeepingThreadCount()
+ public int getHousekeepingThreadCount()
{
- return (Integer)getAttribute(HOUSE_KEEPING_THREAD_COUNT);
+ return _housekeepingThreadCount;
}
@@ -1661,24 +1622,6 @@ public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> exte
{
if (desiredState == State.ACTIVE)
{
-/*
- try
- {
- onOpen();
- }
- catch(RuntimeException e)
- {
- changeAttribute(STATE, State.INITIALISING, State.ERRORED);
- if (_broker.isManagementMode())
- {
- _logger.warn("Failed to activate virtual host: " + getName(), e);
- }
- else
- {
- throw e;
- }
- }
-*/
return true;
}
else if (desiredState == State.STOPPED)
@@ -1722,7 +1665,7 @@ public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> exte
_logger.warn("Exception occurred on store deletion", e);
}
}
- setAttribute(org.apache.qpid.server.model.VirtualHost.STATE, getState(), State.DELETED);
+ setAttribute(VirtualHost.STATE, getState(), State.DELETED);
deleted();
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
index efbc7c5229..9a1390d2e8 100755
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
@@ -126,7 +126,5 @@ public interface VirtualHostImpl< X extends VirtualHostImpl<X,Q,E>, Q extends AM
TaskExecutor getTaskExecutor();
- org.apache.qpid.server.model.VirtualHost getModel();
-
EventLogger getEventLogger();
}
diff --git a/qpid/java/broker-core/src/main/resources/initial-config.json b/qpid/java/broker-core/src/main/resources/initial-config.json
index efc98f6ac8..5cd53fa9cc 100644
--- a/qpid/java/broker-core/src/main/resources/initial-config.json
+++ b/qpid/java/broker-core/src/main/resources/initial-config.json
@@ -19,7 +19,7 @@
*
*/
{
- "name": "Broker",
+ "name": "${broker.name}",
"storeVersion": 1,
"modelVersion": "1.4",
"defaultVirtualHost" : "default",
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java
index 280ee185ae..e5beb21810 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreatorTest.java
@@ -20,6 +20,20 @@
*/
package org.apache.qpid.server.configuration;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.io.StringWriter;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.SerializationConfig;
+
import org.apache.qpid.server.BrokerOptions;
import org.apache.qpid.server.configuration.store.JsonConfigurationEntryStore;
import org.apache.qpid.server.configuration.updater.TaskExecutor;
@@ -32,19 +46,6 @@ import org.apache.qpid.server.model.SystemContext;
import org.apache.qpid.test.utils.QpidTestCase;
import org.apache.qpid.test.utils.TestFileUtils;
import org.apache.qpid.util.FileUtils;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.SerializationConfig;
-
-import java.io.File;
-import java.io.StringWriter;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
public class BrokerConfigurationStoreCreatorTest extends QpidTestCase
{
@@ -117,7 +118,7 @@ public class BrokerConfigurationStoreCreatorTest extends QpidTestCase
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
- String defaultBrokerName = "Broker";
+ String defaultBrokerName = "${broker.name}";
String testBrokerName = getTestName();
Map<String, Object> brokerObjectMap = new HashMap<String, Object>();
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
index 9e3d38064f..23f71e4ac3 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
@@ -76,7 +76,11 @@ public class BrokerRecovererTest extends TestCase
when(_brokerEntry.getId()).thenReturn(_brokerId);
when(_brokerEntry.getType()).thenReturn(Broker.class.getSimpleName());
- when(_brokerEntry.getAttributes()).thenReturn(Collections.<String, Object>singletonMap(Broker.MODEL_VERSION, Model.MODEL_VERSION));
+ Map<String, Object> attributesMap = new HashMap<String, Object>();
+ attributesMap.put(Broker.MODEL_VERSION, Model.MODEL_VERSION);
+ attributesMap.put(Broker.NAME, getName());
+
+ when(_brokerEntry.getAttributes()).thenReturn(attributesMap);
when(_brokerEntry.getParents()).thenReturn(Collections.singletonMap(SystemContext.class.getSimpleName(), _systemContext.asObjectRecord()));
//Add a base AuthenticationProvider for all tests
@@ -90,6 +94,7 @@ public class BrokerRecovererTest extends TestCase
public void testCreateBrokerAttributes()
{
Map<String, Object> attributes = new HashMap<String, Object>();
+ attributes.put(Broker.NAME, getName());
attributes.put(Broker.DEFAULT_VIRTUAL_HOST, "test");
attributes.put(Broker.CONNECTION_SESSION_COUNT_LIMIT, 1000);
attributes.put(Broker.CONNECTION_HEART_BEAT_DELAY, 2000);
@@ -270,6 +275,7 @@ public class BrokerRecovererTest extends TestCase
// need to reset all the shared objects for every iteration of the test
setUp();
brokerAttributes.put(Broker.MODEL_VERSION, incompatibleVersion);
+ brokerAttributes.put(Broker.NAME, getName());
when(_brokerEntry.getAttributes()).thenReturn(brokerAttributes);
try
@@ -293,6 +299,8 @@ public class BrokerRecovererTest extends TestCase
Map<String, Object> brokerAttributes = new HashMap<String, Object>();
String incompatibleVersion = Model.MODEL_MAJOR_VERSION + "." + Integer.MAX_VALUE;
brokerAttributes.put(Broker.MODEL_VERSION, incompatibleVersion);
+ brokerAttributes.put(Broker.NAME, getName());
+
when(_brokerEntry.getAttributes()).thenReturn(brokerAttributes);
try
@@ -311,6 +319,8 @@ public class BrokerRecovererTest extends TestCase
public void testIncorrectModelVersion() throws Exception
{
Map<String, Object> brokerAttributes = new HashMap<String, Object>();
+ brokerAttributes.put(Broker.NAME, getName());
+
String[] versions = { Integer.MAX_VALUE + "_" + 0, "", null };
for (String modelVersion : versions)
{
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileKeyStoreCreationTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileKeyStoreCreationTest.java
index 177fecb72c..1470e68a90 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileKeyStoreCreationTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileKeyStoreCreationTest.java
@@ -32,12 +32,13 @@ import javax.security.auth.Subject;
import junit.framework.TestCase;
+import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.ConfiguredObjectFactory;
import org.apache.qpid.server.model.KeyStore;
import org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory;
-import org.apache.qpid.server.security.AbstractKeyStoreAdapter;
+import org.apache.qpid.server.security.FileKeyStore;
import org.apache.qpid.server.security.SecurityManager;
import org.apache.qpid.test.utils.TestSSLConstants;
@@ -59,7 +60,7 @@ public class FileKeyStoreCreationTest extends TestCase
Broker broker = mock(Broker.class);
- final KeyStore keyStore =
+ final FileKeyStore keyStore =
createKeyStore(attributes, broker);
@@ -75,7 +76,7 @@ public class FileKeyStoreCreationTest extends TestCase
assertNotNull(keyStore.getPassword());
assertEquals(TestSSLConstants.BROKER_TRUSTSTORE_PASSWORD, keyStore.getPassword());
//verify that we haven't configured the key store with the actual dummy password value
- assertFalse(AbstractKeyStoreAdapter.DUMMY_PASSWORD_MASK.equals(keyStore.getPassword()));
+ assertFalse(AbstractConfiguredObject.SECURED_STRING_VALUE.equals(keyStore.getPassword()));
return null;
}
});
@@ -83,7 +84,7 @@ public class FileKeyStoreCreationTest extends TestCase
// Verify the remaining attributes, including that the password value returned
// via getAttribute is actually the dummy value and not the real password
- attributesCopy.put(KeyStore.PASSWORD, AbstractKeyStoreAdapter.DUMMY_PASSWORD_MASK);
+ attributesCopy.put(FileKeyStore.PASSWORD, AbstractConfiguredObject.SECURED_STRING_VALUE);
for (Map.Entry<String, Object> attribute : attributesCopy.entrySet())
{
Object attributeValue = keyStore.getAttribute(attribute.getKey());
@@ -91,11 +92,11 @@ public class FileKeyStoreCreationTest extends TestCase
}
}
- protected KeyStore createKeyStore(final Map<String, Object> attributes, final Broker broker)
+ protected FileKeyStore createKeyStore(final Map<String, Object> attributes, final Broker broker)
{
ConfiguredObjectTypeFactory configuredObjectTypeFactory =
_factory.getConfiguredObjectTypeFactory(KeyStore.class, attributes);
- return (KeyStore) configuredObjectTypeFactory.create(attributes, broker);
+ return (FileKeyStore) configuredObjectTypeFactory.create(attributes, broker);
}
public void testCreateWithMissedRequiredAttributes()
@@ -105,7 +106,7 @@ public class FileKeyStoreCreationTest extends TestCase
UUID id = UUID.randomUUID();
Broker broker = mock(Broker.class);
- String[] mandatoryProperties = {KeyStore.NAME, KeyStore.PATH, KeyStore.PASSWORD};
+ String[] mandatoryProperties = {KeyStore.NAME, FileKeyStore.PATH, FileKeyStore.PASSWORD};
for (int i = 0; i < mandatoryProperties.length; i++)
{
Map<String, Object> properties = new HashMap<String, Object>(attributes);
@@ -127,11 +128,11 @@ public class FileKeyStoreCreationTest extends TestCase
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(KeyStore.ID, UUID.randomUUID());
attributes.put(KeyStore.NAME, getName());
- attributes.put(KeyStore.PATH, TestSSLConstants.BROKER_KEYSTORE);
- attributes.put(KeyStore.PASSWORD, TestSSLConstants.BROKER_KEYSTORE_PASSWORD);
- attributes.put(KeyStore.KEY_STORE_TYPE, "jks");
- attributes.put(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM, KeyManagerFactory.getDefaultAlgorithm());
- attributes.put(KeyStore.CERTIFICATE_ALIAS, "java-broker");
+ attributes.put(FileKeyStore.PATH, TestSSLConstants.BROKER_KEYSTORE);
+ attributes.put(FileKeyStore.PASSWORD, TestSSLConstants.BROKER_KEYSTORE_PASSWORD);
+ attributes.put(FileKeyStore.KEY_STORE_TYPE, "jks");
+ attributes.put(FileKeyStore.KEY_MANAGER_FACTORY_ALGORITHM, KeyManagerFactory.getDefaultAlgorithm());
+ attributes.put(FileKeyStore.CERTIFICATE_ALIAS, "java-broker");
return attributes;
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileTrustStoreCreationTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileTrustStoreCreationTest.java
index 25005407ae..66f31a4e3d 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileTrustStoreCreationTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/FileTrustStoreCreationTest.java
@@ -30,9 +30,9 @@ import java.util.UUID;
import javax.net.ssl.TrustManagerFactory;
import javax.security.auth.Subject;
+import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.TrustStore;
-import org.apache.qpid.server.security.AbstractKeyStoreAdapter;
import org.apache.qpid.server.security.FileTrustStore;
import org.apache.qpid.server.security.SecurityManager;
import org.apache.qpid.test.utils.QpidTestCase;
@@ -48,7 +48,7 @@ public class FileTrustStoreCreationTest extends QpidTestCase
UUID id = UUID.randomUUID();
Broker broker = mock(Broker.class);
- final TrustStore trustStore = new FileTrustStore(id, broker, attributes);
+ final FileTrustStore trustStore = new FileTrustStore(id, broker, attributes);
trustStore.open();
assertNotNull("Trust store configured object is not created", trustStore);
assertEquals(id, trustStore.getId());
@@ -62,7 +62,7 @@ public class FileTrustStoreCreationTest extends QpidTestCase
assertEquals(TestSSLConstants.BROKER_TRUSTSTORE_PASSWORD, trustStore.getPassword());
assertNotNull(trustStore.getPassword());
//verify that we haven't configured the trust store with the actual dummy password value
- assertFalse(AbstractKeyStoreAdapter.DUMMY_PASSWORD_MASK.equals(trustStore.getPassword()));
+ assertFalse(AbstractConfiguredObject.SECURED_STRING_VALUE.equals(trustStore.getPassword()));
return null;
}
});
@@ -70,7 +70,7 @@ public class FileTrustStoreCreationTest extends QpidTestCase
// Verify the remaining attributes, including that the password value returned
// via getAttribute is actually the dummy value and not the real password
- attributesCopy.put(TrustStore.PASSWORD, AbstractKeyStoreAdapter.DUMMY_PASSWORD_MASK);
+ attributesCopy.put(FileTrustStore.PASSWORD, AbstractConfiguredObject.SECURED_STRING_VALUE);
for (Map.Entry<String, Object> attribute : attributesCopy.entrySet())
{
Object attributeValue = trustStore.getAttribute(attribute.getKey());
@@ -85,7 +85,7 @@ public class FileTrustStoreCreationTest extends QpidTestCase
UUID id = UUID.randomUUID();
Broker broker = mock(Broker.class);
- String[] mandatoryProperties = {TrustStore.NAME, TrustStore.PATH, TrustStore.PASSWORD};
+ String[] mandatoryProperties = {TrustStore.NAME, FileTrustStore.PATH, FileTrustStore.PASSWORD};
for (int i = 0; i < mandatoryProperties.length; i++)
{
Map<String, Object> properties = new HashMap<String, Object>(attributes);
@@ -107,11 +107,11 @@ public class FileTrustStoreCreationTest extends QpidTestCase
{
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(TrustStore.NAME, getName());
- attributes.put(TrustStore.PATH, TestSSLConstants.BROKER_TRUSTSTORE);
- attributes.put(TrustStore.PASSWORD, TestSSLConstants.BROKER_TRUSTSTORE_PASSWORD);
- attributes.put(TrustStore.TRUST_STORE_TYPE, "jks");
- attributes.put(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM, TrustManagerFactory.getDefaultAlgorithm());
- attributes.put(TrustStore.PEERS_ONLY, Boolean.TRUE);
+ attributes.put(FileTrustStore.PATH, TestSSLConstants.BROKER_TRUSTSTORE);
+ attributes.put(FileTrustStore.PASSWORD, TestSSLConstants.BROKER_TRUSTSTORE_PASSWORD);
+ attributes.put(FileTrustStore.TRUST_STORE_TYPE, "jks");
+ attributes.put(FileTrustStore.TRUST_MANAGER_FACTORY_ALGORITHM, TrustManagerFactory.getDefaultAlgorithm());
+ attributes.put(FileTrustStore.PEERS_ONLY, Boolean.TRUE);
return attributes;
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostCreationTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostCreationTest.java
index 50a58f099a..42b66cbb85 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostCreationTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostCreationTest.java
@@ -76,7 +76,7 @@ public class VirtualHostCreationTest extends TestCase
attributes.put(VirtualHost.TYPE, StandardVirtualHost.TYPE);
attributes.put(VirtualHost.MESSAGE_STORE_SETTINGS, Collections.singletonMap(MessageStore.STORE_TYPE,
TestMemoryMessageStore.TYPE));
- String[] mandatoryAttributes = {VirtualHost.NAME, VirtualHost.TYPE, VirtualHost.MESSAGE_STORE_SETTINGS};
+ String[] mandatoryAttributes = {VirtualHost.NAME, VirtualHost.MESSAGE_STORE_SETTINGS};
checkMandatoryAttributesAreValidated(mandatoryAttributes, attributes);
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java
index 77acf559aa..4f8e0d99dc 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java
@@ -39,6 +39,8 @@ import org.apache.qpid.server.model.Transport;
import org.apache.qpid.server.model.TrustStore;
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.model.adapter.FileSystemPreferencesProvider;
+import org.apache.qpid.server.security.FileKeyStore;
+import org.apache.qpid.server.security.FileTrustStore;
import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManager;
import org.apache.qpid.server.security.auth.manager.ExternalAuthenticationManager;
import org.apache.qpid.server.store.ConfiguredObjectRecord;
@@ -303,10 +305,10 @@ public abstract class ConfigurationEntryStoreTestCase extends QpidTestCase
UUID trustStoreId = UUID.randomUUID();
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(TrustStore.NAME, getName());
- attributes.put(TrustStore.PATH, "/path/to/truststore");
- attributes.put(TrustStore.PASSWORD, "my-secret-password");
- attributes.put(TrustStore.TRUST_STORE_TYPE, "NON-JKS");
- attributes.put(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM, "NON-STANDARD");
+ attributes.put(FileTrustStore.PATH, "/path/to/truststore");
+ attributes.put(FileTrustStore.PASSWORD, "my-secret-password");
+ attributes.put(FileTrustStore.TRUST_STORE_TYPE, "NON-JKS");
+ attributes.put(FileTrustStore.TRUST_MANAGER_FACTORY_ALGORITHM, "NON-STANDARD");
attributes.put(TrustStore.DESCRIPTION, "Description");
ConfigurationEntry
@@ -327,12 +329,12 @@ public abstract class ConfigurationEntryStoreTestCase extends QpidTestCase
UUID keyStoreId = UUID.randomUUID();
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(KeyStore.NAME, getName());
- attributes.put(KeyStore.PATH, "/path/to/truststore");
- attributes.put(KeyStore.PASSWORD, "my-secret-password");
- attributes.put(KeyStore.KEY_STORE_TYPE, "NON-JKS");
- attributes.put(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM, "NON-STANDARD");
+ attributes.put(FileKeyStore.PATH, "/path/to/truststore");
+ attributes.put(FileKeyStore.PASSWORD, "my-secret-password");
+ attributes.put(FileKeyStore.KEY_STORE_TYPE, "NON-JKS");
+ attributes.put(FileKeyStore.KEY_MANAGER_FACTORY_ALGORITHM, "NON-STANDARD");
attributes.put(KeyStore.DESCRIPTION, "Description");
- attributes.put(KeyStore.CERTIFICATE_ALIAS, "Alias");
+ attributes.put(FileKeyStore.CERTIFICATE_ALIAS, "Alias");
ConfigurationEntry keyStoreEntry = new ConfigurationEntryImpl(keyStoreId, KeyStore.class.getSimpleName(), attributes, Collections.<UUID> emptySet(),
_store);
@@ -401,12 +403,12 @@ public abstract class ConfigurationEntryStoreTestCase extends QpidTestCase
UUID keyStoreId = UUID.randomUUID();
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(KeyStore.NAME, getName());
- attributes.put(KeyStore.PATH, "/path/to/truststore");
- attributes.put(KeyStore.PASSWORD, "my-secret-password");
- attributes.put(KeyStore.KEY_STORE_TYPE, "NON-JKS");
- attributes.put(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM, "NON-STANDARD");
+ attributes.put(FileKeyStore.PATH, "/path/to/truststore");
+ attributes.put(FileKeyStore.PASSWORD, "my-secret-password");
+ attributes.put(FileKeyStore.KEY_STORE_TYPE, "NON-JKS");
+ attributes.put(FileKeyStore.KEY_MANAGER_FACTORY_ALGORITHM, "NON-STANDARD");
attributes.put(KeyStore.DESCRIPTION, "Description");
- attributes.put(KeyStore.CERTIFICATE_ALIAS, "Alias");
+ attributes.put(FileKeyStore.CERTIFICATE_ALIAS, "Alias");
ConfigurationEntry keyStoreEntry = new ConfigurationEntryImpl(keyStoreId, KeyStore.class.getSimpleName(), attributes, Collections.<UUID> emptySet(),
_store);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java
index 99afa91367..3eeff61ca9 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java
@@ -75,7 +75,7 @@ public class PortFactoryTest extends QpidTestCase
setTestSystemProperty(BrokerProperties.PROPERTY_BROKER_DEFAULT_AMQP_PROTOCOL_EXCLUDES, null);
setTestSystemProperty(BrokerProperties.PROPERTY_BROKER_DEFAULT_AMQP_PROTOCOL_INCLUDES, null);
_portFactory = new PortFactory();
-
+ _attributes.put(Port.NAME, getName());
_attributes.put(Port.PORT, _portNumber);
_attributes.put(Port.TRANSPORTS, _tcpStringSet);
_attributes.put(Port.AUTHENTICATION_PROVIDER, _authProviderName);
@@ -309,6 +309,7 @@ public class PortFactoryTest extends QpidTestCase
_attributes.put(Port.AUTHENTICATION_PROVIDER, _authProviderName);
_attributes.put(Port.PORT, _portNumber);
_attributes.put(Port.TRANSPORTS, _tcpStringSet);
+ _attributes.put(Port.NAME, getName());
Port port = _portFactory.createPort(_portId, _broker, _attributes);
@@ -334,6 +335,7 @@ public class PortFactoryTest extends QpidTestCase
_attributes.put(Port.PROTOCOLS, nonAmqpStringSet);
_attributes.put(Port.AUTHENTICATION_PROVIDER, _authProviderName);
_attributes.put(Port.PORT, _portNumber);
+ _attributes.put(Port.NAME, getName());
Port port = _portFactory.createPort(_portId, _broker, _attributes);
@@ -371,7 +373,7 @@ public class PortFactoryTest extends QpidTestCase
{
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(Port.PORT, 1);
- attributes.put(Port.NAME, getTestName());
+ attributes.put(Port.NAME, getName());
attributes.put(Port.TRANSPORTS, Collections.singleton(Transport.TCP));
attributes.put(Port.PROTOCOLS, Collections.singleton(Protocol.RMI));
@@ -396,7 +398,7 @@ public class PortFactoryTest extends QpidTestCase
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(Port.PORT, 1);
- attributes.put(Port.NAME, getTestName());
+ attributes.put(Port.NAME, getName());
attributes.put(Port.TRANSPORTS, Collections.singleton(Transport.SSL));
attributes.put(Port.PROTOCOLS, Collections.singleton(Protocol.RMI));
_attributes.put(Port.KEY_STORE, keyStoreName);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java
index e75af3b89e..23d9aac93a 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java
@@ -286,7 +286,7 @@ public class MockVirtualHost implements VirtualHostImpl<MockVirtualHost, AMQQueu
}
@Override
- public int getHouseKeepingThreadCount()
+ public int getHousekeepingThreadCount()
{
return 0;
}
@@ -660,12 +660,6 @@ public class MockVirtualHost implements VirtualHostImpl<MockVirtualHost, AMQQueu
}
@Override
- public org.apache.qpid.server.model.VirtualHost getModel()
- {
- return null;
- }
-
- @Override
public EventLogger getEventLogger()
{
return null;
diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProvider.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProvider.java
index be2f2e3163..0c7361de90 100644
--- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProvider.java
+++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProvider.java
@@ -50,9 +50,6 @@ public class ACLFileAccessControlProvider
@ManagedAttributeField
private String _path;
- @ManagedAttributeField
- private String _type;
-
public ACLFileAccessControlProvider(Broker broker,
Map<String, Object> attributes)
{
@@ -80,12 +77,6 @@ public class ACLFileAccessControlProvider
return _path;
}
- @ManagedAttribute( automate = true )
- public String getType()
- {
- return _type;
- }
-
@Override
public String setName(String currentName, String desiredName) throws IllegalStateException, AccessControlException
{
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java
index 8c752061ef..07345e7f0a 100644
--- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java
@@ -20,6 +20,9 @@
*/
package org.apache.qpid.server.protocol.v0_10;
+import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CHANNEL_FORMAT;
+import static org.apache.qpid.util.Serial.gt;
+
import java.security.AccessController;
import java.security.Principal;
import java.security.PrivilegedAction;
@@ -44,16 +47,14 @@ import java.util.concurrent.atomic.AtomicReference;
import javax.security.auth.Subject;
-import org.apache.qpid.server.connection.SessionPrincipal;
-import org.apache.qpid.server.consumer.ConsumerImpl;
-import org.apache.qpid.server.model.ConfigurationChangeListener;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.Consumer;
-import org.apache.qpid.server.protocol.ConsumerListener;
-import org.apache.qpid.server.store.StoreException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import org.apache.qpid.protocol.AMQConstant;
import org.apache.qpid.server.TransactionTimeoutHelper;
import org.apache.qpid.server.TransactionTimeoutHelper.CloseAction;
+import org.apache.qpid.server.connection.SessionPrincipal;
+import org.apache.qpid.server.consumer.ConsumerImpl;
import org.apache.qpid.server.logging.LogMessage;
import org.apache.qpid.server.logging.LogSubject;
import org.apache.qpid.server.logging.messages.ChannelMessages;
@@ -61,11 +62,16 @@ import org.apache.qpid.server.logging.subjects.ChannelLogSubject;
import org.apache.qpid.server.message.InstanceProperties;
import org.apache.qpid.server.message.MessageDestination;
import org.apache.qpid.server.message.MessageInstance;
+import org.apache.qpid.server.model.ConfigurationChangeListener;
+import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.Consumer;
import org.apache.qpid.server.protocol.AMQSessionModel;
import org.apache.qpid.server.protocol.CapacityChecker;
+import org.apache.qpid.server.protocol.ConsumerListener;
import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.security.AuthorizationHolder;
import org.apache.qpid.server.store.MessageStore;
+import org.apache.qpid.server.store.StoreException;
import org.apache.qpid.server.store.StoreFuture;
import org.apache.qpid.server.store.TransactionLogResource;
import org.apache.qpid.server.txn.AlreadyKnownDtxException;
@@ -84,12 +90,21 @@ import org.apache.qpid.server.txn.UnknownDtxBranchException;
import org.apache.qpid.server.util.Action;
import org.apache.qpid.server.util.Deletable;
import org.apache.qpid.server.virtualhost.VirtualHostImpl;
-import org.apache.qpid.transport.*;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CHANNEL_FORMAT;
-import static org.apache.qpid.util.Serial.gt;
+import org.apache.qpid.transport.Binary;
+import org.apache.qpid.transport.Connection;
+import org.apache.qpid.transport.MessageCreditUnit;
+import org.apache.qpid.transport.MessageFlow;
+import org.apache.qpid.transport.MessageFlowMode;
+import org.apache.qpid.transport.MessageSetFlowMode;
+import org.apache.qpid.transport.MessageStop;
+import org.apache.qpid.transport.MessageTransfer;
+import org.apache.qpid.transport.Method;
+import org.apache.qpid.transport.Range;
+import org.apache.qpid.transport.RangeSet;
+import org.apache.qpid.transport.RangeSetFactory;
+import org.apache.qpid.transport.Session;
+import org.apache.qpid.transport.SessionDelegate;
+import org.apache.qpid.transport.Xid;
public class ServerSession extends Session
implements AuthorizationHolder,
diff --git a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
index e6fd437b90..2c6bc1b44e 100644
--- a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
+++ b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
@@ -20,6 +20,24 @@
*/
package org.apache.qpid.server.management.amqp;
+import java.nio.charset.Charset;
+import java.security.AccessControlException;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+
import org.apache.qpid.server.consumer.ConsumerImpl;
import org.apache.qpid.server.consumer.ConsumerTarget;
import org.apache.qpid.server.filter.FilterManager;
@@ -32,12 +50,12 @@ import org.apache.qpid.server.message.MessageSource;
import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.message.internal.InternalMessage;
import org.apache.qpid.server.message.internal.InternalMessageHeader;
-import org.apache.qpid.server.model.ManagedObject;
+import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.ConfigurationChangeListener;
import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.ManagedObject;
import org.apache.qpid.server.model.Model;
import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.plugin.MessageConverter;
import org.apache.qpid.server.plugin.SystemNodeCreator;
import org.apache.qpid.server.protocol.AMQSessionModel;
@@ -50,13 +68,6 @@ import org.apache.qpid.server.util.Action;
import org.apache.qpid.server.util.StateChangeListener;
import org.apache.qpid.server.virtualhost.VirtualHostImpl;
-import java.nio.charset.Charset;
-import java.security.AccessControlException;
-import java.text.MessageFormat;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.CopyOnWriteArrayList;
-
class ManagementNode implements MessageSource, MessageDestination
{
diff --git a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java
index cdb71f4859..ab1fd7cf38 100644
--- a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java
+++ b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java
@@ -27,7 +27,7 @@ public class ManagementNodeCreator implements SystemNodeCreator
@Override
public void register(final SystemNodeRegistry registry)
{
- ManagementNode managementNode = new ManagementNode(registry,registry.getVirtualHostModel());
+ ManagementNode managementNode = new ManagementNode(registry,registry.getVirtualHost());
registry.registerSystemNode(managementNode);
}
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
index b4ce0ccf9a..59c5a4428d 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
@@ -20,7 +20,35 @@
*/
package org.apache.qpid.server.management.plugin;
+import java.lang.reflect.Type;
+import java.net.SocketAddress;
+import java.security.GeneralSecurityException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.UUID;
+
+import javax.net.ssl.KeyManager;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+import javax.servlet.DispatcherType;
+
import org.apache.log4j.Logger;
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.SessionManager;
+import org.eclipse.jetty.server.nio.SelectChannelConnector;
+import org.eclipse.jetty.server.ssl.SslSocketConnector;
+import org.eclipse.jetty.servlet.FilterHolder;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.util.ssl.SslContextFactory;
+
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.logging.messages.ManagementConsoleMessages;
import org.apache.qpid.server.management.plugin.filter.ForbiddingAuthorisationFilter;
@@ -28,32 +56,23 @@ import org.apache.qpid.server.management.plugin.filter.RedirectingAuthorisationF
import org.apache.qpid.server.management.plugin.servlet.DefinedFileServlet;
import org.apache.qpid.server.management.plugin.servlet.FileServlet;
import org.apache.qpid.server.management.plugin.servlet.LogFileServlet;
-import org.apache.qpid.server.management.plugin.servlet.rest.*;
+import org.apache.qpid.server.management.plugin.servlet.rest.HelperServlet;
+import org.apache.qpid.server.management.plugin.servlet.rest.LogFileListingServlet;
+import org.apache.qpid.server.management.plugin.servlet.rest.LogRecordsServlet;
+import org.apache.qpid.server.management.plugin.servlet.rest.LoggedOnUserPreferencesServlet;
+import org.apache.qpid.server.management.plugin.servlet.rest.LogoutServlet;
+import org.apache.qpid.server.management.plugin.servlet.rest.MessageContentServlet;
+import org.apache.qpid.server.management.plugin.servlet.rest.MessageServlet;
+import org.apache.qpid.server.management.plugin.servlet.rest.RestServlet;
+import org.apache.qpid.server.management.plugin.servlet.rest.SaslServlet;
+import org.apache.qpid.server.management.plugin.servlet.rest.StructureServlet;
+import org.apache.qpid.server.management.plugin.servlet.rest.UserPreferencesServlet;
import org.apache.qpid.server.model.*;
-import org.apache.qpid.server.model.Queue;
import org.apache.qpid.server.model.adapter.AbstractPluginAdapter;
+import org.apache.qpid.server.model.port.PortWithAuthProvider;
import org.apache.qpid.server.util.MapValueConverter;
import org.apache.qpid.server.util.ServerScopedRuntimeException;
import org.apache.qpid.transport.network.security.ssl.QpidMultipleTrustManager;
-import org.eclipse.jetty.server.Connector;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.SessionManager;
-import org.eclipse.jetty.server.nio.SelectChannelConnector;
-import org.eclipse.jetty.server.ssl.SslSocketConnector;
-import org.eclipse.jetty.servlet.FilterHolder;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-import org.eclipse.jetty.util.ssl.SslContextFactory;
-
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-import javax.servlet.DispatcherType;
-import java.lang.reflect.Type;
-import java.net.SocketAddress;
-import java.security.GeneralSecurityException;
-import java.util.*;
@ManagedObject( category = false, type = "MANAGEMENT-HTTP" )
public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implements HttpManagementConfiguration<HttpManagement>
@@ -62,12 +81,6 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem
// 10 minutes by default
public static final int DEFAULT_TIMEOUT_IN_SECONDS = 60 * 10;
- public static final boolean DEFAULT_HTTP_BASIC_AUTHENTICATION_ENABLED = false;
- public static final boolean DEFAULT_HTTPS_BASIC_AUTHENTICATION_ENABLED = true;
- public static final boolean DEFAULT_HTTP_SASL_AUTHENTICATION_ENABLED = true;
- public static final boolean DEFAULT_HTTPS_SASL_AUTHENTICATION_ENABLED = true;
- public static final String DEFAULT_NAME = "httpManagement";
-
public static final String TIME_OUT = "sessionTimeout";
public static final String HTTP_BASIC_AUTHENTICATION_ENABLED = "httpBasicAuthenticationEnabled";
public static final String HTTPS_BASIC_AUTHENTICATION_ENABLED = "httpsBasicAuthenticationEnabled";
@@ -80,17 +93,6 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem
@SuppressWarnings("serial")
- public static final Map<String, Object> DEFAULTS = Collections.unmodifiableMap(new HashMap<String, Object>()
- {{
- put(HTTP_BASIC_AUTHENTICATION_ENABLED, DEFAULT_HTTP_BASIC_AUTHENTICATION_ENABLED);
- put(HTTPS_BASIC_AUTHENTICATION_ENABLED, DEFAULT_HTTPS_BASIC_AUTHENTICATION_ENABLED);
- put(HTTP_SASL_AUTHENTICATION_ENABLED, DEFAULT_HTTP_SASL_AUTHENTICATION_ENABLED);
- put(HTTPS_SASL_AUTHENTICATION_ENABLED, DEFAULT_HTTPS_SASL_AUTHENTICATION_ENABLED);
- put(TIME_OUT, DEFAULT_TIMEOUT_IN_SECONDS);
- put(NAME, DEFAULT_NAME);
- }});
-
- @SuppressWarnings("serial")
private static final Map<String, Type> ATTRIBUTE_TYPES = Collections.unmodifiableMap(new HashMap<String, Type>(){{
put(HTTP_BASIC_AUTHENTICATION_ENABLED, Boolean.class);
put(HTTPS_BASIC_AUTHENTICATION_ENABLED, Boolean.class);
@@ -105,9 +107,24 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem
private Server _server;
+ @ManagedAttributeField
+ private boolean _httpsSaslAuthenticationEnabled;
+
+ @ManagedAttributeField
+ private boolean _httpSaslAuthenticationEnabled;
+
+ @ManagedAttributeField
+ private boolean _httpsBasicAuthenticationEnabled;
+
+ @ManagedAttributeField
+ private boolean _httpBasicAuthenticationEnabled;
+
+ @ManagedAttributeField
+ private int _sessionTimeout;
+
public HttpManagement(UUID id, Broker broker, Map<String, Object> attributes)
{
- super(id, DEFAULTS, MapValueConverter.convert(attributes, ATTRIBUTE_TYPES), broker);
+ super(id, Collections.<String,Object>emptyMap(), attributes, broker);
}
@Override
@@ -165,7 +182,7 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem
public int getSessionTimeout()
{
- return (Integer)getAttribute(TIME_OUT);
+ return _sessionTimeout;
}
@SuppressWarnings("unchecked")
@@ -201,8 +218,8 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem
throw new IllegalConfigurationException("Key store is not configured. Cannot start management on HTTPS port without keystore");
}
SslContextFactory factory = new SslContextFactory();
- final boolean needClientAuth = Boolean.valueOf(String.valueOf(port.getAttribute(Port.NEED_CLIENT_AUTH)));
- final boolean wantClientAuth = Boolean.valueOf(String.valueOf(port.getAttribute(Port.WANT_CLIENT_AUTH)));
+ final boolean needClientAuth = port instanceof PortWithAuthProvider && ((PortWithAuthProvider)port).getNeedClientAuth();
+ final boolean wantClientAuth = port instanceof PortWithAuthProvider && ((PortWithAuthProvider)port).getWantClientAuth();
boolean needClientCert = needClientAuth || wantClientAuth;
if (needClientCert && trustStores.isEmpty())
{
@@ -419,25 +436,25 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem
@Override
public boolean isHttpsSaslAuthenticationEnabled()
{
- return (Boolean)getAttribute(HTTPS_SASL_AUTHENTICATION_ENABLED);
+ return _httpsSaslAuthenticationEnabled;
}
@Override
public boolean isHttpSaslAuthenticationEnabled()
{
- return (Boolean)getAttribute(HTTP_SASL_AUTHENTICATION_ENABLED);
+ return _httpSaslAuthenticationEnabled;
}
@Override
public boolean isHttpsBasicAuthenticationEnabled()
{
- return (Boolean)getAttribute(HTTPS_BASIC_AUTHENTICATION_ENABLED);
+ return _httpsBasicAuthenticationEnabled;
}
@Override
public boolean isHttpBasicAuthenticationEnabled()
{
- return (Boolean)getAttribute(HTTP_BASIC_AUTHENTICATION_ENABLED);
+ return _httpBasicAuthenticationEnabled;
}
@Override
@@ -475,10 +492,4 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem
}
}
-
- @Override
- public String getPluginType()
- {
- return PLUGIN_TYPE;
- }
}
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java
index 227271d439..aebe76b9bd 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java
@@ -23,26 +23,24 @@ package org.apache.qpid.server.management.plugin;
import java.net.SocketAddress;
import org.apache.qpid.server.model.AuthenticationProvider;
-import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.ManagedAttribute;
-import org.apache.qpid.server.model.ManagedObject;
import org.apache.qpid.server.model.Plugin;
public interface HttpManagementConfiguration<X extends HttpManagementConfiguration<X>> extends Plugin<X>
{
- @ManagedAttribute
+ @ManagedAttribute( automate = true, defaultValue = "true" )
boolean isHttpsSaslAuthenticationEnabled();
- @ManagedAttribute
+ @ManagedAttribute( automate = true, defaultValue = "true" )
boolean isHttpSaslAuthenticationEnabled();
- @ManagedAttribute
+ @ManagedAttribute( automate = true, defaultValue = "true" )
boolean isHttpsBasicAuthenticationEnabled();
- @ManagedAttribute
+ @ManagedAttribute( automate = true, defaultValue = "false" )
boolean isHttpBasicAuthenticationEnabled();
- @ManagedAttribute
+ @ManagedAttribute( automate = true, defaultValue = "600" )
public int getSessionTimeout();
AuthenticationProvider getAuthenticationProvider(SocketAddress localAddress);
diff --git a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementFactoryTest.java b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementFactoryTest.java
index 2fd057437a..2cb611d382 100644
--- a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementFactoryTest.java
+++ b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementFactoryTest.java
@@ -18,15 +18,15 @@
*/
package org.apache.qpid.server.management.plugin;
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.test.utils.QpidTestCase;
+import static org.mockito.Mockito.mock;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
-import static org.mockito.Mockito.mock;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.test.utils.QpidTestCase;
public class HttpManagementFactoryTest extends QpidTestCase
{
@@ -40,11 +40,13 @@ public class HttpManagementFactoryTest extends QpidTestCase
public void testCreateInstance() throws Exception
{
+ _attributes.put(ConfiguredObject.NAME, getName());
_attributes.put(ConfiguredObject.TYPE, HttpManagement.PLUGIN_TYPE);
_attributes.put(HttpManagement.TIME_OUT, SESSION_TIMEOUT);
_attributes.put(ConfiguredObject.ID, _id);
HttpManagement management = _pluginFactory.createInstance(_attributes, _broker);
+ management.open();
assertEquals(_broker, management.getParent(Broker.class));
assertEquals(SESSION_TIMEOUT, management.getSessionTimeout());
diff --git a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementTest.java b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementTest.java
index d0a357fd28..ff96a4223e 100644
--- a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementTest.java
+++ b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementTest.java
@@ -31,7 +31,6 @@ import java.util.UUID;
import org.apache.qpid.server.model.AuthenticationProvider;
import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.security.SubjectCreator;
import org.apache.qpid.test.utils.QpidTestCase;
public class HttpManagementTest extends QpidTestCase
@@ -54,6 +53,7 @@ public class HttpManagementTest extends QpidTestCase
attributes.put(HttpManagement.NAME, getTestName());
attributes.put(HttpManagement.TIME_OUT, 10000l);
_management = new HttpManagement(_id, _broker, attributes);
+ _management.open();
}
public void testGetSessionTimeout()
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
index 53eacf18d1..2d656a992a 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
@@ -24,6 +24,7 @@ package org.apache.qpid.server.jmx;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@@ -44,6 +45,7 @@ import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ConfigurationChangeListener;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.ManagedAttribute;
+import org.apache.qpid.server.model.ManagedAttributeField;
import org.apache.qpid.server.model.ManagedObject;
import org.apache.qpid.server.model.PasswordCredentialManagingAuthenticationProvider;
import org.apache.qpid.server.model.Port;
@@ -71,13 +73,6 @@ public class JMXManagement extends AbstractPluginAdapter<JMXManagement> implemen
public static final boolean DEFAULT_USE_PLATFORM_MBEAN_SERVER = true;
@SuppressWarnings("serial")
- private static final Map<String, Object> DEFAULTS = new HashMap<String, Object>(){{
- put(USE_PLATFORM_MBEAN_SERVER, DEFAULT_USE_PLATFORM_MBEAN_SERVER);
- put(NAME, DEFAULT_NAME);
- put(TYPE, PLUGIN_TYPE);
- }};
-
- @SuppressWarnings("serial")
private static final Map<String, Type> ATTRIBUTE_TYPES = new HashMap<String, Type>(){{
put(USE_PLATFORM_MBEAN_SERVER, Boolean.class);
put(NAME, String.class);
@@ -89,9 +84,12 @@ public class JMXManagement extends AbstractPluginAdapter<JMXManagement> implemen
private final Map<ConfiguredObject, AMQManagedObject> _children = new HashMap<ConfiguredObject, AMQManagedObject>();
+ @ManagedAttributeField
+ private boolean _usePlatformMBeanServer;
+
public JMXManagement(UUID id, Broker broker, Map<String, Object> attributes)
{
- super(id, DEFAULTS, MapValueConverter.convert(attributes, ATTRIBUTE_TYPES), broker);
+ super(id, Collections.<String,Object>emptyMap(), attributes, broker);
}
@Override
@@ -363,15 +361,9 @@ public class JMXManagement extends AbstractPluginAdapter<JMXManagement> implemen
}
}
- @Override
- public String getPluginType()
- {
- return PLUGIN_TYPE;
- }
-
- @ManagedAttribute
+ @ManagedAttribute( automate = true, defaultValue = "true" )
public boolean getUsePlatformMBeanServer()
{
- return (Boolean)getAttribute(USE_PLATFORM_MBEAN_SERVER);
+ return _usePlatformMBeanServer;
}
}
diff --git a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/JMXManagementFactoryTest.java b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/JMXManagementFactoryTest.java
index d0da48fb3a..e1e3db763c 100644
--- a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/JMXManagementFactoryTest.java
+++ b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/JMXManagementFactoryTest.java
@@ -39,13 +39,13 @@ public class JMXManagementFactoryTest extends QpidTestCase
{
_attributes.put(ConfiguredObject.ID,UUID.randomUUID());
_attributes.put(ConfiguredObject.TYPE, JMXManagement.PLUGIN_TYPE);
+ _attributes.put(ConfiguredObject.NAME, getName());
JMXManagement jmxManagement = _jmxManagementFactory.createInstance( _attributes, _broker);
jmxManagement.open();
assertNotNull(jmxManagement);
assertEquals("Unexpected plugin type", JMXManagement.PLUGIN_TYPE, jmxManagement.getType());
assertEquals("Unexpected default mbean platform", JMXManagement.DEFAULT_USE_PLATFORM_MBEAN_SERVER, jmxManagement.getAttribute(JMXManagement.USE_PLATFORM_MBEAN_SERVER));
- assertEquals("Unexpected default name", JMXManagement.DEFAULT_NAME, jmxManagement.getAttribute(JMXManagement.NAME));
}
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java
index c3c8e58cc7..e58fa0c45d 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java
@@ -44,6 +44,7 @@ import org.apache.qpid.server.model.AuthenticationProvider;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Transport;
import org.apache.qpid.server.model.TrustStore;
+import org.apache.qpid.server.security.FileTrustStore;
import org.apache.qpid.test.utils.JMXTestUtils;
import org.apache.qpid.test.utils.QpidBrokerTestCase;
import org.apache.qpid.test.utils.TestBrokerConfiguration;
@@ -199,9 +200,9 @@ public class ExternalAuthenticationTest extends QpidBrokerTestCase
//add the peersOnly store to the config
Map<String, Object> sslTrustStoreAttributes = new HashMap<String, Object>();
sslTrustStoreAttributes.put(TrustStore.NAME, peerStoreName);
- sslTrustStoreAttributes.put(TrustStore.PATH, BROKER_PEERSTORE);
- sslTrustStoreAttributes.put(TrustStore.PASSWORD, BROKER_PEERSTORE_PASSWORD);
- sslTrustStoreAttributes.put(TrustStore.PEERS_ONLY, true);
+ sslTrustStoreAttributes.put(FileTrustStore.PATH, BROKER_PEERSTORE);
+ sslTrustStoreAttributes.put(FileTrustStore.PASSWORD, BROKER_PEERSTORE_PASSWORD);
+ sslTrustStoreAttributes.put(FileTrustStore.PEERS_ONLY, true);
getBrokerConfiguration().addObjectConfiguration(TrustStore.class, sslTrustStoreAttributes);
super.setUp();
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/HttpManagementRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/HttpManagementRestTest.java
index ab38d77b6c..fcf969e979 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/HttpManagementRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/HttpManagementRestTest.java
@@ -38,11 +38,11 @@ public class HttpManagementRestTest extends QpidRestTestCase
details.get(HttpManagement.TIME_OUT));
assertEquals("Unexpected http basic auth enabled", true,
details.get(HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED));
- assertEquals("Unexpected https basic auth enabled", HttpManagement.DEFAULT_HTTPS_BASIC_AUTHENTICATION_ENABLED,
+ assertEquals("Unexpected https basic auth enabled", true,
details.get(HttpManagement.HTTPS_BASIC_AUTHENTICATION_ENABLED));
- assertEquals("Unexpected http sasl auth enabled", HttpManagement.DEFAULT_HTTP_SASL_AUTHENTICATION_ENABLED,
+ assertEquals("Unexpected http sasl auth enabled", true,
details.get(HttpManagement.HTTP_SASL_AUTHENTICATION_ENABLED));
- assertEquals("Unexpected https sasl auth enabled", HttpManagement.DEFAULT_HTTPS_SASL_AUTHENTICATION_ENABLED,
+ assertEquals("Unexpected https sasl auth enabled", true,
details.get(HttpManagement.HTTPS_SASL_AUTHENTICATION_ENABLED));
}
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java
index 680f807a9b..834beb542c 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java
@@ -30,10 +30,11 @@ import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
+import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.KeyStore;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Transport;
-import org.apache.qpid.server.security.AbstractKeyStoreAdapter;
+import org.apache.qpid.server.security.FileKeyStore;
import org.apache.qpid.test.utils.TestBrokerConfiguration;
import org.apache.qpid.test.utils.TestSSLConstants;
@@ -107,8 +108,8 @@ public class KeyStoreRestTest extends QpidRestTestCase
//add a new key store config to use
Map<String, Object> sslKeyStoreAttributes = new HashMap<String, Object>();
sslKeyStoreAttributes.put(KeyStore.NAME, name);
- sslKeyStoreAttributes.put(KeyStore.PATH, TestSSLConstants.BROKER_KEYSTORE);
- sslKeyStoreAttributes.put(KeyStore.PASSWORD, TestSSLConstants.BROKER_KEYSTORE_PASSWORD);
+ sslKeyStoreAttributes.put(FileKeyStore.PATH, TestSSLConstants.BROKER_KEYSTORE);
+ sslKeyStoreAttributes.put(FileKeyStore.PASSWORD, TestSSLConstants.BROKER_KEYSTORE_PASSWORD);
getBrokerConfiguration().addObjectConfiguration(KeyStore.class,sslKeyStoreAttributes);
//add the SSL port using it
@@ -152,7 +153,7 @@ public class KeyStoreRestTest extends QpidRestTestCase
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(KeyStore.NAME, name);
- attributes.put(KeyStore.PATH, TestSSLConstants.UNTRUSTED_KEYSTORE);
+ attributes.put(FileKeyStore.PATH, TestSSLConstants.UNTRUSTED_KEYSTORE);
int responseCode = getRestTestHelper().submitRequest("/rest/keystore/" + name , "PUT", attributes);
assertEquals("Unexpected response code for keystore update", 200, responseCode);
@@ -175,7 +176,7 @@ public class KeyStoreRestTest extends QpidRestTestCase
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(KeyStore.NAME, name);
- attributes.put(KeyStore.PATH, "does.not.exist");
+ attributes.put(FileKeyStore.PATH, "does.not.exist");
int responseCode = getRestTestHelper().submitRequest("/rest/keystore/" + name , "PUT", attributes);
assertEquals("Unexpected response code for keystore update", 409, responseCode);
@@ -204,7 +205,7 @@ public class KeyStoreRestTest extends QpidRestTestCase
//Update the certAlias from app1 to app2
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(KeyStore.NAME, name);
- attributes.put(KeyStore.CERTIFICATE_ALIAS, "app2");
+ attributes.put(FileKeyStore.CERTIFICATE_ALIAS, "app2");
int responseCode = getRestTestHelper().submitRequest("/rest/keystore/" + name , "PUT", attributes);
assertEquals("Unexpected response code for keystore update", 200, responseCode);
@@ -217,7 +218,7 @@ public class KeyStoreRestTest extends QpidRestTestCase
//Update the certAlias to clear it (i.e go from from app1 to null)
attributes = new HashMap<String, Object>();
attributes.put(KeyStore.NAME, name);
- attributes.put(KeyStore.CERTIFICATE_ALIAS, null);
+ attributes.put(FileKeyStore.CERTIFICATE_ALIAS, null);
responseCode = getRestTestHelper().submitRequest("/rest/keystore/" + name , "PUT", attributes);
assertEquals("Unexpected response code for keystore update", 200, responseCode);
@@ -242,9 +243,9 @@ public class KeyStoreRestTest extends QpidRestTestCase
{
Map<String, Object> keyStoreAttributes = new HashMap<String, Object>();
keyStoreAttributes.put(KeyStore.NAME, name);
- keyStoreAttributes.put(KeyStore.PATH, TestSSLConstants.KEYSTORE);
- keyStoreAttributes.put(KeyStore.PASSWORD, TestSSLConstants.KEYSTORE_PASSWORD);
- keyStoreAttributes.put(KeyStore.CERTIFICATE_ALIAS, certAlias);
+ keyStoreAttributes.put(FileKeyStore.PATH, TestSSLConstants.KEYSTORE);
+ keyStoreAttributes.put(FileKeyStore.PASSWORD, TestSSLConstants.KEYSTORE_PASSWORD);
+ keyStoreAttributes.put(FileKeyStore.CERTIFICATE_ALIAS, certAlias);
int responseCode = getRestTestHelper().submitRequest("/rest/keystore/" + name, "PUT", keyStoreAttributes);
assertEquals("Unexpected response code", 201, responseCode);
@@ -255,17 +256,17 @@ public class KeyStoreRestTest extends QpidRestTestCase
assertEquals("default systests key store is missing",
name, keystore.get(KeyStore.NAME));
assertEquals("unexpected path to key store",
- path, keystore.get(KeyStore.PATH));
+ path, keystore.get(FileKeyStore.PATH));
assertEquals("unexpected (dummy) password of default systests key store",
- AbstractKeyStoreAdapter.DUMMY_PASSWORD_MASK, keystore.get(KeyStore.PASSWORD));
+ AbstractConfiguredObject.SECURED_STRING_VALUE, keystore.get(FileKeyStore.PASSWORD));
assertEquals("unexpected type of default systests key store",
- java.security.KeyStore.getDefaultType(), keystore.get(KeyStore.KEY_STORE_TYPE));
+ java.security.KeyStore.getDefaultType(), keystore.get(FileKeyStore.KEY_STORE_TYPE));
assertEquals("unexpected certificateAlias value",
- certAlias, keystore.get(KeyStore.CERTIFICATE_ALIAS));
+ certAlias, keystore.get(FileKeyStore.CERTIFICATE_ALIAS));
if(certAlias == null)
{
assertFalse("should not be a certificateAlias attribute",
- keystore.containsKey(KeyStore.CERTIFICATE_ALIAS));
+ keystore.containsKey(FileKeyStore.CERTIFICATE_ALIAS));
}
}
}
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java
index 3d1a0af9eb..d50da1c1f9 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java
@@ -30,10 +30,11 @@ import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
+import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Transport;
import org.apache.qpid.server.model.TrustStore;
-import org.apache.qpid.server.security.AbstractKeyStoreAdapter;
+import org.apache.qpid.server.security.FileTrustStore;
import org.apache.qpid.test.utils.TestBrokerConfiguration;
import org.apache.qpid.test.utils.TestSSLConstants;
@@ -105,8 +106,8 @@ public class TrustStoreRestTest extends QpidRestTestCase
//add a new trust store config to use
Map<String, Object> sslTrustStoreAttributes = new HashMap<String, Object>();
sslTrustStoreAttributes.put(TrustStore.NAME, name);
- sslTrustStoreAttributes.put(TrustStore.PATH, TestSSLConstants.TRUSTSTORE);
- sslTrustStoreAttributes.put(TrustStore.PASSWORD, TestSSLConstants.TRUSTSTORE_PASSWORD);
+ sslTrustStoreAttributes.put(FileTrustStore.PATH, TestSSLConstants.TRUSTSTORE);
+ sslTrustStoreAttributes.put(FileTrustStore.PASSWORD, TestSSLConstants.TRUSTSTORE_PASSWORD);
getBrokerConfiguration().addObjectConfiguration(TrustStore.class,sslTrustStoreAttributes);
//add the SSL port using it
@@ -151,7 +152,7 @@ public class TrustStoreRestTest extends QpidRestTestCase
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(TrustStore.NAME, name);
- attributes.put(TrustStore.PATH, TestSSLConstants.TRUSTSTORE);
+ attributes.put(FileTrustStore.PATH, TestSSLConstants.TRUSTSTORE);
int responseCode = getRestTestHelper().submitRequest("/rest/truststore/" + name , "PUT", attributes);
assertEquals("Unexpected response code for truststore update", 200, responseCode);
@@ -174,7 +175,7 @@ public class TrustStoreRestTest extends QpidRestTestCase
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(TrustStore.NAME, name);
- attributes.put(TrustStore.PATH, "does.not.exist");
+ attributes.put(FileTrustStore.PATH, "does.not.exist");
int responseCode = getRestTestHelper().submitRequest("/rest/truststore/" + name , "PUT", attributes);
assertEquals("Unexpected response code for trust store update", 409, responseCode);
@@ -199,7 +200,7 @@ public class TrustStoreRestTest extends QpidRestTestCase
//update the peersOnly attribute from false to true
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(TrustStore.NAME, name);
- attributes.put(TrustStore.PEERS_ONLY, true);
+ attributes.put(FileTrustStore.PEERS_ONLY, true);
int responseCode = getRestTestHelper().submitRequest("/rest/truststore/" + name , "PUT", attributes);
assertEquals("Unexpected response code for trust store update", 200, responseCode);
@@ -212,7 +213,7 @@ public class TrustStoreRestTest extends QpidRestTestCase
//Update peersOnly to clear it (i.e go from from true to null, which will default to false)
attributes = new HashMap<String, Object>();
attributes.put(TrustStore.NAME, name);
- attributes.put(TrustStore.PEERS_ONLY, null);
+ attributes.put(FileTrustStore.PEERS_ONLY, null);
responseCode = getRestTestHelper().submitRequest("/rest/truststore/" + name , "PUT", attributes);
assertEquals("Unexpected response code for trust store update", 200, responseCode);
@@ -238,9 +239,9 @@ public class TrustStoreRestTest extends QpidRestTestCase
Map<String, Object> trustStoreAttributes = new HashMap<String, Object>();
trustStoreAttributes.put(TrustStore.NAME, name);
//deliberately using the client trust store to differentiate from the one we are already for broker
- trustStoreAttributes.put(TrustStore.PATH, TestSSLConstants.TRUSTSTORE);
- trustStoreAttributes.put(TrustStore.PASSWORD, TestSSLConstants.TRUSTSTORE_PASSWORD);
- trustStoreAttributes.put(TrustStore.PEERS_ONLY, peersOnly);
+ trustStoreAttributes.put(FileTrustStore.PATH, TestSSLConstants.TRUSTSTORE);
+ trustStoreAttributes.put(FileTrustStore.PASSWORD, TestSSLConstants.TRUSTSTORE_PASSWORD);
+ trustStoreAttributes.put(FileTrustStore.PEERS_ONLY, peersOnly);
int responseCode = getRestTestHelper().submitRequest("/rest/truststore/" + name, "PUT", trustStoreAttributes);
assertEquals("Unexpected response code", 201, responseCode);
@@ -251,12 +252,12 @@ public class TrustStoreRestTest extends QpidRestTestCase
assertEquals("default systests trust store is missing",
name, truststore.get(TrustStore.NAME));
assertEquals("unexpected path to trust store",
- path, truststore.get(TrustStore.PATH));
+ path, truststore.get(FileTrustStore.PATH));
assertEquals("unexpected (dummy) password of default systests trust store",
- AbstractKeyStoreAdapter.DUMMY_PASSWORD_MASK, truststore.get(TrustStore.PASSWORD));
+ AbstractConfiguredObject.SECURED_STRING_VALUE, truststore.get(FileTrustStore.PASSWORD));
assertEquals("unexpected type of default systests trust store",
- java.security.KeyStore.getDefaultType(), truststore.get(TrustStore.TRUST_STORE_TYPE));
+ java.security.KeyStore.getDefaultType(), truststore.get(FileTrustStore.TRUST_STORE_TYPE));
assertEquals("unexpected peersOnly value",
- peersOnly, truststore.get(TrustStore.PEERS_ONLY));
+ peersOnly, truststore.get(FileTrustStore.PEERS_ONLY));
}
}
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java
index 37b705f2f3..1a39d9c3b0 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java
@@ -41,6 +41,8 @@ import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Protocol;
import org.apache.qpid.server.model.TrustStore;
import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.security.FileKeyStore;
+import org.apache.qpid.server.security.FileTrustStore;
import org.apache.qpid.server.security.access.FileAccessControlProviderConstants;
import org.apache.qpid.server.security.acl.AbstractACLTestCase;
import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManagerFactory;
@@ -433,16 +435,16 @@ public class BrokerACLTest extends QpidRestTestCase
assertKeyStoreExistence(keyStoreName, true);
Map<String, Object> keyStore = getRestTestHelper().getJsonAsSingletonList("/rest/keystore/" + keyStoreName);
- assertEquals("Unexpected certificateAlias attribute value", initialCertAlias, keyStore.get(KeyStore.CERTIFICATE_ALIAS));
+ assertEquals("Unexpected certificateAlias attribute value", initialCertAlias, keyStore.get(FileKeyStore.CERTIFICATE_ALIAS));
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(KeyStore.NAME, keyStoreName);
- attributes.put(KeyStore.CERTIFICATE_ALIAS, updatedCertAlias);
+ attributes.put(FileKeyStore.CERTIFICATE_ALIAS, updatedCertAlias);
responseCode = getRestTestHelper().submitRequest("/rest/keystore/" + keyStoreName, "PUT", attributes);
assertEquals("Setting of keystore attributes should be allowed", 200, responseCode);
keyStore = getRestTestHelper().getJsonAsSingletonList("/rest/keystore/" + keyStoreName);
- assertEquals("Unexpected certificateAlias attribute value", updatedCertAlias, keyStore.get(KeyStore.CERTIFICATE_ALIAS));
+ assertEquals("Unexpected certificateAlias attribute value", updatedCertAlias, keyStore.get(FileKeyStore.CERTIFICATE_ALIAS));
}
public void testSetKeyStoreAttributesDenied() throws Exception
@@ -460,18 +462,18 @@ public class BrokerACLTest extends QpidRestTestCase
assertKeyStoreExistence(keyStoreName, true);
Map<String, Object> keyStore = getRestTestHelper().getJsonAsSingletonList("/rest/keystore/" + keyStoreName);
- assertEquals("Unexpected certificateAlias attribute value", initialCertAlias, keyStore.get(KeyStore.CERTIFICATE_ALIAS));
+ assertEquals("Unexpected certificateAlias attribute value", initialCertAlias, keyStore.get(FileKeyStore.CERTIFICATE_ALIAS));
getRestTestHelper().setUsernameAndPassword(DENIED_USER, DENIED_USER);
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(KeyStore.NAME, keyStoreName);
- attributes.put(KeyStore.CERTIFICATE_ALIAS, updatedCertAlias);
+ attributes.put(FileKeyStore.CERTIFICATE_ALIAS, updatedCertAlias);
responseCode = getRestTestHelper().submitRequest("/rest/keystore/" + keyStoreName, "PUT", attributes);
assertEquals("Setting of keystore attributes should be denied", 403, responseCode);
keyStore = getRestTestHelper().getJsonAsSingletonList("/rest/keystore/" + keyStoreName);
- assertEquals("Unexpected certificateAlias attribute value", initialCertAlias, keyStore.get(KeyStore.CERTIFICATE_ALIAS));
+ assertEquals("Unexpected certificateAlias attribute value", initialCertAlias, keyStore.get(FileKeyStore.CERTIFICATE_ALIAS));
}
/* === TrustStore === */
@@ -561,16 +563,16 @@ public class BrokerACLTest extends QpidRestTestCase
assertTrustStoreExistence(trustStoreName, true);
Map<String, Object> trustStore = getRestTestHelper().getJsonAsSingletonList("/rest/truststore/" + trustStoreName);
- assertEquals("Unexpected peersOnly attribute value", initialPeersOnly, trustStore.get(TrustStore.PEERS_ONLY));
+ assertEquals("Unexpected peersOnly attribute value", initialPeersOnly, trustStore.get(FileTrustStore.PEERS_ONLY));
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(TrustStore.NAME, trustStoreName);
- attributes.put(TrustStore.PEERS_ONLY, updatedPeersOnly);
+ attributes.put(FileTrustStore.PEERS_ONLY, updatedPeersOnly);
responseCode = getRestTestHelper().submitRequest("/rest/truststore/" + trustStoreName, "PUT", attributes);
assertEquals("Setting of truststore attributes should be allowed", 200, responseCode);
trustStore = getRestTestHelper().getJsonAsSingletonList("/rest/truststore/" + trustStoreName);
- assertEquals("Unexpected peersOnly attribute value", updatedPeersOnly, trustStore.get(TrustStore.PEERS_ONLY));
+ assertEquals("Unexpected peersOnly attribute value", updatedPeersOnly, trustStore.get(FileTrustStore.PEERS_ONLY));
}
public void testSetTrustStoreAttributesDenied() throws Exception
@@ -588,18 +590,18 @@ public class BrokerACLTest extends QpidRestTestCase
assertTrustStoreExistence(trustStoreName, true);
Map<String, Object> trustStore = getRestTestHelper().getJsonAsSingletonList("/rest/truststore/" + trustStoreName);
- assertEquals("Unexpected peersOnly attribute value", initialPeersOnly, trustStore.get(TrustStore.PEERS_ONLY));
+ assertEquals("Unexpected peersOnly attribute value", initialPeersOnly, trustStore.get(FileTrustStore.PEERS_ONLY));
getRestTestHelper().setUsernameAndPassword(DENIED_USER, DENIED_USER);
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(TrustStore.NAME, trustStoreName);
- attributes.put(TrustStore.PEERS_ONLY, updatedPeersOnly);
+ attributes.put(FileTrustStore.PEERS_ONLY, updatedPeersOnly);
responseCode = getRestTestHelper().submitRequest("/rest/truststore/" + trustStoreName, "PUT", attributes);
assertEquals("Setting of truststore attributes should be denied", 403, responseCode);
trustStore = getRestTestHelper().getJsonAsSingletonList("/rest/truststore/" + trustStoreName);
- assertEquals("Unexpected peersOnly attribute value", initialPeersOnly, trustStore.get(TrustStore.PEERS_ONLY));
+ assertEquals("Unexpected peersOnly attribute value", initialPeersOnly, trustStore.get(FileTrustStore.PEERS_ONLY));
}
/* === Broker === */
@@ -928,11 +930,11 @@ public class BrokerACLTest extends QpidRestTestCase
details.get(HttpManagement.TIME_OUT));
assertEquals("Unexpected http basic auth enabled", true,
details.get(HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED));
- assertEquals("Unexpected https basic auth enabled", HttpManagement.DEFAULT_HTTPS_BASIC_AUTHENTICATION_ENABLED,
+ assertEquals("Unexpected https basic auth enabled", true,
details.get(HttpManagement.HTTPS_BASIC_AUTHENTICATION_ENABLED));
- assertEquals("Unexpected http sasl auth enabled", HttpManagement.DEFAULT_HTTP_SASL_AUTHENTICATION_ENABLED,
+ assertEquals("Unexpected http sasl auth enabled", true,
details.get(HttpManagement.HTTP_SASL_AUTHENTICATION_ENABLED));
- assertEquals("Unexpected https sasl auth enabled", HttpManagement.DEFAULT_HTTPS_SASL_AUTHENTICATION_ENABLED,
+ assertEquals("Unexpected https sasl auth enabled", true,
details.get(HttpManagement.HTTPS_SASL_AUTHENTICATION_ENABLED));
}
@@ -1041,9 +1043,9 @@ public class BrokerACLTest extends QpidRestTestCase
{
Map<String, Object> keyStoreAttributes = new HashMap<String, Object>();
keyStoreAttributes.put(KeyStore.NAME, name);
- keyStoreAttributes.put(KeyStore.PATH, TestSSLConstants.KEYSTORE);
- keyStoreAttributes.put(KeyStore.PASSWORD, TestSSLConstants.KEYSTORE_PASSWORD);
- keyStoreAttributes.put(KeyStore.CERTIFICATE_ALIAS, certAlias);
+ keyStoreAttributes.put(FileKeyStore.PATH, TestSSLConstants.KEYSTORE);
+ keyStoreAttributes.put(FileKeyStore.PASSWORD, TestSSLConstants.KEYSTORE_PASSWORD);
+ keyStoreAttributes.put(FileKeyStore.CERTIFICATE_ALIAS, certAlias);
return getRestTestHelper().submitRequest("/rest/keystore/" + name, "PUT", keyStoreAttributes);
}
@@ -1052,9 +1054,9 @@ public class BrokerACLTest extends QpidRestTestCase
{
Map<String, Object> trustStoreAttributes = new HashMap<String, Object>();
trustStoreAttributes.put(TrustStore.NAME, name);
- trustStoreAttributes.put(TrustStore.PATH, TestSSLConstants.KEYSTORE);
- trustStoreAttributes.put(TrustStore.PASSWORD, TestSSLConstants.KEYSTORE_PASSWORD);
- trustStoreAttributes.put(TrustStore.PEERS_ONLY, peersOnly);
+ trustStoreAttributes.put(FileTrustStore.PATH, TestSSLConstants.KEYSTORE);
+ trustStoreAttributes.put(FileTrustStore.PASSWORD, TestSSLConstants.KEYSTORE_PASSWORD);
+ trustStoreAttributes.put(FileTrustStore.PEERS_ONLY, peersOnly);
return getRestTestHelper().submitRequest("/rest/truststore/" + name, "PUT", trustStoreAttributes);
}