summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2013-07-05 20:59:00 +0000
committerRobert Godfrey <rgodfrey@apache.org>2013-07-05 20:59:00 +0000
commit79e8440bdaac4a4dd764ace6b81cd300717c7d67 (patch)
tree72be60d2fdd1e78dd4b7d707ac78befddf5efec0 /qpid/java/broker/src
parent88c521cc70189673c259cbccd2f7ea7732a8588a (diff)
downloadqpid-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')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/MessageStoreFactory.java1
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/store/MemoryMessageStoreFactory.java4
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/store/derby/DerbyMessageStoreFactory.java14
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStore.java5
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/store/jdbc/JDBCMessageStoreFactory.java18
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHostFactory.java15
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.");
- }
+ }*/
}
}