Apache Object/Relational Bridge (OJB) is an Object/Relational mapping
tool that allows transparent persistence for Java objects against
relational databases.

The 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.


Reply via email to