changelog
progress of db4o development


Contents
    Milestones
    Minor features and bugfixes


Milestones
2001-06-07
version 1.10
- automatic activation on querying objects changed to preconfigured depth of 5, independent of the QBE example object, configurable globally and class-specific.
- additional ObjectContainer#activate(Object, depth) method to activate a tree of any size with one call.
- explicit commit() method for checkpoints.
- support for simple type wrappers in Object variables.
- support for multi-dimensional arrays.
- query evaluation mode changed to "contains" for arrays.
- support for Vector and Hashtable including "contains" queries.
- JDK 2 specific: 
   - support for all Collection classes including "contains" queries.
   - support for private or parameterised constructors.
   - support for inner classes.
- ObjectCallback methods to allow code execution upon storage events. Examples of use: cascaded delete, cascaded copy and cascaded update.
- Configuration interface for 
   - refactoring classnames and fieldnames.
   - customized activation depths.
   - customized update depths.
   - activation events.
   - translation of objects on storage and instantiation.
   - configurable storage of transient members.
   - ignoring fields in queries.
- automatic schema evolution now allows to change the data type of members.
- db4o used to store and restore static members and use them for query evaluation. Fixed.
- extreme regression tests allowed to find and fix some rare bugs that could occur on the deletion of objects.
- Java Web Start problem fixed.
- additional security handling to prevent user application code to open a database file twice.
- performance improvements > 10%.
- regression test code is included with the download.
2001-01-31
version 1.0
- completely revised interface.
- Smart reflection allows the storage of objects without any modifications to their class files.
- A JDK 2 version enables the storage of private and protected members.
- Unicode version.
- A dedicated EPOC version contains a workaround for an EPOC JVM bug.
- members of class Object are stored.
- Interface members are stored.
- storage wrapper for java.util.Date
2000-12-11
version 0.40
- fully revised architecture and file format.
- x50 performance boost.
- x50 decrease of database file size.
- x50 decrease in resource consumption.
- delete() is implemented.
- 20 samples allow a quick start.
- messages are off and can be turned on with echo()
2000-10-22
version 0.20
- The new db4o JDBC interface completely exports and imports object data. The mechanism allows the migration of db4o data in case of future changes to the db4o file format. The jdbc documentation provides further information.
- The provided sourcecode packages were revised.
- Fixes 0.11 to 0.13 are included.
2000-09-18
version 0.10
- db4o was repackaged. All classes are now found in com.db4o.*.
- The interface naming was streamlined. 
PersistentHandle >> DbHandle. 
getPersistentHandle() >> db().
- db4o is now distributed as a jar.
- Navigation through member links is now possible with PersistentObject.db().activate()
- Instantiation logic was rewritten to support this feature.
- The storage format was improved for less space consumption and better performance.
2000-08-20 - Support for inheritance.
- Test routines in com.db4o.test.Test.java ensure a consistent stability of implemented features.
2000-08-08 - db4o opens the public mailing list db4o@egroups.com.
2000-08-05 - Support for arrays.
- The schema updating mechanism is started automatically with every start of the engine.
2000-07-18 The indexing mechanism is implemented with a red-black binary tree.
A test with the benchmark database showed an improvement by more than 500%.
2000-07-08 - The read algorithm now only reads objects, which are actually needed.
- First concept of the db4o query interface
2000-07-06 First JDBC import run on an SQL database with 1 MB size. Large amounts of data are now available for testing and performance analysis.
2000-06-30 - Support for Double, double, Float, float, Short, short, Character, char, Boolean, boolean, Byte, byte.
- Rewrite of YapVariables to implement a clean structure instead of two objects per data type.
2000-06-23 Support for Long, long, Integer, int, Boolean and boolean.
2000-06-17 - Update is implemented.
db4o.set(object) forces a depth(1) equality check on all members.
- Address indirection is implemented.
see YapProxy for details
- Extensions of com.db4o.collection.Comparator avoid reflection in comparisons.
2000-06-15joss is renamed to db4o. Thanks to Christian Runte for the suggestion.
2000-05-28get() and set() are implemented. Java classes with String- and Object-Members can be stored and retrieved.
2000-05-28Begin of this log.
2000-04-04 Thanks to Brian Lee Price for the contribution of ideas to yap.
2000-01-01The first line of code.


Minor features and bugfixes
2001-06-15
version 1.11
The QBE query optimizer could omit certain results in certain n-to-n relationship- and data-combinations. Fixed.
2001-03-06
version 1.04
- Db4o.use(javax.jnlp.JNLPRandomAccessFile) was implemented to allow the usage of db4o within a Java Web Start application.
2001-02-26
version 1.03
- ObjectContainer.get(null) would result in a NullPointerException if empty classes were present in the data file. Introduced in 1.01. Fixed.
- Enhanced benchmark code.
2001-02-09
version 1.02
- A file memory leak introduced in 1.0 caused continuous growth of the data file on updates. Fixed.
- Performance improvement with the great help of a coding contest in the German Java newsgroup de.comp.lang.java.
2001-02-02
version 1.01
- Unicode versions only: String query-by example would not produce any results. Fixed.
- ObjectContainer.get(null) dump was accelerated and is now independent of possible constructor side effects.
2000-12-16
version 0.43
Fix for simple type array bug and array update.
2000-12-14
version 0.42
- delete() inconsistency and crash fixed
- Db4o.delete(null) no longer crashes.
- numerous SQLImport() fixes
2000-12-12
version 0.41
Performance update only.
2000-11-15
version 0.22
Javadocs were generated for version 0.21 to satisfy the request from the mailing list.
2000-10-25
version 0.21
The finalize() function in Db4o now enforces that the engine is shut down correctly with Db4o.down(). System.runFinalizersOnExit(true) is set for the moment, in spite of  the potential errors on some VMs. A better method will be implemented in the near future.
2000-10-20
version 0.13
- A second call to Db4o.set() would not update descendant values. Fixed.
- A workaround for an EPOC JDK bug is included.
2000-10-08
version 0.12
Query evaluation fix. Ancestor values are no longer ignored.
2000-10-06
version 0.11
- Major speed enhancement
- Fix to automatic schema recognition. Descendant changes no longer produce exceptions.
2000-08-28 - String updating reenabled.
- Test routine now includes update and more array features.
- Null values are possible in arrays.
- A file format change was necessary for arrays.