You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2008/12/09 22:33:28 UTC
svn commit: r724903 - /commons/proper/configuration/trunk/RELEASE-NOTES.txt
Author: oheger
Date: Tue Dec 9 13:33:28 2008
New Revision: 724903
URL: http://svn.apache.org/viewvc?rev=724903&view=rev
Log:
Updated release notes for the 1.6 release.
Modified:
commons/proper/configuration/trunk/RELEASE-NOTES.txt
Modified: commons/proper/configuration/trunk/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/RELEASE-NOTES.txt?rev=724903&r1=724902&r2=724903&view=diff
==============================================================================
--- commons/proper/configuration/trunk/RELEASE-NOTES.txt (original)
+++ commons/proper/configuration/trunk/RELEASE-NOTES.txt Tue Dec 9 13:33:28 2008
@@ -1,7 +1,7 @@
$Id$
Commons Configuration Package
- Version 1.5
+ Version 1.6
Release Notes
@@ -13,202 +13,199 @@
Commons Configuration provides a generic configuration interface which enables
an application to read configuration data from a variety of sources.
-The 1.5 release contains numerous bug fixes. Most of the addressed bugs are
-not really critical. Some of them have been living in the code base for quite a
-while. In some cases (e.g. handling of list properties) the behavior of the
-involved methods has been made more consistent. There are also a few new
-features, e.g. a new Configuration class for accessing environment variables
-or support for registering DTD files when parsing XML files.
+This release is in line with the previous 1.5 release: there are no big changes
+or spectacular new features, but a lot of smaller bug fixes and enhancements.
+By removing some bugs and inconsistencies, which are rather annoying than
+critical, the library has been made more stable. There are also a few new
+features, e.g. support for the xml:space attribute in XMLConfiguration, or
+multiple enhancements of DefaultConfigurationBuilder.
-Commons Configuration 1.5 is fully binary compatible to the previous version.
+Commons Configuration 1.6 is fully binary compatible to the previous version.
Apart from the bug fixes existing code should not be impacted when switching
-from 1.4 to 1.5.
+from 1.5 to 1.6. Commons Configuration 1.6 is also still compatible with Java
+1.3 (with one exception outline below).
-A complete list of changes can be found below.
+Following is a complete list of all changes in the new release:
-BUG FIXES IN 1.5
-================
-* [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.
-
-* [CONFIGURATION-296]
- A bug in XMLConfiguration caused that attributes of the root element could
- not be changed. This has been fixed.
-
-* [CONFIGURATION-295]
- The subset() method of HierarchicalConfiguration now takes the value of the
- subset's root node into account if it is not ambigous.
-
-* [CONFIGURATION-294]
- Nodes added to a XMLConfiguration using the addNodes() method could lose
- their value when the configuration was saved. This is now fixed.
-
-* [CONFIGURATION-291]
- The addNodes() method of hierarchical file-based configurations now correctly
- triggers an auto save.
-
-* [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.
-
-* [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.
-
-* [CONFIGURATION-282]
- The default expression engine used by HierarchicalConfiguration instances is
- now lazily initialized. This avoids NullPointerExceptions in certain server
- environments after a redeploy.
-
-* [CONFIGURATION-281]
- Cycles in the JNDI tree no longer cause a stack overflow in
- JNDIConfiguration.
-
-* [CONFIGURATION-280]
- Using file-based configurations in auto-save mode together with a reloading
- strategy could cause data loss. This has been fixed.
-
-* [CONFIGURATION-279]
- A PropertiesConfiguration that was created from a non existing file lost its
- content when it was saved. This problem has been solved.
-
-* [CONFIGURATION-275]
- AbstractConfiguration.addProperty() now correctly deals with list and array
- properties if delimiter parsing is disabled.
-
-* [CONFIGURATION-274]
- PropertiesConfiguration now supports escaping the escape character for list
- delimiters.
-
-* [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.
-
-* [CONFIGURATION-270]
- List properties and properties containing interpolated variables are now
- properly saved by INIConfiguration.
-
-* [CONFIGURATION-269]
- PropertiesConfiguration no longer escapes the list delimiter on saving if the
- list delimiter has been disabled.
-
-* [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.
-
-* [CONFIGURATION-267]
- INIConfiguration flushes the output at the end of a save operation.
+BREAKING CHANGES in 1.6
+=======================
+* Parsing of date properties in PropertyListConfiguration does not work on
+ Java 1.3. Later Java versions are not affected.
-* [CONFIGURATION-263]
- XMLConfiguration used to drop attributes when an element's value was a list.
+BUG FIXES IN 1.6
+================
+* [CONFIGURATION-348]
+ AbstractHierarchicalFileConfiguration.getKeys() now also checks whether a
+ reload is required.
+
+* [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.
+
+* [CONFIGURATION-346]
+ ConfigurationUtils.convertToHierarchical() now creates multiple configuration
+ nodes for properties with multiple values. This improves compatibility with
+ queries.
+
+* [CONFIGURATION-345]
+ PropertiesConfiguration now per default uses the encoding "ISO-8859-1" for
+ loading properties files.
+
+* [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.
+
+* [CONFIGURATION-341]
+ The "force reload check" mechanism of CombinedConfiguration now also works
+ with sub configurations created by configurationAt().
+
+* [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.
+
+* [CONFIGURATION-334]
+ Made handling of parent nodes more consistent when setRoot() or setRootNode()
+ of HierarchicalConfiguration are involved.
+
+* [CONFIGURATION-334]
+ Properties written through a DataConfiguration to a wrapped
+ PropertiesConfiguration got lost when the PropertiesConfiguration was saved.
This has been fixed.
-* [CONFIGURATION-253]
- The return value of FileConfiguration.getFile() is now always consistent with
- the result of getURL().
-
-* [CONFIGURATION-180]
- Fixed a potential issue in DatabaseConfiguration where an error on closing a
- statement would prevent the connection from being closed.
+* [CONFIGURATION-328]
+ A bug in XMLConfiguration.addNodes() made it impossible to add attribute
+ nodes using this method. This has been fixed.
+
+* [CONFIGURATION-322]
+ ConfigurationDynaBean now works properly with indexed properties stored
+ internally in the underlying configuration as arrays.
+
+* [CONFIGURATION-321]
+ The iterator returned by HierarchicalConfiguration.getKeys(String prefix) now
+ also contains the prefix if this key is contained in the configuration.
+
+* [CONFIGURATION-320]
+ XMLPropertyListConfiguration is no longer limited to 32 bits integers.
+
+* [CONFIGURATION-318]
+ When an XMLConfiguration is created using the copy constructor, the name of
+ the root element is now preserved.
+
+* [CONFIGURATION-316]
+ Changing the text of the root element of an XMLConfiguration had no effect
+ when the configuration was saved. This has been fixed.
+
+* [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.
+
+* [CONFIGURATION-309]
+ Instantiating an XMLPropertyListConfiguration no longer fails if the DTD is
+ missing from the classpath.
+
+* [CONFIGURATION-306]
+ INIConfiguration now preserves whitespace in quoted values.
+
+* [CONFIGURATION-302]
+ If a change has been detected by FileChangedReloadingStrategy, the
+ reloadingRequired() method will now return true until reloadingPerformed()
+ has been called.
+
+* [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.
+
+* [CONFIGURATION-300]
+ It's now possible to read a configuration file containing a '#' in its name
+ (requires Java 1.4 or above).
-* byte[] properties are properly saved as data fields in the plist
- configurations (PropertyListConfiguration and XMLPropertyListConfiguration).
+* [CONFIGURATION-260]
+ Fixed the date format for XMLPropertyListConfiguration.
-IMPROVEMENTS IN 1.5
+IMPROVEMENTS IN 1.6
===================
-* [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.
-
-* [CONFIGURATION-284]
- 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.
-
-* [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.
-
-* [CONFIGURATION-277]
- The base implementation of clear() in AbstractConfiguration now checks for a
- potential UnsupportedOperationException when iterating over the existing
- properties.
-
-* [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.
-
-* [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.
-
-* [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.
-
-* [CONFIGURATION-261]
- Date objects are now supported in ASCII plist files.
-
-* [CONFIGURATION-249]
- File configurations can now be saved to FTP URLs, or any other URL protocol
- supporting data output.
-
-* [CONFIGURATION-215]
- A new getSource() method was added to CompositeConfiguration and
- CombinedConfiguration, which returns the child configuration, in which a
- given property is defined.
-
-* 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.
-
-* Generic get methods have been added to DataConfiguration (get(), getArray()
- and getList())
+* [CONFIGURATION-351]
+ Allow variable resolvers to be defined and configured in
+ DefaultConfigurationBuilder.
+
+* [CONFIGURATION-350]
+ Added MultiFileHierarchicalConfiguration, DynamicCombinedConfiguration and
+ PatternSubtreeConfigurationWrapper.
+
+* [CONFIGURATION-349]
+ 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.
+
+* [CONFIGURATION-338]
+ 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.
+
+* [CONFIGURATION-337]
+ DefaultConfigurationBuilder now supports defining new configuration providers
+ in the configuration definition file.
+
+* [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.
+
+* [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.
+
+* [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.
+
+* 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.
+
+* [CONFIGURATION-327]
+ INIConfiguration misinterpreted variables in the global section with a dot in
+ their name as section names. HierarchicalINIConfiguration fixes this problem.
+
+* [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.
+
+* [CONFIGURATION-325]
+ INIConfiguration does not return the global section in its getSections()
+ method. HierarchicalINIConfiguration fixes this problem.
+
+* [CONFIGURATION-324]
+ HierarchicalINIConfiguration adds support for line continuation.
+
+* [CONFIGURATION-307]
+ XMLConfiguration now supports the xml:space attribute. This attribute can be
+ used to preserve whitespace in the content of XML elements.
OTHER CHANGES
=============
-* [CONFIGURATION-266]
- ConfigurationInterpolator now also invokes the default lookup object for
- variables with a prefix that could not be resolved by their associated lookup
- object.
-
-* INIConfiguration uses the platform's specific line separator instead of the
- Windows line separator.
-
-* Fixed INIConfiguration to handle the quoted values and the lines containing a
- value and a comment.
-
-* The object getters in DataConfiguration with no default value (i.e
- getURL(key)) now throw a NoSuchElementException if the flag
- throwExceptionOnMissing is set.
-
-* XMLPropertyListConfiguration no longer requires commons-digester and
- commons-beanutils to work.
-
-* The dependencies to commons-codec and commons-jxpath have been marked as
- optional. They are not required by the core classes.
-
-* The dependency to commons-logging was updated to the current version
- 1.1. Older versions of commons-logging will still work.
+* 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.
-* Some of the dependencies in the m2 pom have been updated to be more
- consistent.
+* INIConfiguration has been deprecated. Its functionality is now available
+ through the new HierarchicalINIConfiguration class.