Return-Path:
- * A Configuration implementation that reads the platform specific environment
- * variables. On pre java5 JRE it uses Ant Execute task to read the environment.
- * (in this case ant must be present in classpath). On java >= 5 JRE it uses
- *
- * This configuration implementation is read-only. It allows read access to the
- * defined OS environment variables, but their values cannot be changed.
- *
- * Usage of this class is easy: After an instance has been created the get
+ * A Configuration implementation that reads the platform specific
+ * environment variables using the map returned by {@link System#getenv()}. This configuration implementation is read-only. It allows read access to the
+ * defined OS environment variables, but their values cannot be changed. Any
+ * attempts to add or remove a property will throw an
+ * {@link UnsupportedOperationException} Usage of this class is easy: After an instance has been created the get
* methods provided by the java.lang.System#getenv()
and ant is not required.
- * Configuration
interface can be used
- * for querying environment variables, e.g.:
+ * for querying environment variables, e.g.:
* Configuration envConfig = new EnvironmentConfiguration();
* System.out.println("JAVA_HOME=" + envConfig.getString("JAVA_HOME");
*
*
- *
property=value
. Such a collection is returned by ant.
- *
- * @param env the collection with the properties
- */
- void extractPropertiesFromCollection(Collection env)
- {
- environment = new HashMap();
- for (Iterator it = env.iterator(); it.hasNext();)
- {
- String entry = (String) it.next();
- int pos = entry.indexOf('=');
- if (pos == -1)
- {
- getLogger().warn("Ignoring: " + entry);
- }
- else
- {
- environment.put(entry.substring(0, pos), entry
- .substring(pos + 1));
- }
- }
- }
-
- /**
- * Extracts environment properties on a JR >= 1.5. From this Java version
- * on, there is an official way of doing this. However because the code
- * should compile on lower Java versions, too, we have to invoke the method
- * using reflection.
- */
- void extractProperties15()
- {
- try
- {
- Method method = System.class.getMethod(METHOD_NAME, null);
- environment = (Map) method.invoke(null, null);
- }
- catch (Exception ex)
- {
- // this should normally not happen on a JRE >= 1.5
- throw new ConfigurationRuntimeException(
- "Error when accessing environment properties", ex);
- }
+ throw new UnsupportedOperationException("EnvironmentConfiguration is read-only!");
}
}
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationBasicFeatures.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationBasicFeatures.java?rev=1187398&r1=1187397&r2=1187398&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationBasicFeatures.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationBasicFeatures.java Fri Oct 21 15:22:59 2011
@@ -267,7 +267,7 @@ public class TestAbstractConfigurationBa
{
String key = (String) it.next();
String propKey = "envtest." + key;
- env.put(propKey, envConfig.getProperty(key));
+ env.put(propKey, envConfig.getString(key));
config.addProperty(propKey, "${env:" + key + "}");
}
assertFalse("No environment properties", env.isEmpty());
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestEnvironmentConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestEnvironmentConfiguration.java?rev=1187398&r1=1187397&r2=1187398&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestEnvironmentConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestEnvironmentConfiguration.java Fri Oct 21 15:22:59 2011
@@ -14,13 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.apache.commons.configuration;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
import java.util.Iterator;
-import java.util.Map;
import junit.framework.TestCase;
@@ -42,11 +39,10 @@ public class TestEnvironmentConfiguratio
}
/**
- * Helper method for checking that the configuration contains some
- * environment properties. (We expect that at least some properties are set
- * in each environment.)
+ * Tests whether a newly created configuration contains some properties. (We
+ * expect that at least some properties are set in each environment.)
*/
- private void checkProperties()
+ public void testInit()
{
boolean found = false;
assertFalse("No properties found", config.isEmpty());
@@ -61,58 +57,6 @@ public class TestEnvironmentConfiguratio
}
/**
- * Tests whether a newly created configuration contains some properties. (We
- * expect that at least some properties are set in each environment.)
- */
- public void testInit()
- {
- checkProperties();
- }
-
- /**
- * Tests extracting properties for JDK before 1.5. This method should work
- * on later JDKs, too, so we can test it always.
- */
- public void testExtractProperties14()
- {
- config.extractProperties14();
- checkProperties();
- }
-
- /**
- * Tests whether a collection with properties is correctly processed.
- */
- public void testExtractPropertiesFromCollection()
- {
- final int count = 8;
- final String prop = "property";
- final String value = "value";
-
- Collection env = new ArrayList(count);
- for (int i = 0; i < count; i++)
- {
- env.add(prop + i + "=" + value + i);
- }
- env.add("irregularProperty");
- config.extractPropertiesFromCollection(env);
-
- Map props = new HashMap();
- for (Iterator it = config.getKeys(); it.hasNext();)
- {
- String key = (String) it.next();
- props.put(key, config.getString(key));
- }
- assertEquals("Wrong number of properties", count, props.size());
- for (int i = 0; i < count; i++)
- {
- assertEquals("Wrong value for property " + i, value + i, props
- .get(prop + i));
- }
- assertFalse("Irregular property found", config
- .containsKey("irregularProperty"));
- }
-
- /**
* Tests removing properties. This should not be possible.
*/
public void testClearProperty()