Emmanuel Bourg
Index: src/java/org/apache/commons/configuration/ConfigurationFactory.java
===================================================================
RCS file:
/home/cvspublic/jakarta-commons/configuration/src/java/org/apache/commons/configuration/ConfigurationFactory.java,v
retrieving revision 1.9
diff -u -r1.9 ConfigurationFactory.java
--- src/java/org/apache/commons/configuration/ConfigurationFactory.java 8 Mar 2004
23:27:09 -0000 1.9
+++ src/java/org/apache/commons/configuration/ConfigurationFactory.java 31 Mar 2004
12:57:46 -0000
@@ -101,7 +101,7 @@
* different types of configuration, currently Properties, XML and JNDI.
*
* @return A Configuration object
- * @throws Exception A generic exception that we had trouble during the
+ * @throws ConfigurationException A generic exception that we had trouble during
the
* loading of the configuration data.
*/
public Configuration getConfiguration() throws ConfigurationException
@@ -256,24 +256,34 @@
new BasePathConfigurationFactory(PropertiesConfiguration.class),
METH_LOAD,
additional);
+
setupDigesterInstance(
digester,
matchString + "dom4j",
new BasePathConfigurationFactory(DOM4JConfiguration.class),
METH_LOAD,
additional);
+
setupDigesterInstance(
digester,
matchString + "hierarchicalDom4j",
new
BasePathConfigurationFactory(HierarchicalDOM4JConfiguration.class),
METH_LOAD,
additional);
+
setupDigesterInstance(
digester,
matchString + "jndi",
new JNDIConfigurationFactory(),
null,
additional);
+
+ setupDigesterInstance(
+ digester,
+ matchString + "system",
+ new SystemConfigurationFactory(),
+ null,
+ additional);
}
/**
@@ -396,7 +406,6 @@
*/
public class DigesterConfigurationFactory
extends AbstractObjectCreationFactory
- implements ObjectCreationFactory
{
/** Actual class to use. */
private Class clazz;
@@ -471,6 +480,16 @@
public JNDIConfigurationFactory()
{
super(JNDIConfiguration.class);
+ }
+ }
+
+ /**
+ * An object factory to let the digester construct system configurations.
+ */
+ protected class SystemConfigurationFactory extends AbstractObjectCreationFactory
+ {
+ public Object createObject(Attributes attribs) throws Exception {
+ return ConfigurationConverter.getConfiguration(System.getProperties());
}
}
Index: src/test/org/apache/commons/configuration/TestConfigurationFactory.java
===================================================================
RCS file:
/home/cvspublic/jakarta-commons/configuration/src/test/org/apache/commons/configuration/TestConfigurationFactory.java,v
retrieving revision 1.9
diff -u -r1.9 TestConfigurationFactory.java
--- src/test/org/apache/commons/configuration/TestConfigurationFactory.java 27 Feb
2004 17:41:34 -0000 1.9
+++ src/test/org/apache/commons/configuration/TestConfigurationFactory.java 31 Mar
2004 12:57:47 -0000
@@ -65,8 +65,8 @@
Object o = jndiConfiguration.getProperty("test.boolean");
assertNotNull(o);
assertEquals("true",o.toString());
-
}
+
public void testLoadingConfiguration() throws Exception
{
configurationFactory.setConfigurationFileName(
@@ -184,6 +184,17 @@
//configurationFactory.setDigesterRuleNamespaceURI("namespace-one");
checkCompositeConfiguration();
+ }
+
+ public void testLoadingConfigurationSystem() throws Exception
+ {
+
configurationFactory.setConfigurationFileName("conf/testDigesterConfigurationSystem.xml");
+ Configuration configuration = configurationFactory.getConfiguration();
+
+ System.setProperty("test.system", "value");
+
+ assertNotNull("null configuration");
+ assertEquals("'test.system' system property", "value",
configuration.getProperty("test.system"));
}
public void testLoadingAdditional() throws Exception
<?xml version="1.0"?> <configuration> <system/> </configuration>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
