Hi folks,
The OJB team is happy to announce that OJB version 1.0.4 has (finally)
been released and should be available right now at a mirror near you.
This is a feature and bug-fix 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.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]