|  |  |  | License Codehaus OpenEJB OpenJMS OpenORB Tyrex

Old releases
General
Release 1.3
Release 1.3rc1
Release 1.2

Main
Home
About
Features
Download
Dependencies
Reference guide
Publications
JavaDoc
Maven 2 support
Maven 2 archetypes
DTD & Schemas
Recent HTML changes
News Archive
RSS news feed
Project Wiki

Development/Support
Mailing Lists
SVN/JIRA
Contributing
Support
Continuous builds
Prof. services

Related projects
Spring ORM support
Spring XML factories
WS frameworks

XML
XML

XML Code Generator
XML Code Generator

JDO
Introduction
First steps
Using JDO
JDO Config
Types
JDO Mapping
JDO FAQ
JDO Examples
JDO HOW-TOs
Tips & Tricks
Other Features
JDO sample JAR

Tools
Schema generator

Advanced JDO
Caching
OQL
Trans. & Locks
Design
KeyGen
Long Trans.
Nested Attrs.
Pooling Examples
LOBs
Best practice

DDL Generator
Using DDL Generator
Properties
Ant task
Type Mapping

More
The Examples
3rd Party Tools
JDO Tests
XML Tests
Configuration

About
License
User stories
Contributors
Marketplace
Status, Todo
Changelog
Library
Contact
Project Name

## Release notes

Releases

## Releases

For all releases prior to 0.9.6, the release notes can be found here.

# Release 1.3.2

Description: | Maintenance release
released: | March 29, 2011
managed by: | Werner Guttmann

## Changes

### Java enum handling

To persist an Java enum it needs to be converted to a string. To do so Castor previously called toString() method of the enum. This worked out well until the toString() method got overwritten by a user to provide localized messages to be displayed for the enum values. In such a case the localized message got written to the database which caused failures when entity was loaded from database again. By calling name() method to convert the enum value to an string this will not happen any more.

### Removed deprecated artefacts of CPA module

The following Interfaces, Classes, Methods and Properties that had been deprecated at previous Castor releases have been removed.

- | Class: org.exolab.castor.jdo.JDO
- | Property: org.exolab.castor.jdo.Database.ReadOnly
- | Property: org.exolab.castor.jdo.Database.Shared
- | Property: org.exolab.castor.jdo.Database.Exclusive
- | Property: org.exolab.castor.jdo.Database.DbLocked
- | Class: org.exolab.castor.persist.spi.Complex
- | Interface: org.exolab.castor.persist.Lazy
- | Class: org.castor.cpa.CPAConfiguration
- | Method: org.castor.jdo.util.JdoConfFactory.createDatabase(String, String, DataSource, Mapping)
- | Method: org.castor.jdo.util.JdoConfFactory.createDatabase(String, String, DataSource, Mapping[])
- | Method: org.castor.jdo.util.JdoConfFactory.createDatabase(String, String, Driver driver, Mapping)
- | Method: org.castor.jdo.util.JdoConfFactory.createDatabase(String, String, Driver driver, Mapping[])
- | Method: org.castor.jdo.util.JdoConfFactory.createMapping(String)
- | Method: org.castor.jdo.util.JdoConfFactory.createTransactionDemarcation()

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
3005 | 20100917 | Dennis Butterstein | Ralf Joachim | Use info classes at buildStatement() of SQLStatementLoad. Reporter: Dennis Butterstein | Enh. |  | JDO
3004 | 20100916 | Dennis Butterstein | Ralf Joachim | Use info classes at SQLStatementUpdate and SQLStatementDelete. Reporter: Dennis Butterstein | Enh. |  | JDO
3003 | 20100916 | Dennis Butterstein | Ralf Joachim | Created info classes that provide a view on mapping from database perspective. Reporter: Dennis Butterstein | Enh. |  | JDO
2997 | 20100907 | Ralf Joachim | Ralf Joachim | Removed jdo-extensions-it module. Reporter: Ralf Joachim | Enh. |  | JDO
2996 | 20100907 | Ralf Joachim | Ralf Joachim | Integrated tests of jdo-extensions-it into CPACTF. Reporter: Ralf Joachim | Enh. |  | JDO
2995 | 20100907 | Ralf Joachim | Ralf Joachim | Removed requirement to specify default mapping/configuration for CPACTF. Reporter: Ralf Joachim | Enh. |  | JDO
2994 | 20100906 | Ralf Joachim | Ralf Joachim | Added support to specify class and package mapping in jdo-conf. Reporter: Ralf Joachim | Enh. |  | JDO
2993 | 20100906 | Ralf Joachim | Ralf Joachim | Allowed definition of jdo-conf without XML mapping. Reporter: Ralf Joachim | Enh. |  | JDO
2990 | 20100906 | Ralf Joachim | Ralf Joachim | Changed handling of Java enums to call name() instead of toString() when converting to a string value. Reporter: Ralf Joachim | Enh. |  | JDO
2858 | 20100906 | Clovis Wichoski | Ralf Joachim | Fixed wrong priority for references to extended class hierarchy. Reporter: Clovis Wichoski | Bug |  | JDO
2957 | 20100819 | Dennis Butterstein | Ralf Joachim | Used select class hierarchy at SQLStatementLoad. Reporter: Dennis Butterstein | Enh. |  | JDO
2956 | 20100705 | Dennis Butterstein | Ralf Joachim | Removed mapping hack from cpactf-testcase 70. Reporter: Dennis Butterstein | Enh. |  | JDO
2954 | 20100705 | Dennis Butterstein | Ralf Joachim | Added ability to handle joins to current class hierarchy. Reporter: Dennis Butterstein | Enh. |  | JDO
2952 | 20100623 | Dennis Butterstein | Ralf Joachim | Used visitor pattern to uncouple the order of select-columns from the order of the resulset-columns. Reporter: Dennis Butterstein | Enh. |  | JDO
2948 | 20100623 | Dennis Butterstein | Ralf Joachim | Cleaned up code by removing QueryContext brownfields. Reporter: Dennis Butterstein | Enh. |  | JDO
2945 | 20100607 | Dennis Butterstein | Ralf Joachim | Implemented visitor pattern for SQL statements and started using it. Reporter: Dennis Butterstein | Enh. |  | JDO
2944 | 20100607 | Dennis Butterstein | Ralf Joachim | Adapted some classes to use CastorStatement / CastorConnection. Reporter: Dennis Butterstein | Enh. |  | JDO
2938 | 20100531 | Dennis Butterstein | Ralf Joachim | Minor code cleanup at key generator. Reporter: Dennis Butterstein | Enh. |  | JDO
2834 | 20100512 | Torsten Juergeleit | Werner Guttmann | Made the use of cycle breaker code in generated equals()/hashcode() methods configurable. Reporter: Jean-Marc Borer | Bug |  | XML
2746 | 20100512 | Jean-Marc Borer | Werner Guttmann | Fixed bug in CycleBreaker. Reporter: Jean-Marc Borer | Bug |  | XML
2896 | 20100501 | Ralf Joachim | Ralf Joachim | Prevented exceptions at shutdown of cache factories. Reporter: Ralf Joachim | Bug |  | JDO
2917 | 20100501 | Ralf Joachim | Ralf Joachim | Removed deprecated artefacts of CPA module. Reporter: Ralf Joachim | Enh. |  | JDO
2906 | 20100430 | Dennis Butterstein | Ralf Joachim | Used CastorConnection in SQLStatementUpdate. Reporter: Dennis Butterstein | Enh. |  | JDO
2890 | 20100330 | Dennis Butterstein | Ralf Joachim | Implemented first step of improvement of SQL statement classes. Reporter: Dennis Butterstein | Enh. |  | JDO
2879 | 20100220 | Ralf Joachim | Ralf Joachim | Use Java 5 enums for mapping. Reporter: Ralf Joachim | Enh. |  | All
2045 | 20100131 | Clovis Wichoski | Ralf Joachim | Polymorphism issues with ClassMolder.load(). Reporter: August Detlefsen | Bug |  | JDO
2874 | 20100131 | Ralf Joachim | Ralf Joachim | Reset resolvers only once after all ClassMolders are initialized. Reporter: Ralf Joachim | Enh. |  | JDO
2873 | 20100131 | Ralf Joachim | Ralf Joachim | Remove obscure debug flag from PersistenceCapableRelationResolver. Reporter: Ralf Joachim | Enh. |  | JDO
2871 | 20100115 | Ralf Joachim | Ralf Joachim | Fix DataObjectAccessException thrown in multi threaded environment at loading of extended entities because of wrong ClassMolder. Reporter: Clovis Wichoski | Bug |  | JDO
2870 | 20100113 | Clovis Wichoski | Ralf Joachim | Extend CPACTF for multi threaded tests. Reporter: Clovis Wichoski | Enh. |  | JDO
2864 | 20100107 | Udai Gupta | Ralf Joachim | Add SQL parser as created during GSoC 2008 to SVN trunc. Reporter: Ralf Joachim | Enh. |  | JDO
2866 | 20100107 | Ralf Joachim | Ralf Joachim | Update ant from 1.6 to 1.7.1. Reporter: Ralf Joachim | Enh. |  | All
2862 | 20100107 | Ralf Joachim | Ralf Joachim | Refactor handling of lazy collections. Reporter: Ralf Joachim | Enh. |  | JDO
2865 | 20100107 | Ralf Joachim | Ralf Joachim | Improve solution to prevent reference set to null during long transaction. Reporter: Ralf Joachim | Enh. |  | JDO
2863 | 20100106 | Ralf Joachim | Ralf Joachim | Wrap PreparedStatementMock with a dynamic proxy to be able to compile with Java 5 and 6. Reporter: Ralf Joachim | Bug |  | JDO

# Release 1.3.1

Description: | Maintenance release
released: | January 3, 2010
managed by: | Werner Guttmann

## Changes

### Moved connection proxies into new org.castor.cpa.persistence.sql.connection package

The entry in to enable connection proxies in properties file should now be:

    # True if proxy classes should be used for JDBC connections and prepared statements.
    # Defaults to true.
    #
    org.castor.cpa.persistence.sql.connection.proxies=false

### Castor XML and the use of regular expressions

If regular expressions are being used with Castor XML, Castor XML now throws a `IllegalStateException` when no regular expression engine id specified in a custom `castor.properties` file (using the `org.exolab.castor.regexp` property). Please check with the reference guide to see what regular expression engines are supported.

## Additions

### Added support for Atomikos transaction manager

You can configure Castor to use Atomikos transaction manager as follows:

    <transaction-demarcation mode="global">
       <transaction-manager name="atomikos" />
    </transaction-demarcation>

### Added support for named native queries at the class level

It is now possible to specify named native (SQL) queries at the class level:

    <class name="org.castor.cpa.test.test1503.Entity" identity="id">
        <description>Named native query entity</description>
        <map-to table="test1503_entity"/>
        <field name="id" type="integer">
            <sql name="id" type="integer"/>
        </field>
        <field name="name" type="string">
            <sql name="name" type="char"/>
        </field>
        <named-native-query name="nativeSelectEntity">
            <query>SELECT * FROM test1503_entity</query>
        </named-native-query>
    </class>

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
2861 | 20091231 | Clovis Wichoski | Ralf Joachim | Reference set to null during long transaction. Reporter: Clovis Wichoski | Bug |  | JDO
2784 | 20091228 | Ahmad Hassan | Ralf Joachim | Create junit tests for SQL class hierarchy. Reporter: Ahmad Hassan | Enh. |  | JDO
2856 | 20091129 | Clovis Wichoski | Ralf Joachim | Add support for LIMIT and OFFSET clause on sapdb/maxdb. Reporter: Clovis Wichoski | Enh. |  | JDO
2850 | 20091109 | Ralf Joachim | Ralf Joachim | Separate building of SQL statements for queries from SQLStatementLoad. Reporter: Ralf Joachim | Enh. |  | JDO
2849 | 20091109 | Ralf Joachim | Ralf Joachim | Remove DTX engine. Reporter: Ralf Joachim | Task |  | All
2833 | 200909028 | Udai Gupta | Udai Gupta | Enabled execution of CPACTF tests against HSQLDB. Reporter: Udai Gupta | Enh. |  | JDO
2836 | 20090910 | Ahmad Hassan | Ralf Joachim | Shift identity check from SQLStatementLoad to SQLEngine. Reporter: Ahmad Hassan | Enh. |  | JDO
2822 | 20090902 | Ralf Joachim | Ralf Joachim | Remove remaining artefacts of old castor persistence test framework after migration of all tests. Reporter: Ralf Joachim | Enh. |  | JDO
2237 | 20090902 | Udai Gupta | Udai Gupta | Refactor available tests to use the new castor persistence test framework. Reporter: Ralf Joachim | Enh. |  | JDO
2829 | 20090828 | Werner Guttmann | Werner Guttmann | Added a new property on SourceGenerator to allow specification of the desdtination for resource files generated during code generation (incl. SourceGeneratorMain, Ant task definition). Reporter: Stevo Slavic | Enh. |  | XMLGen.
2827 | 20090825 | Stevo Slavic | Werner Guttmann | Optimized code generation for Java 5 enums. Reporter: Stevo Slavic | Enh. |  | XMLGen.
2828 | 20090820 | Ahmad Hassan | Ralf Joachim | Move Database specific code from KeyGenerators to PersistenceFactory. Reporter: Ahmad Hassan | Bug |  | JDO
2724 | 20090815 | Ahmad Hassan | Ralf Joachim | Sequence key generator on MaxDB generates wrong command. Reporter: Ahmad Hassan | Bug |  | JDO
2799 | 20090815 | Ahmad Hassan | Ralf Joachim | Improve SQLStatementInsertCheck to incorporate all the exception handling for executeStatement method of KeyGenerators. Reporter: Ahmad Hassan | Enh. |  | JDO
2722 | 20090812 | Ahmad Hassan | Ralf Joachim | Add missing javadoc to KeyGeneratorTypeHandler interface and its implementations. Reporter: Ahmad Hassan | Enh. |  | JDO
2723 | 20090812 | Ahmad Hassan | Ralf Joachim | Add missing javadoc to KeyGenerator interface and its implementations. Reporter: Ahmad Hassan | Enh. |  | JDO
2812 | 20090810 | Ahmad Hassan | Ralf Joachim | Improve SQL Insert class hierarchy to treat Sequence NextVal as an Expression. Reporter: Ahmad Hassan | Enh. |  | JDO
2811 | 20090810 | Ahmad Hassan | Ralf Joachim | Move SQLStatementCreate to org.castor.cpa.persistence.sql.engine package. Reporter: Ahmad Hassan | Enh. |  | JDO
2810 | 20090810 | Ahmad Hassan | Ralf Joachim | Move common method to AbstractKeyGenerator and remove getStyle method from KeyGenerator Interface. Reporter: Ahmad Hassan | Enh. |  | JDO
2794 | 20090804 | Ahmad Hassan | Ralf Joachim | Build statements with Insert class hierarchy where no special syntax is required. Reporter: Ahmad Hassan | Enh. |  | JDO
2801 | 20090804 | Ralf Joachim | Ralf Joachim | Castor does not care on registered TxSynchronizable implementations when using global transaction demarcation. Reporter: Ralf Joachim | Bug |  | JDO
2791 | 20090803 | Ahmad Hassan | Ralf Joachim | Move buildStatement from SQLStatementCreate to Key Generators. Reporter: Ahmad Hassan | Enh. |  | JDO
2796 | 20090802 | Ralf Joachim | Ralf Joachim | Add query objects as created at GSoC 2008 to SVN trunc. Reporter: Ralf Joachim | Enh. |  | JDO
2783 | 20090802 | Ahmad Hassan | Ralf Joachim | Move executeStatementAfterInsert() method from SQLStatementCreate to AbstractAfterKeyGenerator. Reporter: Ahmad Hassan | Enh. |  | JDO
2694 | 20090802 | Udai Gupta | Udai Gupta | Migrating TC80 - TC83 from old to new CPACTF test suit. Reporter: Udai Gupta | Enh. |  | JDO
2782 | 20090731 | Ahmad Hassan | Ralf Joachim | Move executeStatementBeforeInsert() method from SQLStatementCreate to AbstractBeforeKeyGenerator. Reporter: Ahmad Hassan | Enh. |  | JDO
2790 | 20090731 | Ahmad Hassan | Ralf Joachim | Declare executeStatement Method in the KeyGenerator Interface. Reporter: Ahmad Hassan | Enh. |  | JDO
2769 | 20090730 | Ludovic Maître | Werner Guttmann | Fixed NPE problem at JInterface constructor (that was a result of fixing a Checkstyle warning). Reporter: Ludovic Maître | Bug |  | XMLGen
2781 | 20090730 | Ahmad Hassan | Ralf Joachim | Move executeStatementDuringInsert() method from SQLStatementCreate to SequenceDuringKeyGenerator. Reporter: Ahmad Hassan | Enh. |  | JDO
2780 | 20090730 | Ahmad Hassan | Ralf Joachim | Move executeStatementNoKeyGen() method from SQLStatementCreate to NoKeyGenerator. Reporter: Ahmad Hassan | Enh. |  | JDO
2776 | 20090729 | Ahmad Hassan | Ralf Joachim | Improve SQLStatementInsertCheck similar to SQLStatementUpdateCheck. Reporter: Ahmad Hassan | Enh. |  | JDO
2779 | 20090729 | Ahmad Hassan | Ralf Joachim | Create key generator implementation and factory that does not generate key. Reporter: Ahmad Hassan | Enh. |  | JDO
2778 | 20090729 | Ahmad Hassan | Ralf Joachim | Create abstract base classes for all key generators using same style. Reporter: Ahmad Hassan | Enh. |  | JDO
2789 | 20090729 | Ralf Joachim | Ralf Joachim | Wrong syntax and missing quotation to retrieve generated keys for PostGreSQL. Reporter: Ralf Joachim | Bug |  | JDO
2777 | 20090728 | Ahmad Hassan | Ralf Joachim | Improve SQL class hierarchy to support insert queries. Reporter: Ahmad Hassan | Enh. |  | JDO
2786 | 20090728 | Ralf Joachim | Ralf Joachim | SQLRelationLoader does not quote column and table names. Reporter: Ralf Joachim | Bug |  | JDO
2774 | 20090728 | Ahmad Hassan | Ralf Joachim | Add support for simple select queries to class hierarchy and use it at SQLStatementUpdateCheck. Reporter: Ahmad Hassan | Enh. |  | JDO
2772 | 20090728 | Ahmad Hassan | Ralf Joachim | Change logic for PostgreSQL to retrieve generated key at SequenceAfterKeyGenerator. Reporter: Ahmad Hassan | Enh. |  | JDO
2775 | 20090728 | Ahmad Hassan | Ralf Joachim | Rename SQLStatementLookup to SQLStatementInsertCheck. Reporter: Ahmad Hassan | Enh. |  | JDO
2773 | 20090728 | Ahmad Hassan | Ralf Joachim | Change logic for Oracle to use before instead of after key generator when neiter trigger nor returning is used. Reporter: Ahmad Hassan | Enh. |  | JDO
2771 | 20090727 | Ahmad Hassan | Ralf Joachim | Construct SQL SELECT Query inside SQLStatementUpdateCheck. Reporter: Ahmad Hassan | Enh. |  | JDO
2721 | 20090727 | Ahmad Hassan | Ralf Joachim | Split SequenceKeyGenerator into 3 implementations handling one of the styles before, during and after. Reporter: Ahmad Hassan | Enh. |  | JDO
2764 | 20090723 | Ahmad Hassan | Ralf Joachim | Move SQLStatementStore org.castor.cpa.persistence.sql.engine and rename to SQLStatementUpdate. Reporter: Ahmad Hassan | Enh. |  | JDO
2750 | 20090722 | Ahmad Hassan | Ralf Joachim | Delegate query construction from SQLStatementStore to separate class hierarchy. Reporter: Ahmad Hassan | Enh. |  | JDO
2720 | 20090722 | Ahmad Hassan | Ralf Joachim | Move differences of database engines from IdentityKeyGenerator to PersistenceFactory. Reporter: Ahmad Hassan | Enh. |  | JDO
2759 | 20090720 | Ralf Joachim | Ralf Joachim | Added support for Atomikos transaction manager. Reporter: Ralf Joachim | Enh. |  | JDO
2743 | 20090715 | Ahmad Hassan | Ralf Joachim | Delegate query construction from SQLStatementRemove to separate class hierarchy. Reporter: Ahmad Hassan | Enh. |  | JDO
2735 | 20090708 | Ahmad Hassan | Ralf Joachim | Build where condition of SQLStatementStore in getStoreStatement() method Reporter: Ahmad Hassan | Enh. |  | JDO
2734 | 20090703 | Werner Guttmann | Werner Guttmann | Fixed a regression issue with the XML code generator in the context of <complexType> restirctions. Reporter: umasankar | Bug |  | XMLGen
2019 | 20090629 | Torsten Juergeleit | Werner Guttmann | Added thread safety-ness to CycleBreaker class. Reporter: Torsten Juergeleit | Bug |  | XML
1940 | 20090612 | Ralf Joachim | Ralf Joachim | Fixed broken support for sequence key generator with trigger at PostgreSQL. Reporter: Tommie Gannert | Bug |  | JDO
2693 | 20090609 | Udai Gupta | Ralf Joachim | Migrated TC73, TC74 from old to new CPACTF test suite. Reporter: Udai Gupta | Enh. |  | JDO
2738 | 20090609 | Ralf Joachim | Ralf Joachim | Use only lower case table and column names in cpactf tests. Reporter: Ralf Joachim | Enh. |  | JDO
2692 | 20090607 | Udai Gupta | Ralf Joachim | Migrated TC70 - TC72 from old to new CPACTF test suite. Reporter: Udai Gupta | Enh. |  | JDO
2725 | 20090607 | Ahmad Hassan | Ralf Joachim | Remove support for PersistenceFactory.supportsSetNullInWhere(). Reporter: Ahmad Hassan | Enh. |  | JDO
2691 | 20090531 | Udai Gupta | Ralf Joachim | Migrated TC32 - TC37 from old to new CPACTF test suite. Reporter: Udai Gupta | Enh. |  | JDO
2733 | 20090531 | Ahmad Hassan | Ralf Joachim | Move check of failure reason from SQLStatementStore into a separate class. Reporter: Ahmad Hassan | Enh. |  | JDO
2690 | 20090528 | Udai Gupta | Ralf Joachim | Migrated TC25 - TC29 from old to new CPACTF test suite. Reporter: Udai Gupta | Enh. |  | JDO
2727 | 20090527 | Ahmad Hassan | Ralf Joachim | Remove synchronization of executeStatement() at SQLStatementStore. Reporter: Ahmad Hassan | Enh. |  | JDO
2730 | 20090525 | Ralf Joachim | Ralf Joachim | Migrated TC38 and TC39 from old to new CPACTF test suite. Reporter: Ralf Joachim | Enh. |  | JDO
2729 | 20090525 | Ralf Joachim | Ralf Joachim | Search method of SafeStack must be synchronized. Reporter: Bardouillet | Bug |  | XML
2728 | 20090524 | Ralf Joachim | Ralf Joachim | Migrated TC14 from old to new CPACTF test suite. Reporter: Ralf Joachim | Enh. |  | JDO
2718 | 20090523 | Ahmad Hassan | Ralf Joachim | Shift update of records of extended objects from SQLStatementStore to ClassMolder. Reporter: Ahmad Hassan | Enh. |  | JDO
2726 | 20090523 | Ahmad Hassan | Ralf Joachim | Remove synchronization of executeStatement() at SQLStatementRemove. Reporter: Ahmad Hassan | Enh. |  | JDO
2717 | 20090522 | Ahmad Hassan | Ralf Joachim | Shift Identity size check from SQLStatementStore to SQLEngine. Reporter: Ahmad Hassan | Enh. |  | JDO
2689 | 20090522 | Udai Gupta | Ralf Joachim | Migrated TC20 - TC24 from old to new CPACTF test suite. Reporter: Udai Gupta | Enh. |  | JDO
2699 | 20090521 | Werner Guttmann | Werner Guttmann | Changed the way Castor deals with regular expression (patterns) when no regular expression engine is defined. Reporter: Patrick van Kann | Bug |  | XML
2688 | 20090517 | Udai Gupta | Ralf Joachim | Migrated TC17, TC18, TC19 from old to new CPACTF test suite. Reporter: Udai Gupta | Enh. |  | JDO
2716 | 20090518 | Ahmad Hassan | Ralf Joachim | Separates the PrepareStatement functionality from executeStatement. Reporter: Ahmad Hassan | Enh. |  | JDO
2710 | 20090518 | Clovis Wichoski | Ralf Joachim | Enabled execution of new JDO test suite against SAPDB/MAXDB. Reporter: Ralf Joachim | Enh. |  | JDO
2715 | 20090517 | Ahmad Hassan | Ralf Joachim | Shift the SQLColumnInfo array contents to constructor. Reporter: Ahmad Hassan | Enh. |  | JDO
2687 | 20090517 | Udai Gupta | Ralf Joachim | Migrated TC15, TC15a, TC16 from old to new CPACTF test suite. Reporter: Udai Gupta | Enh. |  | JDO
2714 | 20090516 | Ahmad Hassan | Ralf Joachim | Shift the SQLFieldInfo array contents to constructor. Reporter: Ahmad Hassan | Enh. |  | JDO
2705 | 20090514 | Ahmad Hassan | Ralf Joachim | Prepare statement of SQLStatementRemove in a separate method. Reporter: Ahmad Hassan | Enh. |  | JDO
2709 | 20090514 | Clovis Wichoski | Ralf Joachim | Fixed ctf.jdo.tc1x.TestMultiPrimKeysOnly failing on MaxDB/SapDB. Reporter: Clovis Wichoski | Bug |  | JDO
1503 | 20090511 | Emir Causevic | Ralf Joachim | Added support for named native queries at the class level. Reporter: Werner Guttmann | Enh. |  | JDO
2707 | 20090511 | Ahmad Hassan | Ralf Joachim | Shift deletion of records of extended objects from SQLStatementRemove to ClassMolder. Reporter: Ahmad Hassan | Enh. |  | JDO
2019 | 20090510 | Torsten Juergeleit | Werner Guttmann | Added thread safety-ness to XMLClassDescriptorResolverImpl.DescriptorCacheImpl. Reporter: Torsten Juergeleit | Bug |  | XML
2704 | 20090510 | Ahmad Hassan | Ralf Joachim | Pass ID's array to constructor of SQLStatementRemove. Reporter: Ahmad Hassan | Enh. |  | JDO
2708 | 20090509 | Ralf Joachim | Ralf Joachim | Migrated TC38a from old to new CPACTF test suit. Reporter: Ralf Joachim | Enh. |  | JDO
2706 | 20090509 | Ahmad Hassan | Ralf Joachim | Shifted identity check from SQLStatementRemove to SQLEngine. Reporter: Ahmad Hassan | Enh. |  | JDO
2650 | 20090509 | Ralf Joachim | Ralf Joachim | Enabled testing against derby-embedded within eclipse by execution of ddl scripts through test framework before test execution. Reporter: Ralf Joachim | Enh. |  | JDO
2686 | 20090503 | Udai Gupta | Ralf Joachim | Migrated TC10 - TC13 from old to new CPACTF test suite. Reporter: Udai Gupta | Enh. |  | JDO
2699 | 20090429 | Werner Guttmann | Werner Guttmann | Fixed a problem related to handling of invalid values for boolean types. Reporter: Andrew Liu | Bug |  | XML
2685 | 20090421 | Ralf Joachim | Ralf Joachim | Updated Maven dependency for JTA to 1.1. Reporter: Werner Guttmann | Enh. |  | JDO
2674 | 20090331 | Werner Guttmann | Werner Guttmann | Added support for name spaces for <xs:union> during serialization using SchemaWriter. Reporter: Holger | Bug |  | XML
2677 | 20090330 | Werner Guttmann | Werner Guttmann | Removed restrictions that Castor XML supports only nine (9) constructor arguments in mapping mode. Reporter: Darrick Coleman | Bug |  | XML
2679 | 20090329 | Joao Schim | Werner Guttmann | Fixed problem related to the use of namespaces with any nodes (during marshalling). Reporter: Joao Schim | Bug |  | XML
2678 | 20090329 | Joao Schim | Werner Guttmann | Fixed problem related to the use of namespaces with any nodes. Reporter: Joao Schim | Bug |  | XML
2673 | 20090322 | Udai Gupta | Ralf Joachim | Fixed issue that caused Test87 of new CPA test suite fails on some systems. Reporter: Ralf Joachim | Bug |  | JDO
2648 | 20090319 | Udai Gupta | Ralf Joachim | Use ANSI outer join operators in query for Microsoft SQL engine. Reporter: Udai Gupta | Bug |  | JDO
2221 | 20090318 | Udai Gupta | Ralf Joachim | Fixed exception thrown by HighLowKeyGenerator on SQL Server 2005. Reporter: Brian Schlining | Bug |  | JDO
303 | 20090311 | Ralf Joachim | Ralf Joachim | Fixed bug that caused Castor to not save id of related object that uses key generator if it is detached. Reporter: Dan Daugherty | Bug |  | JDO
2669 | 20090304 | Ralf Joachim | Ralf Joachim | Separated responsibility of ConnectionFactory to create connections and initialize/hold other database related objects. Reporter: Ralf Joachim | Enh. |  | JDO
2665 | 20090228 | Ralf Joachim | Ralf Joachim | Moved connection proxies from org.castor.jdo.drivers to org.castor.cpa.persistence.sql.connection package. Reporter: Ralf Joachim | Enh. |  | JDO
2663 | 20090225 | Ralf Joachim | Ralf Joachim | Changed code generation for mapping.xsd from Java 1.4 to Java 5. Reporter: Ralf Joachim | Enh. |  | All
1073 | 20090222 | Ralf Joachim | Ralf Joachim | Added org.exolab.castor.types.Time <--> java.util.Long convertor. Reporter: Werner Guttmann | Enh. |  | JDO
2658 | 20090222 | Ralf Joachim | Ralf Joachim | Fixed bug in normalize() method of org.exolab.castor.types.DateTimeBase. Reporter: Ralf Joachim | Bug |  | XML
241 | 20090220 | Ralf Joachim | Ralf Joachim | Added test to verify that ObjectNotFoundException during load() releases in-memory read lock. Reporter: Levi Purvis | Enh. |  | JDO
2649 | 20090214 | Ralf Joachim | Ralf Joachim | Enabled execution of tests with derby. Reporter: Ralf Joachim | Enh. |  | JDO
2655 | 20090214 | Werner Guttmann | Werner Guttmann | Added SQL scripts for Derby. Reporter: Werner Guttmann | Enh. |  | JDO
1217 | 20090214 | Ralf Joachim | Ralf Joachim | Fixed wrong timestamps for same object having hierarchy when loaded by many referers. Reporter: Clovis Wichoski | Bug |  | JDO
2654 | 20090214 | Ralf Joachim | Ralf Joachim | Refactored handling of KeyGenerator and extracted ValueHandlers. Reporter: Ralf Joachim | Enh. |  | JDO
2651 | 20090211 | Peter Schmidt | Werner Guttmann | Extended SqlTypeInfos to support new conversion method. Reporter: Peter Schmidt | Enh. |  | JPA
2645 | 20090212 | Ralf Joachim | Lukas Lang | Set up cpactf tests running on Derby when building with Maven. Reporter: Lukas Lang | Enh. |  | JDO
2647 | 20090212 | Werner Guttmann | Werner Guttmann | Added registerDescriptor(ClassDescriptor) method to JDOClassDescriptorResolver interface. Reporter: Werner Guttmann | Enh. |  | JPA
2636 | 20090211 | Werner Guttmann | Werner Guttmann | Extended annotation processing framework to allow target aware processors and service (including base implementation). Reporter: Peter Schmidt | Enh. |  | JPA

# Release 1.3

Description: | Feature release
released: | February 11, 2009
managed by: | Werner Guttmann

## Changes

### Support for Ant as build tool dropped

For various reasons, support for Ant as build tool has been dropped altogether. Please switch to use Maven 2, with the relevant project-specific details available at here.

Please note that the code base still includes Ant build files. Please do not use them! Ant files in the trunk are in the process of being removed, though this will take us some time.

### *Configuration have been replaced by *Properties

The classes CoreConfiguration, XMLConfiguration and CPAConfiguration have been replaced by CoreProperties, XMLProperties and CPAProperties respectively. For backward compatibility we have kept the *Configuration classes and declared them deprecated. As we intend to remove *Configuration classes with next Castor release we encourage you to change your code to use *Properties instead.

## Additions

### New system property for specifying location of custom Castor XML properties

A new option has been added to specify the location of a custom Castor properties file by the means of a system property. This alters the sequence with which Castor XML searches for a custom properties as weil.

To specify the location of a Castor XML property file by using a system property, please use ....

    > java -Dorg.castor.user.properties.location=/home/user/user.properties

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
2630 | 20090205 | Joachim Grueneis | Joachim Grueneis | Marshaller performance - loadDefaultProperties Reporter: Michael McMaster | Enh. |  | XML
2614 | 20090205 | Joachim Grueneis | Joachim Grueneis | XML_NAMING configuration cannot be set programmatically Reporter: John Huss | Enh. |  | XML
2638 | 20090203 | Werner Guttmann | Werner Guttmann | Added JConstant class to J* class hierarchy. Reporter: Werner Guttmann | Enh. |  | XMLgen
2631 | 20090201 | Ralf Joachim | Udai Gupta | Improved new cpa test suite to be executed with Microsoft SQL Server. Reporter: Udai Gupta | Enh. |  | JDO
2184 | 20090126 | Ralf Joachim | Ralf Joachim | Renamed all *Configuration classes (such as XMLConfiguration, CPAConfiguration, ... ) to *Properties. Reporter: Werner Guttmann | Enh. |  | All
2629 | 20090125 | Ralf Joachim | Ralf Joachim | Added generation of files for jdo-conf.xsd with maven. Reporter: Ralf Joachim | Enh. |  | JDO
2628 | 20090124 | Ralf Joachim | Ralf Joachim | Added generation of files for cpactf-conf.xsd with maven. Reporter: Ralf Joachim | Enh. |  | JDO
2626 | 20090124 | Ralf Joachim | Ralf Joachim | Removed TC30 and TC31 from old test suite. Reporter: Ralf Joachim | Enh. |  | JDO
2625 | 20090124 | Ralf Joachim | Ralf Joachim | Added comments why tests are included/excluded in new test suite. Reporter: Ralf Joachim | Enh. |  | JDO
2624 | 20090124 | Ralf Joachim | Ralf Joachim | Fixed failing test TC203 of old Castor JDO test suite. Reporter: Ralf Joachim | Bug |  | JDO
2623 | 20090124 | Ralf Joachim | Ralf Joachim | Replaced references in .classpath from jar's of lib directory to jar's of maven repository using M2_REPO variable. Reporter: Ralf Joachim | Enh. |  | All
2622 | 20090121 | Allan Gillis | Werner Guttmann | Minor code cleanup. Reporter: Allan Gillis | Enh. |  | XML
2592 | 20090121 | Werner Guttmann | Werner Guttmann | Fixed a problem with primitive constructor-mapped fields in the context of 'null' vales (i.e. where the field was not present in the XML document). Reporter: No Matter | Bug |  | XML
2613 | 20090121 | Werner Guttmann | Werner Guttmann | Added a new option to specify the location of a custom Castor properties file by the means of a system property. Reporter: John Huss | Enh. |  | XML
2604 | 20081231 | Herve Boutemy | Werner Guttmann | Enhanced the code generator so that empty line will not be 'white-spaced'. Reporter: Herve Boutemy | Enh. |  | XMLGen.
2604 | 20081231 | Herve Boutemy | Werner Guttmann | Added methods to (Abstract)JClass to inject complete source code fragments. Reporter: Herve Boutemy | Enh. |  | XMLGen.
2607 | 20081230 | Herve Boutemy | Werner Guttmann | Removed OrderedHashMap and replaced its usage with java.util.LinkedHashMap. Reporter: Herve Boutemy | Enh. |  | XML
2608 | 20081230 | Werner Guttmann | Werner Guttmann | Improved castor.xml.properties to be coherent in style, content and handling of default values. Reporter: Martin Weber | Bug |  | XML
2609 | 20081230 | Werner Guttmann | Werner Guttmann | Improved castorbuilder.properties to be coherent in style, content and handling of default values (but org.exolab.castor.builder.javaclassmapping) Reporter: Martin Weber | Bug |  | XMLGen.
2593 | 20081212 | Werner Guttmann | Werner Guttmann | Improved exception reporting in the context of custom field handlers by adding the root cause to the stack trace. Reporter: Werner Guttmann | Bug |  | XML
2588 | 20080203 | Werner Guttmann | Werner Guttmann | Added missing setGenerateMapping(boolean) method to CastorCodeGenTask class. Reporter: Werner Guttmann | Bug |  | AntTask
2564 | 20081127 | Werner Guttmann | Werner Guttmann | Fixed problem with (Maven) build when Castor resides in a directory structure that has spaces in its path. Reporter: Martin S. Weber | Bug |  | General
2569 | 20081126 | Joachim Grueneis | Werner Guttmann | Migrated a small framework to process annotations from the JAXB project to the core module. Reporter: Alexander Eibner | Enh. |  | Core
2580 | 20081125 | Werner Guttmann | Werner Guttmann | Fixed problem with line feeds when used as part of a default value definition in XML schemas. Reporter: Al Jacinto | Bug |  | XMLGen
2565 | 20081114 | Werner Guttmann | Werner Guttmann | Fixed problem with handling of nil artifacts during unmarshalling for primitive values. Reporter: Denis Cabasson | Bug |  | XML
2578 | 20081119 | Werner Guttmann | Werner Guttmann | Fixed problem code generation for <xs:simpleTypes> that are derived from NMTOKENS. Reporter: Renee Rivas | Bug |  | XML
2585 | 20081119 | Ralf Joachim | Ralf Joachim | Fixed bug in HighLowKeyGenerator that caused TC20 to fail at Oracle. Reporter: Ralf Joachim | Bug |  | JDO
2583 | 20081118 | Ralf Joachim | Ralf Joachim | Fixed test954 of new cpactf test suite failing with datasource. Reporter: Ralf Joachim | Bug |  | JDO
2582 | 20081118 | Ralf Joachim | Ralf Joachim | Enabled execution of new cpactf test suite against oracle. Reporter: Ralf Joachim | Task |  | JDO
2567 | 20081113 | Ralf Joachim | Ralf Joachim | Fixed SQLException 'Invalid column type' at execution of query. Reporter: Ralf Joachim | Bug |  | JDO
2546 | 20081031 | Dave Brosius | Werner Guttmann | Fixed problem with the use of 'auto-complete' attributes in mapping file and namespace handling. Reporter: Alex Edwards | Bug |  | XML
2550 | 20081013 | Ralf Joachim | Ralf Joachim | Fixed NullPointerException thrown at SQLStatementLookup when database constraint was violated at call to db.create(). Reporter: Ralf Joachim | Bug |  | JDO
2554 | 20081009 | Ralf Joachim | Ralf Joachim | Fixed some eclipse and checkstyle warnings at cpa. Reporter: Ralf Joachim | Enh. |  | JDO
2552 | 20081003 | Ralf Joachim | Ralf Joachim | Fixed eclipse and checkstyle warnings at cpactf and cpaptf. Reporter: Ralf Joachim | Enh. |  | JDO
2548 | 20081002 | Dave Brosius | Werner Guttmann | Generified 'codegen' module. Reporter: Dave Brosius | Enh. |  | XML
2548 | 20081001 | Dave Brosius | Werner Guttmann | Removed needless creation of Boolean instances in XML code. Reporter: Dave Brosius | Enh. |  | XML
2549 | 20081001 | Dave Brosius | Werner Guttmann | Fixed wrong exception handling in class descriptor resolution. Reporter: Dave Brosius | Bug |  | XML
2547 | 20081001 | Dave Brosius | Werner Guttmann | Fixed problem in incorrect usage of collection related to removal of data during iteration. Reporter: Dave Brosius | Bug |  | XML

# Release 1.3rc1

Description: | 1st release candidate for Castor 1.3
released: | October 1, 2008
managed by: | Werner Guttmann

## Changes

### Java 5.0 compliance

As of this release, Castor requires a Java 5.0 (and above) JVM at run-time. In addition, the XML code generator now emits Java 5.0-complaint code as well (which can be changed back to Java 1.4 compliance by setting the `org.exolab.castor.builder.javaVersion` property.

### Re-introduced backwards compatibility for code generated from <xs:integer>

Added new `org.exolab.castor.xml.lenient.integer.validation` property to allow configuration of leniency for validation for Java properties generated from `<xs:integer>` types during code generation. This will allow successful validation for Java members that have been generated with Castor versions of 1.0.5 and older.

### Long transactions that do not depend on cache

For long transactions (detached objects) to work it was required that the entity has been kept in cache from being loaded until its update. If the entity was expired from cache before the update an ObjectModifiedException had been thrown. While this is no problem if all entities of an application can be kept in cache all the time, it is one for large scale applications with millions of entities.

With release 1.3 we have changed the handling of timestamps. While it is still possible to rely on cache only it is now also possible to persist the timestamp together with the other properties of the entity. Doing so will ensure that the timestamp do not change even if the entity got expired from cache from being loaded until it get updated. If this happens the entity gets reloaded during update which also loads the previous timestamp. Having said that it still is possible that an ObjectModifiedException is thrown when another user has changed the same entity in the meantime.

See an example entity and its mapping below:

    public class Entity implements TimeStampable {
        private Integer _id;
        private String _name;
        private long _timeStamp;

        public Integer getId() { return _id; }
        public void setId(final Integer id) { _id = id; }

        public String getName() { return _name; }
        public void setName(final String name) { _name = name; }

        public long getTimeStamp() { return _timeStamp; }
        public void setTimeStamp(final long timeStamp) {
            _timeStamp = timeStamp;
        }

        public long jdoGetTimeStamp() { return _timeStamp; }
        public void jdoSetTimeStamp(final long timestamp) {
            _timeStamp = timestamp;
        }
    }

    <class name="Entity">
        <cache-type type="time-limited" capacity="300"/>
        <map-to table="entity"/>
        <field name="id" type="integer" identity="true">
            <sql name="id" type="integer"/>
        </field>
        <field name="name" type="string">
            <sql name="name" type="char"/>
        </field>
        <field name="timeStamp" type="long">
            <sql name="timestamp" type="numeric" />
        </field>
    </class>

### Moved SQL drivers into new org.castor.cpa.persistence.sql.driver package

As we had to change the package of the drivers in castor.properties anyway, we also renamed the property that configures the classnames of the available drivers from `org.exolab.castor.jdo.engines` to `org.castor.cpa.persistence.sql.driver.factories`.

The entry in properties file should now be:

    # List of persistence factories for the supported database servers:
    #
    org.castor.cpa.persistence.sql.driver.factories=\
      org.castor.cpa.persistence.sql.driver.OracleFactory,\
      org.castor.cpa.persistence.sql.driver.PostgreSQLFactory,\
      org.castor.cpa.persistence.sql.driver.SybaseFactory,\
      org.castor.cpa.persistence.sql.driver.SQLServerFactory,\
      org.castor.cpa.persistence.sql.driver.DB2Factory,\
      org.castor.cpa.persistence.sql.driver.InformixFactory,\
      org.castor.cpa.persistence.sql.driver.HsqlFactory,\
      org.castor.cpa.persistence.sql.driver.InstantDBFactory,\
      org.castor.cpa.persistence.sql.driver.InterbaseFactory,\
      org.castor.cpa.persistence.sql.driver.MySQLFactory,\
      org.castor.cpa.persistence.sql.driver.SapDbFactory,\
      org.castor.cpa.persistence.sql.driver.GenericFactory,\
      org.castor.cpa.persistence.sql.driver.DerbyFactory,\
      org.castor.cpa.persistence.sql.driver.PointbaseFactory,\
      org.castor.cpa.persistence.sql.driver.ProgressFactory

### Moved SQL keygenerators into new org.castor.cpa.persistence.sql.keygen package

As we had to change the package of the drivers in castor.properties anyway, we also renamed the property that configures the classnames of the available drivers from `org.exolab.castor.jdo.keyGeneratorFactories` to `org.castor.cpa.persistence.sql.keygen.factories`.

The entry in properties file should now be:

    # List of key generator factories:
    #
    org.castor.cpa.persistence.sql.keygen.factories=\
      org.castor.cpa.persistence.sql.keygen.MaxKeyGeneratorFactory,\
      org.castor.cpa.persistence.sql.keygen.HighLowKeyGeneratorFactory,\
      org.castor.cpa.persistence.sql.keygen.IdentityKeyGeneratorFactory,\
      org.castor.cpa.persistence.sql.keygen.SequenceKeyGeneratorFactory,\
      org.castor.cpa.persistence.sql.keygen.UUIDKeyGeneratorFactory

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
2545 | 20080930 | Ralf Joachim | Ralf Joachim | Refactored load method of ClassMolder and LockEngine. Reporter: Ralf Joachim | Enh. |  | JDO
2541 | 20080928 | Ralf Joachim | Dave Brosius | Removed needless synchronization afforded by java 5. Reporter: Dave Brosius | Enh. |  | XMLgen.
2542 | 20080928 | Ralf Joachim | Ralf Joachim | Fixed faulty logic of DTXQuery.initQuery. Reporter: Dave Brosius | Bug |  | JDO
2540 | 20080928 | Werner Guttmann | Dave Brosius | Removed (duplicated) code from SourceFactory. Reporter: Dave Brosius | Bug |  | XML
2531 | 20080925 | Werner Guttmann | Werner Guttmann | Fixed problems with namespace inheritance for non-simple mapped entities. Reporter: Christophe Delory | Bug |  | XML
2521 | 20080925 | Werner Guttmann | Werner Guttmann | Fixed problems in the area of using (nested) locations with attribute-typed nodes. Reporter: Santiago Aucejo | Bug |  | XML
2536 | 20080924 | Ralf Joachim | Ralf Joachim | Refactor LockEngine.TypeInfo.acquire() method. Reporter: Ralf Joachim | Enh. |  | JDO
1196 | 20080923 | Ralf Joachim | Ralf Joachim | Allowed an entity to reference another entity that has been loaded in a different transaction. Reporter: Clovis Wichoski | Bug |  | JDO
1206 | 20080923 | Ralf Joachim | Ralf Joachim | Enabled to save changes to field references with dirthy="ignore" in database. Reporter: Clovis Wichoski | Bug |  | JDO
87 | 20080920 | Ralf Joachim | Ralf Joachim | Added ability to persist timestamps to allow long transaction that do not depend on cache. Reporter: Thomas Yip | Enh. |  | JDO
2532 | 20080919 | Ralf Joachim | Ralf Joachim | Fixed issue with object not being untracked when creation of JDBC connection fails. Reporter: Ralf Joachim | Bug |  | JDO
2530 | 20080917 | Werner Guttmann | Werner Guttmann | Fixed problem with namespace handling when there's a big number of 'extra' (unmapped) content. Reporter: Werner Guttmann | Bug |  | XML
2528 | 20080916 | Werner Guttmann | Werner Guttmann | Fixed a problem with the lookup of types already marked 'missing' in XMLClassDescriptor(Impl).resolve(). Reporter: Werner Guttmann | Bug |  | XML
2527 | 20080916 | Ralf Joachim | Ralf Joachim | Fixed issue with query returning entities of wrong type for extended class hierarchies. Reporter: Ralf Joachim | Bug |  | JDO
2520 | 20080914 | Werner Guttmann | Werner Guttmann | Fixed a problem with code generation of <list> of simple type definitions where enumerations are used. Reporter: R.O. Shore | Enh. |  | XMLgen.
2524 | 20080912 | Ralf Joachim | Ralf Joachim | Simplified configuration of new castor persistence test framework Reporter: Ralf Joachim | Enh. |  | JDO
2504 | 20080803 | Werner Guttmann | Werner Guttmann | Refactored FieldDescriptor(Impl) to use natures (JDO only) and removed JDOFieldDescriptor(Impl). Reporter: Werner Guttmann | Enh. |  | JDO
2503 | 20080801 | Werner Guttmann | Werner Guttmann | Refactored ClassDescriptor(Impl) to use natures (JDO only) and removed JDOClassDescriptor(Impl). Reporter: Werner Guttmann | Enh. |  | JDO
2493 | 20080725 | Werner Guttmann | Werner Guttmann | Moved 'castor.core.properties' from xml module to core module. Reporter: Werner Guttmann | Bug |  | Core
2434 | 20080723 | Werner Guttmann | Werner Guttmann | Added 'detachable' attribute to JDO extension for the Castor XML code generator. Reporter: Werner Guttmann | Enh. |  | XMLGen.
2452 | 20080722 | Sebastian Gabmeyer | Werner Guttmann | Amended JDOClassDescriptorResolver(Impl) to additonally use .castor.jdo.cdr files for class descriptor resolution. Reporter: Sebastian Gabmeyer | Enh. |  | XMLGen.
2390 | 20080721 | Filip Hianik | Werner Guttmann | Added ability to generate JDO descriptors for 1:M relations. Reporter: Filip Hianik | Enh. |  | XMLgen.
2412 | 20080720 | Filip Hianik | Werner Guttmann | Improved <appinfo> processing to cover for 'dirty' and 'read-only' settings. Reporter: Filip Hianik | Enh. |  | XMLgen.
2365 | 20080720 | Filip Hianik | Werner Guttmann | Improved SchemaUnmarshallerTest to cover 1:M relations as well. Reporter: Filip Hianik | Enh. |  | XMLgen.
2470 | 20080720 | Filip Hianik | Werner Guttmann | Added 'dirty' and 'read-only' properties to JDO-specific 1:M relation nature. Reporter: Filip Hianik | Enh. |  | XMLgen.
2469 | 20080720 | Filip Hianik | Werner Guttmann | Added 'dirty' and 'read-only' properties to JDO-specific 1:1 relation nature. Reporter: Filip Hianik | Enh. |  | XMLgen.
2448 | 20080720 | Filip Hianik | Werner Guttmann | Added 'dirty' and 'read-only' attributes to <one-to-one> and <one-to-many> elements. Reporter: Filip Hianik | Enh. |  | XMLgen.
2390 | 20080720 | Filip Hianik | Werner Guttmann | Added functionality to generate sources for 1:1 relations. Reporter: Filip Hianik | Enh. |  | XMLGen.
2455 | 20080718 | Werner Guttmann | Werner Guttmann | Consolidated CPA/JDO constants used by JDOClassDescriptorFactory. Reporter: Lukas Lang | XMLGen. |  | Schema
2454 | 20080718 | Werner Guttmann | Werner Guttmann | Consolidated CPA/JDO constants used by AppInfoUnmarshaller. Reporter: Lukas Lang | Enh. |  | Schema
2412 | 20080716 | Filip Hianik | Werner Guttmann | Extended AppInfoUnmarshaller to support 1:1 and 1:M relations as well. Reporter: Filip Hianik | Enh. |  | XMLGen.
2412 | 20080716 | Filip Hianik | Werner Guttmann | Added code to support 1:1 and 1:M relations during <appinfo> processing. Reporter: Filip Hianik | Enh. |  | XMLGen.
2459 | 20080715 | Lukas Lang | Werner Guttmann | Adapted JDOMappingLoader to allow resolution of JDO descriptors from the file system as well, to support 'mixed mode'. Reporter: Lukas Lang | Enh. |  | XMLGen.
2470 | 20080715 | Lukas Lang | Werner Guttmann | Added a JDO-specific nature for 1:M relations. Reporter: Lukas Lang | Enh. |  | XMLGen.
2467 | 20080715 | Lukas Lang | Werner Guttmann | Added a getFields() method to JDOClassInfoNature. Reporter: Lukas Lang | Enh. |  | XMLGen.
2479 | 20080714 | Ralf Joachim | Ralf Joachim | Removed unused code from ClassMolder, LockEngine and ObjectLock Reporter: Ralf Joachim | Enh. |  | JDO
2478 | 20080714 | Ralf Joachim | Ralf Joachim | Made ObjectLock and CachEntry independent from each other. Reporter: Ralf Joachim | Enh. |  | JDO
2537 | 20080714 | Ralf Joachim | Ralf Joachim | Refactored HighLow, Identity, Max and UUID key generators. Reporter: Ralf Joachim | Enh. |  | JDO
2469 | 20080709 | Lukas Lang | Werner Guttmann | Added a JDO-specific nature for 1:1 relations. Reporter: Lukas Lang | Enh. |  | XMLGen.
2471 | 20080709 | Werner Guttmann | Werner Guttmann | Refactored XMLInfo usage (part II) - Inlined all remaining XMLInfo methods() that internally use XMLInfoNature. Reporter: Werner Guttmann | Enh. |  | XMLGen.
2466 | 20080708 | Werner Guttmann | Werner Guttmann | Refactored XMLInfo usage (part I) - Inline all XMLInfo.set* methods() that internally use XMLInfoNature Reporter: Werner Guttmann | Enh. |  | XMLGen.
2446 | 20080707 | Lukas Lang | Werner Guttmann | Refactored JDOClassDescriptorResolver to use command pattern for resolution. Reporter: Lukas Lang | Enh. |  | CPA
2446 | 20080707 | Lukas Lang | Werner Guttmann | Created a set of "naturable" commands for (JDO) class descriptor resolution. Reporter: Lukas Lang | Enh. |  | CPA
2445 | 20080707 | Lukas Lang | Werner Guttmann | Created JDOConstants in core module. Reporter: Lukas Lang | Enh. |  | Core
2447 | 20080706 | Sebastian Gabmeyer | Werner Guttmann | Enable creation of a JDO-specific CDR File. Reporter: Sebastian Gabmeyer | Enh. |  | XMLGen.
2453 | 20080704 | Werner Guttmann | Werner Guttmann | Added new core module. Reporter: Lukas Lang | Enh. |  | General
2412 | 20080703 | Sebastian Gabmeyer | Werner Guttmann | Extract JDO annotations from XML schema (object model) and fill {Class|Field}Infos using the proper JDO natures. Reporter: Sebastian Gabmeyer | Enh. |  | Schema
2448 | 20080703 | Lukas Lang | Werner Guttmann | Add more JDO specific attributes to the simple-schema.xsd. Reporter: Lukas Lang | Enh. |  | XMLgen.
2450 | 20080703 | Werner Guttmann | Werner Guttmann | Switch to a Maven driven approach for the generation of the JDO annotations for code generation. Reporter: Werner Guttmann | Enh. |  | Schema
2365 | 20080702 | Lukas Lang | Werner Guttmann | Added code to process JDO-specific annotations of an XML schema. Reporter: Lukas Lang | Enh. |  | Schema
2436 | 20080628 | Werner Guttmann | Werner Guttmann | Added new JDOClassDescriptorResolver interface and refactored code to use it. Reporter: Werner Guttmann | Enh. |  | CPA
2394 | 20080628 | Lukas Lang | Werner Guttmann | Added new loadConfiguration() method to JDOManager that allows to pass in a JDOClassDescriptorResolver. Reporter: Lukas Lang | Enh. |  | CPA
2419 | 20080628 | Werner Guttmann | Werner Guttmann | Refactored code to use new JDOClassDescriptor interface. Reporter: Werner Guttmann | Enh. |  | CPA
2380 | 20080628 | Lukas Lang | Werner Guttmann | Added Nature concept to XML code generator to make Class-/FieldInfo instances more extendible. Reporter: Lukas Lang | Enh. |  | XMLGen.
2426 | 20080621 | Lukas Lang | Werner Guttmann | JDOClassDescriptorResolver(Impl) now supports loading class descriptors from the file system. Reporter: Lukas Lang | Enh. |  | CPA
2418 | 20080613 | Werner Guttmann | Werner Guttmann | Introduced new JDOClassDescriptor interface. Reporter: Werner Guttmann | Refactoring |  | CPA
2417 | 20080613 | Werner Guttmann | Werner Guttmann | Renamed JDOClassDescriptor to JDOClassDescriptorImpl. Reporter: Werner Guttmann | Refactoring |  | CPA
2405 | 20080606 | Sebastian Gabmeyer | Werner Guttmann | Removed code duplication across FieldInfoAccessFactory and FieldInfo. Reporter: Sebastian Gabmeyer | Refactoring |  | XMLGen
2379 | 20080530 | Werner Guttmann | Werner Guttmann | Fixed inconsistency with code generation binding for global complex type definitions. Reporter: Gaël Lhez | Bug |  | XMLGen
2375 | 20080518 | Ralf Joachim | Ralf Joachim | Moved SQL keygenerators into new org.castor.cpa.persistence.sql.keygen package. Reporter: Ralf Joachim | Enh. |  | JDO
2368 | 20080516 | Udai Gupta | Ralf Joachim | Created how to's for setting up Castor with eclipse and execution of JDO test suites. Reporter: Udai Gupta | Enh. |  | JDO
2377 | 20080512 | Udai Gupta | Ralf Joachim | Transferred old tests TC30 and TC31 to new JDO test framework. Reporter: Udai Gupta | Enh. |  | JDO
2378 | 20080505 | Werner Guttmann | Werner Guttmann | Added unmarshal(AnyNode) method to Unmarshaller. Reporter: Mattias Jiderhamn | Enh. |  | XML
2374 | 20080503 | Ralf Joachim | Ralf Joachim | Moved SQL drivers into new org.castor.cpa.persistence.sql.driver package. Reporter: Ralf Joachim | Enh. |  | JDO
2373 | 20080502 | Ralf Joachim | Ralf Joachim | Fixed failing cpactf tests on derby. Reporter: Ralf Joachim | Bug |  | JDO
796 | 20080502 | Ralf Joachim | Ralf Joachim | Refactored SequenceKeyGenerator. Reporter: Werner Guttmann | Enh. |  | JDO
2372 | 20080502 | Ralf Joachim | Ralf Joachim | Fixed failing cpactf tests on oracle. Reporter: Ralf Joachim | Bug |  | JDO
2371 | 20080501 | Ralf Joachim | Ralf Joachim | Fixed failing cpactf tests on mysql. Reporter: Ralf Joachim | Bug |  | JDO
2358 | 20080425 | Joachim Grueneis | Werner Guttmann | Improved HTML docs on SVN access. Reporter: Bernhard Woditschka | Enh. |  | HTML
2343 | 20080422 | Ralf Joachim | Ralf Joachim | Prepared SQLStatementCreate to move whole generation code into KeyGenerator implementations. Reporter: Ralf Joachim | Enh. |  | JDO
2352 | 20080422 | Ralf Joachim | Ralf Joachim | Fixed to long table names and some failures in SQL script of oracle. Reporter: Ralf Joachim | Bug |  | JDO
1699 | 20080420 | Ralf Joachim | Ralf Joachim | Removed dependency for mockejb.jar. Reporter: Werner Guttmann | Enh. |  | JDO
2330 | 20080418 | Werner Guttmann | Werner Guttmann | Fixed problem with attribute resolution at unmarshalling for attributes that use a location and are rooted at the root node. Reporter: Nikolai Grigoriev | Bug |  | XML
1961 | 20080412 | Martin Fuchs | Ralf Joachim | Fixed NumberFormatException: For input string: "10g". Reporter: Radovana Straube | Bug |  | JDO
2291 | 20080411 | Ralf Joachim | Ralf Joachim | Renamed cpactf/src/test to cpactf/src/old and cpactf/src/temp to cpactf/src/test. Reporter: Joachim Grueneis | Enh. |  | JDO
2326 | 20080411 | Werner Guttmann | Werner Guttmann | Fixed problem with persistence of entities that has fields that are all part of object identity. Reporter: Victor Manuel Iniestra Alvarez | Bug |  | JDO
2323 | 20080401 | Werner Guttmann | Werner Guttmann | Fixed problem with name collision detection for Windows-specific keywords. Reporter: Andreas Stergiou | Enh. |  | XML
2289 | 20080401 | Dennis Spenkelink | Werner Guttmann | Added support for changing the binding (name, namespace) of an anonymous enumeration in a binding file. Reporter: Dennis Spenkelink | Enh. |  | XML
2143 | 20080330 | Werner Guttmann | Werner Guttmann | Added support for 'nillable' content (actually elements only) in the mapping file. Reporter: Tausif Farooqi | Enh. |  | XML
1948 | 20080321 | Simon Lord | Werner Guttmann | (Re-)introduced full backwards compatibility for code generated for <xs:integer> XML artefacts, allowing for classes generated with Castor 1.1 and older to be used again for un-/marshalling. Reporter: Simon Lord | Bug |  | XML
2312 | 20080319 | Philippe Rouxel | Werner Guttmann | Fixed problem with property resolution when setting a new InternalContext instance on an existing Un-/Marshaller. Reporter: Philippe Rouxel | Bug |  | XML
2231 | 20080314 | Werner Guttmann | Werner Guttmann | Added namespace definition for a "java:" prefix when used by Castor. Reporter: Nicolas Cazottes | Bug |  | XML
2308 | 20080314 | Werner Guttmann | Werner Guttmann | Improved the XPATH statements produced for the location attribute of a ValidationException to cater for positions within multi-valued fields as well. Reporter: Dave Sinclair | Enh. |  | XML
2302 | 20080313 | Werner Guttmann | Werner Guttmann | Refactored JClassPrinterFactory approach and added a registy for these factories so that Velocity classes are really optional when executing the XML code generator in standard (= default) mode. Reporter: Werner Guttmann | Bug |  | XMLGen
1107 | 20080311 | Werner Guttmann | Werner Guttmann | Added code to the XML code generator to validate XML schema constraints (partially). Reporter: Sergei Ivanov | Enh. |  | XMLGen
2295 | 20080301 | Joachim Grueneis | Joachim Grueneis | Two things have been changed. First the AbstractResolverPackageCommand will work even if no ClassLoader was set before. Second XMLClassDescriptorResolverImpl does no longer work with InternalContext but gets all required values directly set. Reporter: Nikita Mekh | Bug |  | XML
2300 | 20080219 | Joachim Grueneis | Werner Guttmann | Fixed the (snapshot) repository references in the Maven integration HTML docs. Reporter: Joachim Grueneis | Bug |  | General
2293 | 20080216 | Werner Guttmann | Werner Guttmann | Fixed problem with method signatures during code generation, when generics are used with Java 5.0 Reporter: Mario Däpp | Bug |  | XMLGen
2297 | 20080215 | Werner Guttmann | Werner Guttmann | Fixed problem with class generation where a binding file is used such that the package name is based upon a target namespace. Reporter: Keith | Bug |  | XMLGen
2299 | 20080215 | Werner Guttmann | Werner Guttmann | Fixed problem with element name collisions between child and parent complex type definitions when a binding file is used to address this name collision. Reporter: Michael | Bug |  | XMLGen
2294 | 20080214 | Werner Guttmann | Werner Guttmann | Cleaned up XML code generator code to avoid generation of unnecessary import statements. Reporter: John Gollan | Bug |  | XMLGen
2275 | 20080209 | Werner Guttmann | Werner Guttmann | Fixed problem with <simpleContent> derived from <xsd:integer< where the type of the Java property generatd was BigDecimal (rathr than long). Reporter: Kelvin Chung | Bug |  | XMLGen
2282 | 20080206 | Joachim Grueneis | Joachim Grueneis | Introduced a new (extended) UnmarshalListener interface meant to replace the existing. Reporter: Joachim Grueneis | Improvement |  | XML
2283 | 20080206 | Joachim Grueneis | Joachim Grueneis | Removed static initialization of XMLClassDescriptorImpl which wasn't used but caused problems in the JAXB implementation. Reporter: Joachim Grueneis | Improvement |  | XML
2279 | 20080205 | Alexandre Delarge | Werner Guttmann | Fixed problem with handling of simple types where the base type is defined in an imported XML schema during XML schema serialization. Reporter: Alexandre Delarge | Bug |  | XMLSchema
2277 | 20080205 | Werner Guttmann | Werner Guttmann | Fixed problem with class name resolution for referenced attribute definitions that use an anynymous simple type enumeration. Reporter: Kelvin Chung | Bug |  | XMLGen

# Release 1.2

Description: | Release of Castor 1.2 GA
released: | February 4, 2008
managed by: | Werner Guttmann

## Additions

### Code generator now supports use of Velocity as template engine

Castor now supports the use of Velocity-based code templates for code generation. For the time being, Castor will support two modes for code generation, i.e. the new Velocity-based and an old legacy mode. Default will be the legacy mode; this will be changed with a later release of Castor.

In order to use the new Velocity-based code generation, please override the following code generator property in a custom `castorbuilder.properties` as shown:

    org.exolab.castor.builder.jclassPrinterTypes=\
       org.exolab.castor.builder.printing.TemplateJClassPrinter,\
       org.exolab.castor.builder.printing.WriterJClassPrinter

Users are encouraged the use the new Velocity-based mode and to provide us with (valuable) feedback.

### Execution of CTF test suite in Maven

Added support for executing CTF test suite as part of a standard Maven build. To execute the CTF test suite from Maven, simply issue a `mvn test` in the `xmlctf` module, and the test suite will be run in addition to the standard unit tests.

Once the remainder of the code in the parent module has been moved to its own `xml` module, it will be possible to have the execution of the test suite as part of the release process, which will only succeed if all tests (including those from the CTF suite) pass successfully.

### Added special processing of proxied classes

Objects that were lazy loaded from a persistence layer often are wrapped by dynamic proxies. This usually happens by extending the original class. In this case a call to getClass() does not return the original call but the proxy instead. As the class respectively its name is used to lookup class mapping or ClassDescriptor of any class to marshal, Castor fail to find the right one. The result is that the object gets introspected and the XML document produced does not look as expected. Even if you do not use ClassDescriptors generated by Castor's code generator or a mapping file as you want objects to get introspected, the resulting XML document is crap. The problem here is, that introspection not only finds the properties of your object but also those of the proxy which also get marshalled.

The solution to all of this problems is a new property in castor.properties file. It allows you to specify a list of interfaces that such proxied objects implement. If your object implements one of these interfaces Castor will not use the class itself but its superclass at introspection or to find class mappings and ClassDescriptors.

    # Property specifying whether or not to search for an proxy interface at marshalling.
    # If property is not empty the objects to be marshalled will be searched if they
    # implement one of the given interface names. If the interface is implemented the
    # superclass will be marshalled instead of the class itself.
    #
    org.exolab.castor.xml.proxyInterfaces=\
      net.sf.cglib.proxy.Factory, \
      org.hibernate.proxy.HibernateProxy

Be aware that no proxy interfaces are defined by default as the interface search slightly decreases marshalling performance.

### Added support for (programmatic) access to XML schema documentation information

The Castor XML code generator - if configured as shown below - now generates additional methods to allow programmatic access to <xs:documentation> elements for top-level type/element definitions as follows:

        public java.lang.String getXmlSchemaDocumentation(final java.lang.String source);
        public java.util.Map getXmlSchemaDocumentations();

In order to have these additional methods generated as shown above, please override the following code generator property in a custom `castorbuilder.properties` as shown:

    # Property specifying whether extra members/methods for extracting XML schema
    # documentation should be made available; defaults to false
    org.exolab.castor.builder.extraDocumentationMethods=true

### Added support for complex Java 5 enums for simple type enumerations

In previous versions, Castor only supported (un)marshalling of "simple" Java 5 enums, meaning enums where all facet values are valid java identifiers. In these cases, every enum constant name can be mapped directly to the xml value.

So if there is at least ONE facet that cannot be mapped directly to a valid java identifier, we need to extend the enum pattern. The actual value of the enumeration facet is stored in a private String property, the name of the enum constant is translated into a valid identifier.

    <xs:simpleType name="CompositeType">
      <xs:restriction base="xs:string">
        <xs:enumeration value="5"/>
        <xs:enumeration value="10"/>
      </xs:restriction>
    </xs:simpleType>

    public enum CompositeType {
        VALUE_5("5"),
        VALUE_10("10");

        private final java.lang.String value;

        private CompositeType(final java.lang.String value) {
            this.value = value;
        }

        public static CompositeType fromValue(final java.lang.String value) {
            for (CompositeType c: CompositeType.values()) {
                if (c.value.equals(value)) {
                    return c;
                }
            }
            throw new IllegalArgumentException(value);
        }

        public java.lang.String value() {
            return this.value;
        }

        public java.lang.String toString() {
            return this.value;
        }
    }

    <root>
      <CompositeType>5</CompositeType>
    </root>

See the description in the Source Generator Properties section for details.

### Added support for configurable field handlers

Although it was already possible to create custom XML field handers, it was not possible to configure them. It is now possible to define your custom `ConfigurableFieldHander` and add any number of parameters to it, in the mapping file as follows:

    <mapping>

       <field-handler name="myHandler" class="org.some.package.CustomFieldHandlerImpl">
          <param name="date-format" value="yyyyMMddHHmmss"/>
       </field-handler>

       <class .... />

       <class .../>

    </mapping>

and subsequently refer to this custom (configurable) field handler by its name as shown in the following field mapping:

    <class name="Root">
       <field name="date" type="string" handler="myHandler"/>
    </class>

A typical example is the need to process multiple date formats in one xml file. This can now be done elegantly by configuring multiple instances of a configurable date field handler, each with a different date format.

Please check the new HOW-TO on using custom (configurable) field handlers with Castor.

### Added support for custom JDO type convertors

You are now able to specify the type convertors for Castor JDO through a castor.properties file. Usually you will need two type convertors: one that converts from your custom type to a type supported by the database and another one for the opposite conversion. Both type convertor have to implement the org.castor.cpa.persistence.convertor.TypeConvertor interface. To ease the implemention task you can also extend one of our abstract implementations:

org.castor.cpa.persistence.convertor.AbstractTypeConvertor
org.castor.cpa.persistence.convertor.AbstractSimpleTypeConvertor
org.castor.cpa.persistence.convertor.AbstractLobTypeConvertor
org.castor.cpa.persistence.convertor.AbstractDateTypeConvertor

When adding your type convertors to the list of internal ones you have to take care not to drop any of them. An excerpt of that definition looks as follows:

    # Type convertors
    #
    org.castor.cpa.persistence.TypeConvertors=\
      org.castor.cpa.persistence.convertor.BigDecimalToBoolean,\
      org.castor.cpa.persistence.convertor.BigDecimalToByte,\
        :
        :
        :
      org.castor.cpa.persistence.convertor.StringToSqlClob,\
      org.castor.cpa.persistence.convertor.StringToSqlTimestamp

## Changes

### Refactored Castor configuration

We have added a new class hierarchy to handle independent configurations for every module of Castor. Having said that, this should not change anything for any Castor user, as you still specify properties in a single castor.properties file for all modules.

### Refactored JavaNaming

New JavaNaming is an exchangeable service instantiated trough XMLContext and accessed in a non-static way.

### Refactored XMLClassDescriptorResolver

New XMLClassDescriptorResolver internally works with strategy and command pattern to have the possibility to enhance class resolving for future implementations (e.g. JAXB support).

### Refactored XMLContext

New XMLContext is the information centerpiece and point to start for Castor XML stuff. It provides:

-

Factory methods for:

1. Marshaller
2. Unmarshaller
3. SchemaReader
4. SchemaWriter
5. MappingTool
6. SourceGenerator

- | Methods which are used by different XML classes, have (keep) central information or services and had been creeping into LocalConfiguration but have nothing to do with Configuration itself.

We had to remove static usage to make Castor more loosely linked than before.

### Fixed support for 'strict elements'

When instructing Castor XML during unmarshalling to handle elements 'strict', this worked only in the presence of a mapping file. When the element/class in question was analyzed using Castor's introspector, setting this mode didn't produce the correct results. As part of a patch, this problem has now been fixed so that the behavior is the same irrespective of whether a mapping (file) is provided for a class or not.

For those of you relying on the old behavior, a new property has been introduced to allow leniency and to switch back to pre-patch behavior:

    # Property specifying whether element strictness for introspected
    # classes/elements should be lenient (aka allowed); defaults to false
    org.exolab.castor.xml.lenient.introspected.element.strictness=false

### Castor XML and JAXP - used per default

We have made some modifications to the way Castor XML obtains XML parser instances. As per this releae, Castor XML will - per default - use JAXP and its SAXParser(Factory) to obtain an instance of a SAX parser.

For this to work, we had to comment out the `org.exolab.castor.parser` property from the default `castor.properties` as shipped with Castor XML. As of this release, the property definition in the default `castor.properties` file reads:

    # Defines a non-default XML parser to be used by Castor. By default,
    # Castor will use JAXP internally to obtain an XML parser.
    # The parser must implement org.xml.sax.Parser. (???)
    #
    # Should be used in the following situations:
    # a) A different XML parser vendor should be used.
    # b) With Java 5.0, an external XML parser should be used.
    #
    #org.exolab.castor.parser=org.apache.xerces.parsers.SAXParser

With this change, Castor XML will now use JAXP to create XML parsers, a mechanism that works works equally with Java 1.4 and Java 5.0, and thus does not require changes to the `org.exolab.castor.parser` property anymore as with older releases of Castor. In other words, with Java 5.0 Castor XML will now make use of the XML parser packaged with the JVM.

You should still consider setting this property manually in the following cases:

1. You are on Java 5.0, and you want to use a different XML parser (vendor) than the one shipped with the JVM.
2. You are on Java 5.0, and you want to use a different version of the XML parser shipped with the JVM.

Note: If you happen to have a custom `castor.properties` file packaged with your application, please consider removing the `org.exolab.castor.parser` property from this file to switch to the new default mechanism.

### Static unmarshal methods on generated classes with Java 5.0 and above

For classes generated to be used with Java 5.0 (and above) that are part of a type hierarchy, the static `unmarshal` methods will now return the exact sub-type (i.e. the class where the method is defined), and not the parent type. This should improve type strictness and help in avoiding unnecessary casts.

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
2285 | 20080130 | Werner Guttmann | Werner Guttmann | Created new SchemaContext class and switched schema related code to using it. Reporter: Werner Guttmann | Bug |  | XML
2268 | 20080129 | Werner Guttmann | Werner Guttmann | Added full support for defining collections using the <xs:list> construct. Reporter: Joachim Grueneis | Bug |  | XML
2266 | 20080125 | Joachim Grueneis | Joachim Grueneis | For JAXB implementation an additional method in JavaNaming interface - extractFieldNameFromField is required Reporter: Joachim Grueneis | Impr |  | XML
2270 | 20080123 | Werner Guttmann | Werner Guttmann | Fixed problem with usage of 'java.util.Iterator' as return type during marshalling. Reporter: Abhinav Sopory | Bug |  | XML
2269 | 20080123 | Werner Guttmann | Werner Guttmann | Fixed problems with the source tarballs and the Javadoc release files by including the CPA module. Reporter: Jon Wilmoth | Bug |  | All
2265 | 20080118 | Vikas Rawat | Werner Guttmann | Fixed problem where marshaller won't correctly handle situations where a namespace URI is bound to more than one prefix on sibling AnyNode elements, i.e. preserve the namespace prefices. Reporter: Vikas Rawat | Bug. |  | Gen.
2264 | 20080118 | Werner Guttmann | Werner Guttmann | Added support for usage of 'mixed="1"' attributes for XML code generation. Reporter: Roy van der Kuil | Bug. |  | Gen.
2047 | 20080110 | Matthias Epheser | Werner Guttmann | Added support for executing the CTF test suite as part of a 'mvn test' in the 'xmlctf' module. Reporter: Werner Guttmann | Enh. |  | XML
1917 | 20080110 | Werner Guttmann | Werner Guttmann | Restored pre-1.0 behavior with regards to unresolvable type references in XML code generation. Reporter: Simon Lord | Bug |  | Gen.
2132 | 20080109 | Werner Guttmann | Werner Guttmann | Fixed problem with unmarshalling the same element from 2 different namespaces using a mapping file. Reporter: Christophe Delory | Bug |  | XML
2255 | 20080107 | Joachim Grueneis | Joachim Grueneis | Introduced interface XMLNaming and renamed abstract class XMLNaming to AbstractXMLNaming. Reporter: Joachim Grueneis | Enhancement |  | XML
2254 | 20080106 | Edward Kuns | Edward Kuns | XMLCTF: If a properties file is specified but not provided, the CTF complaint is not helpful Reporter: Edward Kuns | Bug |  | CTF
2252 | 20080104 | Werner Guttmann | Werner Guttmann | Fixed problem with marshalling multiple 'nested' attributes (where a location path is used). Reporter: Liehann Loots | Bug |  | XML
2253 | 20080104 | Joachim Grueneis | Joachim Grueneis | castor.xml.properties: org.exolab.castor.parser setting is wrong Reporter: Joachim Grueneis | Bug |  | XML
1983 | 20080102 | Werner Guttmann | Werner Guttmann | Added support for programmatic access to <xs:annotation> node information. Reporter: Régis Décamps | Enh. |  | Gen.
1972 | 20080101 | Matthias Epheser | Werner Guttmann | Added Velocity as templating engine for code generation. Reporter: Matthias Epheser | Enh. |  | Gen.
2235 | 20071227 | Werner Guttmann | Werner Guttmann | Fixed problem related to sequence ordering and substitution groups. Reporter: Aldrin d'Souza | Bug |  | Gen.
2241 | 20071225 | Ralf Joachim | Ralf Joachim | Refactored special tests proxy, 1214, 1781 and 1865. Reporter: Ralf Joachim | Enh. |  | JDO
2236 | 20071223 | Werner Guttmann | Werner Guttmann | Added command line parameter to Castor source generator (cline, Ant task) to allow specification of the input source via a valid URL Reporter: Carlo Romero | Enh. |  | Gen.
2234 | 20071223 | Werner Guttmann | Werner Guttmann | Fixed problem with code generation related to the use of attributes on <xs:annotation>, <xs:appInfo>, etc. that are declared on a namespace other than the default schema namespace. Reporter: Aparajitha | Bug |  | Gen.
2240 | 20071223 | Ralf Joachim | Ralf Joachim | Refactored special tests 881 and 2177. Reporter: Ralf Joachim | Enh. |  | JDO
2239 | 20071223 | Ralf Joachim | Ralf Joachim | Added method to dispose JDOManager instances. Reporter: Ralf Joachim | Enh. |  | JDO
2238 | 20071222 | Ralf Joachim | Ralf Joachim | Refactored special tests 972, 1158, 1355 and 1379. Reporter: Ralf Joachim | Enh. |  | JDO
1906 | 20071222 | Ralf Joachim | Ralf Joachim | Added new test framework for castor persistence. Reporter: Ralf Joachim | Enh. |  | JDO
1972 | 20071216 | Matthias Epheser | Werner Guttmann | Moved logic to write JClass instances to the file system to a new interface, named JClassPrinter. Reporter: Matthias Epheser | Bug |  | XML
2229 | 20071216 | Edward Kuns | Edward Kuns | CTFRun.sh needs tools.jar to be added to the classpath Reporter: Edward Kuns | Bug |  | XML
67 | 20071214 | Edward Kuns | Edward Kuns | Generated classes don't compile when using "default" on an element that extends xsd:string Reporter: Arnaud Blandin | Bug |  | XML
2174 | 20071211 | Werner Guttmann | Werner Guttmann | Marshalling 'hexBinary' types produces upper-case hex digits [A-F] only. Reporter: Dave Wilmes | Bug |  | XML
2220 | 20071206 | Mark Femal | Werner Guttmann | Fixed problem with not 'using' time zone in DateFieldHandler. Reporter: Mark Femal | Bug |  | XML
2206 | 20071205 | Werner Guttmann | Werner Guttmann | Fixed problem handling references to identically named global elements from different namespaces. Reporter: Mitesh Soni | Bug |  | XML
2196 | 20071127 | Werner Guttmann | Werner Guttmann | FieldHandler.getFieldDescriptor() now returns an instance of XMLFieldDescriptor. Reporter: Bastian | Bug |  | XML
2217 | 20071123 | Werner Guttmann | Werner Guttmann | Fixed problem in propagation of facets for unions. Reporter: Patrick Marchwiak | Bug |  | Gen
2213 | 20071123 | Werner Guttmann | Werner Guttmann | Added documentation for integration of Castor with web service frameworks. Reporter: Werner Guttmann | Enh. |  | Doc
2209 | 20071122 | Werner Guttmann | Werner Guttmann | Improved 'contract' for static unmarshal methods on generated classes for Java 5. Reporter: Aslam Karachiwala | Bug |  | XML
2215 | 20071107 | Werner Guttmann | Werner Guttmann | Exposed isChoice() method to org.exolab.castor.xml.XMLClassDescriptor. Reporter: Werner Guttmann | Enh. |  | XML
2212 | 20071107 | Werner Guttmann | Werner Guttmann | Partially refactored class hierarchy of (some) descriptor classes. Reporter: Werner Guttmann | Enh. |  | XML
1150 | 20071106 | Steven Dolg | Werner Guttmann | Fixed problem related to unmarshalling unbounded <sequence>s of <choice>s. Reporter: Leif Oines | Bug |  | XML
2189 | 20071023 | Werner Guttmann | Werner Guttmann | Refactored regexp evaluation code. Reporter: Werner Guttmann | Enh. |  | XML
2191 | 20071022 | Werner Guttmann | Werner Guttmann | Removed usage of org.exolab.castor.types.OperationNotSupportedException and switched to using java.lang.UnsupportedOperationException Reporter: Werner Guttmann | Enh. |  | XML
2200 | 20071019 | Ralf Joachim | Ralf Joachim | Included classes of org.castor.xml and org.castor.core packages in castor-xml.jar. Reporter: Ralf Joachim | Bug |  | All
1881 | 20071019 | Werner Guttmann | Werner Guttmann | Fixed problem with 'unwanted' generated classes for (complex) type definitions defined in an imported XML schema. Reporter: Matthias Hanisch | Bug |  | Gen.
2198 | 20071018 | Werner Guttmann | Werner Guttmann | Fixed problem with incorrect @Override annotation on getJavaClass() methods on generated classes. Reporter: Aslam Karachiwala | Bug |  | Gen.
1950 | 20071013 | Werner Guttmann | Werner Guttmann | Fixed problems with code generation for <xs:unsignedShort>. Reporter: Raghavan Eachampadi | Bug |  | Gen.
2188 | 20071012 | Joachim Grueneis | Joachim Grueneis | Remove old Configuration and LocalConfiguration Reporter: Joachim Grueneis | Enh. |  | All
2190 | 20071011 | Joachim Grueneis | Joachim Grueneis | (Re-)added empty default constructor for Unmarshaller Reporter: Werner Guttmann | Enh. |  | All
2053 | 20071010 | Matthias Epheser | Werner Guttmann | Fixed problem in code generation related to complex elements with default value. Reporter: Matthias Epheser | Bug |  | Gen.
2185 | 20071009 | Joachim Grueneis | Joachim Grueneis | Create interface for InternalContext and make all existing *InternalContext classes implement this interface Reporter: Joachim Grueneis | Enh. |  | All
2157 | 20071006 | Joachim Grueneis | Werner Guttmann | Fixed different behaviour of Configuration constructors. Reporter: Joachim Grueneis | Enh. |  | All
2119 | 20071002 | Joachim Grueneis | Werner Guttmann | Introduced new internal configuration handling for Castor XML. Reporter: Joachim Grueneis | Enh. |  | XML
2177 | 200710002 | Ralf Joachim | Ralf Joachim | Added support for custom type convertors. Reporter: Ralf Joachim | Enh. |  | JDO
2166 | 20071001 | Joachim Grueneis | Joachim Grueneis | 'bin/build clean' cleans all build directories including those of test Reporter: Joachim Grueneis | Improvement |  | General
2167 | 20071001 | Joachim Grueneis | Joachim Grueneis | Modify CTFRun.sh to match changes in CTFRun.bat Reporter: Joachim Grueneis | Improvement |  | General
2162 | 20070923 | Werner Guttmann | Werner Guttmann | Switched Castor XML to fully use JAXP to obtain XML parsers Reporter: Werner Guttmann | Bug |  | XML
2158 | 20070922 | Werner Guttmann | Werner Guttmann | Fixed NullPointerException in FieldValidator.validate(Object, ValidationContext) Reporter: Werner Guttmann | Bug |  | XML
2153 | 20070921 | Werner Guttmann | Werner Guttmann | Fixed problem with validation of <xs:NMTOKEN> during unmarshalling. Reporter: Rahul Mahboobani | Enh. |  | XML
2147 | 20070921 | Tom van den Berge | Werner Guttmann | Added HTML documentation for configurable field handlers. Reporter: Tom van den Berge | Enh. |  | XML
2149 | 20070921 | Tom van den Berge | Werner Guttmann | Added 'changes' section to release notes re: configurable field handlers. Reporter: Tom van den Berge | Enh. |  | XML
2148 | 20070921 | Tom van den Berge | Werner Guttmann | Added HOW-TO configurable field handlers. Reporter: Tom van den Berge | Enh. |  | XML
2015 | 20070911 | Werner Guttmann | Werner Guttmann | Fixed a problem with support for 'strict elements' related to introspection during XML unmarshalling. Reporter: Reginals Ratherfurp | Bug |  | XML
2044 | 20070911 | Shawn Crook | Werner Guttmann | Fixed support for milliseconds with XML schema durations. Reporter: Shawn Crook | Bug |  | XML
2042 | 20070911 | Tom van den Berge | Werner Guttmann | Added support for configurable field handlers. Reporter: Tom van den Berge | Enh. |  | XML
2127 | 20070910 | Werner Guttmann | Werner Guttmann | Improved documentation for using mapping files with Castor XML. Reporter: Michael Moynihan | Enh. |  | HTML
2046 | 20070910 | Werner Guttmann | Werner Guttmann | Moved section on dependencies to a new HTML page. Reporter: Werner Guttmann | Bug |  | HTML
2051 | 20070910 | Werner Guttmann | Werner Guttmann | Fixed problem with low centuries and the use of dates. Reporter: Lars Bilger | Bug |  | XML
2110 | 20070909 | Werner Guttmann | Werner Guttmann | Fixed problem related to the usage of <xs:unsignedInt> in extensions Reporter: Bastian Doetsch | Bug |  | Gen.
2141 | 20070906 | Matthias Epheser | Werner Guttmann | Fixed problem with code generation of Java 5 enums related to default values Reporter: Ron Corcuera | Bug |  | Gen.
2124 | 20070829 | Matthias Epheser | Werner Guttmann | Introduced pluggable interface for handling (JAXB and other) annotations during XML code generation. Reporter: Matthias Epheser | Enh. |  | Gen.
2122 | 20070828 | Matthias Epheser | Werner Guttmann | Added 'org.exolab.castor.builder.forceJava4Enums' property to fine-tune code generation for enums in Java 5. Reporter: Matthias Epheser | Enh. |  | Gen.
2109 | 20070827 | Matthias Epheser | Werner Guttmann | Added support for un-/marshalling extended JAVA 5 enums. Reporter: Matthias Epheser | Bug |  | XML
2112 | 20070824 | Werner Guttmann | Werner Guttmann | Fixed performance issue with validation related to IDHREFs. Reporter: Carlo Romero | Enh. |  | Gen.
2117 | 20070824 | Matthias Epheser | Werner Guttmann | Added support for generating genuine Java 5 enums for simply type enumerations. Reporter: Matthias Epheser | Enh. |  | Gen.
2078 | 20070816 | Werner Guttmann | Werner Guttmann | Fixed problem with code generation for nested choices. Reporter: Ron Corcuera | Enh. |  | Gen.
2114 | 20070814 | Joachim Grüneis | Werner Guttmann | Removed code duplication from static Marshaller.marshal() methods. Reporter: Joachim Grüneis | Enh. |  | XML
2106 | 20070814 | Matthias Epheser | Werner Guttmann | Moved code for field and method creation (out of FieldInfos) into new factory classes. This is in preparation for JAXB work. Reporter: Matthias Epheser | Enh. |  | XML
2113 | 20070814 | Werner Guttmann | Werner Guttmann | Removed code duplication from static Unmarshaller.unmarshal() methods. Reporter: Werner Guttmann | Enh. |  | XML
2104 | 20070811 | Joachim Grüneis | Ralf Joachim | Refactored JavaNaming. Reporter: Joachim Grüneis | Enh. |  | XML
2099 | 20070810 | Werner Guttmann | Werner Guttmann | Fixed problem with creation of example sources JAR. Reporter: Alex Vendrow | Bug |  | XML
2077 | 20070809 | Werner Guttmann | Werner Guttmann | Fixed problem with code generation for hexBinary collections. Reporter: Jeremie Poutrin | Bug |  | XML
2055 | 20070806 | Ralf Joachim | Ralf Joachim | Use refactored Castor configuration at JDO modul. Reporter: Ralf Joachim | Enh. |  | JDO
2012 | 20070804 | Jim Procter | Ralf Joachim | Fixed infinite recursion with cyclid IDREFs at hashCode() and equals(). Reporter: Jim Procter | Enh. |  | XML
2011 | 20070804 | Jim Procter | Ralf Joachim | Call hashCode() of the base XML type at hashCode() of generated class. Reporter: Jim Procter | Enh. |  | XML
2100 | 20070804 | Ralf Joachim | Ralf Joachim | Fixed sealing violation occured when using castor-jdo. Reporter: Brian Schlining | Bug |  | JDO
2058 | 20070804 | Ralf Joachim | Ralf Joachim | Cleaned up checkstyle and compiler warnings at JDO modul. Reporter: Ralf Joachim | Enh. |  | JDO
2048 | 20070802 | Werner Guttmann | Werner Guttmann | Fixed NPE related to usage of <xsd:union>. Reporter: Ezequiel Puig | Bug |  | XML
1932 | 20070728 | Joachim Grüneis | Ralf Joachim | Splited ClassDescriptorResolver to be more expandable for future needs. Reporter: Joachim Grüneis | Enh. |  | XML
1927 | 20070725 | Ralf Joachim | Ralf Joachim | Refactored Castor configuration. Reporter: Ralf Joachim | Enh. |  | All
1342 | 20070724 | Ralf Joachim | Ralf Joachim | Added special processing of proxied classes. Reporter: Stephen Bash | Enh. |  | XML
2037 | 20070713 | Water Guo | Werner Guttmann | Added missing property to XML FAQ entry on Xerces and Java 5. Reporter: Water Guo | Bug. |  | XML
2034 | 20070711 | Sachith Dhanushka | Werner Guttmann | Changed visibility for various schema-related classes to support JAXB 2.x work. Reporter: Sachith Dhanushka | Enh. |  | XML
2034 | 20070703 | Werner Guttmann | Werner Guttmann | Fixed broken complex type bindings in 'bindings' HOW-TO. Reporter: Mauricio Hiroshi Nagaoka | Bug |  | XML
2032 | 20070702 | Werner Guttmann | Werner Guttmann | Improved documentation for use of JDK-internal Xerces instance. Reporter: Belkorin | Bug |  | XML

# Release 1.1.2.1

Description: | Maintenance release for Castor 1.1
released: | June 28, 2007
managed by: | Werner Guttmann

## Changes

This release is a minor release only and essentially fixes a regression issue of 1.1.2 that basically prevents specific user groups from using 1.1.2. Please see below issue list for details.

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
2013 | 20070625 | Ralf Joachim | Ralf Joachim | Fixed wasting of processing time on string concatenation in log statements. Reporter: Ralf Joachim | Enh. |  | All
2023 | 20070623 | Werner Guttmann | Werner Guttmann | Fixed problem with duplicate IDs in id/idhref leniency mode. Reporter: Carlo Romero | Bug |  | XML

# Release 1.1.2

Description: | Maintenance release for Castor 1.1
released: | June 17, 2007
managed by: | Werner Guttmann

## Additions

### Added support for (un-)marshalling Java 5 enums

Castor XML now supports Java 5 enums in all cases where either a mapping file is used or it is relied upon default introspection.

## Changes

### Binary JARs restructured

As part of this release, we have again moved several areas of functionality to separate deployment units, resulting into additional JARs available for download:

- | Castor JDO

Please note that the Castor JAR does not include this component anymore. In other words, if you want to use Castor JDO as a persistence framework, you will have to download both the Castor XML and Castor JDO JARs, as Castor JDO internally uses Castor XML. For details, please have a look at the download instructions.

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
1926 | 20070617 | Werner Guttmann | Werner Guttmann | Extended code that depends on id/href leniency. Reporter: Werner Guttmann | Bug |  | XML
2007 | 20070614 | Ralf Joachim | Ralf Joachim | SVN moved JDO files from src/bugs and src/tests to cpactf/src/test. Reporter: Ralf Joachim | Enh. |  | JDO
2017 | 20070614 | Werner Guttmann | Werner Guttmann | Fixed ArrayIndexOutOfBoundException in related to timezone offsets that include minutes. Reporter: Bill Robertson | Bug |  | XML
2009 | 20070611 | Werner Guttmann | Werner Guttmann | Added 'xmlctf' module to source JARs. Reporter: Petteri Räty | Bug |  | Gen
2008 | 20070609 | Ralf Joachim | Petteri Räty | Fixed CLONE-BigDecimal usage in Types.java that can't run on jre1.4.2. Reporter: Ralf Joachim | Enh. |  | XML
2005 | 20070607 | Ralf Joachim | Ralf Joachim | SVN moved log4j database appender to examples modul. Reporter: Ralf Joachim | Enh. |  | JDO
2006 | 20070607 | Ralf Joachim | Ralf Joachim | SVN moved JDO files from src/test/java into cpa/src/test/java. Reporter: Ralf Joachim | Enh. |  | JDO
2004 | 20070607 | Ralf Joachim | Ralf Joachim | SVN moved JDO files from src/main/resources into cpa/src/main/resources. Reporter: Ralf Joachim | Enh. |  | JDO
2001 | 20070607 | Ralf Joachim | Ralf Joachim | SVN moved JDO files from src/main/java into cpa/src/main/java. Reporter: Ralf Joachim | Enh. |  | JDO
2000 | 20070607 | Ralf Joachim | Ralf Joachim | Created basic modul structur for JDO modul including eclipse configuration. Reporter: Ralf Joachim | Enh. |  | JDO
1774 | 20070607 | Le Duc Bao | Ralf Joachim | Replaced PrintStream and StringBuffer by a Writer implementation. Reporter: Ralf Joachim | Enh. |  | JDO
991 | 20070601 | Werner Guttmann | Werner Guttmann | Fixed a problem with incorrect import statements/class name references in the context of included/imported XML schemas. Reporter: Godmar Back | Bug |  | Gen.
991 | 20070528 | Michael Kopp | Werner Guttmann | Added support for Java 5 enums during unmarshalling. Reporter: Michael Kopp | Enh. |  | XML
1221 | 20070526 | Werner Guttmann | Werner Guttmann | Added support for Java 5 enums during marshalling. Reporter: Benoit Xhenseval | Enh. |  | XML
1985 | 20070524 | Werner Guttmann | Werner Guttmann | Trace statements output only if in trace mode. Reporter: Ed Wallen | Bug |  | XML
1850 | 20070515 | Werner Guttmann | Paul Philion | Refactored toString() method of XMLException. Reporter: Paul Philion | Bug |  | XML
1769 | 20070515 | Werner Guttmann | Werner Guttmann | Added get-/setProperty() methods to (un-)Marshaller so that properties can be set programmatically. Reporter: Werner Guttmann | Enh. |  | XML
1982 | 20070514 | Werner Guttmann | Werner Guttmann | Fixed a problem with namespace processing in the context of substitution groups. Reporter: Ted Troccola | Bug |  | Gen
1981 | 20070514 | Werner Guttmann | Werner Guttmann | Fixed a problem with the processing of substitution groups if sequence + order validation enabled.. Reporter: Ted Troccola | Bug |  | Gen
1971 | 20070509 | Werner Guttmann | Werner Guttmann | Made org.exolab.castor.persists.spi.Identity implement java.io.Serializable. Reporter: Gonzalo Abollado | Bug |  | JDO
1964 | 20070506 | Werner Guttmann | Werner Guttmann | Fixed problem with picking up SAX features from custom castor.properties. Reporter: Anti Orgla | Bug |  | XML
1962 | 20070505 | Werner Guttmann | Werner Guttmann | Introduced new 'lenient' properties in castor.properties so that new sequence order and id/href validation can be selectively turned off. Reporter: Carlo Romero | Enh |  | XML
1896 | 20070430 | Werner Guttmann | Werner Guttmann | Removed (illegal) underscores from calls to PropertyChangeListeners. Reporter: Azgard | Bug |  | XML
1957 | 20070430 | Paul Philion | Werner Guttmann | Switched logging for Unmarshaller/UnmarshalHandler to commons-logging. Reporter: Paul Philion | Bug |  | XML
1947 | 20070429 | Werner Guttmann | Werner Guttmann | Fixed problem with access to values stored in ehcache related to expiration. Reporter: Gonzalo Abollado | Bug |  | JDO
1955 | 20070426 | Werner Guttmann | Werner Guttmann | Improved handling of global/local element collisions with identical type for automatic class conflict resolution Reporter: Werner Guttmann | Bug |  | XML
1921 | 20070425 | Werner Guttmann | Werner Guttmann | Fixed incorrect Java version number (as used in Marshaller). Reporter: Dmitry Savenko | Bug |  | XML
1954 | 20070425 | Werner Guttmann | Werner Guttmann | XML code generator does not create property* methods for enumerations anymore. Reporter: Godmar Back | Bug |  | Gen
1952 | 20070423 | Ralf Joachim | Ralf Joachim | Moved examples into a separate modul. Reporter: Ralf Joachim | Enh. |  | All

# Release 1.1.1

Description: | Maintenance release for Castor 1.1
released: | April 22, 2007
managed by: | Werner Guttmann

## Additions

### Added support for substitution groups

Support for substitution groups has been added. This new feature is marked as experimental simply to indicate that we'd appreciate as much feedback and testing as possible.

### Added 'automatic class name conflict resolution' mode

The XML code generator now support a new 'automatic class name conflict resolution' mode that will minimize - if not completely prevent - class name conflicts during code generation.

To enable this mode, please set the following property in your custom `castorbuilder.properties` file as shown below:

    # Specifies whether automatic class name conflict resolution
    # should be used or not; defaults to false.
    #
    org.exolab.castor.builder.automaticConflictResolution=true

This new mode will avoid class name conflicts by prepending XPATH fragments or type suffices to the 'normal' class name as generated otherwise.

### Validation of <xs:sequence> order

Added support for validation of correct order of elements of <xsd:sequence> typed complex types during unmarshaling. A `ValidationException` will be thrown if the expected order cannot be matched.

### Added support for <xs:hexBinary>

Added support for the XML schema type <xs:hexBinary> during XML code generation.

### Added new <contentMember> element to binding filesupport for the `hexBinary` data type

This new element (child of a <componentBinding>) allows one to specify a custom member name for the `content` member as generated for a mixed mode complex type definition.

### Added support for the `hexBinary` data type

The XML (Un-)Marshaller now supports the data type `hexBinary`.

### Improved interface of XMLClassDescriptorResolver

The public interface of `XMLClassDescriptorResolver` has been improved and streamlined, adding various new methods for pre-loading class descriptors. Please check here for details.

### Added Unmarshaller.setObject(Object)

To specify an existing root object to be used during unmarshalling, setObject(Object) has been added, alternatively to the Unmarshaller(Object) constructor.

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
1945 | 20070418 | Doug Daniels | Werner Guttmann | Fixed problem with 'time' type handling in XML instance to schema generator. Reporter: Doug Daniels | Bug |  | XML
1937 | 20070416 | Paul Croarkin | Werner Guttmann | Relaxed various checks in the default ID resolver implementation so that those checks are executed only when the Unmarshaller is configured to be 'validating'. Reporter: Paul Croarkin | Bug |  | XML
1943 | 20070409 | Werner Guttmann | Werner Guttmann | Added Unmarshaller.setObject(Object) to allow setting of a root object for unmarshalling. Reporter: Werner Guttmann | Bug |  | Gen
1939 | 20070409 | Werner Guttmann | Werner Guttmann | Fixed regression issue with automatic conflict resolution and global element conflicts. Reporter: Werner Guttmann | Bug |  | Gen
1935 | 20070406 | Chris Keller | Werner Guttmann | Fixed problem with importing from same namespace multiple times where one import actually includes the other. Reporter: Chris Keller | Bug |  | Gen
1938 | 20070406 | Werner Guttmann | Werner Guttmann | Fixed NPE for extended types with <xs:any> members Reporter: Dave Hauver | Bug |  | Gen
1936 | 20070404 | Werner Guttmann | Werner Guttmann | Made XPathLocation implement java.io.Serializable. Reporter: Dan Smith | Bug |  | Gen
1931 | 20070403 | Werner Guttmann | Werner Guttmann | Fixed problem with enum bindings for interger-based enumerations. Reporter: Scott C Arnold | Bug |  | Gen
1928 | 20070401 | Werner Guttmann | Werner Guttmann | Fixed problem with not-specified binding file during automatic naming collision resolution. Reporter: David M. Karr | Bug |  | Gen
238 | 20070401 | Werner Guttmann | Werner Guttmann | Added support for 'overriding' the name of the Java 'content' member. Reporter: Werner Guttmann | Bug |  | Gen
423 | 20070401 | Johan Lindquist | Werner Guttmann | Added support for <xs:hexBinary> for XML code generation and support for HEX en-/decoding during (un)marshalling. Reporter: Johan Lindquist | Bug |  | XML
1926 | 20070331 | Werner Guttmann | Werner Guttmann | Renamed XMLClassDescriptorResolver.resolveXML(Class) back to resolve(Class). Reporter: Werner Guttmann | Task |  | XML
1925 | 20070330 | Werner Guttmann | Werner Guttmann | Fixed syntax of closing <forces> tag in JClassRegistry.printSummary(). Reporter: Werner Guttmann | Bug |  | Gen
1891 | 20070319 | Werner Guttmann | Werner Guttmann | Fixed problem with using enum types as constructor arguments Reporter: Uwe Langbecker | Bug |  | XML
1900 | 20070319 | Werner Guttmann | Werner Guttmann | Fixed problem with choices during automatic name conflict resolution Reporter: Werner Guttmann | Bug |  | XML
1909 | 20070318 | Werner Guttmann | Werner Guttmann | Improved validation for global elements during XML schema processing Reporter: Stoil Valchkov | Bug |  | XML
1914 | 20070316 | Werner Guttmann | Werner Guttmann | Replaced custom java.util.Enumeration implementation with java.util.Iterator. Reporter: Werner Guttmann | Enh. |  | XML
1911 | 20070316 | Werner Guttmann | Werner Guttmann | Improved and stream-lined public interface of XMLClassDescriptorResolver. Reporter: Werner Guttmann | Bug |  | XML
1910 | 20070316 | Steven Dolg | Werner Guttmann | Fixed problem with (incorrectly) caching class descriptors in XMLClassDescriptorResolver. Reporter: Simon Lord | Bug |  | XML
1905 | 20070313 | Werner Guttmann | Werner Guttmann | Fixed bug in string normalization during code generation. Reporter: Simon Lord | Bug |  | Gen
1897 | 20070313 | Werner Guttmann | Werner Guttmann | Added documentation for 'org.exolab.castor.builder.automaticConflictResolution' property. Reporter: Werner Guttmann | Bug |  | Gen
1899 | 20070313 | Werner Guttmann | Werner Guttmann | Fixed problem in ElementDecl.getSubstitutionGroup() related to global element references. Reporter: Werner Guttmann | Bug |  | Gen
1902 | 20070313 | Werner Guttmann | Werner Guttmann | Fixed problem with validation of empty choices during unmarshalling. Reporter: Pascal Maugeri | Bug |  | XML
1276 | 20070316 | Brian Schlining | Ralf Joachim | Added a method for forcing the timezone for dates written to the database. Reporter: Brian Schlining | Bug |  | JDO
1895 | 20070312 | Werner Guttmann | Werner Guttmann | Fixed problem with printing annotations correctly (schema writer). Reporter: Oliver Fourman | Bug |  | XML
1893 | 20070307 | Werner Guttmann | Werner Guttmann | Fixed problem with sequence validation and substitution groups. Reporter: Werner Guttmann | Bug |  | XML
1812 | 20070303 | Steven Dolg | Ralf Joachim | Fixed problem with SQLException: Column Index out of range. Reporter: Igarki San Millan | Bug |  | JDO
1886 | 20070228 | Werner Guttmann | Werner Guttmann | Fixed problem with ClassChoice() creation in MappingFileSourceFactory. Reporter: Michele Lazzeri | Bug |  | Gen.
1880 | 20070223 | Steven Dolg | Werner Guttmann | Fixed problem with illegal field name suffix 'Choice'. Reporter: Steven Dolg | Bug |  | Gen.
1882 | 20070223 | Werner Guttmann | Werner Guttmann | Fixed problem with IDREF validation with 'forward references'. Reporter: Werner Guttmann | Bug |  | Gen.
1877 | 20070223 | Werner Guttmann | Werner Guttmann | Fixed problem with build scripts (Windows) related to blanks as part of ENV variables. Reporter: Guy Coleman | Bug |  | Gen.
1879 | 20070223 | Werner Guttmann | Werner Guttmann | Added 'setClass(Class)' method to Unmarshaller to allow sepecification of an 'expected' class. Reporter: Saladin Sharif | Enh. |  | XML
1875 | 20070219 | Werner Guttmann | Werner Guttmann | Added new command line parameter 'nameConflictStrategy' to SourceGeneratorMain. Reporter: David M. Karr | Enh. |  | JDO
1787 | 20070219 | Werner Guttmann | Ralf Joachim | Added ant task for DDL generator. Reporter: Werner Guttmann | Enh. |  | JDO
1869 | 20070219 | Ralf Joachim | Werner Guttmann | Fixed problem with identifying 'identity' field in the context of extension hierarchies. Reporter: Uwe Langbecker | Bug |  | XML
1873 | 20070218 | Ralf Joachim | Ralf Joachim | Moved Test Framework of Castor Persistence to its own module. Reporter: Ralf Joachim | Enh. |  | JDO
1872 | 20070218 | Werner Guttmann | Werner Guttmann | Fixed problem with completeness of tarballs in the download area. Reporter: David M. Karr | Bug |  | Gen
1871 | 20070217 | Ralf Joachim | Ralf Joachim | Changed package name of performance test framework. Reporter: Ralf Joachim | Enh. |  | JDO
1870 | 20070217 | Ralf Joachim | Ralf Joachim | Moved Performance Test Framework of Castor Persistence to its own module. Reporter: Ralf Joachim | Enh. |  | JDO
1866 | 20070217 | Werner Guttmann | Werner Guttmann | Fixed problem with 'required' attributes in the context of containers. Reporter: Werner Guttmann | Enh. |  | Gen
1865 | 20070211 | Guy Coleman | Werner Guttmann | Fixed problem with 'required' attributes in the context of containers. Reporter: Guy Coleman | Enh. |  | Gen
1852 | 20070211 | Werner Guttmann | Werner Guttmann | Added an 'automatic class name conflict resolution' mode to the XML code generator. Reporter: Werner Guttmann | Enh. |  | Gen
1811 | 20070211 | Werner Guttmann | Werner Guttmann | Added support for validation of correct order of elements of <xsd:sequence> during unmarshalling. Reporter: Werner Guttmann | Bug |  | Gen

# Release 1.1

Description: | Release of Castor 1.1 GA
released: | February 10, 2007
managed by: | Werner Guttmann

## Additions

### Extended XMLClassDescriptorResolver

Added new functionality to XMLClassDescriptorResolver to pre-load class descriptors for a package. Please find details about this new feature at the best practises for Castor XML.

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
1198 | 20070201 | Werner Guttmann | Werner Guttmann | ID resolution now takes validation configuration into account. Reporter: Stephen Bash | Bug |  | XML
1861 | 20070131 | Werner Guttmann | Werner Guttmann | Added new functionality to XMLClassDescriptorResolver to pre-load class descriptors for a package. Reporter: Nick Pilch | Enh. |  | XML

# Release 1.1-M3

Description: | 3rd milestone release for Castor 1.1
released: | January 29, 2007
managed by: | Werner Guttmann

## Changes

### XML serialization with JDK 5.0

As Sun has included Apache's Xerces with Java 5.0 by default, we have added support for using the Xerces instance as shipped with the JRE/JDK for serialization. As such, for Java 5.0 users, this removes the requirement to download Xerces separately.

To enable this new feature, please change the following property in your local `castor.properties` file (thus redefining the default value) as shown below:

    # Defines the (default) XML serializer factory to use by Castor, which must
    # implement org.exolab.castor.xml.SerializerFactory; default is
    # org.exolab.castor.xml.XercesXMLSerializerFactory
    org.exolab.castor.xml.serializer.factory=org.exolab.castor.xml.XercesJDK5XMLSerializerFactory

### Castor under JDK 6

As of this release, Castor now builds under JDK 6.0. Castor XML has been tested under JDK 6.0. However, Castor JDO has not really been tested under JDK 6.0. Note that you may need to use a JDBC 4.0 compatible connector with this new JDK.

### Codegen

If you are using the Castor code generator to generate code from schemas that use `xsd:import`, whether or not code was generated from the imported schemas was controlled by a combination of switches. Now it is controlled only by the "-generateImportedSchemas" option of SourceGeneratorMain, the Ant task option of the same name, or if you are calling codegen programmatically, the method `sgen.setGenerateImportedSchemas(true);`.

### XML CTF

The XML CTF has been moved to its own area. It has been moved from ./src/tests/ into ./xmlctf/. All scripts to run the CTF have been updated for this change.

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
1860 | 20070128 | Edward Kuns | Edward Kuns | Move CTF-XML classes to a new package Reporter: Edward Kuns | Enh. |  | CTF
1859 | 20070128 | Edward Kuns | Edward Kuns | Clean up JavaDoc build errors Reporter: Edward Kuns | Enh. |  | Gen
1858 | 20070128 | Edward Kuns | Edward Kuns | Move XML CTF from src/tests to xmlctf Reporter: Edward Kuns | Enh. |  | CTF
1644 | 20070127 | Ralf Joachim | Ralf Joachim | Refactored creation of ClassDescriptors through MappingLoader. Reporter: Ralf Joachim | Enh. |  | All
1854 | 20070122 | Werner Guttmann | Werner Guttmann | Fixed problem with not closed file handles for '.castor.cdr' during code generation. Reporter: Werner Guttmann | Bug |  | Gen
1851 | 20070118 | Edward Kuns | Edward Kuns | Add to CTF the ability to control whether or not code is generated from imported schema Reporter: Edward Kuns | Enh. |  | CTF
1839 | 20070118 | Werner Guttmann | Werner Guttmann | Re-generated classes for binding files, in preparation for adding support for new <componentBinding> Reporter: Werner Guttmann | Enh. |  | Gen
1847 | 20070117 | Edward Kuns | Edward Kuns | Minor improvement in validation classes Reporter: Edward Kuns | Enh. |  | XML
1839 | 20070117 | Werner Guttmann | Werner Guttmann | Fixed problem with derivation of Java types for UNIONs that are part of restriction hierarchies. Reporter: Daniel Nilsson | Bug |  | Gen
1841 | 20070117 | Werner Guttmann | Werner Guttmann | Fixed documentation for 'defaultBindingType' attribute in XMl code generation documentation. Reporter: David M. Karr | Bug |  | Doc
1762 | 20070116 | Edward Kuns | Edward Kuns | Castor does not build under JDK 6; jdo/engine/ClobImpl does not override abstract getCharacterStream(long,long) Reporter: Edward Kuns | Enh. |  | JDO
1827 | 20070115 | Werner Guttmann | Werner Guttmann | Moved part sof XSList code into new XSNMTokens and XSIdRefs classes. Reporter: Werner Guttmann | Enh. |  | Gen
1837 | 20070114 | Edward Kuns | Edward Kuns | Fix small Java 1.3 regressions in XML code Reporter: Edward Kuns | Enh. |  | XML
1832 | 20070113 | Edward Kuns | Edward Kuns | Fix minor inaccuracies in CTF Reporter: Edward Kuns | Enh. |  | CTF
1831 | 20070113 | Edward Kuns | Edward Kuns | Remove Adaptx from Castor; add new implementation of xmldiff for CTF Reporter: Edward Kuns | Enh. |  | CTF
1829 | 20070112 | Werner Guttmann | Werner Guttmann | Fully qualified references to java.lang.Object in CollectionInfo.createRemobeByIndexMethod(). Reporter: Werner Guttmann | Bug |  | Gen
1817 | 20070108 | Edward Kuns | Edward Kuns | Clean up Java 5 build complaints in ddlgen Reporter: Edward Kuns | Enh. |  | JDO
1816 | 20070108 | Edward Kuns | Edward Kuns | Cleanup on ddlgen properties doc Reporter: Edward Kuns | Enh. |  | Doc
1813 | 20070109 | Ralf Joachim | Ralf Joachim | Refactored org.exolab.castor.builder.types package. Reporter: Ralf Joachim | Enh. |  | XML
1814 | 20070108 | Werner Guttmann | Werner Guttmann | Added support for XML serialization using Xerces as bundled with JDK 5.0 Reporter: Werner Guttmann | Bug |  | XML
1804 | 20070104 | Edward Kuns | Edward Kuns | RandomHelper needs updates Reporter: Edward Kuns | Bug |  | Test
1810 | 20070104 | Edward Kuns | Edward Kuns | Incorrect import lines in generated classes: dots are missing Reporter: Carlo Romero | Bug |  | Gen
1809 | 20070103 | Edward Kuns | Edward Kuns | Finish cleanup of RSS file Reporter: Edward Kuns | Enh |  | RSS
1808 | 20070103 | Edward Kuns | Edward Kuns | Cleanup of misc documentation Reporter: Edward Kuns | Enh |  | Doc
1807 | 20070103 | Edward Kuns | Edward Kuns | Add RSS feed link to index + news page Reporter: Edward Kuns | Enh |  | Doc
1798 | 20070103 | Ralf Joachim | Ralf Joachim | Cleaned up 246 warnings of differnet kind in builder package. Reporter: Ralf Joachim | Enh. |  | XML
1805 | 20070103 | Ralf Joachim | Ralf Joachim | Made org.exolab.castor.tools.ant.taskdefs.CastorSourceGenTask delegate to CastorCodeGenTask. Reporter: Edward Kuns | Enh. |  | XML
1797 | 20070102 | Ralf Joachim | Ralf Joachim | Cleaned up 929 'Design For Extension' warnings at builder package. Reporter: Ralf Joachim | Enh. |  | XML
1796 | 20070102 | Ralf Joachim | Ralf Joachim | Cleaned up 351 'Maximum Line Length' warnings at builder package. Reporter: Ralf Joachim | Enh. |  | XML
1793 | 20070102 | Ralf Joachim | Ralf Joachim | Cleaned up 635 warnings with braces and whitespaces at builder package. Reporter: Ralf Joachim | Enh. |  | XML
1795 | 20070102 | Ralf Joachim | Ralf Joachim | Cleaned up 466 'Final Parameters' warnings at builder package. Reporter: Ralf Joachim | Enh. |  | XML
1794 | 20070102 | Ralf Joachim | Ralf Joachim | Cleaned up 316 'Style Javadoc' warnings at builder package. Reporter: Ralf Joachim | Enh. |  | XML
1800 | 20070101 | Edward Kuns | Edward Kuns | Tune checkstyle rules Reporter: Edward Kuns | Enh |  | All
1799 | 20070101 | Edward Kuns | Edward Kuns | XML handler & descriptor checkstyle cleanup Reporter: Edward Kuns | Enh |  | XML
1792 | 20070102 | Ralf Joachim | Ralf Joachim | Cleaned up 344 'Paren Pad' warnings at builder package. Reporter: Ralf Joachim | Enh. |  | XML
1790 | 20070102 | Ralf Joachim | Ralf Joachim | Refactored javasource package to resolve 'Design by extension' complaints of checkstyle. Reporter: Ralf Joachim | Enh. |  | XML
1789 | 20070101 | Ralf Joachim | Ralf Joachim | Cleaned up checkstyle warnings/infos at javasource package of codegen module. Reporter: Ralf Joachim | Enh. |  | XML
1776 | 20061231 | Ralf Joachim | Ralf Joachim | Cleaned up checkstyle warnings at anttask module and introduce new CastorCodeGenTask. Reporter: Ralf Joachim | Enh. |  | XML
1786 | 20061229 | Edward Kuns | Edward Kuns | Checkstyle-based corrections in codegen Reporter: Edward Kuns | Enh |  | XML
1785 | 20061229 | Edward Kuns | Edward Kuns | Update checkstyle to work under UNIX + Windows both Reporter: Edward Kuns | Enh |  | All
1784 | 20061229 | Edward Kuns | Edward Kuns | Checkstyle-based corrections in anttask Reporter: Edward Kuns | Enh |  | Ant

# Release 1.1-M2

Description: | 2nd milestone release for Castor 1.1
released: | December 29, 2006
managed by: | Werner Guttmann

## Additions

### DDL Generator

At the Google Summer of Code program for 2006, the student Le Duc Bao worked for Castor. With support of his mentor Ralf Joachim, he implemented a generator for DDL scripts from scratch.

Castor DDL Generator creates a SQL script to drop/create tables, unique keys, sequences and so on, from a Castor JDO mapping file.

Example:

    java org.castor.ddlgen.Main -m mapping.xml

This will generate the SQL script `mapping.sql` in the same directory `mapping.xml` is located.

### The code generator now supports multiple pattern facets properly.

## Changes

### Binary JARs restructured

As part of this release, we have started to move several areas of functionality to separate deployment units, resulting into additional JARs available for download:

- | XML code generator
- | Ant task for XML code generator

In addition, as outlined above, the new DDL generator has been made available as a separate deployment unit as well, resulting into ...

- | DDL generator

Please note that the Castor XML (and JDO) JARs do not include these components anymore. In other words, if you want to use both Castor XML (for (un-)marshaling) and the XML code generator for code generation from an XML schema, you will have to download both JARs. For details, please have a look at the download instructions.

### Code generation for <xs:int> and <xs:integer>

As part of the work for fixing bug 1760, it has been recognized that the approach taken as part of working on issue 1741 was slightly too ambitious.

As such, the XML code generator has been changed (again) to generate the following Java types for elements/attributes typed with <xs:int> and <xs:integer>:

Type | Old Java type | New Java type
--- | --- | ---
<xs:int> | java.lang.Integer/int | java.lang.Integer/int
<xs:integer> | java.lang.Integer/int | java.lang.Long/long

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
112 | 20061229 | Le Duc Bao | Ralf Joachim | Added generation of SQL scripts from mapping file. Reporter: Erwin Bolwidt | Enh. |  | All
1763 | 20061228 | Werner Guttmann | Werner Guttmann | Moved Ant task definition for XML code generator to separate deployment unit. Reporter: Werner Guttmann | Bug |  | XML
279 | 20061228 | Edward Kuns | Edward Kuns | Source Generator: Multiple pattern strings ignored Reporter: jcarter | Bug |  | XML
188 | 20061227 | Edward Kuns | Edward Kuns | SourceGen: ClassDescriptor.getExtends() returns always null Reporter: rhierlmeier | Bug |  | XML
1765 | 20061225 | Edward Kuns | Edward Kuns | Add xml/validators to checkstyle and do checkstyle cleanup Reporter: Edward Kuns | Enh. |  | XML
1722 | 20061225 | Werner Guttmann | Werner Guttmann | Added support for validating <xsd:IDREF>> and <xsd:IDREFS> during (un)marshalling. Reporter: Werner Guttmann | Bug |  | XML
1764 | 20061225 | Werner Guttmann | Werner Guttmann | Fixed problem with incorrectly generated qualified class name for classes in type hierarchies. Reporter: Werner Guttmann | Bug |  | XML
1760 | 20061225 | Werner Guttmann | Werner Guttmann | <xsd:int> mappes onto Java type 'int/java.lang.Integer' again. Reporter: Werner Guttmann | Bug |  | XML
1761 | 20061223 | Edward Kuns | Edward Kuns | Java 5 breaks BigDecimal validation Reporter: Edward Kuns | Bug |  | XML
1758 | 20061223 | Edward Kuns | Edward Kuns | Complete facet handling for numerical types Reporter: Edward Kuns | Enh |  | XML

# Release 1.1-M1

Description: | Milestone release for Castor 1.1
released: | December 23, 2006
managed by: | Werner Guttmann

## Changes

### Code generation for <xs:int> and <xs:integer>

As part of the work for fixing bug 1421, it has been recognized that the code generated pre-patch did not comply with the set of rules defined in the XML schema specification.

As such, the XML code generator has been changed to generate the following Java types for elements/attributes typed with <xs:int> and <xs:integer>:

Type | Old Java type | New Java type
--- | --- | ---
<xs:int> | java.lang.Integer/int | java.lang.Long/long
<xs:integer> | java.lang.Integer/int | java.lang.Long/long

The only difference between the artifacts generated is that a different Java type is used with a different (and appropriate to the specification) value range. Thus, the value range that will be accepted by the generated Java instance variables has changed.

### XML test suite execution

The CTF currently requires the Sun JDK (or SDK) to execute, although it may be possible to execute with GNU gcj or with JRockit. The CTF will not work if you are using only a JRE. This is because the CTF uses the Sun Java compiler API to compile code as needed for Source Generator and Marshaling Framework tests. The CTF code is written to allow easy extension for additional compiler frameworks, so if you use a compiler or runtime that is not supported, you should be able to easily add support for a new framework. If you want to do this, contact Castor committors for assistance and direction and they'll set you on the right course.

Two new features have been added to the CTF that allow users to add Java-version-specific tests. The first new feature applies to an entire test, that is, the full suite of tests described by a single TestDescriptor.xml file. If you add the following tag to a TestDescriptor.xml:

`<MinimumJavaVersion>1.5</MinimumJavaVersion>`

then the entire suite of tests described by that test descriptor will be skipped if the version of Java executing the test suite is not at least the minimum version specified.

For the second new feature, if you add the following tag to an individual Unit Test in a TestDescriptor.xml:

`<JavaSourceVersion>1.2</JavaSourceVersion>`

then for that individual unit test, all code will be compiled with the javac parameter `-source 1.2`, using the version specified.

For both of these parameters, you are expected to supply a value that is allowed by the `javac -source` command-line option, although if you specify an integer between `5` and `9` (inclusive), that value will automatically be converted to the correct value.

In the source generator, all facets are now implemented for all of the XML Schema date/time types with one exception: validation for the "fixed" facet of xsd:dateTime is not implemented. This is because Castor marshals dateTime as a java.util.Date, which does not contain time zone information. A later release of Castor may marshal xsd:dateTime into a java.util.Calendar instead of java.util.Date.

An additional unit test type has been added to the `MarshallingTest` and `SourceGeneratorTest` test types that allows invoking user-supplied arbitrary code that will either return a boolean "false" or an Exception if the user-test fails or it will throw an exception if the user-test fails. For a sample of this new unit test type, see the tests in the directory

`MasterTestSuite/sourcegenerator/Facets/DateTimeNoTimeZone/`

### The Source Generator now creates class descriptors in a subdirectory

Previously, the class descriptors (used during marshaling and unmarshaling to provide constraints, validation assistance, etc.) were generated into the same directory (same package) as the classes they describe. Starting with this release, the class descriptors are generated into a subpackage named "descriptors" one directory lower than the package where the classes being described are generated. Doing so prevents the class descriptors from cluttering up the directory where the code the developer cares about will be generated.

An additional benefit of this change occurs if you generate source into a directory that already contains other source code. In this instance, it can be difficult for ANT to determine whether or not you need to regenerate the generated source code, that is, whether the XSD file is newer or older than the generated source. Under the usual circumstance where the descriptors subpackage contains only generated code, you can use the ANT `<uptodate>` task to compare the timestamp of the XSD file against the timestamps of the descriptors, and thus reliably know whether or not you have to regenerate source code.

For marshaling and unmarshaling, the class descriptors will be located via the "`.castor.cdr`" files located in the directories (packages) where the classes are generated. If these files are deleted or are not kept (we highly recommend including these files in your JAR file) then the class descriptor resolver will first look for the class descriptors in the same package where the classes to be described are. If they are not found there, then the class descriptor resolver will look in a subpackage "descriptors." This maintains backwards compatibility with code generated under older Castor releases.

## Additions

### Code generation -- Specifying member visibility in binding file

It is now -- at the <member> level -- possible to specify a Java member's visibility (different from the default value "private") similar to ...

    <elementBinding name="complexType:rootType/value">
      <member visibility="protected"/>
    </elementBinding>

Valid values for the visibility attribute are `protected`, `private` and `public`, as per the definition in `binding.xsd`.

    <xsd:attribute name="visibility">
       <xsd:simpleType>
          <xsd:restriction base="xsd:string">
             <xsd:enumeration value="public"/>
             <xsd:enumeration value="protected"/>
             <xsd:enumeration value="private"/>
          </xsd:restriction>
       </xsd:simpleType>
    </xsd:attribute>

### Support for additional collection types in binding file

Added support for specifying additional collection types in a binding file, similar to ...

    <elementBinding name="complexType:rootType/list">
      <member name="myList" collection="set"/>
    </elementBinding>

The following types have been added: 'collection', 'set' and 'sortedset'.

### Extended support for validation of IDs during unmarshaling

The default IDResolverImpl class has been changed so that a validation exception will be thrown if an empty or duplicate ID value is encountered.

### Added support for <enumBinding>s

The XML code generator has been enhanced so that it is possible to provide a binding for the following enumeration ...

    <xs:simpleType name="durationUnitType">
      <xs:restriction base='xs:string'>
        <xs:enumeration value='Y' />
        <xs:enumeration value='M' />
        <xs:enumeration value='D' />
        <xs:enumeration value='h' />
        <xs:enumeration value='m' />
        <xs:enumeration value='s' />
      </xs:restriction>
    </simpleType>

as follows:

    <enumBinding name="/enumType:durationUnitType">
      <enum-def>
        <enumMember>
          <value>M</value>
          <javaName>CUSTOM_M</javaName>
        </enumMember>
      </enum-def>
    </enumBinding>

### Add support for validating <xsd:ID> during marshaling.

Castor XML now supports validation of <xsd:ID>s during marshaling, preventing the following scenarios from being marshaled successfully (throwing a ValidationException instead):

- | <xsd:ID> with empty values
- | <xsd:ID> with duplicate values

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
1756 | 20061222 | Edward Kuns | Edward Kuns | Checkstyle-based cleanup in builder/types Reporter: Edward Kuns | Enh |  | XML
1755 | 20061222 | Edward Kuns | Edward Kuns | Complete (to first pass) the test for all date/time types Reporter: Edward Kuns | Enh |  | XML
1748 | 20061222 | Werner Guttmann | Werner Guttmann | Removed state pool in UnmarshalHandler. Reporter: Werner Guttmann | Enh. |  | XML
1752 | 20061222 | Edward Kuns | Edward Kuns | Update xmlschema.xml srcgen documentation Reporter: Edward Kuns | Enh |  | Doc
1751 | 20061221 | Edward Kuns | Edward Kuns | Cleanup/update of srcgen/test documentation Reporter: Edward Kuns | Enh |  | Doc
1750 | 20061221 | Edward Kuns | Edward Kuns | General cleanup of several documentation files Reporter: Edward Kuns | Enh |  | Doc
1749 | 20061221 | Edward Kuns | Edward Kuns | Update comments in castor.properties Reporter: Edward Kuns | Enh |  | All
1738 | 20061220 | Edward Kuns | Edward Kuns | Clean up Castor XML; remove unnecessary replacements of Java 1.2 classes Reporter: Edward Kuns | Enh |  | XML
597 | 20061220 | Edward Kuns | Edward Kuns | Have SourceGenerator use a separate packages for class descriptor classes Reporter: Robert La Ferla | Enh |  | XML
1746 | 20061220 | Werner Guttmann | Werner Guttmann | Enhanced ClassNameCRStrategy with dealWithFileOverwrite() functionality. Reporter: Werner Guttmann | Enh. |  | XML
1745 | 20061219 | Edward Kuns | Edward Kuns | Update and extend comments in castorbuilder.properties Reporter: Edward Kuns | Enh |  | XML
1744 | 20061218 | Edward Kuns | Edward Kuns | Fix build for <api> links in web page Reporter: Edward Kuns | Enh |  | All
1740 | 20061218 | Werner Guttmann | Werner Guttmann | Moved all XMLFieldHandler-related code within DescriptorSourceFactory to new XMLFieldHandlerFactory component. Reporter: Werner Guttmann | Enh. |  | XML
1741 | 20061218 | Werner Guttmann | Werner Guttmann | Moved all *Info classes to a new 'builder.info' package. Reporter: Werner Guttmann | Enh. |  | XML
1720 | 20061215 | Werner Guttmann | Werner Guttmann | Add support for validating <xsd:ID>s during marshalling. Reporter: Werner Guttmann | Enh. |  | XML
1737 | 20061215 | Werner Guttmann | Werner Guttmann | Added new ClassNameCRStrategy that simply logs such conflicts without possibility of user intervention Reporter: Werner Guttmann | Enh. |  | XML
1736 | 20061214 | Werner Guttmann | Werner Guttmann | Added registry for ClassNameConflictResolutionStrategy implementations. Reporter: Werner Guttmann | Enh. |  | XML
1539 | 20061213 | Edward Kuns | Edward Kuns | toArray instead of loop Reporter: Roland Spatzenegger | Enh |  | XML
644 | 20061213 | Edward Kuns | Edward Kuns | unable to create a file called Con.java on Windows Reporter: Adrian Smith | Enh |  | XML
1734 | 20061213 | Werner Guttmann | Werner Guttmann | Introduced strategy pattern for class name conflict resolution during code generation (foundation) Reporter: Werner Guttmann | Enh. |  | XML
1693 | 20061210 | Werner Guttmann | Werner Guttmann | Moved Ant JARs into bin/lib (and thus out of lib), and amended build scripts accordingly. Reporter: Werner Guttmann | Enh. |  | General
1688 | 20061213 | James Abley | Ralf Joachim | Fixed NullPointerException thrown in ClassMolderHelper.getFullFields() during JDO initialization. Reporter: James Abley | Bug |  | JDO
1072 | 20061212 | Erik Pearson | Werner Guttmann | Fixed problem with incorrectly marshalled location tags for null collections. Reporter: Erik Pearson | Bug |  | XML
1696 | 20061212 | Werner Guttmann | Werner Guttmann | Fixed problem related to creating incorrectly typed setXXXAsReference() method for 'j2' mode. Reporter: Werner Guttmann | Enh. |  | XML
1689 | 20061212 | Werner Guttmann | Werner Guttmann | Removed redundant 'API' Javadocs from build/HTML docs. Reporter: Werner Guttmann | Enh. |  | All
1592 | 20061211 | Edward Kuns | Edward Kuns | regression import test fails Reporter: Edward Kuns | Bug |  | Test
1672 | 20061211 | Edward Kuns | Edward Kuns | Add to CTF test header the minimum JVM version for this test Reporter: Edward Kuns | Enh. |  | Test
1716 | 20061210 | Edward Kuns | Edward Kuns | Enhance CTF test names to include the directory tree path information Reporter: Edward Kuns | Enh. |  | Test
1726 | 20061210 | Werner Guttmann | Werner Guttmann | Add documentation about support for anonymous complex/simply types in binding files Reporter: Werner Guttmann | Enh. |  | XML
1725 | 20061210 | Werner Guttmann | Werner Guttmann | Add documentation about new <enumBinding>s in code generation binding Reporter: Werner Guttmann | Enh. |  | XML
1659 | 20061210 | Werner Guttmann | Werner Guttmann | Fixed problem with attribute declaration in complexType hierarchies where the attribute is untyped. Reporter: Tom Carey | Bug |  | XML
1491 | 20061209 | Werner Guttmann | Werner Guttmann | Added support for <enumBinding> elements during XML code generation. Reporter: Frederik Uyttersprot | Enh. |  | XML
1724 | 20061209 | Edward Kuns | Edward Kuns | Add ability to invoke arbitrary user-supplied code in a CTF unit test Reporter: Edward Kuns | Enh. |  | Test
1723 | 20061208 | Werner Guttmann | Werner Guttmann | Extended support for complete validation of ID values during unmarshalling. Reporter: Werner Guttmann | Enh. |  | XML
1721 | 20061206 | Werner Guttmann | Werner Guttmann | Added isValidating() method to Unmarshaller. Reporter: Werner Guttmann | Enh. |  | XML
1715 | 20061202 | Edward Kuns | Edward Kuns | SRCGEN needs to qualify all uses of members of java.lang Reporter: Edward Kuns | Bug |  | XML
1713 | 20061201 | Edward Kuns | Edward Kuns | Regression with date/time classes using String instead of java.lang.String Reporter: Quince D. Wilson | Bug |  | XML
1490 | 20061201 | Werner Guttmann | Werner Guttmann | Added new elements <enumBinding> et alias to binding XML schema. Reporter: Werner Guttmann | Enh. |  | XML
399 | 20061130 | Werner Guttmann | Werner Guttmann | Added support for specifying member visibility during code generation through binding file. Reporter: Werner Guttmann | Bug |  | XML
1710 | 20061130 | Werner Guttmann | Werner Guttmann | Fixed problem with 'excessive' sizes of classes generated for enumerations. Reporter: Quince D. Wilson | Bug |  | XML
1711 | 20061129 | Ralf Joachim | Ralf Joachim | Allowed param value to be CDATA instead of NMTOKEN at mapping.dtd. Reporter: Ralf Joachim | Bug |  | All
1709 | 20061129 | Ontje Lünsdorf | Werner Guttmann | Added support for mapping sub-classes of java.util.Enumeration/Iterator. Reporter: Ontje Lünsdorf | Bug |  | XML
1707 | 20061127 | Werner Guttmann | Werner Guttmann | Added support for collection type java.util.SortedMap Reporter: Werner Guttmann | Bug |  | XML
1708 | 20061127 | Werner Guttmann | Werner Guttmann | Added support for specifying collection types 'collection', 'set' and 'sortedset' in binding file. Reporter: Werner Guttmann | Bug |  | JDO
1706 | 20061124 | Werner Guttmann | Werner Guttmann | Fixed problem with JDO test suite (introduced with commit set 6424). Reporter: Werner Guttmann | Bug |  | JDO
1421 | 20061122 | Werner Guttmann | Werner Guttmann | Fixed support for <xs:int> and <xs:integer> for code generator. Reporter: Marcin Cinik | Bug |  | XML
1703 | 20061121 | Edward Kuns | Edward Kuns | Implement Srcgen DateTime pattern facet Reporter: Edward Kuns | Enh. |  | XML
1227 | 20061116 | Edward Kuns | Edward Kuns | Source Generator > default datetime value Reporter: Bertrand Martel | Bug |  | XML
1695 | 20061116 | Werner Guttmann | Werner Guttmann | Added various new options to code generator Ant task. Reporter: Vasily Lazerko | Enh. |  | XML
936 | 20061115 | Werner Guttmann | Werner Guttmann | Fixed problem with generated code for unbounded choices. Reporter: Len Takeuchi | Bug |  | XML
1603 | 20061113 | Ralf Joachim | Ralf Joachim | Moved CTF compilation away from ANT compiler task by directly calling compiler in tools.jar of Sun JDK. Reporter: Edward Kuns | Enh. |  | XML

# Release 1.0.5

Description: | Maintenance release for Castor 1.0
released: | November 11, 2006
managed by: | Werner Guttmann

## Changes

### XML code generation - Signature type for 'j2' collections

The Castor code generator now uses 'java.util.List' as type when generating code for a Java member (as well as the type used for the corresponding getter and setter methods) rather than the old 'java.util.ArrayList'.

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
1669 | 20061109 | Paul Philion | Werner Guttmann | Added feature to set a custom ObjectFactory for object creation on Unmarshaller Reporter: Paul Philion | Bug |  | Enh.
1678 | 20061109 | Werner Guttmann | Werner Guttmann | Fixed problem with code generation for choices used in extension hierarchies. Reporter: Susan Anderson | Bug |  | XML
1671 | 20061108 | Edward Kuns | Edward Kuns | Update CTF document and merge CTFDoc.pdf into ctf.xml Reporter: Edward Kuns | Enh. |  | XML
1677 | 20061108 | Werner Guttmann | Werner Guttmann | XML code generator now uses 'java.util.List' as signature type for 'j2' collections. Reporter: Werner Guttmann | Bug |  | XML
1680 | 20061106 | Pawel Pesz | Ralf Joachim | Fixed issue with incorrect constants in AbstractMappingLoader. Reporter: Pawel Pesz | Bug |  | XML
384 | 20061102 | Werner Guttmann | Werner Guttmann | Added support for 'pattern' facet for <xsd:decimal>. Reporter: Serge Henneaux | Bug |  | XML
1675 | 20061102 | Eric Wittmann | Werner Guttmann | Fixed problem with SchemaWriter not serializing anyAttribute child of a complexType. Reporter: Eric Wittmann | Bug |  | XML
1670 | 20061030 | Edward Kuns | Edward Kuns | Add to CTF ability to specify failure step Reporter: Edward Kuns | Enh. |  | XML
1615 | 20061030 | Werner Guttmann | Werner Guttmann | Added HTML docs for prepared statement pooling. Reporter: Ralf Joachim | Bug |  | JDO
1668 | 20061030 | Werner Guttmann | Werner Guttmann | Added test for enums to XML test suite. Reporter: Ralf Joachim | Bug |  | XML
1653 | 20061028 | Ralf Joachim | Ralf Joachim | Fixed type conversion error when unmarshalling enum fields. Reporter: Henk van Voorthujsen | Bug |  | XML
1667 | 20061028 | Werner Guttmann | Werner Guttmann | Switched org.exolab.castor.builder.package to use Jakarta's commons-logging for logging. Reporter: Werner Guttmann | Bug |  | XML
1642 | 20061027 | Paul Philion | Werner Guttmann | Switched Marshaller to use Jakarta's commons-logging for logging (adding additional logging statements of level warn for exceptions that so far got caught silently). Reporter: Paul Philion | Bug |  | XML
1660 | 20061027 | Werner Guttmann | Werner Guttmann | Fixed problem with namespace support for collections created using "container=false". Reporter: Gregg Fowler | Bug |  | XML
1656 | 20061025 | Werner Guttmann | Werner Guttmann | Fixed broken code as generatd for XMLFieldHandler.resetValues() for Java 2 collections. Reporter: Carlo Romero | Bug |  | XML
1648 | 20061024 | Edward Kuns | Edward Kuns | Cyclic inheritence trees can cause srcgen to loop infinitely Reporter: Edward Kuns | Bug |  | XML
1658 | 20061024 | Edward Kuns | Edward Kuns | Clean up compilation complaint -- Java 5 varargs complaint Reporter: Edward Kuns | Enh. |  | All
1655 | 20061024 | Werner Guttmann | Werner Guttmann | Fixed broken code sample in XML best practice document. Reporter: Tom Carey | Bug |  | XML
1652 | 20061023 | Edward Kuns | Edward Kuns | Castor Source Code is created with ISO-8859-1 encoding, not UTF-8 Reporter: Edward Kuns | Bug |  | All
1632 | 20061023 | Werner Guttmann | Werner Guttmann | Added support for XML schema type 'unsignedLong' to XML code generator. Reporter: Werner Guttmann | Bug |  | XML
1647 | 20061023 | Edward Kuns | Edward Kuns | log4j / junit classpath conflict with CTF Reporter: Edward Kuns | Bug |  | XML

# Release 1.0.4

Description: | Maintenance release for Castor 1.0
released: | October 22, 2006
managed by: | Werner Guttmann

## Requirements

### Backported Castor to be compliant with Java 1.3 again. Therefore the dependecy on Java 1.4 introduced with 1.0 release has been removed.

To not lose features like JDBC 3.0 introduced with the 1.0 release of Castor, we decided to use reflection or dynamic proxies in some places. This allows one to use these features with Java 1.4 while still being able to use Castor with Java 1.3.

## Additions

### Database appender for log4j through CastorJDO

We have added a database appender for log4j through CastorJDO to our codebase in the

    org.castor.tools.log4j

package. The appender has to be configured through log4j.xml configuration file as usual.

    <appender name="db" class="org.castor.tools.log4j.CastorAppender">
        <param name="DatabaseName" value="LOGGING"/>
        <param name="BufferSize" value="10"/>
        <param name="ColumnWidthClass" value="100"/>
        <param name="ColumnWidthThread" value="100"/>
        <param name="ColumnWidthMessage" value="1000"/>
        <param name="ColumnWidthStackTrace" value="20000"/>
        <param name="DuplicateCount" value="true"/>
    </appender>

To use the appender within your application you need to create tables to hold the log information at your database. An example script to create these tables as well as examples of mapping.xml and jdo-config.xml can also be found in

    org.castor.tools.log4j

package.

Before you use the logger for the first time you need to initialize CastorJDO.

    String JDO_CONF = "/org/castor/tools/log4j/example-jdo-conf.xml";
    JDOManager.loadConfiguration(this.getClass().getResource(JDO_CONF).toString());

Thereafter you can use your logger as usual. Log4j will use CastorAppender to write the log information to the database.

    LOG.warn("This is a message logged to database");

One additional thing you need to take care of: As CastorAppender does some caching to reduce database operations, you have to tell it to write all cached information to database before you close your application.

    CastorAppender.flush();

We also provided a way to extend the information logged to database. For an example extension take a look at LogReferenceExtension and TestCastorAppender classes as well as the example mapping file.

### Special getter methods for XML mapping

As part of a field mapping, it is now possible to specify two special methods that will be treated in a non-standard way. If the 'get-method' specified on a field mapping starts with either 'enum' or 'iterate', it will be treated in a way that the collection (container) is only exposed through this 'enumeration'/'iteration' method.

### Added new property `org.exolab.castor.sax.features-to-disable`

To disabled selected features on the XML parser used internally by Castor XML, please use the new property `org.exolab.castor.sax.features-to-disable` as shown below

    # Comma separated list of SAX 2 features that should be disabled
    # for the default parser.
    #org.exolab.castor.sax.features-to-disable

### Added new CTF test case type to test source generation only, especially useful for regression tests of exceptions thrown during source generation

For a sample and for the place to add future test cases for the Master Test Suite, see the directory tree `src/tetsts/xml/MasterTestSuite/sourcegenerator/generationOnly`, although regression tests should be added to the regression suite

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
1645 | 20061022 | Werner Guttmann | Werner Guttmann | Fixed problem with incorrect handling of elememt references to global elements within complex type definitions during code generation. Reporter: Werner Guttmann | Bug |  | XML
1643 | 20061020 | Edward Kuns | Edward Kuns | Remove new tree of tests of known bugs (reverse changes of CASTOR-1640) Reporter: Edward Kuns | Bug |  | XML
1641 | 20061019 | Edward Kuns | Edward Kuns | Enhance UNIX CTFRun.sh script Reporter: Edward Kuns | Enh. |  | XML
1637 | 20061019 | Edward Kuns | Edward Kuns | Update to checkstyle rule set Reporter: Edward Kuns | Enh. |  | All
1640 | 20061019 | Edward Kuns | Edward Kuns | Add new tree of tests of known bugs Reporter: Edward Kuns | Enh. |  | XML
1639 | 20061019 | Edward Kuns | Edward Kuns | Refactor CTF test-with-reference-document Reporter: Edward Kuns | Enh. |  | All
1581 | 20061019 | Holger West | Ralf Joachim | Added database appender for log4j through CastorJDO. Reporter: Holger West | Enh. |  | JDO
1638 | 20061019 | Edward Kuns | Edward Kuns | Remove trailing blanks in release notes Reporter: Edward Kuns | Enh. |  | All
1636 | 20061019 | Edward Kuns | Edward Kuns | Checkstyle-based corrections in javasource Reporter: Edward Kuns | Enh. |  | XML
1612 | 20061018 | Edward Kuns | Edward Kuns | Update CTF documentation for new test case type Reporter: Edward Kuns | Bug |  | XML
1229 | 20061018 | Werner Guttmann | Werner Guttmann | Fixed problem with code generator ignoring nillable attribute for element references. Reporter: Werner Guttmann | Bug |  | XML
1635 | 20061018 | Werner Guttmann | Werner Guttmann | Fixed problem with generation of incorrect validation code for schema type 'gMonthDay' Reporter: Werner Guttmann | Bug |  | XML
1634 | 20061018 | Edward Kuns | Edward Kuns | Trivial checkstyle-based corrections Reporter: Edward Kuns | Bug |  | All
1631 | 20061018 | Werner Guttmann | Werner Guttmann | Added support for XML schema type 'unsignedByte' to XML code generator. Reporter: Werner Guttmann | Enh. |  | XML
1630 | 20061017 | Werner Guttmann | Werner Guttmann | Added support for XML schema type 'unsignedShort' to XML code generator. Reporter: Werner Guttmann | Enh. |  | XML
1629 | 20061017 | Werner Guttmann | Werner Guttmann | Added support for XML schema type 'unsignedInt' to XML code generator. Reporter: Werner Guttmann | Enh. |  | XML
1600 | 20061017 | Werner Guttmann | Werner Guttmann | Fixed problem with incorrect model group naming (and numbering) scheme. Reporter: Werner Guttmann | Bug |  | XML
1627 | 20061016 | Edward Kuns | Edward Kuns | For directory trees, set the test suite name to the directory name. Reporter: Edward Kuns | Enh. |  | XML
1586 | 20061016 | Ralf Joachim | Ralf Joachim | Fixed error loading mapping whem migrating from 1.0.1 to 1.0.3. Reporter: M.-Leander Reimer | Bug |  | XML
1626 | 20061016 | Werner Guttmann | Werner Guttmann | Added Code generation sample to HTML documentation Reporter: Werner Guttmann | Enh. |  | XML
1621 | 20061016 | Ralf Joachim | Ralf Joachim | Backported Castor to Java 1.3 compatibility: JDBC 3.0. Reporter: Ralf Joachim | Enh. |  | JDO
1625 | 20061016 | Rainer Montag | Werner Guttmann | Added checks to DateTimeBase.setCentury() for (invalid) years = 0. Reporter: Rainer Montag | BUg |  | XML
385 | 20061015 | Edward Kuns | Edward Kuns | Source Generator uses the name "Content" which conflicts with any element named "Content." Reporter: Edward Kuns | Enh. |  | XML
1584 | 20061015 | Steven Dolg | Ralf Joachim | Refactored AbstractMappingLoader. Reporter: Ralf Joachim | Enh. |  | All
416 | 20061015 | Lars Klose | Werner Guttmann | Source generator now overloads resetValues() on XMLFieldHandler for mutli-valued properties. Reporter: Lars Klose | Enh. |  | XML
482 | 20061015 | Werner Guttmann | Werner Guttmann | Source generator now adds is<Property> methods for boolean members. Reporter: Dean Chalker | Enh. |  | XML
1623 | 20061014 | Edward Kuns | Edward Kuns | Clean up checkstyle complaints in builder Reporter: Edward Kuns | Enh. |  | XML
1555 | 20061012 | Edward Kuns | Edward Kuns | Correct SRCGEN JavaDoc tags that fail validation Reporter: Edward Kuns | Enh. |  | XML
204 | 20061012 | Edward Kuns | Edward Kuns | Invalid Instance Document containing ALL elements of a schema definitions choice is not unmarshallable Reporter: Edward Kuns | Test |  | XML
1619 | 20061012 | Ralf Joachim | Ralf Joachim | Backported Castor to Java 1.3 compatibility: Exceptions do not support claus. Reporter: Ralf Joachim | Enh. |  | All
1618 | 20061012 | Ralf Joachim | Ralf Joachim | Backported Castor to Java 1.3 compatibility: JAXP usage at Unmarshaller. Reporter: Ralf Joachim | Enh. |  | XML
1620 | 20061012 | Ralf Joachim | Ralf Joachim | Backported Castor to Java 1.3 compatibility: unknown methods. Reporter: Ralf Joachim | Enh. |  | All
587 | 20061010 | Werner Guttmann | Werner Guttmann | Fixed problem with default values for date/time types in code generation Reporter: Jesse | Enh. |  | XML
1597 | 20061010 | Edward Kuns | Edward Kuns | Introduce proper exception handling to source generator Reporter: Edward Kuns | Enh. |  | XML
1117 | 20061009 | Werner Guttmann | Werner Guttmann | Fixed problem with setting type of untyped attribute through binding file. Reporter: Neil Taylor | Bug |  | XML
1137 | 20061009 | Werner Guttmann | Werner Guttmann | Fixed problem with special characters in enumerations Reporter: Chuck Betts | Bug |  | XML
1087 | 20061008 | Werner Guttmann | Werner Guttmann | Fixed problem with incorrect initialization code for byte arrays. Reporter: Michael Pliskin | Bug |  | XML
1181 | 20061008 | Anton Spaans | Werner Guttmann | Fixed problem with code generation for attributes that are restricted. Reporter: Anton Spaans | Bug |  | XML
599 | 20061007 | Edward Kuns | Edward Kuns | UnmarshalHandler doesn't chain exception Reporter: Jay Dunning | Enh. |  | XML
1613 | 20061007 | Edward Kuns | Edward Kuns | Finish @throws javadoc Reporter: Edward Kuns | Enh. |  | XML
716 | 20061007 | Edward Kuns | Edward Kuns | SourceGenerator doesn't correctly generate the .equals() method for base64binary Reporter: Derek Sayeau | Bug |  | XML
1609 | 20061006 | Edward Kuns | Edward Kuns | Implement equals() for AnyNode (already fixed, so adding a regression test case) Reporter: Derek Sayeau | Test |  | XML
1417 | 20061006 | Edward Kuns | Edward Kuns | hashCode() generation Reporter: Michele Mazzucco | Bug |  | XML
1027 | 20061005 | Edward Kuns | Edward Kuns | demo example of SourceGenerator does not build Reporter: Brett Wuth | Bug |  | XML
1608 | 20061005 | Edward Kuns | Edward Kuns | Split "main" out of SourceGenerator.java Reporter: Edward Kuns | Enh. |  | XML
1602 | 20061005 | Edward Kuns | Edward Kuns | Add new test case type to read schema only (CASTOR-1602) Reporter: Edward Kuns | Enh. |  | XML
1607 | 20061003 | Edward Kuns | Edward Kuns | Add regression test for parent issue (Generated classes are not compileable for simpleTypes with list-elements) Reporter: Edward Kuns | Test |  | XML
1226 | 20061003 | Bertrand Martel | Werner Guttmann | Fixed problem with type derivation for referenced/included attribute. Reporter: Bertrand Martel | Bug |  | XML
1604 | 20061002 | Edward Kuns | Edward Kuns | Fix two test case failures (one regression, one not). Reporter: Edward Kuns | Bug |  | XML
1593 | 20061002 | M.-Leander Reimer | Werner Guttmann | Fixed problem with AnyNode not preserving whitespace during unmarshalling. Reporter: M.-Leander Reimer | Bug |  | XML
1591 | 20061002 | Edward Kuns | Werner Guttmann | Cleanup and bug fixes for test framework. Reporter: Edward Kuns | Bug |  | XML
1599 | 20061001 | Werner Guttmann | Werner Guttmann | Fixed problem with incorrect code generation for element definitions/references pointing to an abstract complex type Reporter: Werner Guttmann | Bug |  | XML
1335 | 20061001 | Werner Guttmann | Werner Guttmann | Fixed problem with code generated for <xsd:choice> elements with primitive and java.lang.Object types mixed. Reporter: Martin West | Bug |  | XML
1595 | 20061001 | Edward Kuns | Werner Guttmann | Refactored SourceGenerator class, moving parts to separate code artefacts. Reporter: Edward Kuns | Bug |  | XML
1585 | 20060930 | Werner Guttmann | Werner Guttmann | Added property to disable selected features on SAX2 parser used internally by Castor XML. Reporter: scud | Bug |  | XML
1596 | 20060930 | Edward Kuns | Werner Guttmann | Expanded JMethod.addException() to correctly insert @throws Javadoc. Reporter: Edward Kuns | Bug |  | XML
1594 | 20060930 | Edward Kuns | Werner Guttmann | Added regression test for CASTOR-1580 to CTF regression suite. Reporter: Edward Kuns | Bug |  | XML
1589 | 20060930 | Edward Kuns | Ralf Joachim | Fixed ComplexType-DirectAccess test complaining about differences. Reporter: Edward Kuns | Bug |  | XML
1590 | 20060929 | Edward Kuns | Ralf Joachim | Source code cleanup at Castor XML test framework. Reporter: Edward Kuns | Enh. |  | XML
1588 | 20060929 | Edward Kuns | Werner Guttmann | Fixed problem with stack overflow in CTF maste test suite Reporter: Edward Kuns | Bug |  | XML
1583 | 20060927 | Edward Kuns | Ralf Joachim | CTF doesn't run properly under Fedora Core Linux. Reporter: Edward Kuns | Bug |  | XML
1566 | 20060927 | Werner Guttmann | Werner Guttmann | Fixed problem with incorrect generation of unmarshal methods for extensions/ restrictions where extended/restricted type is in an imported schema. Reporter: Mattias Jiderhamn | Bug |  | XML
1574 | 20060921 | Werner Guttmann | Werner Guttmann | Added '0' and '1' as possible values for setting 'nillable' attribute. Reporter: Frank Bechstein | Bug |  | XML
1060 | 20060925 | Edward Kuns | Werner Guttmann | Fixed problem in SourceGenerator generating multiple @return comments. Reporter: Jeremy Nix | Bug |  | XML
1575 | 20060925 | Ontje Lünsdorf | Werner Guttmann | Added a feature that allows getter methods starting with the prefix 'iterate' to be treated in a way that a collection (container) is only exposed through this 'iteration' method. Reporter: Ontje Lünsdorf | Bug |  | XML
1551 | 20060925 | Steven Dolg | Werner Guttmann | Resolved problem with mapping nested maps. Reporter: Steven Dolg | Bug |  | XML
1578 | 20060925 | Edward Kuns | Werner Guttmann | Thorough build cleanup. Reporter: Edward Kuns | Enh. |  | XML
1575 | 20060922 | Ontje Lünsdorf | Werner Guttmann | Added a feature that allows getter methods starting with the prefix 'enum' to be treated in a way that a collection (container) is only exposed through this enumeration method. Reporter: Ontje Lünsdorf | Bug |  | XML
1540 | 20060921 | Werner Guttmann | Werner Guttmann | Fixed problem with new 'org.exolab.castor.builder.javaVersion` when used in a property file that was set by calling SourceGenerator.setDefaultProperties(). Reporter: Edward Kuns | Bug |  | XML
1569 | 20060921 | Werner Guttmann | Werner Guttmann | Refactor JType so that for arrays/collections, there's new sub-types. Reporter: Werner Guttmann | Enh. |  | XML
1567 | 20060920 | Edward Kuns | Werner Guttmann | Thorough JavaDoc cleanup - part II. Reporter: Edward Kuns | Enh. |  | XML
1563 | 20060919 | Edward Kuns | Werner Guttmann | Thorough JavaDoc cleanup. Reporter: Edward Kuns | Enh. |  | XML
1307 | 20060918 | Werner Guttmann | Werner Guttmann | Fixed problem with special characters as part of <xsd:annotation> elements. Reporter: Roland Spatzenegger | Bug |  | XML
1562 | 20060918 | Edward Kuns | Werner Guttmann | Minor refactoring of the java.exolab.javasource package. Reporter: Edward Kuns | Bug |  | XML
1550 | 20060916 | Werner Guttmann | Werner Guttmann | Fixed issue with self-sufficiency of XML JAR: Reporter: Uwe Langbecker | Bug |  | XML
1561 | 20060916 | Ralf Joachim | Ralf Joachim | Enabled checkstyle for javasource package and fixed most of the warnings. Reporter: Ralf Joachim | Enh. |  | XML
1557 | 20060916 | Edward Kuns | Werner Guttmann | Moved java.util.Iterator-specific code from CollectionInfo to CollectionInfoJ2. Reporter: Edward Kuns | Enh. |  | XML
1560 | 20060916 | Edward Kuns | Ralf Joachim | Thorough JavaDoc update for javasource package. Reporter: Edward Kuns | Enh. |  | XML
1559 | 20060916 | Ralf Joachim | Ralf Joachim | Fixed 90 warnings at generation of API JavaDoc. Reporter: Ralf Joachim | Enh. |  | All
1558 | 20060915 | Edward Kuns | Ralf Joachim | Fixed javadoc package-summary links and added classpath to javadoc build. Reporter: Edward Kuns | Enh. |  | All
1552 | 20060915 | Steven Dolg | Werner Guttmann | Refactored CollectionInfo* classes, incl. changes to names of methods generated. Reporter: Steven Dolg | Bug |  | XML
1556 | 20060915 | Edward Kuns | Ralf Joachim | Correct HTML tags and grammar in package.html files. Reporter: Edward Kuns | Enh. |  | All
1549 | 20060914 | Paul Philion | Werner Guttmann | Added cause exception to IllegalStateException created in FieldHandlerImpl.getValue(). Reporter: Paul Philion | Bug |  | XML
1392 | 20060912 | Yegor Borovikov | Werner Guttmann | Castor XML code generator does not overwrite existing '.castor.cdr' files anymore. Reporter: Yegor Borovikov | Bug |  | XML
1544 | 20060910 | Werner Guttmann | Werner Guttmann | Castor XML code generator does not overwrite existing '.castor.cdr' files anymore. Reporter: Edward Kuns | Bug |  | XML
1543 | 20060909 | Steven Dolg | Werner Guttmann | Fixed problem with attributes named 'class' (where wrongly named getter/setter had been generated) Reporter: Melanie Courtot | Bug |  | XML
1543 | 20060909 | Edward Kuns | Werner Guttmann | Added new getIterator() method to Java classes generated for J2 collection types. Reporter: Edward Kuns | Bug |  | XML
1543 | 20060909 | Edward Kuns | Werner Guttmann | Fixed problem with incorrent code generation related to the use of primitive types and generics. Reporter: Edward Kuns | Bug |  | XML

# Release 1.0.3

Description: | Maintenance release for Castor 1.0
released: | September 7, 2006
managed by: | Werner Guttmann

## Additions

### Support for Progress

Support for Progress has been added. For initial information about configuration of Castor JDO for the use with Progress, please see `src/tests/jdo/progress.xml`.

### New unmarshal() methods for Unmarshaller

In addition to the already existing methods, two new unmarshal() methods have been added to Unmarshaller, namely ...

- | unmarshal(SAXSource)
- | unmarshal(DOMSource)

## Fixed problems - Overview

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
1478 | 20060907 | Werner Guttmann | Werner Guttmann | Fixed problem with 'staticness' of group naming scheme. Reporter: Stefan Flick | Bug |  | XML
1537 | 20060904 | Werner Guttmann | Werner Guttmann | Added HOW-TO document for mapping lists at the root level Reporter: Werner Guttmann | Enh. |  | XML
1494 | 20060901 | Le Duc Bao | Ralf Joachim | Fixed inconsistencies between sql types in mapping and ddl scripts of CTF. Reporter: Le Duc Bao | Enh. |  | JDO
1538 | 20060831 | Steven Dolg | Werner Guttmann | Performance-related refactoring of XMLClassDescriptorResolverImpl. Reporter: Steven Dolg | Enh. |  | XML
1487 | 20060830 | Gregory Block | Werner Guttmann | Fixed minor inconsistency in getting (expired) objects from EHCache. Reporter: Gregory Block | Bug |  | JDO
1512 | 20060827 | Werner Guttmann | Werner Guttmann | Improved documentation wrt source generator Ant task. Reporter: Rainer Montag | Enh. |  | XML
1501 | 20060824 | Werner Guttmann | Werner Guttmann | Fixed problem with ignorance of java-type elements in binding file (for complex elements). Reporter: Michal Kostrzewa | Bug |  | XML
1508 | 20060824 | Phil Webb | Werner Guttmann | Various speed improvementzs related to inheritance search. Reporter: Phil Webb | Bug |  | XML
1489 | 20060824 | Werner Guttmann | Werner Guttmann | Added support for abstract <complexType> definitions. Reporter: James MacDonald | Bug |  | XML
1471 | 20060819 | Werner Guttmann | Werner Guttmann | Added support for Progress. Reporter: Victor Manuel Iniestra Alvarez | Enh. |  | JDOL
1509 | 20060823 | Werner Guttmann | Werner Guttmann | Refactored Marshaller to allow instantiation through default constructor (setting Writer through setWriter()). Reporter: Werner Guttmann | Enh. |  | XML
1506 | 20060823 | Emir Causevic | Werner Guttmann | Restructured mapping syntax for named queries. Reporter: Werner Guttmann | Bug |  | JDO
1493 | 20060822 | Simeon de Dios | Werner Guttmann | Fixed problem with wrong class names for elements of named <complexType> which are unbounded choice. Reporter: Simeon de Dios | Bug |  | XML
1489 | 20060820 | Werner Guttmann | Werner Guttmann | Added support for abstract <complexType> definitions. Reporter: James MacDonald | Bug |  | XML
1492 | 20060820 | Werner Guttmann | Werner Guttmann | Added XML best practice document. Reporter: Gregory Block | Enh. |  | ALL
1500 | 20060818 | Werner Guttmann | Werner Guttmann | Fixed problem with including all required class files in XML JAR. Reporter: Christian Zuckschwerdt | Bug |  | ALL
1499 | 20060818 | Emir Causevic | Werner Guttmann | Added support for named queries at the <class> level. Reporter: Werner Guttmann | Enh. |  | JDO
1495 | 20060810 | Ralf Joachim | Ralf Joachim | Moved successfull XML tests from Regression- to MasterTestSuite. Reporter: Ralf Joachim | Enh. |  | XML
1488 | 20060810 | Ralf Joachim | Ralf Joachim | Refactored FieldDescriptor. Reporter: Ralf Joachim | Enh. |  | All

# Release 1.0.2

Description: | Maintenance release for Castor 1.0
released: | June 8, 2006
managed by: | Werner Guttmann

## Changes

### Source generator now supports Java 5.0

The Castor source generator now supports the generation of Java 5.0 compliant classes. The generated code - with the new feature enabled - will make use of the following Java 5.0-specific artefacts:

- | Use of parameterized collections, e.g. ArrayList<String>.
- | Use of @Override annotations with the generated methods that require it.
- | Use of @SupressWarnings with "unused" method parameters on the generated methods that needed it.
- | Added "enum" to the list of reserved keywords.

To enable this feature (off by default), please uncomment the following property in your custom `castorbuilder.properties` file:

    # This property specifies whether the sources generated
    # should comply with java 1.4 or 5.0; defaults to 1.4
    org.exolab.castor.builder.javaVersion=5.0

### New property in castor.properties

Added new property to castor.properties to disable use of package-based '.castor.xml' files during class resolution selectively, which is enabled by default.

To disable this feature, please uncomment the following property in your custom `castor.properties` file:

    #
    # Property specifying whether the ClassDescriptorResolver should (automatically) search for and
    # consult with package mapping files (.castor.xml) to retrieve class descriptor information;
    # on by default. defaults to true
    #
    org.exolab.castor.xml.loadPackageMappings=false

### Internal handling of idenities

In the past Castor differentiated between single and multiple field identities of persistent objects. For single field identities Castor hold the identitiy object itself while the objects of a multiple field identity where wrapped by an instance of Complex class. This caused various if-then-else constructs to differentiat the 2 representations of identities.

With the refactoring identities are now always wrapped by an instance of Identity class being it a single or a multiple fields one. This resulted in much cleaner code at various areas and in addition we could improve type checking by declaring lots of properties and parameters to be of Identity class instead of simply Object.

While we could manage to be backward compatible for all methods that gets an identity passed (e.g.

    Database.load(Class, Object)

) this was not possible for

    Database.getIdentity(Object)

. Instead of the single field identity or an instance of Complex class for multiple field identities it now always returns an instance of Identity class.

You have to be aware that you need to adapt your code to get things working as before if you use

    Database.getIdentity(Object)

method.

### Creation of MappingLoaders

As of release 1.0.2 the MappingLoader implementations need to be configured in castor.properties file. While this also allows to specify external MappingLoader implementations to be used by Castor, it now is also required to specify the 2 internal implementations in this file.

    #
    # MappingLoader implementations
    #
    org.castor.mapping.Loaders=\
      org.exolab.castor.jdo.engine.JDOMappingLoader,\
      org.exolab.castor.xml.XMLMappingLoader

You have to be aware that you need add the new configuration property to you custom castor.properties file.

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
1487 | 20060803 | Ralf Joachim | Ralf Joachim | Fixed bug in Castor's EHCache implementation. Reporter: Gregory Block | Bug |  | JDO
1482 | 20060802 | Ralf Joachim | Werner Guttmann | Fixed problem to source code generator ignoring -nomarshall, -testable options. Reporter: Ralf Joachim | Bug |  | XML
1483 | 20060801 | Ralf Joachim | Ralf Joachim | Fixed NullPointerException at generation of mapping. Reporter: Ralf Joachim | Bug |  | XML
1482 | 20060801 | Werner Guttmann | Werner Guttmann | Fixed problem related to MapItem class and namespaces. Reporter: Dmitry Narozhnykh | Bug |  | XML
1484 | 20060731 | Ralf Joachim | Ralf Joachim | Seperated responsibilities of AbstractMappingLoader for holding its current state and generation of descriptors. Reporter: Ralf Joachim | Enh. |  | All
721 | 20060726 | Werner Guttmann | Werner Guttmann | Added validation of min/maxLength facets for xs:NMTOKEN Reporter: Kraemer | Bug |  | XML
721 | 20060726 | Werner Guttmann | Werner Guttmann | Fixed problem with support for final modifier at the class level during source generation. Reporter: Derek Sayeau | Bug |  | XML
786 | 20060726 | Werner Guttmann | Werner Guttmann | Removed unnecessary import statements addition for java.io.* during source generation Reporter: Daniel Bradby | Bug |  | XML
1475 | 20060725 | Werner Guttmann | Werner Guttmann | Made EmptyEnumerator implement java.io.Serializable. Reporter: ? | Bug |  | JDO
1476 | 20060721 | Dave Brosius | Ralf Joachim | Removed unnecessary object construction. Reporter: Dave Brosius | Enh. |  | JDO
1475 | 20060713 | Werner Guttmann | Werner Guttmann | Added new property to castor.properties to disable use of package-based '.castor.xml' files selectively. Reporter: Bernard McGourty | Enh. |  | XML
1473 | 20060710 | Ralf Joachim | Ralf Joachim | Added posibility to retrieve ClassDescriptor. Reporter: Ralf Joachim | Enh. |  | JDO
1470 | 20060707 | David Buschman | Werner Guttmann | Added support for Java 5 compatible source code generation. Reporter: David Buschman | Enh. |  | XML
1472 | 20060706 | Ralf Joachim | Ralf Joachim | Allowed to specify base URI at JDOManager.loadConfiguration(). Reporter: Ralf Joachim | Bug |  | JDO
1457 | 20060629 | Werner Guttmann | Werner Guttmann | Integrate new JDOClassDescriptorResolver with existing Castor JDO code. Reporter: Werner Guttmann | Enh. |  | JDO
1457 | 20060628 | Werner Guttmann | Werner Guttmann | Introduce JDO specific ClassDescriptporResolver (and refactor class hierarchy in this area). Reporter: Werner Guttmann | Bug |  | JDO
1465 | 20060626 | Werner Guttmann | Werner Guttmann | Changed transaction handling semantics in CacheManager.expireCache(Class, Object[]). Reporter: Werner Guttmann | Bug |  | JDO
1464 | 20060626 | Werner Guttmann | Werner Guttmann | Fixed incorrect use of reflection in JOTMTransactionManagerFactory. Reporter: Werner Guttmann | Bug |  | JDO
1463 | 20060626 | Ralf Joachim | Ralf Joachim | Extract loading of mapping from Mapping into new MappingUnmarshaller. Reporter: Ralf Joachim | Enh. |  | All
1459 | 20060626 | Dave Brosius | Ralf Joachim | Removed use of reflective toArray() calls by passing in a properly sized array. Reporter: Dave Brosius | Enh. |  | All
1460 | 20060626 | Dave Brosius | Ralf Joachim | Fixed bad boolean test. Reporter: Dave Brosius | Bug |  | XML
1461 | 20060626 | Dave Brosius | Ralf Joachim | Used local variable instead of refetching it. Reporter: Dave Brosius | Enh. |  | JDO
1462 | 20060626 | Dave Brosius | Ralf Joachim | Moved wrongly placed parenthesis that caused toString() being executed for no reason. Reporter: Dave Brosius | Enh. |  | XML
1456 | 20060624 | Ralf Joachim | Ralf Joachim | Extracted creation of MappingLoaders from Mapping into new MappingLoaderRegistry. Reporter: Ralf Joachim | Enh. |  | All
1454 | 20060624 | Werner Guttmann | Werner Guttmann | Moved code to unmarshal Castor JDO configuration file to JDOConfFactory. Reporter: Werner Guttmann | Enh. |  | JDO
1450 | 20060620 | Werner Guttmann | Werner Guttmann | Add getCurrentTransaction() to AbstractDatabaseImpl. Reporter: Werner Guttmann | Enh. |  | JDO
1435 | 20060617 | Ralf Joachim | Ralf Joachim | Refactored internal handling of identities. Reporter: Ralf Joachim | Enh. |  | JDO
1449 | 20060616 | Werner Guttmann | Werner Guttmann | Re-generated class files from jdo-conf.xsd Reporter: Werner Guttmann | Enh. |  | JDO
480 | 20060614 | Michal Stochmialek | Werner Guttmann | Avoid generation of unnecessary import statements in generated source. Reporter: Michal Stochmialek | Bug |  | XML
1434 | 20060614 | Werner Guttmann | Werner Guttmann | Improve test coverage for 'auto-store' attribute Reporter: Werner Guttmann | Enh. |  | JDO

# Release 1.0.1

Description: | Maintenance release for Castor 1.0
released: | June 8, 2006
managed by: | Werner Guttmann

## Development environment

On April 14. 2006 we have migrated Castor source repository from CVS to SVN. At the moment we still provide read only access to CVS but this does not reflect commits to SVN after the migration. The read only access to CVS is intended for you to create patches of your current work and move it over to SVN. Be aware that we will switch off CVS soon.

For details about SVN access please have a look at: SVN/JIRA.

## Additions

### Added support for ehCache

By specifing

    <cache-type type="ehcache"/>

at class mapping you can now use ehCache with Castor JDO. As of ehcache 1.2, ehcache can be used as a distributed cache.

### Added support for Gigaspaces

By specifing

    <cache-type type="gigaspaces"/>

at class mapping you can now use Gigaspaces with Castor JDO, supporting all possible use scenarios of Gigaspaces (local cache, remote cache, local master cache, distributed cache, partitions) in a flexible way.

## Changes

### ANSI-SQL-92 compliance for MS SQLServer

Refactored the SQLServer-specific classes to support ANSI-SQL-92 compliant syntax in addition to the existing code base.

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
1172 | 20060608 | Werner Guttmann | Werner Guttmann | Added support for ANSI-92 compliance to SQLServer persistence classes. Reporter: Werner Guttmann | Enh. |  | JDO
1436 | 20060608 | Werner Guttmann | Werner Guttmann | Added cache implementation for Gigaspaces (cache-based). Reporter: Werner Guttmann | Enh. |  | JDO
1444 | 20060606 | Martin Fuchs | Martin Fuchs | Fixed documentation of OQL OFFSET clause usage. Reporter: Martin Fuchs | Bug |  | JDO
1443 | 20060603 | Ralf Joachim | Ralf Joachim | Fixed various compiler warnings mainly in tc7x and tc20x tests of CTF. Reporter: Ralf Joachim | Enh. |  | All
1398 | 20060603 | Ralf Joachim | Ralf Joachim | Fixed 212 unused private methods, private fields, or local variables compiler warnings. Reporter: Henk van Voorthujsen | Enh. |  | All
1441 | 20060603 | Ralf Joachim | Ralf Joachim | Fixed 206 whitespace after and whitespace around compiler warnings. Reporter: Ralf Joachim | Enh. |  | All
1440 | 20060601 | Werner Guttmann | Werner Guttmann | Fixed Configuration.loadProperties(String,String) to close resource streams after usage. Reporter: Alexander Soklakov | Bug |  | XML
1384 | 20060530 | Werner Guttmann | Werner Guttmann | Fixed problem with NPE related to field mappings without type declaration.. Reporter: Manjuka Soysa | Bug |  | XML
1429 | 20060523 | Werner Guttmann | Werner Guttmann | Fixed ClassNotFoundException related to using a custom XMLNaming scheme. Reporter: Neutrolio | Bug |  | XML
1439 | 20060529 | Werner Guttmann | Werner Guttmann | Added test case for Castor JDO CTF to test database.isPersistent(). Reporter: Werner Guttmann | Enh. |  | JDO
1432 | 20060528 | Pawel Pesz | Werner Guttmann | Fixed problem with numbered parameters in SQL pass-through queries. Reporter: Pawel Pesz | Bug |  | JDO
1420 | 20060524 | Werner Guttmann | Werner Guttmann | Added support for unmarshalling attributes of type byte[]. Reporter: Marcin Cinik | Bug |  | XML
690 | 20060524 | Doug Berkland | Werner Guttmann | Fixed problem with location attribute in the context of extend hierarchies. Reporter: Doug Berkland | Bug |  | XML
1415 | 20060523 | Werner Guttmann | Werner Guttmann | Upgraded Jakarta commons logging to 1.1. Reporter: Werner Guttmann | Enh |  | General
1420 | 20060523 | Werner Guttmann | Werner Guttmann | Fixed a problem with the application of naming conventions in introspection mode. Reporter: Sumit Chawla | Bug |  | XML
1424 | 20060523 | Werner Guttmann | Werner Guttmann | Renamed tables of CTF tests in ctf.jdo.tc7x package. Reporter: Ralf Joachim | Enh. |  | JDO
1423 | 20060508 | Werner Guttmann | Werner Guttmann | Moved the remaining 10 CTF tests (JDO) to new ctf.jdo.tc7x package. Reporter: Werner Guttmann | Enh. |  | JDO
1408 | 20060507 | Werner Guttmann | Werner Guttmann | Added improved tests for self-referential relations. Reporter: Werner Guttmann | Enh. |  | JDO
1413 | 20060505 | Werner Guttmann | Werner Guttmann | Added support for ehcache as Castor (performance) cache. Reporter: Werner Guttmann | Enh. |  | JDO
1406 | 20060429 | David Green | Ralf Joachim | Fixed EmptyStackException at SAX2ANY. Reporter: David Green | Bug |  | XML
1318 | 20060427 | Raúl Sanz de Acedo Pérez | Ralf Joachim | Allowed to separately en-/disable logging of executed SQL statments. Reporter: Raúl Sanz de Acedo Pérez | Enh. |  | JDO
1414 | 20060427 | Ralf Joachim | Ralf Joachim | Upgraded log4j from 1.2.8 to 1.2.13. Reporter: Ralf Joachim | Enh. |  | All
1409 | 20060427 | Werner Guttmann | Werner Guttmann | Fixed problem with read-only lazy-loaded 1:1 relations. Reporter: Jon Wilmoth | Bug |  | JDO
1412 | 20060426 | Martin Fuchs | Martin Fuchs | Remove dependency to Adaptx and Xerces from the documentation build step. Reporter: Martin Fuchs | Enh. |  | General
1411 | 20060426 | Ralf Joachim | Ralf Joachim | Replaced Object[] parameters at SQLEngine by ProposedEntity. Reporter: Ralf Joachim | Enh. |  | JDO
1382 | 20060426 | David Buschman | Werner Guttmann | Fixed wrongly coded boolean expressions. Reporter: David Buschman | Bug |  | XML
1410 | 20060426 | Martin Fuchs | Werner Guttmann | Fixed broken links to cvs.html (replaced with scm.html). Reporter: Martin Fuchs | Enh. |  | All
1397 | 20060425 | Henk van Voorthujsen | Ralf Joachim | Fixed compiler warnings: 212 unnecessary else clauses. Reporter: Henk van Voorthujsen | Enh. |  | All
1407 | 20060425 | Ralf Joachim | Ralf Joachim | Use ClassMolder.getLockEngine() instead of passing around LockEngine everywhere. Reporter: Ralf Joachim | Enh. |  | JDO
1402 | 20060413 | Werner Guttmann | Werner Guttmann | Improved exception reporting for various JDO-related exceptions. Reporter: Yegor Borovikov | Bug |  | JDO
1403 | 20060422 | Werner Guttmann | Werner Guttmann | Fixed documentation for 'sortedset' collection type in the JDO mapping section. Reporter: Artur Brinkmann | Bug |  | JDO
1380 | 20060416 | Ralf Joachim | Ralf Joachim | Migrated Castor repository from CVS to SVN. Reporter: Ralf Joachim | Enh. |  | All
1401 | 20060414 | Henk van Voorthujsen | Ralf Joachim | Added project specific settings for use with Eclipse. Reporter: Henk van Voorthujsen | Enh. |  | All
1395 | 20060414 | Henk van Voorthujsen | Ralf Joachim | Fixed compiler warnings: 268 unused imports. Reporter: Henk van Voorthujsen | Enh. |  | All
1388 | 20060413 | Werner Guttmann | Werner Guttmann | Refactored ClassMolder.update() to complete transfer to strategy pattern. Reporter: Werner Guttmann | Bug |  | JDO
1394 | 20060413 | Henk van Voorthujsen | Ralf Joachim | Fixed compiler warnings: 104 instance of instance access to static fields/methods. Reporter: Henk van Voorthujsen | Enh. |  | All
1393 | 20060413 | Henk van Voorthujsen | Ralf Joachim | Fixed compiler warnings: 103 unnecessary casts. Reporter: Henk van Voorthujsen | Enh. |  | All
1391 | 20060412 | Ralf Joachim | Ralf Joachim | Upgrad checkstyle configuration from version 3.5 to 4.1.0beta3. Reporter: Ralf Joachim | Enh. |  | All
1370 | 20060411 | Werner Guttmann | Werner Guttmann | Refactored ProposedObject (and renamed it to ProposedEntity). Reporter: Werner Guttmann | Bug |  | JDO
1355 | 20060411 | Werner Guttmann | Werner Guttmann | Fixed problem related to lazy loading objects part of an 1:1 relation. Reporter: Jon Wilmoth | Bug |  | JDO
1379 | 20060411 | Werner Guttmann | Werner Guttmann | Fixed problem related to loading object hierarchies with access mode DB_LOCKED. Reporter: Ralf Joachim | Bug |  | JDO
1389 | 20060411 | Ralf Joachim | Ralf Joachim | Replaced org.exolab.castor.util.Messages by org.castor.util.Messages. Reporter: Ralf Joachim | Enh. |  | All
1387 | 20060410 | Henk van Voorthujsen | Werner Guttmann | Removed postgreSQL JAR from Eclipse templates Reporter: Henk van Voorthujsen | Bug |  | JDO
1386 | 20060408 | Ralf Joachim | Ralf Joachim | Extracted all keys of JDO properties into org.castor.util.ConfigKeys. Reporter: Ralf Joachim | Enh. |  | JDO
1385 | 20060408 | Ralf Joachim | Ralf Joachim | Removed dependecy of JDO on org.exolab.castor.util.LocalConfiguration. Reporter: Ralf Joachim | Enh. |  | JDO
1381 | 20060415 | Ralf Joachim | Ralf Joachim | Removed org.exolab.castor.util.Logger. Reporter: Ralf Joachim | Enh. |  | All

# Release 1.0

Description: | New and on-going development
released: | April 6, 2006
managed by: | Werner Guttmann

## Requirements

### Introduced Java 1.4 as a dependecy

This is a reminder that we have started to add some features that more or less depend on features made available with Java 1.4 (only), such as the JDBC 3.0 API enhancements. As such, we have made Java 1.4 a key requirement for the upcoming Castor 1.0 release.

Bug Fixes And Issues Addressed
Id | Date | Fixed by | Committed by | Description | Type | Project | Module
--- | --- | --- | --- | --- | --- | --- | ---
1371 | 20060405 | Hristo Ganev | Werner Guttmann | Fixed problem in SchemaWriter related to annotations. Reporter: Hristo Ganev | Bug |  | XML
972 | 20060404 | Ralf Joachim | Ralf Joachim | Fixed lock conflict in TransactionContext.rollback when using dbLocked. Reporter: Christoph Ernst | Bug |  | JDO
1376 | 20060401 | Matt Secoske | Ralf Joachim | Added HOW-TO Unmarshal raw XML segments into arbitrary types. Reporter: Matt Secoske | Enh. |  | XML
1039 | 20060330 | Andrew May | Ralf Joachim | Fixed Castor being unable to find FieldDescriptor when using auto-naming with location. Reporter: Daniel Dyer | Bug |  | XML
1346 | 20060330 | Barbara Prechtl | Ralf Joachim | Fixed notifyPropertyChangeListeners not being called when bound properties is set true. Reporter: Barbara Prechtl | Bug |  | XML
1340 | 20060330 | Barbara Prechtl | Ralf Joachim | Fixed unmarshaller error with generated code when using groups. Reporter: Barbara Prechtl | Bug |  | XML
1164 | 20060329 | Ralf Joachim | Ralf Joachim | Refactored CTF-JDO tests into subdirectories (part 3). Reporter: Ralf Joachim | Enh. |  | JDO

For all the releases prior to 1.0, the release notes can be found at here.

<notice> Copyright © 1999-2005 ExoLab Group, Intalio Inc., and Contributors. All rights reserved. </notice>
<notice> Java, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and in other countries. XML, XML Schema, XSLT and related standards are trademarks or registered trademarks of MIT, INRIA, Keio or others, and a product of the World Wide Web Consortium. All other product names mentioned herein are trademarks of their respective owners. </notice>