blob: e2f52a1538eff558c707f739d38ad678ba9a215c [file] [log] [blame]
Apache Empire-db
Copyright 2008-2014 The Apache Software Foundation
For more Information about a particular issue please visit
Release 2.4.5:
** Improvement
EMPIREDB-245 Add Supprt 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
** 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
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()