License     Codehaus     OpenEJB     OpenJMS     OpenORB     Tyrex     

Old releases
  Release 1.3
  Release 1.3rc1
  Release 1.2

  Reference guide
  Maven 2 support
  Maven 2 archetypes
  DTD & Schemas
  Recent HTML changes
  News Archive
  RSS news feed
  Project Wiki

  Mailing Lists
  Continuous builds
  Prof. services

Related projects
  Spring ORM support
  Spring XML factories
  WS frameworks


XML Code Generator
  XML Code Generator

  First steps
  Using JDO
  JDO Config
  JDO Mapping
  JDO Examples
  Tips & Tricks
  Other Features
  JDO sample JAR

  Schema generator

Advanced JDO
  Trans. & Locks
  Long Trans.
  Nested Attrs.
  Pooling Examples
  Best practice

DDL Generator
  Using DDL Generator
  Ant task
  Type Mapping

  The Examples
  3rd Party Tools
  JDO Tests
  XML Tests

  User stories
  Status, Todo
  Project Name



Supported Features
    Castor XML
    Castor JDO
    Castor DSML
What's missing
        Marshaling Framework
        Source Code Generator
When is the next release?

Supported Features

Castor XML

- Automatic XML data binding for class definitions which adhere to the Java Beans design pattern. This is often referred to as default introspection in our documentation.
- Java to XML mapping automates transformation of Java objects to and from XML documents and provides Java object validation.
- An XML based mapping file to specify XML bindings for existing object models (see xml-mapping).
- The Source Code generator can produce Java class definitions, XML binding information, and validation code based on a provided XML schema (see Source Generator).
- Supports the W3C XML Schema 1.0 Second Edition Recommendation (2004-10-28). For more information refer to the Source Code Generator and XML Schema Support.
- Supports a "customization" binding file used in conjunction with an XML Schema for greater control over the generated source code. Name collision can be avoided with this binding file. For more information, refer to the Binding File.
- Can automatically create an XML Schema from an XML instance document.

Castor JDO

- Java to SQL mapping (object/relational) automates Java persistence into any relational database server using JDBC.
- Java to SQL mapping uses an XML document to specify the mapping textually and provides an API to specify them programatically.
- Supports one-one and one-many relation types, SQL/Java inheritance, object graph to single row mapping, and multiple column primary keys and automatic type conversion.
- Optimistic and pessimistic locking modes, in-memory concurrency engine, and dead-lock detection.
- Provides support for EJB 1.1 CMP entity beans (release 0.9) and CMP finder declaration using OQL.
- Efficient implementation incurs little overhead compared to direct JDBC access.
- Support for JTA transaction demarcation, inclusion as resource in transactional environment, and JDBC connection pooling (release 0.9 integrated with Tyrex).
- Cache control at JDO configuration and mapping file specification: no-cache option, cache object limit, cache time limit, LRU removal deamon.
- New architecture separating the responsibility of the CacheEngine from that of the persistent object in order to better support relations (especially many-many) and better handle dependency object commits.
-Multi column primary keys and contained objects.
-Mapping file supporting object dependency and relations.
-Serializable field type.
-Calling Stored procedures returning result sets.
-Support for many data types, including BLOBs and CLOBs.

Castor DSML

Note: DSML is no longer supported until we find a contributor who is willing to upgrade and maintain it. If you are interested in working on Castor DSML please let us know.

- Import/export an LDAP directory or search results to/from XML based on the industry standard DSML schema.
-XML document for specifying LDAP queries and import rules.
-Supports both JNDI service providers and the Mozilla Directory SDK.

What's missing

- Work was under way on a direct SQL->XML bridge which uses the same mapping file but does not involve any Java objects in the process. The developer who was working on this feature left the company and no longer has time to work on this. If anyone is interested in working on this feature, let us know!
- The EJB CMP implementation is now developed in the scope of the OpenEJB project.
- Consolidation between the SQL and LDAP engine through a shared DataStore API, potentially supporting other relational back-ends.
-More generic mapping API and mapping tools.
-Stored procedures, XML content.
-Debugging tools.



-Add type convertors to bind parameters and load() method
-DataStore API replacing existing persist SPI. Consolidation of JDO and DAX.
-New mapping DTD
-Support for read-only fields
-SQLData, DOM and Castor XML data object field types
-Calling Stored procedures without result set


Marshaling Framework

-Improve SAX-2 support for Marshaler instead of using XMLReaderAdapter. (kvisco)
-Improve ID/Key reference handling, including improvements to IDResolver. (kvisco)
-Improve ClassDescriptorResolverImpl to support nested Resolver. (kvisco)
-Improve error reporting. (all)
-Improve documentation. (all)
-Improve performance. (kvisco, afawcett)
-Provide a JAXB compatibility layer. (kvisco + arnaud)
- For more items, please use Jira

Source Code Generator

-Provide a JAXB compatibility layer. (kvisco + arnaud)
-Full Support of the Union type (union of string and Qnames is supported).
-Extensibility API.
- For more items, please use Jira


- Support for element containers, also called element wrappers.
-Improve Collection handling in default FieldHandler.
-Improve mapping file usability.
-Improve namespace support.
- For more items, please use Jira


-Support for creating an XML Schema from Java Object Model.

When is the next release?

Typically a release is done when all scheduled items for the release are finished and tested. However, this can take a while to accomplish and depends on the tasks. Therefore, we may do "interim" releases that contain some of the features or bug fixes scheduled for a particular release. An interim release allows the community to take advantage of the new features and bug fixes, without needing to wait until all features of the release have been finished. An interim release can be done at any time that the SVN is in a stable state and especially if some important bug fixes are available.

The current tasks for the next release are being tracked in Jira (


Copyright © 1999-2005 ExoLab Group, Intalio Inc., and Contributors. All rights reserved.
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.