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 2014/09/15 21:56:05 UTC
svn commit: r1625133 - /commons/proper/configuration/trunk/RELEASE-NOTES.txt
Author: oheger
Date: Mon Sep 15 19:56:04 2014
New Revision: 1625133
URL: http://svn.apache.org/r1625133
Log:
Initial version of release notes for 2.0-alpha1.
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=1625133&r1=1625132&r2=1625133&view=diff
==============================================================================
--- 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 @@
$Id$
- Commons Configuration Package
- Version 1.9
- Release Notes
+ Commons Configuration Package
+ Version 2.0-alpha1-SNAPSHOT
+ Release Notes
INTRODUCTION
@@ -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:
-
-BUG FIXES IN 1.9
-================
-* [CONFIGURATION-495]
- List properties can now be set correctly on a HierarchicalConfiguration if
- delimiter parsing is disabled.
-
-* [CONFIGURATION-487]
- DataConfiguration.get() now also works with String properties and if no data
- type conversion is required.
-
-* [CONFIGURATION-481]
- Variable substitution in configuration sources declared in a definition file
- for DefaultConfigurationBuilder now works across multiple sources.
-
- * [CONFIGURATION-477]
- PropertyListConfiguration now can deal with C-style comments in plist
- configuration files. Both block and single-line comments are supported.
-
-IMPROVEMENTS AND NEW FEATURES IN 1.9
-====================================
-* [CONFIGURATION-503]
- Small changes in user guide documentation.
-
-* [CONFIGURATION-502]
- Improvements of basic features and AbstractConfiguration documentation.
-
-* [CONFIGURATION-501]
- XMLPropertyListConfiguration no longer swallows exception caused by invalid
- date properties. Now a warning message is logged.
-
-* [CONFIGURATION-488]
- Made static DateFormat fields in XMLPropertyListConfiguration.PListNode final
- and added a note about proper synchronization.
-
-* [CONFIGURATION-483]
- DatabaseConfiguration now always closes the result set.
-
-* [CONFIGURATION-482]
- 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
-OTHER CHANGES
+http://commons.apache.org/configuration/userguide/upgradeto2_0.html
+
+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
+
+http://commons.apache.org/configuration/userguide/user_guide.html
+
+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 new
+ 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.
+
+Changes:
+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 the
+ 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 and
+ attribute names.
+o CONFIGURATION-563: The DefaultExpressionEngine class is now immutable. An instance can be
+ 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 of
+ 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 DOM
+ 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 of
+ 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 or
+ 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 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.
+
+
+Historical list of changes: http://commons.apache.org/proper/commons-configuration/changes-report.html
+
+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:
+http://commons.apache.org/proper/commons-configuration/
\ No newline at end of file