diff options
author | Alex Rudyy <orudyy@apache.org> | 2012-12-12 17:42:20 +0000 |
---|---|---|
committer | Alex Rudyy <orudyy@apache.org> | 2012-12-12 17:42:20 +0000 |
commit | 675a6881cb86a613828d5b8e0263862118a736d4 (patch) | |
tree | eca1248f23cb3c2a0e0b17f227165954ea8915c2 | |
parent | 5f0181ccd077960610d85081fe044a1418e86829 (diff) | |
download | qpid-python-675a6881cb86a613828d5b8e0263862118a736d4.tar.gz |
Move broker parent validation from abstract recoverer to a helper class
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/java-broker-config-qpid-4390@1420872 13f79535-47bb-0310-9956-ffa450edef68
8 files changed, 78 insertions, 14 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecoverer.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecoverer.java index c6ad9440b2..9b06a2b499 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecoverer.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecoverer.java @@ -23,12 +23,14 @@ package org.apache.qpid.server.configuration.startup; import java.util.Map; import org.apache.qpid.server.configuration.ConfigurationEntry; +import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer; 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.adapter.AuthenticationProviderFactory; -public class AuthenticationProviderRecoverer extends AbstractBrokerChildRecoverer<AuthenticationProvider> +public class AuthenticationProviderRecoverer implements ConfiguredObjectRecoverer<AuthenticationProvider> { private final AuthenticationProviderFactory _authenticationProviderFactory; @@ -38,8 +40,9 @@ public class AuthenticationProviderRecoverer extends AbstractBrokerChildRecovere } @Override - AuthenticationProvider createBrokerChild(RecovererProvider recovererProvider, ConfigurationEntry configurationEntry, Broker broker) + public AuthenticationProvider create(RecovererProvider recovererProvider, ConfigurationEntry configurationEntry, ConfiguredObject... parents) { + Broker broker = RecovererHelper.verifyOnlyBrokerIsParent(parents); Map<String, Object> attributes = configurationEntry.getAttributes(); AuthenticationProvider authenticationProvider = _authenticationProviderFactory.create( configurationEntry.getId(), diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/GroupProviderRecoverer.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/GroupProviderRecoverer.java index 60f5bdd837..275a0c736c 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/GroupProviderRecoverer.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/GroupProviderRecoverer.java @@ -23,16 +23,18 @@ package org.apache.qpid.server.configuration.startup; import java.util.Map; 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.Broker; +import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.GroupProvider; import org.apache.qpid.server.model.adapter.GroupProviderAdapter; import org.apache.qpid.server.plugin.GroupManagerFactory; import org.apache.qpid.server.plugin.QpidServiceLoader; import org.apache.qpid.server.security.group.GroupManager; -public class GroupProviderRecoverer extends AbstractBrokerChildRecoverer<GroupProvider> +public class GroupProviderRecoverer implements ConfiguredObjectRecoverer<GroupProvider> { private QpidServiceLoader<GroupManagerFactory> _groupManagerServiceLoader; @@ -43,8 +45,9 @@ public class GroupProviderRecoverer extends AbstractBrokerChildRecoverer<GroupPr } @Override - GroupProvider createBrokerChild(RecovererProvider recovererProvider, ConfigurationEntry configurationEntry, Broker broker) + public GroupProvider create(RecovererProvider recovererProvider, ConfigurationEntry configurationEntry, ConfiguredObject... parents) { + Broker broker = RecovererHelper.verifyOnlyBrokerIsParent(parents); Map<String, Object> attributes = configurationEntry.getAttributes(); GroupManager groupManager = createGroupManager(attributes); if (groupManager == null) diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/KeyStoreRecoverer.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/KeyStoreRecoverer.java index 69ef4dd644..8efedd37b5 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/KeyStoreRecoverer.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/KeyStoreRecoverer.java @@ -21,16 +21,19 @@ package org.apache.qpid.server.configuration.startup; import org.apache.qpid.server.configuration.ConfigurationEntry; +import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer; import org.apache.qpid.server.configuration.RecovererProvider; 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.adapter.KeyStoreAdapter; -public class KeyStoreRecoverer extends AbstractBrokerChildRecoverer<KeyStore> +public class KeyStoreRecoverer implements ConfiguredObjectRecoverer<KeyStore> { @Override - KeyStore createBrokerChild(RecovererProvider recovererProvider, ConfigurationEntry entry, Broker broker) + public KeyStore create(RecovererProvider recovererProvider, ConfigurationEntry entry, ConfiguredObject... parents) { + Broker broker = RecovererHelper.verifyOnlyBrokerIsParent(parents); return new KeyStoreAdapter(entry.getId(), broker, entry.getAttributes()); } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/PluginRecoverer.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/PluginRecoverer.java index 1bc66be70a..ddc4482953 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/PluginRecoverer.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/PluginRecoverer.java @@ -24,6 +24,7 @@ import java.util.Map; import java.util.UUID; 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.Broker; @@ -31,7 +32,7 @@ import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.plugin.PluginFactory; import org.apache.qpid.server.plugin.QpidServiceLoader; -public class PluginRecoverer extends AbstractBrokerChildRecoverer<ConfiguredObject> +public class PluginRecoverer implements ConfiguredObjectRecoverer<ConfiguredObject> { private QpidServiceLoader<PluginFactory> _serviceLoader; @@ -41,8 +42,9 @@ public class PluginRecoverer extends AbstractBrokerChildRecoverer<ConfiguredObje } @Override - ConfiguredObject createBrokerChild(RecovererProvider recovererProvider, ConfigurationEntry configurationEntry, Broker broker) + public ConfiguredObject create(RecovererProvider recovererProvider, ConfigurationEntry configurationEntry, ConfiguredObject... parents) { + Broker broker = RecovererHelper.verifyOnlyBrokerIsParent(parents); Map<String, Object> attributes = configurationEntry.getAttributes(); Iterable<PluginFactory> factories = _serviceLoader.instancesOf(PluginFactory.class); for (PluginFactory pluginFactory : factories) diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/PortRecoverer.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/PortRecoverer.java index 05ad55c404..147e835a8d 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/PortRecoverer.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/PortRecoverer.java @@ -21,13 +21,15 @@ package org.apache.qpid.server.configuration.startup; import org.apache.qpid.server.configuration.ConfigurationEntry; +import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer; import org.apache.qpid.server.configuration.RecovererProvider; import org.apache.qpid.server.model.Broker; +import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.adapter.BrokerAdapter; import org.apache.qpid.server.model.adapter.PortFactory; -public class PortRecoverer extends AbstractBrokerChildRecoverer<Port> +public class PortRecoverer implements ConfiguredObjectRecoverer<Port> { /** * delegates to a {@link PortFactory} so that the logic can be shared by @@ -41,8 +43,9 @@ public class PortRecoverer extends AbstractBrokerChildRecoverer<Port> } @Override - Port createBrokerChild(RecovererProvider recovererProvider, ConfigurationEntry configurationEntry, Broker broker) + public Port create(RecovererProvider recovererProvider, ConfigurationEntry configurationEntry, ConfiguredObject... parents) { + Broker broker = RecovererHelper.verifyOnlyBrokerIsParent(parents); return _portFactory.createPort(configurationEntry.getId(), broker, configurationEntry.getAttributes()); } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/RecovererHelper.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/RecovererHelper.java new file mode 100644 index 0000000000..b60c9c289f --- /dev/null +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/RecovererHelper.java @@ -0,0 +1,44 @@ +/* + * + * 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.configuration.startup; + +import org.apache.qpid.server.model.Broker; +import org.apache.qpid.server.model.ConfiguredObject; + +public class RecovererHelper +{ + public static Broker verifyOnlyBrokerIsParent(ConfiguredObject... parents) + { + if (parents == null || parents.length == 0) + { + throw new IllegalArgumentException("Broker parent is not passed!"); + } + if (parents.length != 1) + { + throw new IllegalArgumentException("Only one parent is expected!"); + } + if (!(parents[0] instanceof Broker)) + { + throw new IllegalArgumentException("Parent is not a broker"); + } + return (Broker)parents[0]; + } +} diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/TrustStoreRecoverer.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/TrustStoreRecoverer.java index a10562d933..7e9428a4d6 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/TrustStoreRecoverer.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/TrustStoreRecoverer.java @@ -21,16 +21,19 @@ package org.apache.qpid.server.configuration.startup; import org.apache.qpid.server.configuration.ConfigurationEntry; +import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer; import org.apache.qpid.server.configuration.RecovererProvider; import org.apache.qpid.server.model.Broker; +import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.TrustStore; import org.apache.qpid.server.model.adapter.TrustStoreAdapter; -public class TrustStoreRecoverer extends AbstractBrokerChildRecoverer<TrustStore> +public class TrustStoreRecoverer implements ConfiguredObjectRecoverer<TrustStore> { @Override - TrustStore createBrokerChild(RecovererProvider recovererProvider, ConfigurationEntry entry, Broker broker) + public TrustStore create(RecovererProvider recovererProvider, ConfigurationEntry entry, ConfiguredObject... parents) { + Broker broker = RecovererHelper.verifyOnlyBrokerIsParent(parents); return new TrustStoreAdapter(entry.getId(), broker, entry.getAttributes()); } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/VirtualHostRecoverer.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/VirtualHostRecoverer.java index 6a7b5e560a..ba5be4ab0b 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/VirtualHostRecoverer.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/VirtualHostRecoverer.java @@ -29,16 +29,18 @@ import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.XMLConfiguration; 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.configuration.VirtualHostConfiguration; import org.apache.qpid.server.configuration.XmlConfigurationUtilities; import org.apache.qpid.server.model.Broker; +import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.model.adapter.VirtualHostAdapter; import org.apache.qpid.server.stats.StatisticsGatherer; -public class VirtualHostRecoverer extends AbstractBrokerChildRecoverer<VirtualHost> +public class VirtualHostRecoverer implements ConfiguredObjectRecoverer<VirtualHost> { private StatisticsGatherer _brokerStatisticsGatherer; @@ -49,8 +51,9 @@ public class VirtualHostRecoverer extends AbstractBrokerChildRecoverer<VirtualHo } @Override - VirtualHost createBrokerChild(RecovererProvider recovererProvider, ConfigurationEntry entry, Broker broker) + public VirtualHost create(RecovererProvider recovererProvider, ConfigurationEntry entry, ConfiguredObject... parents) { + Broker broker = RecovererHelper.verifyOnlyBrokerIsParent(parents); Map<String, Object> attributes = entry.getAttributes(); String name = getStringAttribute(VirtualHost.NAME, attributes); String configuration = getStringAttribute(VirtualHost.CONFIGURATION, attributes, null); |