January 01, 2006
01 January 2006 - Apache OJB 1.0.4 Released
Apache Object/Relational Bridge (OJB) is an Object/Relational mapping tool that allows transparent persistence for Java objects against relational databases.
The Apache OJB team is happy to announce the 1.0.4 release:
---------------------------------------------------------------------
Release 1.0.4
---------------------------------------------------------------------
NEW FEATURES:
- Support for embedded & network Derby (only distinct count queries don't work yet)
- Added ability to prepare the database for OJB's unit tests via DdlUtils (instead of Torque) Note that this is required when running the tests against Derby
- [OJB-10] - Configurable Proxy generation (including CGLIB based generation)
- [OJB-31] - Configurable JDBC driver-setting setFetchSize
- [OJB-14] - Setting custom JDBC driver tuning options trough jdbc-connection-descriptor
- [OJB-6] - Support for stored procedures returning ResultSet.
- [OJB-41] - ODMG-api: Allow cascading delete using auto-delete setting in metadata
- [OJB-66] - Allow to specify a sequence start element for SequenceManagerNextValImpl. Fixed for Oracle, PostgreSQL, MaxDB/SapDB, DB2. Additionally sequence properties like 'increment by', 'cache', 'order',... are supported too. See 'sequence manger' guide and javadoc
- Add new ODMG extensions and configuration properties. All properties can be set at runtime as global property in class ImplementationExt and for a specific transaction in class TransactionExt:
- 'ordering' Allow to dis-/enable OJB's object ordering on transaction commit
- 'implicitLocking' Dis-/enable OJB's implicit locking
- Add new property 'TxCheck' in OJB.properties file. When enabled, on PB store and delete calls OJB checks for a running PB-tx, if not found an error is logged in order to avoid store/delete calls without a running PB-tx (while development).
NOTES:
- Internal OJB class configuration files are changed, don't forget to replace these files on upgrade from older version (by default the internal used classes are located in repository_internal.xml).
- Improved performance comparison tests ('ant perf-test' and 'ant performance'). Now the tests more fair for registered API's
- In order to facilitate [OJB-10] the constructor signature of VirtualProxy has been changed.
CHANGES:
- INTERNAL API CHANGES: Pluggable class interfaces changed to support and fix OJB-31, OJB-6, OJB-63:
- StatementsForClassIF
- StatementManagerIF
- Platform
- RowReader
- SqlGenerator
- Configurable ProxyFactory is now available. Both JDK-based (default) and CGLIB are provided. CGLIB-based generation allows for proxies to be generated for all persistent classes, and not just ones that implement an interface.
- Change in behavior of property 'useAutoCommit="1"' in jdbc-connection-descriptor detailed info can be found in reference guide of the repository file
- ConnectionFactoryManagedImpl is declared deprecated. Now OJB automatic detect the running JTA-transaction and suppress critical method calls on the used connection
- Removed deprecated SequenceManager implementation SequenceManagerMySQLImpl
- Remove unused method #setReferenceFKs from SequenceManager interface
- ODMG-api: Method behavior of ImplementationImpl#setImplicitLocking(boolean) changed. Now this method set the global property for 'implicitLocking'. Old version only changed the implicit locking behavior for the current used transaction, this is moved to TransactionExt#setImplicitLocking
- Internal used OJB_HL_SEQ table changed. Remove of deprecated column. If the SequenceManagerHighLowImpl was used and problems occur after upgrade, please drop and recreate this table without removed column
- Cleanup naming of 'PersistentField' implementation classes: Remove deprecated classes, rename implementation classes, declare all ...ImplNew classes as deprecated. See OJB.properties file.
- Upgraded ANTLR to v2.7.5 (OQL and JDOQL parser classes have been re-generated)
- Upgraded commons-dbcp to v1.2.1
- Upgraded commons-pool to v1.2
- Upgraded commons-beanutils to v1.7
- Upgraded commons-logging to v1.0.4
- Upgraded commons-collections to v3.1
- Upgraded hsql to v1.8.0.2
- Upgraded Torque to v3.1.1
BUG FIXES:
- [OJB-18] - ODMG ordering problem with circular/bidirectional 1:1 references
- [OJB-25] - Inheritance (each subclass on separate table) PK problem with nextval SequenceManager
- [OJB-26] - JDBC-ODBC bridge problem
- [OJB-27] - [ODMG] Foreign key violation
- [OJB-29] - Infinite loop in case of refresh=true and cycles in references
- [OJB-40] - CallableStatement check doesn't work with maxDB
- [OJB-42] - MsSQLServer, auto-generated querry error (m:n relation)
- [OJB-44] - ReferenceMap$Entry keeps growing over period of application usage.
- [OJB-52] - KeyConstraintViolatedException during store
- [OJB-54] - ConnectionFactoryManagedImpl may try to use pool
- [OJB-55] - Getting foreignkeyField's FieldDescriptor is failing if the foreignkey field is defined in the base class
- [OJB-59] - Incorrect identity management in SequenceManagerNativeImpl because of wrong plate-forme settings
- [OJB-62] - addPathClass in QueryByCriteria does not consider inheritance
- [OJB-63] - Bug when query against objects mapped on multiple joined tables ("super"-references)
- [OJB-70] - Connection reset by peer: socket write error
- [OJB-76] - OJB MtoN implementor failes to work properly with composite M&N keys that have some fields common.
- [OJB-77] - PlatformMsSQLServerImpl.getLastInsertIdentityQuery creates incorrect SQL statement to pull the identity from the last
KNOWN ISSUES:
- Auto-Detection for insert/update objects checks to avoid DB queries the PK fields of the object. If at least one PK field is 'NULL' or if primitive field '0', OJB assume the object is new and needs insert. This will be configurable in next upcoming version. Workaround for PB-api: use method PB#store(Object obj, ObjectModification mod) to state update or insert.
- Batch handling doesn't work properly with optimistic locking. This will be fixed in version 1.1
- Subqueries are not extent aware. see QueryTest#testSubQueryAgainstExtents
- Managed Environment: When run OJB in managed environment and using PBStateListener, the call of PBStateListener#beforeClose(PBStateEvent event) is made twice when a PB instance was closed in a JTA-tx (for the first time when PB.close() was called in bean on the PB handle, second time when the JTA-tx completes)
- otm-api: The OTM API has a known caching issue and should not be considered for code used in production environments. The future of the OTM layer will be subject for discussion on the OJB developers list, if you are using it - please subscribe to ojb-dev and make your voice heard.
- Oracle9i platform: when using statement batching, there is a 2k limit on BLOB + 4k limit on CLOB.
----
---- Posted by Tetsuya Kitahata at January 1, 2006 05:11 PMhttp://www.apachenews.org/archives/000822.html
[ Category : Apache DB ] (PDF)(XML)
