Apache Empire-db Copyright 2008-2012 The Apache Software Foundation The issues are categorized as follows: [{C=Core}|{S=Struts Extensions}|{E=Examples}|{O=Other} /{N=New Feature}|{B=Bug fix}|{I=Improvement}] For more Information about a particular issue please visit https://issues.apache.org/jira/browse/EMPIREDB -------------- 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] - 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 -------------- 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 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()