summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2013-07-05 23:39:40 +0000
committerRobert Godfrey <rgodfrey@apache.org>2013-07-05 23:39:40 +0000
commit265d3479e525756d8c84a9a6f5c5cffd88b1ce27 (patch)
tree64e215d98b9a4ae1e80cc85c8e5cfc83160a6ccb
parent79e8440bdaac4a4dd764ace6b81cd300717c7d67 (diff)
downloadqpid-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
-rw-r--r--qpid/java/bdbstore/jmx/src/main/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBeanProvider.java6
-rw-r--r--qpid/java/bdbstore/src/main/java/resources/js/qpid/management/virtualhost/store/bdb/add.js2
-rw-r--r--qpid/java/bdbstore/src/main/java/resources/virtualhost/store/bdb/add.html2
-rw-r--r--qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/resources/js/qpid/management/virtualhost/store/pool/bonecp/add.js56
-rw-r--r--qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/resources/virtualhost/store/pool/bonecp/add.html25
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementFactory.java6
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java25
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/PluginClassProviderAction.java61
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/derby/add.js2
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/jdbc/add.js43
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/memory/add.js2
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/virtualhost/store/pool/none/add.js56
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/virtualhost/store/derby/add.html2
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/virtualhost/store/jdbc/add.html10
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/virtualhost/store/pool/none/add.html0
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementFactory.java6
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanProvider.java3
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerConfigurationStoreCreator.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/JsonConfigurationStoreFactory.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/store/factory/MemoryConfigurationStoreFactory.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchangeType.java6
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchangeType.java6
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeType.java6
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchangeType.java6
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/AccessControlFactory.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/AuthenticationManagerFactory.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ConfigurationStoreFactory.java4
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java3
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/GroupManagerFactory.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/JDBCConnectionProviderFactory.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/MessageStoreFactory.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/Pluggable.java25
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/PluginFactory.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/QpidServiceLoader.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/VirtualHostFactory.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/store/jdbc/DefaultConnectionProviderFactory.java3
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/exchange/DefaultExchangeFactoryTest.java12
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