commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r1159909 - /commons/proper/configuration/trunk/RELEASE-NOTES.txt
Date Sat, 20 Aug 2011 19:36:05 GMT
Author: oheger
Date: Sat Aug 20 19:36:05 2011
New Revision: 1159909

Initial version of release notes for 1.7.


Modified: commons/proper/configuration/trunk/RELEASE-NOTES.txt
--- commons/proper/configuration/trunk/RELEASE-NOTES.txt (original)
+++ commons/proper/configuration/trunk/RELEASE-NOTES.txt Sat Aug 20 19:36:05 2011
@@ -1,7 +1,7 @@
                            Commons Configuration Package
-                               Version 1.6
+                               Version 1.7
                                Release Notes
@@ -13,202 +13,269 @@ Configuration component, and highlights 
 Commons Configuration provides a generic configuration interface which enables
 an application to read configuration data from a variety of sources.
-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.6 is fully binary compatible to the previous version.
-Apart from the bug fixes existing code should not be impacted when switching
-from 1.5 to 1.6. Commons Configuration 1.6 is also still compatible with Java
-1.3 (with one exception outline below).
-Following is a complete list of all changes in the new release:
-* Parsing of date properties in PropertyListConfiguration does not work on
-  Java 1.3. Later Java versions are not affected.
+It has been a while since the last release, therefore numerous bug fixes have
+accumulated. Most of them are not critical, but make the library more stable
+and consistent.
+There are also some new features, e.g. multi-tenant configurations, or
+improvements of DefaultConfigurationBuilder. With the new support for file
+systems a major weakness of earlier versions of Commons Configuration has been
+addressed: the algorithm for locating configuration files.
+Commons Configuration 1.7 is fully binary compatible to the previous version.
+Support for Java 1.3 has been dropped, a minimum of Java 1.4 is now
+Following is a complete list of all changes in the new 1.7 release:
-  AbstractHierarchicalFileConfiguration.getKeys() now also checks whether a
-  reload is required.
-  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.
-  ConfigurationUtils.convertToHierarchical() now creates multiple configuration
-  nodes for properties with multiple values. This improves compatibility with
-  queries.
-  PropertiesConfiguration now per default uses the encoding "ISO-8859-1" for
-  loading properties files.
-  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.
-  The "force reload check" mechanism of CombinedConfiguration now also works
-  with sub configurations created by configurationAt().
-  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.
-  Made handling of parent nodes more consistent when setRoot() or setRootNode()
-  of HierarchicalConfiguration are involved.
-  Properties written through a DataConfiguration to a wrapped
-  PropertiesConfiguration got lost when the PropertiesConfiguration was saved.
-  This has been fixed.
-  A bug in XMLConfiguration.addNodes() made it impossible to add attribute
-  nodes using this method. This has been fixed.
-  ConfigurationDynaBean now works properly with indexed properties stored
-  internally in the underlying configuration as arrays.
-  The iterator returned by HierarchicalConfiguration.getKeys(String prefix) now
-  also contains the prefix if this key is contained in the configuration.
-  XMLPropertyListConfiguration is no longer limited to 32 bits integers.
-  When an XMLConfiguration is created using the copy constructor, the name of
-  the root element is now preserved.
-  Changing the text of the root element of an XMLConfiguration had no effect
-  when the configuration was saved. This has been fixed.
-  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.
-  Instantiating an XMLPropertyListConfiguration no longer fails if the DTD is
-  missing from the classpath.
-  INIConfiguration now preserves whitespace in quoted values.
-  If a change has been detected by FileChangedReloadingStrategy, the
-  reloadingRequired() method will now return true until reloadingPerformed()
-  has been called.
-  Fixed a NullPointerException that could be thrown under certain circumstances
-  when saving an XMLConfiguration that was created using the constructor that
-  takes a HierarchicalConfiguration.
-  It's now possible to read a configuration file containing a '#' in its name
-  (requires Java 1.4 or above).
-  Fixed the date format for XMLPropertyListConfiguration. 
-  Allow system properties to be set from a configuration file.
-  Allow variable resolvers to be defined and configured in
-  DefaultConfigurationBuilder.
-  Added MultiFileHierarchicalConfiguration, DynamicCombinedConfiguration and
-  PatternSubtreeConfigurationWrapper.
-  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.
-  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.
-  DefaultConfigurationBuilder now supports defining new configuration providers
-  in the configuration definition file.
-  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.
-  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.
-  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.
-  INIConfiguration misinterpreted variables in the global section with a dot in
-  their name as section names. HierarchicalINIConfiguration fixes this problem.
-  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.
-  INIConfiguration does not return the global section in its getSections()
-  method. HierarchicalINIConfiguration fixes this problem.
-  HierarchicalINIConfiguration adds support for line continuation.
-  XMLConfiguration now supports the xml:space attribute. This attribute can be
-  used to preserve whitespace in the content of XML elements.
+  Reloading now also works for configuration sources declared in the additional
+  section of a configuration definition file for DefaultConfigurationBuilder.
+  Transforming a CombinedConfiguration with ViewNodes to an XMLConfiguration
+  could cause problems with attributes. This has been fixed.
+  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.
+  Minor improvements of the support for indexed properties in
+  ConfigurationDynaBean.
+  The methods getList() and getStringArray() of AbstractConfiguration can now
+  handle single-valued properties of primitive types.
+  XMLConfiguration no longer escapes backslashs in the values of XML elements.
+  HierarchicalINIConfiguration now works correctly with configurations that
+  contain only properties in the global section.
+  testFromClassPath() can fail when it should not because of inconsistent
+  escaping of output from PropertiesConfiguration.getURL() and
+  FileChangedReloadingStrategy.getFile().toURL().
+  A bug related to the interpretation of escape sequences for backslashes has
+  been fixed. The user guide has also been improved in this area.
+  Files with a plus character in their names are now handled correctly.
+  SubsetConfiguration now produces correct events.
+  HierarchicalINIConfiguration now correctly saves sections whose name contains
+  delimiter characters.
+  Fixed a potential IllegalStateException in HierarchicalINIConfiguration that
+  can be thrown when the global section is requested concurrently.
+  XMLPropertyListConfiguration no longer throws a ConfigurationException if the
+  file to be loaded does not have an outer dict element.
+  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.
+  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.
+  Schema violation exceptions are now propagated back to the caller.
+  XMLConfiguration and CombinedConfiguraton are now synchronized to fix problems
+  caused by reloading in a multithreaded environment.
+  HierarchicalConfiguration.NodeVisitor is now passed the correct key to its
+  visitAfterChildren() method.
+  BaseConfiguration.clone() now also clones collections stored in the internal
+  map. This causes list properties to be handled correctly.
+  Attribute or element values will not be escaped when attribute or element
+  splitting are disabled.
+  DatabaseConfiguration now generates correct events for the clear() and
+  clearProperty() methods.
+  SubsetConfiguration did not use locally registered lookups of its interpolator.
+  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.
+  Empty dictionaries in a PropertyList configuration are now preserved when the
+  configuration is saved.
+  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.
+  Fixed broken links to the API documentation in the user's guide.
+  The message of the ConversionException thrown by
+  AbstractConfiguration.getBigInteger() is now correct.
+  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.
+  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.
+  XPathExpressionEngine now provides better support for the setProperty() method.
+  The parsing of ini files has been improved for property definitions containing
+  multiple separator characters.
+  DefaultConfigurationBuilder now supports including environment properties
+  using the "env" tag.
+  XMLConfiguration now handles attributes correctly whose value is an empty
+  string.
+  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.
+  JNDIConfiguration.getKeys() no more logs an exception if the prefix does not
+  exist.
+  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.
+  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.
+  Added a refresh() method to AbstractFileConfiguration and
+  AbstractHierarchicalFileConfiguration.
+  Default variable interpolation now supports the env: prefix for referencing
+  environment variables.
+  DefaultConfigurationBuilder now supports defining ini files in its
+  configuration definition file.
+  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.
+  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.
+  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.
+  MapConfiguration now provides a way of controlling the trimming behavior.
+  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 " = ".
+  PropertiesConfiguration now defines a nested interface IOFactory. Using this
+  interface it is possible to inject custom PropertiesReader and
+  PropertiesWriter implementations.
+  When using Commons Lang 2.6 or higher as dependency nested interpolation in
+  variable names is supported.
+  Added getConfigurations and getConfigurationNameList.
+  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.
+  PropertiesConfigurationLayout now allows setting the line separator to be used
+  when writing the properties file.
+  Allow configurations to be validated using XML Schemas.
-* 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.
+  The user guide was updated to no more mention ConfigurationFactory. This class
+  is scheduled for deprecation.
+  Improved Javadocs of getKeys(String) method for some configuration classes.
+  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).
+ escaped slashes in properties values. This was
+  caused by a bug in commons-lang 2.4. Updating to a newer version of commons-lang
+  fixed this problem.
+  Improvements of the user's guide for hierarchical configurations.
+* Dependencies to some other Commons components have been updated to use the
+  most recent version. However, as none of the new features are used, the old
+  versions will still work.
-* INIConfiguration has been deprecated. Its functionality is now available
-  through the new HierarchicalINIConfiguration class.

View raw message