summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins/management-http/src
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-04-04 22:34:26 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-04-04 22:34:26 +0000
commit7344c8879c319c4ca6ab57963e6147d878a4e154 (patch)
tree230bbd0d3b9aa28b0a6298ae5156a40c996ddcdb /qpid/java/broker-plugins/management-http/src
parentdb86d03af2ce0f704398c2a9392e91e9637154ec (diff)
downloadqpid-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')
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java37
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java1
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementFactory.java29
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java1
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/action/ListAccessControlProviderAttributes.java17
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/resources/META-INF/services/org.apache.qpid.server.plugin.ConfiguredObjectTypeFactory21
-rw-r--r--qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementFactoryTest.java24
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());