Finally, 7 months and 3 weeks after configuration was first promoted from the Sandbox, we finally have a 1.0 Release Candidate 1. Please bear with me if I made any significant mistakes during this process as it was my first time attempting to release anything. I want to thank all the people who've contributed to Configuration since it's move out of the Sandbox, and to all the other developers who contributed to Configuration when it was part of JServ and Turbine.
A couple of notes: 1) The jar is available online through ibiblio: http://www.ibiblio.org/maven/commons-configuration/jars/ 2) The source was tagged as CONFIGURATION_1_0_RC1. This tag had been applied at somepoint to some older chunks of Configuration, probably in an earlier abortive attempt. I moved the tag. 3) I'm headed out of town on vacation and won't be back till Sept 4th. If no major issues have been discovered, and no one has released it, I'll attempt to do it them. However, if someone wants to step up to the plate to do a vote and release after giving rc1 a week to simmer, I'd be eternally grateful. 4) The site docs are updated. However, after doing the update, I realized that the JavaDocs aren't being generated, so the docs are older. There haven't been any API changes to Configuration, so it shouldn't be the end of the world, but if someone wants to look at why the JavaDocs won't generate, that would be great. 5) Documentation is somewhat lacking.. It would be nice to do another turn of the crank. Or, maybe get an article written! I'd be glad to help/coauthor with anyone. Cheers, Eric Pugh The change log is rather long, so reading it online might be better, but here goes: New Features: o HierarchicalConfigurationXMLReader stores comments as text nodes Issue: 30597. Thanks to Oliver Heger. o project.xml contains bad dependencies Issue: 30648. Thanks to Ricardo Gladwell. o clearXmlProperty doesn't remove list properties completely Issue: 30234 . Thanks to Brent Worden. o new ConfigurationDynaBean Issue: 30545. Thanks to Ricardo Gladwell. o new ConfigurationMap and ConfigurationSet Issue: 29611. Thanks to Ricardo Gladwell. o Added save methods in XMLConfiguration similar to PropertiesConfiguration to save the configuration to another file (bug 29721). o Added a save() method to PropertiesConfiguration and save(Writer out), save(OutputStream out), save(OutputStream out, String encoding) to BasePropertiesConfiguration. o Direct support of XML via DOM. New classes DOMConfiguration and HierarchicalDOMConfiguration. o 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. o The Configuration interface now supports BigDecimal and BigInteger numbers. o ConfigurationException is now thrown by public methods instead of Exception or IOException or whatnot. o For configuration based on properties files, allow characters like \n etc to be escaped and unescaped. o New DatabaseConfiguration that uses a database to store the properties. It supports 2 table structures : one table per configuration (2 colums key/value) one table for multiple configurations (2 columns key/value + 1 column for the name of the configuration) o ConfigurationFactory now supports the hierarchicalDom4j element in configuration definition file o 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. o Added AbstractConfiguration to make it easier to create subclasses by only having to implement the methods required. Fixed bugs: o Problem adding property XMLConfiguration Issue: 30598. Thanks to Ricardo Gladwell. o DatabaseConfiguration doesn't support List properties. Issue: 29734. o Fixed several bugs related to XMLConfiguration: 30074 - Can't add a new property as an attribute in XMLConfiguration 30205 - XMLConfiguration doesn't support attribute names with a dot 30209 - XMLConfiguration doesn't ignore comments 30212 - XMLConfiguration.save() doesn't escape reserved characters o List values are now properly stored as comma separated values in the Properties object returned by ConfigurationConverter.getProperties() (Bug 29607) o Tokens like ${ref} in a PropertyConfiguration are now properly saved (Bug 29366). o 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). o 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. o Reapply the ConfigurationXMLDocument that went missing during migration out of sandbox. o ClassPropertiesConfiguration Additions Use the classloader of class that is provided by the constructor. Add a constructor that indicates whether to use relative or absolute. Change getPropertyStream to utilize the relative or absolute flag. Add a test case that checks that absolute paths work. o JNDIConfiguration.getKeys() Addition The JNDIConfiguration.getKeys() method was returning an unsupported operation error. However, this is an important method to have supported. o CompositeConfiguration.getKeys() Fix 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. Changes: o 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. o 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. o Update build to not include test configuration files in resulting jar. o Refactored JNDIConfiguration to use AbstractConfiguration. o Fixed bug 27427 by refactoring out the subset logic into a SubsetConfiguration. o Apply ASL 2.0 license. Thanks to Jeff Painter for scripting the conversion! o 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. o Bugzilla 16504 Enhancement: Configuration Comparator o Bugzilla 26694 (BaseConfiguration: containsKey ignores default properties). I have changed it so that now the defaults are paid attention to. o Change all Vector objects to List objects. o AbstractConfiguration addProperty now delegates to an abstract addPropertyDirect implemented by BaseConfiguration. o Changed getString() method to throw a NoSuchElementException instead of "" if the configuration property doesn't exist. Removed features: o ConfigurationXMLDocument removed until post 1.0. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]