Apache Empire-db Copyright 2008-2014 The Apache Software Foundation For more Information about a particular issue please visit https://issues.apache.org/jira/browse/EMPIREDB -------------- 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] - 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] - 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 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()