| <?xml version="1.0"?> |
| <!-- |
| Copyright 2004 The Apache Software Foundation |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <document> |
| <properties> |
| <title>Changes</title> |
| <author email="epugh@upstate.com">Eric Pugh</author> |
| </properties> |
| |
| <body> |
| |
| <release version="1.1-rc2" date="in CVS"> |
| <action dev="oheger" type="update" issue="33814"> |
| Updated documentation for FileConfiguration's load() methods. Fixed a |
| problem in XMLConfiguration with the output of the save() method when |
| multiple files were loaded. |
| </action> |
| <action dev="ebourg" type="update"> |
| Fixed a bug in FileChangedReloadingStrategy preventing the detection |
| of a file change in some cases. |
| </action> |
| <action dev="ebourg" type="update"> |
| Changed getXXXArray() and getXXXList() in DataConfiguration to return |
| an empty array/list for empty values. |
| </action> |
| <action dev="ebourg" type="update" issue="33524"> |
| Fixed getLongArray(), getFloatArray() and getDoubleArray() in DataConfiguration, |
| the values were cast into integers. |
| </action> |
| </release> |
| |
| <release version="1.1-rc1" date="2004-02-13"> |
| <action dev="oheger" type="add" issue="33475"> |
| ConfigurationFactory now always configures digester to use the context |
| classloader. This avoids problems in application server environments, |
| which use their own version of digester. Thanks to Mike Colbert for the |
| patch! |
| </action> |
| <action dev="ebourg" type="add" issue="32318"> |
| Added a new configuration, XMLPropertiesConfiguration, supporting the |
| new XML format for java.util.Properties introduced in Java 1.5. |
| A 1.5 runtime is not required to use this class. |
| </action> |
| <action dev="ebourg" type="add" issue="26092"> |
| Added a comment header to PropertiesConfiguration. The header is not |
| parsed when the file is loaded yet. |
| </action> |
| <action dev="ebourg" type="add"> |
| Added the setEncoding(String) and the getEncoding() methods to the |
| FileConfiguration interface to control the encoding of the |
| configuration file. |
| </action> |
| <action dev="oheger" type="add" issue="31136"> |
| Access to the top level element of the XML document is now provided. For |
| newly created configurations this element can be changed before the |
| document is written. |
| </action> |
| <action dev="oheger" type="update" issue="31429"> |
| Merged the two XML related configuration classes into one new class |
| XMLConfiguration. This new class should provide the best of its |
| ancestors. |
| </action> |
| <action dev="ebourg" type="update"> |
| Replaced the PropertyTokenizer inner class in AbstractConfiguration |
| with the split method in PropertyConverter. Also moved the method |
| building an iterator on the elements of a composite value in |
| PropertyConverter as toIterator(). |
| </action> |
| <action dev="oheger" type="fix" issue="30858"> |
| Some cleanup of the handling of the base path in file based configurations. |
| The base path is now always taken into account. |
| </action> |
| <action dev="ebourg" type="fix"> |
| Calling getProperties on a JNDIConfiguration no longer throws an |
| UnsupportedOperationException. |
| </action> |
| <action dev="ebourg" type="remove"> |
| Removed the getPropertyDirect method from AbstractConfiguration, |
| concrete configurations now implement directly the getProperty method |
| from the Configuration interface. |
| </action> |
| <action dev="oheger" type="add" issue="31130"> |
| Added implementation of a save() method for HierarchicalXMLConfiguration. |
| </action> |
| <action dev="ebourg" type="update"> |
| Constructing a file based configuration with a File no longer throws |
| an exception when the file doesn't exist. |
| </action> |
| <action dev="ebourg" type="add"> |
| Saving a configuration now creates the path to the file if it doesn't exist. |
| </action> |
| <action dev="ebourg" type="update" issue="32020"> |
| AbstractFileConfiguration.save(File) no longer fails silently when |
| an error occurs, a ConfigurationException is thrown instead. |
| </action> |
| <action dev="ebourg" type="fix"> |
| ConfigurationUtils.locate() now checks if the URL based resources exist. |
| This fixes a bug preventing configuration files from being found if |
| the configuration descriptor is in a JAR file (reported by Grant Ingersoll). |
| </action> |
| <action dev="oheger" type="fix" issue="32236"> |
| Fixed NPE that were caused in the constructors of file based |
| configurations if an invalid file name was specified. |
| </action> |
| <action dev="oheger" type="add" issue="31797"> |
| Added support for optional configuration sources in definition files for |
| ConfigurationFactory. A new optional attribute allows to specify whether a |
| configuration source is mandatory or optional. |
| </action> |
| <action dev="ebourg" type="fix"> |
| JNDIConfiguration.getKeys() now returns an empty iterator instead of |
| throwing a ConfigurationRuntimeException when a NamingException occurs. |
| The NamingExceptions are now logged. |
| </action> |
| <action dev="ebourg" type="fix"> |
| DatabaseConfiguration.isEmpty() now returns true if an SQLException occurs. |
| </action> |
| <action dev="ebourg" type="add"> |
| Added two methods copy(Configuration, Configuration) and |
| append(Configuration, Configuration) in ConfigurationUtils to copy |
| properties between configurations. |
| </action> |
| <action dev="ebourg" type="update"> |
| Moved the constructors implementations from PropertiesConfiguration and |
| XMLConfiguration to AbstractFileConfiguration. |
| </action> |
| <action dev="epugh" type="remove"> |
| Remove deprecated getVector() implementations. |
| </action> |
| <action dev="ebourg" type="add" issue="25661"> |
| File based configurations can now be automatically reloaded when the |
| underlying file is modified. |
| </action> |
| <action dev="ebourg" type="add" issue="26102"> |
| Added a clear() method to the Configuration interface to remove |
| all properties. |
| </action> |
| <action dev="ebourg" type="add" issue="26066"> |
| Added a SystemConfiguration wrapping the system properties. |
| ConfigurationFactory recognizes the corresponding <system/> |
| element. |
| </action> |
| <action dev="ebourg" type="add"> |
| Added a MapConfiguration to turn any Map into a Configuration. The |
| getConfiguration() methods in ConfigurationConverter now use |
| MapConfiguration, as a result the Configuration returned is always |
| synchronized with the underlying Properties or ExtendedProperties, |
| changes made to the Configuration are available in the Properties, |
| and reciprocally. |
| </action> |
| <action dev="ebourg" type="add" issue="31532"> |
| The "autoSave" feature of XMLConfiguration has been generalized |
| to all file based configurations. |
| </action> |
| <action dev="ebourg" type="add" issue="28026"> |
| Numeric properties can now be specified in hexadecimal format, |
| for example "number = 0xC5F0". |
| </action> |
| <action dev="oheger" type="fix" issue="31745"> |
| Fixed HierarchicalConfiguration.getKeys(String), it returned an empty |
| iterator if the prefix string contained indices. |
| </action> |
| <action dev="ebourg" type="add"> |
| Added a DataConfiguration decorator providing getters for all useful |
| types found in a configuration (URL, Locale, Date, Calendar, Color, |
| lists and arrays) |
| </action> |
| <action dev="ebourg" type="add"> |
| Added 5 new configurations to be used in a web environment: |
| AppletConfiguration, ServletConfiguration, ServletContextConfiguration, |
| ServletRequestConfiguration, ServletFilterConfiguration. |
| </action> |
| </release> |
| |
| <release version="1.0.1-dev" date="in CVS"> |
| </release> |
| |
| <release version="1.0" date="2004-10-11"> |
| <action dev="ebourg" type="fix" issue="29616"> |
| The getStringArray() method in CompositeConfiguration now interpolates |
| the strings. |
| </action> |
| <action dev="ebourg" type="fix" issue="31540"> |
| SubsetConfiguration now shares the "throwExceptionOnMissing" property |
| with its parent. |
| </action> |
| <action dev="ebourg" type="fix"> |
| Removed "file:" at the beginning of the base path when calling |
| setFile() on a FileConfiguration. This prevented auto saving an |
| XMLConfiguration loaded from a File (issue reported by Mark Roth). |
| </action> |
| <action dev="ebourg" type="update"> |
| All NamingEnumerations in JNDIConfiguraiton are now properly closed (Suggested |
| by Eric Jung). |
| </action> |
| <action dev="ebourg" type="fix" issue="30799"> |
| Properties added to an XMLConfiguration are no longer duplicated in the |
| resulting XML file. |
| </action> |
| </release> |
| |
| <release version="1.0-rc2" date="2004-09-24"> |
| <action dev="ebourg" type="update"> |
| Unified the mechanisms for loading and saving file based configurations. |
| PropertiesConfiguration, XMLConfiguration and HierarchicalXMLConfiguration |
| now implement the same FileConfiguration interface. BasePathLoader, |
| BasePathConfiguration, ClassPropertiesConfiguration and |
| BasePropertiesConfiguration have been removed. |
| </action> |
| <action dev="ebourg" type="fix" issue="31346"> |
| Replaced the calls to Boolean.booleanValue(boolean) in |
| AbstractConfiguration and ConfigurationDynaBean to be Java 1.3 |
| compatible. |
| </action> |
| <action dev="ebourg" type="fix" issue="31345"> |
| Changing the prefix of a JNDIConfiguration will now reset the base context used. |
| </action> |
| <action dev="ebourg" type="add" due-to="Eric Jung"> |
| The context used by JNDIConfiguration can be specified in its |
| constructor or through the setContext() method. The context can be |
| accessed with the getContext() method which is now public. |
| </action> |
| <action dev="henning" type="add"> |
| Make the behaviour on missing properties for the get methods that |
| return objects configurable. A property <code>throwExceptionOnMissing</code> |
| can be set and then the getters throw an <code>NoSuchElementException</code>. |
| The old default behaviour of returning a <code>null</code> value has |
| been restored. |
| </action> |
| <action dev="epugh" type="add" issue="29714"> |
| Allow configurations extending AbstractConfiguration to change the |
| delimiter used from "," to something else. |
| </action> |
| <action dev="epugh" type="fix"> |
| PropertiesConfiguration.save() method has issues with preserving the filename |
| </action> |
| <action dev="epugh" type="fix" issue="30597" due-to="Mark Woodman"> |
| Test cases for HierarchicalConfigurationXMLReader stores comments as text nodes |
| </action> |
| <action dev="epugh" type="fix" issue="30545" due-to="Ricardo Gladwell"> |
| Clarify for ConfigurationDynaBean that the get method should throw an |
| illegalArgumentException if there is no property specified. |
| </action> |
| <action dev="ebourg" type="fix" issue="30839"> |
| Fixed a ClassCastException when adding a non String property to an XMLConfiguration. |
| </action> |
| <action dev="ebourg" type="fix" issue="30655" due-to="Oliver Heger"> |
| Fixed the handling of attribute properties by HierarchicalConfigurationConverter. |
| </action> |
| <action dev="ebourg" type="fix" issue="30676"> |
| Fixed a ClassCastException thrown on adding a non string property |
| in a DatabaseConfiguration. |
| </action> |
| <action dev="henning" type="add"> |
| Bring back the getVector() methods in the Configuration interface. |
| These methods are needed for "drop-on" replacement of the |
| various pre-1.0 commons-configuration snapshots and are already |
| deprecated. These methods will be removed for 1.1. |
| </action> |
| </release> |
| |
| <release version="1.0-rc1" date="2004-08-14"> |
| <action dev="epugh" type="add" issue="30597" due-to="Oliver Heger"> |
| HierarchicalConfigurationXMLReader stores comments as text nodes |
| </action> |
| <action dev="epugh" type="add" issue="30648" due-to="Ricardo Gladwell"> |
| project.xml contains bad dependencies |
| </action> |
| <action dev="epugh" type="add" issue="30234" due-to="Brent Worden"> |
| clearXmlProperty doesn't remove list properties completely |
| </action> |
| <action dev="epugh" type="add" issue="30545" due-to="Ricardo Gladwell"> |
| new ConfigurationDynaBean |
| </action> |
| <action dev="epugh" type="add" issue="29611" due-to="Ricardo Gladwell"> |
| new ConfigurationMap and ConfigurationSet |
| </action> |
| <action dev="epugh" type="fix" issue="30598" due-to="Ricardo Gladwell"> |
| Problem adding property XMLConfiguration |
| </action> |
| <action dev="epugh" type="remove"> |
| ConfigurationXMLDocument removed until post 1.0. |
| </action> |
| <action dev="epugh" type="fix" issue="29734"> |
| DatabaseConfiguration doesn't support List properties. |
| </action> |
| <action dev="ebourg" type="fix"> |
| Fixed several bugs related to XMLConfiguration: |
| <ul> |
| <li>30074 - Can't add a new property as an attribute in XMLConfiguration</li> |
| <li>30205 - XMLConfiguration doesn't support attribute names with a dot</li> |
| <li>30209 - XMLConfiguration doesn't ignore comments</li> |
| <li>30212 - XMLConfiguration.save() doesn't escape reserved characters</li> |
| </ul> |
| </action> |
| <action dev="ebourg" type="add"> |
| Added save methods in XMLConfiguration similar to PropertiesConfiguration |
| to save the configuration to another file (bug 29721). |
| </action> |
| <action dev="ebourg" type="update"> |
| Removed the DOM4J implementations in favor of the DOM ones. |
| DOMConfiguration has been renamed to XMLConfiguration, and |
| HierarchicalDOMConfiguration to HierarchicalXMLConfiguration. The |
| elements parsed by the ConfigurationFactory have been changed |
| accordingly. |
| </action> |
| <action dev="ebourg" type="add"> |
| Added a save() method to PropertiesConfiguration and save(Writer out), |
| save(OutputStream out), save(OutputStream out, String encoding) to |
| BasePropertiesConfiguration. |
| </action> |
| <action dev="ebourg" type="fix"> |
| List values are now properly stored as comma separated values in the |
| Properties object returned by ConfigurationConverter.getProperties() |
| (Bug 29607) |
| </action> |
| <action dev="ebourg" type="update"> |
| Introduced a ConversionException thrown when the value of a property is |
| not compatible the type requested. It replaces the ClassCastException |
| and the NumberFormatException thrown previously. |
| </action> |
| <action dev="ebourg" type="fix"> |
| Tokens like ${ref} in a PropertyConfiguration are now properly saved |
| (Bug 29366). |
| </action> |
| <action dev="ebourg" type="fix"> |
| The getList() method of a CompositeConfiguration now returns the list |
| composed of the elements in the first matching configuration and the |
| additional elements found in the in memory configuration (Bug 28660). |
| </action> |
| <action dev="epugh" type="fix"> |
| SubsetConfiguration returns a List on getList(). AbstractConfiguration |
| wouldn't properly deal with a List, only with a Container for getList()! |
| Thanks to jschaible for the unit test. |
| </action> |
| <action dev="jschaible" type="add"> |
| Direct support of XML via DOM. New classes DOMConfiguration and HierarchicalDOMConfiguration. |
| </action> |
| <action dev="jschaible" type="update"> |
| Update build to not include test configuration files in resulting jar. |
| </action> |
| <action dev="ebourg" type="update"> |
| Refactored JNDIConfiguration to use AbstractConfiguration. |
| </action> |
| <action dev="ebourg" type="update"> |
| Fixed bug 27427 by refactoring out the subset logic into a SubsetConfiguration. |
| </action> |
| <action dev="oheger" type="fix"> |
| Reapply the ConfigurationXMLDocument that went missing during migration out of sandbox. |
| </action> |
| <action dev="epugh" type="update"> |
| Apply ASL 2.0 license. Thanks to Jeff Painter for scripting the conversion! |
| </action> |
| <action dev="epugh" type="add"> |
| Changed CompositeConfiguration to extend from AbstractConfiuration. This means that the behavior of |
| CompositeConfiguration is much similar to others like PropertiesConfiguration in handling of missing |
| keys, interpolation, etc.. Previously CompositeConfiguration had quite a few differences. |
| </action> |
| <action dev="epugh" type="update"> |
| Removed "defaults" from BaseConfiguration. Defaults are now done via using a CompositeConfiguration, either |
| directly or via a ConfigurationFactory. if you want to save changes made to a Configuration, then you use |
| a CompositeConfiguration and get back the inMemoryConfiguration that has the delta of changes. Added a |
| bit of documentation on this. |
| </action> |
| <action dev="epugh" type="update"> |
| Bugzilla 16504 Enhancement: Configuration Comparator |
| </action> |
| <action dev="epugh" type="update"> |
| Bugzilla 26694 (BaseConfiguration: containsKey ignores default properties). |
| I have changed it so that now the defaults are paid attention to. |
| </action> |
| <action dev="ebourg" type="add"> |
| The Configuration interface now supports BigDecimal and BigInteger numbers. |
| </action> |
| <action dev="epugh" type="add"> |
| ConfigurationException is now thrown by public methods instead of Exception or |
| IOException or whatnot. |
| </action> |
| <action dev="ebourg" type="add"> |
| For configuration based on properties files, allow characters like \n etc |
| to be escaped and unescaped. |
| </action> |
| <action dev="ebourg" type="add"> |
| New DatabaseConfiguration that uses a database to store the properties. |
| It supports 2 table structures : |
| <ul> |
| <li>one table per configuration (2 colums key/value)</li> |
| <li>one table for multiple configurations (2 columns key/value + 1 column |
| for the name of the configuration)</li> |
| </ul> |
| </action> |
| <action dev="oheger" type="add"> |
| ConfigurationFactory now supports the hierarchicalDom4j element in configuration |
| definition file |
| </action> |
| <action dev="ebourg" type="update"> |
| Change all Vector objects to List objects. |
| </action> |
| <action dev="oheger" type="add"> |
| ConfigurationFactory now supports two types of properties files, additional and |
| override. Additional properties add each other together. Override override each |
| other. This allows you to have a single property that is either aggregated from a |
| number of sources, or have a property that is overridden according to a specific |
| order of sources. |
| </action> |
| <action dev="oheger" type="update"> |
| AbstractConfiguration addProperty now delegates to an abstract addPropertyDirect |
| implemented by BaseConfiguration. |
| </action> |
| <action dev="kshaposhnikov" type="update"> |
| Changed getString() method to throw a NoSuchElementException instead of "" if the |
| configuration property doesn't exist. |
| </action> |
| <action dev="kshaposhnikov" type="add"> |
| Added AbstractConfiguration to make it easier to create subclasses by only |
| having to implement the methods required. |
| </action> |
| <action dev="bdunbar" type="fix"> |
| <strong>ClassPropertiesConfiguration Additions</strong> |
| <ul> |
| <li>Use the classloader of class that is provided by the constructor.</li> |
| <li>Add a constructor that indicates whether to use relative or absolute.</li> |
| <li>Change getPropertyStream to utilize the relative or absolute flag.</li> |
| <li>Add a test case that checks that absolute paths work.</li> |
| </ul> |
| </action> |
| <action dev="epugh" type="fix"> |
| <strong>JNDIConfiguration.getKeys() Addition</strong> |
| The JNDIConfiguration.getKeys() method was returning an unsupported |
| operation error. However, this is an important method to have |
| supported. |
| </action> |
| <action dev="epugh" type="fix"> |
| <strong>CompositeConfiguration.getKeys() Fix</strong> |
| The CompositeConfiguration.getKeys() method was returning an |
| unordered list of configuration values. However, many apps |
| expect the order that keys are returned to be the order they |
| are added into the properties file. |
| </action> |
| </release> |
| </body> |
| </document> |