diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2014-04-04 22:34:26 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2014-04-04 22:34:26 +0000 |
| commit | 7344c8879c319c4ca6ab57963e6147d878a4e154 (patch) | |
| tree | 230bbd0d3b9aa28b0a6298ae5156a40c996ddcdb /qpid/java/broker-plugins/management-http/src | |
| parent | db86d03af2ce0f704398c2a9392e91e9637154ec (diff) | |
| download | qpid-python-7344c8879c319c4ca6ab57963e6147d878a4e154.tar.gz | |
QPID-5615 : [Java Broker] Migrate broker config store to use same API as VirtualHost config store
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1584931 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins/management-http/src')
7 files changed, 67 insertions, 63 deletions
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 eed387f8c5..b4ce0ccf9a 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,17 +20,6 @@ */ package org.apache.qpid.server.management.plugin; -import java.lang.reflect.Type; -import java.net.SocketAddress; -import java.security.GeneralSecurityException; -import java.util.*; - -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.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.qpid.server.logging.messages.ManagementConsoleMessages; @@ -39,21 +28,10 @@ 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.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.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.LoggedOnUserPreferencesServlet; -import org.apache.qpid.server.management.plugin.servlet.rest.UserPreferencesServlet; -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.*; 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.plugin.PluginFactory; import org.apache.qpid.server.util.MapValueConverter; import org.apache.qpid.server.util.ServerScopedRuntimeException; import org.apache.qpid.transport.network.security.ssl.QpidMultipleTrustManager; @@ -67,6 +45,17 @@ 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> { private final Logger _logger = Logger.getLogger(HttpManagement.class); @@ -109,7 +98,7 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem put(HTTPS_SASL_AUTHENTICATION_ENABLED, Boolean.class); put(NAME, String.class); put(TIME_OUT, Integer.class); - put(PluginFactory.PLUGIN_TYPE, String.class); + put(TYPE, String.class); }}); private static final String JSESSIONID_COOKIE_PREFIX = "JSESSIONID_"; 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 3b159b1e5d..227271d439 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 @@ -25,6 +25,7 @@ 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> diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementFactory.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementFactory.java index fd40f56ef8..0431954879 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementFactory.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementFactory.java @@ -18,30 +18,29 @@ */ package org.apache.qpid.server.management.plugin; +import org.apache.qpid.server.model.AbstractConfiguredObjectTypeFactory; +import org.apache.qpid.server.model.Broker; +import org.apache.qpid.server.model.ConfiguredObject; + +import java.util.HashMap; import java.util.Map; import java.util.UUID; -import org.apache.qpid.server.model.Broker; -import org.apache.qpid.server.model.Plugin; -import org.apache.qpid.server.plugin.PluginFactory; - -public class HttpManagementFactory implements PluginFactory +public class HttpManagementFactory extends AbstractConfiguredObjectTypeFactory<HttpManagement> { - @Override - public Plugin createInstance(UUID id, Map<String, Object> attributes, Broker broker) + public HttpManagementFactory() { - if (!HttpManagement.PLUGIN_TYPE.equals(attributes.get(PLUGIN_TYPE))) - { - return null; - } - - return new HttpManagement(id, broker, attributes); + super(HttpManagement.class); } @Override - public String getType() + public HttpManagement createInstance(final Map<String, Object> attributes, final ConfiguredObject<?>... parents) { - return "HTTP Management"; + Map<String,Object> attributesWithoutId = new HashMap<String, Object>(attributes); + Object idObj = attributesWithoutId.remove(ConfiguredObject.ID); + UUID id = idObj == null ? UUID.randomUUID() : idObj instanceof UUID ? (UUID) idObj : UUID.fromString(idObj.toString()); + return new HttpManagement(id, getParent(Broker.class,parents), attributes); } + } diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java index 005358faf4..00126200f8 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java @@ -458,6 +458,7 @@ public class RestServlet extends AbstractServlet catch (RuntimeException e) { setResponseStatus(response, e); + e.printStackTrace(); } } diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/action/ListAccessControlProviderAttributes.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/action/ListAccessControlProviderAttributes.java index 6887217016..84d05997b5 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/action/ListAccessControlProviderAttributes.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/action/ListAccessControlProviderAttributes.java @@ -26,21 +26,21 @@ import java.util.TreeMap; import org.apache.qpid.server.management.plugin.servlet.rest.Action; import org.apache.qpid.server.model.Broker; -import org.apache.qpid.server.plugin.AccessControlFactory; +import org.apache.qpid.server.plugin.AccessControlProviderFactory; import org.apache.qpid.server.plugin.QpidServiceLoader; public class ListAccessControlProviderAttributes implements Action { private static final String ATTRIBUTES = "attributes"; private static final String DESCRIPTIONS = "descriptions"; - private Map<String, AccessControlFactory> _factories; + private Map<String, AccessControlProviderFactory> _factories; public ListAccessControlProviderAttributes() { - _factories = new TreeMap<String, AccessControlFactory>(); - Iterable<AccessControlFactory> factories = new QpidServiceLoader<AccessControlFactory>() - .instancesOf(AccessControlFactory.class); - for (AccessControlFactory factory : factories) + _factories = new TreeMap<String, AccessControlProviderFactory>(); + Iterable<AccessControlProviderFactory> factories = new QpidServiceLoader<AccessControlProviderFactory>() + .instancesOf(AccessControlProviderFactory.class); + for (AccessControlProviderFactory factory : factories) { _factories.put(factory.getType(), factory); } @@ -58,10 +58,11 @@ public class ListAccessControlProviderAttributes implements Action Map<String, Object> attributes = new TreeMap<String, Object>(); for (String providerType : _factories.keySet()) { - AccessControlFactory factory = _factories.get(providerType); + AccessControlProviderFactory<?> factory = _factories.get(providerType); Map<String, Object> data = new HashMap<String, Object>(); - data.put(ATTRIBUTES, factory.getAttributeNames()); + // TODO RG - fix + // data.put(ATTRIBUTES, factory.getAttributeNames()); Map<String, String> resources = factory.getAttributeDescriptions(); if (resources != null) { diff --git a/qpid/java/broker-plugins/management-http/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory b/qpid/java/broker-plugins/management-http/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory new file mode 100644 index 0000000000..316698a10e --- /dev/null +++ b/qpid/java/broker-plugins/management-http/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory @@ -0,0 +1,21 @@ +# +# 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. +# +org.apache.qpid.server.management.plugin.HttpManagementFactory + + 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 10bc9f941b..2fd057437a 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,41 +18,33 @@ */ package org.apache.qpid.server.management.plugin; -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; import java.util.HashMap; import java.util.Map; import java.util.UUID; -import org.apache.qpid.server.model.Broker; -import org.apache.qpid.server.plugin.PluginFactory; -import org.apache.qpid.test.utils.QpidTestCase; +import static org.mockito.Mockito.mock; public class HttpManagementFactoryTest extends QpidTestCase { private static final int SESSION_TIMEOUT = 3600; - private PluginFactory _pluginFactory = new HttpManagementFactory(); + private HttpManagementFactory _pluginFactory = new HttpManagementFactory(); private Map<String, Object> _attributes = new HashMap<String, Object>(); private Broker _broker = mock(Broker.class); private UUID _id = UUID.randomUUID(); - public void testCreateInstanceReturnsNullWhenPluginTypeMissing() throws Exception - { - assertNull(_pluginFactory.createInstance(_id, _attributes, _broker)); - } - public void testCreateInstanceReturnsNullWhenPluginTypeNotHttp() - { - _attributes.put(PluginFactory.PLUGIN_TYPE, "notHttp"); - assertNull(_pluginFactory.createInstance(_id, _attributes, _broker)); - } public void testCreateInstance() throws Exception { - _attributes.put(PluginFactory.PLUGIN_TYPE, HttpManagement.PLUGIN_TYPE); + _attributes.put(ConfiguredObject.TYPE, HttpManagement.PLUGIN_TYPE); _attributes.put(HttpManagement.TIME_OUT, SESSION_TIMEOUT); + _attributes.put(ConfiguredObject.ID, _id); - HttpManagement management = (HttpManagement) _pluginFactory.createInstance(_id, _attributes, _broker); + HttpManagement management = _pluginFactory.createInstance(_attributes, _broker); assertEquals(_broker, management.getParent(Broker.class)); assertEquals(SESSION_TIMEOUT, management.getSessionTimeout()); |
