You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2012/11/16 15:49:04 UTC
svn commit: r1410377 - in
/qpid/branches/java-broker-config-qpid-4390/qpid/java:
broker/src/main/java/org/apache/qpid/server/configuration/
broker/src/main/java/org/apache/qpid/server/configuration/startup/
broker/src/main/java/org/apache/qpid/server/c...
Author: robbie
Date: Fri Nov 16 14:49:00 2012
New Revision: 1410377
URL: http://svn.apache.org/viewvc?rev=1410377&view=rev
Log:
Some more WIP cleanup
Added:
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Plugin.java
Removed:
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/ConfiguredObjectType.java
Modified:
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntry.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/RecovererProvider.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProvider.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/PortConfigurationHelper.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/XMLConfigurationEntryStore.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Port.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/JMXTestUtils.java
qpid/branches/java-broker-config-qpid-4390/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntry.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntry.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntry.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ConfigurationEntry.java Fri Nov 16 14:49:00 2012
@@ -29,17 +29,16 @@ import java.util.Set;
import java.util.UUID;
import org.apache.qpid.server.configuration.startup.AttributeMap;
-import org.apache.qpid.server.model.ConfiguredObjectType;
public class ConfigurationEntry
{
private final UUID _id;
- private final ConfiguredObjectType _type;
+ private final String _type;
private final Map<String, Object> _attributes;
private final Set<UUID> _childrenIds;
private final ConfigurationEntryStore _store;
- public ConfigurationEntry(UUID id, ConfiguredObjectType type, Map<String, Object> attributes, Set<UUID> childrenIds,
+ public ConfigurationEntry(UUID id, String type, Map<String, Object> attributes, Set<UUID> childrenIds,
ConfigurationEntryStore store)
{
super();
@@ -55,7 +54,7 @@ public class ConfigurationEntry
return _id;
}
- public ConfiguredObjectType getType()
+ public String getType()
{
return _type;
}
@@ -65,11 +64,6 @@ public class ConfigurationEntry
return _attributes;
}
- public AttributeMap getAttributesAsAttributeMap()
- {
- return new AttributeMap(getAttributes());
- }
-
public Set<UUID> getChildrenIds()
{
return _childrenIds;
@@ -83,20 +77,20 @@ public class ConfigurationEntry
/**
* Returns this entry's children. The collection should not be modified.
*/
- public Map<ConfiguredObjectType, Collection<ConfigurationEntry>> getChildren()
+ public Map<String, Collection<ConfigurationEntry>> getChildren()
{
- Map<ConfiguredObjectType, Collection<ConfigurationEntry>> children = null;
+ Map<String, Collection<ConfigurationEntry>> children = null;
if (_childrenIds == null)
{
children = Collections.emptyMap();
}
else
{
- children = new HashMap<ConfiguredObjectType, Collection<ConfigurationEntry>>();
+ children = new HashMap<String, Collection<ConfigurationEntry>>();
for (UUID childId : _childrenIds)
{
ConfigurationEntry entry = _store.getEntry(childId);
- ConfiguredObjectType type = entry.getType();
+ String type = entry.getType();
Collection<ConfigurationEntry> childrenOfType = children.get(type);
if (childrenOfType == null)
{
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/RecovererProvider.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/RecovererProvider.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/RecovererProvider.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/RecovererProvider.java Fri Nov 16 14:49:00 2012
@@ -21,9 +21,8 @@
package org.apache.qpid.server.configuration;
import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.ConfiguredObjectType;
public interface RecovererProvider
{
- ConfiguredObjectRecoverer<? extends ConfiguredObject> getRecoverer(ConfiguredObjectType type);
+ ConfiguredObjectRecoverer<? extends ConfiguredObject> getRecoverer(String type);
}
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java Fri Nov 16 14:49:00 2012
@@ -75,7 +75,6 @@ public class ServerConfiguration extends
// Configuration values to be read from the configuration file
//todo Move all properties to static values to ensure system testing can be performed.
- public static final String MGMT_CUSTOM_REGISTRY_SOCKET = "management.custom-registry-socket";
public static final String MGMT_JMXPORT_REGISTRYSERVER = "management.jmxport.registryServer";
public static final String MGMT_JMXPORT_CONNECTORSERVER = "management.jmxport.connectorServer";
public static final String SECURITY_DEFAULT_AUTH_MANAGER = "security.default-auth-manager";
@@ -390,17 +389,6 @@ public class ServerConfiguration extends
return getIntValue(MGMT_JMXPORT_CONNECTORSERVER, getJMXPortRegistryServer() + JMXPORT_CONNECTORSERVER_OFFSET);
}
- public boolean getUseCustomRMISocketFactory()
- {
- return getBooleanValue(MGMT_CUSTOM_REGISTRY_SOCKET,
- Boolean.parseBoolean(System.getProperty(USE_CUSTOM_RMI_SOCKET_FACTORY, "true")));
- }
-
- public void setUseCustomRMISocketFactory(boolean bool)
- {
- getConfig().setProperty(MGMT_CUSTOM_REGISTRY_SOCKET, bool);
- }
-
public boolean getPlatformMbeanserver()
{
return getBooleanValue("management.platform-mbeanserver", true);
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/BrokerRecoverer.java Fri Nov 16 14:49:00 2012
@@ -11,12 +11,10 @@ import org.apache.qpid.server.configurat
import org.apache.qpid.server.model.AuthenticationProvider;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.ConfiguredObjectType;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.adapter.AuthenticationProviderAdapter;
import org.apache.qpid.server.model.adapter.AuthenticationProviderFactory;
import org.apache.qpid.server.model.adapter.BrokerAdapter;
-import org.apache.qpid.server.model.adapter.PortAdapter;
import org.apache.qpid.server.model.adapter.PortFactory;
import org.apache.qpid.server.registry.IApplicationRegistry;
import org.apache.qpid.server.security.group.GroupPrincipalAccessor;
@@ -40,8 +38,8 @@ public class BrokerRecoverer implements
public Broker create(RecovererProvider recovererProvider, ConfigurationEntry entry, ConfiguredObject... parents)
{
BrokerAdapter broker = new BrokerAdapter(entry.getId(), entry.getAttributes(), _registry, _authenticationProviderFactory, _portFactory);
- Map<ConfiguredObjectType, Collection<ConfigurationEntry>> childEntries = entry.getChildren();
- for (ConfiguredObjectType type : childEntries.keySet())
+ Map<String, Collection<ConfigurationEntry>> childEntries = entry.getChildren();
+ for (String type : childEntries.keySet())
{
ConfiguredObjectRecoverer<?> recoverer = recovererProvider.getRecoverer(type);
if (recoverer == null)
@@ -59,24 +57,20 @@ public class BrokerRecoverer implements
broker.recoverChild(object);
}
}
- wireUpConfiguredObjects(broker, entry.getAttributesAsAttributeMap());
+ wireUpConfiguredObjects(broker, entry.getAttributes());
return broker;
}
// XXX unit test this
- private void wireUpConfiguredObjects(BrokerAdapter broker, AttributeMap brokerAttributes)
+ private void wireUpConfiguredObjects(BrokerAdapter broker, Map<String,Object> brokerAttributes)
{
AuthenticationProvider defaultAuthenticationProvider = null;
Collection<AuthenticationProvider> authenticationProviders = broker.getAuthenticationProviders();
int numberOfAuthenticationProviders = authenticationProviders.size();
if (numberOfAuthenticationProviders == 0)
{
- LOGGER.error("No authentication providers configured");
- return;
- // XXX reinstate when wire-up has been separated from creation:
- // throw new
- // IllegalConfigurationException("No authentication providers configured");
+ throw new IllegalConfigurationException("No authentication provider was onfigured");
}
else if (numberOfAuthenticationProviders == 1)
{
@@ -84,7 +78,12 @@ public class BrokerRecoverer implements
}
else
{
- String name = brokerAttributes.getStringAttribute(Broker.DEFAULT_AUTHENTICATION_PROVIDER);
+ String name = (String) brokerAttributes.get(Broker.DEFAULT_AUTHENTICATION_PROVIDER);
+ if (name == null)
+ {
+ throw new IllegalConfigurationException("Multiple authentication providers defined, but no default was configured.");
+ }
+
defaultAuthenticationProvider = getAuthenticationProviderByName(broker, name);
}
broker.setDefaultAuthenticationProvider(defaultAuthenticationProvider);
@@ -92,12 +91,9 @@ public class BrokerRecoverer implements
GroupPrincipalAccessor groupPrincipalAccessor = new GroupPrincipalAccessor(broker.getGroupProviders());
for (AuthenticationProvider authenticationProvider : authenticationProviders)
{
- // XXX : review this cast
- if (authenticationProvider instanceof AuthenticationProviderAdapter)
- {
- ((AuthenticationProviderAdapter<?>) authenticationProvider).setGroupAccessor(groupPrincipalAccessor);
- }
+ authenticationProvider.setGroupAccessor(groupPrincipalAccessor);
}
+
Collection<Port> ports = broker.getPorts();
for (Port port : ports)
{
@@ -111,7 +107,7 @@ public class BrokerRecoverer implements
{
provider = defaultAuthenticationProvider;
}
- ((PortAdapter) port).setAuthenticationProvider(provider);
+ port.setAuthenticationProvider(provider);
}
}
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProvider.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProvider.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProvider.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProvider.java Fri Nov 16 14:49:00 2012
@@ -20,11 +20,14 @@
*/
package org.apache.qpid.server.configuration.startup;
-
import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer;
-import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.configuration.RecovererProvider;
-import org.apache.qpid.server.model.ConfiguredObjectType;
+import org.apache.qpid.server.model.AuthenticationProvider;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.GroupProvider;
+import org.apache.qpid.server.model.Plugin;
+import org.apache.qpid.server.model.Port;
+import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.model.adapter.AuthenticationProviderFactory;
import org.apache.qpid.server.model.adapter.PortFactory;
import org.apache.qpid.server.plugin.AuthenticationManagerFactory;
@@ -53,23 +56,33 @@ public class DefaultRecovererProvider im
}
@Override
- public ConfiguredObjectRecoverer<?> getRecoverer(ConfiguredObjectType type)
+ public ConfiguredObjectRecoverer<?> getRecoverer(String type)
{
- switch(type)
+ if(Broker.class.getSimpleName().equals(type))
{
- case BROKER:
return new BrokerRecoverer(_authenticationProviderFactory, _portFactory, _registry);
- case VIRTUAL_HOST:
+ }
+ else if(VirtualHost.class.getSimpleName().equals(type))
+ {
return new VirtualHostRecoverer(_registry.getVirtualHostRegistry(),(StatisticsGatherer)_registry, _registry.getSecurityManager());
- case AUTHENTICATION_PROVIDER:
+ }
+ else if(AuthenticationProvider.class.getSimpleName().equals(type))
+ {
return new AuthenticationProviderRecoverer(_authenticationProviderFactory);
- case PORT:
+ }
+ else if(Port.class.getSimpleName().equals(type))
+ {
return new PortRecoverer(_portFactory);
- case GROUP_PROVIDER:
+ }
+ else if(GroupProvider.class.getSimpleName().equals(type))
+ {
return new GroupProviderRecoverer(_groupManagerServiceLoader);
- case PLUGIN:
+ }
+ else if(Plugin.class.getSimpleName().equals(type))
+ {
return new PluginRecoverer(_pluginFactoryServiceLoader);
}
+
return null;
}
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/PortConfigurationHelper.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/PortConfigurationHelper.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/PortConfigurationHelper.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/PortConfigurationHelper.java Fri Nov 16 14:49:00 2012
@@ -38,7 +38,6 @@ import org.apache.qpid.server.configurat
import org.apache.qpid.server.configuration.ConfigurationEntryStore;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.configuration.ServerConfiguration;
-import org.apache.qpid.server.model.ConfiguredObjectType;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Protocol;
import org.apache.qpid.server.model.Transport;
@@ -213,7 +212,7 @@ public class PortConfigurationHelper
attributes.put(Port.WANT_CLIENT_AUTH, serverConfig.wantClientAuth());
attributes.put(Port.AUTHENTICATION_MANAGER, serverConfig.getPortAuthenticationMappings().get(port));
- ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(), ConfiguredObjectType.PORT, attributes,
+ ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(), Port.class.getSimpleName(), attributes,
null, _configurationEntryStore);
portConfiguration.put(entry.getId(), entry);
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/XMLConfigurationEntryStore.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/XMLConfigurationEntryStore.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/XMLConfigurationEntryStore.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/XMLConfigurationEntryStore.java Fri Nov 16 14:49:00 2012
@@ -34,10 +34,10 @@ import java.util.Set;
import java.util.UUID;
import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.ConfigurationUtils;
import org.apache.commons.configuration.HierarchicalConfiguration;
+import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.tree.ConfigurationNode;
import org.apache.log4j.Logger;
import org.apache.qpid.server.BrokerOptions;
@@ -47,14 +47,14 @@ import org.apache.qpid.server.configurat
import org.apache.qpid.server.configuration.ServerConfiguration;
import org.apache.qpid.server.model.AuthenticationProvider;
import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfiguredObjectType;
import org.apache.qpid.server.model.GroupProvider;
import org.apache.qpid.server.model.Port;
+import org.apache.qpid.server.model.Plugin;
import org.apache.qpid.server.model.Protocol;
import org.apache.qpid.server.model.Transport;
+import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.plugin.PluginFactory;
import org.apache.qpid.server.plugin.QpidServiceLoader;
-
import org.apache.qpid.server.security.group.FileGroupManagerFactory;
public class XMLConfigurationEntryStore implements ConfigurationEntryStore
@@ -123,7 +123,7 @@ public class XMLConfigurationEntryStore
brokerAttributes.put(Broker.HOUSEKEEPING_CHECK_PERIOD, _serverConfiguration.getHousekeepingCheckPeriod());
brokerAttributes.put(Broker.DEFAULT_AUTHENTICATION_PROVIDER, _serverConfiguration.getDefaultAuthenticationManager());
- ConfigurationEntry rootEntry = new ConfigurationEntry(_rootId, ConfiguredObjectType.BROKER, brokerAttributes,
+ ConfigurationEntry rootEntry = new ConfigurationEntry(_rootId, Broker.class.getSimpleName(), brokerAttributes,
Collections.unmodifiableSet(_rootChildren.keySet()), this);
_logger.warn("Returning root entry: " + rootEntry);
@@ -168,7 +168,7 @@ public class XMLConfigurationEntryStore
}
}
ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(),
- ConfiguredObjectType.AUTHENTICATION_PROVIDER, attributes, null, this);
+ AuthenticationProvider.class.getSimpleName(), attributes, null, this);
rootChildren.put(entry.getId(), entry);
}
}
@@ -185,7 +185,7 @@ public class XMLConfigurationEntryStore
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(GroupProvider.TYPE, "file-group-manager");
attributes.put("file", file);
- ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(), ConfiguredObjectType.GROUP_PROVIDER, attributes, null, this);
+ ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(), GroupProvider.class.getSimpleName(), attributes, null, this);
rootChildren.put(entry.getId(), entry);
}
}
@@ -265,7 +265,7 @@ public class XMLConfigurationEntryStore
attributes.put(Port.TRANSPORTS, Collections.singleton(transport));
attributes.put(Port.PORT, port);
attributes.put(Port.BINDING_ADDRESS, null);
- return new ConfigurationEntry(UUID.randomUUID(), ConfiguredObjectType.PORT, attributes, null, this);
+ return new ConfigurationEntry(UUID.randomUUID(), Port.class.getSimpleName(), attributes, null, this);
}
private void createVirtualHostConfig(ServerConfiguration serverConfiguration, Map<UUID, ConfigurationEntry> rootChildren)
@@ -295,7 +295,7 @@ public class XMLConfigurationEntryStore
}
attributes.put(org.apache.qpid.server.model.VirtualHost.CONFIGURATION, configuration.getAbsolutePath());
- ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(), ConfiguredObjectType.VIRTUAL_HOST,
+ ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(), VirtualHost.class.getSimpleName(),
attributes, null, this);
rootChildren.put(entry.getId(), entry);
}
@@ -338,7 +338,7 @@ public class XMLConfigurationEntryStore
attributes.put(Port.WANT_CLIENT_AUTH, serverConfiguration.wantClientAuth());
attributes.put(Port.AUTHENTICATION_MANAGER, serverConfiguration.getPortAuthenticationMappings().get(portNumber));
- ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(), ConfiguredObjectType.PORT, attributes, null,
+ ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(), Port.class.getSimpleName(), attributes, null,
this);
return entry;
}
@@ -357,7 +357,7 @@ public class XMLConfigurationEntryStore
attributes.put("httpSaslAuthenticationEnabled", serverConfiguration.getHTTPManagementSaslAuthEnabled());
attributes.put("httpsSaslAuthenticationEnabled", serverConfiguration.getHTTPSManagementSaslAuthEnabled());
- ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(), ConfiguredObjectType.PLUGIN, attributes, null, this);
+ ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(), Plugin.class.getSimpleName(), attributes, null, this);
rootChildren.put(entry.getId(), entry);
}
}
@@ -373,7 +373,7 @@ public class XMLConfigurationEntryStore
attributes.put("usePlatformMBeanServer", serverConfiguration.getPlatformMbeanserver());
attributes.put("managementRightsInferAllAccess", serverConfiguration.getManagementRightsInferAllAccess());
- ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(), ConfiguredObjectType.PLUGIN, attributes, null, this);
+ ConfigurationEntry entry = new ConfigurationEntry(UUID.randomUUID(), Plugin.class.getSimpleName(), attributes, null, this);
rootChildren.put(entry.getId(), entry);
}
}
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java Fri Nov 16 14:49:00 2012
@@ -25,6 +25,7 @@ import java.util.Collection;
import java.util.Collections;
import org.apache.qpid.server.security.SubjectCreator;
+import org.apache.qpid.server.security.group.GroupPrincipalAccessor;
public interface AuthenticationProvider extends ConfiguredObject
{
@@ -64,6 +65,5 @@ public interface AuthenticationProvider
*/
SubjectCreator getSubjectCreator();
- // XXX just an idea
- //setGroupProviders(Collection<GroupProvider> groupProviders);
+ void setGroupAccessor(GroupPrincipalAccessor groupPrincipalAccessor);
}
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java Fri Nov 16 14:49:00 2012
@@ -246,7 +246,4 @@ public interface ConfiguredObject
<C extends ConfiguredObject> C createChild(Class<C> childClass,
Map<String, Object> attributes,
ConfiguredObject... otherParents);
-
- ConfiguredObjectType getConfiguredObjectType();
-
}
Added: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Plugin.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Plugin.java?rev=1410377&view=auto
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Plugin.java (added)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Plugin.java Fri Nov 16 14:49:00 2012
@@ -0,0 +1,26 @@
+/*
+ *
+ * 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 interface Plugin extends ConfiguredObject
+{
+ //Hack, using it for the class name only for consistency with the other things.
+}
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Port.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Port.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Port.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Port.java Fri Nov 16 14:49:00 2012
@@ -119,4 +119,5 @@ public interface Port extends Configured
AuthenticationProvider getAuthenticationProvider();
+ void setAuthenticationProvider(AuthenticationProvider authenticationProvider);
}
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java Fri Nov 16 14:49:00 2012
@@ -29,7 +29,6 @@ import java.util.UUID;
import org.apache.qpid.server.model.ConfigurationChangeListener;
import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.ConfiguredObjectType;
import org.apache.qpid.server.model.IllegalStateTransitionException;
import org.apache.qpid.server.model.State;
@@ -196,12 +195,6 @@ abstract class AbstractAdapter implement
}
@Override
- public ConfiguredObjectType getConfiguredObjectType()
- {
- throw new RuntimeException("Not implemented"); //XXX: implement this method in each concrete adapter class
- }
-
- @Override
public String toString()
{
return getClass().getSimpleName() + " [id=" + _id + "]";
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java Fri Nov 16 14:49:00 2012
@@ -28,10 +28,11 @@ import java.util.UUID;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.LifetimePolicy;
+import org.apache.qpid.server.model.Plugin;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.Statistics;
-public abstract class AbstractPluginAdapter extends AbstractAdapter
+public abstract class AbstractPluginAdapter extends AbstractAdapter implements Plugin
{
protected AbstractPluginAdapter(UUID id)
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java Fri Nov 16 14:49:00 2012
@@ -53,7 +53,6 @@ import org.apache.qpid.server.logging.me
import org.apache.qpid.server.model.AuthenticationProvider;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.ConfiguredObjectType;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.security.SecurityManager;
@@ -190,7 +189,7 @@ public class ApplicationRegistry impleme
_securityManager = new SecurityManager(configuration.getConfig());
RecovererProvider provider = new DefaultRecovererProvider(this);
- ConfiguredObjectRecoverer<? extends ConfiguredObject> brokerRecoverer = provider.getRecoverer(ConfiguredObjectType.BROKER);
+ ConfiguredObjectRecoverer<? extends ConfiguredObject> brokerRecoverer = provider.getRecoverer(Broker.class.getSimpleName());
_broker = (Broker) brokerRecoverer.create(provider, _store.getRootEntry());
getVirtualHostRegistry().setDefaultVirtualHostName(configuration.getDefaultVirtualHost());
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java Fri Nov 16 14:49:00 2012
@@ -20,10 +20,10 @@
*/
package org.apache.qpid.server.configuration.startup;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.same;
+import static org.mockito.Mockito.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
import java.util.Arrays;
import java.util.Collection;
@@ -37,61 +37,60 @@ import junit.framework.TestCase;
import org.apache.qpid.server.configuration.ConfigurationEntry;
import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer;
+import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.configuration.RecovererProvider;
import org.apache.qpid.server.model.AuthenticationProvider;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.ConfiguredObjectType;
import org.apache.qpid.server.model.GroupProvider;
+import org.apache.qpid.server.model.Plugin;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.model.adapter.AuthenticationProviderFactory;
import org.apache.qpid.server.model.adapter.PortFactory;
import org.apache.qpid.server.registry.IApplicationRegistry;
+import org.apache.qpid.server.security.group.GroupPrincipalAccessor;
public class BrokerRecovererTest extends TestCase
{
private BrokerRecoverer _brokerRecoverer;
-
- private IApplicationRegistry _applicationRegistry = mock(IApplicationRegistry.class);
-
- private PortRecoverer _portRecoverer = mock(PortRecoverer.class);
- private AuthenticationProviderRecoverer _authenticationProviderRecoverer = mock(AuthenticationProviderRecoverer.class);
-
- private AuthenticationProviderFactory _authenticationProviderFactory = mock(AuthenticationProviderFactory.class);
- private PortFactory _portFactory = mock(PortFactory.class);
-
- private GroupProviderRecoverer _groupProviderRecoverer = mock(GroupProviderRecoverer.class);
-
- private ConfigurationEntry _entry = mock(ConfigurationEntry.class);
+ private ConfigurationEntry _brokerEntry = mock(ConfigurationEntry.class);
private UUID _brokerId = UUID.randomUUID();
- private Map<ConfiguredObjectType, Collection<ConfigurationEntry>> _entryChildren = new HashMap<ConfiguredObjectType, Collection<ConfigurationEntry>>();
-
- private PluginRecoverer _pluginRecoverer = mock(PluginRecoverer.class);
-
+ private Map<String, Collection<ConfigurationEntry>> _brokerEntryChildren = new HashMap<String, Collection<ConfigurationEntry>>();
+ private ConfigurationEntry _authenticationProviderEntry1;
+ private AuthenticationProvider _authenticationProvider1;
@Override
protected void setUp() throws Exception
{
super.setUp();
- _brokerRecoverer = new BrokerRecoverer(_authenticationProviderFactory, _portFactory, _applicationRegistry);
- when(_entry.getId()).thenReturn(_brokerId);
- when(_entry.getChildren()).thenReturn(_entryChildren);
+ _brokerRecoverer = new BrokerRecoverer(mock(AuthenticationProviderFactory.class), mock(PortFactory.class), mock(IApplicationRegistry.class));
+ when(_brokerEntry.getId()).thenReturn(_brokerId);
+ when(_brokerEntry.getChildren()).thenReturn(_brokerEntryChildren);
+
+ //Add a base AuthenticationProvider for all tests
+ _authenticationProvider1 = mock(AuthenticationProvider.class);
+ when(_authenticationProvider1.getName()).thenReturn("authenticationProvider1");
+ _authenticationProviderEntry1 = mock(ConfigurationEntry.class);
+ _brokerEntryChildren.put(AuthenticationProvider.class.getSimpleName(), Arrays.asList(_authenticationProviderEntry1));
}
public void testCreateBrokerWithVirtualHost()
{
final ConfigurationEntry virtualHostEntry = mock(ConfigurationEntry.class);
- when(virtualHostEntry.getType()).thenReturn(ConfiguredObjectType.VIRTUAL_HOST);
- _entryChildren.put(ConfiguredObjectType.VIRTUAL_HOST, Arrays.asList(virtualHostEntry));
+
+ String typeName = VirtualHost.class.getSimpleName();
+ when(virtualHostEntry.getType()).thenReturn(typeName);
+ _brokerEntryChildren.put(typeName, Arrays.asList(virtualHostEntry));
final VirtualHost virtualHost = mock(VirtualHost.class);
- RecovererProvider recovererProvider = createRecoveryProvider(virtualHostEntry, virtualHost);
+ RecovererProvider recovererProvider = createRecoveryProvider(new ConfigurationEntry[]{virtualHostEntry, _authenticationProviderEntry1},
+ new ConfiguredObject[]{virtualHost, _authenticationProvider1});
- Broker broker = _brokerRecoverer.create(recovererProvider, _entry);
+ Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
assertNotNull(broker);
assertEquals(_brokerId, broker.getId());
@@ -105,46 +104,160 @@ public class BrokerRecovererTest extends
{
ConfigurationEntry portEntry = mock(ConfigurationEntry.class);
Port port = mock(Port.class);
- _entryChildren.put(ConfiguredObjectType.PORT, Arrays.asList(portEntry));
+ _brokerEntryChildren.put(Port.class.getSimpleName(), Arrays.asList(portEntry));
- RecovererProvider recovererProvider = createRecoveryProvider(portEntry, port);
- when(_portRecoverer.create(same(recovererProvider), same(portEntry), any(Broker.class))).thenReturn(port);
+ RecovererProvider recovererProvider = createRecoveryProvider(new ConfigurationEntry[]{portEntry, _authenticationProviderEntry1},
+ new ConfiguredObject[]{port, _authenticationProvider1});
- Broker broker = _brokerRecoverer.create(recovererProvider, _entry);
+ Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
assertNotNull(broker);
assertEquals(_brokerId, broker.getId());
assertEquals(Collections.singletonList(port), broker.getPorts());
}
- public void testCreateBrokerWithAuthenticationProviders()
+ public void testCreateBrokerWithoutAuthenticationProviderThrowsException()
{
- ConfigurationEntry authenticationProviderEntry = mock(ConfigurationEntry.class);
- AuthenticationProvider authenticationProvider = mock(AuthenticationProvider.class);
- _entryChildren.put(ConfiguredObjectType.AUTHENTICATION_PROVIDER, Arrays.asList(authenticationProviderEntry));
+ assertNotNull("expected to remove the base entry", _brokerEntryChildren.remove(AuthenticationProvider.class.getSimpleName()));
+ assertTrue("should be empty", _brokerEntryChildren.isEmpty());
+ RecovererProvider recovererProvider = createRecoveryProvider(new ConfigurationEntry[0], new ConfiguredObject[0]);
- RecovererProvider recovererProvider = createRecoveryProvider(authenticationProviderEntry, authenticationProvider);
+ try
+ {
+ _brokerRecoverer.create(recovererProvider, _brokerEntry);
+ fail("should have thrown an exception due to missing authentication provider configuration");
+ }
+ catch(IllegalConfigurationException e)
+ {
+ //expected
+ }
+ }
+
+ public void testCreateBrokerWithOneAuthenticationProvider()
+ {
+ RecovererProvider recovererProvider = createRecoveryProvider(new ConfigurationEntry[]{_authenticationProviderEntry1},
+ new ConfiguredObject[]{_authenticationProvider1});
- when(_authenticationProviderRecoverer.create(same(recovererProvider), same(authenticationProviderEntry),
- any(Broker.class))).thenReturn(authenticationProvider);
- Broker broker = _brokerRecoverer.create(recovererProvider, _entry);
+ Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
assertNotNull(broker);
assertEquals(_brokerId, broker.getId());
- assertEquals(Collections.singletonList(authenticationProvider), broker.getAuthenticationProviders());
+ assertEquals(Collections.singletonList(_authenticationProvider1), broker.getAuthenticationProviders());
+ }
+
+ public void testCreateBrokerWithMultipleAuthenticationProvidersAndNoDefaultThrowsException()
+ {
+ AuthenticationProvider authenticationProvider2 = mock(AuthenticationProvider.class);
+ when(authenticationProvider2.getName()).thenReturn("authenticationProvider2");
+ ConfigurationEntry authenticationProviderEntry2 = mock(ConfigurationEntry.class);
+ _brokerEntryChildren.put(AuthenticationProvider.class.getSimpleName(), Arrays.asList(_authenticationProviderEntry1, authenticationProviderEntry2));
+
+ Map<String,Object> emptyBrokerAttributes = new HashMap<String,Object>();
+ when(_brokerEntry.getAttributes()).thenReturn(emptyBrokerAttributes);
+
+ RecovererProvider recovererProvider = createRecoveryProvider(new ConfigurationEntry[]{authenticationProviderEntry2, _authenticationProviderEntry1},
+ new ConfiguredObject[]{authenticationProvider2, _authenticationProvider1});
+ try
+ {
+ _brokerRecoverer.create(recovererProvider, _brokerEntry);
+ fail("should have thrown an exception due to missing authentication provider default");
+ }
+ catch(IllegalConfigurationException e)
+ {
+ //expected
+ }
+ }
+
+ public void testCreateBrokerWithMultipleAuthenticationProvidersAndPorts()
+ {
+ //Create a second authentication provider
+ AuthenticationProvider authenticationProvider2 = mock(AuthenticationProvider.class);
+ when(authenticationProvider2.getName()).thenReturn("authenticationProvider2");
+ ConfigurationEntry authenticationProviderEntry2 = mock(ConfigurationEntry.class);
+ _brokerEntryChildren.put(AuthenticationProvider.class.getSimpleName(), Arrays.asList(_authenticationProviderEntry1, authenticationProviderEntry2));
+
+ //Set the default authentication provider
+ Map<String,Object> brokerAtttributes = new HashMap<String,Object>();
+ when(_brokerEntry.getAttributes()).thenReturn(brokerAtttributes);
+ brokerAtttributes.put(Broker.DEFAULT_AUTHENTICATION_PROVIDER, "authenticationProvider2");
+
+ //Add a couple ports, one with a defined authentication provider and
+ //one without (which should then use the default)
+ ConfigurationEntry portEntry1 = mock(ConfigurationEntry.class);
+ Port port1 = mock(Port.class);
+ when(port1.getName()).thenReturn("port1");
+ when(port1.getPort()).thenReturn(5671);
+ when(port1.getAuthenticationManagerName()).thenReturn("authenticationProvider1");
+ ConfigurationEntry portEntry2 = mock(ConfigurationEntry.class);
+ Port port2 = mock(Port.class);
+ when(port2.getName()).thenReturn("port2");
+ when(port2.getPort()).thenReturn(5672);
+ _brokerEntryChildren.put(Port.class.getSimpleName(), Arrays.asList(portEntry1, portEntry2));
+
+ RecovererProvider recovererProvider = createRecoveryProvider(
+ new ConfigurationEntry[]{portEntry1, portEntry2, authenticationProviderEntry2, _authenticationProviderEntry1},
+ new ConfiguredObject[]{port1, port2, authenticationProvider2, _authenticationProvider1});
+
+ Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
+
+ assertNotNull(broker);
+ assertEquals("Unexpected number of authentication providers", 2,broker.getAuthenticationProviders().size());
+
+ Collection<Port> ports = broker.getPorts();
+ assertEquals("Unexpected number of ports", 2, ports.size());
+ assertTrue(ports.contains(port1));
+ assertTrue(ports.contains(port2));
+
+ verify(port1).setAuthenticationProvider(any(AuthenticationProvider.class));
+ verify(port1).setAuthenticationProvider(_authenticationProvider1);
+
+ verify(port2).setAuthenticationProvider(any(AuthenticationProvider.class));
+ verify(port2).setAuthenticationProvider(authenticationProvider2);
+ }
+
+ public void testCreateBrokerAssignsGroupAccessorToAuthenticationProviders()
+ {
+ //Create a second authentication provider
+ AuthenticationProvider authenticationProvider2 = mock(AuthenticationProvider.class);
+ when(authenticationProvider2.getName()).thenReturn("authenticationProvider2");
+ ConfigurationEntry authenticationProviderEntry2 = mock(ConfigurationEntry.class);
+ _brokerEntryChildren.put(AuthenticationProvider.class.getSimpleName(), Arrays.asList(_authenticationProviderEntry1, authenticationProviderEntry2));
+
+ //Set the default authentication provider
+ Map<String,Object> brokerAtttributes = new HashMap<String,Object>();
+ when(_brokerEntry.getAttributes()).thenReturn(brokerAtttributes);
+ brokerAtttributes.put(Broker.DEFAULT_AUTHENTICATION_PROVIDER, "authenticationProvider2");
+
+ //Create a group provider
+ ConfigurationEntry groupProviderEntry = mock(ConfigurationEntry.class);
+ GroupProvider groupProvider = mock(GroupProvider.class);
+ _brokerEntryChildren.put(GroupProvider.class.getSimpleName(), Arrays.asList(groupProviderEntry));
+
+ RecovererProvider recovererProvider = createRecoveryProvider(
+ new ConfigurationEntry[]{groupProviderEntry, authenticationProviderEntry2, _authenticationProviderEntry1},
+ new ConfiguredObject[]{groupProvider, authenticationProvider2, _authenticationProvider1});
+
+ Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
+
+ assertNotNull(broker);
+ assertEquals("Unexpected number of authentication providers", 2, broker.getAuthenticationProviders().size());
+
+ //verify that a GroupAcessor was added to the AuthenticationProviders
+ verify(_authenticationProvider1).setGroupAccessor(any(GroupPrincipalAccessor.class));
+ verify(authenticationProvider2).setGroupAccessor(any(GroupPrincipalAccessor.class));
}
- public void testCreateBrokerWithGroupProviders()
+ public void testCreateBrokerWithGroupProvider()
{
ConfigurationEntry groupProviderEntry = mock(ConfigurationEntry.class);
GroupProvider groupProvider = mock(GroupProvider.class);
- _entryChildren.put(ConfiguredObjectType.GROUP_PROVIDER, Arrays.asList(groupProviderEntry));
+ _brokerEntryChildren.put(GroupProvider.class.getSimpleName(), Arrays.asList(groupProviderEntry));
- RecovererProvider recovererProvider = createRecoveryProvider(groupProviderEntry, groupProvider);
- when(_groupProviderRecoverer.create(same(recovererProvider), same(groupProviderEntry), any(Broker.class))).thenReturn(groupProvider);
+ RecovererProvider recovererProvider = createRecoveryProvider(new ConfigurationEntry[]{groupProviderEntry, _authenticationProviderEntry1},
+ new ConfiguredObject[]{groupProvider, _authenticationProvider1});
- Broker broker = _brokerRecoverer.create(recovererProvider, _entry);
+ Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
assertNotNull(broker);
assertEquals(_brokerId, broker.getId());
@@ -155,28 +268,43 @@ public class BrokerRecovererTest extends
{
ConfigurationEntry pluginEntry = mock(ConfigurationEntry.class);
ConfiguredObject plugin = mock(ConfiguredObject.class);
- _entryChildren.put(ConfiguredObjectType.PLUGIN, Arrays.asList(pluginEntry));
+ _brokerEntryChildren.put(Plugin.class.getSimpleName(), Arrays.asList(pluginEntry));
- RecovererProvider recovererProvider = createRecoveryProvider(pluginEntry, plugin);
- when(_pluginRecoverer.create(same(recovererProvider), same(pluginEntry), any(Broker.class))).thenReturn(plugin);
+ RecovererProvider recovererProvider = createRecoveryProvider(new ConfigurationEntry[]{pluginEntry, _authenticationProviderEntry1},
+ new ConfiguredObject[]{plugin, _authenticationProvider1});
- Broker broker = _brokerRecoverer.create(recovererProvider, _entry);
+ Broker broker = _brokerRecoverer.create(recovererProvider, _brokerEntry);
assertNotNull(broker);
assertEquals(_brokerId, broker.getId());
assertEquals(Collections.singleton(plugin), new HashSet<ConfiguredObject>(broker.getChildren(ConfiguredObject.class)));
}
- private <T extends ConfiguredObject> RecovererProvider createRecoveryProvider(final ConfigurationEntry entry, final T objectToRecoverer)
+ private RecovererProvider createRecoveryProvider(final ConfigurationEntry[] entries, final ConfiguredObject[] objectsToRecoverer)
{
RecovererProvider recovererProvider = new RecovererProvider()
{
@Override
- public ConfiguredObjectRecoverer<? extends ConfiguredObject> getRecoverer(ConfiguredObjectType type)
+ public ConfiguredObjectRecoverer<? extends ConfiguredObject> getRecoverer(String type)
{
- @SuppressWarnings("unchecked")
- final ConfiguredObjectRecoverer<T> recovever = mock(ConfiguredObjectRecoverer.class);
- when(recovever.create(same(this), same(entry), any(Broker.class))).thenReturn(objectToRecoverer);
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ final ConfiguredObjectRecoverer<? extends ConfiguredObject> recovever = new ConfiguredObjectRecoverer()
+ {
+ @Override
+ public ConfiguredObject create(RecovererProvider recovererProvider, ConfigurationEntry entry, ConfiguredObject... parents)
+ {
+ for (int i = 0; i < entries.length; i++)
+ {
+ ConfigurationEntry e = entries[i];
+ if (entry == e)
+ {
+ return objectsToRecoverer[i];
+ }
+ }
+ return null;
+ }
+ };
+
return recovever;
}
};
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java Fri Nov 16 14:49:00 2012
@@ -21,27 +21,30 @@
package org.apache.qpid.server.configuration.startup;
import static org.mockito.Mockito.mock;
+import junit.framework.TestCase;
import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer;
-import org.apache.qpid.server.model.ConfiguredObjectType;
+import org.apache.qpid.server.model.AuthenticationProvider;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.GroupProvider;
+import org.apache.qpid.server.model.Plugin;
+import org.apache.qpid.server.model.Port;
+import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.registry.IApplicationRegistry;
-import junit.framework.TestCase;
-
public class DefaultRecovererProviderTest extends TestCase
{
-
public void testGetRecoverer()
{
- ConfiguredObjectType[] supportedTypes = {ConfiguredObjectType.BROKER,
- ConfiguredObjectType.VIRTUAL_HOST, ConfiguredObjectType.AUTHENTICATION_PROVIDER,
- ConfiguredObjectType.GROUP_PROVIDER, ConfiguredObjectType.PLUGIN, ConfiguredObjectType.PORT};
+ String[] supportedTypes = {Broker.class.getSimpleName(),
+ VirtualHost.class.getSimpleName(), AuthenticationProvider.class.getSimpleName(),
+ GroupProvider.class.getSimpleName(), Plugin.class.getSimpleName(), Port.class.getSimpleName()};
DefaultRecovererProvider provider = new DefaultRecovererProvider(mock(IApplicationRegistry.class));
- for (ConfiguredObjectType configuredObjectType : supportedTypes)
+ for (String configuredObjectType : supportedTypes)
{
ConfiguredObjectRecoverer<?> recovever = provider.getRecoverer(configuredObjectType);
- assertNotNull("Null recoveverer for type: " + configuredObjectType, recovever);
+ assertNotNull("Null recoverer for type: " + configuredObjectType, recovever);
}
}
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/broker/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java Fri Nov 16 14:49:00 2012
@@ -36,7 +36,8 @@ import junit.framework.TestCase;
import org.apache.qpid.server.configuration.ConfigurationEntry;
import org.apache.qpid.server.configuration.ConfigurationEntryStore;
-import org.apache.qpid.server.model.ConfiguredObjectType;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.VirtualHost;
public class ConfigurationEntryTest extends TestCase
@@ -45,11 +46,11 @@ public class ConfigurationEntryTest exte
{
ConfigurationEntryStore store = mock(ConfigurationEntryStore.class);
- ConfigurationEntry virtualHostEntry1 = new ConfigurationEntry(UUID.randomUUID(), ConfiguredObjectType.VIRTUAL_HOST,
+ ConfigurationEntry virtualHostEntry1 = new ConfigurationEntry(UUID.randomUUID(), VirtualHost.class.getSimpleName(),
Collections.<String, Object> emptyMap(), Collections.<UUID> emptySet(), store);
- ConfigurationEntry virtualHostEntry2 = new ConfigurationEntry(UUID.randomUUID(), ConfiguredObjectType.VIRTUAL_HOST,
+ ConfigurationEntry virtualHostEntry2 = new ConfigurationEntry(UUID.randomUUID(), VirtualHost.class.getSimpleName(),
Collections.<String, Object> emptyMap(), Collections.<UUID> emptySet(), store);
- ConfigurationEntry portEntry = new ConfigurationEntry(UUID.randomUUID(), ConfiguredObjectType.PORT,
+ ConfigurationEntry portEntry = new ConfigurationEntry(UUID.randomUUID(), Port.class.getSimpleName(),
Collections.<String, Object> emptyMap(), Collections.<UUID> emptySet(), store);
when(store.getEntry(virtualHostEntry1.getId())).thenReturn(virtualHostEntry1);
@@ -60,14 +61,14 @@ public class ConfigurationEntryTest exte
childrenIds.add(virtualHostEntry1.getId());
childrenIds.add(virtualHostEntry2.getId());
childrenIds.add(portEntry.getId());
- ConfigurationEntry parentEntry = new ConfigurationEntry(UUID.randomUUID(), ConfiguredObjectType.BROKER,
+ ConfigurationEntry parentEntry = new ConfigurationEntry(UUID.randomUUID(), Broker.class.getSimpleName(),
Collections.<String, Object> emptyMap(), childrenIds, store);
- Map<ConfiguredObjectType, Collection<ConfigurationEntry>> children = parentEntry.getChildren();
+ Map<String, Collection<ConfigurationEntry>> children = parentEntry.getChildren();
assertNotNull("Null is returned for children", children);
assertEquals("Unexpected size", 2, children.size());
- Collection<ConfigurationEntry> virtualHosts = children.get(ConfiguredObjectType.VIRTUAL_HOST);
- Collection<ConfigurationEntry> ports = children.get(ConfiguredObjectType.PORT);
+ Collection<ConfigurationEntry> virtualHosts = children.get(VirtualHost.class.getSimpleName());
+ Collection<ConfigurationEntry> ports = children.get(Port.class.getSimpleName());
assertEquals("Unexpected virtual hosts",
new HashSet<ConfigurationEntry>(Arrays.asList(virtualHostEntry1, virtualHostEntry2)),
new HashSet<ConfigurationEntry>(virtualHosts));
@@ -80,12 +81,12 @@ public class ConfigurationEntryTest exte
ConfigurationEntryStore store = mock(ConfigurationEntryStore.class);
UUID id = UUID.randomUUID();
- ConfigurationEntry entry1 = new ConfigurationEntry(id, ConfiguredObjectType.VIRTUAL_HOST,
+ ConfigurationEntry entry1 = new ConfigurationEntry(id, VirtualHost.class.getSimpleName(),
Collections.<String, Object> emptyMap(), Collections.singleton(UUID.randomUUID()), store);
- ConfigurationEntry entry2 = new ConfigurationEntry(id, ConfiguredObjectType.VIRTUAL_HOST,
+ ConfigurationEntry entry2 = new ConfigurationEntry(id, VirtualHost.class.getSimpleName(),
Collections.<String, Object> emptyMap(), Collections.singleton(UUID.randomUUID()), store);
ConfigurationEntry entryWithDifferentId = new ConfigurationEntry(UUID.randomUUID(),
- ConfiguredObjectType.VIRTUAL_HOST, Collections.<String, Object> emptyMap(), Collections.singleton(UUID.randomUUID()), store);
+ VirtualHost.class.getSimpleName(), Collections.<String, Object> emptyMap(), Collections.singleton(UUID.randomUUID()), store);
assertTrue(entry1.hashCode() == entry2.hashCode());
assertFalse(entry1.hashCode() == entryWithDifferentId.hashCode());
@@ -98,16 +99,16 @@ public class ConfigurationEntryTest exte
UUID id = UUID.randomUUID();
Map<String, Object> attributes1 = new HashMap<String, Object>();
attributes1.put(VirtualHost.NAME, "name1");
- ConfigurationEntry entry1 = new ConfigurationEntry(id, ConfiguredObjectType.VIRTUAL_HOST, attributes1,
+ ConfigurationEntry entry1 = new ConfigurationEntry(id, VirtualHost.class.getSimpleName(), attributes1,
Collections.singleton(UUID.randomUUID()), store);
Map<String, Object> attributes2 = new HashMap<String, Object>();
attributes2.put(VirtualHost.NAME, "name2");
- ConfigurationEntry entry2 = new ConfigurationEntry(id, ConfiguredObjectType.VIRTUAL_HOST, attributes2,
+ ConfigurationEntry entry2 = new ConfigurationEntry(id, VirtualHost.class.getSimpleName(), attributes2,
Collections.singleton(UUID.randomUUID()), store);
ConfigurationEntry entryWithDifferentId = new ConfigurationEntry(UUID.randomUUID(),
- ConfiguredObjectType.VIRTUAL_HOST, attributes1, Collections.singleton(UUID.randomUUID()), store);
+ VirtualHost.class.getSimpleName(), attributes1, Collections.singleton(UUID.randomUUID()), store);
assertTrue(entry1.equals(entry2));
assertFalse(entry1.equals(entryWithDifferentId));
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/JMXTestUtils.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/JMXTestUtils.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/JMXTestUtils.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/JMXTestUtils.java Fri Nov 16 14:49:00 2012
@@ -78,7 +78,6 @@ public class JMXTestUtils
public void setUp() throws IOException, ConfigurationException, Exception
{
_test.setConfigurationProperty("management.enabled", "true");
- _test.setSystemProperty("qpid.use_custom_rmi_socket_factory", "false");
}
public void open() throws Exception
Modified: qpid/branches/java-broker-config-qpid-4390/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-config-qpid-4390/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java?rev=1410377&r1=1410376&r2=1410377&view=diff
==============================================================================
--- qpid/branches/java-broker-config-qpid-4390/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java (original)
+++ qpid/branches/java-broker-config-qpid-4390/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java Fri Nov 16 14:49:00 2012
@@ -393,7 +393,7 @@ public class QpidBrokerTestCase extends
if (_brokerType.equals(BrokerType.INTERNAL) && !existingInternalBroker())
{
- setConfigurationProperty(ServerConfiguration.MGMT_CUSTOM_REGISTRY_SOCKET, String.valueOf(false));
+ setSystemProperty("qpid.use_custom_rmi_socket_factory", "false");
testConfig = saveTestConfiguration(port, testConfiguration);
_logger.info("Set test.config property to: " + testConfig);
_logger.info("Set test.virtualhosts property to: " + virtualHostsConfig);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org