summaryrefslogtreecommitdiff
path: root/java/newclient/src/main/java/org/apache/qpid/nclient/config/ClientConfiguration.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/newclient/src/main/java/org/apache/qpid/nclient/config/ClientConfiguration.java')
-rw-r--r--java/newclient/src/main/java/org/apache/qpid/nclient/config/ClientConfiguration.java84
1 files changed, 84 insertions, 0 deletions
diff --git a/java/newclient/src/main/java/org/apache/qpid/nclient/config/ClientConfiguration.java b/java/newclient/src/main/java/org/apache/qpid/nclient/config/ClientConfiguration.java
new file mode 100644
index 0000000000..1c3bb788a0
--- /dev/null
+++ b/java/newclient/src/main/java/org/apache/qpid/nclient/config/ClientConfiguration.java
@@ -0,0 +1,84 @@
+package org.apache.qpid.nclient.config;
+
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.commons.configuration.CombinedConfiguration;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.SystemConfiguration;
+import org.apache.commons.configuration.XMLConfiguration;
+import org.apache.log4j.Logger;
+import org.apache.qpid.nclient.core.QpidConstants;
+
+/**
+ * Loads a properties file from classpath.
+ * These values can be overwritten using system properties
+ */
+public class ClientConfiguration extends CombinedConfiguration {
+
+ private static final Logger _logger = Logger.getLogger(ClientConfiguration.class);
+ private static ClientConfiguration _instance = new ClientConfiguration();
+
+ ClientConfiguration()
+ {
+ super();
+ addConfiguration(new SystemConfiguration());
+ try
+ {
+ XMLConfiguration config = new XMLConfiguration();
+ config.load(getInputStream());
+ addConfiguration(config);
+ }
+ catch (ConfigurationException e)
+ {
+ _logger.warn("Client Properties missing, using defaults",e);
+ }
+ }
+
+ public static ClientConfiguration get()
+ {
+ return _instance;
+ }
+
+ private InputStream getInputStream()
+ {
+ if (System.getProperty(QpidConstants.CONFIG_FILE_PATH) != null)
+ {
+ try
+ {
+ return new FileInputStream((String)System.getProperty(QpidConstants.CONFIG_FILE_PATH));
+ }
+ catch(Exception e)
+ {
+ return this.getClass().getResourceAsStream("client.xml");
+ }
+ }
+ else
+ {
+ return this.getClass().getResourceAsStream("client.xml");
+ }
+
+ }
+
+ public static void main(String[] args)
+ {
+ System.out.println(ClientConfiguration.get().getString(QpidConstants.USE_SHARED_READ_WRITE_POOL));
+
+ //System.out.println(ClientConfiguration.get().getString("methodListeners.methodListener(1).[@class]"));
+ int count = ClientConfiguration.get().getMaxIndex(QpidConstants.METHOD_LISTENERS + "." + QpidConstants.METHOD_LISTENER);
+ System.out.println(count);
+
+ for(int i=0 ;i<count;i++)
+ {
+ String methodListener = QpidConstants.METHOD_LISTENERS + "." + QpidConstants.METHOD_LISTENER + "(" + i + ")";
+ System.out.println("\n\n"+ClientConfiguration.get().getString(methodListener + QpidConstants.CLASS));
+ List<String> list = ClientConfiguration.get().getList(methodListener + "." + QpidConstants.METHOD_CLASS);
+ for(String s:list)
+ {
+ System.out.println(s);
+ }
+ }
+ }
+}