FormProc change log: Version 1.3.1 (May 2, 2003) - REValidator now supports value arrays. - Fixed ExampleApp so that is loads the form manager configuration. - Fixed path so that it never attempts to resolve relative to the formproc.xml configuration. - Changed Form.java to handle non-null FormValue objects with null value. Version 1.3 (March 15, 2003) - FormManager now accepts a Commons VFS FileObject for loading configuration. - Internally FormProc now uses Commons VFS for file system access. - Fixed FormResult.getGroupErrorMessage() implementation. (Edgar Gonzalez) - Added log.isDebugEnabled() before each log.debug() statement which requires string concatenation. - All class loading is now done through the EdenLib ClassUtilities. Version 1.2 (February 11, 2003) - Added missing JavaDoc package comments. - Converted to Apache Commons Logging for logging. - Moved fields to top of code to follow Sun standards. - Updated copyright date. - Converted all tabs to 4 spaces. - Modified build scripts to take advantage of newer Ant features. - Updated log4j to version 1.2.7. Version 1.1 (November 7, 2002) - FormConfiguration, FormElement and FormElementGroup are now interfaces. - Added abstract base classes for new interfaces. - Moved default FormConfiguration implementation to org.formproc.config.XMLConfiguration. - Created default implementations of the FormElement and FormElementGroup interfaces in the org.formproc.form package. - Added setFormConfiguration() method to FormManager. - Added BasicFormElement and BasicFormElementGroup classes which provide a means for configuring elements and groups programmatically. - Added REValidator constructor which takes a pattern string as an argument. - Added support for handling parameter arrays in HttpServletRequest parameters. Version 1.0 (June 17, 2002) - Improved handling of null and empty values. Conversion skipped if value is null while the store mechanism will try to handle null values. - Added optional flag to FormElement. - Added ValidationResult.getValidator() method. - Added originalData Map to FormResult. - Added getOriginalValue() and getOriginalValueAsString() to FormResult. - Added methods for getting messages for specific fields. - Fixed NPE in IsIntRule. - Fixed error on null in PasswordValidator.py - Fixed potential NPE in Form class. - Added LongConverter implementation. - Added missing JavaDoc comments. - Removed ant libraries and build scripts. You must now have ant installed to build FormProc from source. Version 1.0b2 (May 20, 2002) - Added pluggable message providers for FormElement messages and validator error messages. Provided two implementations which support previous message types (inline and ResourceBundles). - Added support for default values in form elements. If no value is submitted the default value will be used instead. - Added annotated configuration files to the documentation. - Added comments to DTDs. - Added and improved more JavaDoc comments. - Updated Guide with new features. - Updated Overview. Version 1.0b1 (April 11, 2002) - Validator.validate() method changed to include a Locale parameter. - ValidatorResult now contains the Locale which was used at validation- time. - Fixed REValidator bug which was causing shared validator configuration information to be overridden improperly. - Converter.convert() method now includes a Locale argument. - Form.process() methods with a Locale argument added. - FormElement validator, storer and type converter can now be null. - Default validator, storer and type can be specified in each form's configuration. - Added loadConfiguration() method to Storer interface. - Added an AbstractStorer abstract base class which storer implementations can use. - TypeConverter.loadConfiguration() and Storer.loadConfiguration() methods are now executed when the TypeConverter or Storer is loaded. - Configuration formproc.xml now supports an include tag for including other configuration files. - Shared validators are now cloned when FormElements are configured so that overriding works properly. - Error and message lang attribute no longer required. - Validator error tag and element message tag both support resource bundles. - Error and messages which use the inline message form (i.e. the message is defined in the configuration) will fall back to the messages defined without a lang attribute if the given language is not found. Version 0.9 (March 17, 2002) - Complete rewrite of validation interface to simplify creation and configuration of validators. - Mechanism for storing field values in a form's target object is now pluggable through the Storer interface. - Created two storers: ReflectionStorer and MapStorer. - Class validator's now configured properly. - Added ErrorDialog to example application. Version 0.8 (March 1, 2002) - Added support for FormElement groups and validators which are applied to these groups. - Renamed classes to provide more accurate names. - Form.process() now returns a FormResult object. - Added TypeConverter classes for converting types before calling the target object's write methods. - Upgraded to EdenLib 1.0b4 - Removed xerces.jar and jdom.jar. Now using JAXP and Crimson for configuration parsing. - Updated examples and documentation to demonstrate new features. Version 0.7 (January 25, 2002) - Added shared validators. - Validators can now have locale sensitive error messages. - Removed FormElement level error messages in favor of validator error messages. - FormValidator is now an abstract base class. - Removed AbstractFormValidator. - All FormValidator implementations now extend from FormValidator. - FormValidator.configure() method now final. Implementations should override configureInternal() to do implementation-specific configuration. - FormValidator instances can now be aquired from a single location: FormManager.getValidator() - Updated examples to demonstrate how shared validators work. Version 0.6 (January 10, 2002) - Removed XMLConstants interface which is no longer required. Removed references to this interface in all classes. - Fixed bug in FormManager.loadConfiguration() if default configuration file was not found. - Fixed bug in example-form.xml configuration file (changed path attribute to file attribute). - Replaced configuration with classes from EdenLib config package - Fixed HTML in index.jsp - Example of web app now packaged as a WAR for easy deployment. - Example application now packaged as an executable JAR. - Added script-root-type property to the ScriptFormValidator which can have a value of 'file' or 'classpath'. If file then the script-root is a file. If classpath then the script-root is relative to the classpath. - Example apps both use ClassPathResourceLoader from EdenLib to load their configuration files. - Changed age example field to use group validator with two nested validators. - Fixed FormElement configuration bug (was sending wrong config object). Version 0.5.1 (January 8, 2002) - Added note to README about removal of formproc namespace from configuration files. - Fixed error in example-form.xml configuration file. Version 0.5 (January 7, 2002) - Added constructors to HttpForm with the same signatures as the Form constructors. - Form elements can now be defined without a validator. - If no form element for a particular form field is found, then the form data is considered valid. - Added a FormValidatorGroup class which is collection of FormValidator objects which must all evaluate to true in order for the field data to be valid. - Removed formproc name space from all XML configuration files. - Added Configuration class which replaces the use of JDOM Element objects for configuration in Validators. - Form configuration paths can be relative to main form configuration file (contributed by JD Evora). Version 0.4 (October 3, 2001) - Form configuration data is now loaded and monitored using the resource package in EdenLib 0.4. Currently the only supported resource loader is the FileResourceLoader, but additional resource loaders can easily be added - formproc.xml has changed to support the pluggable resource loaders - The config attribute in formproc.xml is deprecated. Use the path attribute instead Version 0.3 (September 27, 2001) - Write methods can now be specified for each form element; if no write method is specified then a setxxx() method will be used - Upgraded to EdenLib 0.3 - Converted all logging to generic logging package provided by EdenLib Version 0.2.2 (September 25, 2001) - ValidationResult constructors changed; the valid argument is no longer passed to the constructor, but is set depending on which constructor is called - ValidationResult can now maintain references to a Throwable which caused the validation failure - Added build-lib to final build (omitted from 0.2.1) - Added nested Exceptions to the FormConfigurationException - Added JavaDoc documentation Version 0.2.1 (September 24, 2001) - InvocationTargetException when thrown while calling methods on the target object - Moved libraries required only for build from lib directory to build-lib directory - Replaced email field with age field in example; replaced IsEmailRule with IsIntRule and removed mailapi.jar Version 0.2 (September 20, 2001) - FormValidator implementations are now specified at deploy-time and mapped to a simple String key. Implementation mappings can include a property map of name value pairs for shared properties. - Script root now specified as a property of the ScriptFormValidator validator map entry - Added RuleFormValidator - a rule-based validator (concept courtesy of Nick Bauman) - Added isValid(String field) to ValidatorResultMap - index.jsp password field value is now set - Modified example pages so that field messages are only red if there is an error - Added ExampleApp which shows how FormProc can be used in Java applications - Added bin directory with batch script to execute ExampleApp - Updated User's Guide Version 0.1 (September 17, 2001) - Initial release