diff options
author | Robert Godfrey <rgodfrey@apache.org> | 2013-07-05 23:39:40 +0000 |
---|---|---|
committer | Robert Godfrey <rgodfrey@apache.org> | 2013-07-05 23:39:40 +0000 |
commit | 265d3479e525756d8c84a9a6f5c5cffd88b1ce27 (patch) | |
tree | 64e215d98b9a4ae1e80cc85c8e5cfc83160a6ccb | |
parent | 79e8440bdaac4a4dd764ace6b81cd300717c7d67 (diff) | |
download | qpid-python-265d3479e525756d8c84a9a6f5c5cffd88b1ce27.tar.gz |
QPID-4980 : [Java Broker] add connection pool attributes to http management
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1500169 13f79535-47bb-0310-9956-ffa450edef68
37 files changed, 360 insertions, 40 deletions
diff --git a/qpid/java/bdbstore/jmx/src/main/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBeanProvider.java b/qpid/java/bdbstore/jmx/src/main/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBeanProvider.java index 14cdec1669..0492350a25 100644 --- a/qpid/java/bdbstore/jmx/src/main/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBeanProvider.java +++ b/qpid/java/bdbstore/jmx/src/main/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBeanProvider.java @@ -65,4 +65,10 @@ public class BDBHAMessageStoreManagerMBeanProvider implements MBeanProvider return new BDBHAMessageStoreManagerMBean(messageStore, (ManagedObject) parent); } + + @Override + public String getType() + { + return "BDBHA"; + } } diff --git a/qpid/java/bdbstore/src/main/java/resources/js/qpid/management/virtualhost/store/bdb/add.js b/qpid/java/bdbstore/src/main/java/resources/js/qpid/management/virtualhost/store/bdb/add.js index b86a2c73d4..81871b6034 100644 --- a/qpid/java/bdbstore/src/main/java/resources/js/qpid/management/virtualhost/store/bdb/add.js +++ b/qpid/java/bdbstore/src/main/java/resources/js/qpid/management/virtualhost/store/bdb/add.js @@ -39,7 +39,7 @@ define(["dojo/_base/xhr", array.forEach(registry.toArray(), function(item) { - if(item.id.substr(0,27) == "formAddVirtualHost.specific") { + if(item.id.substr(0,34) == "formAddVirtualHost.specific.store.") { item.destroyRecursive(); } }); diff --git a/qpid/java/bdbstore/src/main/java/resources/virtualhost/store/bdb/add.html b/qpid/java/bdbstore/src/main/java/resources/virtualhost/store/bdb/add.html index 9424612e3c..2ed5b35c10 100644 --- a/qpid/java/bdbstore/src/main/java/resources/virtualhost/store/bdb/add.html +++ b/qpid/java/bdbstore/src/main/java/resources/virtualhost/store/bdb/add.html @@ -2,7 +2,7 @@ <tr> <td class="tableContainer-labelCell" style="width: 300px;"><strong>Path to store location*: </strong></td> <td class="tableContainer-valueCell"> - <input dojoType="dijit/form/ValidationTextBox" required="true" id="formAddVirtualHost.specific.storePath" + <input dojoType="dijit/form/ValidationTextBox" required="true" id="formAddVirtualHost.specific.store.storePath" name="storePath" placeholder="/path/to/message/store" /> </td> </tr> diff --git a/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/resources/js/qpid/management/virtualhost/store/pool/bonecp/add.js b/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/resources/js/qpid/management/virtualhost/store/pool/bonecp/add.js new file mode 100644 index 0000000000..f051116868 --- /dev/null +++ b/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/resources/js/qpid/management/virtualhost/store/pool/bonecp/add.js @@ -0,0 +1,56 @@ +/* + * + * 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. + * + */ +define(["dojo/_base/xhr", + "dojo/dom", + "dojo/dom-construct", + "dojo/_base/window", + "dijit/registry", + "dojo/parser", + "dojo/_base/array", + "dojo/_base/event", + "dojo/_base/json", + "dojo/string", + "dojo/store/Memory", + "dijit/form/FilteringSelect", + "dojo/domReady!"], + function (xhr, dom, construct, win, registry, parser, array, event, json, string, Memory, FilteringSelect) { + return { + show: function() { + var node = dom.byId("addVirtualHost.poolSpecificDiv"); + var that = this; + + array.forEach(registry.toArray(), + function(item) { + if(item.id.substr(0,39) == "formAddVirtualHost.specific.store.pool.") { + item.destroyRecursive(); + } + }); + + xhr.get({url: "virtualhost/store/pool/bonecp/add.html", + sync: true, + load: function(data) { + node.innerHTML = data; + parser.parse(node); + + }}); + } + }; + }); diff --git a/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/resources/virtualhost/store/pool/bonecp/add.html b/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/resources/virtualhost/store/pool/bonecp/add.html new file mode 100644 index 0000000000..52da8f52ae --- /dev/null +++ b/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/resources/virtualhost/store/pool/bonecp/add.html @@ -0,0 +1,25 @@ +<table class="tableContainer-table tableContainer-table-horiz"> + + <tr> + <td class="tableContainer-labelCell" style="width: 300px;"><strong>Partition Count: </strong></td> + <td class="tableContainer-valueCell"> + <input data-dojo-type="dijit/form/NumberSpinner" id="formAddVirtualHost.specific.store.pool.parititions" + name="minConnectionsPerPartition" value="4" smallDelta="1" constraints="{min:1,max:1000,places:0}"/> + </td> + </tr> + <tr> + <td class="tableContainer-labelCell" style="width: 300px;"><strong>Min Conn per Partition: </strong></td> + <td class="tableContainer-valueCell"> + <input dojoType="dijit/form/NumberSpinner" id="formAddVirtualHost.specific.store.pool.minConn" + name="minConnectionsPerPartition" value="5" smallDelta="1" constraints="{min:1,max:1000,places:0}"/> + </td> + </tr> + <tr> + <td class="tableContainer-labelCell" style="width: 300px;"><strong>Max Conn per Partition: </strong></td> + <td class="tableContainer-valueCell"> + <input dojoType="dijit/form/NumberSpinner" id="formAddVirtualHost.specific.store.pool.maxCon" + name="maxConnectionsPerPartition" value="10" smallDelta="1" constraints="{min:1,max:1000,places:0}"/> + </td> + </tr> + +</table> 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 ccf5373234..fd40f56ef8 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 @@ -38,4 +38,10 @@ public class HttpManagementFactory implements PluginFactory return new HttpManagement(id, broker, attributes); } + + @Override + public String getType() + { + return "HTTP Management"; + } } diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java index 8692ecc88c..75e5bd9842 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java @@ -50,17 +50,22 @@ public class HelperServlet extends AbstractServlet { _mapper = new ObjectMapper(); _mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); + + Action[] supportedActions = { + new ListAuthenticationProviderAttributes(), + new ListBrokerAttribute(Broker.SUPPORTED_VIRTUALHOST_STORE_TYPES, "ListMessageStoreTypes"), + new ListBrokerAttribute(Broker.SUPPORTED_VIRTUALHOST_TYPES, "ListVirtualHostTypes"), + new ListGroupProviderAttributes(), + new ListAccessControlProviderAttributes(), + new PluginClassProviderAction() + }; + _actions = new HashMap<String, Action>(); - Action listProviderAttributes = new ListAuthenticationProviderAttributes(); - _actions.put(listProviderAttributes.getName(), listProviderAttributes); - Action listMessageStoreTypes = new ListBrokerAttribute(Broker.SUPPORTED_VIRTUALHOST_STORE_TYPES, "ListMessageStoreTypes"); - _actions.put(listMessageStoreTypes.getName(), listMessageStoreTypes); - Action listVirtualHostTypes = new ListBrokerAttribute(Broker.SUPPORTED_VIRTUALHOST_TYPES, "ListVirtualHostTypes"); - _actions.put(listVirtualHostTypes.getName(), listVirtualHostTypes); - Action groupProviderAttributes = new ListGroupProviderAttributes(); - _actions.put(groupProviderAttributes.getName(), groupProviderAttributes); - Action aclProviderAttributes = new ListAccessControlProviderAttributes(); - _actions.put(aclProviderAttributes.getName(), aclProviderAttributes); + + for(Action action : supportedActions) + { + _actions.put(action.getName(), action); + } } @Override diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/PluginClassProviderAction.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/PluginClassProviderAction.java new file mode 100644 index 0000000000..1f6e26106f --- /dev/null +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/PluginClassProviderAction.java @@ -0,0 +1,61 @@ +package org.apache.qpid.server.management.plugin.servlet.rest;/* + * + * 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. + * + */ + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import org.apache.qpid.server.model.Broker; +import org.apache.qpid.server.plugin.Pluggable; +import org.apache.qpid.server.plugin.QpidServiceLoader; + +public class PluginClassProviderAction implements Action +{ + @Override + public String getName() + { + return "pluginList"; + } + + @Override + public Object perform(Map<String, Object> request, Broker broker) + { + try + { + String className = (String) request.get("plugin"); + QpidServiceLoader<Pluggable> serviceLoader = new QpidServiceLoader<Pluggable>(); + final Class<Pluggable> clazz = (Class<Pluggable>) Class.forName("org.apache.qpid.server.plugin."+className); + List<String> values = new ArrayList<String>(); + for(Pluggable instance : serviceLoader.instancesOf(clazz)) + { + values.add(instance.getType()); + } + return values; + } + catch (ClassNotFoundException e) + { + return Collections.emptyList(); + } + + } +} diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/derby/add.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/derby/add.js index a17561d7ed..04016b5fae 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/derby/add.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/derby/add.js @@ -39,7 +39,7 @@ define(["dojo/_base/xhr", array.forEach(registry.toArray(), function(item) { - if(item.id.substr(0,27) == "formAddVirtualHost.specific") { + if(item.id.substr(0,34) == "formAddVirtualHost.specific.store.") { item.destroyRecursive(); } }); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/jdbc/add.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/jdbc/add.js index 2b5f1f2053..dd79aae2fa 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/jdbc/add.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/jdbc/add.js @@ -39,7 +39,7 @@ define(["dojo/_base/xhr", array.forEach(registry.toArray(), function(item) { - if(item.id.substr(0,27) == "formAddVirtualHost.specific") { + if(item.id.substr(0,34) == "formAddVirtualHost.specific.store.") { item.destroyRecursive(); } }); @@ -47,8 +47,45 @@ define(["dojo/_base/xhr", xhr.get({url: "virtualhost/store/jdbc/add.html", sync: true, load: function(data) { - node.innerHTML = data; - parser.parse(node); + node.innerHTML = data; + parser.parse(node); + + if (that.hasOwnProperty("poolTypeChooser")) + { + that.poolTypeChooser.destroy(); + } + + var selectPoolType = function(type) { + if(type && string.trim(type) != "") { + require(["qpid/management/virtualhost/store/pool/"+type.toLowerCase()+"/add"], + function(poolType) + { + poolType.show(); + }); + } + } + + xhr.get({ + sync: true, + url: "rest/helper?action=pluginList&plugin=JDBCConnectionProviderFactory", + handleAs: "json" + }).then( + function(data) { + var poolTypes = data; + var poolTypesData = []; + for (var i =0 ; i < poolTypes.length; i++) + { + poolTypesData[i]= {id: poolTypes[i], name: poolTypes[i]}; + } + var poolTypesStore = new Memory({ data: poolTypesData }); + var poolTypesDiv = dom.byId("addVirtualHost.specific.selectPoolType"); + var input = construct.create("input", {id: "addPoolType", required: false}, poolTypesDiv); + that.poolTypeChooser = new FilteringSelect({ id: "addVirtualHost.specific.store.poolType", + name: "connectionPool", + store: poolTypesStore, + searchAttr: "name", required: false, + onChange: selectPoolType }, input); + }); }}); } diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/memory/add.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/memory/add.js index 010242cb9b..3a9b23274d 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/memory/add.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/memory/add.js @@ -39,7 +39,7 @@ define(["dojo/_base/xhr", array.forEach(registry.toArray(), function(item) { - if(item.id.substr(0,27) == "formAddVirtualHost.specific") { + if(item.id.substr(0,33) == "formAddVirtualHost.specific.store") { item.destroyRecursive(); } }); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/pool/none/add.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/pool/none/add.js new file mode 100644 index 0000000000..7276737873 --- /dev/null +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/pool/none/add.js @@ -0,0 +1,56 @@ +/* + * + * 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. + * + */ +define(["dojo/_base/xhr", + "dojo/dom", + "dojo/dom-construct", + "dojo/_base/window", + "dijit/registry", + "dojo/parser", + "dojo/_base/array", + "dojo/_base/event", + "dojo/_base/json", + "dojo/string", + "dojo/store/Memory", + "dijit/form/FilteringSelect", + "dojo/domReady!"], + function (xhr, dom, construct, win, registry, parser, array, event, json, string, Memory, FilteringSelect) { + return { + show: function() { + var node = dom.byId("addVirtualHost.poolSpecificDiv"); + var that = this; + + array.forEach(registry.toArray(), + function(item) { + if(item.id.substr(0,39) == "formAddVirtualHost.specific.store.pool.") { + item.destroyRecursive(); + } + }); + + xhr.get({url: "virtualhost/store/pool/none/add.html", + sync: true, + load: function(data) { + node.innerHTML = data; + parser.parse(node); + + }}); + } + }; + }); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/virtualhost/store/derby/add.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/virtualhost/store/derby/add.html index 9424612e3c..2ed5b35c10 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/virtualhost/store/derby/add.html +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/virtualhost/store/derby/add.html @@ -2,7 +2,7 @@ <tr> <td class="tableContainer-labelCell" style="width: 300px;"><strong>Path to store location*: </strong></td> <td class="tableContainer-valueCell"> - <input dojoType="dijit/form/ValidationTextBox" required="true" id="formAddVirtualHost.specific.storePath" + <input dojoType="dijit/form/ValidationTextBox" required="true" id="formAddVirtualHost.specific.store.storePath" name="storePath" placeholder="/path/to/message/store" /> </td> </tr> diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/virtualhost/store/jdbc/add.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/virtualhost/store/jdbc/add.html index f0a091ea4e..966b4fcc06 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/virtualhost/store/jdbc/add.html +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/virtualhost/store/jdbc/add.html @@ -2,8 +2,14 @@ <tr> <td class="tableContainer-labelCell" style="width: 300px;"><strong>JDBC Url*: </strong></td> <td class="tableContainer-valueCell"> - <input dojoType="dijit/form/ValidationTextBox" required="true" id="formAddVirtualHost.specific.connectionURL" + <input dojoType="dijit/form/ValidationTextBox" required="true" id="formAddVirtualHost.specific.store.connectionURL" name="connectionURL" placeholder="jdbc:provider:info" /> - </td> + </tr> + <tr> + <td class="tableContainer-labelCell" style="width: 300px;"><strong>Connection Pool: </strong></td> + <td class="tableContainer-valueCell" ><div id="addVirtualHost.specific.selectPoolType"></div></td> + </td> </tr> </table> +<div id="addVirtualHost.poolSpecificDiv"> +</div> diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/virtualhost/store/pool/none/add.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/virtualhost/store/pool/none/add.html new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/virtualhost/store/pool/none/add.html diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementFactory.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementFactory.java index 99ef205a58..486ea5e6f1 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementFactory.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementFactory.java @@ -39,4 +39,10 @@ public class JMXManagementFactory implements PluginFactory return null; } } + + @Override + public String getType() + { + return "JMX Management"; + } } diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanProvider.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanProvider.java index b80ddc7fac..a0ef052314 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanProvider.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanProvider.java @@ -25,6 +25,7 @@ import javax.management.JMException; import javax.management.StandardMBean; import org.apache.qpid.server.model.ConfiguredObject; +import org.apache.qpid.server.plugin.Pluggable; import org.apache.qpid.server.plugin.QpidServiceLoader; /** @@ -32,7 +33,7 @@ import org.apache.qpid.server.plugin.QpidServiceLoader; * * Provider implementations are advertised as services and loaded by a {@link QpidServiceLoader}. */ -public interface MBeanProvider +public interface MBeanProvider extends Pluggable { /** * Tests whether a <code>child</code> can be managed by the mbean diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreator.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreator.java index 999602bc2d..2d42d60039 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreator.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreator.java @@ -43,7 +43,7 @@ public class BrokerConfigurationStoreCreator .instancesOf(ConfigurationStoreFactory.class); for (ConfigurationStoreFactory storeFactory : configurationStoreFactories) { - String type = storeFactory.getStoreType(); + String type = storeFactory.getType(); ConfigurationStoreFactory factory = _factories.put(type.toLowerCase(), storeFactory); if (factory != null) { diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/JsonConfigurationStoreFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/JsonConfigurationStoreFactory.java index d4e0a23b1b..de007e68d7 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/JsonConfigurationStoreFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/JsonConfigurationStoreFactory.java @@ -35,7 +35,7 @@ public class JsonConfigurationStoreFactory implements ConfigurationStoreFactory } @Override - public String getStoreType() + public String getType() { return JsonConfigurationEntryStore.STORE_TYPE; } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/MemoryConfigurationStoreFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/MemoryConfigurationStoreFactory.java index fd52b2c93e..f7a9157144 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/MemoryConfigurationStoreFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/MemoryConfigurationStoreFactory.java @@ -35,7 +35,7 @@ public class MemoryConfigurationStoreFactory implements ConfigurationStoreFacto } @Override - public String getStoreType() + public String getType() { return MemoryConfigurationEntryStore.STORE_TYPE; } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchangeType.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchangeType.java index c193764edc..afe00e1b60 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchangeType.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchangeType.java @@ -30,6 +30,12 @@ import org.apache.qpid.server.virtualhost.VirtualHost; public class DirectExchangeType implements ExchangeType<DirectExchange> { + @Override + public String getType() + { + return getName().toString(); + } + public AMQShortString getName() { return ExchangeDefaults.DIRECT_EXCHANGE_CLASS; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchangeType.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchangeType.java index 587761b64e..43276d8eca 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchangeType.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchangeType.java @@ -30,6 +30,12 @@ import org.apache.qpid.server.virtualhost.VirtualHost; public class FanoutExchangeType implements ExchangeType<FanoutExchange> { + @Override + public String getType() + { + return getName().toString(); + } + public AMQShortString getName() { return ExchangeDefaults.FANOUT_EXCHANGE_CLASS; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeType.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeType.java index 1c99fbb364..324a4b9e51 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeType.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeType.java @@ -30,6 +30,12 @@ import org.apache.qpid.server.virtualhost.VirtualHost; public class HeadersExchangeType implements ExchangeType<HeadersExchange> { + @Override + public String getType() + { + return getName().toString(); + } + public AMQShortString getName() { return ExchangeDefaults.HEADERS_EXCHANGE_CLASS; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchangeType.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchangeType.java index d921901f0f..5882d0cdc6 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchangeType.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchangeType.java @@ -30,6 +30,12 @@ import org.apache.qpid.server.virtualhost.VirtualHost; public class TopicExchangeType implements ExchangeType<TopicExchange> { + @Override + public String getType() + { + return getName().toString(); + } + public AMQShortString getName() { return ExchangeDefaults.TOPIC_EXCHANGE_CLASS; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/AccessControlFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/AccessControlFactory.java index 0694032db2..0298789672 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/AccessControlFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/AccessControlFactory.java @@ -24,7 +24,7 @@ import java.util.Map; import org.apache.qpid.server.model.AccessControlProvider; import org.apache.qpid.server.security.AccessControl; -public interface AccessControlFactory +public interface AccessControlFactory extends Pluggable { public static final String ATTRIBUTE_TYPE = AccessControlProvider.TYPE; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/AuthenticationManagerFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/AuthenticationManagerFactory.java index 9a2a3c9d3b..e183370870 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/AuthenticationManagerFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/AuthenticationManagerFactory.java @@ -24,7 +24,7 @@ import java.util.Map; import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.security.auth.manager.AuthenticationManager; -public interface AuthenticationManagerFactory +public interface AuthenticationManagerFactory extends Pluggable { public static final String ATTRIBUTE_TYPE = AuthenticationProvider.TYPE; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ConfigurationStoreFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ConfigurationStoreFactory.java index d964578cb7..382c742161 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ConfigurationStoreFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ConfigurationStoreFactory.java @@ -26,12 +26,12 @@ import org.apache.qpid.server.configuration.ConfigurationEntryStore; import org.apache.qpid.server.configuration.IllegalConfigurationException; -public interface ConfigurationStoreFactory +public interface ConfigurationStoreFactory extends Pluggable { /** * Returns the type of the store this factory can create */ - public String getStoreType(); + public String getType(); /** * Creates and opens the store from a given location using initial store if provided. diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java index 7bd0728850..8093ed3d16 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java @@ -27,8 +27,9 @@ import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.server.exchange.Exchange; import org.apache.qpid.server.virtualhost.VirtualHost; -public interface ExchangeType<T extends Exchange> +public interface ExchangeType<T extends Exchange> extends Pluggable { + public String getType(); public AMQShortString getName(); public T newInstance(UUID id, VirtualHost host, AMQShortString name, boolean durable, boolean autoDelete) throws AMQException; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/GroupManagerFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/GroupManagerFactory.java index 2ab9701e2e..3d7a6323eb 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/GroupManagerFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/GroupManagerFactory.java @@ -24,7 +24,7 @@ import java.util.Map; import org.apache.qpid.server.model.GroupProvider; import org.apache.qpid.server.security.group.GroupManager; -public interface GroupManagerFactory +public interface GroupManagerFactory extends Pluggable { public static final String ATTRIBUTE_TYPE = GroupProvider.TYPE; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/JDBCConnectionProviderFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/JDBCConnectionProviderFactory.java index a5f4ea063b..12fb9224bb 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/JDBCConnectionProviderFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/JDBCConnectionProviderFactory.java @@ -29,7 +29,7 @@ import org.apache.commons.configuration.Configuration; import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.store.jdbc.ConnectionProvider; -public interface JDBCConnectionProviderFactory +public interface JDBCConnectionProviderFactory extends Pluggable { String getType(); diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/MessageStoreFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/MessageStoreFactory.java index e5e214227a..81404dcba8 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/MessageStoreFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/MessageStoreFactory.java @@ -24,7 +24,7 @@ import java.util.Map; import org.apache.commons.configuration.Configuration; import org.apache.qpid.server.store.MessageStore; -public interface MessageStoreFactory +public interface MessageStoreFactory extends Pluggable { String getType(); diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/Pluggable.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/Pluggable.java new file mode 100644 index 0000000000..cc18e83f8e --- /dev/null +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/Pluggable.java @@ -0,0 +1,25 @@ +package org.apache.qpid.server.plugin;/* + * + * 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. + * + */ + +public interface Pluggable +{ + String getType(); +} diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/PluginFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/PluginFactory.java index af24f62e28..7f804781a5 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/PluginFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/PluginFactory.java @@ -24,7 +24,7 @@ import java.util.UUID; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.Plugin; -public interface PluginFactory +public interface PluginFactory extends Pluggable { static final String PLUGIN_TYPE = "pluginType"; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/QpidServiceLoader.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/QpidServiceLoader.java index a0e0346ce0..148a306b27 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/QpidServiceLoader.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/QpidServiceLoader.java @@ -28,7 +28,7 @@ import org.apache.log4j.Logger; /** * Simple facade over a {@link ServiceLoader} to instantiate all configured implementations of an interface. */ -public class QpidServiceLoader<C> +public class QpidServiceLoader<C extends Pluggable> { private static final Logger _logger = Logger.getLogger(QpidServiceLoader.class); diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/VirtualHostFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/VirtualHostFactory.java index 2a3b65f829..9549b70c83 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/VirtualHostFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/VirtualHostFactory.java @@ -33,7 +33,7 @@ import org.apache.qpid.server.stats.StatisticsGatherer; import org.apache.qpid.server.virtualhost.VirtualHost; import org.apache.qpid.server.virtualhost.VirtualHostRegistry; -public interface VirtualHostFactory +public interface VirtualHostFactory extends Pluggable { String getType(); diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/store/jdbc/DefaultConnectionProviderFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/store/jdbc/DefaultConnectionProviderFactory.java index a2d3644590..8fc7de12d0 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/store/jdbc/DefaultConnectionProviderFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/store/jdbc/DefaultConnectionProviderFactory.java @@ -20,7 +20,6 @@ */ package org.apache.qpid.server.store.jdbc; -import org.apache.commons.configuration.Configuration; import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.plugin.JDBCConnectionProviderFactory; @@ -30,7 +29,7 @@ public class DefaultConnectionProviderFactory implements JDBCConnectionProviderF @Override public String getType() { - return "DEFAULT"; + return "NONE"; } @Override diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/exchange/DefaultExchangeFactoryTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/exchange/DefaultExchangeFactoryTest.java index 56f118cf7d..cf6e98d6ca 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/exchange/DefaultExchangeFactoryTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/exchange/DefaultExchangeFactoryTest.java @@ -170,9 +170,15 @@ public class DefaultExchangeFactoryTest extends QpidTestCase public void testCreateDefaultExchangeFactoryWithCustomExchangeType() { - ExchangeType<?> customeExchangeType = new ExchangeType<Exchange>() + ExchangeType<?> customExchangeType = new ExchangeType<Exchange>() { @Override + public String getType() + { + return getName().toString(); + } + + @Override public AMQShortString getName() { return new AMQShortString("my-custom-exchange"); @@ -192,7 +198,7 @@ public class DefaultExchangeFactoryTest extends QpidTestCase } }; - _stubbedExchangeTypes.add(customeExchangeType); + _stubbedExchangeTypes.add(customExchangeType); _stubbedExchangeTypes.add(_directExchangeType); _stubbedExchangeTypes.add(_topicExchangeType); _stubbedExchangeTypes.add(_fanoutExchangeType); @@ -206,7 +212,7 @@ public class DefaultExchangeFactoryTest extends QpidTestCase assertTrue("Fanout exchange type is not found", registeredTypes.contains(_fanoutExchangeType)); assertTrue("Topic exchange type is not found", registeredTypes.contains(_topicExchangeType)); assertTrue("Headers exchange type is not found", registeredTypes.contains(_headersExchangeType)); - assertTrue("Custom exchange type is not found", registeredTypes.contains(customeExchangeType)); + assertTrue("Custom exchange type is not found", registeredTypes.contains(customExchangeType)); } private final class TestExchangeFactory extends DefaultExchangeFactory |