@version $Id: release-notes.txt,v 1.33 2004/01/17 17:02:07 thma Exp $
========================================================================
ObJectRelationalBridge -- Bridging Java Objects and Relational Databases
========================================================================

ObJectRelationalBridge (OJB) is an Object/Relational mapping tool that
provides transparent transactional persistence for Java Objects against
relational databases. OJB provides ODMG and JDO interfaces.

---------------------------------------------------------------------
Release 1.0
---------------------------------------------------------------------

NEW FEATURES:
 -

NOTES:
- No support for HSQLDB 1.7.2RC1 yet
- No support for Torque 3.1 yet
- Add new PersistenceBrokerFactory implementation for use in managed environments when only the
PB-api was used and participation in JTA transaction via Synchronization interface is needed.
- Add new configuration property 'autoSync' to ObjectCacheDefaultImpl. Used to enable a simple
synchronization mechanism to keep cache in sync with DB

CHANGES:
- Add object-cache tag in standard jdbc-connection-descriptor in repository_database.xml
to enable new 'autoSync' property of ObjectCacheDefaultImpl for all operations made by
this DB connection
- Allow infinite lifetime of cached objects in ObjectCacheDefaultImpl
- now using ANTLR 2.7.2 and Unicode support in OQL queries
- now using ANT 1.6.0


BUG FIXES:

Please refer to our Bug tracking site (http://issues.apache.org/scarab/servlet/scarab/)
under http://issues.apache.org/scarab/servlet/scarab/issues/id/OJBxxx
to see details for a bug with id OJBxxx.

- fix bug in MetadataManager, when 'per thread changes' is enabled and many different
DescriptorRepository instances were used, gc can't collect unused instances because
StatementManager doesn't release references to used DescriptorRepository instances.

- fix bug in ObjectCacheDefaultImpl, it doesn't make sense to use a soft reference
for the object wrapper of the cached object. Use a softreference for the cached
object instead

- fix bug in CacheDistributor (internal used ObjectCache implementation), each CacheDistributor
instance have to held ObjectCache instances for the associated PersistenceBroker instance

- fix documentation bug in ObjectCacheDefaultImpl, property 'timeout' use
seconds instead of milliseconds

- fix bug in new DList implementation (DListImpl_2), materialization of objects
failed when DList instance itself was persisted (using db.bind(...)) and
re-loaded within tx, but iteration over the list values was done outside of the tx

- The bogus ODMG Distributed Lockmanagement feature has been replaced by a new
  Servlet based LockServer. Transaction isolation should now work properly even
  accross a cluster of JVMs. 

KNOWN ISSUES:


---------------------------------------------------------------------
Release 1.0 rc5
---------------------------------------------------------------------

This is the last planned rc before the 1.0 release. If there are no major
bugs this release will be relabled as 1.0 after two weeks.

NEW FEATURES:
- With this release we are feature complete for the 1.0 release!
For 1.0 you should not expect more features to be added.

NOTES:
- slight changes in repository.dtd, OJB.properties were made

- internal kernel interface method signature changed:
in JdbcAccess two method signatures change
in StatementManagerIF one method signature change
These changes are necessary to fix a "design bug" in handling
of jdbc type metadata. See discussion on dev-list "[VOTE] Design bug fixed - check in?"

- ObjectCache implementation classes constructor arguments change. We
now pass a Properties argument too. Allows to set configuration properties
for each ObjectCache instance

- changed the JDORI plugin to now use the latest 1.0.1 version of the JDO reference implementation.

- OJB is now very strict in handling RsIterator instances. RsIterator is
bound very closely to the used PersistenceBroker instance.
Thus if you do a
PersistenceBroker#close
PersistenceBroker#commitTransaction
PersistenceBroker#abortTransaction
call, the current <tt>RsIterator</tt> instance resources will be cleaned up automatic
and invalidate current instance.

CHANGES:
- add possibility to declare ObjectCache implementation on class-descriptor
and jdbc-connection-descriptor level (means per class and per database connection) too

- add a new interface called org.apache.ojb.odmg.TransactionExt
to make additional proprietary methods available for user by
casting org.odmg.Transaction to TransactionExt

- behaviour of org.odmg.Transaction#checkpoint() changed. Now the
database transaction was commited when checkpoint was called, seems this
is more in unison with ODMG spec:
" Calling checkpoint commits persistent object modifications made within the
transaction since the last checkpoint to the database."
If you want to flush persistent object
modifications made within the ODMG transaction to the underlying database
transaction without commit the changes (old behaviour of checkpoint()),
please cast Transaction to TransactionExt and use new method flush().

- make odmg collections pluggable via OJB.properties file

- Restructuring and further enhancements of the documentation.


BUG FIXES:

Please refer to our Bug tracking site under
http://scarab.werken.com/scarab/issues/id/OJBxxx to see details for a bug
with id OJBxxx.

- fix ClassLoader problem when merging DescriptorRepository instances

- fixed the JDORI problems with loading object via extend based queries.
  now objects are brought under JDO control and equipped with a statemanager
  in the load process.

---------------------------------------------------------------------
Release 1.0 rc4
---------------------------------------------------------------------

NEW FEATURES:
- With this release we are feature complete for the 1.0 release!
For 1.0 you should not expect more features to be added.
- added a XDoclet OJB Module that allows to generate repository.xml
  and DDL from tagged Java sources to the "contrib" distribution.
- added an OJB Taglib that allows to use OJB directly from JSP pages
  to the "contrib" distribution.

NOTES:
- update used xdoclet version in 'ejb-examples'
(see section deployment/'Build the OJB sample session beans')
to version 1.2xx

CHANGES:
- Enhance MetadataManager, add new methods, simplify handling
of different persistent object metadata profiles (means different
org.apache.ojb.broker.metadata.DescriptorRepository instances) at
runtime
- Provide a PUBLIC doctype declaration for the repository.xml
- add a convenience Constructor to QueryByCriteria that
  builds a query selecting all instances of a class
- add isClosed() method to PersistenceBroker interface to
check if a broker instance was already closed.
- make OJB more strict in handling closed PersistenceBroker
instances. Now it's not any longer possible to use closed
PersistenceBroker instances.
- Package ...metadata.fieldaccess refactored/changed. Now
all PersistentField implementations support 'nested fields'.
See new entries in OJB.properties file.
- added new sections to documentation


BUG FIXES:
- fix several bugs in documentation
- fixed writing to memo columns in MS Access
- fixed optimistic locking problem
- fixed jdo tutorial setup

Please refer to our Bug tracking site under
http://scarab.werken.com/scarab/issues/id/OJBxxx to see details for a bug
with id OJBxxx.


---------------------------------------------------------------------
Release 1.0 rc3
---------------------------------------------------------------------

NEW FEATURES:
- With this release we are feature complete for the 1.0 release!
For 1.0 you should not expect more features to be added.


NOTES:
- Intern table OJB_HL_SEQ (used by SequenceManagerHighLowImpl)
  has changed! Now need an additional column 'VERSION' of type INTEGER
  When updating from earlier version drop/reinstall table with additional field
- PersistenceBrokerAware interface changed, methods beforeStore and afterStore
  split into xxxInsert/xxxUpdate methods, all methods now expect an PersistenceBroker
  argument
- PersistenceBrokerListener interface replaced by PBStateListener
- ManageableCollection interface add new method afterStore(...)
- Remove obsolete method 'invalidate(Identity oid)' from PB-api


CHANGES:
- enhanced PB-api listener classes
- unified handling of events in PB-api
- adapt sequence manager implementations using 'long' instead 'int' keys
- SequenceManagerHighLowImpl now use optimistic locking to support sequencing
  across different JVM (except j2ee conform app server, see sequence manager doc).
- Add new attribute 'autoNaming' to sequence manager implementations. Now
  the implementations allow to switch on/off auto-generating of sequence names
- merging the three package o.a.ojb.broker.ta, .singlevm and .server into
  a new package o.a.ojb.broker.core

BUG FIXES:
- fixed problems with the JDO FieldManager to work with 1:1, 1:n and m:n
  associations
- OJB143, OJB152, OJB153, OJB156, OJB158, OJB159, OJB161

Please refer to our Bug tracking site under
http://scarab.werken.com/scarab/issues/id/OJBxxx to see details for a bug
with id OJBxxx.


---------------------------------------------------------------------
Release 1.0 rc2
---------------------------------------------------------------------

NEW FEATURES:
- With this release we are feature complete for the 1.0 release!
For 1.0 you should not expect more features to be added.


CHANGES:
- improve cache package. Now the used cache is no longer a singleton.
- Add CacheFilter interface to allow easy pre-filtering of cache methods.
- Add Support for anonymous fields
- Several improvements to SQL generation
- improved handling of optimistic lock exceptions in ODMG


BUG FIXES:
- lots

---------------------------------------------------------------------
Release 1.0 rc1
---------------------------------------------------------------------

NEW FEATURES:
- With this release we are feature complete for the 1.0 release!
For 1.0 you should not expect more features to be added.


CHANGES:
- improved handling for non-distributable jars
- MetadataManager: new methods, allow merge of new ConnectionDescriptor and RepositoryDescriptor
(read from any repository file at runtime) with the existing ones.
- add custom attribute support for DescriptorRepository and JdbcConnectionDescriptor.


BUG FIXES:

- repaired tutorial applications
- fixed several bugs in the JDO RI plugin
- compilation works for jdk 1.2 and 1.3 again
- connection problem when using PBKey only with jcdAlias name (e.g. PBKey("myAlias")),
now the user and password set in the repository file was used.
- add jcdAlias support for tutorial 1+2


More information is available at http://db.apache.org/ojb

Copyright (c) 2000 - 2003 Thomas Mahler, et al.
