You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2019/08/18 15:16:04 UTC
[commons-configuration] branch master updated: [CONFIGURATION-752]
Update Apache Commons VFS from 2.3 to 2.4.1.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-configuration.git
The following commit(s) were added to refs/heads/master by this push:
new f766d10 [CONFIGURATION-752] Update Apache Commons VFS from 2.3 to 2.4.1.
f766d10 is described below
commit f766d101e8e2e1773c39aad70cf159421432c221
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Aug 18 08:15:59 2019 -0700
[CONFIGURATION-752] Update Apache Commons VFS from 2.3 to 2.4.1.
---
pom.xml | 1804 ++++++++---------
src/changes/changes.xml | 5074 +++++++++++++++++++++++------------------------
2 files changed, 3439 insertions(+), 3439 deletions(-)
diff --git a/pom.xml b/pom.xml
index d4dae85..6e7bbdb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,902 +1,902 @@
-<?xml version="1.0"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<!-- ===================================================================== -->
-<!-- $Id$ -->
-<!-- ===================================================================== -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-parent</artifactId>
- <version>48</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>commons-configuration2</artifactId>
- <version>2.6-SNAPSHOT</version>
- <name>Apache Commons Configuration</name>
-
- <inceptionYear>2001</inceptionYear>
- <description>
- Tools to assist in the reading of configuration/preferences files in
- various formats
- </description>
-
- <url>https://commons.apache.org/proper/commons-configuration/</url>
-
- <issueManagement>
- <system>jira</system>
- <url>https://issues.apache.org/jira/browse/CONFIGURATION</url>
- </issueManagement>
-
- <ciManagement>
- <system>jenkins</system>
- <url>https://builds.apache.org/job/Commons-configuration/</url>
- </ciManagement>
-
- <scm>
- <connection>scm:git:https://gitbox.apache.org/repos/asf/commons-configuration.git</connection>
- <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/commons-configuration.git</developerConnection>
- <url>https://gitbox.apache.org/repos/asf?p=commons-configuration.git</url>
- </scm>
-
- <distributionManagement>
- <site>
- <id>apache.website</id>
- <url>scm:svn:https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-configuration/</url>
- </site>
- </distributionManagement>
-
- <developers>
- <developer>
- <name>Daniel Rall</name>
- <id>dlr</id>
- <email>dlr@finemaltcoding.com</email>
- <organization>CollabNet, Inc.</organization>
- <roles>
- <role>Java Developer</role>
- </roles>
- </developer>
-
- <developer>
- <name>Jason van Zyl</name>
- <id>jvanzyl</id>
- <email>jason@zenplex.com</email>
- <organization>Zenplex</organization>
- <roles>
- <role>Java Developer</role>
- </roles>
- </developer>
-
- <developer>
- <name>Martin Poeschl</name>
- <id>mpoeschl</id>
- <email>mpoeschl@marmot.at</email>
- <organization>tucana.at</organization>
- <roles>
- <role>Java Developer</role>
- </roles>
- </developer>
-
- <developer>
- <name>dIon Gillard</name>
- <id>dion</id>
- <email>dion@multitask.com.au</email>
- <organization>Multitask Consulting</organization>
- <roles>
- <role>Java Developer</role>
- </roles>
- </developer>
-
- <developer>
- <name>Henning P. Schmiedehausen</name>
- <id>henning</id>
- <email>hps@intermeta.de</email>
- <organization>INTERMETA - Gesellschaft fuer Mehrwertdienste mbH</organization>
- <timezone>2</timezone>
- <roles>
- <role>Java Developer</role>
- </roles>
- </developer>
-
- <developer>
- <name>Eric Pugh</name>
- <id>epugh</id>
- <email>epugh@upstate.com</email>
- <organization>upstate.com</organization>
- <roles>
- <role>Java Developer</role>
- </roles>
- </developer>
-
- <developer>
- <name>Brian E. Dunbar</name>
- <id>bdunbar</id>
- <email>bdunbar@dunbarconsulting.org</email>
- <organization>dunbarconsulting.org</organization>
- <roles>
- <role>Java Developer</role>
- </roles>
- </developer>
-
- <developer>
- <name>Emmanuel Bourg</name>
- <id>ebourg</id>
- <email>ebourg@apache.org</email>
- <organization>Ariane Software</organization>
- <timezone>+1</timezone>
- <roles>
- <role>Java Developer</role>
- </roles>
- </developer>
-
- <developer>
- <name>Oliver Heger</name>
- <id>oheger</id>
- <email>oheger@apache.org</email>
- <organization>Bosch Software Innovations</organization>
- <timezone>+1</timezone>
- <roles>
- <role>Java Developer</role>
- </roles>
- </developer>
-
- <developer>
- <name>Jörg Schaible</name>
- <id>joehni</id>
- <email>joerg.schaible@gmx.de</email>
- <timezone>+1</timezone>
- <roles>
- <role>Java Developer</role>
- </roles>
- </developer>
-
- <developer>
- <name>Ralph Goers</name>
- <id>rgoers</id>
- <email>rgoers@apache.org</email>
- <organization>Intuit</organization>
- <timezone>-8</timezone>
- <roles>
- <role>Java Developer</role>
- </roles>
- </developer>
-
- <developer>
- <name>Gary Gregory</name>
- <id>ggregory</id>
- <email>ggregory@apache.org</email>
- <organization>Rocket Software</organization>
- <timezone>-6</timezone>
- <roles>
- <role>Java Developer</role>
- </roles>
- </developer>
-
- <developer>
- <name>Claude Warren</name>
- <id>claudenw</id>
- <email>claude@apache.org</email>
- <timezone>0</timezone>
- <roles>
- <role>Java Developer</role>
- </roles>
- </developer>
-
- <developer>
- <name>Rob Tompkins</name>
- <id>chtompki</id>
- <email>chtompki@apache.org</email>
- <timezone>-4</timezone>
- <roles>
- <role>Java Developer</role>
- </roles>
- </developer>
- </developers>
-
- <contributors>
- <contributor>
- <name>Konstantin Shaposhnikov</name>
- <email>ksh@scand.com</email>
- <organization>scand.com</organization>
- </contributor>
-
- <contributor>
- <name>Jamie M. Guillemette</name>
- <email>JMGuillemette@gmail.com</email>
- <organization>TD Bank</organization>
- </contributor>
-
- <contributor>
- <name>Jorge Ferrer</name>
- <email>jorge.ferrer@gmail.com</email>
- <organization></organization>
- </contributor>
-
- <contributor>
- <name>Gabriele Garuglieri</name>
- <email>gabriele.garuglieri@infoblu.it</email>
- <organization>Infoblu S.p.A</organization>
- </contributor>
-
- <contributor>
- <name>Nicolas De Loof</name>
- <email>nicolas.deloof@gmail.com</email>
- <organization>Cap Gemini</organization>
- </contributor>
-
- <contributor>
- <name>Oliver Kopp</name>
- <email>koppdev@gmail.com</email>
- </contributor>
-
- <contributor>
- <name>Dennis Kieselhorst</name>
- <email>deki@apache.org</email>
- <organization>IRIAN Deutschland</organization>
- </contributor>
-
- <contributor>
- <name>Raviteja Lokineni</name>
- <email>raviteja.lokineni@gmail.com</email>
- </contributor>
-
- <contributor>
- <name>Vincent Maurin</name>
- <email>vincent.maurin.fr@gmail.com</email>
- <organization>glispa GmbH</organization>
- </contributor>
-
- <contributor>
- <name>The Alchemist</name>
- <email>kap4020@gmail.com</email>
- </contributor>
-
- <contributor>
- <name>Pascal Essiembre</name>
- <email>pascal.essiembre@norconex.com</email>
- <organization>Norconex Inc.</organization>
- <organizationUrl>https://www.norconex.com</organizationUrl>
- <roles>
- <role>developer</role>
- </roles>
- <timezone>-4</timezone>
- </contributor>
-
- <contributor>
- <name>Patrick Schmidt</name>
- <email>patrick.schmidt@codecamp.de</email>
- </contributor>
- </contributors>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <version>3.9</version>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-text</artifactId>
- <version>1.7</version>
- </dependency>
-
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>1.2</version>
- <exclusions>
- <exclusion>
- <groupId>logkit</groupId>
- <artifactId>logkit</artifactId>
- </exclusion>
- <exclusion>
- <groupId>avalon-framework</groupId>
- <artifactId>avalon-framework</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>commons-beanutils</groupId>
- <artifactId>commons-beanutils</artifactId>
- <version>1.9.3</version>
- <optional>true</optional>
- </dependency>
-
- <dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- <version>1.12</version>
- <optional>true</optional>
- </dependency>
-
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-jexl</artifactId>
- <version>2.1.1</version>
- <optional>true</optional>
- </dependency>
-
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-vfs2</artifactId>
- <version>2.4</version>
- <optional>true</optional>
- </dependency>
-
- <dependency>
- <groupId>commons-jxpath</groupId>
- <artifactId>commons-jxpath</artifactId>
- <version>1.3</version>
- <optional>true</optional>
- <exclusions>
- <exclusion>
- <groupId>xerces</groupId>
- <artifactId>xerces</artifactId>
- </exclusion>
- <exclusion>
- <groupId>ant</groupId>
- <artifactId>ant-optional</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>xml-resolver</groupId>
- <artifactId>xml-resolver</artifactId>
- <version>1.2</version>
- <optional>true</optional>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>${spring.version}</version>
- <optional>true</optional>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- <version>${spring.version}</version>
- <optional>true</optional>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>${spring.version}</version>
- <optional>true</optional>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>${spring.version}</version>
- <optional>true</optional>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.4</version>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.yaml</groupId>
- <artifactId>snakeyaml</artifactId>
- <version>1.24</version>
- <optional>true</optional>
- </dependency>
-
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.9.9</version>
- <optional>true</optional>
- </dependency>
-
- <!-- Needed for testing -->
-
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-dbcp2</artifactId>
- <version>2.6.0</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-pool2</artifactId>
- <version>2.6.2</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.hsqldb</groupId>
- <artifactId>hsqldb</artifactId>
- <version>2.4.1</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.dbunit</groupId>
- <artifactId>dbunit</artifactId>
- <version>2.6.0</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.12</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>junit-addons</groupId>
- <artifactId>junit-addons</artifactId>
- <version>1.4</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>xerces</groupId>
- <artifactId>xmlParserAPIs</artifactId>
- </exclusion>
- <exclusion>
- <groupId>xerces</groupId>
- <artifactId>xercesImpl</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>mockobjects</groupId>
- <artifactId>mockobjects-core</artifactId>
- <version>0.09</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>mockobjects</groupId>
- <artifactId>mockobjects-jdk1.4-j2ee1.3</artifactId>
- <version>0.09</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.easymock</groupId>
- <artifactId>easymock</artifactId>
- <version>4.0.2</version>
- <scope>test</scope>
- </dependency>
-
- <!-- javax.mail only contains the API, no impl. -->
- <dependency>
- <groupId>com.sun.mail</groupId>
- <artifactId>mailapi</artifactId>
- <version>1.6.3</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.17</version>
- <optional>true</optional>
- </dependency>
-
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>${slf4j.version}</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-ext</artifactId>
- <version>${slf4j.version}</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>${slf4j.version}</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-nop</artifactId>
- <version>${slf4j.version}</version>
- <scope>test</scope>
- </dependency>
-
- </dependencies>
-
- <properties>
- <commons.componentid>configuration</commons.componentid>
- <commons.module.name>org.apache.commons.configuration2</commons.module.name>
- <commons.release.version>2.6</commons.release.version>
- <commons.release.desc>(reworked 2.x version)</commons.release.desc>
- <commons.release.2.name>commons-configuration-${commons.release.2.version}</commons.release.2.name>
- <commons.release.2.version>1.10</commons.release.2.version>
- <commons.release.2.desc>(old 1.x version)</commons.release.2.desc>
- <commons.jira.id>CONFIGURATION</commons.jira.id>
- <commons.jira.pid>12310467</commons.jira.pid>
- <maven.compiler.source>1.8</maven.compiler.source>
- <maven.compiler.target>1.8</maven.compiler.target>
-
- <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-configuration</commons.scmPubUrl>
-
- <!-- Explicitly declare optional dependencies for the OSGi manifest. -->
- <commons.osgi.import>
- org.apache.commons.beanutils.*;resolution:=optional,
- org.apache.commons.codec.*;resolution:=optional,
- org.apache.commons.jxpath.*;resolution:=optional,
- org.apache.xml.resolver.*;resolution:=optional,
- javax.servlet.*;resolution:=optional,
- org.apache.commons.jexl2.*;resolution:=optional,
- org.apache.commons.vfs2.*;resolution:=optional,
- org.springframework.*;resolution:=optional,
- com.fasterxml.jackson.*;resolution:=optional,
- org.yaml.snakeyaml.*;resolution:=optional,
- *
- </commons.osgi.import>
- <slf4j.version>1.7.26</slf4j.version>
- <spring.version>4.3.24.RELEASE</spring.version>
-
- <!-- generate report even if there are binary incompatible changes -->
- <commons.japicmp.breakBuildOnBinaryIncompatibleModifications>false</commons.japicmp.breakBuildOnBinaryIncompatibleModifications>
- <commons.japicmp.version>0.14.1</commons.japicmp.version>
- <japicmp.skip>false</japicmp.skip>
- <commons.jacoco.version>0.8.4</commons.jacoco.version>
-
- <!-- Commons Release Plugin -->
- <commons.bc.version>2.5</commons.bc.version>
- <commons.rc.version>RC1</commons.rc.version>
- <commons.release.isDistModule>true</commons.release.isDistModule>
- <commons.distSvnStagingUrl>scm:svn:https://dist.apache.org/repos/dist/dev/commons/${commons.componentid}</commons.distSvnStagingUrl>
- <commons.releaseManagerName>Gary Gregory</commons.releaseManagerName>
- <commons.releaseManagerKey>86fdc7e2a11262cb</commons.releaseManagerKey>
- </properties>
-
- <build>
- <testResources>
- <testResource>
- <directory>src/test/resources</directory>
- </testResource>
- <testResource>
- <directory>src/main/resources</directory>
- <includes>
- <include>*.dtd</include>
- </includes>
- </testResource>
- <!-- hack to ensure the N&L appear in jars -->
- <testResource>
- <directory>${basedir}</directory>
- <targetPath>META-INF</targetPath>
- <includes>
- <include>NOTICE.txt</include>
- <include>LICENSE.txt</include>
- </includes>
- </testResource>
- </testResources>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-scm-publish-plugin</artifactId>
- <configuration>
- <ignorePathsToDelete>
- <ignorePathToDelete>javadocs</ignorePathToDelete>
- </ignorePathsToDelete>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <version>3.0.0</version>
- <configuration>
- <configLocation>${basedir}/conf/checkstyle.xml</configLocation>
- <suppressionsLocation>${basedir}/conf/checkstyle-suppressions.xml</suppressionsLocation>
- <enableRulesSummary>false</enableRulesSummary>
- <propertyExpansion>basedir=${basedir}</propertyExpansion>
- <includeResources>false</includeResources>
- <includeTestResources>false</includeTestResources>
- <failOnViolation>false</failOnViolation>
- <sourceDirectories>
- <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
- </sourceDirectories>
- <excludes>**/org/apache/commons/configuration2/plist/*.java</excludes>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <!-- Uncomment to enable profiling unit tests -->
- <!-- <argLine>-agentpath:"${yourkit.home}/bin/mac/libyjpagent.jnilib"</argLine> -->
- <forkMode>once</forkMode>
- <excludes>
- <exclude>**/TestWebdavConfigurationBuilder.java</exclude>
- </excludes>
- <systemPropertyVariables>
- <java.awt.headless>true</java.awt.headless>
- <org.apache.commons.logging.Log>org.apache.commons.configuration2.Logging</org.apache.commons.logging.Log>
- </systemPropertyVariables>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <configuration>
- <descriptors>
- <descriptor>src/main/assembly/bin.xml</descriptor>
- <descriptor>src/main/assembly/src.xml</descriptor>
- </descriptors>
- <tarLongFileMode>gnu</tarLongFileMode>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>javacc-maven-plugin</artifactId>
- <version>2.6</version>
- <executions>
- <execution>
- <id>javacc</id>
- <goals>
- <goal>javacc</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <!-- Uncomment to instrument with Clover
- <plugin>
- <groupId>com.atlassian.maven.plugins</groupId>
- <artifactId>maven-clover2-plugin</artifactId>
- <version>2.4.2</version>
- <configuration>
- <jdk>1.4</jdk>
- </configuration>
- <executions>
- <execution>
- <phase>pre-site</phase>
- <goals>
- <goal>instrument</goal>
- </goals>
- </execution>
- </executions>
- </plugin> -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>check</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>test-jar</goal>
- </goals>
- </execution>
- </executions>
- <!-- Temporary fix, remove this after this has implemented in parent pom -->
- <configuration>
- <archive combine.children="append">
- <manifestEntries>
- <Automatic-Module-Name>org.apache.commons.configuration2</Automatic-Module-Name>
- </manifestEntries>
- </archive>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>src/java/org/apache/commons/configuration2/plist/*.java</exclude>
- <exclude>velocity.log</exclude>
- <exclude>src/test/resources/test.json</exclude>
- <exclude>src/test/resources/test.yaml</exclude>
- </excludes>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-javadoc-plugin</artifactId>
- <configuration>
- <!--
- The below setting for not failing upon error stems from the fact that javacc's generated
- code.
-
- Javacc is responsible for a portion of the code in the package org.apache.commons.configuration2.plist,
- and only generates a portion of the package. Furthermore, the javacc parser generator
- generates javadoc that does not conform to the java 1.8 standard and causes the build to fail. For the
- sake of releasing commons-configuration-2.4.
- -->
- <failOnError>false</failOnError>
- <links>
- <link>https://docs.oracle.com/javase/8/docs/api/</link>
- <link>https://docs.spring.io/spring/docs/${spring.version}/javadoc-api/</link>
- </links>
- </configuration>
- </plugin>
- </plugins>
-
- </build>
- <profiles>
- <profile>
- <id>webdav</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- </activation>
- <dependencies>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>jackrabbit-webdav</artifactId>
- <version>1.5.2</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <forkMode>once</forkMode>
- <systemPropertyVariables>
- <java.awt.headless>true</java.awt.headless>
- <test.webdav.base>${test.webdav.base}</test.webdav.base>
- </systemPropertyVariables>
- <includes>
- <include>**/TestWebdavConfigurationBuilder.java</include>
- </includes>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>java9</id>
- <activation>
- <jdk>9</jdk>
- </activation>
- <properties>
- <!-- coverall version 4.3.0 does not work with java 9, see https://github.com/trautonen/coveralls-maven-plugin/issues/112 -->
- <coveralls.skip>true</coveralls.skip>
- </properties>
- </profile>
- <!-- Uncomment this and set the path accordingly to enable YourKit -->
- <!-- http://www.yourkit.com/docs/80/help/agent.jsp -->
- <!-- <profile>
- <id>yourkit-profile</id>
- <properties>
- <yourkit.home>/Applications/YourKit_Java_Profiler_8.0.17.app/</yourkit.home>
- </properties>
- </profile> -->
- </profiles>
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-changes-plugin</artifactId>
- <version>${commons.changes.version}</version>
- <configuration>
- <xmlPath>${basedir}/src/changes/changes.xml</xmlPath>
- <issueLinkTemplate>%URL%/%ISSUE%</issueLinkTemplate>
- </configuration>
- <reportSets>
- <reportSet>
- <reports>
- <report>changes-report</report>
- </reports>
- </reportSet>
- </reportSets>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <reportSets>
- <reportSet>
- <reports>
- <report>checkstyle</report>
- </reports>
- </reportSet>
- </reportSets>
- </plugin>
- <plugin>
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>src/java/org/apache/commons/configuration2/plist/*.java</exclude>
- <exclude>velocity.log</exclude>
- <exclude>src/test/resources/test.json</exclude>
- <exclude>src/test/resources/test.yaml</exclude>
- </excludes>
- </configuration>
- </plugin>
- <plugin>
- <groupId>com.github.spotbugs</groupId>
- <artifactId>spotbugs-maven-plugin</artifactId>
- <version>${commons.spotbugs.version}</version>
- <configuration>
- <threshold>Normal</threshold>
- <effort>Default</effort>
- <excludeFilterFile>${basedir}/conf/findbugs-exclude-filter.xml</excludeFilterFile>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.jacoco</groupId>
- <artifactId>jacoco-maven-plugin</artifactId>
- </plugin>
- <plugin>
- <artifactId>maven-javadoc-plugin</artifactId>
- <reportSets>
- <reportSet>
- <reports>
- <report>javadoc</report>
- </reports>
- <configuration>
- <!--
- The below setting for not failing upon error stems from the fact that javacc's generated
- code.
-
- Javacc is responsible for a portion of the code in the package org.apache.commons.configuration2.plist,
- and only generates a portion of the package. Furthermore, the javacc parser generator
- generates javadoc that does not conform to the java 1.8 standard and causes the build to fail. For the
- sake of releasing commons-configuration-2.4.
- -->
- <failOnError>false</failOnError>
- <links>
- <link>https://docs.oracle.com/javase/8/docs/api/</link>
- <link>https://docs.spring.io/spring/docs/${spring.version}/javadoc-api/</link>
- </links>
- <!-- Disable Doclint since the Javadoc in the generated code does not comply. -->
- <doclint>none</doclint>
- </configuration>
- </reportSet>
- </reportSets>
- <configuration>
- <failOnError>false</failOnError>
- <links>
- <link>https://docs.oracle.com/javase/8/docs/api/</link>
- <link>https://docs.spring.io/spring/docs/${spring.version}/javadoc-api/</link>
- </links>
- </configuration>
- </plugin>
- </plugins>
- </reporting>
-
-</project>
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!-- ===================================================================== -->
+<!-- $Id$ -->
+<!-- ===================================================================== -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-parent</artifactId>
+ <version>48</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>commons-configuration2</artifactId>
+ <version>2.6-SNAPSHOT</version>
+ <name>Apache Commons Configuration</name>
+
+ <inceptionYear>2001</inceptionYear>
+ <description>
+ Tools to assist in the reading of configuration/preferences files in
+ various formats
+ </description>
+
+ <url>https://commons.apache.org/proper/commons-configuration/</url>
+
+ <issueManagement>
+ <system>jira</system>
+ <url>https://issues.apache.org/jira/browse/CONFIGURATION</url>
+ </issueManagement>
+
+ <ciManagement>
+ <system>jenkins</system>
+ <url>https://builds.apache.org/job/Commons-configuration/</url>
+ </ciManagement>
+
+ <scm>
+ <connection>scm:git:https://gitbox.apache.org/repos/asf/commons-configuration.git</connection>
+ <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/commons-configuration.git</developerConnection>
+ <url>https://gitbox.apache.org/repos/asf?p=commons-configuration.git</url>
+ </scm>
+
+ <distributionManagement>
+ <site>
+ <id>apache.website</id>
+ <url>scm:svn:https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-configuration/</url>
+ </site>
+ </distributionManagement>
+
+ <developers>
+ <developer>
+ <name>Daniel Rall</name>
+ <id>dlr</id>
+ <email>dlr@finemaltcoding.com</email>
+ <organization>CollabNet, Inc.</organization>
+ <roles>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+
+ <developer>
+ <name>Jason van Zyl</name>
+ <id>jvanzyl</id>
+ <email>jason@zenplex.com</email>
+ <organization>Zenplex</organization>
+ <roles>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+
+ <developer>
+ <name>Martin Poeschl</name>
+ <id>mpoeschl</id>
+ <email>mpoeschl@marmot.at</email>
+ <organization>tucana.at</organization>
+ <roles>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+
+ <developer>
+ <name>dIon Gillard</name>
+ <id>dion</id>
+ <email>dion@multitask.com.au</email>
+ <organization>Multitask Consulting</organization>
+ <roles>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+
+ <developer>
+ <name>Henning P. Schmiedehausen</name>
+ <id>henning</id>
+ <email>hps@intermeta.de</email>
+ <organization>INTERMETA - Gesellschaft fuer Mehrwertdienste mbH</organization>
+ <timezone>2</timezone>
+ <roles>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+
+ <developer>
+ <name>Eric Pugh</name>
+ <id>epugh</id>
+ <email>epugh@upstate.com</email>
+ <organization>upstate.com</organization>
+ <roles>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+
+ <developer>
+ <name>Brian E. Dunbar</name>
+ <id>bdunbar</id>
+ <email>bdunbar@dunbarconsulting.org</email>
+ <organization>dunbarconsulting.org</organization>
+ <roles>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+
+ <developer>
+ <name>Emmanuel Bourg</name>
+ <id>ebourg</id>
+ <email>ebourg@apache.org</email>
+ <organization>Ariane Software</organization>
+ <timezone>+1</timezone>
+ <roles>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+
+ <developer>
+ <name>Oliver Heger</name>
+ <id>oheger</id>
+ <email>oheger@apache.org</email>
+ <organization>Bosch Software Innovations</organization>
+ <timezone>+1</timezone>
+ <roles>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+
+ <developer>
+ <name>Jörg Schaible</name>
+ <id>joehni</id>
+ <email>joerg.schaible@gmx.de</email>
+ <timezone>+1</timezone>
+ <roles>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+
+ <developer>
+ <name>Ralph Goers</name>
+ <id>rgoers</id>
+ <email>rgoers@apache.org</email>
+ <organization>Intuit</organization>
+ <timezone>-8</timezone>
+ <roles>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+
+ <developer>
+ <name>Gary Gregory</name>
+ <id>ggregory</id>
+ <email>ggregory@apache.org</email>
+ <organization>Rocket Software</organization>
+ <timezone>-6</timezone>
+ <roles>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+
+ <developer>
+ <name>Claude Warren</name>
+ <id>claudenw</id>
+ <email>claude@apache.org</email>
+ <timezone>0</timezone>
+ <roles>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+
+ <developer>
+ <name>Rob Tompkins</name>
+ <id>chtompki</id>
+ <email>chtompki@apache.org</email>
+ <timezone>-4</timezone>
+ <roles>
+ <role>Java Developer</role>
+ </roles>
+ </developer>
+ </developers>
+
+ <contributors>
+ <contributor>
+ <name>Konstantin Shaposhnikov</name>
+ <email>ksh@scand.com</email>
+ <organization>scand.com</organization>
+ </contributor>
+
+ <contributor>
+ <name>Jamie M. Guillemette</name>
+ <email>JMGuillemette@gmail.com</email>
+ <organization>TD Bank</organization>
+ </contributor>
+
+ <contributor>
+ <name>Jorge Ferrer</name>
+ <email>jorge.ferrer@gmail.com</email>
+ <organization></organization>
+ </contributor>
+
+ <contributor>
+ <name>Gabriele Garuglieri</name>
+ <email>gabriele.garuglieri@infoblu.it</email>
+ <organization>Infoblu S.p.A</organization>
+ </contributor>
+
+ <contributor>
+ <name>Nicolas De Loof</name>
+ <email>nicolas.deloof@gmail.com</email>
+ <organization>Cap Gemini</organization>
+ </contributor>
+
+ <contributor>
+ <name>Oliver Kopp</name>
+ <email>koppdev@gmail.com</email>
+ </contributor>
+
+ <contributor>
+ <name>Dennis Kieselhorst</name>
+ <email>deki@apache.org</email>
+ <organization>IRIAN Deutschland</organization>
+ </contributor>
+
+ <contributor>
+ <name>Raviteja Lokineni</name>
+ <email>raviteja.lokineni@gmail.com</email>
+ </contributor>
+
+ <contributor>
+ <name>Vincent Maurin</name>
+ <email>vincent.maurin.fr@gmail.com</email>
+ <organization>glispa GmbH</organization>
+ </contributor>
+
+ <contributor>
+ <name>The Alchemist</name>
+ <email>kap4020@gmail.com</email>
+ </contributor>
+
+ <contributor>
+ <name>Pascal Essiembre</name>
+ <email>pascal.essiembre@norconex.com</email>
+ <organization>Norconex Inc.</organization>
+ <organizationUrl>https://www.norconex.com</organizationUrl>
+ <roles>
+ <role>developer</role>
+ </roles>
+ <timezone>-4</timezone>
+ </contributor>
+
+ <contributor>
+ <name>Patrick Schmidt</name>
+ <email>patrick.schmidt@codecamp.de</email>
+ </contributor>
+ </contributors>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.9</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-text</artifactId>
+ <version>1.7</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ <exclusions>
+ <exclusion>
+ <groupId>logkit</groupId>
+ <artifactId>logkit</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>avalon-framework</groupId>
+ <artifactId>avalon-framework</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ <version>1.9.3</version>
+ <optional>true</optional>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.12</version>
+ <optional>true</optional>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-jexl</artifactId>
+ <version>2.1.1</version>
+ <optional>true</optional>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2</artifactId>
+ <version>2.4.1</version>
+ <optional>true</optional>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-jxpath</groupId>
+ <artifactId>commons-jxpath</artifactId>
+ <version>1.3</version>
+ <optional>true</optional>
+ <exclusions>
+ <exclusion>
+ <groupId>xerces</groupId>
+ <artifactId>xerces</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>ant</groupId>
+ <artifactId>ant-optional</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>xml-resolver</groupId>
+ <artifactId>xml-resolver</artifactId>
+ <version>1.2</version>
+ <optional>true</optional>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>${spring.version}</version>
+ <optional>true</optional>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>${spring.version}</version>
+ <optional>true</optional>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${spring.version}</version>
+ <optional>true</optional>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <version>${spring.version}</version>
+ <optional>true</optional>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.4</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.yaml</groupId>
+ <artifactId>snakeyaml</artifactId>
+ <version>1.24</version>
+ <optional>true</optional>
+ </dependency>
+
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>2.9.9</version>
+ <optional>true</optional>
+ </dependency>
+
+ <!-- Needed for testing -->
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-dbcp2</artifactId>
+ <version>2.6.0</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-pool2</artifactId>
+ <version>2.6.2</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>2.4.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.dbunit</groupId>
+ <artifactId>dbunit</artifactId>
+ <version>2.6.0</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>junit-addons</groupId>
+ <artifactId>junit-addons</artifactId>
+ <version>1.4</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>xerces</groupId>
+ <artifactId>xmlParserAPIs</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>mockobjects</groupId>
+ <artifactId>mockobjects-core</artifactId>
+ <version>0.09</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>mockobjects</groupId>
+ <artifactId>mockobjects-jdk1.4-j2ee1.3</artifactId>
+ <version>0.09</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymock</artifactId>
+ <version>4.0.2</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- javax.mail only contains the API, no impl. -->
+ <dependency>
+ <groupId>com.sun.mail</groupId>
+ <artifactId>mailapi</artifactId>
+ <version>1.6.3</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.17</version>
+ <optional>true</optional>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${slf4j.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-ext</artifactId>
+ <version>${slf4j.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>${slf4j.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-nop</artifactId>
+ <version>${slf4j.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <properties>
+ <commons.componentid>configuration</commons.componentid>
+ <commons.module.name>org.apache.commons.configuration2</commons.module.name>
+ <commons.release.version>2.6</commons.release.version>
+ <commons.release.desc>(reworked 2.x version)</commons.release.desc>
+ <commons.release.2.name>commons-configuration-${commons.release.2.version}</commons.release.2.name>
+ <commons.release.2.version>1.10</commons.release.2.version>
+ <commons.release.2.desc>(old 1.x version)</commons.release.2.desc>
+ <commons.jira.id>CONFIGURATION</commons.jira.id>
+ <commons.jira.pid>12310467</commons.jira.pid>
+ <maven.compiler.source>1.8</maven.compiler.source>
+ <maven.compiler.target>1.8</maven.compiler.target>
+
+ <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-configuration</commons.scmPubUrl>
+
+ <!-- Explicitly declare optional dependencies for the OSGi manifest. -->
+ <commons.osgi.import>
+ org.apache.commons.beanutils.*;resolution:=optional,
+ org.apache.commons.codec.*;resolution:=optional,
+ org.apache.commons.jxpath.*;resolution:=optional,
+ org.apache.xml.resolver.*;resolution:=optional,
+ javax.servlet.*;resolution:=optional,
+ org.apache.commons.jexl2.*;resolution:=optional,
+ org.apache.commons.vfs2.*;resolution:=optional,
+ org.springframework.*;resolution:=optional,
+ com.fasterxml.jackson.*;resolution:=optional,
+ org.yaml.snakeyaml.*;resolution:=optional,
+ *
+ </commons.osgi.import>
+ <slf4j.version>1.7.26</slf4j.version>
+ <spring.version>4.3.24.RELEASE</spring.version>
+
+ <!-- generate report even if there are binary incompatible changes -->
+ <commons.japicmp.breakBuildOnBinaryIncompatibleModifications>false</commons.japicmp.breakBuildOnBinaryIncompatibleModifications>
+ <commons.japicmp.version>0.14.1</commons.japicmp.version>
+ <japicmp.skip>false</japicmp.skip>
+ <commons.jacoco.version>0.8.4</commons.jacoco.version>
+
+ <!-- Commons Release Plugin -->
+ <commons.bc.version>2.5</commons.bc.version>
+ <commons.rc.version>RC1</commons.rc.version>
+ <commons.release.isDistModule>true</commons.release.isDistModule>
+ <commons.distSvnStagingUrl>scm:svn:https://dist.apache.org/repos/dist/dev/commons/${commons.componentid}</commons.distSvnStagingUrl>
+ <commons.releaseManagerName>Gary Gregory</commons.releaseManagerName>
+ <commons.releaseManagerKey>86fdc7e2a11262cb</commons.releaseManagerKey>
+ </properties>
+
+ <build>
+ <testResources>
+ <testResource>
+ <directory>src/test/resources</directory>
+ </testResource>
+ <testResource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>*.dtd</include>
+ </includes>
+ </testResource>
+ <!-- hack to ensure the N&L appear in jars -->
+ <testResource>
+ <directory>${basedir}</directory>
+ <targetPath>META-INF</targetPath>
+ <includes>
+ <include>NOTICE.txt</include>
+ <include>LICENSE.txt</include>
+ </includes>
+ </testResource>
+ </testResources>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-scm-publish-plugin</artifactId>
+ <configuration>
+ <ignorePathsToDelete>
+ <ignorePathToDelete>javadocs</ignorePathToDelete>
+ </ignorePathsToDelete>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>3.0.0</version>
+ <configuration>
+ <configLocation>${basedir}/conf/checkstyle.xml</configLocation>
+ <suppressionsLocation>${basedir}/conf/checkstyle-suppressions.xml</suppressionsLocation>
+ <enableRulesSummary>false</enableRulesSummary>
+ <propertyExpansion>basedir=${basedir}</propertyExpansion>
+ <includeResources>false</includeResources>
+ <includeTestResources>false</includeTestResources>
+ <failOnViolation>false</failOnViolation>
+ <sourceDirectories>
+ <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
+ </sourceDirectories>
+ <excludes>**/org/apache/commons/configuration2/plist/*.java</excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <!-- Uncomment to enable profiling unit tests -->
+ <!-- <argLine>-agentpath:"${yourkit.home}/bin/mac/libyjpagent.jnilib"</argLine> -->
+ <forkMode>once</forkMode>
+ <excludes>
+ <exclude>**/TestWebdavConfigurationBuilder.java</exclude>
+ </excludes>
+ <systemPropertyVariables>
+ <java.awt.headless>true</java.awt.headless>
+ <org.apache.commons.logging.Log>org.apache.commons.configuration2.Logging</org.apache.commons.logging.Log>
+ </systemPropertyVariables>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <descriptors>
+ <descriptor>src/main/assembly/bin.xml</descriptor>
+ <descriptor>src/main/assembly/src.xml</descriptor>
+ </descriptors>
+ <tarLongFileMode>gnu</tarLongFileMode>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>javacc-maven-plugin</artifactId>
+ <version>2.6</version>
+ <executions>
+ <execution>
+ <id>javacc</id>
+ <goals>
+ <goal>javacc</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- Uncomment to instrument with Clover
+ <plugin>
+ <groupId>com.atlassian.maven.plugins</groupId>
+ <artifactId>maven-clover2-plugin</artifactId>
+ <version>2.4.2</version>
+ <configuration>
+ <jdk>1.4</jdk>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>pre-site</phase>
+ <goals>
+ <goal>instrument</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin> -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ <!-- Temporary fix, remove this after this has implemented in parent pom -->
+ <configuration>
+ <archive combine.children="append">
+ <manifestEntries>
+ <Automatic-Module-Name>org.apache.commons.configuration2</Automatic-Module-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>src/java/org/apache/commons/configuration2/plist/*.java</exclude>
+ <exclude>velocity.log</exclude>
+ <exclude>src/test/resources/test.json</exclude>
+ <exclude>src/test/resources/test.yaml</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <!--
+ The below setting for not failing upon error stems from the fact that javacc's generated
+ code.
+
+ Javacc is responsible for a portion of the code in the package org.apache.commons.configuration2.plist,
+ and only generates a portion of the package. Furthermore, the javacc parser generator
+ generates javadoc that does not conform to the java 1.8 standard and causes the build to fail. For the
+ sake of releasing commons-configuration-2.4.
+ -->
+ <failOnError>false</failOnError>
+ <links>
+ <link>https://docs.oracle.com/javase/8/docs/api/</link>
+ <link>https://docs.spring.io/spring/docs/${spring.version}/javadoc-api/</link>
+ </links>
+ </configuration>
+ </plugin>
+ </plugins>
+
+ </build>
+ <profiles>
+ <profile>
+ <id>webdav</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-webdav</artifactId>
+ <version>1.5.2</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <forkMode>once</forkMode>
+ <systemPropertyVariables>
+ <java.awt.headless>true</java.awt.headless>
+ <test.webdav.base>${test.webdav.base}</test.webdav.base>
+ </systemPropertyVariables>
+ <includes>
+ <include>**/TestWebdavConfigurationBuilder.java</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java9</id>
+ <activation>
+ <jdk>9</jdk>
+ </activation>
+ <properties>
+ <!-- coverall version 4.3.0 does not work with java 9, see https://github.com/trautonen/coveralls-maven-plugin/issues/112 -->
+ <coveralls.skip>true</coveralls.skip>
+ </properties>
+ </profile>
+ <!-- Uncomment this and set the path accordingly to enable YourKit -->
+ <!-- http://www.yourkit.com/docs/80/help/agent.jsp -->
+ <!-- <profile>
+ <id>yourkit-profile</id>
+ <properties>
+ <yourkit.home>/Applications/YourKit_Java_Profiler_8.0.17.app/</yourkit.home>
+ </properties>
+ </profile> -->
+ </profiles>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-changes-plugin</artifactId>
+ <version>${commons.changes.version}</version>
+ <configuration>
+ <xmlPath>${basedir}/src/changes/changes.xml</xmlPath>
+ <issueLinkTemplate>%URL%/%ISSUE%</issueLinkTemplate>
+ </configuration>
+ <reportSets>
+ <reportSet>
+ <reports>
+ <report>changes-report</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <reportSets>
+ <reportSet>
+ <reports>
+ <report>checkstyle</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>src/java/org/apache/commons/configuration2/plist/*.java</exclude>
+ <exclude>velocity.log</exclude>
+ <exclude>src/test/resources/test.json</exclude>
+ <exclude>src/test/resources/test.yaml</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>com.github.spotbugs</groupId>
+ <artifactId>spotbugs-maven-plugin</artifactId>
+ <version>${commons.spotbugs.version}</version>
+ <configuration>
+ <threshold>Normal</threshold>
+ <effort>Default</effort>
+ <excludeFilterFile>${basedir}/conf/findbugs-exclude-filter.xml</excludeFilterFile>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <reportSets>
+ <reportSet>
+ <reports>
+ <report>javadoc</report>
+ </reports>
+ <configuration>
+ <!--
+ The below setting for not failing upon error stems from the fact that javacc's generated
+ code.
+
+ Javacc is responsible for a portion of the code in the package org.apache.commons.configuration2.plist,
+ and only generates a portion of the package. Furthermore, the javacc parser generator
+ generates javadoc that does not conform to the java 1.8 standard and causes the build to fail. For the
+ sake of releasing commons-configuration-2.4.
+ -->
+ <failOnError>false</failOnError>
+ <links>
+ <link>https://docs.oracle.com/javase/8/docs/api/</link>
+ <link>https://docs.spring.io/spring/docs/${spring.version}/javadoc-api/</link>
+ </links>
+ <!-- Disable Doclint since the Javadoc in the generated code does not comply. -->
+ <doclint>none</doclint>
+ </configuration>
+ </reportSet>
+ </reportSets>
+ <configuration>
+ <failOnError>false</failOnError>
+ <links>
+ <link>https://docs.oracle.com/javase/8/docs/api/</link>
+ <link>https://docs.spring.io/spring/docs/${spring.version}/javadoc-api/</link>
+ </links>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+
+</project>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 96df9b4..7053251 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -1,2537 +1,2537 @@
-<?xml version="1.0"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<!-- ===================================================================== -->
-<!-- $Id$ -->
-<!-- ===================================================================== -->
-<document>
- <properties>
- <title>Apache Commons Configuration Release Notes</title>
- <author email="dev@commons.apache.org">Apache Commons Community</author>
- </properties>
-
- <body>
- <release version="2.6" date="2019-MM-DD"
- description="Minor release with new features and updated dependencies.">
- <action dev="ggregory" type="fix" issue="CONFIGURATION-750" due-to="Jason Pickens, Gary Gregory, Emmanuel Bourg">
- XMLPropertyListConfiguration cannot set arrays in the correct plist form.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-751" due-to="Gary Gregory">
- Update Apache Commons Text from 1.6 to 1.7.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-752" due-to="Gary Gregory">
- Update Apache Commons VFS from 2.3 to 2.4.
- </action>
- <action dev="ggregory" type="fix" due-to="Gary Gregory">
- Fix Javadoc for org.apache.commons.configuration2.PropertiesConfiguration.getIncludeOptional().
- </action>
- <action dev="ggregory" type="add" due-to="Gary Gregory">
- Document "includeOptional" on the site.
- </action>
- </release>
- <release version="2.5" date="2019-05-23"
- description="Minor release with new features and updated dependencies.">
- <action dev="ggregory" type="fix" issue="CONFIGURATION-731" due-to="Shuai Zhang, Gary Gregory">
- Allow user to specify the comments and separator chars.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-738" due-to="Gary Gregory">
- Update Jackson from 2.9.7 to 2.9.8.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-739" due-to="Gary Gregory">
- Update Apache Commons Codec from 1.11 to 1.12.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-740" due-to="Gary Gregory">
- Update Apache Commons VFS from 2.2 to 2.3.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-741" due-to="Gary Gregory">
- Update Spring from 4.3.19 to 4.3.22.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-743" due-to="Gary Gregory">
- Update optional library snakeyaml from 1.23 to 1.24.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-747" due-to="Gary Gregory">
- Update Apache Commons Lang from 3.8.1 to 3.9.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-746" due-to="Gary Gregory">
- Update Jackson from 2.9.8 to 2.9.9.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-747" due-to="Gary Gregory">
- Update Spring from 4.3.22 to 4.3.24.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-745" due-to="Gary Gregory">
- Add the special key "includeoptional" for properties files.
- </action>
- </release>
- <release version="2.4" date="2018-10-23"
- description="Minor release with new features and updated dependencies.">
- <action dev="oheger" type="fix" issue="CONFIGURATION-710" due-to="thc202">
- Fixed numerous typos in user guides.
- </action>
- <action dev="ggregory" type="fix" issue="CONFIGURATION-711">
- Update Apache Commons Lang from 3.7 to 3.8.1.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-712" due-to="Rolland Hobbie">
- FileHandlerReloadingDetector now has a new refresh() method to
- initialize the reloading state from the underlying file. This new
- method is called by DefaultReloadingDetectorFactory when a new detector
- instance is created. This makes sure that a changed configuration file
- is directly detected on the first invocation of the
- isReloadingRequired() method.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-713" due-to="Lars W">
- Configuration properties can now be converted to regular expressions.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-715" due-to="Patrick Schmidt">
- With JupIOFactory a new IOFactory implementation is now available that
- implements handling of whitespace in a way closer to java.util.Properties.
- This class can be used when stricter compatibility with Java standard
- methods for reading and writing properties files is needed.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-716" due-to="Patrick Schmidt">
- JupIOFactory (introduced for CONFIGURATION-715) also implements
- handling of escape sequences in a way closer to java.util.Properties.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-720">
- Replace use of deprecated Commons Lang string substitution code for Commons Text.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-694">
- Update Java requirement from version 7 to 8.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-721">
- Update Jackson from 2.9.6 to 2.9.7.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-722">
- Update optional dependency snakeyaml from 1.21 to 1.23.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-723">
- Update optional Spring dependencies from 4.3.18.RELEASE to 4.3.19.RELEASE.
- </action>
- <action dev="ggregory" type="add" issue="CONFIGURATION-724">
- Add support for Commons Text 1.4 localhost string lookup as a default lookup.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-725">
- Update Apache Commons Text from 1.4 to 1.5.
- </action>
- <action dev="ggregory" type="add" issue="CONFIGURATION-726">
- Add support for Commons Text 1.5 new string lookups as default lookups.
- </action>
- <action dev="ggregory" type="fix" issue="CONFIGURATION-727">
- org.apache.commons.configuration2.DatabaseConfiguration never closes result sets and statements.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-728">
- Update Apache Commons Text from 1.5 to 1.6.
- </action>
- </release>
-
- <release version="2.3" date="2018-08-04"
- description="Minor release with new features and updated dependencies.">
- <action dev="ggregory" type="update" issue="CONFIGURATION-707">
- Update Spring from 4.3.14.RELEASE to 4.3.18.RELEASE.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-706">
- Update optional dependency snakeyaml from 1.20 to 1.21.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-705">
- Update Jackson from 2.9.5 to 2.9.6.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-652" due-to="Claude Warren">
- Root node attributes are now updated correctly when loading XML
- configuration files.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-675">
- Added a .gitignore file to the project.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-678">
- Update Apache Commons Codec from 1.10 to 1.11.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-679">
- Update Jackson from 2.8.9 to 2.9.3.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-680">
- Update Apache Commons Lang from 3.6 to 3.7.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-681">
- Update Apache Commons VFS from 2.1 to 2.2.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-682">
- Update Snakeyaml from 1.18 to 1.19.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-696">
- Update optional dependency snakeyaml from 1.19 to 1.20.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-683">
- Update Spring from 4.3.9.RELEASE to 4.3.13.RELEASE.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-695">
- Update optional dependency Jackson from 2.9.3 to 2.9.5.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-697">
- Update optional dependency Spring from 4.3.13.RELEASE to 4.3.14.RELEASE.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-686">
- JSONConfiguration can now handle list structures with complex objects
- as elements.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-687">
- Fixed a memory leak in CombinedConfigurationBuilder. Builder for the
- child sources were created each time a new result configuration was
- requested; thus the list with child builders got longer and longer.
- This also had an impact on reloading because unnecessary reloading
- operations could be triggered. Now it is guaranteed that child builders
- are created only once.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-688">
- Fixed a bug related to the handling of multiple include files in
- PropertiesConfiguration.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-690">
- ExprLookup.getVariables() no longer returns null, but a copy of the
- current variables of this lookup object.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-691">
- ExprLookup now handles expressions that do not return a string result
- by converting them to string.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-692">
- ConversionExceptions thrown when accessing the properties of a
- configuration now contain the original cause of the exception.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-693" due-to="Lars W">
- Configuration properties can now be converted to the data types File
- and Path.
- </action>
- <action dev="ggregory" type="add" issue="CONFIGURATION-698">
- Add org.apache.commons.configuration2.MapConfiguration.toString().
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-701" due-to="Nicholas Verbeck">
- CompositeConfiguration now supports an addConfigurationFirst() method
- to add child configurations with a higher priority.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-703" due-to="Pascal Essiembre">
- XMLConfiguration now handles elements correctly whose value consists
- only of whitespace if the xml:space attribute is set to preserve.
- </action>
- </release>
-
- <release version="2.2" date="2017-10-12"
- description="Minor release with new APIs and bug fixes.">
- <action dev="oheger" type="add" issue="CONFIGURATION-673" due-to="Andreas Kuhtz ">
- Added an Automatic-Module-Name header to the manifest for compatibility
- with the Java 9 module system.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-671">
- Fixed a NPE in INIConfiguration when saving a configuration with an
- empty section.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-670">
- The node model returned by SubnodeConfiguration.getNodeModel() has now
- the correct root node set.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-669">
- Update optional Spring dependency from 4.2.5.RELEASE to 4.3.9.RELEASE.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-667">
- Update Apache Commons Lang from 3.3.2 to 3.6.
- </action>
- <action dev="ggregory" type="add" issue="CONFIGURATION-666">
- Add convenience ctor ConfigurationRuntimeException(String, Object...).
- </action>
- <action dev="ggregory" type="add" issue="CONFIGURATION-665">
- Add org.apache.commons.configuration2.AbstractHierarchicalConfiguration.toString().
- </action>
- <action dev="ggregory" type="add" issue="CONFIGURATION-664">
- Add API org.apache.commons.configuration2.tree.ImmutableNode.getChildren(String).
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-663">
- Fixed a typo in the upgrade to 2.0 guide.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-661">
- Update platform requirement from Java 6 to 7.
- </action>
- <action dev="ggregory" type="add" issue="CONFIGURATION-660">
- Add toString() methods here and there to help debugging.
- </action>
- <action dev="ggregory" type="add" issue="CONFIGURATION-658">
- Add API org.apache.commons.configuration2.DataConfiguration.getURI(String) methods.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-656" due-to="The Alchemist">
- Added new YAMLConfiguration class to support configuration files in
- YAML format.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-653" due-to="Vincent Maurin">
- ConfigurationUtils and ConfigurationConverter now offer better support
- for immutable configurations.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-647" due-to="Vladimir Martinek">
- INIConfiguration can now be configured to use a custom separator
- between properties and values when writing an ini file.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-258" due-to="The Alchemist">
- Added new JSONConfiguration class to support configuration files in
- JSON format.
- </action>
- </release>
-
- <release version="2.1.1" date="2017-02-05"
- description="Bugfix release for 2.1">
- <action dev="oheger" type="fix" issue="CONFIGURATION-649">
- Improved the handling of lists defined by a string with delimiter
- characters in XMLConfiguration. Such lists now retain their original
- format when the configuration is saved.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-648">
- Made the IOFactory property of PropertiesBuilderParameter compatible
- with the most recent version of Commons BeanUtils. This version
- changed the handling of properties starting with multiple uppercase
- letters.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-646">
- PropertiesConfiguration now works correctly with the auto-save mode.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-644" due-to="Andrew DeMaria">
- PropertiesConfigurationLayout no longer duplicates a header comment
- if a file with another comment is loaded.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-643">
- Documentation improvements for the user's guide.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-641">
- Improved documentation of FileBased interface. The Javadocs now state
- explicitly that the methods should not be called by client code.
- Exception handling in configuration classes implementing
- FileLocatorAware has been improved.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-640">
- PropertiesConfiguration now correctly unescapes some special characters
- that are always escaped in Java properties files.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-639" due-to="Rico Neubauer">
- In the OSGi bundle manifest of the Commons Configuration bundle the
- package imports for Spring packages are now marked as optional.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-638" due-to="Ahmet Celik">
- Improved handling of temporary files and folders in unit tests.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-627">
- Updated dependency to Commons BeanUtils to version 1.9.3. This fixes an
- issue with an exception stacktrace that was logged when a
- ConfigurationBuilder was used.
- </action>
- </release>
-
- <release version="2.1" date="2016-08-20"
- description="First maintenance release for Configuration 2.x.">
- <action dev="oheger" type="fix" issue="CONFIGURATION-636" due-to="Tim Lark">
- PropertiesConfigurationLayout now allows manipulating the order of keys
- when the properties file is written.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-634" due-to="Raviteja Lokineni">
- HomeDirectoryLocationStrategy now works correctly in the mode that
- evaluates the FileLocator's base path.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-633">
- Interpolation was improved to better support properties with multiple
- values.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-632">
- The methods getStringArray() and getList() of CompositeConfiguration
- now support the interpolation of variables that reference properties
- with multiple values.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-628">
- Support for the ant build was dropped.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-626">
- ImmutableConfiguration.getArray() has been deprecated. Arrays can now
- be queried using the generic get() method in a type-safe way.
- </action>
- <action dev="deki" type="add" issue="CONFIGURATION-624">
- Support Commons Configuration as PropertySource in Spring.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-622">
- Fixed a problem in INIConfiguration.write() with keys containing a
- separator character. This separator had been duplicated. Such keys
- are now handled correctly when the configuration is saved.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-631">
- Update Apache Commons VFS from 2.0 to 2.1.
- </action>
- <action dev="ggregory" type="update" issue="CONFIGURATION-635">
- Update optional dependency Apache Commons Codec from 1.9 to 1.10.
- </action>
- </release>
-
- <release version="2.0" date="2016-03-24"
- description="Major redesign of the Configuration 1.x API">
- <action dev="oheger" type="update" issue="CONFIGURATION-621">
- Moved ConfigurationLogger class to io package to avoid cyclic
- dependencies between packages.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-620" due-to="Mark Vedder">
- Fixed two invalid examples in the user's guide for file-based
- configurations.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-619">
- CombinedConfigurationBuilder now supports inheritance of its parameters
- to child configuration sources. This is enabled by default.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-618">
- When using immutable configurations exceptions thrown by the wrapped
- configuration came out as UndeclaredThrowableException. This has been
- fixed; now the correct original exception is thrown.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-615">
- Changed generic types in the signatures of a MapConfiguration
- constructor and AbstractConfiguration.getList(String, List). These
- changes were made in version 1.10 as fixes for CONFIGURATION-557 and
- CONFIGURATION-558. But it had been missed to merge them to trunk.
- </action>
- </release>
-
- <release version="2.0-beta2" date="2015-12-05"
- description="Second beta release, some minor API changes.">
- <action dev="oheger" type="update" issue="CONFIGURATION-614">
- References to Commons Logging have been removed from the Configuration
- API. It is still possible to influence logging by making use of the new
- ConfigurationLogger abstraction.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-612" due-to="Jon Weygand">
- The return type of ConfigurationBuilder.getConfiguration() was changed
- from Configuration to ImmutableConfiguration because this is the base
- interface for all configuration objects.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-609">
- Fixed a bug in PropertiesConfiguration related to the loading of include
- files. The FileHandler used for this purpose was not fully initialized.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-608">
- Adapted the return type of ReloadingFileBasedConfigurationBuilder.configure().
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-605">
- XMLConfiguration no longer drops keys when list delimiter characters
- occur in element values.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-604">
- Fixed a problem in the conversion of a flat configuration to a
- hierarchical one that could cause the loss of properties in a
- combined configuration constructed by an override combiner.
- </action>
- </release>
-
- <release version="2.0-beta1" date="2015-06-19"
- description="First beta release, getting closer to final.">
- <action dev="oheger" type="update" issue="CONFIGURATION-598" due-to="Bjarne Boström">
- Removed obsolete ConfigurationBuilder interface in the base package.
- </action>
- </release>
-
- <release version="2.0-alpha2" date="2014-12-20"
- description="Some more API fine-tuning.">
- <action dev="oheger" type="add" issue="CONFIGURATION-574">
- DefaultExpressionEngine can now be customized to match configuration
- keys in a case-insensitive manner. This is useful for instance for
- dealing with Windows INI files.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-565">
- Added support for querying encoded properties.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-564">
- PropertiesConfiguration now supports again properties without a value
- and a separator character. The keys of such properties are added to
- the configuration with an empty String as value.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-427">
- XMLPropertyListConfiguration can now save arrays in the correct form.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-200">
- A size() method was added to the ImmutableConfiguration interface.
- </action>
- </release>
-
- <release version="2.0-alpha1" date="2014-09-23"
- description="First alpha release after a major redesign.">
- <action dev="oheger" type="update" issue="CONFIGURATION-591">
- Removed methods from ConfigurationConverter related to ExtendedProperties.
- This class is no longer supported by recent versions of Commons
- Collections.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-590">
- Removed Serializable interface from all configuration implementations.
- Some configuration classes declared this interface without being
- actually serializable.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-588">
- The name of the top-level package and the maven coordinates have been
- changed to allow a coexistence of Commons Configuration 1.x with 2.0.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-584">
- The event mechanism has been reworked. There is now a generic event
- listener interface which can be used to receive notifications from
- multiple types of event sources.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-582">
- Fixed a StringIndexOutOfBoundsException in PropertiesConfigurationLayout
- which was caused by lines containing only whitespace.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-579">
- A migration guide has been created which supports when upgrading from
- version 1.x to 2.0.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-578">
- The user's guide has been fully reworked to cover all new and enhanced
- features of version 2.0.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-577">
- The dependency to Commons Collections is no longer needed.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-576">
- A new abstract base class for hierarchical configurations was introduced
- which supports arbitrary hierarchical data structures. The type of the
- nodes used by the configuration can now be specified as a generic type
- argument. This makes the integration of other hierarchical structures
- easier.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-575">
- Hierarchical configurations now operate on immutable structures.
- Data is no longer represented by ConfigurationNode objects. The
- ImmutableNode class now serves as data container.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-573">
- XPathExpressionEngine can now deal with namespace prefixes in node and
- attribute names.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-572">
- When a CombinedConfiguration is cleared it removes itself as change
- listener from all child configurations. This fixes a possible memory
- leak.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-570">
- Fixed a possible ConcurrentModificationException when a SystemConfiguration
- instance is passed to the append() or copy() methods.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-567" due-to="Shen liang">
- XMLBeanDeclaration now escapes node names before they are used to
- determine nested properties.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-563">
- The DefaultExpressionEngine class is now immutable. An instance can be
- shared between multiple configuration objects.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-562">
- Improved the API of ExprLookup.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-559">
- It is now possible to define default values for initialization
- properties of configurations.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-555">
- Fixed a bug in the handling of the xml:space attribute in
- XMLConfiguration. The attribute is now also applied to the current
- element, not only to sub elements.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-554">
- BeanHelper is no longer a static utility class. Instances can be
- created with a specific configuration of bean factories. There is still
- a default instance which can be obtained via the BeanHelper.INSTANCE
- field.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-553">
- The code for accessing configuration files hs been reworked. Methods
- related to locating configuration files have been moved from
- ConfigurationUtils to a new FileLocatorUtils class. Customizable
- strategy classes (implementing the new FileLocationStrategy) can be
- used for searching for configuration files.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-551">
- The data type conversion mechanism has been made extensible. There is a
- new interface ConversionHandler which controls the data type conversions
- available for a configuration object. By setting a custom implementation,
- conversions can be adapted or extended.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-550">
- Conversion to Character is now supported.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-546" due-to="Justin Couch">
- BeanHelper can now process BeanDefinitions initializing properties of
- collection types of their target beans.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-544" due-to="Oliver Kopp">
- Added missing dependencies to build.xml.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-542">
- The mechanism for synchronizing configurations has been completely
- redesigned. It is now based on Synchronizer objects which can be
- configured by client code. A new chapter was added to the user's guide
- regarding thread-safety of configurations.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-540">
- MapConfiguration now directly uses a Properties object passed to its
- constructor as data store rather than copying it. This allows
- SystemConfiguration to be connected to system properties; i.e.
- changing a property through SystemConfiguration immediately affects
- the corresponding system property.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-541">
- Multi-file configurations are no longer restricted to XML configuration
- files. Arbitrary file-based configurations are now supported.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-539">
- The deprecated INIConfiguration class was removed.
- HierarchicalINIConfiguration was renamed to INIConfiguration.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-537">
- The deprecated ConfigurationFactory class was removed.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-536">
- File-based configurations are now implemented in a different way.
- The interfaces FileConfiguration and ReloadingStrategy have been
- removed, also the base classes AbstractFileConfiguration and
- AbstractHierarchicalFileConfiguration. They are replaced by the
- FileBased interface and the FileHandler class which implements
- central I/O functionality. Reloading is now in the responsibility of
- configuration builders.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-535">
- DatabaseConfiguration now provides get methods for querying its
- properties defining the underlying database structures.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-534">
- The includesAllowed property of PropertyConfiguration is now independent
- from the existence of a base path.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-533">
- DatabaseConfiguration now automatically converts CLOBs to strings if
- they appear in property values.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-530">
- Concurrent access to configurations and reloading have been completely
- redesigned. Because reloading is now handled by configuration builders
- there is no need to acquire a lock in order to protected against a
- reload operations.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-527" due-to="Matthias Richter">
- AbstractConfiguration.clearPropertyDirect() is now abstract.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-526" due-to="Oliver Kopp">
- XMLPropertiesConfiguration now supports loading from and saving to DOM
- nodes.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-525">
- PropertiesConfiguration now keeps a comment at the bottom of a
- properties file. A new footer property was added for reading and
- writing this footer comment.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-524">
- Interpolation now works correctly after a configuration was cloned.
- The ConfigurationInterpolator instance is now cloned, too.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-521" due-to="Oliver Kopp">
- ConfigurationUtils.fileFromUrl() now correctly handles URL containing
- encoded percent characters.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-520">
- Support for reloading of configuration data has been reworked.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-519">
- Configuration objects are now created via configuration builders. A new
- API for configuration builders has been added.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-518">
- Classes and interfaces related to interpolation have been slightly
- reworked. ConfigurationInterpolator is now thread-safe. There are
- multiple ways to define the ConfigurationInterpolator object to be
- used by an AbstractConfiguration instance.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-517">
- Hierarchical configurations now provide methods to obtain sub
- configurations for all child elements of a given key.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-516">
- PropertiesConfiguration no longer escapes double quotes on saving.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-515">
- The visibility of some internal methods of PropertiesConfiguration.PropertiesWriter
- has been increased to protected. This simplifies the implementation of
- a custom escaping strategy.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-514">
- Bean declarations now support constructor invocations.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-513">
- HierarchicalConfiguration is now an interface. The base implementation
- class is named BaseHierarchicalConfiguration.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-512">
- It is now possible to obtain an immutable view on a Configuration or
- HierarchicalConfiguration object. New interfaces,
- ImmutableConfiguration, and ImmutableHierarchicalConfiguration have
- been introduced.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-508">
- Generic get() methods have been added to the Configuration interface.
- These methods expect a target class and try to convert the value of
- the specified property to this target class.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-506">
- Removed obsolete nested classes Node and NodeVisitor of
- HierarchicalConfiguration. The related deprecated class
- ConfigurationKey was removed, too.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-505">
- XMLConfiguration no longer supports attributes with multiple values or
- list delimiter parsing in attributes. This feature was complex and
- error prone and brought little value to the user.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-504">
- SubnodeConfiguration now provides a new method for clearing it and
- removing its root node from the parent configuration. The method
- HierarchicalConfiguration.configurationsAt() now returns a list
- of SubnodeConfiguration so that it is easier to make direct use of
- this feature.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-500">
- XMLConfiguration now adds attributes of elements defining a list to
- all list nodes.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-496">
- Concurrent access to configurations and reloading have been completely
- redesigned. This should reduce the amount of synchronization.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-486">
- Removed some static fields for specifying global default values.
- Using static fields in this way is thread-hostile. There are now
- alternatives for setting default values.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-462">
- Updated dependency to Commons Lang from version 2.6 to 3.1.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-419">
- EventSource is now an interface. With BaseEventSource there is a
- default implementation.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-418">
- The handling of list delimiters and their escape characters has been
- reworked. A new ListDelimiterHandler interface was introduced allowing
- applications to customize the treatment of list delimiters.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-330">
- Concurrent access to configurations has been reworked.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-204">
- With the new reloading mechanism automatic and periodic reloading checks
- can be performed.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-202">
- Reloading checks can now be performed in a background thread.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-153">
- It is now possible to define the strategy used for locating
- configuration files.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-136">
- Reloading can no longer corrupt a configuration instance. This is now
- handled by a configuration builder; the original configuration instance
- is not modified.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-26">
- It is now possible to influence the conversion from a container object
- (a collection or an array) to a single value (e.g. what is returned by
- getString() if the current property has multiple values). Per default,
- the first value is returned. By overriding methods of the
- configuration's ConversionHandler, this behavior can be changed.
- </action>
- </release>
-
- <release version="1.10" date="2013-10-27"
- description="Minor bug fixes and improvements">
- <action dev="oheger" type="update" issue="CONFIGURATION-500">
- XMLConfiguration now adds attributes of elements defining a list to
- all list nodes.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-525">
- PropertiesConfiguration now keeps a comment at the bottom of a
- properties file. A new footer property was added for reading and
- writing this footer comment.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-526" due-to="Oliver Kopp">
- XMLPropertiesConfiguration now supports loading from and saving to DOM
- nodes.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-534">
- The includesAllowed property of PropertyConfiguration is now independent
- from the existence of a base path.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-546" due-to="Justin Couch">
- BeanHelper can now process BeanDefinitions initializing properties of
- collection types of their target beans.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-550">
- Conversion to Character is now supported.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-555">
- Fixed a bug in the handling of the xml:space attribute in
- XMLConfiguration. The attribute is now also applied to the current
- element, not only to sub elements.
- </action>
- <action dev="henning" type="fix" issue="CONFIGURATION-556">
- In 1.7 and before, any change to the system properties was
- immediately reflected in a SystemConfiguration object. This
- behavior broke in 1.8 and 1.9. This has been fixed for 1.10.
- </action>
- <action dev="henning" type="fix" issue="CONFIGURATION-557">
- In 1.7 and before, it was possible to pass an arbitrary Map
- into the constructor of MapConfiguration. With the
- generification in 1.8, this actually broke and it was no
- longer possible to pass in e.g. a Map<String, String>
- because the signature now required a Map<String,
- Object>. Changing the constructor to accept a
- Map<String, ?> restores this.
- </action>
- <action dev="henning" type="fix" issue="CONFIGURATION-558">
- Similar to CONFIGURATION-557, the getList(String, List) method
- was generified to be getList(String, List<Object>) but
- needs to be getList(String, List<?>) so that code that
- used a more specific list (such as a List<String>) still
- compiles against the new API.
- </action>
- </release>
-
- <release version="1.9" date="2012-08-22"
- description="Minor bug fixes and improvements">
- <action dev="oheger" type="update" issue="CONFIGURATION-503" due-to="Tino Sino">
- Small changes in user guide documentation.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-502" due-to="Tino Sino">
- Improvements of basic features and AbstractConfiguration documentation.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-501">
- XMLPropertyListConfiguration no longer swallows exception caused by
- invalid date properties. Now a warning message is logged.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-495">
- List properties can now be set correctly on a HierarchicalConfiguration
- if delimiter parsing is disabled.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-488">
- Made static DateFormat fields in XMLPropertyListConfiguration.PListNode
- final and added a note about proper synchronization.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-487">
- DataConfiguration.get() now also works with String properties and if no
- data type conversion is required.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-483">
- DatabaseConfiguration now always closes the result set.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-482" due-to="Chris Seieroe">
- The Import-Package section in the OSGi manifest now uses the
- resolution:=optional directive for optional dependencies.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-481">
- Variable substitution in configuration sources declared in a definition
- file for DefaultConfigurationBuilder now works across multiple sources.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-477">
- PropertyListConfiguration now can deal with C-style comments in plist
- configuration files. Both block and single-line comments are supported.
- </action>
- </release>
-
- <release version="1.8" date="2012-02-04"
- description="Support for Java 1.5">
- <action dev="oheger" type="fix" issue="CONFIGURATION-476">
- Fixed possible ClassCastExceptions in CompositeConfiguration related to
- special in-memory configurations.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-475">
- Class ConfigurationKey was deprecated in favor of DefaultConfigurationKey.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-474">
- Implemented delimiter parsing in HierarchicalINIConfiguration to be
- consistent with other Configuration implementations. Note that this can
- impact existing code. To switch back to the old behavior, call
- setDelimiterParsingDisabled(true) before loading the configuration.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-471">
- CompositeConfiguration now provides better support for child
- configurations that are used as in-memory configuration.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-470">
- Classes generated by JavaCC are now created dynamically during the
- build process.
- </action>
- <action dev="ebourg" type="add">
- Commons Configuration now requires Java 5 or later.
- </action>
- <action dev="ebourg" type="add" issue="CONFIGURATION-466">
- Binary literals are now supported (i.e Ob11010001).
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-465">
- Updated the dependency to Commons Jexl to version 2.1.1. This version
- provides correct OSGi manifest headers.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-463">
- Improved documentation of AbstractFileConfiguration related to load()
- methods and their impact on the base path.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-461">
- The project now uses standard Maven directory layout.
- </action>
- </release>
-
- <release version="1.7" date="2011-09-07"
- description="Many bugfixes, some new features.">
- <action dev="oheger" type="fix" issue="CONFIGURATION-460">
- Reloading now also works for configuration sources declared in the
- additional section of a configuration definition file for
- DefaultConfigurationBuilder.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-459">
- ConfigurationFactory has been deprecated. The user guide was updated to
- no more mention this class.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-458">
- HierarchicalConfiguration now provides a specific implementation of the
- clear() method. This is more efficient and also solves some other
- problems related to clearing a SubnodeConfiguration.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-456">
- Improved Javadocs of getKeys(String) method for some configuration
- classes.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-455">
- HierarchicalINIConfiguration.getSection() now creates a section if it
- does not exist. The SubnodeConfiguration returned by this method is now
- always connected to the parent ini configuration.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-452">
- XPathExpressionEngine now provides better support for the setProperty()
- method.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-448">
- The parsing of ini files has been improved for property definitions
- containing multiple separator characters.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-447">
- DefaultConfigurationBuilder now supports including environment properties
- using the "env" tag.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-446">
- XMLConfiguration now handles attributes correctly whose value is an
- empty string.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-445">
- Transforming a CombinedConfiguration with ViewNodes to an
- XMLConfiguration could cause problems with attributes. This has been
- fixed.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-439">
- Child configuration builders created for a <configuration> element
- in a configuration definition file now inherit the configuration and
- error listeners from the original DefaultConfigurationBuilder. This
- makes it possible to suppress log output created for optional
- configurations.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-438" due-to="Mike Noordermeer">
- JNDIConfiguration.getKeys() no more logs an exception if the prefix does
- not exist.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-437">
- Child configuration builders created for a <configuration> element
- in a configuration definition file now inherit some of their properties
- from the builder object which processed the file.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-436">
- The optional dependency to Apache Ant has been changed to the new
- groupId org.apache.ant. The version was updated to the most recent
- version 1.8.2 (older versions should still work).
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-434">
- HierarchicalINIConfiguration now recognizes comment characters in
- property definitions only if they are preceded by whitespace. Thus
- comment characters can now be part of the property value. This is for
- instance required for the definition of file paths which use the
- semicolon as path separator.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-433">
- Minor improvements of the support for indexed properties in
- ConfigurationDynaBean.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-432">
- The methods getList() and getStringArray() of AbstractConfiguration can
- now handle single-valued properties of primitive types.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-428">
- XMLConfiguration no longer escapes backslashs in the values of
- XML elements.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-424">
- HierarchicalINIConfiguration now works correctly with configurations
- that contain only properties in the global section.
- </action>
- <action dev="rgoers" type="fix" issue="CONFIGURATION-423" due-to="William Buckley">
- testFromClassPath() can fail when it should not because of inconsistent escaping of output from
- PropertiesConfiguration.getURL() and FileChangedReloadingStrategy.getFile().toURL().
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-418">
- A bug related to the interpretation of escape sequences for backslashes
- has been fixed. The user guide has also been improved in this area.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-415">
- Files with a plus character in their names are now handled correctly.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-413" due-to="Alexander Prishchepov">
- SubsetConfiguration now produces correct events.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-412">
- DatabaseConfiguration can now be instructed to perform a commit after an
- update of the managed database table. This makes it usable in
- environments where the connections do not use auto-commit mode.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-410">
- Added a refresh() method to AbstractFileConfiguration and
- AbstractHierarchicalFileConfiguration.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-409">
- HierarchicalINIConfiguration now correctly saves sections whose name
- contains delimiter characters.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-408">
- PropertiesConfiguration.save() escaped slashes in properties values.
- This was caused by a bug in commons-lang 2.4. Updating to the new
- version commons-lang 2.5 fixed this problem.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-407">
- Fixed a potential IllegalStateException in HierarchicalINIConfiguration
- that can be thrown when the global section is requested concurrently.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-405">
- XMLPropertyListConfiguration no longer throws a ConfigurationException
- if the file to be loaded does not have an outer dict element.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-404" due-to="Rob Walker">
- The default expression engine used by hierarchical configurations used to
- throw a NumberFormatException if invalid indices were used in property
- keys. This has been fixed. As a side effect brackets can now be used in
- property keys.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-403">
- When an empty XMLConfiguration was saved and reloaded the root element
- was assigned an empty text value. Because of this isEmpty() returned
- false for this configuration. This has been fixed.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-399">
- Default variable interpolation now supports the env: prefix for
- referencing environment variables.
- </action>
- <action dev="rgoers" type="fix" issue="CONFIGURATION-397">
- Schema violation exceptions are now propagated back to the caller.
- </action>
- <action dev="rgoers" type="fix" issue="CONFIGURATION-390">
- XMLConfiguration and CombinedConfiguraton are now synchronized to fix problems
- caused by reloading in a multithreaded environment.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-396">
- HierarchicalConfiguration.NodeVisitor is now passed the correct key to
- its visitAfterChildren() method.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-393">
- BaseConfiguration.clone() now also clones collections stored in the
- internal map. This causes list properties to be handled correctly.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-389">
- DefaultConfigurationBuilder now supports defining ini files in its
- configuration definition file.
- </action>
- <action dev="rgoers" type="fix" issue="CONFIGURATION-388">
- Attribute or element values will not be escaped when attribute or element splitting are disabled.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-363">
- When using Commons Lang 2.6 or higher as dependency nested interpolation
- in variable names is supported.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-362">
- Empty dictionaries in a PropertyList configuration are now preserved when the configuration is saved.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-385">
- DatabaseConfiguration now generates correct events for the clear() and
- clearProperty() methods.
- </action>
- <action dev="rgoers" type="add" issue="CONFIGURATION-380">
- Add ExprLookup to allow expressions to be evaluated in configurations. When
- used, this requires that Apache Commons Jexl be added as a dependency to
- projects using Commons Configuration.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-374">
- MapConfiguration now provides a way of controlling the trimming
- behavior.
- </action>
- <action dev="rgoers" type="add" issue="CONFIGURATION-378">
- Added MergeCombiner to allow elements in two configurations to be merged when the
- element and attributes in the first file match those in the second file.
- </action>
- <action dev="rgoers" type="add" issue="CONFIGURATION-340">
- File system access has been abstracted to a FileSystem interface. Two implementations
- are provided, DefaultFileSystem that behaves in a backward compatible manner and
- VFSFileSystem which uses Commons VFS to retreive and store files.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-314">
- PropertiesConfigurationLayout now allows setting the line separator to
- be used when writing the properties file.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-371">
- PropertiesConfigurationLayout now also stores the property separators used for
- the single properties. It is also possible to change them for specific
- properties or set a global properties separator. In earlier versions
- the separator was hard-coded to " = ".
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-370">
- PropertiesConfiguration now defines a nested interface IOFactory. Using
- this interface it is possible to inject custom PropertiesReader and
- PropertiesWriter implementations.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-368">
- SubnodeConfiguration now fires an event of type EVENT_SUBNODE_CHANGED
- if a structural change of the parent configuration was detected. If the
- SubnodeConfiguration is contained in a CombinedConfiguration, the
- CombinedConfiguration receives this event and can update itself.
- </action>
- <action dev="rgoers" type="fix" issue="CONFIGURATION-361">
- MultiFileHierarchicalConfiguration was not using basepath to
- construct the file url. It also threw an exception if the
- file pattern resolved to a non-existent file. This is now
- configurable.
- </action>
- <action dev="joehni" type="update" issue="CONFIGURATION-375">
- Align interpolation functionality of SubnodeConfiguration and
- SubsetConfiguration. SubsetConfiguration will now also interpolate
- keys of the parent configuration or use the local lookups of its
- parent. SubnodeConfiguration is in turn now able to lookup local
- keys as well.
- </action>
- <action dev="joehni" type="update" issue="CONFIGURATION-376">
- Align interpolation functionality of SubnodeConfiguration and
- SubsetConfiguration.
- </action>
- <action dev="joehni" type="update" issue="CONFIGURATION-377">
- Align interpolation functionality of SubnodeConfiguration and
- SubsetConfiguration.
- </action>
- <action dev="joehni" type="fix" issue="CONFIGURATION-369">
- SubsetConfiguration did not use locally registered lookups of its
- interpolator.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-359">
- Fixed broken links to the API documentation in the user's guide.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-358">
- Improvements of the user's guide for hierarchical configurations.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-357">
- The message of the ConversionException thrown by
- AbstractConfiguration.getBigInteger() is now correct.
- </action>
- <action dev="rgoers" type="add" issue="CONFIGURATION-356">
- Added getConfigurations and getConfigurationNameList.
- </action>
- <action dev="rgoers" type="add" issue="CONFIGURATION-257">
- Allow configurations to be validated using XML Schemas.
- </action>
- <action dev="rgoers" type="add" issue="CONFIGURATION-355">
- Allow configurations to be validated using XML Schemas.
- </action>
- </release>
-
- <release version="1.6" date="2008-12-25"
- description="Another set of smaller bug fixes">
- <action dev="oheger" type="update">
- Some dependencies to other Commons components have been updated to the
- recent versions. Affected are Commons Lang, Commons Collections,
- Commons Logging, Commons BeanUtils, and Commons JXPath. The older
- versions should still work.
- </action>
- <action dev="rgoers" type="add" issue="CONFIGURATION-353">
- Allow system properties to be set from a configuration file.
- </action>
- <action dev="rgoers" type="add" issue="CONFIGURATION-351">
- Allow variable resolvers to be defined configured in
- DefaultConfigurationBuilder.
- </action>
- <action dev="rgoers" type="add" issue="CONFIGURATION-350">
- Added MultiFileHierarchicalConfiguration, DynamicCombinedConfiguration
- and PatternSubtreeConfigurationWrapper.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-349" due-to="Ralph Goers">
- The visibility of DefaultConfigurationBuilder.XMLConfigurationProvider
- was changed from package local to public. This makes it easier to
- implement providers that create configuration classes derived from
- XMLConfiguration.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-348">
- AbstractHierarchicalFileConfiguration.getKeys() now also checks whether
- a reload is required.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-347">
- AbstractFileConfiguration.getKeys() now returns an iterator that points
- to a snapshot of the keys of the configuration. This prevents
- ConcurrentModificationExceptions during iteration when a reload is
- performed.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-346">
- ConfigurationUtils.convertToHierarchical() now creates multiple
- configuration nodes for properties with multiple values. This
- improves compatibility with queries.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-345">
- PropertiesConfiguration now per default uses the encoding "ISO-8859-1"
- for loading properties files.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-344">
- CombinedConfiguration could cause a deadlock when it was accessed while
- concurrently a reload of one of its child configuration happened. This
- was fixed by reducing synchronization where it is not strictly
- necessary.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-341">
- The "force reload check" mechanism of CombinedConfiguration now also
- works with sub configurations created by configurationAt().
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-339">
- When performing interpolation the methods getList() and getStringArray()
- of CompositeConfiguration did not take the order of child configurations
- into account. This could lead to wrong interpolated values when the key
- was contained in multiple child configuration. Interpolation is now
- always done in the correct order.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-338" due-to="David Donn">
- PropertiesConfiguration now also performs interpolation when searching
- for include files. This means that the name of a file to include can be
- determined by another property.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-337" due-to="Ralph Goers">
- DefaultConfigurationBuilder now supports defining new configuration
- providers in the configuration definition file.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-336">
- When converting a flat configuration to a hierarchical one it is now
- possible to specify the expression engine to be used for this purpose.
- This may be necessary if the flat configuration contains keys with
- special characters interpreted by the expression engine.
- CombinedConfiguration defines the new setConversionExpressionEngine()
- method. The expression engine passed to this method will be used when
- converting flat child configurations to hierarchical ones.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-335">
- XMLConfiguration now allows disabling the attribute splitting mechanism
- introduced in the 1.5 release (as part of the fix for CONFIGURATION-268).
- This may be necessary for correctly processing attributes containing
- both the list delimiter and the attribute delimiter character. The new
- property "disableAttributeSplitting" was added for this
- purpose.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-334">
- Made handling of parent nodes more consistent when setRoot() or
- setRootNode() of HierarchicalConfiguration are involved.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-332">
- Properties written through a DataConfiguration to a wrapped
- PropertiesConfiguration got lost when the PropertiesConfiguration was
- saved. This has been fixed.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-331">
- XMLBeanDeclaration now defines a factory method createBeanDeclaration()
- for creating the declarations for complex nested properties. This
- method can be overridden by derived classes for injecting custom
- BeanDeclaration implementations.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-328">
- A bug in XMLConfiguration.addNodes() made it impossible to add
- attribute nodes using this method. This has been fixed.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-327">
- INIConfiguration misinterpreted variables in the global section with
- a dot in their name as section names. HierarchicalINIConfiguration fixes
- this problem.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-326">
- INIConfiguration does not support obtaining a subset for the global
- section. HierarchicalINIConfiguration provides the getSection() method
- that returns the content of the global section if null is passed in as
- section name.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-325">
- INIConfiguration does not return the global section in its getSections()
- method. HierarchicalINIConfiguration fixes this problem.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-324">
- HierarchicalINIConfiguration adds support for line continuation.
- </action>
- <action dev="oheger" type="update">
- INIConfiguration has been deprecated. Its functionality is now available
- through the new HierarchicalINIConfiguration class.
- </action>
- <action dev="oheger" type="add">
- With HierarchicalINIConfiguration a complete new Configuration
- implementation for parsing Windows INI files is available. This new
- class is a full replacement of INIConfiguration and addresses some of its
- shortcomings. Being derived from HierarchicalConfiguration it offers
- the enhanced functionality of hierarchical configurations.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-322">
- ConfigurationDynaBean now works properly with indexed properties
- stored internally in the underlying configuration as arrays.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-321">
- The iterator returned by HierarchicalConfiguration.getKeys(String prefix)
- now also contains the prefix if this key is contained in the
- configuration.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-320">
- XMLPropertyListConfiguration is no longer limited to 32 bits integers.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-318">
- When an XMLConfiguration is created using the copy constructor, the name
- of the root element is now preserved.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-316">
- Changing the text of the root element of an XMLConfiguration had no
- effect when the configuration was saved. This has been fixed.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-315">
- CombinedConfiguration used to send two EVENT_COMBINED_INVALIDATE events
- for each modified child configuration. Now this event is sent only
- once after the affected child configuration was updated.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-307">
- XMLConfiguration now supports the xml:space attribute. This attribute
- can be used to preserve whitespace in the content of XML elements.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-306">
- INIConfiguration now preserves whitespace in quoted values.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-302">
- If a change has been detected by FileChangedReloadingStrategy, the
- reloadingRequired() method will now return true until
- reloadingPerformed() has been called.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-301">
- Fixed a NullPointerException that could be thrown under certain
- circumstances when saving an XMLConfiguration that was created using
- the constructor that takes a HierarchicalConfiguration.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-309">
- Instantiating an XMLPropertyListConfiguration no longer fails
- if the DTD is missing from the classpath.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-300">
- It's now possible to read a configuration file containing
- a '#' in its name (requires Java 1.4 or above).
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-260">
- Fixed the date format for XMLPropertyListConfiguration.
- </action>
- </release>
-
- <release version="1.5" date="2007-11-24" description="Many smaller bugfixes">
- <action dev="oheger" type="update" due-to="Jörg Schaible">
- Some of the dependencies in the m2 pom have been updated to be more
- consistent.
- </action>
- <action dev="oheger" type="update" due-to="Jörg Schaible">
- The dependency to commons-logging was updated to the current version
- 1.1. Older versions of commons-logging will still work.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-273">
- A new method interpolatedConfiguration() was added to AbstractConfiguration.
- This method returns a configuration with the same type and
- content as the original configuration, however all variables have been
- resolved.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-299">
- Resolving of variables with the prefix const (constant fields) caused
- a ClassCastException under certain circumstances if non-String fields
- were involved. This has been fixed.
- </action>
- <action dev="oheger" type="update" due-to="Nicolas De Loof">
- The dependencies to commons-codec and commons-jxpath have been marked
- as optional. They are not required by the core classes.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-284" due-to="Nicolas De Loof">
- There is a new configuration implementation EnvironmentConfiguration,
- which provides access to (OS) environment variables. On Java >= 1.5
- this class can be directly used; on earlier versions a dependency to ant
- is required.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-296">
- A bug in XMLConfiguration caused that attributes of the root element
- could not be changed. This has been fixed.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-290">
- A new method registerEntityId() was added to XMLConfiguration, which
- allows to register URLs for entities. A new default implementation of
- the EntityResolver interface handles these entities automatically.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-295">
- The subset() method of HierarchicalConfiguration now takes the value of
- the subset's root node into account if it is not ambigous.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-294">
- Nodes added to a XMLConfiguration using the addNodes() method could
- lose their value when the configuration was saved. This is now fixed.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-272">
- New copy() and append() methods have been added to AbstractConfiguration.
- They replace the methods with the same names in ConfigurationUtils,
- which do not handle all features of AbstractConfiguration properly (e.g.
- list delimiters in property values are incorrectly treated). To avoid
- such problems, the new methods should be used.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-291">
- The addNodes() method of hierarchical file-based configurations now
- correctly triggers an auto save.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-287">
- HierarchicalConfiguration.addNodes() now resets the reference property
- of all nodes to be added. This fixes a problem with XMLConfiguration,
- which now detects the added nodes as new and treats them correctly when
- the configuration is saved.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-285">
- DefaultConfigurationBuilder will now notify registered error listeners
- about optional configuration sources that could not be created. Before
- exceptions thrown by optional configurations were swallowed
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-283">
- ConfigurationUtils.convertToHierarchical() now correctly deals with
- property values containing escaped list delimiters. This also affects
- CombinedConfiguration when sub configurations with such property values
- are contained.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-275">
- AbstractConfiguration.addProperty() now correctly deals with list and
- array properties if delimiter parsing is disabled.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-282">
- The default expression engine used by HierarchicalConfiguration
- instances is now lazily initialized. This avoids NullPointerExceptions
- in certain server environments after a redeploy.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-281">
- Cycles in the JNDI tree no longer cause a stack overflow in
- JNDIConfiguration.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-277">
- The base implementation of clear() in AbstractConfiguration now checks
- for a potential UnsupportedOperationException when iterating over the
- existing properties.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-280"
- due-to="Roman Kurmanowytsch">
- Using file-based configurations in auto-save mode together with a
- reloading strategy could cause data loss. This has been fixed.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-279">
- A PropertiesConfiguration that was created from a non existing file
- lost its content when it was saved. This problem has been solved.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-215">
- A new getSource() method was added to CompositeConfiguration and
- CombinedConfiguration, which returns the child configuration, in which
- a given property is defined.
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-274">
- PropertiesConfiguration now supports escaping the escape character for
- list delimiters.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-269">
- PropertiesConfiguration no longer escapes the list delimiter on saving
- if the list delimiter has been disabled.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-270">
- List properties and properties containing interpolated variables
- are now properly saved by INIConfiguration.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-268">
- When delimiter parsing was disabled for XMLConfiguration, saving and
- loading the configuration accidently added escape characters to properties
- containing the list delimiter character. This has been fixed. It is now
- also possible to escape the escape character itself.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-253">
- The return value of FileConfiguration.getFile() is now always
- consistent with the result of getURL().
- </action>
- <action dev="ebourg" type="update">
- INIConfiguration uses the platform's specific line separator instead
- of the Windows line separator.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-267">
- INIConfiguration flushes the output at the end of a save operation.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-265">
- For hierarchical file-based configurations the auto-save mechanism is
- now also triggered if a subnode configuration is changed. In such a case
- the new event type EVENT_SUBNODE_CHANGED will be sent to registered
- listeners.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-266" due-to="Tobias Noebel">
- ConfigurationInterpolator now also invokes the default lookup object for
- variables with a prefix that could not be resolved by their associated
- lookup object.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-264">
- A SubnodeConfiguration per default does not see certain changes of its
- parent configuration (e.g. reloads). With a new boolean parameter of
- HierarchicalConfiguration's configurationAt() method a mode can be
- enabled, in which the subnode configuration checks for such changes and
- reconstructs itself if necessary.
- </action>
- <action dev="ebourg" type="fix">
- byte[] properties are properly saved as data fields in the plist
- configurations (PropertyListConfiguration and XMLPropertyListConfiguration).
- </action>
- <action dev="ebourg" type="add">
- DataConfiguration now supports java.net.InetAddress,
- javax.mail.internet.InternetAddress, and Java 5 enumeration types.
- Properties are converted to these types using the new generic getters.
- </action>
- <action dev="ebourg" type="fix">
- The object getters in DataConfiguration with no default value
- (i.e getURL(key)) now throw a NoSuchElementException if the flag
- throwExceptionOnMissing is set.
- </action>
- <action dev="ebourg" type="add">
- Generic get methods have been added to DataConfiguration (get(),
- getArray() and getList())
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-263">
- XMLConfiguration used to drop attributes when an element's value was a
- list. This has been fixed.
- </action>
- <action dev="ebourg" type="add" issue="CONFIGURATION-249">
- File configurations can now be saved to FTP URLs, or any other URL
- protocol supporting data output.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-180">
- Fixed a potential issue in DatabaseConfiguration where an error on
- closing a statement would prevent the connection from being closed.
- </action>
- <action dev="ebourg" type="add" issue="CONFIGURATION-261">
- Date objects are now supported in ASCII plist files.
- </action>
- <action dev="ebourg" type="update">
- XMLPropertyListConfiguration no longer requires commons-digester and
- commons-beanutils to work.
- </action>
- <action dev="ebourg" type="update">
- Fixed INIConfiguration to handle the quoted values and the lines
- containing a value and a comment.
- </action>
- </release>
-
- <release version="1.4" date="2007-04-08" description="Improved interpolation, configuration for INI files, reloading strategy triggered with JMX, bug fixes.">
- <action dev="oheger" type="update" issue="CONFIGURATION-256">
- MapConfiguration and the web-based configurations now treat strings
- that contain an escaped list delimiter correctly: The escape character
- will be removed, so that for instance "foo\,bar" becomes "foo,bar".
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-255">
- DatabaseConfiguration now handles list delimiters in property values
- correctly.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-254" due-to="Carsten Kaiser">
- After cloning a XMLConfiguration there was still a connection to the
- original configuration. So when the clone was modified and then saved
- the content of the original configuration was written. This has now
- been fixed.
- </action>
- <action dev="oheger" type="update">
- Class loading in BeanHelper is now done using ClassUtils of Commons
- Lang.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-237" due-to="Nicolas de Loof">
- With ManagedReloadingStrategy a new reloading strategy for file-based
- configurations was added that can be triggered through JMX.
- </action>
- <action dev="oheger" type="update">
- The dependencies to Commons Lang, Commons Collections, and Commons Digester
- are updated to use the recent available version. However older versions
- will still work.
- </action>
- <action dev="oheger" type="add">
- A pom for maven 2 was added.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-252">
- ConfigurationUtils.getFile() now always checks first whether the passed
- in file name is absolute. If it is, this file will be returned. This
- prevents that on Unix under certain circumstances absolute file names
- are interpreted as relative ones.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-251">
- The dependency to xml-apis was changed to the version 1.0.b2. The so
- far used version 2.0.2 is reported to be bogus.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-245">
- In addition to configuration event listeners now so-called configuration
- error listeners are supported. These listeners are notified about
- internal errors that had been logged and swallowed by privious versions.
- The new enableRuntimeExceptions() method of ConfigurationUtils
- registers a special error listener at the passed in configuration that
- generates a runtime exception when an error event is received.
- </action>
- <action dev="oheger" type="add">
- AbstractConfiguration now allows to set an instance specific logger
- using the setLogger() method. This gives clients more control over a
- configuration's logging behavior.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-155">
- SubsetConfiguration and CompositeConfiguration were updated to fully
- support an instance specific list delimiter. Concerning splitting of
- string properties that contain a list delimiter character, these
- classes now behave like a "normal" configuration.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-192">
- Variable interpolation features have been improved. A variable can now
- have the form ${prefix:variableName} where the prefix
- defines the type of the variable. The standard types sys for
- system properties and const for constants are supported.
- Variables without a prefix are treated as references to other
- configuration properties (which is compatible to earlier versions).
- </action>
- <action dev="oheger" type="update">
- Commons Configuration now depends on Commons Lang 2.2. Some features
- of Lang's new text package are used.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-244">
- The number of dependencies needed for DefaultConfigurationBuilder was
- reduced by letting some of the default configuration providers resolve
- their classes per reflection.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-240">
- File-based configurations with a reloading strategy did not work well
- together with CombinedConfiguration because the reloading strategy is
- only checked when its associated configuration is accessed (which does
- not happen when only the combined configuration is queried).
- As a workaround CombinedConfiguration now provides the boolean
- forceReloadCheck property. If this is set to true, all contained
- configurations will be triggered when a property is queried. This will
- cause a reload if necessary.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-243">
- Configuration declarations in the configuration definition file for
- DefaultConfigurationBuilder that are marked as optional now support a
- new attribute config-forceCreate. If this attribute is set
- to true and the initialization of the configuration fails,
- DefaultConfigurationBuilder tries to add an empty configuration of the
- correct type to the resulting combined configuration. Before this
- change optional configurations that caused errors were never added to
- the combined configuration.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-241">
- CompositeConfiguration.clearProperty() now generates the correct
- update events.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-242">
- The configuration returned by HierarchicalConfiguration.subset()
- performed variable interpolation only in the keys that belong to the
- subset. Now the parent configuration is searched, too, to resolve the
- value of the referenced property. This is consistent with the way
- SubnodeConfiguration works.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-234">
- DefaultConfigurationBuilder now internally uses the standard expression
- engine for hierarchical configurations. So the dependency to Commons
- JXPath is no more needed when this class is used. Note that this change
- has some impact on existing code that manually sets properties before
- the combined configuration is created; this code must now be adapted to
- the changed syntax of property keys.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-236">
- HierarchicalConfiguration and some of its sub classes now define a
- copy constructor.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-197" due-to="Trevor Charles Miller">
- A new configuration class for windows ini files was added.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-229">
- For file-based configurations loaded by ConfigurationFactory the load()
- method was called before all of the properties specified by attributes
- of the XML element have been initialized. Now load() is called after
- property initialization.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-235">
- Interpolation of non string values did not work when SubsetConfiguration
- was involved. This has now been fixed.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-227">
- The compatibility of ConfigurationDynaBean with other configuration types
- than those that inherit from BaseConfiguration was improved.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-233" due-to="Rainer Jung">
- The getList() method of CompositeConfiguration does now fully support
- variable interpolation. So it is possible to refer to a variable in
- one (sub) configuration that is defined in another configuration.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-230">
- XPathExpressionEngine used to create wrong keys for attribute nodes.
- This caused some operations on XMLConfiguration to fail when such an
- expression engine was set (e.g. reloading). Now correct keys for
- attributes are constructed.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-228">
- Some of the methods of file-based hierarchical configurations (e.g.
- subset() or configurationAt()) did not take an eventually set reloading
- strategy into account. This is now fixed by overriding the internal
- fetchNodeList() method in AbstractHierarchicalFileConfiguration and
- letting it always check for a reload.
- </action>
- </release>
-
- <release version="1.3" date="2006-09-24">
- </release>
-
- <release version="1.3-rc2" date="2006-09-03">
- <action dev="oheger" type="update" issue="CONFIGURATION-223" due-to="Gabriele Garuglieri">
- AbstractFileConfiguration now overrides addProperty() and setProperty()
- instead of addPropertyDirect() to implement the auto save feature.
- This was necessary to properly integrate PropertiesConfigurationLayout.
- It has also the advantage that an auto save is triggered only once if
- multi-valued properties are involved (before a save operation was
- performed for each property value).
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-222" due-to="Gabriele Garuglieri">
- The new PropertiesConfigurationLayout class broke the save() operation
- of PropertiesConfiguration when an instance was newly created and
- populated in memory. This is fixed now by ensuring that a layout object
- is immediately created and registered as event listener at the
- configuration.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-221" due-to="Rainer Jung">
- ConfigurationFactory now supports variables in its configuration
- definition files. These variables are resolved using system properties
- and have the typical ${} syntax.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-216" due-to="Gabriele Garuglieri">
- There were still some problems with resolving relative paths when
- configuration files are loaded from classpath. This fix addresses these
- issues.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-220">
- DataConfiguration.getDateArray() used to ignore the format argument.
- This was fixed.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-219">
- PropertiesConfiguration now defines its own clone() method to handle
- the associated PropertiesConfigurationLayout object correctly.
- </action>
- </release>
-
- <release version="1.3-rc1" date="2006-07-30">
- <action dev="oheger" type="update" issue="CONFIGURATION-217">
- The dependency to servletapi was updated from version 2.3 to version
- 2.4, but version 2.3 will still work.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-104">
- A new class PropertiesConfigurationLayout was introduced whose task is
- to preserve the structure (e.g. comments, blanc lines) of a file
- loaded by PropertiesConfiguration. Each PropertiesConfiguration
- object is now associated with such a layout object. A saved properties
- file will look very similar to its original.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-145">
- clone() methods have been added to BaseConfiguration, AbstractFileConfiguration,
- MapConfiguration, CompositeConfiguration, and CombinedConfiguration.
- So the most important Configuration implementations now support
- cloning. To ConfigurationUtils an utility method cloneConfiguration()
- was added that allows to conveniently clone a configuration.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-216">
- If a configuration file was to be loaded from classpath, the
- constructor of AbstractFileConfiguration dropped the file's path. The
- path is now taken into account.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-214">
- The getter methods for numeric data types in AbstractConfiguration now
- support conversions between different Number types, e.g. you can now
- call getLong(key) when key points to an Integer value.
- </action>
- <action dev="oheger" type="add">
- The new class DefaultConfigurationBuilder was added as an alternative to
- ConfigurationFactory. It provides some more features and creates a
- CombinedConfiguration object
- </action>
- <action dev="oheger" type="add">
- The new class CombinedConfiguration was added as a hierarchical
- alternative to CompositeConfiguration.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-143">
- Support for low-level configuration events was added to all classes
- derived from AbstractConfiguration. The major part of this is handled
- by the new super class EventSource of AbstractConfiguration.
- </action>
- <action dev="oheger" type="add">
- A new method convertToHierarchical() was added to ConfigurationUtils,
- which is able to convert an arbitrary configuration object into a
- hierarchical configuration.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-63">
- Loading of file-based configurations no longer throws a NullPointerException
- in setups where the thread context class loader is not set.
- </action>
- <action dev="oheger" type="update">
- The dependency to dom4j was removed; it was only used by two test classes,
- which have been re-written.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-100">
- XMLConfiguration used to drop the DOCTYPE declaration when saving the
- configuration. It is now able to extract the DTD's public and system ID
- and write them back (more complex DOCTYPE declarations are still not supported).
- With the new methods setSystemID() and setPublicID(), the DOCTYPE
- declaration can be configured.
- </action>
- <action dev="ebourg" type="add" issue="CONFIGURATION-178">
- Added two new constructors in CompositeConfiguration accepting a
- collection of configurations as a parameter.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-186">
- (Basic) Support for declaring beans in configuration files was added.
- Some new classes in the beanutils package allow to create instances from
- these declarations.
- </action>
- <action dev="oheger" type="update">
- The implementation of the interpolation features have been extracted out
- off AbstractConfiguration and moved to PropertyConverter. The
- interpolateHelper() method of AbstractConfiguration is now deprectated
- and will not be called any more during interpolation.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-182">
- A new method configurationsAt() was added to HierarchicalConfiguration
- that provides a convenient way of iterating over complex list-like
- structures without the need of manually constructing configuration keys
- with indices.
- </action>
- <action dev="oheger" type="add">
- A new class SubnodeConfiguration was introduced that wraps a configuration
- node of a HierarchicalConfiguration. All operations performed on this
- configuration use this wrapped node as root. The new configurationAt()
- method of HierarchicalConfiguration returns such a SubnodeConfiguration
- for a specified sub node.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-173">
- With XPathExpressionEngine an expression engine for hierarchical
- configurations is now available that can evaluate XPATH expressions in
- property keys. This expression engine implementation is based on
- Commons JXPath, which is now declared as a new dependency (but at
- runtime it is only needed if the XPathExpressionEngine class is used).
- </action>
- <action dev="oheger" type="add">
- The code for interpreting property keys was refactored out off
- HierarchicalConfiguration. Instead this class now supports pluggable
- expression engines (using the setExpressionEngine() method). So it is
- possible to plug in different expression languages. A default expression
- engine is provided that understands the native expression language used
- by hierarchical configurations in older versions. During the process of
- this refactoring some methods of HierarchicalConfiguration have been
- deprecated; they will not be called any more when searching or adding
- properties. These are the following: createAddPath(), fetchAddNode(),
- findLastPathNode(), findPropertyNodes().
- </action>
- <action dev="oheger" type="update">
- A larger refactoring was performed on the inner Node class of
- HierarchicalConfiguration: A ConfigurationNode interface was extracted
- for which a default implementation (DefaultConfigurationNode) is
- provided. HierarchicalConfiguration.Node now extends this default
- implementation. The new ConfigurationNode interface defines some more
- methods than the Node class did originally for conveniently dealing with
- sub nodes and attributes. HierarchicalConfiguration now uses the new
- type ConfigurationNode whereever possible. Some methods dealing with
- Node objects have been deprecated and replaced by versions operating on
- ConfigurationNode objects instead.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-155" due-to="Jorge Ferrer">
- All configuration classes derived from AbstractConfiguration now allow
- to set an instance specific list delimiter. This can be done through
- the new method setListDelimiter(). As before it is possible to define
- a default list delimiter, which will be used if no instance specific
- delimiter is set. This can be done using the new setDefaultListDelimiter()
- method (the methods get/setDelimiter() have been deprecated). With the
- new setDelimiterParsingDisabled() method parsing of lists can be
- disabled at all.
- </action>
- </release>
-
- <release version="1.2" date="2005-12-17">
- </release>
-
- <release version="1.2-rc3" date="2005-12-07">
- <action dev="oheger" type="update">
- Commons Configuration now declares a dependency to Xalan. As with
- Xerces this dependency is only needed for JDK 1.3. It was introduced
- in a process of making Configuration buildable on a JDK 1.3. Documentation
- about the build process was also added.
- </action>
- <action dev="oheger" type="update">
- The dependency to Commons Beanutils Collections was unnecessary and
- thus removed.
- </action>
- <action dev="oheger" type="update">
- Commons Configuration now depends on Commons Digester 1.6 instead of 1.5.
- (This was done only to pick up the latest available release of digester.)
- </action>
- </release>
-
- <release version="1.2-rc2" date="2005-11-23">
- <action dev="oheger" type="update" issue="CONFIGURATION-2">
- ConfigurationDynaBean now implements the java.util.Map interface (as
- was stated in the javadocs). This was done by deriving the class from
- ConfigurationMap.
- </action>
- </release>
-
- <release version="1.2-rc1" date="2005-11-11">
- <action dev="oheger" type="update" issue="CONFIGURATION-33">
- The reload() method in AbstractFileConfiguration was updated to prevent
- reentrant invocation, which may be caused by some methods when they
- are called during a reloading operation.
- </action>
- <action dev="ebourg, oheger" type="update">
- AbstractHierarchicalFileConfiguration, a new base class for file based
- hierarchical configurations, was introduced. XMLConfiguration now
- extends this class.
- </action>
- <action dev="oheger" type="update" due-to="Kay Doebl" issue="CONFIGURATION-41">
- XMLConfiguration now prints the used encoding in the xml declaration of
- generated files. In earlier versions always the default encoding was
- written. PropertiesConfiguration now always uses the platform specific
- line separator when saving files.
- </action>
- <action dev="ebourg" type="update" issue="CONFIGURATION-8">
- PropertiesConfiguration now translates properly the escaped unicode
- characters (like \u1234) used in the property keys. This complies with
- the specification of java.util.Properties.
- </action>
- <action dev="ebourg" type="update" issue="CONFIGURATION-123">
- ConfigurationConverter.getProperties() now uses the delimiter of the
- specified configuration to convert the list properties into strings.
- </action>
- <action dev="ebourg" type="update" issue="CONFIGURATION-123">
- The interpolation of variables (${foo}) is now performed in all property
- getters of AbstractConfiguration and DataConfiguration. As a side effect
- the Properties object returned by ConfigurationConverter.getProperties()
- contains only interpolated values.
- </action>
- <action dev="ebourg" type="update" issue="CONFIGURATION-35">
- PropertiesConfiguration now uses the ISO-8859-1 encoding by default
- instead of the system encoding to comply with the specification of
- java.util.Properties.
- </action>
- <action dev="ebourg" type="update" issue="CONFIGURATION-44">
- JNDIConfiguration no longer logs an error when attempting to get
- a property that doesn't exist in the configuration.
- </action>
- <action dev="ebourg" type="update" issue="CONFIGURATION-99">
- Attempting to load a configuration from a directory instead of a file
- will now throw a ConfigurationException.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-28">
- If a multi-valued property was involved in an interpolation operation,
- AbstractConfiguration created a string representation of the list of all
- values. This was changed to only use the first value, which makes more
- sense in this context and is consistent with other getters for single
- valued properties.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-83">
- If an include file with a relative path cannot be found in the base
- path, PropertiesConfiguration now also tries to resolve it based on its
- own location.
- </action>
- <action dev="ebourg" type="update" issue="CONFIGURATION-117" due-to="Steve Bate">
- Fixed MapConfiguration to store the list of values added under a same
- key instead of the last value added.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-80">
- Fixed a bug in the handling of relative file names in ConfigurationFactory:
- In most cases relative file names were not resolved relative to the
- location of the configuration definition file as stated in the documentation.
- This behavior was now changed to always be in sync with the documentation.
- This may have an impact on existing code which uses workarounds for
- the erroneous resolving mechanism.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-6">
- Empty elements or elements whose content consists only of comments or
- whitespace are now taken into account by XMLConfiguration. They are
- added to the configuration; their value is an empty string.
- </action>
- <action dev="oheger" type="add">
- XMLConfiguration now sets a valid system id in the InputSource used for
- loading files. This enables XML parsers to correctly resolve relative
- files, e.g. DTDs.
- </action>
- <action dev="ebourg" type="update" issue="CONFIGURATION-74">
- getKeys() in HierarchicalConfiguration now returns the keys in the same order the properties were inserted.
- </action>
- <action dev="ebourg" type="update">
- Commons Configuration now depends on Commons Collections 3.1 instead of 3.0
- </action>
- <action dev="ebourg" type="add" issue="CONFIGURATION-195">
- New configurations implementing the "property list" format used in
- NeXT/OpenStep and its XML variant used in Mac OS X.
- (PropertyListConfiguration and XMLPropertyListConfiguration)
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-97">
- Resolved some issues with XMLConfiguration and properties containing
- the delimiter character. These properties are now correctly treated,
- escaping the delimiter will work, too.
- </action>
- <action dev="ebourg" type="add">
- Added support for XMLPropertiesConfiguration in ConfigurationFactory.
- A <properties> element will generate a XMLPropertiesConfiguration
- if the filename ends with ".xml".
- </action>
- <action dev="ebourg" type="add" issue="CONFIGURATION-184">
- PropertiesConfiguration now supports escaped key/value separators in the keys
- (i.e foo\:key = bar).
- </action>
- <action dev="ebourg" type="add" issue="CONFIGURATION-166">
- PropertiesConfiguration now supports all key/value separators supported by java.util.Properties
- ('=', ':' and white space characters).
- </action>
- <action dev="ebourg" type="update">
- Commons Configuration now depends on Commons Lang 2.1 instead of 2.0
- </action>
- <action dev="ebourg" type="update" issue="CONFIGURATION-207">
- Comment lines for PropertiesConfiguration can start with the '!' char (compatibility with java.util.Properties).
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-84">
- Because ConfigurationUtils.copy() does not fully support hierarchical
- configurations a clone() method was added to HierarchicalConfiguration
- that can be used instead.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-206">
- XMLConfiguration now provides some support for validating XML
- documents. With the setValidating() method DTD validation can be
- enabled. It is also possible to set a custom DocumentBuilder allowing
- a caller to perform enhanced configuration of the XML loading process.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-121">
- AbstractFileConfiguration now always sets a valid base path if the
- configuration file could be located. This allows PropertiesConfiguration
- to resolve include files even when loaded from class path.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-85">
- Updated XMLConfiguration to correctly deal with properties containing
- dots in their names. Such properties could not be accessed before.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-9">
- PropertiesConfiguration's handling of backslash characters at the end
- of line was incorrect when there was an even number of trailing
- backslashes. This is now fixed.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-130">
- Fixed a problem related to file based configurations that are loaded
- from a URL which is application/x-www-form-urlencoded: the save() method
- would store such files at a wrong location.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-50">
- Updated FileChangedReloadingStrategy to use the file based configuration's
- source URL to find the file to watch. Before that it was possible that
- the strategy checked the wrong file. For configuration files loaded
- from a jar FileChangedReloadingStrategy now checks the jar file itself
- for changes. Finally a bug was fixed which caused the strategy to
- check the watched file's last change date on every invocation of its
- reloadingRequired() method ignoring its refresh delay. Thanks to Jorge
- Ferrer.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-62">
- Fixed a bug in the collaboration between XMLConfiguration and its
- reloading strategy: The configuration did not check its reloading
- strategy, so no reload was performed.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-119">
- Disabled auto save mode during PropertiesConfiguration.load(). Prior
- it was possible that the properties file to be loaded was immideately
- overwritten.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-89">
- Under certain circumstances it was possible that a reloading strategy
- set for PropertiesConfiguration interferred with the save() method causing
- the configuration file to be erased. This has now been fixed.
- </action>
- <action dev="oheger" type="update" due-to="Jamie M. Guillemette" issue="CONFIGURATION-94">
- AbstractFileConfiguration now stores the URL of the config file in the
- load() methods. This URL is reused by the save() method to ensure that
- the same file is written.
- </action>
- <action dev="ebourg" type="update" due-to="Alistair Young">
- XMLPropertiesConfiguration no longer depends on Digester to parse the
- configuration file, it's now implemented with a pure SAX parser.
- </action>
- <action dev="oheger" type="update" due-to="Mi Zhang" issue="CONFIGURATION-49">
- Fixed a bug which causes XMLConfiguration.save to lose attribute values
- under some circumstances. The clear() method now also ensures that the
- associated DOM document is always cleared.
- </action>
- <action dev="ebourg" type="update" due-to="Kunihara Tetsuya" issue="CONFIGURATION-13">
- XMLConfiguration now parse the configuration using the encoding
- declared in the XML header instead of the OS default encoding.
- </action>
- <action dev="ebourg" type="update" due-to="Zsolt Koppany">
- XMLConfiguration now uses the delimiter set by setDelimiter(char).
- </action>
- </release>
-
- <release version="1.1" date="2005-04-02">
- <action dev="ebourg" type="update" issue="CONFIGURATION-134">
- Fixed a ConcurrentModificationException thrown when calling clear()
- on a SubsetConfiguration applied to a BaseConfiguration.
- </action>
- <action dev="ebourg" type="update" issue="CONFIGURATION-81">
- The resolveContainerStore() method in AbstractConfiguration now works
- properly with arrays of objects and arrays of primitives. This means
- it is possible to store an array of value in the configuration and
- retrieve the first element with the getString(), getInt()... methods.
- </action>
- </release>
-
- <release version="1.1-rc2" date="2005-03-06">
- <action dev="oheger" type="update" issue="CONFIGURATION-118">
- Updated documentation for FileConfiguration's load() methods. Fixed a
- problem in XMLConfiguration with the output of the save() method when
- multiple files were loaded.
- </action>
- <action dev="ebourg" type="update">
- Fixed a bug in FileChangedReloadingStrategy preventing the detection
- of a file change in some cases.
- </action>
- <action dev="ebourg" type="update">
- Changed getXXXArray() and getXXXList() in DataConfiguration to return
- an empty array/list for empty values.
- </action>
- <action dev="ebourg" type="update" issue="CONFIGURATION-58">
- Fixed getLongArray(), getFloatArray() and getDoubleArray() in DataConfiguration,
- the values were cast into integers.
- </action>
- </release>
-
- <release version="1.1-rc1" date="2005-02-13">
- <action dev="oheger" type="add" issue="CONFIGURATION-88">
- ConfigurationFactory now always configures digester to use the context
- classloader. This avoids problems in application server environments,
- which use their own version of digester. Thanks to Mike Colbert for the
- patch!
- </action>
- <action dev="ebourg" type="add" issue="CONFIGURATION-148">
- Added a new configuration, XMLPropertiesConfiguration, supporting the
- new XML format for java.util.Properties introduced in Java 1.5.
- A 1.5 runtime is not required to use this class.
- </action>
- <action dev="ebourg" type="add" issue="CONFIGURATION-190">
- Added a comment header to PropertiesConfiguration. The header is not
- parsed when the file is loaded yet.
- </action>
- <action dev="ebourg" type="add">
- Added the setEncoding(String) and the getEncoding() methods to the
- FileConfiguration interface to control the encoding of the
- configuration file.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-210">
- Access to the top level element of the XML document is now provided. For
- newly created configurations this element can be changed before the
- document is written.
- </action>
- <action dev="oheger" type="update" issue="CONFIGURATION-168">
- Merged the two XML related configuration classes into one new class
- XMLConfiguration. This new class should provide the best of its
- ancestors.
- </action>
- <action dev="ebourg" type="update">
- Replaced the PropertyTokenizer inner class in AbstractConfiguration
- with the split method in PropertyConverter. Also moved the method
- building an iterator on the elements of a composite value in
- PropertyConverter as toIterator().
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-15">
- Some cleanup of the handling of the base path in file based configurations.
- The base path is now always taken into account.
- </action>
- <action dev="ebourg" type="fix">
- Calling getProperties on a JNDIConfiguration no longer throws an
- UnsupportedOperationException.
- </action>
- <action dev="ebourg" type="remove">
- Removed the getPropertyDirect method from AbstractConfiguration,
- concrete configurations now implement directly the getProperty method
- from the Configuration interface.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-187">
- Added implementation of a save() method for HierarchicalXMLConfiguration.
- </action>
- <action dev="ebourg" type="update">
- Constructing a file based configuration with a File no longer throws
- an exception when the file doesn't exist.
- </action>
- <action dev="ebourg" type="add">
- Saving a configuration now creates the path to the file if it doesn't exist.
- </action>
- <action dev="ebourg" type="update" issue="CONFIGURATION-45">
- AbstractFileConfiguration.save(File) no longer fails silently when
- an error occurs, a ConfigurationException is thrown instead.
- </action>
- <action dev="ebourg" type="fix">
- ConfigurationUtils.locate() now checks if the URL based resources exist.
- This fixes a bug preventing configuration files from being found if
- the configuration descriptor is in a JAR file (reported by Grant Ingersoll).
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-96">
- Fixed NPE that were caused in the constructors of file based
- configurations if an invalid file name was specified.
- </action>
- <action dev="oheger" type="add" issue="CONFIGURATION-162">
- Added support for optional configuration sources in definition files for
- ConfigurationFactory. A new optional attribute allows to specify whether a
- configuration source is mandatory or optional.
- </action>
- <action dev="ebourg" type="fix">
- JNDIConfiguration.getKeys() now returns an empty iterator instead of
- throwing a ConfigurationRuntimeException when a NamingException occurs.
- The NamingExceptions are now logged.
- </action>
- <action dev="ebourg" type="fix">
- DatabaseConfiguration.isEmpty() now returns true if an SQLException occurs.
- </action>
- <action dev="ebourg" type="add">
- Added two methods copy(Configuration, Configuration) and
- append(Configuration, Configuration) in ConfigurationUtils to copy
- properties between configurations.
- </action>
- <action dev="ebourg" type="update">
- Moved the constructors implementations from PropertiesConfiguration and
- XMLConfiguration to AbstractFileConfiguration.
- </action>
- <action dev="epugh" type="remove">
- Remove deprecated getVector() implementations.
- </action>
- <action dev="ebourg" type="add" issue="CONFIGURATION-147">
- File based configurations can now be automatically reloaded when the
- underlying file is modified.
- </action>
- <action dev="ebourg" type="add" issue="CONFIGURATION-156">
- Added a clear() method to the Configuration interface to remove
- all properties.
- </action>
- <action dev="ebourg" type="add" issue="CONFIGURATION-208">
- Added a SystemConfiguration wrapping the system properties.
- ConfigurationFactory recognizes the corresponding <system/>
- element.
- </action>
- <action dev="ebourg" type="add">
- Added a MapConfiguration to turn any Map into a Configuration. The
- getConfiguration() methods in ConfigurationConverter now use
- MapConfiguration, as a result the Configuration returned is always
- synchronized with the underlying Properties or ExtendedProperties,
- changes made to the Configuration are available in the Properties,
- and reciprocally.
- </action>
- <action dev="ebourg" type="add" issue="CONFIGURATION-146">
- The "autoSave" feature of XMLConfiguration has been generalized
- to all file based configurations.
- </action>
- <action dev="ebourg" type="add" issue="CONFIGURATION-191">
- Numeric properties can now be specified in hexadecimal format,
- for example "number = 0xC5F0".
- </action>
- <action dev="oheger" type="fix" issue="CONFIGURATION-36">
- Fixed HierarchicalConfiguration.getKeys(String), it returned an empty
- iterator if the prefix string contained indices.
- </action>
- <action dev="ebourg" type="add">
- Added a DataConfiguration decorator providing getters for all useful
- types found in a configuration (URL, Locale, Date, Calendar, Color,
- lists and arrays)
- </action>
- <action dev="ebourg" type="add">
- Added 5 new configurations to be used in a web environment:
- AppletConfiguration, ServletConfiguration, ServletContextConfiguration,
- ServletRequestConfiguration, ServletFilterConfiguration.
- </action>
- </release>
-
- <release version="1.0" date="2004-10-11" description="First official release">
- <action dev="ebourg" type="fix" issue="CONFIGURATION-66">
- The getStringArray() method in CompositeConfiguration now interpolates
- the strings.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-23">
- SubsetConfiguration now shares the "throwExceptionOnMissing" property
- with its parent.
- </action>
- <action dev="ebourg" type="fix">
- Removed "file:" at the beginning of the base path when calling
- setFile() on a FileConfiguration. This prevented auto saving an
- XMLConfiguration loaded from a File (issue reported by Mark Roth).
- </action>
- <action dev="ebourg" type="update">
- All NamingEnumerations in JNDIConfiguraiton are now properly closed (Suggested
- by Eric Jung).
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-90">
- Properties added to an XMLConfiguration are no longer duplicated in the
- resulting XML file.
- </action>
- </release>
-
- <release version="1.0-rc2" date="2004-09-24">
- <action dev="ebourg" type="update">
- Unified the mechanisms for loading and saving file based configurations.
- PropertiesConfiguration, XMLConfiguration and HierarchicalXMLConfiguration
- now implement the same FileConfiguration interface. BasePathLoader,
- BasePathConfiguration, ClassPropertiesConfiguration and
- BasePropertiesConfiguration have been removed.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-22">
- Replaced the calls to Boolean.booleanValue(boolean) in
- AbstractConfiguration and ConfigurationDynaBean to be Java 1.3
- compatible.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-112">
- Changing the prefix of a JNDIConfiguration will now reset the base context used.
- </action>
- <action dev="ebourg" type="add" due-to="Eric Jung">
- The context used by JNDIConfiguration can be specified in its
- constructor or through the setContext() method. The context can be
- accessed with the getContext() method which is now public.
- </action>
- <action dev="henning" type="add">
- Make the behavior on missing properties for the get methods that
- return objects configurable. A property throwExceptionOnMissing
- can be set and then the getters throw an NoSuchElementException.
- The old default behavior of returning a null value has
- been restored.
- </action>
- <action dev="epugh" type="add" issue="CONFIGURATION-151">
- Allow configurations extending AbstractConfiguration to change the
- delimiter used from "," to something else.
- </action>
- <action dev="epugh" type="fix">
- PropertiesConfiguration.save() method has issues with preserving the filename
- </action>
- <action dev="epugh" type="fix" issue="CONFIGURATION-132" due-to="Mark Woodman">
- Test cases for HierarchicalConfigurationXMLReader stores comments as text nodes.
- </action>
- <action dev="epugh" type="fix" issue="CONFIGURATION-183" due-to="Ricardo Gladwell">
- Clarify for ConfigurationDynaBean that the get method should throw an
- illegalArgumentException if there is no property specified.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-25">
- Fixed a ClassCastException when adding a non String property to an XMLConfiguration.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-138" due-to="Oliver Heger">
- Fixed the handling of attribute properties by HierarchicalConfigurationConverter.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-125">
- Fixed a ClassCastException thrown on adding a non string property
- in a DatabaseConfiguration.
- </action>
- <action dev="henning" type="add">
- Bring back the getVector() methods in the Configuration interface.
- These methods are needed for "drop-on" replacement of the
- various pre-1.0 commons-configuration snapshots and are already
- deprecated. These methods will be removed for 1.1.
- </action>
- </release>
-
- <release version="1.0-rc1" date="2004-08-14">
- <action dev="epugh" type="add" issue="CONFIGURATION-132" due-to="Oliver Heger">
- HierarchicalConfigurationXMLReader stores comments as text nodes.
- </action>
- <action dev="epugh" type="add" issue="CONFIGURATION-122" due-to="Ricardo Gladwell">
- project.xml contains bad dependencies.
- </action>
- <action dev="epugh" type="add" issue="CONFIGURATION-64" due-to="Brent Worden">
- clearXmlProperty doesn't remove list properties completely.
- </action>
- <action dev="epugh" type="add" issue="CONFIGURATION-183" due-to="Ricardo Gladwell">
- new ConfigurationDynaBean.
- </action>
- <action dev="epugh" type="add" issue="CONFIGURATION-185" due-to="Ricardo Gladwell">
- new ConfigurationMap and ConfigurationSet.
- </action>
- <action dev="epugh" type="fix" issue="CONFIGURATION-91" due-to="Ricardo Gladwell">
- Problem adding property XMLConfiguration.
- </action>
- <action dev="epugh" type="remove">
- ConfigurationXMLDocument removed until post 1.0.
- </action>
- <action dev="epugh" type="fix" issue="CONFIGURATION-18">
- DatabaseConfiguration doesn't support List properties.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-137">
- Fixed a bug related to XMLConfiguration. Can't add a new property as an
- attribute in XMLConfiguration.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-116">
- Fixed a bug related to XMLConfiguration. XMLConfiguration doesn't
- support attribute names with a dot.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-4">
- Fixed a bug related to XMLConfiguration. XMLConfiguration doesn't ignore
- comments.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-32">
- Fixed a bug related to XMLConfiguration. XMLConfiguration.save() doesn't
- escape reserved characters.
- </action>
- <action dev="ebourg" type="add" issue="CONFIGURATION-114">
- Added save methods in XMLConfiguration similar to PropertiesConfiguration
- to save the configuration to another file.
- </action>
- <action dev="ebourg" type="update">
- Removed the DOM4J implementations in favor of the DOM ones.
- DOMConfiguration has been renamed to XMLConfiguration, and
- HierarchicalDOMConfiguration to HierarchicalXMLConfiguration. The
- elements parsed by the ConfigurationFactory have been changed
- accordingly.
- </action>
- <action dev="ebourg" type="add">
- Added a save() method to PropertiesConfiguration and save(Writer out),
- save(OutputStream out), save(OutputStream out, String encoding) to
- BasePropertiesConfiguration.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-98">
- List values are now properly stored as comma separated values in the
- Properties object returned by ConfigurationConverter.getProperties()
- </action>
- <action dev="ebourg" type="update">
- Introduced a ConversionException thrown when the value of a property is
- not compatible the type requested. It replaces the ClassCastException
- and the NumberFormatException thrown previously.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-174">
- Tokens like ${ref} in a PropertyConfiguration are now properly saved.
- </action>
- <action dev="ebourg" type="fix" issue="CONFIGURATION-127">
- The getList() method of a CompositeConfiguration now returns the list
- composed of the elements in the first matching configuration and the
- additional elements found in the in memory configuration.
- </action>
- <action dev="epugh" type="fix">
- SubsetConfiguration returns a List on getList(). AbstractConfiguration
- wouldn't properly deal with a List, only with a Container for getList()!
- Thanks to jschaible for the unit test.
- </action>
- <action dev="jschaible" type="add">
- Direct support of XML via DOM. New classes DOMConfiguration and HierarchicalDOMConfiguration.
- </action>
- <action dev="jschaible" type="update">
- Update build to not include test configuration files in resulting jar.
- </action>
- <action dev="ebourg" type="update">
- Refactored JNDIConfiguration to use AbstractConfiguration.
- </action>
- <action dev="ebourg" type="update" issue="CONFIGURATION-76">
- Fixed invalid subsets by refactoring out the subset logic into a SubsetConfiguration.
- </action>
- <action dev="oheger" type="fix">
- Reapply the ConfigurationXMLDocument that went missing during migration out of sandbox.
- </action>
- <action dev="epugh" type="update">
- Apply ASL 2.0 license. Thanks to Jeff Painter for scripting the conversion!
- </action>
- <action dev="epugh" type="add">
- Changed CompositeConfiguration to extend from AbstractConfiuration. This means that the behavior of
- CompositeConfiguration is much similar to others like PropertiesConfiguration in handling of missing
- keys, interpolation, etc.. Previously CompositeConfiguration had quite a few differences.
- </action>
- <action dev="epugh" type="update">
- Removed "defaults" from BaseConfiguration. Defaults are now done via using a CompositeConfiguration, either
- directly or via a ConfigurationFactory. if you want to save changes made to a Configuration, then you use
- a CompositeConfiguration and get back the inMemoryConfiguration that has the delta of changes. Added a
- bit of documentation on this.
- </action>
- <action dev="epugh" type="update" issue="CONFIGURATION-154">
- Enhancement: Configuration Comparator.
- </action>
- <action dev="epugh" type="update" issue="CONFIGURATION-54">
- BaseConfiguration: containsKey ignores default properties.
- I have changed it so that now the defaults are paid attention to.
- </action>
- <action dev="ebourg" type="add">
- The Configuration interface now supports BigDecimal and BigInteger numbers.
- </action>
- <action dev="epugh" type="add">
- ConfigurationException is now thrown by public methods instead of Exception or
- IOException or whatnot.
- </action>
- <action dev="ebourg" type="add">
- For configuration based on properties files, allow characters like \n etc
- to be escaped and unescaped.
- </action>
- <action dev="ebourg" type="add">
- New DatabaseConfiguration that uses a database to store the properties.
- It supports 2 table structures: one table per configuration (2 colums
- key/value), one table for multiple configurations (2 columns key/value +
- 1 column for the name of the configuration).
- </action>
- <action dev="oheger" type="add">
- ConfigurationFactory now supports the hierarchicalDom4j element in configuration
- definition file
- </action>
- <action dev="ebourg" type="update">
- Change all Vector objects to List objects.
- </action>
- <action dev="oheger" type="add">
- ConfigurationFactory now supports two types of properties files, additional and
- override. Additional properties add each other together. Override override each
- other. This allows you to have a single property that is either aggregated from a
- number of sources, or have a property that is overridden according to a specific
- order of sources.
- </action>
- <action dev="oheger" type="update">
- AbstractConfiguration addProperty now delegates to an abstract addPropertyDirect
- implemented by BaseConfiguration.
- </action>
- <action dev="kshaposhnikov" type="update">
- Changed getString() method to throw a NoSuchElementException instead of "" if the
- configuration property doesn't exist.
- </action>
- <action dev="kshaposhnikov" type="add">
- Added AbstractConfiguration to make it easier to create subclasses by only
- having to implement the methods required.
- </action>
- <action dev="bdunbar" type="fix">
- ClassPropertiesConfiguration Additions:
- Use the classloader of class that is provided by the constructor.
- Add a constructor that indicates whether to use relative or absolute.
- Change getPropertyStream to utilize the relative or absolute flag.
- Add a test case that checks that absolute paths work.
- </action>
- <action dev="epugh" type="fix">
- JNDIConfiguration.getKeys() Addition:
- The JNDIConfiguration.getKeys() method was returning an unsupported
- operation error. However, this is an important method to have
- supported.
- </action>
- <action dev="epugh" type="fix">
- CompositeConfiguration.getKeys() Fix
- The CompositeConfiguration.getKeys() method was returning an
- unordered list of configuration values. However, many apps
- expect the order that keys are returned to be the order they
- are added into the properties file.
- </action>
- </release>
- </body>
-</document>
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!-- ===================================================================== -->
+<!-- $Id$ -->
+<!-- ===================================================================== -->
+<document>
+ <properties>
+ <title>Apache Commons Configuration Release Notes</title>
+ <author email="dev@commons.apache.org">Apache Commons Community</author>
+ </properties>
+
+ <body>
+ <release version="2.6" date="2019-MM-DD"
+ description="Minor release with new features and updated dependencies.">
+ <action dev="ggregory" type="fix" issue="CONFIGURATION-750" due-to="Jason Pickens, Gary Gregory, Emmanuel Bourg">
+ XMLPropertyListConfiguration cannot set arrays in the correct plist form.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-751" due-to="Gary Gregory">
+ Update Apache Commons Text from 1.6 to 1.7.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-752" due-to="Gary Gregory">
+ Update Apache Commons VFS from 2.3 to 2.4.1.
+ </action>
+ <action dev="ggregory" type="fix" due-to="Gary Gregory">
+ Fix Javadoc for org.apache.commons.configuration2.PropertiesConfiguration.getIncludeOptional().
+ </action>
+ <action dev="ggregory" type="add" due-to="Gary Gregory">
+ Document "includeOptional" on the site.
+ </action>
+ </release>
+ <release version="2.5" date="2019-05-23"
+ description="Minor release with new features and updated dependencies.">
+ <action dev="ggregory" type="fix" issue="CONFIGURATION-731" due-to="Shuai Zhang, Gary Gregory">
+ Allow user to specify the comments and separator chars.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-738" due-to="Gary Gregory">
+ Update Jackson from 2.9.7 to 2.9.8.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-739" due-to="Gary Gregory">
+ Update Apache Commons Codec from 1.11 to 1.12.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-740" due-to="Gary Gregory">
+ Update Apache Commons VFS from 2.2 to 2.3.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-741" due-to="Gary Gregory">
+ Update Spring from 4.3.19 to 4.3.22.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-743" due-to="Gary Gregory">
+ Update optional library snakeyaml from 1.23 to 1.24.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-747" due-to="Gary Gregory">
+ Update Apache Commons Lang from 3.8.1 to 3.9.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-746" due-to="Gary Gregory">
+ Update Jackson from 2.9.8 to 2.9.9.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-747" due-to="Gary Gregory">
+ Update Spring from 4.3.22 to 4.3.24.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-745" due-to="Gary Gregory">
+ Add the special key "includeoptional" for properties files.
+ </action>
+ </release>
+ <release version="2.4" date="2018-10-23"
+ description="Minor release with new features and updated dependencies.">
+ <action dev="oheger" type="fix" issue="CONFIGURATION-710" due-to="thc202">
+ Fixed numerous typos in user guides.
+ </action>
+ <action dev="ggregory" type="fix" issue="CONFIGURATION-711">
+ Update Apache Commons Lang from 3.7 to 3.8.1.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-712" due-to="Rolland Hobbie">
+ FileHandlerReloadingDetector now has a new refresh() method to
+ initialize the reloading state from the underlying file. This new
+ method is called by DefaultReloadingDetectorFactory when a new detector
+ instance is created. This makes sure that a changed configuration file
+ is directly detected on the first invocation of the
+ isReloadingRequired() method.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-713" due-to="Lars W">
+ Configuration properties can now be converted to regular expressions.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-715" due-to="Patrick Schmidt">
+ With JupIOFactory a new IOFactory implementation is now available that
+ implements handling of whitespace in a way closer to java.util.Properties.
+ This class can be used when stricter compatibility with Java standard
+ methods for reading and writing properties files is needed.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-716" due-to="Patrick Schmidt">
+ JupIOFactory (introduced for CONFIGURATION-715) also implements
+ handling of escape sequences in a way closer to java.util.Properties.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-720">
+ Replace use of deprecated Commons Lang string substitution code for Commons Text.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-694">
+ Update Java requirement from version 7 to 8.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-721">
+ Update Jackson from 2.9.6 to 2.9.7.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-722">
+ Update optional dependency snakeyaml from 1.21 to 1.23.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-723">
+ Update optional Spring dependencies from 4.3.18.RELEASE to 4.3.19.RELEASE.
+ </action>
+ <action dev="ggregory" type="add" issue="CONFIGURATION-724">
+ Add support for Commons Text 1.4 localhost string lookup as a default lookup.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-725">
+ Update Apache Commons Text from 1.4 to 1.5.
+ </action>
+ <action dev="ggregory" type="add" issue="CONFIGURATION-726">
+ Add support for Commons Text 1.5 new string lookups as default lookups.
+ </action>
+ <action dev="ggregory" type="fix" issue="CONFIGURATION-727">
+ org.apache.commons.configuration2.DatabaseConfiguration never closes result sets and statements.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-728">
+ Update Apache Commons Text from 1.5 to 1.6.
+ </action>
+ </release>
+
+ <release version="2.3" date="2018-08-04"
+ description="Minor release with new features and updated dependencies.">
+ <action dev="ggregory" type="update" issue="CONFIGURATION-707">
+ Update Spring from 4.3.14.RELEASE to 4.3.18.RELEASE.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-706">
+ Update optional dependency snakeyaml from 1.20 to 1.21.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-705">
+ Update Jackson from 2.9.5 to 2.9.6.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-652" due-to="Claude Warren">
+ Root node attributes are now updated correctly when loading XML
+ configuration files.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-675">
+ Added a .gitignore file to the project.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-678">
+ Update Apache Commons Codec from 1.10 to 1.11.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-679">
+ Update Jackson from 2.8.9 to 2.9.3.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-680">
+ Update Apache Commons Lang from 3.6 to 3.7.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-681">
+ Update Apache Commons VFS from 2.1 to 2.2.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-682">
+ Update Snakeyaml from 1.18 to 1.19.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-696">
+ Update optional dependency snakeyaml from 1.19 to 1.20.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-683">
+ Update Spring from 4.3.9.RELEASE to 4.3.13.RELEASE.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-695">
+ Update optional dependency Jackson from 2.9.3 to 2.9.5.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-697">
+ Update optional dependency Spring from 4.3.13.RELEASE to 4.3.14.RELEASE.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-686">
+ JSONConfiguration can now handle list structures with complex objects
+ as elements.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-687">
+ Fixed a memory leak in CombinedConfigurationBuilder. Builder for the
+ child sources were created each time a new result configuration was
+ requested; thus the list with child builders got longer and longer.
+ This also had an impact on reloading because unnecessary reloading
+ operations could be triggered. Now it is guaranteed that child builders
+ are created only once.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-688">
+ Fixed a bug related to the handling of multiple include files in
+ PropertiesConfiguration.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-690">
+ ExprLookup.getVariables() no longer returns null, but a copy of the
+ current variables of this lookup object.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-691">
+ ExprLookup now handles expressions that do not return a string result
+ by converting them to string.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-692">
+ ConversionExceptions thrown when accessing the properties of a
+ configuration now contain the original cause of the exception.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-693" due-to="Lars W">
+ Configuration properties can now be converted to the data types File
+ and Path.
+ </action>
+ <action dev="ggregory" type="add" issue="CONFIGURATION-698">
+ Add org.apache.commons.configuration2.MapConfiguration.toString().
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-701" due-to="Nicholas Verbeck">
+ CompositeConfiguration now supports an addConfigurationFirst() method
+ to add child configurations with a higher priority.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-703" due-to="Pascal Essiembre">
+ XMLConfiguration now handles elements correctly whose value consists
+ only of whitespace if the xml:space attribute is set to preserve.
+ </action>
+ </release>
+
+ <release version="2.2" date="2017-10-12"
+ description="Minor release with new APIs and bug fixes.">
+ <action dev="oheger" type="add" issue="CONFIGURATION-673" due-to="Andreas Kuhtz ">
+ Added an Automatic-Module-Name header to the manifest for compatibility
+ with the Java 9 module system.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-671">
+ Fixed a NPE in INIConfiguration when saving a configuration with an
+ empty section.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-670">
+ The node model returned by SubnodeConfiguration.getNodeModel() has now
+ the correct root node set.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-669">
+ Update optional Spring dependency from 4.2.5.RELEASE to 4.3.9.RELEASE.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-667">
+ Update Apache Commons Lang from 3.3.2 to 3.6.
+ </action>
+ <action dev="ggregory" type="add" issue="CONFIGURATION-666">
+ Add convenience ctor ConfigurationRuntimeException(String, Object...).
+ </action>
+ <action dev="ggregory" type="add" issue="CONFIGURATION-665">
+ Add org.apache.commons.configuration2.AbstractHierarchicalConfiguration.toString().
+ </action>
+ <action dev="ggregory" type="add" issue="CONFIGURATION-664">
+ Add API org.apache.commons.configuration2.tree.ImmutableNode.getChildren(String).
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-663">
+ Fixed a typo in the upgrade to 2.0 guide.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-661">
+ Update platform requirement from Java 6 to 7.
+ </action>
+ <action dev="ggregory" type="add" issue="CONFIGURATION-660">
+ Add toString() methods here and there to help debugging.
+ </action>
+ <action dev="ggregory" type="add" issue="CONFIGURATION-658">
+ Add API org.apache.commons.configuration2.DataConfiguration.getURI(String) methods.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-656" due-to="The Alchemist">
+ Added new YAMLConfiguration class to support configuration files in
+ YAML format.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-653" due-to="Vincent Maurin">
+ ConfigurationUtils and ConfigurationConverter now offer better support
+ for immutable configurations.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-647" due-to="Vladimir Martinek">
+ INIConfiguration can now be configured to use a custom separator
+ between properties and values when writing an ini file.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-258" due-to="The Alchemist">
+ Added new JSONConfiguration class to support configuration files in
+ JSON format.
+ </action>
+ </release>
+
+ <release version="2.1.1" date="2017-02-05"
+ description="Bugfix release for 2.1">
+ <action dev="oheger" type="fix" issue="CONFIGURATION-649">
+ Improved the handling of lists defined by a string with delimiter
+ characters in XMLConfiguration. Such lists now retain their original
+ format when the configuration is saved.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-648">
+ Made the IOFactory property of PropertiesBuilderParameter compatible
+ with the most recent version of Commons BeanUtils. This version
+ changed the handling of properties starting with multiple uppercase
+ letters.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-646">
+ PropertiesConfiguration now works correctly with the auto-save mode.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-644" due-to="Andrew DeMaria">
+ PropertiesConfigurationLayout no longer duplicates a header comment
+ if a file with another comment is loaded.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-643">
+ Documentation improvements for the user's guide.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-641">
+ Improved documentation of FileBased interface. The Javadocs now state
+ explicitly that the methods should not be called by client code.
+ Exception handling in configuration classes implementing
+ FileLocatorAware has been improved.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-640">
+ PropertiesConfiguration now correctly unescapes some special characters
+ that are always escaped in Java properties files.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-639" due-to="Rico Neubauer">
+ In the OSGi bundle manifest of the Commons Configuration bundle the
+ package imports for Spring packages are now marked as optional.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-638" due-to="Ahmet Celik">
+ Improved handling of temporary files and folders in unit tests.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-627">
+ Updated dependency to Commons BeanUtils to version 1.9.3. This fixes an
+ issue with an exception stacktrace that was logged when a
+ ConfigurationBuilder was used.
+ </action>
+ </release>
+
+ <release version="2.1" date="2016-08-20"
+ description="First maintenance release for Configuration 2.x.">
+ <action dev="oheger" type="fix" issue="CONFIGURATION-636" due-to="Tim Lark">
+ PropertiesConfigurationLayout now allows manipulating the order of keys
+ when the properties file is written.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-634" due-to="Raviteja Lokineni">
+ HomeDirectoryLocationStrategy now works correctly in the mode that
+ evaluates the FileLocator's base path.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-633">
+ Interpolation was improved to better support properties with multiple
+ values.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-632">
+ The methods getStringArray() and getList() of CompositeConfiguration
+ now support the interpolation of variables that reference properties
+ with multiple values.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-628">
+ Support for the ant build was dropped.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-626">
+ ImmutableConfiguration.getArray() has been deprecated. Arrays can now
+ be queried using the generic get() method in a type-safe way.
+ </action>
+ <action dev="deki" type="add" issue="CONFIGURATION-624">
+ Support Commons Configuration as PropertySource in Spring.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-622">
+ Fixed a problem in INIConfiguration.write() with keys containing a
+ separator character. This separator had been duplicated. Such keys
+ are now handled correctly when the configuration is saved.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-631">
+ Update Apache Commons VFS from 2.0 to 2.1.
+ </action>
+ <action dev="ggregory" type="update" issue="CONFIGURATION-635">
+ Update optional dependency Apache Commons Codec from 1.9 to 1.10.
+ </action>
+ </release>
+
+ <release version="2.0" date="2016-03-24"
+ description="Major redesign of the Configuration 1.x API">
+ <action dev="oheger" type="update" issue="CONFIGURATION-621">
+ Moved ConfigurationLogger class to io package to avoid cyclic
+ dependencies between packages.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-620" due-to="Mark Vedder">
+ Fixed two invalid examples in the user's guide for file-based
+ configurations.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-619">
+ CombinedConfigurationBuilder now supports inheritance of its parameters
+ to child configuration sources. This is enabled by default.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-618">
+ When using immutable configurations exceptions thrown by the wrapped
+ configuration came out as UndeclaredThrowableException. This has been
+ fixed; now the correct original exception is thrown.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-615">
+ Changed generic types in the signatures of a MapConfiguration
+ constructor and AbstractConfiguration.getList(String, List). These
+ changes were made in version 1.10 as fixes for CONFIGURATION-557 and
+ CONFIGURATION-558. But it had been missed to merge them to trunk.
+ </action>
+ </release>
+
+ <release version="2.0-beta2" date="2015-12-05"
+ description="Second beta release, some minor API changes.">
+ <action dev="oheger" type="update" issue="CONFIGURATION-614">
+ References to Commons Logging have been removed from the Configuration
+ API. It is still possible to influence logging by making use of the new
+ ConfigurationLogger abstraction.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-612" due-to="Jon Weygand">
+ The return type of ConfigurationBuilder.getConfiguration() was changed
+ from Configuration to ImmutableConfiguration because this is the base
+ interface for all configuration objects.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-609">
+ Fixed a bug in PropertiesConfiguration related to the loading of include
+ files. The FileHandler used for this purpose was not fully initialized.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-608">
+ Adapted the return type of ReloadingFileBasedConfigurationBuilder.configure().
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-605">
+ XMLConfiguration no longer drops keys when list delimiter characters
+ occur in element values.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-604">
+ Fixed a problem in the conversion of a flat configuration to a
+ hierarchical one that could cause the loss of properties in a
+ combined configuration constructed by an override combiner.
+ </action>
+ </release>
+
+ <release version="2.0-beta1" date="2015-06-19"
+ description="First beta release, getting closer to final.">
+ <action dev="oheger" type="update" issue="CONFIGURATION-598" due-to="Bjarne Boström">
+ Removed obsolete ConfigurationBuilder interface in the base package.
+ </action>
+ </release>
+
+ <release version="2.0-alpha2" date="2014-12-20"
+ description="Some more API fine-tuning.">
+ <action dev="oheger" type="add" issue="CONFIGURATION-574">
+ DefaultExpressionEngine can now be customized to match configuration
+ keys in a case-insensitive manner. This is useful for instance for
+ dealing with Windows INI files.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-565">
+ Added support for querying encoded properties.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-564">
+ PropertiesConfiguration now supports again properties without a value
+ and a separator character. The keys of such properties are added to
+ the configuration with an empty String as value.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-427">
+ XMLPropertyListConfiguration can now save arrays in the correct form.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-200">
+ A size() method was added to the ImmutableConfiguration interface.
+ </action>
+ </release>
+
+ <release version="2.0-alpha1" date="2014-09-23"
+ description="First alpha release after a major redesign.">
+ <action dev="oheger" type="update" issue="CONFIGURATION-591">
+ Removed methods from ConfigurationConverter related to ExtendedProperties.
+ This class is no longer supported by recent versions of Commons
+ Collections.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-590">
+ Removed Serializable interface from all configuration implementations.
+ Some configuration classes declared this interface without being
+ actually serializable.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-588">
+ The name of the top-level package and the maven coordinates have been
+ changed to allow a coexistence of Commons Configuration 1.x with 2.0.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-584">
+ The event mechanism has been reworked. There is now a generic event
+ listener interface which can be used to receive notifications from
+ multiple types of event sources.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-582">
+ Fixed a StringIndexOutOfBoundsException in PropertiesConfigurationLayout
+ which was caused by lines containing only whitespace.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-579">
+ A migration guide has been created which supports when upgrading from
+ version 1.x to 2.0.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-578">
+ The user's guide has been fully reworked to cover all new and enhanced
+ features of version 2.0.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-577">
+ The dependency to Commons Collections is no longer needed.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-576">
+ A new abstract base class for hierarchical configurations was introduced
+ which supports arbitrary hierarchical data structures. The type of the
+ nodes used by the configuration can now be specified as a generic type
+ argument. This makes the integration of other hierarchical structures
+ easier.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-575">
+ Hierarchical configurations now operate on immutable structures.
+ Data is no longer represented by ConfigurationNode objects. The
+ ImmutableNode class now serves as data container.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-573">
+ XPathExpressionEngine can now deal with namespace prefixes in node and
+ attribute names.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-572">
+ When a CombinedConfiguration is cleared it removes itself as change
+ listener from all child configurations. This fixes a possible memory
+ leak.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-570">
+ Fixed a possible ConcurrentModificationException when a SystemConfiguration
+ instance is passed to the append() or copy() methods.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-567" due-to="Shen liang">
+ XMLBeanDeclaration now escapes node names before they are used to
+ determine nested properties.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-563">
+ The DefaultExpressionEngine class is now immutable. An instance can be
+ shared between multiple configuration objects.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-562">
+ Improved the API of ExprLookup.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-559">
+ It is now possible to define default values for initialization
+ properties of configurations.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-555">
+ Fixed a bug in the handling of the xml:space attribute in
+ XMLConfiguration. The attribute is now also applied to the current
+ element, not only to sub elements.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-554">
+ BeanHelper is no longer a static utility class. Instances can be
+ created with a specific configuration of bean factories. There is still
+ a default instance which can be obtained via the BeanHelper.INSTANCE
+ field.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-553">
+ The code for accessing configuration files hs been reworked. Methods
+ related to locating configuration files have been moved from
+ ConfigurationUtils to a new FileLocatorUtils class. Customizable
+ strategy classes (implementing the new FileLocationStrategy) can be
+ used for searching for configuration files.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-551">
+ The data type conversion mechanism has been made extensible. There is a
+ new interface ConversionHandler which controls the data type conversions
+ available for a configuration object. By setting a custom implementation,
+ conversions can be adapted or extended.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-550">
+ Conversion to Character is now supported.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-546" due-to="Justin Couch">
+ BeanHelper can now process BeanDefinitions initializing properties of
+ collection types of their target beans.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-544" due-to="Oliver Kopp">
+ Added missing dependencies to build.xml.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-542">
+ The mechanism for synchronizing configurations has been completely
+ redesigned. It is now based on Synchronizer objects which can be
+ configured by client code. A new chapter was added to the user's guide
+ regarding thread-safety of configurations.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-540">
+ MapConfiguration now directly uses a Properties object passed to its
+ constructor as data store rather than copying it. This allows
+ SystemConfiguration to be connected to system properties; i.e.
+ changing a property through SystemConfiguration immediately affects
+ the corresponding system property.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-541">
+ Multi-file configurations are no longer restricted to XML configuration
+ files. Arbitrary file-based configurations are now supported.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-539">
+ The deprecated INIConfiguration class was removed.
+ HierarchicalINIConfiguration was renamed to INIConfiguration.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-537">
+ The deprecated ConfigurationFactory class was removed.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-536">
+ File-based configurations are now implemented in a different way.
+ The interfaces FileConfiguration and ReloadingStrategy have been
+ removed, also the base classes AbstractFileConfiguration and
+ AbstractHierarchicalFileConfiguration. They are replaced by the
+ FileBased interface and the FileHandler class which implements
+ central I/O functionality. Reloading is now in the responsibility of
+ configuration builders.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-535">
+ DatabaseConfiguration now provides get methods for querying its
+ properties defining the underlying database structures.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-534">
+ The includesAllowed property of PropertyConfiguration is now independent
+ from the existence of a base path.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-533">
+ DatabaseConfiguration now automatically converts CLOBs to strings if
+ they appear in property values.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-530">
+ Concurrent access to configurations and reloading have been completely
+ redesigned. Because reloading is now handled by configuration builders
+ there is no need to acquire a lock in order to protected against a
+ reload operations.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-527" due-to="Matthias Richter">
+ AbstractConfiguration.clearPropertyDirect() is now abstract.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-526" due-to="Oliver Kopp">
+ XMLPropertiesConfiguration now supports loading from and saving to DOM
+ nodes.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-525">
+ PropertiesConfiguration now keeps a comment at the bottom of a
+ properties file. A new footer property was added for reading and
+ writing this footer comment.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-524">
+ Interpolation now works correctly after a configuration was cloned.
+ The ConfigurationInterpolator instance is now cloned, too.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-521" due-to="Oliver Kopp">
+ ConfigurationUtils.fileFromUrl() now correctly handles URL containing
+ encoded percent characters.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-520">
+ Support for reloading of configuration data has been reworked.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-519">
+ Configuration objects are now created via configuration builders. A new
+ API for configuration builders has been added.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-518">
+ Classes and interfaces related to interpolation have been slightly
+ reworked. ConfigurationInterpolator is now thread-safe. There are
+ multiple ways to define the ConfigurationInterpolator object to be
+ used by an AbstractConfiguration instance.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-517">
+ Hierarchical configurations now provide methods to obtain sub
+ configurations for all child elements of a given key.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-516">
+ PropertiesConfiguration no longer escapes double quotes on saving.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-515">
+ The visibility of some internal methods of PropertiesConfiguration.PropertiesWriter
+ has been increased to protected. This simplifies the implementation of
+ a custom escaping strategy.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-514">
+ Bean declarations now support constructor invocations.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-513">
+ HierarchicalConfiguration is now an interface. The base implementation
+ class is named BaseHierarchicalConfiguration.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-512">
+ It is now possible to obtain an immutable view on a Configuration or
+ HierarchicalConfiguration object. New interfaces,
+ ImmutableConfiguration, and ImmutableHierarchicalConfiguration have
+ been introduced.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-508">
+ Generic get() methods have been added to the Configuration interface.
+ These methods expect a target class and try to convert the value of
+ the specified property to this target class.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-506">
+ Removed obsolete nested classes Node and NodeVisitor of
+ HierarchicalConfiguration. The related deprecated class
+ ConfigurationKey was removed, too.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-505">
+ XMLConfiguration no longer supports attributes with multiple values or
+ list delimiter parsing in attributes. This feature was complex and
+ error prone and brought little value to the user.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-504">
+ SubnodeConfiguration now provides a new method for clearing it and
+ removing its root node from the parent configuration. The method
+ HierarchicalConfiguration.configurationsAt() now returns a list
+ of SubnodeConfiguration so that it is easier to make direct use of
+ this feature.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-500">
+ XMLConfiguration now adds attributes of elements defining a list to
+ all list nodes.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-496">
+ Concurrent access to configurations and reloading have been completely
+ redesigned. This should reduce the amount of synchronization.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-486">
+ Removed some static fields for specifying global default values.
+ Using static fields in this way is thread-hostile. There are now
+ alternatives for setting default values.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-462">
+ Updated dependency to Commons Lang from version 2.6 to 3.1.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-419">
+ EventSource is now an interface. With BaseEventSource there is a
+ default implementation.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-418">
+ The handling of list delimiters and their escape characters has been
+ reworked. A new ListDelimiterHandler interface was introduced allowing
+ applications to customize the treatment of list delimiters.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-330">
+ Concurrent access to configurations has been reworked.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-204">
+ With the new reloading mechanism automatic and periodic reloading checks
+ can be performed.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-202">
+ Reloading checks can now be performed in a background thread.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-153">
+ It is now possible to define the strategy used for locating
+ configuration files.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-136">
+ Reloading can no longer corrupt a configuration instance. This is now
+ handled by a configuration builder; the original configuration instance
+ is not modified.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-26">
+ It is now possible to influence the conversion from a container object
+ (a collection or an array) to a single value (e.g. what is returned by
+ getString() if the current property has multiple values). Per default,
+ the first value is returned. By overriding methods of the
+ configuration's ConversionHandler, this behavior can be changed.
+ </action>
+ </release>
+
+ <release version="1.10" date="2013-10-27"
+ description="Minor bug fixes and improvements">
+ <action dev="oheger" type="update" issue="CONFIGURATION-500">
+ XMLConfiguration now adds attributes of elements defining a list to
+ all list nodes.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-525">
+ PropertiesConfiguration now keeps a comment at the bottom of a
+ properties file. A new footer property was added for reading and
+ writing this footer comment.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-526" due-to="Oliver Kopp">
+ XMLPropertiesConfiguration now supports loading from and saving to DOM
+ nodes.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-534">
+ The includesAllowed property of PropertyConfiguration is now independent
+ from the existence of a base path.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-546" due-to="Justin Couch">
+ BeanHelper can now process BeanDefinitions initializing properties of
+ collection types of their target beans.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-550">
+ Conversion to Character is now supported.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-555">
+ Fixed a bug in the handling of the xml:space attribute in
+ XMLConfiguration. The attribute is now also applied to the current
+ element, not only to sub elements.
+ </action>
+ <action dev="henning" type="fix" issue="CONFIGURATION-556">
+ In 1.7 and before, any change to the system properties was
+ immediately reflected in a SystemConfiguration object. This
+ behavior broke in 1.8 and 1.9. This has been fixed for 1.10.
+ </action>
+ <action dev="henning" type="fix" issue="CONFIGURATION-557">
+ In 1.7 and before, it was possible to pass an arbitrary Map
+ into the constructor of MapConfiguration. With the
+ generification in 1.8, this actually broke and it was no
+ longer possible to pass in e.g. a Map<String, String>
+ because the signature now required a Map<String,
+ Object>. Changing the constructor to accept a
+ Map<String, ?> restores this.
+ </action>
+ <action dev="henning" type="fix" issue="CONFIGURATION-558">
+ Similar to CONFIGURATION-557, the getList(String, List) method
+ was generified to be getList(String, List<Object>) but
+ needs to be getList(String, List<?>) so that code that
+ used a more specific list (such as a List<String>) still
+ compiles against the new API.
+ </action>
+ </release>
+
+ <release version="1.9" date="2012-08-22"
+ description="Minor bug fixes and improvements">
+ <action dev="oheger" type="update" issue="CONFIGURATION-503" due-to="Tino Sino">
+ Small changes in user guide documentation.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-502" due-to="Tino Sino">
+ Improvements of basic features and AbstractConfiguration documentation.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-501">
+ XMLPropertyListConfiguration no longer swallows exception caused by
+ invalid date properties. Now a warning message is logged.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-495">
+ List properties can now be set correctly on a HierarchicalConfiguration
+ if delimiter parsing is disabled.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-488">
+ Made static DateFormat fields in XMLPropertyListConfiguration.PListNode
+ final and added a note about proper synchronization.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-487">
+ DataConfiguration.get() now also works with String properties and if no
+ data type conversion is required.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-483">
+ DatabaseConfiguration now always closes the result set.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-482" due-to="Chris Seieroe">
+ The Import-Package section in the OSGi manifest now uses the
+ resolution:=optional directive for optional dependencies.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-481">
+ Variable substitution in configuration sources declared in a definition
+ file for DefaultConfigurationBuilder now works across multiple sources.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-477">
+ PropertyListConfiguration now can deal with C-style comments in plist
+ configuration files. Both block and single-line comments are supported.
+ </action>
+ </release>
+
+ <release version="1.8" date="2012-02-04"
+ description="Support for Java 1.5">
+ <action dev="oheger" type="fix" issue="CONFIGURATION-476">
+ Fixed possible ClassCastExceptions in CompositeConfiguration related to
+ special in-memory configurations.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-475">
+ Class ConfigurationKey was deprecated in favor of DefaultConfigurationKey.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-474">
+ Implemented delimiter parsing in HierarchicalINIConfiguration to be
+ consistent with other Configuration implementations. Note that this can
+ impact existing code. To switch back to the old behavior, call
+ setDelimiterParsingDisabled(true) before loading the configuration.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-471">
+ CompositeConfiguration now provides better support for child
+ configurations that are used as in-memory configuration.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-470">
+ Classes generated by JavaCC are now created dynamically during the
+ build process.
+ </action>
+ <action dev="ebourg" type="add">
+ Commons Configuration now requires Java 5 or later.
+ </action>
+ <action dev="ebourg" type="add" issue="CONFIGURATION-466">
+ Binary literals are now supported (i.e Ob11010001).
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-465">
+ Updated the dependency to Commons Jexl to version 2.1.1. This version
+ provides correct OSGi manifest headers.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-463">
+ Improved documentation of AbstractFileConfiguration related to load()
+ methods and their impact on the base path.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-461">
+ The project now uses standard Maven directory layout.
+ </action>
+ </release>
+
+ <release version="1.7" date="2011-09-07"
+ description="Many bugfixes, some new features.">
+ <action dev="oheger" type="fix" issue="CONFIGURATION-460">
+ Reloading now also works for configuration sources declared in the
+ additional section of a configuration definition file for
+ DefaultConfigurationBuilder.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-459">
+ ConfigurationFactory has been deprecated. The user guide was updated to
+ no more mention this class.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-458">
+ HierarchicalConfiguration now provides a specific implementation of the
+ clear() method. This is more efficient and also solves some other
+ problems related to clearing a SubnodeConfiguration.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-456">
+ Improved Javadocs of getKeys(String) method for some configuration
+ classes.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-455">
+ HierarchicalINIConfiguration.getSection() now creates a section if it
+ does not exist. The SubnodeConfiguration returned by this method is now
+ always connected to the parent ini configuration.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-452">
+ XPathExpressionEngine now provides better support for the setProperty()
+ method.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-448">
+ The parsing of ini files has been improved for property definitions
+ containing multiple separator characters.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-447">
+ DefaultConfigurationBuilder now supports including environment properties
+ using the "env" tag.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-446">
+ XMLConfiguration now handles attributes correctly whose value is an
+ empty string.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-445">
+ Transforming a CombinedConfiguration with ViewNodes to an
+ XMLConfiguration could cause problems with attributes. This has been
+ fixed.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-439">
+ Child configuration builders created for a <configuration> element
+ in a configuration definition file now inherit the configuration and
+ error listeners from the original DefaultConfigurationBuilder. This
+ makes it possible to suppress log output created for optional
+ configurations.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-438" due-to="Mike Noordermeer">
+ JNDIConfiguration.getKeys() no more logs an exception if the prefix does
+ not exist.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-437">
+ Child configuration builders created for a <configuration> element
+ in a configuration definition file now inherit some of their properties
+ from the builder object which processed the file.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-436">
+ The optional dependency to Apache Ant has been changed to the new
+ groupId org.apache.ant. The version was updated to the most recent
+ version 1.8.2 (older versions should still work).
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-434">
+ HierarchicalINIConfiguration now recognizes comment characters in
+ property definitions only if they are preceded by whitespace. Thus
+ comment characters can now be part of the property value. This is for
+ instance required for the definition of file paths which use the
+ semicolon as path separator.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-433">
+ Minor improvements of the support for indexed properties in
+ ConfigurationDynaBean.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-432">
+ The methods getList() and getStringArray() of AbstractConfiguration can
+ now handle single-valued properties of primitive types.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-428">
+ XMLConfiguration no longer escapes backslashs in the values of
+ XML elements.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-424">
+ HierarchicalINIConfiguration now works correctly with configurations
+ that contain only properties in the global section.
+ </action>
+ <action dev="rgoers" type="fix" issue="CONFIGURATION-423" due-to="William Buckley">
+ testFromClassPath() can fail when it should not because of inconsistent escaping of output from
+ PropertiesConfiguration.getURL() and FileChangedReloadingStrategy.getFile().toURL().
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-418">
+ A bug related to the interpretation of escape sequences for backslashes
+ has been fixed. The user guide has also been improved in this area.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-415">
+ Files with a plus character in their names are now handled correctly.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-413" due-to="Alexander Prishchepov">
+ SubsetConfiguration now produces correct events.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-412">
+ DatabaseConfiguration can now be instructed to perform a commit after an
+ update of the managed database table. This makes it usable in
+ environments where the connections do not use auto-commit mode.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-410">
+ Added a refresh() method to AbstractFileConfiguration and
+ AbstractHierarchicalFileConfiguration.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-409">
+ HierarchicalINIConfiguration now correctly saves sections whose name
+ contains delimiter characters.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-408">
+ PropertiesConfiguration.save() escaped slashes in properties values.
+ This was caused by a bug in commons-lang 2.4. Updating to the new
+ version commons-lang 2.5 fixed this problem.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-407">
+ Fixed a potential IllegalStateException in HierarchicalINIConfiguration
+ that can be thrown when the global section is requested concurrently.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-405">
+ XMLPropertyListConfiguration no longer throws a ConfigurationException
+ if the file to be loaded does not have an outer dict element.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-404" due-to="Rob Walker">
+ The default expression engine used by hierarchical configurations used to
+ throw a NumberFormatException if invalid indices were used in property
+ keys. This has been fixed. As a side effect brackets can now be used in
+ property keys.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-403">
+ When an empty XMLConfiguration was saved and reloaded the root element
+ was assigned an empty text value. Because of this isEmpty() returned
+ false for this configuration. This has been fixed.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-399">
+ Default variable interpolation now supports the env: prefix for
+ referencing environment variables.
+ </action>
+ <action dev="rgoers" type="fix" issue="CONFIGURATION-397">
+ Schema violation exceptions are now propagated back to the caller.
+ </action>
+ <action dev="rgoers" type="fix" issue="CONFIGURATION-390">
+ XMLConfiguration and CombinedConfiguraton are now synchronized to fix problems
+ caused by reloading in a multithreaded environment.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-396">
+ HierarchicalConfiguration.NodeVisitor is now passed the correct key to
+ its visitAfterChildren() method.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-393">
+ BaseConfiguration.clone() now also clones collections stored in the
+ internal map. This causes list properties to be handled correctly.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-389">
+ DefaultConfigurationBuilder now supports defining ini files in its
+ configuration definition file.
+ </action>
+ <action dev="rgoers" type="fix" issue="CONFIGURATION-388">
+ Attribute or element values will not be escaped when attribute or element splitting are disabled.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-363">
+ When using Commons Lang 2.6 or higher as dependency nested interpolation
+ in variable names is supported.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-362">
+ Empty dictionaries in a PropertyList configuration are now preserved when the configuration is saved.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-385">
+ DatabaseConfiguration now generates correct events for the clear() and
+ clearProperty() methods.
+ </action>
+ <action dev="rgoers" type="add" issue="CONFIGURATION-380">
+ Add ExprLookup to allow expressions to be evaluated in configurations. When
+ used, this requires that Apache Commons Jexl be added as a dependency to
+ projects using Commons Configuration.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-374">
+ MapConfiguration now provides a way of controlling the trimming
+ behavior.
+ </action>
+ <action dev="rgoers" type="add" issue="CONFIGURATION-378">
+ Added MergeCombiner to allow elements in two configurations to be merged when the
+ element and attributes in the first file match those in the second file.
+ </action>
+ <action dev="rgoers" type="add" issue="CONFIGURATION-340">
+ File system access has been abstracted to a FileSystem interface. Two implementations
+ are provided, DefaultFileSystem that behaves in a backward compatible manner and
+ VFSFileSystem which uses Commons VFS to retreive and store files.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-314">
+ PropertiesConfigurationLayout now allows setting the line separator to
+ be used when writing the properties file.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-371">
+ PropertiesConfigurationLayout now also stores the property separators used for
+ the single properties. It is also possible to change them for specific
+ properties or set a global properties separator. In earlier versions
+ the separator was hard-coded to " = ".
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-370">
+ PropertiesConfiguration now defines a nested interface IOFactory. Using
+ this interface it is possible to inject custom PropertiesReader and
+ PropertiesWriter implementations.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-368">
+ SubnodeConfiguration now fires an event of type EVENT_SUBNODE_CHANGED
+ if a structural change of the parent configuration was detected. If the
+ SubnodeConfiguration is contained in a CombinedConfiguration, the
+ CombinedConfiguration receives this event and can update itself.
+ </action>
+ <action dev="rgoers" type="fix" issue="CONFIGURATION-361">
+ MultiFileHierarchicalConfiguration was not using basepath to
+ construct the file url. It also threw an exception if the
+ file pattern resolved to a non-existent file. This is now
+ configurable.
+ </action>
+ <action dev="joehni" type="update" issue="CONFIGURATION-375">
+ Align interpolation functionality of SubnodeConfiguration and
+ SubsetConfiguration. SubsetConfiguration will now also interpolate
+ keys of the parent configuration or use the local lookups of its
+ parent. SubnodeConfiguration is in turn now able to lookup local
+ keys as well.
+ </action>
+ <action dev="joehni" type="update" issue="CONFIGURATION-376">
+ Align interpolation functionality of SubnodeConfiguration and
+ SubsetConfiguration.
+ </action>
+ <action dev="joehni" type="update" issue="CONFIGURATION-377">
+ Align interpolation functionality of SubnodeConfiguration and
+ SubsetConfiguration.
+ </action>
+ <action dev="joehni" type="fix" issue="CONFIGURATION-369">
+ SubsetConfiguration did not use locally registered lookups of its
+ interpolator.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-359">
+ Fixed broken links to the API documentation in the user's guide.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-358">
+ Improvements of the user's guide for hierarchical configurations.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-357">
+ The message of the ConversionException thrown by
+ AbstractConfiguration.getBigInteger() is now correct.
+ </action>
+ <action dev="rgoers" type="add" issue="CONFIGURATION-356">
+ Added getConfigurations and getConfigurationNameList.
+ </action>
+ <action dev="rgoers" type="add" issue="CONFIGURATION-257">
+ Allow configurations to be validated using XML Schemas.
+ </action>
+ <action dev="rgoers" type="add" issue="CONFIGURATION-355">
+ Allow configurations to be validated using XML Schemas.
+ </action>
+ </release>
+
+ <release version="1.6" date="2008-12-25"
+ description="Another set of smaller bug fixes">
+ <action dev="oheger" type="update">
+ Some dependencies to other Commons components have been updated to the
+ recent versions. Affected are Commons Lang, Commons Collections,
+ Commons Logging, Commons BeanUtils, and Commons JXPath. The older
+ versions should still work.
+ </action>
+ <action dev="rgoers" type="add" issue="CONFIGURATION-353">
+ Allow system properties to be set from a configuration file.
+ </action>
+ <action dev="rgoers" type="add" issue="CONFIGURATION-351">
+ Allow variable resolvers to be defined configured in
+ DefaultConfigurationBuilder.
+ </action>
+ <action dev="rgoers" type="add" issue="CONFIGURATION-350">
+ Added MultiFileHierarchicalConfiguration, DynamicCombinedConfiguration
+ and PatternSubtreeConfigurationWrapper.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-349" due-to="Ralph Goers">
+ The visibility of DefaultConfigurationBuilder.XMLConfigurationProvider
+ was changed from package local to public. This makes it easier to
+ implement providers that create configuration classes derived from
+ XMLConfiguration.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-348">
+ AbstractHierarchicalFileConfiguration.getKeys() now also checks whether
+ a reload is required.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-347">
+ AbstractFileConfiguration.getKeys() now returns an iterator that points
+ to a snapshot of the keys of the configuration. This prevents
+ ConcurrentModificationExceptions during iteration when a reload is
+ performed.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-346">
+ ConfigurationUtils.convertToHierarchical() now creates multiple
+ configuration nodes for properties with multiple values. This
+ improves compatibility with queries.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-345">
+ PropertiesConfiguration now per default uses the encoding "ISO-8859-1"
+ for loading properties files.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-344">
+ CombinedConfiguration could cause a deadlock when it was accessed while
+ concurrently a reload of one of its child configuration happened. This
+ was fixed by reducing synchronization where it is not strictly
+ necessary.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-341">
+ The "force reload check" mechanism of CombinedConfiguration now also
+ works with sub configurations created by configurationAt().
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-339">
+ When performing interpolation the methods getList() and getStringArray()
+ of CompositeConfiguration did not take the order of child configurations
+ into account. This could lead to wrong interpolated values when the key
+ was contained in multiple child configuration. Interpolation is now
+ always done in the correct order.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-338" due-to="David Donn">
+ PropertiesConfiguration now also performs interpolation when searching
+ for include files. This means that the name of a file to include can be
+ determined by another property.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-337" due-to="Ralph Goers">
+ DefaultConfigurationBuilder now supports defining new configuration
+ providers in the configuration definition file.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-336">
+ When converting a flat configuration to a hierarchical one it is now
+ possible to specify the expression engine to be used for this purpose.
+ This may be necessary if the flat configuration contains keys with
+ special characters interpreted by the expression engine.
+ CombinedConfiguration defines the new setConversionExpressionEngine()
+ method. The expression engine passed to this method will be used when
+ converting flat child configurations to hierarchical ones.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-335">
+ XMLConfiguration now allows disabling the attribute splitting mechanism
+ introduced in the 1.5 release (as part of the fix for CONFIGURATION-268).
+ This may be necessary for correctly processing attributes containing
+ both the list delimiter and the attribute delimiter character. The new
+ property "disableAttributeSplitting" was added for this
+ purpose.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-334">
+ Made handling of parent nodes more consistent when setRoot() or
+ setRootNode() of HierarchicalConfiguration are involved.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-332">
+ Properties written through a DataConfiguration to a wrapped
+ PropertiesConfiguration got lost when the PropertiesConfiguration was
+ saved. This has been fixed.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-331">
+ XMLBeanDeclaration now defines a factory method createBeanDeclaration()
+ for creating the declarations for complex nested properties. This
+ method can be overridden by derived classes for injecting custom
+ BeanDeclaration implementations.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-328">
+ A bug in XMLConfiguration.addNodes() made it impossible to add
+ attribute nodes using this method. This has been fixed.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-327">
+ INIConfiguration misinterpreted variables in the global section with
+ a dot in their name as section names. HierarchicalINIConfiguration fixes
+ this problem.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-326">
+ INIConfiguration does not support obtaining a subset for the global
+ section. HierarchicalINIConfiguration provides the getSection() method
+ that returns the content of the global section if null is passed in as
+ section name.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-325">
+ INIConfiguration does not return the global section in its getSections()
+ method. HierarchicalINIConfiguration fixes this problem.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-324">
+ HierarchicalINIConfiguration adds support for line continuation.
+ </action>
+ <action dev="oheger" type="update">
+ INIConfiguration has been deprecated. Its functionality is now available
+ through the new HierarchicalINIConfiguration class.
+ </action>
+ <action dev="oheger" type="add">
+ With HierarchicalINIConfiguration a complete new Configuration
+ implementation for parsing Windows INI files is available. This new
+ class is a full replacement of INIConfiguration and addresses some of its
+ shortcomings. Being derived from HierarchicalConfiguration it offers
+ the enhanced functionality of hierarchical configurations.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-322">
+ ConfigurationDynaBean now works properly with indexed properties
+ stored internally in the underlying configuration as arrays.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-321">
+ The iterator returned by HierarchicalConfiguration.getKeys(String prefix)
+ now also contains the prefix if this key is contained in the
+ configuration.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-320">
+ XMLPropertyListConfiguration is no longer limited to 32 bits integers.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-318">
+ When an XMLConfiguration is created using the copy constructor, the name
+ of the root element is now preserved.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-316">
+ Changing the text of the root element of an XMLConfiguration had no
+ effect when the configuration was saved. This has been fixed.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-315">
+ CombinedConfiguration used to send two EVENT_COMBINED_INVALIDATE events
+ for each modified child configuration. Now this event is sent only
+ once after the affected child configuration was updated.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-307">
+ XMLConfiguration now supports the xml:space attribute. This attribute
+ can be used to preserve whitespace in the content of XML elements.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-306">
+ INIConfiguration now preserves whitespace in quoted values.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-302">
+ If a change has been detected by FileChangedReloadingStrategy, the
+ reloadingRequired() method will now return true until
+ reloadingPerformed() has been called.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-301">
+ Fixed a NullPointerException that could be thrown under certain
+ circumstances when saving an XMLConfiguration that was created using
+ the constructor that takes a HierarchicalConfiguration.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-309">
+ Instantiating an XMLPropertyListConfiguration no longer fails
+ if the DTD is missing from the classpath.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-300">
+ It's now possible to read a configuration file containing
+ a '#' in its name (requires Java 1.4 or above).
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-260">
+ Fixed the date format for XMLPropertyListConfiguration.
+ </action>
+ </release>
+
+ <release version="1.5" date="2007-11-24" description="Many smaller bugfixes">
+ <action dev="oheger" type="update" due-to="Jörg Schaible">
+ Some of the dependencies in the m2 pom have been updated to be more
+ consistent.
+ </action>
+ <action dev="oheger" type="update" due-to="Jörg Schaible">
+ The dependency to commons-logging was updated to the current version
+ 1.1. Older versions of commons-logging will still work.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-273">
+ A new method interpolatedConfiguration() was added to AbstractConfiguration.
+ This method returns a configuration with the same type and
+ content as the original configuration, however all variables have been
+ resolved.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-299">
+ Resolving of variables with the prefix const (constant fields) caused
+ a ClassCastException under certain circumstances if non-String fields
+ were involved. This has been fixed.
+ </action>
+ <action dev="oheger" type="update" due-to="Nicolas De Loof">
+ The dependencies to commons-codec and commons-jxpath have been marked
+ as optional. They are not required by the core classes.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-284" due-to="Nicolas De Loof">
+ There is a new configuration implementation EnvironmentConfiguration,
+ which provides access to (OS) environment variables. On Java >= 1.5
+ this class can be directly used; on earlier versions a dependency to ant
+ is required.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-296">
+ A bug in XMLConfiguration caused that attributes of the root element
+ could not be changed. This has been fixed.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-290">
+ A new method registerEntityId() was added to XMLConfiguration, which
+ allows to register URLs for entities. A new default implementation of
+ the EntityResolver interface handles these entities automatically.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-295">
+ The subset() method of HierarchicalConfiguration now takes the value of
+ the subset's root node into account if it is not ambigous.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-294">
+ Nodes added to a XMLConfiguration using the addNodes() method could
+ lose their value when the configuration was saved. This is now fixed.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-272">
+ New copy() and append() methods have been added to AbstractConfiguration.
+ They replace the methods with the same names in ConfigurationUtils,
+ which do not handle all features of AbstractConfiguration properly (e.g.
+ list delimiters in property values are incorrectly treated). To avoid
+ such problems, the new methods should be used.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-291">
+ The addNodes() method of hierarchical file-based configurations now
+ correctly triggers an auto save.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-287">
+ HierarchicalConfiguration.addNodes() now resets the reference property
+ of all nodes to be added. This fixes a problem with XMLConfiguration,
+ which now detects the added nodes as new and treats them correctly when
+ the configuration is saved.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-285">
+ DefaultConfigurationBuilder will now notify registered error listeners
+ about optional configuration sources that could not be created. Before
+ exceptions thrown by optional configurations were swallowed
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-283">
+ ConfigurationUtils.convertToHierarchical() now correctly deals with
+ property values containing escaped list delimiters. This also affects
+ CombinedConfiguration when sub configurations with such property values
+ are contained.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-275">
+ AbstractConfiguration.addProperty() now correctly deals with list and
+ array properties if delimiter parsing is disabled.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-282">
+ The default expression engine used by HierarchicalConfiguration
+ instances is now lazily initialized. This avoids NullPointerExceptions
+ in certain server environments after a redeploy.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-281">
+ Cycles in the JNDI tree no longer cause a stack overflow in
+ JNDIConfiguration.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-277">
+ The base implementation of clear() in AbstractConfiguration now checks
+ for a potential UnsupportedOperationException when iterating over the
+ existing properties.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-280"
+ due-to="Roman Kurmanowytsch">
+ Using file-based configurations in auto-save mode together with a
+ reloading strategy could cause data loss. This has been fixed.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-279">
+ A PropertiesConfiguration that was created from a non existing file
+ lost its content when it was saved. This problem has been solved.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-215">
+ A new getSource() method was added to CompositeConfiguration and
+ CombinedConfiguration, which returns the child configuration, in which
+ a given property is defined.
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-274">
+ PropertiesConfiguration now supports escaping the escape character for
+ list delimiters.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-269">
+ PropertiesConfiguration no longer escapes the list delimiter on saving
+ if the list delimiter has been disabled.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-270">
+ List properties and properties containing interpolated variables
+ are now properly saved by INIConfiguration.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-268">
+ When delimiter parsing was disabled for XMLConfiguration, saving and
+ loading the configuration accidently added escape characters to properties
+ containing the list delimiter character. This has been fixed. It is now
+ also possible to escape the escape character itself.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-253">
+ The return value of FileConfiguration.getFile() is now always
+ consistent with the result of getURL().
+ </action>
+ <action dev="ebourg" type="update">
+ INIConfiguration uses the platform's specific line separator instead
+ of the Windows line separator.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-267">
+ INIConfiguration flushes the output at the end of a save operation.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-265">
+ For hierarchical file-based configurations the auto-save mechanism is
+ now also triggered if a subnode configuration is changed. In such a case
+ the new event type EVENT_SUBNODE_CHANGED will be sent to registered
+ listeners.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-266" due-to="Tobias Noebel">
+ ConfigurationInterpolator now also invokes the default lookup object for
+ variables with a prefix that could not be resolved by their associated
+ lookup object.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-264">
+ A SubnodeConfiguration per default does not see certain changes of its
+ parent configuration (e.g. reloads). With a new boolean parameter of
+ HierarchicalConfiguration's configurationAt() method a mode can be
+ enabled, in which the subnode configuration checks for such changes and
+ reconstructs itself if necessary.
+ </action>
+ <action dev="ebourg" type="fix">
+ byte[] properties are properly saved as data fields in the plist
+ configurations (PropertyListConfiguration and XMLPropertyListConfiguration).
+ </action>
+ <action dev="ebourg" type="add">
+ DataConfiguration now supports java.net.InetAddress,
+ javax.mail.internet.InternetAddress, and Java 5 enumeration types.
+ Properties are converted to these types using the new generic getters.
+ </action>
+ <action dev="ebourg" type="fix">
+ The object getters in DataConfiguration with no default value
+ (i.e getURL(key)) now throw a NoSuchElementException if the flag
+ throwExceptionOnMissing is set.
+ </action>
+ <action dev="ebourg" type="add">
+ Generic get methods have been added to DataConfiguration (get(),
+ getArray() and getList())
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-263">
+ XMLConfiguration used to drop attributes when an element's value was a
+ list. This has been fixed.
+ </action>
+ <action dev="ebourg" type="add" issue="CONFIGURATION-249">
+ File configurations can now be saved to FTP URLs, or any other URL
+ protocol supporting data output.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-180">
+ Fixed a potential issue in DatabaseConfiguration where an error on
+ closing a statement would prevent the connection from being closed.
+ </action>
+ <action dev="ebourg" type="add" issue="CONFIGURATION-261">
+ Date objects are now supported in ASCII plist files.
+ </action>
+ <action dev="ebourg" type="update">
+ XMLPropertyListConfiguration no longer requires commons-digester and
+ commons-beanutils to work.
+ </action>
+ <action dev="ebourg" type="update">
+ Fixed INIConfiguration to handle the quoted values and the lines
+ containing a value and a comment.
+ </action>
+ </release>
+
+ <release version="1.4" date="2007-04-08" description="Improved interpolation, configuration for INI files, reloading strategy triggered with JMX, bug fixes.">
+ <action dev="oheger" type="update" issue="CONFIGURATION-256">
+ MapConfiguration and the web-based configurations now treat strings
+ that contain an escaped list delimiter correctly: The escape character
+ will be removed, so that for instance "foo\,bar" becomes "foo,bar".
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-255">
+ DatabaseConfiguration now handles list delimiters in property values
+ correctly.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-254" due-to="Carsten Kaiser">
+ After cloning a XMLConfiguration there was still a connection to the
+ original configuration. So when the clone was modified and then saved
+ the content of the original configuration was written. This has now
+ been fixed.
+ </action>
+ <action dev="oheger" type="update">
+ Class loading in BeanHelper is now done using ClassUtils of Commons
+ Lang.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-237" due-to="Nicolas de Loof">
+ With ManagedReloadingStrategy a new reloading strategy for file-based
+ configurations was added that can be triggered through JMX.
+ </action>
+ <action dev="oheger" type="update">
+ The dependencies to Commons Lang, Commons Collections, and Commons Digester
+ are updated to use the recent available version. However older versions
+ will still work.
+ </action>
+ <action dev="oheger" type="add">
+ A pom for maven 2 was added.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-252">
+ ConfigurationUtils.getFile() now always checks first whether the passed
+ in file name is absolute. If it is, this file will be returned. This
+ prevents that on Unix under certain circumstances absolute file names
+ are interpreted as relative ones.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-251">
+ The dependency to xml-apis was changed to the version 1.0.b2. The so
+ far used version 2.0.2 is reported to be bogus.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-245">
+ In addition to configuration event listeners now so-called configuration
+ error listeners are supported. These listeners are notified about
+ internal errors that had been logged and swallowed by privious versions.
+ The new enableRuntimeExceptions() method of ConfigurationUtils
+ registers a special error listener at the passed in configuration that
+ generates a runtime exception when an error event is received.
+ </action>
+ <action dev="oheger" type="add">
+ AbstractConfiguration now allows to set an instance specific logger
+ using the setLogger() method. This gives clients more control over a
+ configuration's logging behavior.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-155">
+ SubsetConfiguration and CompositeConfiguration were updated to fully
+ support an instance specific list delimiter. Concerning splitting of
+ string properties that contain a list delimiter character, these
+ classes now behave like a "normal" configuration.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-192">
+ Variable interpolation features have been improved. A variable can now
+ have the form ${prefix:variableName} where the prefix
+ defines the type of the variable. The standard types sys for
+ system properties and const for constants are supported.
+ Variables without a prefix are treated as references to other
+ configuration properties (which is compatible to earlier versions).
+ </action>
+ <action dev="oheger" type="update">
+ Commons Configuration now depends on Commons Lang 2.2. Some features
+ of Lang's new text package are used.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-244">
+ The number of dependencies needed for DefaultConfigurationBuilder was
+ reduced by letting some of the default configuration providers resolve
+ their classes per reflection.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-240">
+ File-based configurations with a reloading strategy did not work well
+ together with CombinedConfiguration because the reloading strategy is
+ only checked when its associated configuration is accessed (which does
+ not happen when only the combined configuration is queried).
+ As a workaround CombinedConfiguration now provides the boolean
+ forceReloadCheck property. If this is set to true, all contained
+ configurations will be triggered when a property is queried. This will
+ cause a reload if necessary.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-243">
+ Configuration declarations in the configuration definition file for
+ DefaultConfigurationBuilder that are marked as optional now support a
+ new attribute config-forceCreate. If this attribute is set
+ to true and the initialization of the configuration fails,
+ DefaultConfigurationBuilder tries to add an empty configuration of the
+ correct type to the resulting combined configuration. Before this
+ change optional configurations that caused errors were never added to
+ the combined configuration.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-241">
+ CompositeConfiguration.clearProperty() now generates the correct
+ update events.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-242">
+ The configuration returned by HierarchicalConfiguration.subset()
+ performed variable interpolation only in the keys that belong to the
+ subset. Now the parent configuration is searched, too, to resolve the
+ value of the referenced property. This is consistent with the way
+ SubnodeConfiguration works.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-234">
+ DefaultConfigurationBuilder now internally uses the standard expression
+ engine for hierarchical configurations. So the dependency to Commons
+ JXPath is no more needed when this class is used. Note that this change
+ has some impact on existing code that manually sets properties before
+ the combined configuration is created; this code must now be adapted to
+ the changed syntax of property keys.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-236">
+ HierarchicalConfiguration and some of its sub classes now define a
+ copy constructor.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-197" due-to="Trevor Charles Miller">
+ A new configuration class for windows ini files was added.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-229">
+ For file-based configurations loaded by ConfigurationFactory the load()
+ method was called before all of the properties specified by attributes
+ of the XML element have been initialized. Now load() is called after
+ property initialization.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-235">
+ Interpolation of non string values did not work when SubsetConfiguration
+ was involved. This has now been fixed.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-227">
+ The compatibility of ConfigurationDynaBean with other configuration types
+ than those that inherit from BaseConfiguration was improved.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-233" due-to="Rainer Jung">
+ The getList() method of CompositeConfiguration does now fully support
+ variable interpolation. So it is possible to refer to a variable in
+ one (sub) configuration that is defined in another configuration.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-230">
+ XPathExpressionEngine used to create wrong keys for attribute nodes.
+ This caused some operations on XMLConfiguration to fail when such an
+ expression engine was set (e.g. reloading). Now correct keys for
+ attributes are constructed.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-228">
+ Some of the methods of file-based hierarchical configurations (e.g.
+ subset() or configurationAt()) did not take an eventually set reloading
+ strategy into account. This is now fixed by overriding the internal
+ fetchNodeList() method in AbstractHierarchicalFileConfiguration and
+ letting it always check for a reload.
+ </action>
+ </release>
+
+ <release version="1.3" date="2006-09-24">
+ </release>
+
+ <release version="1.3-rc2" date="2006-09-03">
+ <action dev="oheger" type="update" issue="CONFIGURATION-223" due-to="Gabriele Garuglieri">
+ AbstractFileConfiguration now overrides addProperty() and setProperty()
+ instead of addPropertyDirect() to implement the auto save feature.
+ This was necessary to properly integrate PropertiesConfigurationLayout.
+ It has also the advantage that an auto save is triggered only once if
+ multi-valued properties are involved (before a save operation was
+ performed for each property value).
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-222" due-to="Gabriele Garuglieri">
+ The new PropertiesConfigurationLayout class broke the save() operation
+ of PropertiesConfiguration when an instance was newly created and
+ populated in memory. This is fixed now by ensuring that a layout object
+ is immediately created and registered as event listener at the
+ configuration.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-221" due-to="Rainer Jung">
+ ConfigurationFactory now supports variables in its configuration
+ definition files. These variables are resolved using system properties
+ and have the typical ${} syntax.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-216" due-to="Gabriele Garuglieri">
+ There were still some problems with resolving relative paths when
+ configuration files are loaded from classpath. This fix addresses these
+ issues.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-220">
+ DataConfiguration.getDateArray() used to ignore the format argument.
+ This was fixed.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-219">
+ PropertiesConfiguration now defines its own clone() method to handle
+ the associated PropertiesConfigurationLayout object correctly.
+ </action>
+ </release>
+
+ <release version="1.3-rc1" date="2006-07-30">
+ <action dev="oheger" type="update" issue="CONFIGURATION-217">
+ The dependency to servletapi was updated from version 2.3 to version
+ 2.4, but version 2.3 will still work.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-104">
+ A new class PropertiesConfigurationLayout was introduced whose task is
+ to preserve the structure (e.g. comments, blanc lines) of a file
+ loaded by PropertiesConfiguration. Each PropertiesConfiguration
+ object is now associated with such a layout object. A saved properties
+ file will look very similar to its original.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-145">
+ clone() methods have been added to BaseConfiguration, AbstractFileConfiguration,
+ MapConfiguration, CompositeConfiguration, and CombinedConfiguration.
+ So the most important Configuration implementations now support
+ cloning. To ConfigurationUtils an utility method cloneConfiguration()
+ was added that allows to conveniently clone a configuration.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-216">
+ If a configuration file was to be loaded from classpath, the
+ constructor of AbstractFileConfiguration dropped the file's path. The
+ path is now taken into account.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-214">
+ The getter methods for numeric data types in AbstractConfiguration now
+ support conversions between different Number types, e.g. you can now
+ call getLong(key) when key points to an Integer value.
+ </action>
+ <action dev="oheger" type="add">
+ The new class DefaultConfigurationBuilder was added as an alternative to
+ ConfigurationFactory. It provides some more features and creates a
+ CombinedConfiguration object
+ </action>
+ <action dev="oheger" type="add">
+ The new class CombinedConfiguration was added as a hierarchical
+ alternative to CompositeConfiguration.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-143">
+ Support for low-level configuration events was added to all classes
+ derived from AbstractConfiguration. The major part of this is handled
+ by the new super class EventSource of AbstractConfiguration.
+ </action>
+ <action dev="oheger" type="add">
+ A new method convertToHierarchical() was added to ConfigurationUtils,
+ which is able to convert an arbitrary configuration object into a
+ hierarchical configuration.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-63">
+ Loading of file-based configurations no longer throws a NullPointerException
+ in setups where the thread context class loader is not set.
+ </action>
+ <action dev="oheger" type="update">
+ The dependency to dom4j was removed; it was only used by two test classes,
+ which have been re-written.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-100">
+ XMLConfiguration used to drop the DOCTYPE declaration when saving the
+ configuration. It is now able to extract the DTD's public and system ID
+ and write them back (more complex DOCTYPE declarations are still not supported).
+ With the new methods setSystemID() and setPublicID(), the DOCTYPE
+ declaration can be configured.
+ </action>
+ <action dev="ebourg" type="add" issue="CONFIGURATION-178">
+ Added two new constructors in CompositeConfiguration accepting a
+ collection of configurations as a parameter.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-186">
+ (Basic) Support for declaring beans in configuration files was added.
+ Some new classes in the beanutils package allow to create instances from
+ these declarations.
+ </action>
+ <action dev="oheger" type="update">
+ The implementation of the interpolation features have been extracted out
+ off AbstractConfiguration and moved to PropertyConverter. The
+ interpolateHelper() method of AbstractConfiguration is now deprectated
+ and will not be called any more during interpolation.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-182">
+ A new method configurationsAt() was added to HierarchicalConfiguration
+ that provides a convenient way of iterating over complex list-like
+ structures without the need of manually constructing configuration keys
+ with indices.
+ </action>
+ <action dev="oheger" type="add">
+ A new class SubnodeConfiguration was introduced that wraps a configuration
+ node of a HierarchicalConfiguration. All operations performed on this
+ configuration use this wrapped node as root. The new configurationAt()
+ method of HierarchicalConfiguration returns such a SubnodeConfiguration
+ for a specified sub node.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-173">
+ With XPathExpressionEngine an expression engine for hierarchical
+ configurations is now available that can evaluate XPATH expressions in
+ property keys. This expression engine implementation is based on
+ Commons JXPath, which is now declared as a new dependency (but at
+ runtime it is only needed if the XPathExpressionEngine class is used).
+ </action>
+ <action dev="oheger" type="add">
+ The code for interpreting property keys was refactored out off
+ HierarchicalConfiguration. Instead this class now supports pluggable
+ expression engines (using the setExpressionEngine() method). So it is
+ possible to plug in different expression languages. A default expression
+ engine is provided that understands the native expression language used
+ by hierarchical configurations in older versions. During the process of
+ this refactoring some methods of HierarchicalConfiguration have been
+ deprecated; they will not be called any more when searching or adding
+ properties. These are the following: createAddPath(), fetchAddNode(),
+ findLastPathNode(), findPropertyNodes().
+ </action>
+ <action dev="oheger" type="update">
+ A larger refactoring was performed on the inner Node class of
+ HierarchicalConfiguration: A ConfigurationNode interface was extracted
+ for which a default implementation (DefaultConfigurationNode) is
+ provided. HierarchicalConfiguration.Node now extends this default
+ implementation. The new ConfigurationNode interface defines some more
+ methods than the Node class did originally for conveniently dealing with
+ sub nodes and attributes. HierarchicalConfiguration now uses the new
+ type ConfigurationNode whereever possible. Some methods dealing with
+ Node objects have been deprecated and replaced by versions operating on
+ ConfigurationNode objects instead.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-155" due-to="Jorge Ferrer">
+ All configuration classes derived from AbstractConfiguration now allow
+ to set an instance specific list delimiter. This can be done through
+ the new method setListDelimiter(). As before it is possible to define
+ a default list delimiter, which will be used if no instance specific
+ delimiter is set. This can be done using the new setDefaultListDelimiter()
+ method (the methods get/setDelimiter() have been deprecated). With the
+ new setDelimiterParsingDisabled() method parsing of lists can be
+ disabled at all.
+ </action>
+ </release>
+
+ <release version="1.2" date="2005-12-17">
+ </release>
+
+ <release version="1.2-rc3" date="2005-12-07">
+ <action dev="oheger" type="update">
+ Commons Configuration now declares a dependency to Xalan. As with
+ Xerces this dependency is only needed for JDK 1.3. It was introduced
+ in a process of making Configuration buildable on a JDK 1.3. Documentation
+ about the build process was also added.
+ </action>
+ <action dev="oheger" type="update">
+ The dependency to Commons Beanutils Collections was unnecessary and
+ thus removed.
+ </action>
+ <action dev="oheger" type="update">
+ Commons Configuration now depends on Commons Digester 1.6 instead of 1.5.
+ (This was done only to pick up the latest available release of digester.)
+ </action>
+ </release>
+
+ <release version="1.2-rc2" date="2005-11-23">
+ <action dev="oheger" type="update" issue="CONFIGURATION-2">
+ ConfigurationDynaBean now implements the java.util.Map interface (as
+ was stated in the javadocs). This was done by deriving the class from
+ ConfigurationMap.
+ </action>
+ </release>
+
+ <release version="1.2-rc1" date="2005-11-11">
+ <action dev="oheger" type="update" issue="CONFIGURATION-33">
+ The reload() method in AbstractFileConfiguration was updated to prevent
+ reentrant invocation, which may be caused by some methods when they
+ are called during a reloading operation.
+ </action>
+ <action dev="ebourg, oheger" type="update">
+ AbstractHierarchicalFileConfiguration, a new base class for file based
+ hierarchical configurations, was introduced. XMLConfiguration now
+ extends this class.
+ </action>
+ <action dev="oheger" type="update" due-to="Kay Doebl" issue="CONFIGURATION-41">
+ XMLConfiguration now prints the used encoding in the xml declaration of
+ generated files. In earlier versions always the default encoding was
+ written. PropertiesConfiguration now always uses the platform specific
+ line separator when saving files.
+ </action>
+ <action dev="ebourg" type="update" issue="CONFIGURATION-8">
+ PropertiesConfiguration now translates properly the escaped unicode
+ characters (like \u1234) used in the property keys. This complies with
+ the specification of java.util.Properties.
+ </action>
+ <action dev="ebourg" type="update" issue="CONFIGURATION-123">
+ ConfigurationConverter.getProperties() now uses the delimiter of the
+ specified configuration to convert the list properties into strings.
+ </action>
+ <action dev="ebourg" type="update" issue="CONFIGURATION-123">
+ The interpolation of variables (${foo}) is now performed in all property
+ getters of AbstractConfiguration and DataConfiguration. As a side effect
+ the Properties object returned by ConfigurationConverter.getProperties()
+ contains only interpolated values.
+ </action>
+ <action dev="ebourg" type="update" issue="CONFIGURATION-35">
+ PropertiesConfiguration now uses the ISO-8859-1 encoding by default
+ instead of the system encoding to comply with the specification of
+ java.util.Properties.
+ </action>
+ <action dev="ebourg" type="update" issue="CONFIGURATION-44">
+ JNDIConfiguration no longer logs an error when attempting to get
+ a property that doesn't exist in the configuration.
+ </action>
+ <action dev="ebourg" type="update" issue="CONFIGURATION-99">
+ Attempting to load a configuration from a directory instead of a file
+ will now throw a ConfigurationException.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-28">
+ If a multi-valued property was involved in an interpolation operation,
+ AbstractConfiguration created a string representation of the list of all
+ values. This was changed to only use the first value, which makes more
+ sense in this context and is consistent with other getters for single
+ valued properties.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-83">
+ If an include file with a relative path cannot be found in the base
+ path, PropertiesConfiguration now also tries to resolve it based on its
+ own location.
+ </action>
+ <action dev="ebourg" type="update" issue="CONFIGURATION-117" due-to="Steve Bate">
+ Fixed MapConfiguration to store the list of values added under a same
+ key instead of the last value added.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-80">
+ Fixed a bug in the handling of relative file names in ConfigurationFactory:
+ In most cases relative file names were not resolved relative to the
+ location of the configuration definition file as stated in the documentation.
+ This behavior was now changed to always be in sync with the documentation.
+ This may have an impact on existing code which uses workarounds for
+ the erroneous resolving mechanism.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-6">
+ Empty elements or elements whose content consists only of comments or
+ whitespace are now taken into account by XMLConfiguration. They are
+ added to the configuration; their value is an empty string.
+ </action>
+ <action dev="oheger" type="add">
+ XMLConfiguration now sets a valid system id in the InputSource used for
+ loading files. This enables XML parsers to correctly resolve relative
+ files, e.g. DTDs.
+ </action>
+ <action dev="ebourg" type="update" issue="CONFIGURATION-74">
+ getKeys() in HierarchicalConfiguration now returns the keys in the same order the properties were inserted.
+ </action>
+ <action dev="ebourg" type="update">
+ Commons Configuration now depends on Commons Collections 3.1 instead of 3.0
+ </action>
+ <action dev="ebourg" type="add" issue="CONFIGURATION-195">
+ New configurations implementing the "property list" format used in
+ NeXT/OpenStep and its XML variant used in Mac OS X.
+ (PropertyListConfiguration and XMLPropertyListConfiguration)
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-97">
+ Resolved some issues with XMLConfiguration and properties containing
+ the delimiter character. These properties are now correctly treated,
+ escaping the delimiter will work, too.
+ </action>
+ <action dev="ebourg" type="add">
+ Added support for XMLPropertiesConfiguration in ConfigurationFactory.
+ A <properties> element will generate a XMLPropertiesConfiguration
+ if the filename ends with ".xml".
+ </action>
+ <action dev="ebourg" type="add" issue="CONFIGURATION-184">
+ PropertiesConfiguration now supports escaped key/value separators in the keys
+ (i.e foo\:key = bar).
+ </action>
+ <action dev="ebourg" type="add" issue="CONFIGURATION-166">
+ PropertiesConfiguration now supports all key/value separators supported by java.util.Properties
+ ('=', ':' and white space characters).
+ </action>
+ <action dev="ebourg" type="update">
+ Commons Configuration now depends on Commons Lang 2.1 instead of 2.0
+ </action>
+ <action dev="ebourg" type="update" issue="CONFIGURATION-207">
+ Comment lines for PropertiesConfiguration can start with the '!' char (compatibility with java.util.Properties).
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-84">
+ Because ConfigurationUtils.copy() does not fully support hierarchical
+ configurations a clone() method was added to HierarchicalConfiguration
+ that can be used instead.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-206">
+ XMLConfiguration now provides some support for validating XML
+ documents. With the setValidating() method DTD validation can be
+ enabled. It is also possible to set a custom DocumentBuilder allowing
+ a caller to perform enhanced configuration of the XML loading process.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-121">
+ AbstractFileConfiguration now always sets a valid base path if the
+ configuration file could be located. This allows PropertiesConfiguration
+ to resolve include files even when loaded from class path.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-85">
+ Updated XMLConfiguration to correctly deal with properties containing
+ dots in their names. Such properties could not be accessed before.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-9">
+ PropertiesConfiguration's handling of backslash characters at the end
+ of line was incorrect when there was an even number of trailing
+ backslashes. This is now fixed.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-130">
+ Fixed a problem related to file based configurations that are loaded
+ from a URL which is application/x-www-form-urlencoded: the save() method
+ would store such files at a wrong location.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-50">
+ Updated FileChangedReloadingStrategy to use the file based configuration's
+ source URL to find the file to watch. Before that it was possible that
+ the strategy checked the wrong file. For configuration files loaded
+ from a jar FileChangedReloadingStrategy now checks the jar file itself
+ for changes. Finally a bug was fixed which caused the strategy to
+ check the watched file's last change date on every invocation of its
+ reloadingRequired() method ignoring its refresh delay. Thanks to Jorge
+ Ferrer.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-62">
+ Fixed a bug in the collaboration between XMLConfiguration and its
+ reloading strategy: The configuration did not check its reloading
+ strategy, so no reload was performed.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-119">
+ Disabled auto save mode during PropertiesConfiguration.load(). Prior
+ it was possible that the properties file to be loaded was immideately
+ overwritten.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-89">
+ Under certain circumstances it was possible that a reloading strategy
+ set for PropertiesConfiguration interferred with the save() method causing
+ the configuration file to be erased. This has now been fixed.
+ </action>
+ <action dev="oheger" type="update" due-to="Jamie M. Guillemette" issue="CONFIGURATION-94">
+ AbstractFileConfiguration now stores the URL of the config file in the
+ load() methods. This URL is reused by the save() method to ensure that
+ the same file is written.
+ </action>
+ <action dev="ebourg" type="update" due-to="Alistair Young">
+ XMLPropertiesConfiguration no longer depends on Digester to parse the
+ configuration file, it's now implemented with a pure SAX parser.
+ </action>
+ <action dev="oheger" type="update" due-to="Mi Zhang" issue="CONFIGURATION-49">
+ Fixed a bug which causes XMLConfiguration.save to lose attribute values
+ under some circumstances. The clear() method now also ensures that the
+ associated DOM document is always cleared.
+ </action>
+ <action dev="ebourg" type="update" due-to="Kunihara Tetsuya" issue="CONFIGURATION-13">
+ XMLConfiguration now parse the configuration using the encoding
+ declared in the XML header instead of the OS default encoding.
+ </action>
+ <action dev="ebourg" type="update" due-to="Zsolt Koppany">
+ XMLConfiguration now uses the delimiter set by setDelimiter(char).
+ </action>
+ </release>
+
+ <release version="1.1" date="2005-04-02">
+ <action dev="ebourg" type="update" issue="CONFIGURATION-134">
+ Fixed a ConcurrentModificationException thrown when calling clear()
+ on a SubsetConfiguration applied to a BaseConfiguration.
+ </action>
+ <action dev="ebourg" type="update" issue="CONFIGURATION-81">
+ The resolveContainerStore() method in AbstractConfiguration now works
+ properly with arrays of objects and arrays of primitives. This means
+ it is possible to store an array of value in the configuration and
+ retrieve the first element with the getString(), getInt()... methods.
+ </action>
+ </release>
+
+ <release version="1.1-rc2" date="2005-03-06">
+ <action dev="oheger" type="update" issue="CONFIGURATION-118">
+ Updated documentation for FileConfiguration's load() methods. Fixed a
+ problem in XMLConfiguration with the output of the save() method when
+ multiple files were loaded.
+ </action>
+ <action dev="ebourg" type="update">
+ Fixed a bug in FileChangedReloadingStrategy preventing the detection
+ of a file change in some cases.
+ </action>
+ <action dev="ebourg" type="update">
+ Changed getXXXArray() and getXXXList() in DataConfiguration to return
+ an empty array/list for empty values.
+ </action>
+ <action dev="ebourg" type="update" issue="CONFIGURATION-58">
+ Fixed getLongArray(), getFloatArray() and getDoubleArray() in DataConfiguration,
+ the values were cast into integers.
+ </action>
+ </release>
+
+ <release version="1.1-rc1" date="2005-02-13">
+ <action dev="oheger" type="add" issue="CONFIGURATION-88">
+ ConfigurationFactory now always configures digester to use the context
+ classloader. This avoids problems in application server environments,
+ which use their own version of digester. Thanks to Mike Colbert for the
+ patch!
+ </action>
+ <action dev="ebourg" type="add" issue="CONFIGURATION-148">
+ Added a new configuration, XMLPropertiesConfiguration, supporting the
+ new XML format for java.util.Properties introduced in Java 1.5.
+ A 1.5 runtime is not required to use this class.
+ </action>
+ <action dev="ebourg" type="add" issue="CONFIGURATION-190">
+ Added a comment header to PropertiesConfiguration. The header is not
+ parsed when the file is loaded yet.
+ </action>
+ <action dev="ebourg" type="add">
+ Added the setEncoding(String) and the getEncoding() methods to the
+ FileConfiguration interface to control the encoding of the
+ configuration file.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-210">
+ Access to the top level element of the XML document is now provided. For
+ newly created configurations this element can be changed before the
+ document is written.
+ </action>
+ <action dev="oheger" type="update" issue="CONFIGURATION-168">
+ Merged the two XML related configuration classes into one new class
+ XMLConfiguration. This new class should provide the best of its
+ ancestors.
+ </action>
+ <action dev="ebourg" type="update">
+ Replaced the PropertyTokenizer inner class in AbstractConfiguration
+ with the split method in PropertyConverter. Also moved the method
+ building an iterator on the elements of a composite value in
+ PropertyConverter as toIterator().
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-15">
+ Some cleanup of the handling of the base path in file based configurations.
+ The base path is now always taken into account.
+ </action>
+ <action dev="ebourg" type="fix">
+ Calling getProperties on a JNDIConfiguration no longer throws an
+ UnsupportedOperationException.
+ </action>
+ <action dev="ebourg" type="remove">
+ Removed the getPropertyDirect method from AbstractConfiguration,
+ concrete configurations now implement directly the getProperty method
+ from the Configuration interface.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-187">
+ Added implementation of a save() method for HierarchicalXMLConfiguration.
+ </action>
+ <action dev="ebourg" type="update">
+ Constructing a file based configuration with a File no longer throws
+ an exception when the file doesn't exist.
+ </action>
+ <action dev="ebourg" type="add">
+ Saving a configuration now creates the path to the file if it doesn't exist.
+ </action>
+ <action dev="ebourg" type="update" issue="CONFIGURATION-45">
+ AbstractFileConfiguration.save(File) no longer fails silently when
+ an error occurs, a ConfigurationException is thrown instead.
+ </action>
+ <action dev="ebourg" type="fix">
+ ConfigurationUtils.locate() now checks if the URL based resources exist.
+ This fixes a bug preventing configuration files from being found if
+ the configuration descriptor is in a JAR file (reported by Grant Ingersoll).
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-96">
+ Fixed NPE that were caused in the constructors of file based
+ configurations if an invalid file name was specified.
+ </action>
+ <action dev="oheger" type="add" issue="CONFIGURATION-162">
+ Added support for optional configuration sources in definition files for
+ ConfigurationFactory. A new optional attribute allows to specify whether a
+ configuration source is mandatory or optional.
+ </action>
+ <action dev="ebourg" type="fix">
+ JNDIConfiguration.getKeys() now returns an empty iterator instead of
+ throwing a ConfigurationRuntimeException when a NamingException occurs.
+ The NamingExceptions are now logged.
+ </action>
+ <action dev="ebourg" type="fix">
+ DatabaseConfiguration.isEmpty() now returns true if an SQLException occurs.
+ </action>
+ <action dev="ebourg" type="add">
+ Added two methods copy(Configuration, Configuration) and
+ append(Configuration, Configuration) in ConfigurationUtils to copy
+ properties between configurations.
+ </action>
+ <action dev="ebourg" type="update">
+ Moved the constructors implementations from PropertiesConfiguration and
+ XMLConfiguration to AbstractFileConfiguration.
+ </action>
+ <action dev="epugh" type="remove">
+ Remove deprecated getVector() implementations.
+ </action>
+ <action dev="ebourg" type="add" issue="CONFIGURATION-147">
+ File based configurations can now be automatically reloaded when the
+ underlying file is modified.
+ </action>
+ <action dev="ebourg" type="add" issue="CONFIGURATION-156">
+ Added a clear() method to the Configuration interface to remove
+ all properties.
+ </action>
+ <action dev="ebourg" type="add" issue="CONFIGURATION-208">
+ Added a SystemConfiguration wrapping the system properties.
+ ConfigurationFactory recognizes the corresponding <system/>
+ element.
+ </action>
+ <action dev="ebourg" type="add">
+ Added a MapConfiguration to turn any Map into a Configuration. The
+ getConfiguration() methods in ConfigurationConverter now use
+ MapConfiguration, as a result the Configuration returned is always
+ synchronized with the underlying Properties or ExtendedProperties,
+ changes made to the Configuration are available in the Properties,
+ and reciprocally.
+ </action>
+ <action dev="ebourg" type="add" issue="CONFIGURATION-146">
+ The "autoSave" feature of XMLConfiguration has been generalized
+ to all file based configurations.
+ </action>
+ <action dev="ebourg" type="add" issue="CONFIGURATION-191">
+ Numeric properties can now be specified in hexadecimal format,
+ for example "number = 0xC5F0".
+ </action>
+ <action dev="oheger" type="fix" issue="CONFIGURATION-36">
+ Fixed HierarchicalConfiguration.getKeys(String), it returned an empty
+ iterator if the prefix string contained indices.
+ </action>
+ <action dev="ebourg" type="add">
+ Added a DataConfiguration decorator providing getters for all useful
+ types found in a configuration (URL, Locale, Date, Calendar, Color,
+ lists and arrays)
+ </action>
+ <action dev="ebourg" type="add">
+ Added 5 new configurations to be used in a web environment:
+ AppletConfiguration, ServletConfiguration, ServletContextConfiguration,
+ ServletRequestConfiguration, ServletFilterConfiguration.
+ </action>
+ </release>
+
+ <release version="1.0" date="2004-10-11" description="First official release">
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-66">
+ The getStringArray() method in CompositeConfiguration now interpolates
+ the strings.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-23">
+ SubsetConfiguration now shares the "throwExceptionOnMissing" property
+ with its parent.
+ </action>
+ <action dev="ebourg" type="fix">
+ Removed "file:" at the beginning of the base path when calling
+ setFile() on a FileConfiguration. This prevented auto saving an
+ XMLConfiguration loaded from a File (issue reported by Mark Roth).
+ </action>
+ <action dev="ebourg" type="update">
+ All NamingEnumerations in JNDIConfiguraiton are now properly closed (Suggested
+ by Eric Jung).
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-90">
+ Properties added to an XMLConfiguration are no longer duplicated in the
+ resulting XML file.
+ </action>
+ </release>
+
+ <release version="1.0-rc2" date="2004-09-24">
+ <action dev="ebourg" type="update">
+ Unified the mechanisms for loading and saving file based configurations.
+ PropertiesConfiguration, XMLConfiguration and HierarchicalXMLConfiguration
+ now implement the same FileConfiguration interface. BasePathLoader,
+ BasePathConfiguration, ClassPropertiesConfiguration and
+ BasePropertiesConfiguration have been removed.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-22">
+ Replaced the calls to Boolean.booleanValue(boolean) in
+ AbstractConfiguration and ConfigurationDynaBean to be Java 1.3
+ compatible.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-112">
+ Changing the prefix of a JNDIConfiguration will now reset the base context used.
+ </action>
+ <action dev="ebourg" type="add" due-to="Eric Jung">
+ The context used by JNDIConfiguration can be specified in its
+ constructor or through the setContext() method. The context can be
+ accessed with the getContext() method which is now public.
+ </action>
+ <action dev="henning" type="add">
+ Make the behavior on missing properties for the get methods that
+ return objects configurable. A property throwExceptionOnMissing
+ can be set and then the getters throw an NoSuchElementException.
+ The old default behavior of returning a null value has
+ been restored.
+ </action>
+ <action dev="epugh" type="add" issue="CONFIGURATION-151">
+ Allow configurations extending AbstractConfiguration to change the
+ delimiter used from "," to something else.
+ </action>
+ <action dev="epugh" type="fix">
+ PropertiesConfiguration.save() method has issues with preserving the filename
+ </action>
+ <action dev="epugh" type="fix" issue="CONFIGURATION-132" due-to="Mark Woodman">
+ Test cases for HierarchicalConfigurationXMLReader stores comments as text nodes.
+ </action>
+ <action dev="epugh" type="fix" issue="CONFIGURATION-183" due-to="Ricardo Gladwell">
+ Clarify for ConfigurationDynaBean that the get method should throw an
+ illegalArgumentException if there is no property specified.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-25">
+ Fixed a ClassCastException when adding a non String property to an XMLConfiguration.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-138" due-to="Oliver Heger">
+ Fixed the handling of attribute properties by HierarchicalConfigurationConverter.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-125">
+ Fixed a ClassCastException thrown on adding a non string property
+ in a DatabaseConfiguration.
+ </action>
+ <action dev="henning" type="add">
+ Bring back the getVector() methods in the Configuration interface.
+ These methods are needed for "drop-on" replacement of the
+ various pre-1.0 commons-configuration snapshots and are already
+ deprecated. These methods will be removed for 1.1.
+ </action>
+ </release>
+
+ <release version="1.0-rc1" date="2004-08-14">
+ <action dev="epugh" type="add" issue="CONFIGURATION-132" due-to="Oliver Heger">
+ HierarchicalConfigurationXMLReader stores comments as text nodes.
+ </action>
+ <action dev="epugh" type="add" issue="CONFIGURATION-122" due-to="Ricardo Gladwell">
+ project.xml contains bad dependencies.
+ </action>
+ <action dev="epugh" type="add" issue="CONFIGURATION-64" due-to="Brent Worden">
+ clearXmlProperty doesn't remove list properties completely.
+ </action>
+ <action dev="epugh" type="add" issue="CONFIGURATION-183" due-to="Ricardo Gladwell">
+ new ConfigurationDynaBean.
+ </action>
+ <action dev="epugh" type="add" issue="CONFIGURATION-185" due-to="Ricardo Gladwell">
+ new ConfigurationMap and ConfigurationSet.
+ </action>
+ <action dev="epugh" type="fix" issue="CONFIGURATION-91" due-to="Ricardo Gladwell">
+ Problem adding property XMLConfiguration.
+ </action>
+ <action dev="epugh" type="remove">
+ ConfigurationXMLDocument removed until post 1.0.
+ </action>
+ <action dev="epugh" type="fix" issue="CONFIGURATION-18">
+ DatabaseConfiguration doesn't support List properties.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-137">
+ Fixed a bug related to XMLConfiguration. Can't add a new property as an
+ attribute in XMLConfiguration.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-116">
+ Fixed a bug related to XMLConfiguration. XMLConfiguration doesn't
+ support attribute names with a dot.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-4">
+ Fixed a bug related to XMLConfiguration. XMLConfiguration doesn't ignore
+ comments.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-32">
+ Fixed a bug related to XMLConfiguration. XMLConfiguration.save() doesn't
+ escape reserved characters.
+ </action>
+ <action dev="ebourg" type="add" issue="CONFIGURATION-114">
+ Added save methods in XMLConfiguration similar to PropertiesConfiguration
+ to save the configuration to another file.
+ </action>
+ <action dev="ebourg" type="update">
+ Removed the DOM4J implementations in favor of the DOM ones.
+ DOMConfiguration has been renamed to XMLConfiguration, and
+ HierarchicalDOMConfiguration to HierarchicalXMLConfiguration. The
+ elements parsed by the ConfigurationFactory have been changed
+ accordingly.
+ </action>
+ <action dev="ebourg" type="add">
+ Added a save() method to PropertiesConfiguration and save(Writer out),
+ save(OutputStream out), save(OutputStream out, String encoding) to
+ BasePropertiesConfiguration.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-98">
+ List values are now properly stored as comma separated values in the
+ Properties object returned by ConfigurationConverter.getProperties()
+ </action>
+ <action dev="ebourg" type="update">
+ Introduced a ConversionException thrown when the value of a property is
+ not compatible the type requested. It replaces the ClassCastException
+ and the NumberFormatException thrown previously.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-174">
+ Tokens like ${ref} in a PropertyConfiguration are now properly saved.
+ </action>
+ <action dev="ebourg" type="fix" issue="CONFIGURATION-127">
+ The getList() method of a CompositeConfiguration now returns the list
+ composed of the elements in the first matching configuration and the
+ additional elements found in the in memory configuration.
+ </action>
+ <action dev="epugh" type="fix">
+ SubsetConfiguration returns a List on getList(). AbstractConfiguration
+ wouldn't properly deal with a List, only with a Container for getList()!
+ Thanks to jschaible for the unit test.
+ </action>
+ <action dev="jschaible" type="add">
+ Direct support of XML via DOM. New classes DOMConfiguration and HierarchicalDOMConfiguration.
+ </action>
+ <action dev="jschaible" type="update">
+ Update build to not include test configuration files in resulting jar.
+ </action>
+ <action dev="ebourg" type="update">
+ Refactored JNDIConfiguration to use AbstractConfiguration.
+ </action>
+ <action dev="ebourg" type="update" issue="CONFIGURATION-76">
+ Fixed invalid subsets by refactoring out the subset logic into a SubsetConfiguration.
+ </action>
+ <action dev="oheger" type="fix">
+ Reapply the ConfigurationXMLDocument that went missing during migration out of sandbox.
+ </action>
+ <action dev="epugh" type="update">
+ Apply ASL 2.0 license. Thanks to Jeff Painter for scripting the conversion!
+ </action>
+ <action dev="epugh" type="add">
+ Changed CompositeConfiguration to extend from AbstractConfiuration. This means that the behavior of
+ CompositeConfiguration is much similar to others like PropertiesConfiguration in handling of missing
+ keys, interpolation, etc.. Previously CompositeConfiguration had quite a few differences.
+ </action>
+ <action dev="epugh" type="update">
+ Removed "defaults" from BaseConfiguration. Defaults are now done via using a CompositeConfiguration, either
+ directly or via a ConfigurationFactory. if you want to save changes made to a Configuration, then you use
+ a CompositeConfiguration and get back the inMemoryConfiguration that has the delta of changes. Added a
+ bit of documentation on this.
+ </action>
+ <action dev="epugh" type="update" issue="CONFIGURATION-154">
+ Enhancement: Configuration Comparator.
+ </action>
+ <action dev="epugh" type="update" issue="CONFIGURATION-54">
+ BaseConfiguration: containsKey ignores default properties.
+ I have changed it so that now the defaults are paid attention to.
+ </action>
+ <action dev="ebourg" type="add">
+ The Configuration interface now supports BigDecimal and BigInteger numbers.
+ </action>
+ <action dev="epugh" type="add">
+ ConfigurationException is now thrown by public methods instead of Exception or
+ IOException or whatnot.
+ </action>
+ <action dev="ebourg" type="add">
+ For configuration based on properties files, allow characters like \n etc
+ to be escaped and unescaped.
+ </action>
+ <action dev="ebourg" type="add">
+ New DatabaseConfiguration that uses a database to store the properties.
+ It supports 2 table structures: one table per configuration (2 colums
+ key/value), one table for multiple configurations (2 columns key/value +
+ 1 column for the name of the configuration).
+ </action>
+ <action dev="oheger" type="add">
+ ConfigurationFactory now supports the hierarchicalDom4j element in configuration
+ definition file
+ </action>
+ <action dev="ebourg" type="update">
+ Change all Vector objects to List objects.
+ </action>
+ <action dev="oheger" type="add">
+ ConfigurationFactory now supports two types of properties files, additional and
+ override. Additional properties add each other together. Override override each
+ other. This allows you to have a single property that is either aggregated from a
+ number of sources, or have a property that is overridden according to a specific
+ order of sources.
+ </action>
+ <action dev="oheger" type="update">
+ AbstractConfiguration addProperty now delegates to an abstract addPropertyDirect
+ implemented by BaseConfiguration.
+ </action>
+ <action dev="kshaposhnikov" type="update">
+ Changed getString() method to throw a NoSuchElementException instead of "" if the
+ configuration property doesn't exist.
+ </action>
+ <action dev="kshaposhnikov" type="add">
+ Added AbstractConfiguration to make it easier to create subclasses by only
+ having to implement the methods required.
+ </action>
+ <action dev="bdunbar" type="fix">
+ ClassPropertiesConfiguration Additions:
+ Use the classloader of class that is provided by the constructor.
+ Add a constructor that indicates whether to use relative or absolute.
+ Change getPropertyStream to utilize the relative or absolute flag.
+ Add a test case that checks that absolute paths work.
+ </action>
+ <action dev="epugh" type="fix">
+ JNDIConfiguration.getKeys() Addition:
+ The JNDIConfiguration.getKeys() method was returning an unsupported
+ operation error. However, this is an important method to have
+ supported.
+ </action>
+ <action dev="epugh" type="fix">
+ CompositeConfiguration.getKeys() Fix
+ The CompositeConfiguration.getKeys() method was returning an
+ unordered list of configuration values. However, many apps
+ expect the order that keys are returned to be the order they
+ are added into the properties file.
+ </action>
+ </release>
+ </body>
+</document>