commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r1625133 - /commons/proper/configuration/trunk/RELEASE-NOTES.txt
Date Mon, 15 Sep 2014 19:56:05 GMT
Author: oheger
Date: Mon Sep 15 19:56:04 2014
New Revision: 1625133

Initial version of release notes for 2.0-alpha1.


Modified: commons/proper/configuration/trunk/RELEASE-NOTES.txt
--- commons/proper/configuration/trunk/RELEASE-NOTES.txt (original)
+++ commons/proper/configuration/trunk/RELEASE-NOTES.txt Mon Sep 15 19:56:04 2014
@@ -1,8 +1,8 @@
-                           Commons Configuration Package
-                               Version 1.9
-                               Release Notes
+                        Commons Configuration Package
+                         Version 2.0-alpha1-SNAPSHOT
+                                Release Notes
@@ -14,59 +14,193 @@ The Commons Configuration software libra
 interface which enables an application to read configuration data from a variety
 of sources.
-The 1.9 release contains a couple of minor bug fixes and improvements. There
-are no important new features. The idea is to release the current changes which
-have been applied to the 1.x branch, so that we can start with new development
-on an improved (and partly binary incompatible) 2.0 version.
-As there are small changes only, Commons Configuration 1.8 is fully binary
-compatible to the previous version. The minimum required Java version is 1.5.
-Following is a complete list of all changes in the new 1.9 release:
-  List properties can now be set correctly on a HierarchicalConfiguration if
-  delimiter parsing is disabled.
-  DataConfiguration.get() now also works with String properties and if no data
-  type conversion is required.
-  Variable substitution in configuration sources declared in a definition file
-  for DefaultConfigurationBuilder now works across multiple sources.
-   PropertyListConfiguration now can deal with C-style comments in plist
-   configuration files. Both block and single-line comments are supported.
-  Small changes in user guide documentation.
-  Improvements of basic features and AbstractConfiguration documentation.
-  XMLPropertyListConfiguration no longer swallows exception caused by invalid
-  date properties. Now a warning message is logged.
-  Made static DateFormat fields in XMLPropertyListConfiguration.PListNode final
-  and added a note about proper synchronization.
-  DatabaseConfiguration now always closes the result set.
-  The Import-Package section in the OSGi manifest now uses the
-  resolution:=optional directive for optional dependencies.
+This is the first alpha release for version 2.0 of Commons Configuration.
+Version 2 is a major redesign of the Configuration API. It breaks compatibility
+in many areas and, therefore, is not a drop-in replacement for Commons
+Configuration 1.x. To allow collaboration with an older version of the library
+(and to prevent jar and dependency hell), the top-level package and the Maven
+coordinates have been changed. There is an upgrade guide available at
+describing the most important breaking changes. Be sure to read this
+document if you want to switch from a 1.x version to this new version. The
+user's guide which can be found at
+has been reworked to cover all the new and changed features.
+The main purpose of this alpha release is to gather feedback from the
+community about the reworked API. IT IS NOT YET PRODUCTION READY. It is
+expected that there will still be some changes on the public API.
+Below is a list of all changes in this version:
+New features:
-* The dependency to Commons Codec has been updated to the most recent 1.6
-  version. The older version still works.
+o CONFIGURATION-579:  A migration guide has been created which supports when upgrading from
+                      version 1.x to 2.0.
+o CONFIGURATION-559:  It is now possible to define default values for initialization
+                      properties of configurations.
+o 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.
+o CONFIGURATION-550:  Conversion to Character is now supported.
+o CONFIGURATION-541:  Multi-file configurations are no longer restricted to XML configuration
+                      files. Arbitrary file-based configurations are now supported.
+o CONFIGURATION-535:  DatabaseConfiguration now provides get methods for querying its
+                      properties defining the underlying database structures.
+o CONFIGURATION-533:  DatabaseConfiguration now automatically converts CLOBs to strings if
+                      they appear in property values.
+o 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.
+o CONFIGURATION-519:  Configuration objects are now created via configuration builders. A
+                      API for configuration builders has been added.
+o CONFIGURATION-517:  Hierarchical configurations now provide methods to obtain sub
+                      configurations for all child elements of a given key.
+o CONFIGURATION-514:  Bean declarations now support constructor invocations.
+o 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.
+o 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.
+Fixed Bugs:
+o CONFIGURATION-582:  Fixed a StringIndexOutOfBoundsException in PropertiesConfigurationLayout
+                      which was caused by lines containing only whitespace.
+o CONFIGURATION-572:  When a CombinedConfiguration is cleared it removes itself as change
+                      listener from all child configurations. This fixes a possible memory
+                      leak.
+o CONFIGURATION-570:  Fixed a possible ConcurrentModificationException when a SystemConfiguration
+                      instance is passed to the append() or copy() methods.
+o CONFIGURATION-567:  XMLBeanDeclaration now escapes node names before they are used to
+                      determine nested properties. Thanks to Shen liang.
+o CONFIGURATION-590:  Removed Serializable interface from all configuration implementations.
+                      Some configuration classes declared this interface without being
+                      actually serializable.
+o 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.
+o 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.
+o CONFIGURATION-578:  The user's guide has been fully reworked to cover all new and enhanced
+                      features of version 2.0.
+o CONFIGURATION-577:  The dependency to Commons Collections is no longer needed.
+o CONFIGURATION-576:  A new abstract base class for hierarchical configurations was introduced
+                      which supports arbitrary hierarchical data structures. The type of
+                      nodes used by the configuration can now be specified as a generic type
+                      argument. This makes the integration of other hierarchical structures
+                      easier.
+o 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.
+o CONFIGURATION-573:  XPathExpressionEngine can now deal with namespace prefixes in node
+                      attribute names.
+o CONFIGURATION-563:  The DefaultExpressionEngine class is now immutable. An instance can
+                      shared between multiple configuration objects.
+o CONFIGURATION-562:  Improved the API of ExprLookup.
+o 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.
+o 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.
+o CONFIGURATION-553:  The code for accessing configuration files has 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.
+o CONFIGURATION-546:  BeanHelper can now process BeanDefinitions initializing properties
+                      collection types of their target beans. Thanks to Justin Couch.
+o CONFIGURATION-544:  Added missing dependencies to build.xml. Thanks to Oliver Kopp.
+o 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.
+o 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.
+o CONFIGURATION-539:  The deprecated INIConfiguration class was removed.
+                      HierarchicalINIConfiguration was renamed to INIConfiguration.
+o CONFIGURATION-537:  The deprecated ConfigurationFactory class was removed.
+o 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.
+o CONFIGURATION-534:  The includesAllowed property of PropertyConfiguration is now independent
+                      from the existence of a base path.
+o 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.
+o CONFIGURATION-527:  AbstractConfiguration.clearPropertyDirect() is now abstract. Thanks
to Matthias Richter.
+o CONFIGURATION-526:  XMLPropertiesConfiguration now supports loading from and saving to
+                      nodes. Thanks to Oliver Kopp.
+o CONFIGURATION-524:  Interpolation now works correctly after a configuration was cloned.
+                      The ConfigurationInterpolator instance is now cloned, too.
+o CONFIGURATION-521:  ConfigurationUtils.fileFromUrl() now correctly handles URL containing
+                      encoded percent characters. Thanks to Oliver Kopp.
+o CONFIGURATION-520:  Support for reloading of configuration data has been reworked.
+o 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.
+o CONFIGURATION-516:  PropertiesConfiguration no longer escapes double quotes on saving.
+o CONFIGURATION-515:  The visibility of some internal methods of PropertiesConfiguration.PropertiesWriter
+                      has been increased to protected. This simplifies the implementation
+                      a custom escaping strategy.
+o CONFIGURATION-513:  HierarchicalConfiguration is now an interface. The base implementation
+                      class is named BaseHierarchicalConfiguration.
+o CONFIGURATION-506:  Removed obsolete nested classes Node and NodeVisitor of
+                      HierarchicalConfiguration. The related deprecated class
+                      ConfigurationKey was removed, too.
+o CONFIGURATION-505:  XMLConfiguration no longer supports attributes with multiple values
+                      list delimiter parsing in attributes. This feature was complex and
+                      error prone and brought little value to the user.
+o 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.
+o CONFIGURATION-500:  XMLConfiguration now adds attributes of elements defining a list to
+                      all list nodes.
+o CONFIGURATION-496:  Concurrent access to configurations and reloading have been completely
+                      redesigned. This should reduce the amount of synchronization.
+o 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.
+o CONFIGURATION-462:  Updated dependency to Commons Lang from version 2.6 to 3.1.
+o CONFIGURATION-419:  EventSource is now an interface. With BaseEventSource there is a
+                      default implementation.
+o 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.
+o CONFIGURATION-330:  Concurrent access to configurations has been reworked.
+o CONFIGURATION-153:  It is now possible to define the strategy used for locating
+                      configuration files.
+o 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
+                      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.
+Historical list of changes:
+For complete information on Apache Commons Configuration, including instructions on how to
submit bug reports,
+patches, or suggestions for improvement, see the Apache Apache Commons Configuration website:
\ No newline at end of file

View raw message