 | 
| | | Version 0.9 February, 15 2001 Version 0.8.11 December, 15 2000 Version 0.8.10 November, 29 2000 Version 0.8.9 November, 3 2000 Version 0.8.8 July 20, 2000 Version 0.8.7 June 2, 2000 Version 0.8.6 May 24, 2000 Version 0.8.5 May 12, 2000 Version 0.8.4 May 5, 2000 Version 0.8.3 April 28, 2000 Version 0.8.2 April 7, 2000 Version 0.8.1 April 5, 2000 Version 0.8 March 27, 2000
Version 0.9 February, 15 2001
XML: Adding a new feature for handling all types of content and not only TEXT content (Arnaud)
XML: Change the read method name for arrays (Arnaud)
(bug reported by thebuledirt@yahoo.com)
XML: Several bug fixes in the SourceGenerator concerning the attribute string value (Arnaud)
XML: Added improved grouping support. Grouping support is not finished,
but is definately improved over Castor 0.8.11. 1st-level choice is
now supported. (kvisco)
XML: Added enumerate() method to generated enumeration types. (kvisco)
XML: Added support for specifying certain properties of the Introspector, such
as whether primitives should be treated as attributes or elements, and
default naming conventions. (kvisco)
XML: Updated mapping.xsd_sg to be compliant with latest XML Schema. (kvisco)
XML: Added support for DOM in Marshaller.java and Unmarshaller.java
(Andrew Fawcett andrew.fawcett@coda.com)
XML: Added setPolymorph method to Marshaller.java. This can be used to force all field values
to be marshalled as their field types rather than their instance types.
(Andrew Fawcett andrew.fawcett@coda.com)
XML: Changed the default behavior of the Xerces Serializer to preserve space
by default.
(Sebastien Gignoux )
XML: Added support for restriction in simpleContent and enhanced complexType support
(Arnaud )
XML: Added the command-line option '-nomarshall' which aims at preventing the
generation of the marshalling framework specific methods (marshall, unmarshall, validate)
(Arnaud )
XML: Added setNSPrefixAtRoot method. When used in conjunction with setNamespaceMapping this
will insert the namepsace declarations at the root node.
(Andrew Fawcett, andrew.fawcett@coda.com)
XML: Fixed collection handling for introspected class.
(Sebastien Gignoux )
XML: Bug fix for using addXxx methods.
(Fix submitted by Michael Thyen )
XML: Bug fix in the handling of 'Map' collection. Now we use the abstract
'Map' interface rather than 'HashMap'.
(Fix submitted by Ron Smith )
XML: Added some logic to avoid unnecessary use of 'xsi:type' when
marshalling. The logic check if Castor is able to find the proper java
class to instantiate from the mapping file information.
(Sebastien Gignoux )
XML: Solved a performance bug for unmarshalling of primitive type. We don't
try anymore to generate a Class Descriptor for primitive type as we know
that not only it fails but it is deadly slow (due to getMethods()
call). Now, unmarhsalling speed is nearly only bounded by the speed of
the parser.
(Sebastien Gignoux )
XML & JDO:
Check that an XML mapping file do not declare more identity attributes
for a given class than there are field elementsdefined for that
class.
(Patch submitted by Gabriel Richard Pack )
XML & JDO:
Regenerated data objects in the org.exolab.castor.mapping.xml package,
using an updated version of schema (Nov 2000).
XML & JDO:
Now the return type of get-method must be a super-class of or equal to
the class declared in mapping.xml (was: sub-class).
Note, that now "arraylist" can be used as a value of "collection"
attribute in mapping.xml
JDO: Bug fix when castor closed Connection during db.close() (before the end of
transaction) and the got new Connection during beforeCompletion(),
which remains open after the end of transaction.
(Solution submitted by Terry Child )
JDO: Castor JDO should now behave shamelessly in a multi classloader context.
This is especially relevant when used in a BMP/CMP environment where the
EJB container might assign a ClassLoader instance per set of Beans, or
might attach a different classloader for each new transaction.
(Sebastien Sahuc )
JDO: Added an AutoStore option to JDO. Method of setAutoStore and isAutoStore
are added into the jdo.Database interface. If autoStore is set, Castor
will try to create or update** all reachable object if it is not
exist in the transaction, and store all reachable modified object at the
commit time. If autoStore is not set, Castor will only create/update/store
dependent object, and related objects must be created/update explicitly.
(* update is used for long transaction only, all modified object
created/loaded from the short transaction will be store properly
at commit time)
JDO: Added "trigger" mode for SEQUENCE key generator.
(Vitaly Shishakov )
JDO: Added support for MySQL auto_increment columns in IDENTITY key generator
(Oleg Nitz, thanks to Alain RAVET for idea
and to George Stewart for help).
JDO: Improved support for BLOB and CLOB values. Now you can get them as
java.io.InputStream and java.sql.Clob, respectively, see "types.html"
for details (oleg).
JDO: Solved problem of NULL dirty checking with Oracle (oleg).
JDO: Added support for BIGINT sql type in key generators (oleg).
JDO: Bug fix in the handling of classloader in the mapping loader (reported
by brian rogers ).
JDO: Added "serializable" as a supported field type. Require BLOB support in the
database. (Thomas Yip )
JDO: Merged JDO branch, "castorone", into the main branch.
JDO: Merged: Store cycle during transaction "prepare" state is split into
preStore and store cycles. With the new addition cycle, dependent object
using key-generator is stored properly. It also avoid unnecessary update
SQL statements execution. (Thomas Yip )
JDO: Merged: Added markModification in TransactionContext. It enable a
more flexible way to mark an object dirty. (Thomas Yip )
JDO: Merged: RemoveRelated is added in LockEngine. It automatically removes the
reference of the deleted object in other related object. It protect
cache consistency and avoid some ObjectNotFoundException due to
users' errors. (Thomas Yip )
JDO: Merged: Added Multiple Primary Keys support. (Thomas Yip )
JDO: Merged: Added Many-to-Many relationship support. (Thomas Yip )
JDO: Merged: Added Lazy loading for "collection" support. (Thomas Yip )
JDO: Merged: Improved dependent object support. (Thomas Yip )
JDO: Merged: Improved the in-memory locking architecture and stablity. (Thomas Yip )
JDO: Merged: Cleaned up excessive ExceptionImpl classes. (Thomas Yip )
JDO: Merged: Support of Object[] as a collection type is temporarily removed.
(Thomas Yip )
JDO: Merged: Support of custom ClassDescriptor for JDO side is no longer supported.
(Thomas Yip )
DAX: Merged: Tempoarily removed DAX. To be reworked and merged into JDO
(as new type of data-store). (Thomas Yip )
DSML: Add a more detailed policies :
* NewAttrOnly, which implies that new attributes are created according
to the DSML, but attributes that already have a value in the ldap are
not updated;
* UpdateOnly, which mean that DSML attributes that do not already exist
in the Ldap are not created.
Submitted by Marc-Antoine Parent
DSML: An ASCII string encoding bug is fixed.
Submiited by Marc-Antoine Parent
Version 0.8.11 December, 15 2000
XML: Updated Schema syntax and some of the Schema Object Model to support
the W3C XML Schema Candidate Release. (kvisco)
XML: Allow the use of uninitialized collection. Castor will instiate a new
collection of the proper type when necessary. (seb)
XML: Added #setResolver method to Marshaller, thanks to George Stewart for
pointing out to me that I neglected to add this method. (kvisco)
XML: Changed name of xml element in the mapping.dtd to bind-xml. This change
won't effect any existing mappings yet, because I've added backward
compatibility support. (kvisco)
JDO: For HIGH/LOW key generator the paramater "global" has been added, it gives possibility
to generate globally unique keys (Oleg Nitz).
JDO: SAP DB driver, improved support for MySQL (Oleg Nitz)
JDO: Added possibility to close OQL queries in order to release resources (Oleg Nitz)
Version 0.8.10 November, 29 2000
XML: Made the collection name in the mapping file NOT case sensitive. (Seb)
XML: Added new validation flag for the marshalling framework in castor.properties
Changed the parser validation property to og.exolab.castor.parser.validation
(Arnaud)
XML: Added fix to Marshaller#isPrimitive to support BigDecimal, submitted
by Don Kleppinger. (kvisco)
XML: Added "-nodesc" flag to source generater to disable generation of
class descriptors. Suggested by George Stewart. (kvisco)
XML: Fixed a bug in the unmarshalling of array of primitive type when using mapping.
(Seb )
XML: Added feature to castorbuilder.properties to allow specifying a super
class of generated types (kvisco)
Version 0.8.9 November, 3 2000
JDO: SEQUENCE key generator for Interbase (contributed by Nic Wise ).
JDO: MySQL driver (contributed by Leonardo Souza Mario Bueno ).
JDO: Annoying type conversion problems solved:
- integer SQL type for Oracle now can be used for dependent objects
identities - before this caused type conversion error;
- timestamp SQL type can be used with Sybase - before dirty checking
failed;
- Database.load() now accepts identity value of the field type,
type conversion is performed correctly - before it was needed
to use the SQL type for Database.load(), but the field type
for OQLQuery.bind(). (Oleg Nitz)
JDO: Interbase driver (contributed by Terry Child ).
JDO: Added UUID key generator.
(contributed by Thomas Fach )
JDO: jdoBeforeCreate() callback method has been added to Persistent
interface. It is called during db.create() just before creating
object in the persistent storage (Oleg Nitz).
JDO: InstantDB driver (contributed by I. Burak Ozyurt ).
JDO: Replacing of extended object in the cache on load of extending object
implemented. jdoLoad signature changed. Now in jdoLoad you can request
reloading the object instance as an instance of an extending class.
You need some "type" field in the extended class, which determines
the correct extending class, see example in
src\examples\myapp\Product.java. (Oleg Nitz)
JDO: Now IdentityKeyGenerator works with Hypersonic SQL identities
(idea by Mark Delanoy )
JDO: Fixed bugs (contributed by Bill Reynolds )
- same OID for parent class instance and subclass instance
with the same identities causes cache corruption
- it is possible for a subclassed object to be reported as
non-persistable even if it has a legal mapping
- if you're using a class with the identity key generators and
no member fields, you get bad sql generated
JDO: Added support for LIMIT clause in OQL queries, currently for
PostrgeSQL only (contributed by Alexey Snisarenko )
JDO: Added JDO.setClassLoader(). (Oleg Nitz )
JDO: Fixed problem with Float/BigDecimal and Double/BigDecimal
type conversions. (Oleg Nitz )
JDO: Implemented algorithm of "bounded" dirty checking for long
transactions, it uses local timestamps and is works only
if the object is still in the cache at the end of the transaction.
See interface TimeStampable and Database.update().
(Oleg Nitz )
JDO: Changed HIGH/LOW key generator implementation: now holds lock
on the record in the sequence table until the end of the transaction
and doesn't use updatable ResultSets. (Oleg Nitz )
Fixed a gap in HIGH/LOW key generator implementation: with databases
that don't support "SELECT FOR UPDATE" (like Hypersonic SQL and
InstantDB) it was possible to get the same key values in two concurrent
transactions (Reported by George Stewart )
Now works in a separate connection, and commits changes to the sequence
table immediately.
JDO: Temporary fix to ClassLoader problem in EJB environment: application
classes are loaded using context classloader of the current thread.
(Oleg Nitz )
Misc: JDK 1.1 compatibility is back. (Oleg Nitz )
XML: Support for Bound Properties
XML: Added support for Pattern Facet
- currently works for string, integer, and long
(kvisco)
XML: Updated the Schema Object model to support the new Grouping syntax
- Groups are still not supported by the source code generator.
(kvisco)
XML: Updated Unmarshaller to support "empty" strings (kvisco)
XML: Added support for direct public field access for the Marshalling
Framework when no accessor methods exist. (kvisco)
XML: Fixed Marshaller#setMarshalAsDocument so that XML fragment marshalling
works again. This used to work, but changes to the serializers had
prevented this from working properly. Reported by Phil Grida. (kvisco)
XML: Fixed endless recursion bug when processing recursive element
declarations, reported by Chris Schaefer (kvisco).
XML: Added George Stewarts changes to give mappings higher priority than
generated descriptors
XML: Added Patrick Higgins changes to the javasource package to fix
support for abstract methods (kvisco)
XML: Added support for in-lines SimpleTypes (anonymous) for
attribute declarations (kvisco)
XML: Added support for in-lined SimpleTypes (anonymous) for
element declarations. (kvisco)
XML: Added Luis Arias upgrade for the maxOccurs attribute of elements
for the April xML Schema draft (kvisco)
XML: Added support for top-level annotations (kvisco)
XML: Made some changes in Unmarshalling code to handle "null" primitives.
Based on suggestions from Fabrice Gomez. (kvisco)
XML: Fixed a bug when Unmarshalling/Marshalling primitive Object wrappers
using dynamic-introspection. (kvisco)
XML: Changed some case-sensitive issues with the below mentioned Schema
syntax upgrade (kvisco)
XML: Update of the XML Schema syntax to the April 7th draft
(Remy Maucherat )
The following things in the April draft are supported :
- datatype -> simpleType
- type -> complexType
- the "source" attribute has been replaced by "base"
- the "fixed" attribute in an attribute element now is
part of the "use" attribute
- the "default" attribute, which is used to specify the default
value of an attribute, now is "value"
- the "minOccurs" attribute of an attribute element has been removed,
the attribute "use" has to be used instead. "use" can have the
following values : default, optional, required, fixed and
prohibited
- Info element is now Documentation
- maxOccurs = "*" is replaced by maxOccurs="unbounded"
(Andrew Fawcett)
XML: Java 2 types compatibility (Patrick Higgins)
XML: element support (Andrew Fawcett)
XML: decimal type support (Andrew Fawcett)
XML: Support xsi:type from XML Schema for Instances
(Remy Maucherat )
Version 0.8.8 July 20, 2000
XML: Added support for the Unmarshaller to automatically determine the Class of the
root element, based on a given Mapping, or ClassDescriptorResolver
XML: Added support for the "has" method for primitives in the generated source
XML: Added support for specifying the destination output directory for the
generated source code
XML: Added support for fixed attributes, this currently works for string
or integer values
JDO: Fixed bug: NULL value in database was read as 0 for Java wrappers
of primitive types (Long, Integer, etc.), now they are read as "null".
(Oleg Nitz )
JDO: Changed the inner SELECT syntax in MaxKeyGenerator to make it work
with Hypersonic SQL.
(Contributed by Santiago Arriaga )
JDO: Hypersonic SQL driver.
(Contributed by Santiago Arriaga )
JDO: Changed KeyGeneratorFactory interface for better perfomance:
now the target primary key SQL type is passed to the key generator,
and no type conversions are performed after the key is generated.
(Oleg Nitz )
JDO: Added support for attributes of application type and for nested
attributes. Assume that you have an attribute "balance" of
applicatation type "Balance" which has methods "getBigDecimal"
and "setBigDecimal", then you can write in mapping.xml
)
JDO: Small fix: now fields in mapping.xml may have no "sql" sub-element,
e.g. the field may be only for XML marshalling, other fields
may be persisted through JDO. (Oleg Nitz )
JDO: "CALL" OQL queries now work with Oracle stored functions
returning REF CURSOR (Oleg Nitz )
and PostgreSQL stored functions returning instance
(contributed by Rostislav Beloff )
JDO: Added type convertors BigDecimal <-> Boolean
(contributed by Markus Fritz )
JDO: Fixes multiple request of same object with DBLocked
(Oleg Nitz and Markus Fritz)
JDO: Changes to Persistent interface enable developer to use database
operations inside jdoStore, jdoCreate, jdoRemove.
(Oleg Nitz )
JDO: Cache control at JDO configuration and mapping file specification -
no-cache option, cache count limit, cache time limit, LRU removal
deamon (Thomas Yip )
JDO: Bug fix: for created objects fetch() returned oid instead of object
(contributed by Chris Stevenson )
JDO: SQL Date types handling is improved.
(Oleg Nitz )
JDO: Bug fix: small bugs w/ BETWEEN in parser...reported by Vladmir Sekissov.
()
JDO: fix string conversion to surround with ' and escape internal ' fix for
bug with like. ()
Version 0.8.7 June 2, 2000
JDO: Informix JDBC driver. (Contributed by Santiago Arriaga
)
JDO: SEQUENCE key generator now works with Oracle. It has a special
RETURNING mode for Oracle8i which is more efficient because
obtains the identity during INSERT, without any additional SQL queries.
(Oleg Nitz )
JDO: Added three paramaterized type convertors: Date<->Integer,
Date<->BigDecimal and Date<->String. The latter uses the SimpleDateFormat
patterns (e.g. char[MMM d, yyyy]). The others uses similar
but shortened patterns (e.g. numeric[YMDhmsS], which is equivalent
to "yyyyMMddhhmmssSSS" SimpleDateFormat pattern).
(Oleg Nitz )
JDO: Fixes to handling of dependent objects create/delete/modify during
transaction commit. (Oleg Nitz )
JDO: Added convertor from byte to short/integer. (Contributed by Harindranath P. R. Nair
)
XML: Identity field will now use XML name provided in mapping file.
XML: Marshaller will now accept both primitive and non-primitive types and apply the
proper conversion; no dropped in convertor used, so Date/byte conversion should
work as expected; added test case for type handling of XML. (Bug reported by
Eitan Suez )
Misc: Fixed security bug when running as an Applet. (Reported by Remus Pereni
).
Misc: Added support for Java 1.2 Collection by running the source generator with the
option '-types j2'. Vectors are used with 'j1' and ODMG 3.0 DArray with 'odmg'.
Version 0.8.6 May 24, 2000
XML: Added support in the Marshaller to specify whether or not to marshal
as an XML document, or just an XML fragment (default). Currently
the only difference is the XML declaration is printed when marshalling
as a document. I will add support for specifying the DOCTYPE. Of course
since a SAX 1.0 DocumentHandler doesn't allow this, DOCTYPE and
XML declarations will only be printed when a Writer is used.
XML: Added support in the unmarshaller for better inheritence checking.
If a FieldDescriptor is not found for an element, an attempt to
obtain ClassDescriptor will occur for the given element. If found,
another check will be performed to find a FieldDescriptor that
describes a field which is a superclass of type described by the
class descriptor. (see src/tests/xml/Inheritence.java)
JDO: Added support for paramaterized type convertors. Currently supported is boolean
to char convertor using T/F character values (e.g. char.01 or char.TF). More
convertors and parameter specification will be added in 0.8.7. (Oleg Nitz
)
JDO: Fixed bug when related object is null and SQL_OTHER type is passed to JDBC
driver; now properly passes type of identity field. (Reported by
Eitan Suez ).
JDO: Fixed bug with dirty checking that caused lock to not be acquired and object
to be deleted if modified, and now properly reporting modified value of object.
JDO: Fixed the way in which null fields are handled, so has/delete methods are called
if available, default value is used otherwise, setNull/wasNull are used on the
JDBC record.
JDO: Changed callback sequence. jdoRemove is now called on deleted objects,
unsetDatabase on objects that become transient (including those removes).
setDatabase is called whenever the object becomes persistent (that is,
used in a transaction) and passes the database to support lazy loading.
JDO: Fixed SQLTypes to pick up proper SQL type form field of type java.util.Date.
Fixed SQLEngine to use SQL type in some calls to setObject.
(Contributed by Donald Ball )
JDO: Added quoting to column and table names to support white spaces and keywords
(Only Postgres, Sybase and SQL Server).
Mapping: Added a match attribute for the xml element, this is used for allowing
better inheritence support. Setting this match attribute will restrict,
or extend the xml names matched by a given XMLFieldDescriptor.
Mapping: Added resetValue() method to field handler. This generally resets a field to
it's default value or empties a collection field.
Mapping: Date type no longer defaults to new date() when field is null, field is no
longer set to default when null. (Reported by Lincoln Spiteri
)
Mapping: Fixed mapping loader to complain if get/set methods are not found. Both are
required to be present, unless a collection field is used which only requires
a get method. (Reported by Lincoln Spiteri )
Mapping: Added convertor between String and character. (Reported by Donald Ball
)
Mapping: To fix problem with compiled class descriptors for XML and mapping file for
JDO not working together, mapping loading will not attempt to load class
descriptors. A permanent fix will be included in 0.9 or 1.0.
(Patiently reported by Andrew Ikon ).
Mapping: Fixed collection handler to work with arrays of any object type (e.g. strings).
Version 0.8.5 May 12, 2000
JDO: Remove enumerate collection type. Only get method is required to support
java.util collections, get/set methods to support arrays. Extended the
CollectionHandler interface with size() method to assist in validation.
JDO: Revised the CacheEngine towards dependency support, adding FIFO list to
determine order of object removal, simplifying the prepare stage. Objects
will now be removed from the database in the same order they were removed
by calling Database.remove().
JDO: Fixes to outer query expressions:
- JDBCQueryExpression fixed and tested with Access (Christopher
Elkins )
- OracleQueryExpression fixed not tested with Oracle
(Sebastien Sahuc )
JDO: Now using new OQL parser by default. Added support for is_defined/
is_undefined (IS NULL), BETWEEN and DISTINCT. (Nissim
)
JDO: Added convertor between java.sql.Date and java.util.Date
(reported by ).
JDO: Improved type convertion for key generators. MAX key generator now
should work with PostgreSQL. (Oleg Nitz )
JDO: Added support for stored procedures in OQLQuery. Now it is possible to
create queries of the form "CALL sp_something($) AS myapp.Product",
where sp_something is a stored procedure returning one or more
ResultSets with the same sequence of fields as Castor-generated SELECT
for the OQL query "SELECT p FROM myapp.Product p" (for objects without
relations the sequence is: identity, then all other fields in the same
order as in mapping.xml). (Oleg Nitz )
XML: Support for ODMG 3.0 DArray collection in the XML source code generator.
When running the source code generator with the FieldInfoFactoryODMG30
collection fields will use org.odmg.DArray as the collection type for
interoperability with OODBMS using the ODMG 3.0.
(Contributed by Frank Thelen )
XML: Added some namespace support to the XML Schema reader. It currently doesn't
properly handle namespace scoping as you go down the tree, so if you are
changing your namespace declarations for some reason on sub-elements it
probably won't work properly and you'll need to wait until Monday when I
finish it up.
XML: Fixed problem when using attributes that are of enumerated datatypes,
the types subpackage was not getting imported (reported by markd@lutris.com)
XML: Fixed problem when using enumerated datatypes with enumeration values
that contained Java keywords (reported by markd@lutris.com)
Misc: Support for Java 1.2 collections: Collection, Set, Map. Requires Java 1.2
to compile, but using reflection can be made to work on Java 1.1.
Version 0.8.4 May 5, 2000
XML: Fixed a ClassLoader issue with the ClassDescriptorResolver
XML: Added validation back into the generator sources
XML: Added some changes from Frank Thelen to allow subclassing FieldInfoFactory
XML: Fixed bug that occured when an enumeration uses uppercase values
XML: Fixed bug with using datatype
JDO: Where clause now supports:
- unary operators: +, -, abs, not
- binary operators: +, -, *, /, mod, ||, LIKE, >, >=, <, <=, =, !=, and,
- parenthesis: passed through to SQL as in OQL
- numbered parameters including user specified type support
(Nissim )
JDO: Fixed bug in Database when used as sychronized resource in a J2EE environment.
Calling close() will not rollback the transaction until the J2EE server has
completed two-phase commit and notified it. Database must be registerd with
a JTA transaction manager using the setTransactionManager option.
JDO: Fixed bug in key generator when using non-primitive value (e.g. Integer, String).
Previously SQLEngine create was never called, now it is called and object properly
recorded in transaction.
Mapping: Fixed bug that caused exception with inheritance, now inheritance works
correctly if classes are specified in proper order in the mapping file.
(Oleg Nitz )
Tests: Updated test cases, now includes test cases for key generators.
(Oleg Nitz , Arkin )
Version 0.8.3 April 28, 2000
JDO: New OQL query engine. Not used by default, see new methods in OQLQueryImpl
and package org.exolab.castor.jdo.oql.
JDO: Added support for null fields by calling the relevant setNull() method
when setting a null field. Does not apply to query parameters yet, does
not apply to identity fields.
JDO: Added key generators support. Implemented four algorithms:
"MAX" - generic "MAX(pk) + 1" algorithm;
"HIGH/LOW" - generic "HIGH/LOW" algorithm (extendible);
"IDENTITY" - "SELECT @@identity" for Sybase and SQL Server;
"SEQUENCE" - "SELECT nextval('..._seq')" for Oracle and PosgreSQL;
JDO: Added package org.exolab.castor.jdo.drivers which includes RDBMS specific
factories, query expressions and key generators. Added factories for DB2,
and SQL Server.
Misc: Added support for hasXXX()/deleteXXX() methods to determine if a value
exists when the value is a primitive (thus, cannot be null). Used by both
JDO and XML.
Misc: Fixed null pointer exception with collection handler. Deprecated
checkValidity on field handler (new validation code from XML will come
shortly).
JDO: Added and tested outer joins.
Persist: Added getIdentity() method to TransactionContext().
Misc: Modified the test harness to run from an XML test file. Added test case
for type handling (only null fields at the moment) and outer joins.
Version 0.8.2 April 7, 2000
JDO: Added experimental update() method to Database interface.
JDO: Fixed some minor glitches in support for exclusive and db-locked
access, documented the available access modes.
JDO: Fixed synchronization support, disabled checkpoint method.
Fixed bugs in handling of default field values.
JDO: Fixed circular exception problem in ObjectLock.release.
(Contributed by Jason Weistein )
Misc: Documented the locking options in Castor and concurrency support.
Added the three locking mode to all the test cases.
Version 0.8.1 April 5, 2000
XML: Fixed long->object conversion which suffered from a cut and paste bug
from the integer type.
XML: Added back inheritence support inside XMLClassDescriptor,
which was in MarshalInfo, but removed during the upgrade.
XML: Fixed bug with creating default XML name in XMLClassDescriptorImpl
XML: Fixed bug with unmarshalling primitive String types.
-- reported by Remy Maucherat and Kevin Burton
XML: Fixed bug with namespace support during marshalling of primitive
and immutable types
XML: Added back namespace support, which was temporarily removed during
the upgrade
JDO: Added Locked mode to provide locking at the database level, as
opposed to Exclusive mode which provides locking at the cache
level. Added support for loading/querying with a given access mode.
JDO: Improved concurrency for shared mode by eliminating write locks when
modified field is not marked as dirty.
JDO: Added isOpen method to database. Deprecated checkpoint.
JDO: Added preliminary support for controlling cache size and removing
objects from cache.
JDO: Fixed bug in bind( String) method of OQLQuery.
JDO: Fixed bug with modified exception not removing copy from cache.
JDO: Fixed bug with reusing queries.
Misc: Upgraded test cases to run inside JTF as a test harness.
Version 0.8 March 27, 2000
XML: support for IDREF/ID has been added back in
XML: fixed circular reference bug
- This was an indirect bug caused by a bug
in org.exolab.castor.util.Stack
XML: fixed bug in method naming when type is "ID"
XML: Updated the Source code generator to work with new Framework
- Note I currently removed validation support, this will be
back ASAP
- There is a known bug with using "binary" type...I'll have
this fixed ASAP also
XML: We are now one step closer to using the mapping files with
Castor XML. A lot of changes have gone into sharing the "descriptor"
framework between Castor XML and Castor JDO...I can't enumerate all
the changes in this log, but here are a few:
- MarshalInfo and MarshalDescriptor have been changed to
XMLClassDescriptor, and XMLFieldDescriptor respectively, and the
interfaces have changed so be careful
- We added the XMLFieldHandler
- Changed MarshalInfoResolver to ClassDescriptorResolver
JDO: Placed the ODMG API in the org.exolab.castor.jdo package,
to be included in the JavaDocs and to enable the introduction
of Castor (RDBMS) specific features.
JDO: Moved transaction handling into the Database interface, queries
are now created from the Database object, JDO servers at the
implementation factory.
JDO: Added preliminary support for many-many relations, improved
support for one-many relations, fixed bug in isModified with
relations.
JDO: Added support for pluggable SQL engines (PersistenceFactory),
listed in the Castor properties file and referenced from the
JDO configuration file, allowing each database configuration
file to select the most suitable engine.
JDO: Extended JDO configuration file to include engine name, plus
minor modifications to element and attribute names in DTD/Schema,
and documentation of the configuration file.
JDO: Upgraded to use QueryExpression to construct SQL query statements
in database specific syntax.
JDO: Implemented dirty checking on objects loaded with a shared lock.
Dirty checking performed on fields within UPDATE statement requiring
a single SQL operation to update/check dirtyness.
SPI: Added QueryExpression and KeyGenerator to the SPI. QueryExpression
is generated from PersistenceFactory. Added way to load factories
from the Castor properties file.
Persist: No longer supports identity changes.
Persist: Rollback of transaction no longer reverts object to their previous
state due to lock race condition that hampers efficiency. Eliminating
this feature improves concurrency with optimistic locks.
Misc: Documentation distribution includes API JavaDocs and JavaDocs for
all Java classes. Tarball/zip include just the API JavaDocs.
Web site has been revised accordingly and some links moved around.
Misc: Updated build.xml file now includes documentation in tarball and
zip, builds both API JavaDocs and all classes JavaDocs, and does
not include package.html files in JARs.
|