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.