Apache Empire-db
Copyright 2008-2022 The Apache Software Foundation

For more Information about a particular issue please visit
https://issues.apache.org/jira/browse/EMPIREDB

--------------
Release 3.0.0:
--------------

Summary: Release 3.0 features a complete API rework hence introduces breaking changes from the previous 2.x branch.

** Improvement
	EMPIREDB-382	Core:	Provide easy access to native DBMS functions
	EMPIREDB-381	Core:	Improve PostgreSQL Handler / Add Postgres specific functions
	EMPIREDB-380	Core:	Reintegrate spring-boot example for version 3
	EMPIREDB-378	Core:	PostgeSQL: SQL Pattern for TIMESTAMP Columns
	EMPIREDB-374	Core:	replace log4jv1 usage - EOL and with multiple security vulnerabilities
	EMPIREDB-373	Core:	Improve Automatic prepared statements with DBCommand
	EMPIREDB-372	Core:	Allow method chaining by returning this on some DBCommand and DBRecord methods
	EMPIREDB-371	Core:	Deferred identiy setting for DBRecord
	EMPIREDB-370	Core:	Allow alternative DBRecord implementations
	EMPIREDB-369	Core:	Improve typesafety by using generics
	EMPIREDB-368	Core:	New queryBean functions and Bean Rowset mapping
	EMPIREDB-367	Core:	New query type DataList as bean replacement
	EMPIREDB-366	Core:	Remove Serializable from DBObject
	EMPIREDB-365	Core:	Add support for Java 8 time api
	EMPIREDB-364	Core:	Handle rollback on DBRecord to restore state
	EMPIREDB-363	Core:	New DBContext as replacement for Connection param
	EMPIREDB-362	Core:	Version 3 Complete API Rework
	
** Bugfix / Other
	EMPIREDB-375	Struts:	Removed support for Struts2 and all its modules due to outdated Struts version
	EMPIREDB-376	Core:	Do not use insecure http endpoints when doing maven build
	EMPIREDB-377	JSF:	Page - addFacesMessage always issues WARN-Message

--------------
Release 2.5.1:
--------------

** Improvement
	EMPIREDB-361	JSF:    NumberFormat allow MaximumFractionDigits<>MinimumFractionDigits
	EMPIREDB-360	JSF:    Add check for null on ValueExpressions supplied with input or control tag.
	EMPIREDB-359	Core:   Allow multiple occurrences of column placeholder in function expression template
	EMPIREDB-358	Core:   New example project for spring-boot integration
	EMPIREDB-355	JSF:    JSF extensions: Allow SelectControl to be rendered as listbox
	EMPIREDB-354	Core:   Miscellaneous small improvements
	EMPIREDB-353	Core:   Provide default implementation für delete with joins
	EMPIREDB-351	Core:   Improve ObjectUtils
	EMPIREDB-350	JSF:    Allow LInkTag to render child elements
	EMPIREDB-349	Core:   Improve DateUtils / add compare function
	EMPIREDB-348	JSF:    Improve readonly detection for InputContols, allow override
	EMPIREDB-346	Core:   Improve Enum value conversion / allow custom conversion
	EMPIREDB-345	JSF:    JSF TextAreaInputControl: add css style for rows and cols
	EMPIREDB-344	Core:   Allow replacement of select expressions in DBCommand
	EMPIREDB-343	JSF:    JSF InputControl: Allow override readonly attribute
	EMPIREDB-342	Core:   Impove allowed expressions for joins
	EMPIREDB-341	Core:   Improved table cloning for multiple- and self-joins
	EMPIREDB-337	JSF:    JSF Improve TabViewTag with option to hide tabBar
	EMPIREDB-336	Core:   Add validity checks for Join expressions
	EMPIREDB-334	Core:   Improve customizablity of data model code generation

** Bugfix
	EMPIREDB-357	Core:   StringUtils.compareEqual fails for arguments null + empty string
	EMPIREDB-356	Core:   SelectInputControl: option label not correctly updated
	EMPIREDB-352	Core:   DBExpr.getValueClass should return String.class for DataType CHAR
	EMPIREDB-347	Core:   Avoid unneccessary instances of SimpleDateFormat in ObjectUtils
	EMPIREDB-340	Core:   Omit command param if value is null
	EMPIREDB-335	JSF:    JSF add missing format option "nolookup" for text controls
	EMPIREDB-333	Core:   Fix Problem with parameter propagation for nested queries
	EMPIREDB-332	Core:   codegen example incorrect pom entries
	EMPIREDB-331	Core:   DBRowSet:initRecord falsely intializing fields with NO_VALUE

--------------
Release 2.5.0:
--------------

** Improvement
	EMPIREDB-329	Core:	Add full join support for column joins
	EMPIREDB-328	JSF:	Add css style class to input element if value of input control was modified
	EMPIREDB-327	JSF:	CheckboxInputControl ignores isFieldReadOnly
	EMPIREDB-325	JSF:	TextInputControl: required-Styleclass is not updated after ajax call
	EMPIREDB-324	Core:	Add caseWhen expression for multiple conditions
	EMPIREDB-322	Core:	Add DataModelChecker for SQL-Server
	EMPIREDB-321	JSF:	TextInputControl: Improve the ability to implement custom parsing
	EMPIREDB-319	Core: 	Improve partial record handling
	EMPIREDB-317	JSF:	Improve TagEncoding inside UIData components
	EMPIREDB-315	Core:	Extend Options allowing Entries to be active/inactive
	EMPIREDB-314	Core:	Add support for the SQL format function
	EMPIREDB-312	JSF:	Allow to customize whether to render the Input or the Value
	EMPIREDB-311	Core:	Allow Column Expression to be use with ValueTag
	EMPIREDB-310	JSF:	Improve ParamterMap for request parameter handling
	EMPIREDB-308	JSF:	WebApplication: Add "destroy"-method
	EMPIREDB-307	JSF:	Allow overrides of TagEncodingHelper class
	EMPIREDB-306	JSF:	Improve JSF Taglib support
	EMPIREDB-305	JSF:	Allow InputControl to render value wrapper tag
	EMPIREDB-304	Core:	Add isEnum() function to Column indicating whether an Enum-type has been set
	EMPIREDB-303	Core:	Add support for Unique-Indexes which allow null values
	EMPIREDB-301	Core:	DBCommandExpr: expose orderBy
	EMPIREDB-300	JSF:	Problem with prepared statements when using booleans with SelectInputControl
	EMPIREDB-299	Core:	Improve Oracle update statements using "MERGE INTO"
	EMPIREDB-298	JSF:	Allow update of required style after Ajax request with SelectInputControl
	EMPIREDB-296	JSF:	Allow page-specific idParams in ParameterMap
	EMPIREDB-294	Core:	Allow functions and command expression to be used as record values
	EMPIREDB-293	Core:	Allow driver to distinguish between DATETIME and TIMESTAMP
	EMPIREDB-291	Core:	Make table definition for update timestamp simpler
	EMPIREDB-290	Core:	Provide additional overloads to DBTable.addColumn for Enum value types
	EMPIREDB-289	Core:	Rename DataType TEXT to VARCHAR to align with SQL specification
	EMPIREDB-288	JSF:	Provide handler for view not found in web application
	
** Bugfix
	EMPIREDB-326	Core:	Fix DateTime conversion in ObjectUtils
	EMPIREDB-323	Core:	Fix multiple sql-functions on same column not possible with DBCommand
	EMPIREDB-320	JSF:	Fix skip default JSF input validation
	EMPIREDB-318	Core:	Fix field resolution failure for expressions with no UpdateColumn in DBQuery
	EMPIREDB-316	JSF:	Control-Rendering: distinguish between disabled and readOnly
	EMPIREDB-313	JSF:	Fix SelectInputControl not working for numeric enum columns
	EMPIREDB-309	JSF:	Fix JSF-LabelTag must not implement NamingContainter
	EMPIREDB-302	JSF:	Fix Support for NULL values in CheckboxInputControl
	EMPIREDB-297	Core:	Fix CodeGenerator failure for NVARCHAR columns in SQL-Server
	EMPIREDB-295	Core:	Fix incorrect From clause when using function expressions
	EMPIREDB-286	JSF:	Fix ControlTag using "colon"-Attribute for label rendering
	EMPIREDB-285	Core:	Fix correctly escape sequence name when dropping tables
	EMPIREDB-283	Core:	Fix PreparedStatements not working with MS SQL-Server >= 2016
	EMPIREDB-281	JSF:	Fix Allow modifying options with SelectInputControl in Ajax request
	EMPIREDB-280	Core:	Fix incorrect validation of null values in DBRecord.setValue

--------------
Release 2.4.7:
--------------

** Improvement
	EMPIREDB-278 Provide new accessors for Enum values on records
	EMPIREDB-277 JSF2 Extensions: Allow other inputControl to be used with selectTag
	EMPIREDB-276 Add support for pseudo table (like DUAL in Oracle)
	EMPIREDB-275 Allow provision of sequence gerneration expression for bulk insert statements
	EMPIREDB-274 Oracle: Correct MergeInto syntax
	EMPIREDB-272 Provide easy way to select column with a qualfied alias
	EMPIREDB-271 New application example with Vue.js framework and REST service
	EMPIREDB-270 JSF2 Extensions: Allow records to provide context specific css styles for JSF tags
	EMPIREDB-267 Allow DBCmdParams to be used as a value expression in an SQL statement
	EMPIREDB-266 Map query columns in DBReader to underlying table columns
	EMPIREDB-264 MySQL Driver: Update Keywords for version 5.7
	EMPIREDB-262 Add special enum handling to ObjectUtils.compareEqual function
	EMPIREDB-258 MS-SQL Server: Improve Driver to support latest features  
	EMPIREDB-256 Allow page redirect in overrides of method Page.checkPageAcces()
	EMPIREDB-254 Allow detection and handling of constraint violations when inserting or updating records
	EMPIREDB-253 Add UNION ALL support to DBCommand
	EMPIREDB-252 MySQL: Added Support for database specific CodeGenParser
	EMPIREDB-251 MySQL: Added Support for TINYINT, MEDIUMINT Integer Types

** Bugfix
	EMPIREDB-280 DBRecord.setValue does not correctly validate null for new records
	EMPIREDB-279 Sequences left after dropping my Database. Can't create a new one.
	EMPIREDB-273 Improve multi-region support in TagEncodingHelper / TextInputControl
	EMPIREDB-269 DBDatabaseDriverPostgreSQL: wrong SQLPhrase for DBSystemDate
	EMPIREDB-265 DDL syntax for DROP statements contains invalid quotes when a schema name is given.
	EMPIREDB-263 Not possible to set skipRows unless limitRows is also set
	EMPIREDB-261 DBCommand is not re-usable, when a CLOB column is involved
	EMPIREDB-255 Compiler error in code generated from codegen plugin
	EMPIREDB-250 MySQL: wrong SQL for CREATE VIEW with DBCombinedCmd

--------------
Release 2.4.6:
--------------

** Improvement
	EMPIREDB-252	Add Support for database specific CodeGenParser
	EMPIREDB-251	Add Support for TINYINT, MEDIUMINT Integer Types for MySQL
	EMPIREDB-249	Add "format" Support to MySQL convert expression
	EMPIREDB-245	Add Support for DELETE with JOIN for MySQL
	EMPIREDB-243	Add Eclipse m2e plugin lifecycle mapping
	EMPIREDB-242	Explicitly declare cross joins
	EMPIREDB-238	Miscellaneous small improvements
	EMPIREDB-237	Add support for the modulo function in SQL generation
	EMPIREDB-235	Improve Empire-JSF-Extensions for JSF 2.2
	EMPIREDB-233	Remove MSSQL DateFormat dependency
	EMPIREDB-232	Support InputControls to work correctly in MyFaces and inside UIData components
	EMPIREDB-231	Improve CheckboxInputControl
	EMPIREDB-229	Code cleanup and adjustment of maven project settings
	EMPIREDB-228	Allow access to TagEncodingHelper in derived classes
	EMPIREDB-227	Spring Integration including example

** Bugfix
	EMPIREDB-248	date functions not properly handled in PostgreSQL
	EMPIREDB-246	Label Required Mark check inconsistent
	EMPIREDB-241	Error in lower() implementation for PostgreSQL
	EMPIREDB-240	Update Spring dependencies in examples
	EMPIREDB-239	Enum-handling: take name or ordinal as field value
	EMPIREDB-236	Subquery join with DBQuery produces invalid join
	EMPIREDB-230	MSSQL DDL generates incorrect data type for BLOB with nonzero length
	EMPIREDB-226	Empire generates incorrect SQL when DBCommand's where list is empty

--------------
Release 2.4.4:
--------------
** Improvement
	EMPIREDB-221 	Allow batch execution through JDBC executeBatch
	EMPIREDB-220 	Allow override of fraction digits on JSF input tag
	EMPIREDB-219	Added source code for Eclipse-Code-Generation-Plugin
	EMPIREDB-217	Consistency check for data model definition vs deployed data model

** Bugfix
	EMPIREDB-223	join function in DBCommand requires a DBColumn instead of a DBColumnExpr
	EMPIREDB-218	Missing reserved keywords in DBDatabaseDriverMySQL
	EMPIREDB-216	Reserved words as column names not correctly escaped/quoted for derby
	EMPIREDB-215	Sequence generation and use for HSql to not agree in using toUpperCase
	EMPIREDB-214	SQLServer - wrong 'alterColumnPhrase'
	EMPIREDB-212	MySQL Nested Union bad syntax
	EMPIREDB-210	Wrong Java Type in Records for BLOB Columns
	EMPIREDB-209	Using a reserved word as a column alias in a select statement.
	EMPIREDB-208	Decimal fields don't support scales above 9
	EMPIREDB-125    Problem with the location of velocity templates on the code generator

--------------
Release 2.4.3:
--------------
** Improvement
	EMPIREDB-127 	Switch to Apache Maven 3.0.x

** Bugfix
	EMPIREDB-206	ExpireException may throw an ArrayOutOfBoundsException
	EMPIREDB-205	DBColumn implements equals() but not hashcode()
	EMPIREDB-204	PostgreSQL not supports size parameter on BYTEA
	EMPIREDB-202	BeanListPageElement does not navigate back to page 0.
	EMPIREDB-201	BeanListPageElement.getItemQueryCmd does not clear limit and skip rows
	EMPIREDB-194	DBSQLScript: allow to insert statements 

--------------
Release 2.4.2:
--------------
** Improvement
	EMPIREDB-192	Implement limitRows and skipRows for Oracle
	EMPIREDB-190	Improve DDL Syntax by allowing variable parameters for primary key and relations
	EMPIREDB-188	Allow replacement of statements in a DBScript
	EMPIREDB-183	Allow enabling / disabling foreign key constraints
	EMPIREDB-180	Strip Mojarra dependency from JSF2 extensions and show use of MyFaces in example
	EMPIREDB-178	Improve JSF example, add business logic for retired state
	EMPIREDB-173	Switch to ASF Parent 13 POM
	EMPIREDB-170	extend DBDatabase.querySingleValue to utilize DataType

** Bugfix
	EMPIREDB-193	DBRowSet has an equals() implementation but no hashCode() implementation.
	EMPIREDB-191	The spring example does not release connections.
	EMPIREDB-189	DBDatabase.getSingleInt with default does not return the default but throws an exception.
	EMPIREDB-185	MenuListTag not working in MyFaces
	EMPIREDB-182	Wrong datatype for uniqueid in SQLServer
	EMPIREDB-181	Do not check for item count in ListPageElement.isValid()
	EMPIREDB-179	String to date conversion: use SimpleDateFormatter
	EMPIREDB-177	Allow date entry in JSF-inputText 
	EMPIREDB-175	rename misleading method name that falsely suggests a redirect
	EMPIREDB-171	ObjectUtils.compareEquals fails on BigDecimal

--------------
Release 2.4.1:
--------------
** Improvement
	* [EMPIREDB-169] - Allow access to page properties in resource requests via EL.
	* [EMPIREDB-168] - Extend JSF2 Input Controls by adding missing attributes and improve input value parsing and validation.
	* [EMPIREDB-167] - Review DBRecord state handling. Changed state from int constants to state enum. Improved method overrides 
	* [EMPIREDB-165] - JSF2: detect model changes for record bound input controls
	* [EMPIREDB-164] - Check Numeric values when encoding sql commands. New method DBDatabaseDriver.getSQLNumberString()
	* [EMPIREDB-163] - New function Record.isFieldRequired() to determine whether a field is required or not
	* [EMPIREDB-162] - JSF2: Support partial submits for Input control validation. Overridable method FacesApplication.isPartialSubmit()
	* [EMPIREDB-161] - JSF2: Format and parse Input Values with according to the users locale
	* [EMPIREDB-160] - JSF2: Preserve submitted form values when validation error occurs
	* [EMPIREDB-158] - Avoid accidentally missing command parameter values when using DBDatabase.executeSQL. New executeInsert, executeUpdate and executeDelete on DBDatabase.
	* [EMPIREDB-157] - Miscellaneous small improvements such as new overloads and improved JavaDoc

** Bugfix
	* [EMPIREDB-171] - ObjectUtils.compareEquals returns false for BigDecimals with equal value but different scale
	* [EMPIREDB-166] - Overwriting set expressions does not remove prepared statement parameter
	* [EMPIREDB-154] - <e:input> component failed inside a datatable
	* [EMPIREDB-153] - DBDatabaseDriverPostgreSQL.createReverseFunction throws syntax error exception

--------------
Release 2.4.0:
--------------
** New Feature
	* [EMPIREDB-140] - New Empire-db JSF extensions project (empire-db-jsf2) allows simplified web development with JFS 2.x implementations. An example project is also provided.

** Improvement
	* [EMPIREDB-149] - Simplified access to foreign key relations (see DBTable.getForeignKeyRelations())
	* [EMPIREDB-145] - Allow using DBQuery with UNION and INTERSECT commands
	* [EMPIREDB-144] - Allow generation of update commands with join expressions  
	* [EMPIREDB-143] - Provide access to native error message for SQL exceptions
	* [EMPIREDB-142] - Allow compare expressions to be wrapped with parenthesis
	* [EMPIREDB-141] - Miscellaneous small improvements
	* [EMPIREDB-138] - Optimized serialization by making database and rowset references transient

** Bugfix
	* [EMPIREDB-151] - DBDatabaseDriverHSQL fails on selection of NEXT VALUE
	* [EMPIREDB-150] - <sample:formInputRow> component failed to parse/resolve the "for" attribute 
	* [EMPIREDB-146] - Blob data type is not working with postgresql under v2.3
	* [EMPIREDB-147] - BLOB datatype under empire 2.3.1-SNAPSHOT

--------------
Release 2.3.0:
--------------
** New Feature
    * [EMPIREDB-79]  - Allow specification of delete action for each DBRelation (ON DELETE CASCADE)

** Improvement
    * [EMPIREDB-137] - Extend Record and Column interfaces by Record.isReadOnly() and Column.validate() methods
    * [EMPIREDB-133] - Simplify use of DBCommand:DBCommandParam class
    * [EMPIREDB-129] - Allow expression based indexes
    * [EMPIREDB-126] - Various small improvements, like new method overloads, code and javadoc cleanup, etc.
    * [EMPIREDB-123] - Allow to specify the character column length in bytes (Non-Unicode) or chars (Unicode) for DDL generation

** Bugfix
    * [EMPIREDB-136] - DBCommand.clone() modified to produce an independent clone of the original command.
    * [EMPIREDB-135] - Suppress column alias inside concatenations
    * [EMPIREDB-132] - Fix support for CLOB data type in Postgre SQL
    * [EMPIREDB-130] - Prepared Statements: Convert Enums to String to avoid SQLException
    * [EMPIREDB-128] - Velocity Template Table.vm does not handle tables without primary keys
    * [EMPIREDB-124] - Added missing Serializable on class commons.Options and commons.OptionEntry
    * [EMPIREDB-122] - Fixed support for Update/ Insert of Chinese characters with non-prepared statements
    * [EMPIREDB-121] - Fixed lower case expression for SQL-Server (lower instead of lcase)
    * [EMPIREDB-120] - Fixed FieldIllegalValueException for DataType.DATETIME and DataType.DATE if the value is empty (but DBTableColumn is nullable)

--------------
Release 2.2.0:
--------------
** New Feature
    * [EMPIREDB-110] - Add support for reverse-engineering of foreign-key relationships

** Improvement
    * [EMPIREDB-99] - Remove optional support for old style error handing
    * [EMPIREDB-103] - reduce getDDLScript duplicate code
    * [EMPIREDB-115] - Add parenthesis to the first select of a union/ intersect and allow driver to implement limit() and skip()
    * [EMPIREDB-116] - Add support for multi column foreign-keys to code generator
    * [EMPIREDB-117] - Allow Table, View and Column prefixes in generation process

** Bugfix
    * [EMPIREDB-104] - Create DDL Script on MSSQL should state not CREATE DATABASE if already exist
    * [EMPIREDB-105] - Support of long integer fields on MS SQL Server
    * [EMPIREDB-107] - Limit function for postgres sql not implemented
    * [EMPIREDB-109] - Missing conversion for Type double in ObjectUtils.convert
    * [EMPIREDB-113] - Should preserve the decimal digits of DECIMAL columns
    * [EMPIREDB-118] - Prevent columns to be added twice to a table or view


The following older issues are categorized as follows:
[{C=Core}|{S=Struts Extensions}|{E=Examples}|{O=Other}
/{N=New Feature}|{B=Bug fix}|{I=Improvement}]

--------------
Release 2.1.0:
--------------
Major new features:
- New and improved utilization of prepared statements which can be enabled / disabled by database property. 
- Use of SLF4J instead of log4j 
EMPIREDB-101- [C/I]:  Create DDL Script on MySQL should state CREATE DATABASE IF NOT EXISTS
EMPIREDB-100- [C/I]:  Support of long integer fields for H2, Derby and MySQL
EMPIREDB-97 - [C/I]:  Added serialization to Empire-DB objects
EMPIREDB-95 - [C/I]:  Code optimizations/cleanup and javadoc improvements  
EMPIREDB-94 - [C/B]:  Added Postgre and Derby bigint support
EMPIREDB-93 - [C/B]:  DBRowSet.updateRecord log output does not report column name properly
EMPIREDB-92 - [C/I]:  Switch to Apache Parent pom version 8
EMPIREDB-91 - [C/I]:  Increase and optimize the use of prepared statements
EMPIREDB-81 - [C/B]:  Endless loop in DBSeqTable#getNextValue() fixed
EMPIREDB-77 - [C/I]:  Removed the Log4J compile-time dependency by switching to slf4j (same also EMPIREDB-38) 
EMPIREDB-38 - [C/I]:  Switched from log4j to slf4j

--------------
Release 2.0.7:
--------------
Major new features:
- Switched to latest struts version and added portlet support to struts2 extensions
- Support for limiting the number of rows returned by a query.  
EMPIREDB-90 - [C/B]:  The "createRecordProperties" switch in the codegenerator's configuration works not properly.     
EMPIREDB-89 - [S/I]:  Update Empire-Struts-Extensions to Struts 2.2.1 and provide Portlet Support     
EMPIREDB-88 - [C/B]:  CodeGenerator generates uppercase fieldnames where empire code expects lowercase names     
EMPIREDB-87 - [C/I]:  Use EXTRACT() function to extract the day, month or year from a date column in Oracle  
EMPIREDB-86 - [C/B]:  Correct some typos in the javadocs     
EMPIREDB-85 - [C/I]:  Remove declarations of unused dependencies (from pom.xml)     
EMPIREDB-84 - [C/B]:  Typo in section "Empire-db and Struts2 � Forms and controls"     
EMPIREDB-82 - [C/B]:  Cloning does not work if DBTable's column (DBColumn) are declared final (as per shipped examples). Causing table alias in resulting SQL queries to be wrong     
EMPIREDB-62 - [C/N]:  Allow to set limit for maximum number of rows returned     
EMPIREDB-60 - [C/B]:  Cloning of columns is restricted to current class     

--------------
Release 2.0.6:
--------------
Major new features:
- Code-Generator allows generation of Data Model code files for existing databases 
- Maven plugin for DB-Code-Generator  
- New example to demonstrate interoperability between Empire-db and Spring 
- Provided jars are now OSGi compatible

Issues resolved:
EMPIREDB-76 - [C/B]:  Erroneous translation of DataType.DOUBLE for postgres
EMPIREDB-73 - [C/N]:  Spring interoperability example provided by Eike Kettner     
EMPIREDB-72 - [C/I]:  Change various private modifiers to protected to allow overrides     
EMPIREDB-71 - [C/I]:  New enumeration DataMode for column classification as a replacement for the required flag        
EMPIREDB-70 - [C/B]:  Corrected MySQL indentifier quote     
EMPIREDB-67 - [C/I]:  Allow selection of (Mysql) Database Engine     
EMPIREDB-64 - [C/N]:  CodeGenerator Maven Plugin     
EMPIREDB-63 - [C/I]:  Provide overloads for DBDatabase.queryObjectList() and querySimpleList() to allow using other collection types.     
EMPIREDB-59 - [C/B]:  HSQL double has hard-coded illegal precision (FLOAT(80)) for HSQL 1.8     
EMPIREDB-57 - [C/B]:  HSQLDB driver fails to retrieve next sequence value for lower case sequence name     
EMPIREDB-56 - [C/B]:  getValue Function on DBReader does not fail on errors.     
EMPIREDB-52 - [C/N]:  CodeGenerator module for generating database definition code files from existing databases
EMPIREDB-35 - [C/I]:  Make sure our jars are OSGi compatible        

--------------
Release 2.0.5:
--------------
Major new features:
- Maven project management
- New database handlers for Apache Derby, H2, PostgreSQL
- New Examples showing WebService integration using Apache CXF
- Empire-DB Struts2-Extensions' dependencies updated from Struts 2.0.11 to Struts 2.1.6 

Issues resolved:
EMPIREDB-49 - [C/B]: The generation of table, view and query aliases now uses thread-safe counters  
EMPIREDB-46 - [C/B]: datetime-phrase issue in DBDatabaseDriverDerby
EMPIREDB-45 - [S/I]: Update struts extensions to accomodate latest struts release  
EMPIREDB-44 - [C/B]: error using apache derby and CLOB datatype  
EMPIREDB-42 - [C/I]: Extend DBReader to provide query results in a hash set  
EMPIREDB-41 - [C/I]: Deal with databases differences regarding SQL reverse function
EMPIREDB-40 - [C/B]: Postgresql cast problem 
EMPIREDB-37 - [C/N]: PostgreSQL "BLOB" type not exist but is possible to create a "bytea" column 
EMPIREDB-36 - [E/N]: New WebServices integration example using Apache CXF
EMPIREDB-34 - [C/I]: Add support for stmt.executeUpdate with Statement.RETURN_GENERATED_KEYS instead of getPostInsertAutoIncValue() 
EMPIREDB-33 - [S/B]: BeanRecordProxy isFieldReadOnly wrong for new records 
EMPIREDB-32 - [C/N]: Unit tests 
EMPIREDB-31 - [E/B]: Advanced sample throws SQLException (wrong db user) 
EMPIREDB-30 - [C/N]: Support for PostgeSQL 
EMPIREDB-29 - [O/N]: Switch to Maven project management 
EMPIREDB-28 - [E/B]: SampleConfig in the demo application has invalid user 
EMPIREDB-27 - [C/B]: HSQLDB driver doesn't support conversion of value to DOUBLE 
EMPIREDB-26 - [S/I]: Extend HTMLTagDictionary to allow default cssClass for all input types 
EMPIREDB-25 - [C/I]: Implement getAttribute and setAttribute on BeanProperty class 
EMPIREDB-24 - [S/I]: Allow textarea to handle keypress and keyup events in order to check the maximum length of input 
EMPIREDB-23 - [C/B]: Maximum size is not passed to error message handler for DBErrors.FieldValueTooLong in DBTableColumn::checkValue 
EMPIREDB-22 - [C/B]: deleteReferenceRecords() does not sort the depending records by id 
EMPIREDB-21 - [S/I]: Allow empty record item parameter: The function getRecordKeyFromString should return null if the item string consists of the new item flag only. 
EMPIREDB-20 - [C/B]: Convert to char doesn't work for hsqldb 
EMPIREDB-19 - [S/B]: The form tag's "target" attribute is not rendered in HTML code 
EMPIREDB-18 - [C/B]: DBRecord.setModified(column, isModified) doesn't set the record state back from modified to valid 
EMPIREDB-17 - [S/B]: Checked attribute does not work on radio button tag. 
EMPIREDB-16 - [S/I]: Tag library definition does not allow java expressions for the cssClass attribute 
EMPIREDB-15 - [C/B]: Record fields are not cleared properly by createRecord. 
EMPIREDB-14 - [S/I]: Allow javascript code on anchors 

--------------
Release 2.0.4:
--------------
EMPIREDB-13 - [S/I]: Add column attribute to radioButtonTag and onClick attribute to menuItemTag 
EMPIREDB-12 - [S/I]: Allow reloading of current record from the session 
EMPIREDB-11 - [S/I]: WebAction.clearActionErrors does not remove Error from the session 
EMPIREDB-10 - [S/I]: Allow setting of record property name with control tag 
EMPIREDB-09 - [O/I]: Move build.xml from src directory to root directory. Change distribution scripts to meet apache incubator requirements.  
EMPIREDB-08 - [C/I]: Restrict access to DatabaseDriver object for all subclasses of DBColumnExpr to the addSQL function.  
EMPIREDB-07 - [C/I]: Add support for CASE WHEN expression with new class DBCaseExpr.java  
EMPIREDB-06 - [C/I]: Support for quoting of table, view and column names added.

--------------
Release 2.0.3:
--------------
EMPIREDB-5 - Added missing ASF headers. See JIRA for further information.
EMPIREDB-4 - Fixed several DBDatabaseDriverHSql bugs. See JIRA for further information.
EMPIREDB-3 - Added "useQuotes" property to DBColumn.
PRE-114: - All package names changed to org.apache.empire.

--------------
Release 2.0.2:
--------------
PRE-113: - NEW FEATURE: class BeanRecordProxy<T> implements the Record interface of any given JavaBean object.	
PRE-112: - NEW FEATURE: classes BeanDomain, BeanClass and BeanProperty allow metadata defition for JavaBean objects using the Column interface.
PRE-111: - DBDatabaseDriverOracle: new implementation for checkDatabase
PRE-110: - Method getSourceColumn added for data.Column
PRE-109: - DBRecordData: Type conversion moved to ObjectUtils
PRE-108: - NEW FEATURE: createView implemented for all Database Drivers
PRE-107: - DBView: canUpdateReocrds = Flag for updateable and non-updateable Views;

--------------
Release 2.0.1:
--------------
PRE-106: - NEW FEATURE: DBDatabaseDriverMySQL:	Driver for MySQL 5 added.
PRE-105: - NEW FEATURE: DBColumnExpr: Added Support for REVERSE() and INSTR() SQL Functions
PRE-104: - BUGFIX: DBRecord::getFieldValue(): Field Access to invalid DBRecord returned Boolean FALSE instead of null.
PRE-103: - DBDatabaseDriver: Function isSupported() and getPostInsertAutoIncValue() added
PRE-102: - DBColumnExpr: Substring function now excepts column expressions 
PRE-101: - DBSQLScript: New class to replace StringBuilder for DDL Script generation. See also DBDatabase::getCreateDDLScript()
