diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2013-07-05 20:59:00 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2013-07-05 20:59:00 +0000 |
| commit | 79e8440bdaac4a4dd764ace6b81cd300717c7d67 (patch) | |
| tree | 72be60d2fdd1e78dd4b7d707ac78befddf5efec0 /qpid/java/broker/src | |
| parent | 88c521cc70189673c259cbccd2f7ea7732a8588a (diff) | |
| download | qpid-python-79e8440bdaac4a4dd764ace6b81cd300717c7d67.tar.gz | |
QPID-4980 : [Java Broker] In HTTP Management make (standard) virtual host store attributes depended upon store type
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1500134 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker/src')
6 files changed, 51 insertions, 6 deletions
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 9297f34f94..e5e214227a 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 @@ -32,4 +32,5 @@ public interface MessageStoreFactory public Map<String, Object> convertStoreConfiguration(Configuration configuration); + void validateAttributes(Map<String, Object> attributes); } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/store/MemoryMessageStoreFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/store/MemoryMessageStoreFactory.java index 476b2f127d..49f823e7ee 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/store/MemoryMessageStoreFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/store/MemoryMessageStoreFactory.java @@ -46,4 +46,8 @@ public class MemoryMessageStoreFactory implements MessageStoreFactory return Collections.emptyMap(); } + @Override + public void validateAttributes(Map<String, Object> attributes) + { + } } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStoreFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStoreFactory.java index 0f53d66435..1b111ad65e 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStoreFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStoreFactory.java @@ -23,6 +23,7 @@ package org.apache.qpid.server.store.derby; import java.util.Collections; import java.util.Map; import org.apache.commons.configuration.Configuration; +import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.plugin.MessageStoreFactory; import org.apache.qpid.server.store.MessageStore; @@ -47,4 +48,17 @@ public class DerbyMessageStoreFactory implements MessageStoreFactory return Collections.emptyMap(); } + + @Override + public void validateAttributes(Map<String, Object> attributes) + { + Object storePath = attributes.get(VirtualHost.STORE_PATH); + if(!(storePath instanceof String)) + { + throw new IllegalArgumentException("Attribute '"+ VirtualHost.STORE_PATH + +"' is required and must be of type String."); + + } + } + } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStore.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStore.java index 951ea28c20..f8d93536bb 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStore.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStore.java @@ -50,6 +50,7 @@ public class JDBCMessageStore extends AbstractJDBCMessageStore implements Messag public static final String TYPE = "JDBC"; + public static final String CONNECTION_URL = "connectionURL"; protected String _connectionURL; private ConnectionProvider _connectionProvider; @@ -280,9 +281,9 @@ public class JDBCMessageStore extends AbstractJDBCMessageStore implements Messag { - String connectionURL = virtualHost.getAttribute("connectionURL") == null + String connectionURL = virtualHost.getAttribute(CONNECTION_URL) == null ? String.valueOf(virtualHost.getAttribute(VirtualHost.STORE_PATH)) - : String.valueOf(virtualHost.getAttribute("connectionURL")); + : String.valueOf(virtualHost.getAttribute(CONNECTION_URL)); JDBCDetails details = null; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreFactory.java index 99ec4c7d32..82d2275156 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreFactory.java @@ -23,6 +23,7 @@ package org.apache.qpid.server.store.jdbc; import java.util.HashMap; import java.util.Map; import org.apache.commons.configuration.Configuration; +import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.plugin.MessageStoreFactory; import org.apache.qpid.server.store.MessageStore; @@ -62,4 +63,21 @@ public class JDBCMessageStoreFactory implements MessageStoreFactory return convertedMap; } + + @Override + public void validateAttributes(Map<String, Object> attributes) + { + Object connectionURL = attributes.get(JDBCMessageStore.CONNECTION_URL); + if(!(connectionURL instanceof String)) + { + Object storePath = attributes.get(VirtualHost.STORE_PATH); + if(!(storePath instanceof String)) + { + throw new IllegalArgumentException("Attribute '"+ JDBCMessageStore.CONNECTION_URL + +"' is required and must be of type String."); + + } + } + } + } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHostFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHostFactory.java index a0f22aa34c..2b4cc37814 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHostFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHostFactory.java @@ -58,8 +58,8 @@ public class StandardVirtualHostFactory implements VirtualHostFactory } - private static final String STORE_TYPE_ATTRIBUTE = org.apache.qpid.server.model.VirtualHost.STORE_TYPE; - private static final String STORE_PATH_ATTRIBUTE = org.apache.qpid.server.model.VirtualHost.STORE_PATH; + public static final String STORE_TYPE_ATTRIBUTE = org.apache.qpid.server.model.VirtualHost.STORE_TYPE; + public static final String STORE_PATH_ATTRIBUTE = org.apache.qpid.server.model.VirtualHost.STORE_PATH; @Override public void validateAttributes(Map<String, Object> attributes) @@ -82,16 +82,23 @@ public class StandardVirtualHostFactory implements VirtualHostFactory } + for(MessageStoreFactory factory : storeCreator.getFactories()) + { + if(factory.getType().equalsIgnoreCase((String)storeType)) + { + factory.validateAttributes(attributes); + } + } // TODO - each store type should validate its own attributes if(!((String) storeType).equalsIgnoreCase(MemoryMessageStore.TYPE)) { - Object storePath = attributes.get(STORE_PATH_ATTRIBUTE); + /* Object storePath = attributes.get(STORE_PATH_ATTRIBUTE); if(!(storePath instanceof String)) { throw new IllegalArgumentException("Attribute '"+ STORE_PATH_ATTRIBUTE +"' is required and must be of type String."); - } + }*/ } } |
