<?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="update" issue="CONFIGURATION-754" due-to="Gary Gregory"> | |
Update Apache Commons Text from 1.7 to 1.8. | |
</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> |