commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r503455 - /jakarta/commons/proper/configuration/trunk/RELEASE-NOTES.txt
Date Sun, 04 Feb 2007 19:18:31 GMT
Author: oheger
Date: Sun Feb  4 11:18:30 2007
New Revision: 503455

Update of release notes for 1.4 release


Modified: jakarta/commons/proper/configuration/trunk/RELEASE-NOTES.txt
--- jakarta/commons/proper/configuration/trunk/RELEASE-NOTES.txt (original)
+++ jakarta/commons/proper/configuration/trunk/RELEASE-NOTES.txt Sun Feb  4 11:18:30 2007
@@ -1,7 +1,7 @@
                            Commons Configuration Package
-                               Version 1.3
+                               Version 1.4
                                Release Notes
@@ -10,113 +10,146 @@
 This document contains the release notes for this version of the Commons
 Configuration component, and highlights changes since the previous version.
+Commons Configuration provides a generic configuration interface which enables
+an application to read configuration data from a variety of sources.
-Release 1.3 adds many new features. Some highlights are
+The focus of release 1.4 lies in bug-fixing, but there are also some new
+features. Some highlights are
-- Support for XPATH expressions when querying properties from hierarchical
-  configurations.
-- The new DefaultConfigurationBuilder class as a hierarchical alternative to
-  ConfigurationFactory that allows for more configuration options.
-- Support for configuration listeners that are notified about modifications
-  on a configuration object.
+- The support for variable interpolation has been improved.
+- A new configuration class for windows ini files was added.
+- In addition to configuration event listeners now so-called configuration
+  error listeners are supported, which can be used to track internal errors.
 A complete list of changes can be found below.
+  The compatibility of ConfigurationDynaBean with other configuration types
+  than those that inherit from BaseConfiguration was improved.
+  Some of the methods of file-based hierarchical configurations (e.g. subset()
+  or configurationAt()) did not take an eventually set reloading strategy into
+  account. This is now fixed by overriding the internal fetchNodeList() method
+  in AbstractHierarchicalFileConfiguration and letting it always check for a
+  reload.
+  For file-based configurations loaded by ConfigurationFactory the load()
+  method was called before all of the properties specified by attributes of
+  the XML element have been initialized. Now load() is called after property
+  initialization.
+  XPathExpressionEngine used to create wrong keys for attribute nodes. This
+  caused some operations on XMLConfiguration to fail when such an expression
+  engine was set (e.g. reloading). Now correct keys for attributes are
+  constructed.
+  The getList() method of CompositeConfiguration does now fully support
+  variable interpolation. So it is possible to refer to a variable in one
+  (sub) configuration that is defined in another configuration.
+  DefaultConfigurationBuilder now internally uses the standard expression
+  engine for hierarchical configurations. So the dependency to Commons JXPath
+  is no more needed when this class is used. Note that this change has some
+  impact on exist ing code that manually sets properties before the combined
+  configuration is created; this code must now be adapted to the changed
+  syntax of property keys.
+  Interpolation of non string values did not work when SubsetConfiguration
+  was involved. This has now been fixed.
+  File-based configurations with a reloading strategy did not work well
+  together with CombinedConfiguration because the reloading strategy is only
+  checked when its associated configuration is accessed (which does not happen
+  when only the combined configuration is queried). As a workaround
+  CombinedConfiguration now provides the boolean forceReloadCheck property.
+  If this is set to true, all contained configurations will be triggered when
+  a property is queried. This will cause a reload if necessary.
+  CompositeConfiguration.clearProperty() now generates the correct update
+  events.
+  The configuration returned by HierarchicalConfiguration.subset() performed
+  variable interpolation only in the keys that belong to the subset. Now the
+  parent configuration is searched, too, to resolve the value of the
+  referenced property. This is consistent with the way SubnodeConfiguration
+  works.
+  The number of dependencies needed for DefaultConfigurationBuilder was reduced
+  by letting some of the default configuration providers resolve their classes
+  per reflection.
+  The dependency to xml-apis was changed to the version 1.0.b2. The so far
+  used version 2.0.2 is reported to be bogus.
+  ConfigurationUtils.getFile() now always checks first´whether the passed in
+  file name is absolute. If it is, this file will be returned. This prevents
+  that on Unix under certain circumstances absolute file names are interpreted
+  as relative ones.
+  SubsetConfiguration and CompositeConfiguration were updated to fully support
+  an instance specific list delimiter. Concerning splitting of string
+  properties that contain a list delimiter character, these classes now
+  behave like a "normal" configuration.
+  Variable interpolation features have been improved. A variable can now have
+  the form ${prefix:variableName} where the prefix defines the type of the
+  variable. The standard types sys for system properties and const for
+  constants are supported. Variables without a prefix are treated as references
+  to other configuration properties (which is compatible to earlier versions).
+  A new configuration class for windows ini files was added.
+  HierarchicalConfiguration and some of its sub classes now define a copy
+  constructor.
+  Configuration declarations in the configuration definition file for
+  DefaultConfigurationBuilder that are marked as optional now support a new
+  attribute config-forceCreate. If this attribute is set to true and the
+  initialization of the configuration fails, DefaultConfigurationBuilder
+  tries to add an empty configuration of the correct type to the resulting
+  combined configuration. Before this change optional configurations that
+  caused errors were never added to the combined configuration.
+  In addition to configuration event listeners now so-called configuration
+  error listeners are supported. These listeners are notified about internal
+  errors that had been logged and swallowed by privious versions. The new
+  enableRuntimeExceptions() method of ConfigurationUtils registers a special
+  error listener at the passed in configuration that generates a runtime
+  exception when an error event is received.
+* AbstractConfiguration now allows to set an instance specific logger using
+  the setLogger() method. This gives clients more control over a
+  configuration's logging behavior.
-- ConfigurationFactory now supports variables in its configuration
-  definition files. These variables are resolved using system properties
-  and have the typical ${} syntax. Fixes CONFIGURATION-221.
-  Thanks to Rainer Jung.
-- DataConfiguration.getDateArray() used to ignore the format argument.
-  This was fixed. Fixes CONFIGURATION-220.
-- The dependency to servletapi was updated from version 2.3 to version 2.4, but
-  version 2.3 will still work. Fixes CONFIGURATION-217.
-- A new class PropertiesConfigurationLayout was introduced whose task is to
-  preserve the structure (e.g. comments, blanc lines) of a file loaded by
-  PropertiesConfiguration. Each PropertiesConfiguration object is now associated
-  with such a layout object. A saved properties file will look very similar to
-  its original. Fixes CONFIGURATION-104.
-- clone() methods have been added to BaseConfiguration,
-  AbstractFileConfiguration, MapConfiguration, CompositeConfiguration, and
-  CombinedConfiguration. So the most important Configuration implementations now
-  support cloning. To ConfigurationUtils an utility method cloneConfiguration()
-  was added that allows to conveniently clone a configuration.
-- If a configuration file was to be loaded from classpath, the constructor of
-  AbstractFileConfiguration dropped the file's path. The path is now taken into
-  account. Fixes CONFIGURATION-216. Thanks to Gabriele Garuglieri.
-- The getter methods for numeric data types in AbstractConfiguration now support
-  conversions between different Number types, e.g. you can now call getLong(key)
-  when key points to an Integer value. Fixes CONFIGURATION-214.
-- The new class DefaultConfigurationBuilder was added as an alternative to
-  ConfigurationFactory. It provides some more features and creates a
-  CombinedConfiguration object.
-- The new class CombinedConfiguration was added as a hierarchical alternative to
-  CompositeConfiguration.
-- Support for low-level configuration events was added to all classes derived
-  from AbstractConfiguration. The major part of this is handled by the new super
-  class EventSource of AbstractConfiguration. Related to CONFIGURATION-143.
-- A new method convertToHierarchical() was added to ConfigurationUtils, which is
-  able to convert an arbitrary configuration object into a hierarchical
-  configuration.
-- Loading of file-based configurations no longer throws a NullPointerException
-  in setups where the thread context class loader is not set.
-- The dependency to dom4j was removed; it was only used by two test classes,
-  which have been re-written.
-- XMLConfiguration used to drop the DOCTYPE declaration when saving the
-  configuration. It is now able to extract the DTD's public and system ID and
-  write them back (more complex DOCTYPE declarations are still not supported).
-  With the new methods setSystemID() and setPublicID(), the DOCTYPE declaration
-  can be configured. Fixes CONFIGURATION-100.
-- Added two new constructors in CompositeConfiguration accepting a collection of
-  configurations as a parameter. Fixes CONFIGURATION-178.
-- (Basic) Support for declaring beans in configuration files was added. Some new
-  classes in the beanutils package allow to create instances from these
-  declarations. Fixes CONFIGURATION-186.
-- The implementation of the interpolation features have been extracted out off
-  AbstractConfiguration and moved to PropertyConverter. The interpolateHelper()
-  method of AbstractConfiguration is now deprectated and will not be called any
-  more during interpolation.
-- A new method configurationsAt() was added to HierarchicalConfiguration that
-  provides a convenient way of iterating over complex list-like structures
-  without the need of manually constructing configuration keys with indices.
-- A new class SubnodeConfiguration was introduced that wraps a configuration
-  node of a HierarchicalConfiguration. All operations performed on this
-  configuration use this wrapped node as root. The new configurationAt() method
-  of HierarchicalConfiguration returns such a SubnodeConfiguration for a
-  specified sub node.
-- With XPathExpressionEngine an expression engine for hierarchical
-  configurations is now available that can evaluate XPATH expressions in
-  property keys. This expression engine implementation is based on Commons
-  JXPath, which is now declared as a new dependency (but at runtime it is only
-  needed if the XPathExpressionEngine class is used). Fixes CONFIGURATION-173.
-- The code for interpreting property keys was refactored out off
-  HierarchicalConfiguration. Instead this class now supports pluggable
-  expression engines (using the setExpressionEngine() method). So it is possible
-  to plug in different expression languages. A default expression engine is
-  provided that understands the native expression language used by hierarchical
-  configurations in older versions. During the process of this refactoring some
-  methods of HierarchicalConfiguration have been deprecated; they will not be
-  called any more when searching or adding properties. These are the following:
-  createAddPath(), fetchAddNode(), findLastPathNode(), findPropertyNodes().
-- A larger refactoring was performed on the inner Node class of
-  HierarchicalConfiguration: A ConfigurationNode interface was extracted for
-  which a default implementation (DefaultConfigurationNode) is provided.
-  HierarchicalConfiguration.Node now extends this default implementation. The
-  new ConfigurationNode interface defines some more methods than the Node class
-  did originally for conveniently dealing with sub nodes and attributes.
-  HierarchicalConfiguration now uses the new type ConfigurationNode whereever
-  possible. Some methods dealing with Node objects have been deprecated and
-  replaced by versions operating on ConfigurationNode objects instead.
-- All configuration classes derived from AbstractConfiguration now allow to set
-  an instance specific list delimiter. This can be done through the new method
-  setListDelimiter(). As before it is possible to define a default list
-  delimiter, which will be used if no instance specific delimiter is set. This
-  can be done using the new setDefaultListDelimiter() method (the methods
-  get/setDelimiter() have been deprecated). With the new
-  setDelimiterParsingDisabled() method parsing of lists can be disabled at all.
-  Fixes CONFIGURATION-155. Thanks to Jorge Ferrer.
+* Commons Configuration now depends on Commons Lang 2.2. Some features of
+  Lang's new text package are used.
+* The dependencies to Commons Collections and Commons Digester are updated to
+  use the recent available version. However older versions will still work.
+* A pom for maven 2 was added.
\ No newline at end of file

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message