Castor is a Java to XML data-binding, Java Data Objects (O/R) and DSML.
Version: 0.9.6The Castor project has been developed out of need: the need to get stuff done and the need to write useful code.
License: BSD License
Operating System: Linux
It has been designed and coded over many cups of Dunkin Donut's Hazlenut coffee, Starbuck's Latte, and tall no-whip White Mochas, as proof that coffee beans do come in handy.
Castor includes software, such as Xerces, Jakarta ORO, and Jakarta Regexp, developed by the Apache Software Foundation. Castor also includes JUnit testing framework
Here are some key features of "Castor":
· Castor XML: Java object model to and from XML (XML databinding)
· Generate source code from an XML Schema
· Default introspection or mapping file for existing object models
· Castor JDO: Java object persistence to RDBMS Castor JDO is not the same-as or compatible with Sun's JDO. We have a different approach to handling data object to RDBMS mappings.
· XML-based mapping file to specify bindings for existing object models
· Support for schema-less Java to XML binding
· In memory caching and write-at-commit reduces JDBC operations
· Two phase commit transactions, object rollback and deadlock detection
· OQL query mapping to SQL queries
· EJB container managed persistence provider for OpenEJB
· Ability to create base mapping from existing Java classes
· Ability to create an XML Schema from an XML input document
What's New in This Release:
· Fixed problem with TransactionContext.getObjectEntry(Object) that was introduced as a result of adding support for lazy loading 1:1 relations.
· Added F.A.Q. entry describing compatibility problems between various releases of mySQL 4.1.x and its JDBC drivers.
· Reverted various DOCTYPE definitions in src/tests/jdo to use DTDs.
· Fixed issue with GeneralizedFieldHandler not able to handle collections. Collections are now automatically iterated over during getValue() calls and each item in the collection is passed into the convertUponGet method. To retain the old behavior simply add a call to #setCollectionIteration with a value of false in the constructor of your GeneralizedFieldHandler. The behavior for setter methods is not changed since only one item at a time is passed into the setter already.
· Fixed whitespace processing bug, where a ' ' was actually getting appended to the end of a string value if the parser was calling the #characters method again with only whitespace following a previous call to #characters method where valid content existed.
· Fixed recent issue where ElementDecl#getType() method was always returning null for element references.