You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2013/02/23 21:22:23 UTC
svn commit: r1449403 - in /commons/proper/configuration/trunk/src:
main/java/org/apache/commons/configuration/HierarchicalINIConfiguration.java
test/java/org/apache/commons/configuration/TestHierarchicalINIConfiguration.java
Author: oheger
Date: Sat Feb 23 20:22:23 2013
New Revision: 1449403
URL: http://svn.apache.org/r1449403
Log:
HierarchicalINIConfiguration no longer extends AbstractHierarchicalFileConfiguration.
Modified:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/HierarchicalINIConfiguration.java
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestHierarchicalINIConfiguration.java
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/HierarchicalINIConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/HierarchicalINIConfiguration.java?rev=1449403&r1=1449402&r2=1449403&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/HierarchicalINIConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/HierarchicalINIConfiguration.java Sat Feb 23 20:22:23 2013
@@ -17,12 +17,10 @@
package org.apache.commons.configuration;
import java.io.BufferedReader;
-import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.Writer;
-import java.net.URL;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
@@ -202,7 +200,7 @@ import org.apache.commons.configuration.
* @since 1.6
*/
public class HierarchicalINIConfiguration extends
- AbstractHierarchicalFileConfiguration implements FileBasedConfiguration
+ BaseHierarchicalConfiguration implements FileBasedConfiguration
{
/**
* The characters that signal the start of a comment line.
@@ -243,38 +241,15 @@ public class HierarchicalINIConfiguratio
}
/**
- * Create and load the ini configuration from the given file.
+ * Creates a new instance of {@code HierarchicalINIConfiguration} with the
+ * content of the specified {@code HierarchicalConfiguration}.
*
- * @param filename The name pr path of the ini file to load.
- * @throws ConfigurationException If an error occurs while loading the file
+ * @param c the configuration to be copied
+ * @since 2.0
*/
- public HierarchicalINIConfiguration(String filename)
- throws ConfigurationException
+ public HierarchicalINIConfiguration(HierarchicalConfiguration c)
{
- super(filename);
- }
-
- /**
- * Create and load the ini configuration from the given file.
- *
- * @param file The ini file to load.
- * @throws ConfigurationException If an error occurs while loading the file
- */
- public HierarchicalINIConfiguration(File file)
- throws ConfigurationException
- {
- super(file);
- }
-
- /**
- * Create and load the ini configuration from the given url.
- *
- * @param url The url of the ini file to load.
- * @throws ConfigurationException If an error occurs while loading the file
- */
- public HierarchicalINIConfiguration(URL url) throws ConfigurationException
- {
- super(url);
+ super(c);
}
/**
@@ -283,8 +258,9 @@ public class HierarchicalINIConfiguratio
* @param writer - The writer to save the configuration to.
* @throws ConfigurationException If an error occurs while writing the
* configuration
+ * @throws IOException if an I/O error occurs
*/
- public void save(Writer writer) throws ConfigurationException
+ public void write(Writer writer) throws ConfigurationException, IOException
{
PrintWriter out = new PrintWriter(writer);
Iterator<String> it = getSections().iterator();
@@ -337,11 +313,6 @@ public class HierarchicalINIConfiguratio
out.flush();
}
- public void write(Writer out) throws ConfigurationException, IOException
- {
- save(out);
- }
-
/**
* Load the configuration from the given reader. Note that the
* {@code clear()} method is not called so the configuration read in will
@@ -350,63 +321,53 @@ public class HierarchicalINIConfiguratio
* @param reader The reader to read the configuration from.
* @throws ConfigurationException If an error occurs while reading the
* configuration
+ * @throws IOException if an I/O error occurs
*/
- public void load(Reader reader) throws ConfigurationException
+ public void read(Reader in) throws ConfigurationException, IOException
{
- try
- {
- BufferedReader bufferedReader = new BufferedReader(reader);
- ConfigurationNode sectionNode = getRootNode();
+ BufferedReader bufferedReader = new BufferedReader(in);
+ ConfigurationNode sectionNode = getRootNode();
- String line = bufferedReader.readLine();
- while (line != null)
+ String line = bufferedReader.readLine();
+ while (line != null)
+ {
+ line = line.trim();
+ if (!isCommentLine(line))
{
- line = line.trim();
- if (!isCommentLine(line))
+ if (isSectionLine(line))
{
- if (isSectionLine(line))
+ String section = line.substring(1, line.length() - 1);
+ sectionNode = getSectionNode(section);
+ }
+
+ else
+ {
+ String key = "";
+ String value = "";
+ int index = findSeparator(line);
+ if (index >= 0)
{
- String section = line.substring(1, line.length() - 1);
- sectionNode = getSectionNode(section);
+ key = line.substring(0, index);
+ value =
+ parseValue(line.substring(index + 1),
+ bufferedReader);
}
-
else
{
- String key = "";
- String value = "";
- int index = findSeparator(line);
- if (index >= 0)
- {
- key = line.substring(0, index);
- value = parseValue(line.substring(index + 1), bufferedReader);
- }
- else
- {
- key = line;
- }
- key = key.trim();
- if (key.length() < 1)
- {
- // use space for properties with no key
- key = " ";
- }
- createValueNodes(sectionNode, key, value);
+ key = line;
}
+ key = key.trim();
+ if (key.length() < 1)
+ {
+ // use space for properties with no key
+ key = " ";
+ }
+ createValueNodes(sectionNode, key, value);
}
-
- line = bufferedReader.readLine();
}
- }
- catch (IOException e)
- {
- throw new ConfigurationException(
- "Unable to load the configuration", e);
- }
- }
- public void read(Reader in) throws ConfigurationException, IOException
- {
- load(in);
+ line = bufferedReader.readLine();
+ }
}
/**
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestHierarchicalINIConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestHierarchicalINIConfiguration.java?rev=1449403&r1=1449402&r2=1449403&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestHierarchicalINIConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestHierarchicalINIConfiguration.java Sat Feb 23 20:22:23 2013
@@ -33,6 +33,8 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import org.apache.commons.configuration.builder.FileBasedBuilderParametersImpl;
+import org.apache.commons.configuration.builder.FileBasedConfigurationBuilder;
import org.junit.After;
import org.junit.Test;
@@ -140,7 +142,14 @@ public class TestHierarchicalINIConfigur
throws ConfigurationException
{
StringReader reader = new StringReader(data);
- instance.load(reader);
+ try
+ {
+ instance.read(reader);
+ }
+ catch (IOException e)
+ {
+ throw new ConfigurationException(e);
+ }
reader.close();
}
@@ -179,7 +188,7 @@ public class TestHierarchicalINIConfigur
instance.addProperty("section3.interpolated", "${section3.var1}");
instance.addProperty("section3.multi", "foo");
instance.addProperty("section3.multi", "bar");
- instance.save(writer);
+ instance.write(writer);
assertEquals("Wrong content of ini file", INI_DATA, writer.toString());
}
@@ -196,7 +205,14 @@ public class TestHierarchicalINIConfigur
{
HierarchicalINIConfiguration config = setUpConfig(content);
StringWriter writer = new StringWriter();
- config.save(writer);
+ try
+ {
+ config.write(writer);
+ }
+ catch (IOException e)
+ {
+ throw new ConfigurationException(e);
+ }
assertEquals("Wrong content of ini file", content, writer.toString());
}
@@ -239,38 +255,19 @@ public class TestHierarchicalINIConfigur
}
/**
- * Tests loading a configuration from a File.
- */
- @Test
- public void testLoadFile() throws ConfigurationException, IOException
- {
- writeTestFile(INI_DATA);
- HierarchicalINIConfiguration config = new HierarchicalINIConfiguration(
- TEST_FILE);
- checkContent(config);
- }
-
- /**
- * Tests loading a configuration from a file name.
- */
- @Test
- public void testLoadFileName() throws ConfigurationException, IOException
- {
- writeTestFile(INI_DATA);
- HierarchicalINIConfiguration config = new HierarchicalINIConfiguration(
- TEST_FILE.getAbsolutePath());
- checkContent(config);
- }
-
- /**
- * Tests loading a configuration from a URL.
+ * Tests whether an instance can be created using a file-based builder.
*/
@Test
- public void testLoadURL() throws ConfigurationException, IOException
+ public void testLoadFromBuilder() throws ConfigurationException,
+ IOException
{
writeTestFile(INI_DATA);
- HierarchicalINIConfiguration config = new HierarchicalINIConfiguration(
- TEST_FILE.toURI().toURL());
+ FileBasedConfigurationBuilder<HierarchicalINIConfiguration> builder =
+ new FileBasedConfigurationBuilder<HierarchicalINIConfiguration>(
+ HierarchicalINIConfiguration.class);
+ builder.configure(new FileBasedBuilderParametersImpl()
+ .setFile(TEST_FILE));
+ HierarchicalINIConfiguration config = builder.getConfiguration();
checkContent(config);
}
@@ -390,10 +387,10 @@ public class TestHierarchicalINIConfigur
config.setProperty("section.key1", "1;2;3");
StringWriter writer = new StringWriter();
- config.save(writer);
+ config.write(writer);
HierarchicalINIConfiguration config2 = new HierarchicalINIConfiguration();
- config2.load(new StringReader(writer.toString()));
+ config2.read(new StringReader(writer.toString()));
assertEquals("value", "1;2;3", config2.getString("section.key1"));
}
@@ -740,15 +737,16 @@ public class TestHierarchicalINIConfigur
* with delimiter characters. This test is related to CONFIGURATION-409.
*/
@Test
- public void testSaveKeysWithDelimiters() throws ConfigurationException
+ public void testSaveKeysWithDelimiters() throws ConfigurationException, IOException
{
HierarchicalINIConfiguration conf = new HierarchicalINIConfiguration();
final String section = "Section..with..dots";
conf.addProperty(section + ".test1", "test1");
conf.addProperty(section + ".test2", "test2");
- conf.save(TEST_FILE);
+ StringWriter writer = new StringWriter();
+ conf.write(writer);
conf = new HierarchicalINIConfiguration();
- conf.load(TEST_FILE);
+ conf.read(new StringReader(writer.toString()));
assertEquals("Wrong value (1)", "test1", conf.getString(section + ".test1"));
assertEquals("Wrong value (2)", "test2", conf.getString(section + ".test2"));
}
@@ -821,7 +819,7 @@ public class TestHierarchicalINIConfigur
* saved later.
*/
@Test
- public void testSaveClearedSection() throws ConfigurationException
+ public void testSaveClearedSection() throws ConfigurationException, IOException
{
final String data = "[section]\ntest = failed\n";
HierarchicalINIConfiguration config = setUpConfig(data);
@@ -830,7 +828,7 @@ public class TestHierarchicalINIConfigur
sub.clear();
sub.setProperty("test", "success");
StringWriter writer = new StringWriter();
- config.save(writer);
+ config.write(writer);
HierarchicalConfiguration config2 = setUpConfig(writer.toString());
assertEquals("Wrong value", "success",
config2.getString("section.test"));
@@ -840,7 +838,7 @@ public class TestHierarchicalINIConfigur
* Tests whether a duplicate session is merged.
*/
@Test
- public void testMergeDuplicateSection() throws ConfigurationException
+ public void testMergeDuplicateSection() throws ConfigurationException, IOException
{
final String data =
"[section]\nvar1 = sec1\n\n" + "[section]\nvar2 = sec2\n";
@@ -851,7 +849,7 @@ public class TestHierarchicalINIConfigur
assertEquals("Wrong sub value 1", "sec1", sub.getString("var1"));
assertEquals("Wrong sub value 2", "sec2", sub.getString("var2"));
StringWriter writer = new StringWriter();
- config.save(writer);
+ config.write(writer);
String content = writer.toString();
int pos = content.indexOf("[section]");
assertTrue("Section not found: " + content, pos >= 0);
@@ -865,7 +863,7 @@ public class TestHierarchicalINIConfigur
*/
@Test
public void testGetSectionNonExistingManipulate()
- throws ConfigurationException
+ throws ConfigurationException, IOException
{
HierarchicalINIConfiguration config = setUpConfig(INI_DATA);
SubnodeConfiguration section = config.getSection("newSection");
@@ -873,7 +871,7 @@ public class TestHierarchicalINIConfigur
assertEquals("Main config not updated", "success",
config.getString("newSection.test"));
StringWriter writer = new StringWriter();
- config.save(writer);
+ config.write(writer);
HierarchicalINIConfiguration config2 = setUpConfig(writer.toString());
section = config2.getSection("newSection");
assertEquals("Wrong value", "success", section.getString("test"));