License     Codehaus     OpenEJB     OpenJMS     OpenORB     Tyrex     
 

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

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

Related projects
  Spring ORM support
  Spring XML factories
  WS frameworks

XML
  Using XML
  XML Mapping
  Configuration
  Properties
  XML parsers
  XML FAQ
  XML HOW-TOs
  Tips & Tricks
  Custom Handlers
  Best practice

XML Code Generator
  Introduction
  Properties
  Custom bindings
  Ant task
  Maven 2 plugin
  Command line
  Schema Support
  Example

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
  Presentations
  The Examples
  3rd Party Tools
  JDO Tests
  XML Tests
  Configuration
 
 

About
  License
  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.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
IdDateFixed byCommitted by DescriptionTypeProjectModule
228520080130Werner GuttmannWerner Guttmann Created new SchemaContext class and switched schema related code to using it.
Reporter: Werner Guttmann
BugXML
226820080129Werner GuttmannWerner Guttmann Added full support for defining collections using the <xs:list> construct.
Reporter: Joachim Grueneis
BugXML
226620080125Joachim GrueneisJoachim Grueneis For JAXB implementation an additional method in JavaNaming interface - extractFieldNameFromField is required
Reporter: Joachim Grueneis
ImprXML
227020080123Werner GuttmannWerner Guttmann Fixed problem with usage of 'java.util.Iterator' as return type during marshalling.
Reporter: Abhinav Sopory
BugXML
226920080123Werner GuttmannWerner Guttmann Fixed problems with the source tarballs and the Javadoc release files by including the CPA module.
Reporter: Jon Wilmoth
BugAll
226520080118Vikas RawatWerner 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.
226420080118Werner GuttmannWerner Guttmann Added support for usage of 'mixed="1"' attributes for XML code generation.
Reporter: Roy van der Kuil
Bug.Gen.
204720080110Matthias EpheserWerner Guttmann Added support for executing the CTF test suite as part of a 'mvn test' in the 'xmlctf' module.
Reporter: Werner Guttmann
Enh.XML
191720080110Werner GuttmannWerner Guttmann Restored pre-1.0 behavior with regards to unresolvable type references in XML code generation.
Reporter: Simon Lord
BugGen.
213220080109Werner GuttmannWerner Guttmann Fixed problem with unmarshalling the same element from 2 different namespaces using a mapping file.
Reporter: Christophe Delory
BugXML
225520080107Joachim GrueneisJoachim Grueneis Introduced interface XMLNaming and renamed abstract class XMLNaming to AbstractXMLNaming.
Reporter: Joachim Grueneis
EnhancementXML
225420080106Edward KunsEdward Kuns XMLCTF: If a properties file is specified but not provided, the CTF complaint is not helpful
Reporter: Edward Kuns
BugCTF
225220080104Werner GuttmannWerner Guttmann Fixed problem with marshalling multiple 'nested' attributes (where a location path is used).
Reporter: Liehann Loots
BugXML
225320080104Joachim GrueneisJoachim Grueneis castor.xml.properties: org.exolab.castor.parser setting is wrong
Reporter: Joachim Grueneis
BugXML
198320080102Werner GuttmannWerner Guttmann Added support for programmatic access to <xs:annotation> node information.
Reporter: Régis Décamps
Enh.Gen.
197220080101Matthias EpheserWerner Guttmann Added Velocity as templating engine for code generation.
Reporter: Matthias Epheser
Enh.Gen.
223520071227Werner GuttmannWerner Guttmann Fixed problem related to sequence ordering and substitution groups.
Reporter: Aldrin d'Souza
BugGen.
224120071225Ralf JoachimRalf Joachim Refactored special tests proxy, 1214, 1781 and 1865.
Reporter: Ralf Joachim
Enh.JDO
223620071223Werner GuttmannWerner 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.
223420071223Werner GuttmannWerner 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
BugGen.
224020071223Ralf JoachimRalf Joachim Refactored special tests 881 and 2177.
Reporter: Ralf Joachim
Enh.JDO
223920071223Ralf JoachimRalf Joachim Added method to dispose JDOManager instances.
Reporter: Ralf Joachim
Enh.JDO
223820071222Ralf JoachimRalf Joachim Refactored special tests 972, 1158, 1355 and 1379.
Reporter: Ralf Joachim
Enh.JDO
190620071222Ralf JoachimRalf Joachim Added new test framework for castor persistence.
Reporter: Ralf Joachim
Enh.JDO
197220071216Matthias EpheserWerner Guttmann Moved logic to write JClass instances to the file system to a new interface, named JClassPrinter.
Reporter: Matthias Epheser
BugXML
222920071216Edward KunsEdward Kuns CTFRun.sh needs tools.jar to be added to the classpath
Reporter: Edward Kuns
BugXML
6720071214Edward KunsEdward Kuns Generated classes don't compile when using "default" on an element that extends xsd:string
Reporter: Arnaud Blandin
BugXML
217420071211Werner GuttmannWerner Guttmann Marshalling 'hexBinary' types produces upper-case hex digits [A-F] only.
Reporter: Dave Wilmes
BugXML
222020071206Mark FemalWerner Guttmann Fixed problem with not 'using' time zone in DateFieldHandler.
Reporter: Mark Femal
BugXML
220620071205Werner GuttmannWerner Guttmann Fixed problem handling references to identically named global elements from different namespaces.
Reporter: Mitesh Soni
BugXML
219620071127Werner GuttmannWerner Guttmann FieldHandler.getFieldDescriptor() now returns an instance of XMLFieldDescriptor.
Reporter: Bastian
BugXML
221720071123Werner GuttmannWerner Guttmann Fixed problem in propagation of facets for unions.
Reporter: Patrick Marchwiak
BugGen
221320071123Werner GuttmannWerner Guttmann Added documentation for integration of Castor with web service frameworks.
Reporter: Werner Guttmann
Enh.Doc
220920071122Werner GuttmannWerner Guttmann Improved 'contract' for static unmarshal methods on generated classes for Java 5.
Reporter: Aslam Karachiwala
BugXML
221520071107Werner GuttmannWerner Guttmann Exposed isChoice() method to org.exolab.castor.xml.XMLClassDescriptor.
Reporter: Werner Guttmann
Enh.XML
221220071107Werner GuttmannWerner Guttmann Partially refactored class hierarchy of (some) descriptor classes.
Reporter: Werner Guttmann
Enh.XML
115020071106Steven DolgWerner Guttmann Fixed problem related to unmarshalling unbounded <sequence>s of <choice>s.
Reporter: Leif Oines
BugXML
218920071023Werner GuttmannWerner Guttmann Refactored regexp evaluation code.
Reporter: Werner Guttmann
Enh.XML
219120071022Werner GuttmannWerner Guttmann Removed usage of org.exolab.castor.types.OperationNotSupportedException and switched to using java.lang.UnsupportedOperationException
Reporter: Werner Guttmann
Enh.XML
220020071019Ralf JoachimRalf Joachim Included classes of org.castor.xml and org.castor.core packages in castor-xml.jar.
Reporter: Ralf Joachim
BugAll
188120071019Werner GuttmannWerner Guttmann Fixed problem with 'unwanted' generated classes for (complex) type definitions defined in an imported XML schema.
Reporter: Matthias Hanisch
BugGen.
219820071018Werner GuttmannWerner Guttmann Fixed problem with incorrect @Override annotation on getJavaClass() methods on generated classes.
Reporter: Aslam Karachiwala
BugGen.
195020071013Werner GuttmannWerner Guttmann Fixed problems with code generation for <xs:unsignedShort>.
Reporter: Raghavan Eachampadi
BugGen.
218820071012Joachim GrueneisJoachim Grueneis Remove old Configuration and LocalConfiguration
Reporter: Joachim Grueneis
Enh.All
219020071011Joachim GrueneisJoachim Grueneis (Re-)added empty default constructor for Unmarshaller
Reporter: Werner Guttmann
Enh.All
205320071010Matthias EpheserWerner Guttmann Fixed problem in code generation related to complex elements with default value.
Reporter: Matthias Epheser
BugGen.
218520071009Joachim GrueneisJoachim Grueneis Create interface for InternalContext and make all existing *InternalContext classes implement this interface
Reporter: Joachim Grueneis
Enh.All
215720071006Joachim GrueneisWerner Guttmann Fixed different behaviour of Configuration constructors.
Reporter: Joachim Grueneis
Enh.All
211920071002Joachim GrueneisWerner Guttmann Introduced new internal configuration handling for Castor XML.
Reporter: Joachim Grueneis
Enh.XML
2177200710002Ralf JoachimRalf Joachim Added support for custom type convertors.
Reporter: Ralf Joachim
Enh.JDO
216620071001Joachim GrueneisJoachim Grueneis 'bin/build clean' cleans all build directories including those of test
Reporter: Joachim Grueneis
ImprovementGeneral
216720071001Joachim GrueneisJoachim Grueneis Modify CTFRun.sh to match changes in CTFRun.bat
Reporter: Joachim Grueneis
ImprovementGeneral
216220070923Werner GuttmannWerner Guttmann Switched Castor XML to fully use JAXP to obtain XML parsers
Reporter: Werner Guttmann
BugXML
215820070922Werner GuttmannWerner Guttmann Fixed NullPointerException in FieldValidator.validate(Object, ValidationContext)
Reporter: Werner Guttmann
BugXML
215320070921Werner GuttmannWerner Guttmann Fixed problem with validation of <xs:NMTOKEN> during unmarshalling.
Reporter: Rahul Mahboobani
Enh.XML
214720070921Tom van den BergeWerner Guttmann Added HTML documentation for configurable field handlers.
Reporter: Tom van den Berge
Enh.XML
214920070921Tom van den BergeWerner Guttmann Added 'changes' section to release notes re: configurable field handlers.
Reporter: Tom van den Berge
Enh.XML
214820070921Tom van den BergeWerner Guttmann Added HOW-TO configurable field handlers.
Reporter: Tom van den Berge
Enh.XML
201520070911Werner GuttmannWerner Guttmann Fixed a problem with support for 'strict elements' related to introspection during XML unmarshalling.
Reporter: Reginals Ratherfurp
BugXML
204420070911Shawn CrookWerner Guttmann Fixed support for milliseconds with XML schema durations.
Reporter: Shawn Crook
BugXML
204220070911Tom van den BergeWerner Guttmann Added support for configurable field handlers.
Reporter: Tom van den Berge
Enh.XML
212720070910Werner GuttmannWerner Guttmann Improved documentation for using mapping files with Castor XML.
Reporter: Michael Moynihan
Enh.HTML
204620070910Werner GuttmannWerner Guttmann Moved section on dependencies to a new HTML page.
Reporter: Werner Guttmann
BugHTML
205120070910Werner GuttmannWerner Guttmann Fixed problem with low centuries and the use of dates.
Reporter: Lars Bilger
BugXML
211020070909Werner GuttmannWerner Guttmann Fixed problem related to the usage of <xs:unsignedInt> in extensions
Reporter: Bastian Doetsch
BugGen.
214120070906Matthias EpheserWerner Guttmann Fixed problem with code generation of Java 5 enums related to default values
Reporter: Ron Corcuera
BugGen.
212420070829Matthias EpheserWerner Guttmann Introduced pluggable interface for handling (JAXB and other) annotations during XML code generation.
Reporter: Matthias Epheser
Enh.Gen.
212220070828Matthias EpheserWerner Guttmann Added 'org.exolab.castor.builder.forceJava4Enums' property to fine-tune code generation for enums in Java 5.
Reporter: Matthias Epheser
Enh.Gen.
210920070827Matthias EpheserWerner Guttmann Added support for un-/marshalling extended JAVA 5 enums.
Reporter: Matthias Epheser
BugXML
211220070824Werner GuttmannWerner Guttmann Fixed performance issue with validation related to IDHREFs.
Reporter: Carlo Romero
Enh.Gen.
211720070824Matthias EpheserWerner Guttmann Added support for generating genuine Java 5 enums for simply type enumerations.
Reporter: Matthias Epheser
Enh.Gen.
207820070816Werner GuttmannWerner Guttmann Fixed problem with code generation for nested choices.
Reporter: Ron Corcuera
Enh.Gen.
211420070814Joachim GrüneisWerner Guttmann Removed code duplication from static Marshaller.marshal() methods.
Reporter: Joachim Grüneis
Enh.XML
210620070814Matthias EpheserWerner 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
211320070814Werner GuttmannWerner Guttmann Removed code duplication from static Unmarshaller.unmarshal() methods.
Reporter: Werner Guttmann
Enh.XML
210420070811Joachim GrüneisRalf Joachim Refactored JavaNaming.
Reporter: Joachim Grüneis
Enh.XML
209920070810Werner GuttmannWerner Guttmann Fixed problem with creation of example sources JAR.
Reporter: Alex Vendrow
BugXML
207720070809Werner GuttmannWerner Guttmann Fixed problem with code generation for hexBinary collections.
Reporter: Jeremie Poutrin
BugXML
205520070806Ralf JoachimRalf Joachim Use refactored Castor configuration at JDO modul.
Reporter: Ralf Joachim
Enh.JDO
201220070804Jim ProcterRalf Joachim Fixed infinite recursion with cyclid IDREFs at hashCode() and equals().
Reporter: Jim Procter
Enh.XML
201120070804Jim ProcterRalf Joachim Call hashCode() of the base XML type at hashCode() of generated class.
Reporter: Jim Procter
Enh.XML
210020070804Ralf JoachimRalf Joachim Fixed sealing violation occured when using castor-jdo.
Reporter: Brian Schlining
BugJDO
205820070804Ralf JoachimRalf Joachim Cleaned up checkstyle and compiler warnings at JDO modul.
Reporter: Ralf Joachim
Enh.JDO
204820070802Werner GuttmannWerner Guttmann Fixed NPE related to usage of <xsd:union>.
Reporter: Ezequiel Puig
BugXML
193220070728Joachim GrüneisRalf Joachim Splited ClassDescriptorResolver to be more expandable for future needs.
Reporter: Joachim Grüneis
Enh.XML
192720070725Ralf JoachimRalf Joachim Refactored Castor configuration.
Reporter: Ralf Joachim
Enh.All
134220070724Ralf JoachimRalf Joachim Added special processing of proxied classes.
Reporter: Stephen Bash
Enh.XML
203720070713Water GuoWerner Guttmann Added missing property to XML FAQ entry on Xerces and Java 5.
Reporter: Water Guo
Bug.XML
203420070711Sachith DhanushkaWerner Guttmann Changed visibility for various schema-related classes to support JAXB 2.x work.
Reporter: Sachith Dhanushka
Enh.XML
203420070703Werner GuttmannWerner Guttmann Fixed broken complex type bindings in 'bindings' HOW-TO.
Reporter: Mauricio Hiroshi Nagaoka
BugXML
203220070702Werner GuttmannWerner Guttmann Improved documentation for use of JDK-internal Xerces instance.
Reporter: Belkorin
BugXML



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
IdDateFixed byCommitted by DescriptionTypeProjectModule
201320070625Ralf JoachimRalf Joachim Fixed wasting of processing time on string concatenation in log statements.
Reporter: Ralf Joachim
Enh.All
202320070623Werner GuttmannWerner Guttmann Fixed problem with duplicate IDs in id/idhref leniency mode.
Reporter: Carlo Romero
BugXML



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
IdDateFixed byCommitted by DescriptionTypeProjectModule
192620070617Werner GuttmannWerner Guttmann Extended code that depends on id/href leniency.
Reporter: Werner Guttmann
BugXML
200720070614Ralf JoachimRalf Joachim SVN moved JDO files from src/bugs and src/tests to cpactf/src/test.
Reporter: Ralf Joachim
Enh.JDO
201720070614Werner GuttmannWerner Guttmann Fixed ArrayIndexOutOfBoundException in related to timezone offsets that include minutes.
Reporter: Bill Robertson
BugXML
200920070611Werner GuttmannWerner Guttmann Added 'xmlctf' module to source JARs.
Reporter: Petteri Räty
BugGen
200820070609Ralf JoachimPetteri Räty Fixed CLONE-BigDecimal usage in Types.java that can't run on jre1.4.2.
Reporter: Ralf Joachim
Enh.XML
200520070607Ralf JoachimRalf Joachim SVN moved log4j database appender to examples modul.
Reporter: Ralf Joachim
Enh.JDO
200620070607Ralf JoachimRalf Joachim SVN moved JDO files from src/test/java into cpa/src/test/java.
Reporter: Ralf Joachim
Enh.JDO
200420070607Ralf JoachimRalf Joachim SVN moved JDO files from src/main/resources into cpa/src/main/resources.
Reporter: Ralf Joachim
Enh.JDO
200120070607Ralf JoachimRalf Joachim SVN moved JDO files from src/main/java into cpa/src/main/java.
Reporter: Ralf Joachim
Enh.JDO
200020070607Ralf JoachimRalf Joachim Created basic modul structur for JDO modul including eclipse configuration.
Reporter: Ralf Joachim
Enh.JDO
177420070607Le Duc BaoRalf Joachim Replaced PrintStream and StringBuffer by a Writer implementation.
Reporter: Ralf Joachim
Enh.JDO
99120070601Werner GuttmannWerner Guttmann Fixed a problem with incorrect import statements/class name references in the context of included/imported XML schemas.
Reporter: Godmar Back
BugGen.
99120070528Michael KoppWerner Guttmann Added support for Java 5 enums during unmarshalling.
Reporter: Michael Kopp
Enh.XML
122120070526Werner GuttmannWerner Guttmann Added support for Java 5 enums during marshalling.
Reporter: Benoit Xhenseval
Enh.XML
198520070524Werner GuttmannWerner Guttmann Trace statements output only if in trace mode.
Reporter: Ed Wallen
BugXML
185020070515Werner GuttmannPaul Philion Refactored toString() method of XMLException.
Reporter: Paul Philion
BugXML
176920070515Werner GuttmannWerner Guttmann Added get-/setProperty() methods to (un-)Marshaller so that properties can be set programmatically.
Reporter: Werner Guttmann
Enh.XML
198220070514Werner GuttmannWerner Guttmann Fixed a problem with namespace processing in the context of substitution groups.
Reporter: Ted Troccola
BugGen
198120070514Werner GuttmannWerner Guttmann Fixed a problem with the processing of substitution groups if sequence + order validation enabled..
Reporter: Ted Troccola
BugGen
197120070509Werner GuttmannWerner Guttmann Made org.exolab.castor.persists.spi.Identity implement java.io.Serializable.
Reporter: Gonzalo Abollado
BugJDO
196420070506Werner GuttmannWerner Guttmann Fixed problem with picking up SAX features from custom castor.properties.
Reporter: Anti Orgla
BugXML
196220070505Werner GuttmannWerner 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
EnhXML
189620070430Werner GuttmannWerner Guttmann Removed (illegal) underscores from calls to PropertyChangeListeners.
Reporter: Azgard
BugXML
195720070430Paul PhilionWerner Guttmann Switched logging for Unmarshaller/UnmarshalHandler to commons-logging.
Reporter: Paul Philion
BugXML
194720070429Werner GuttmannWerner Guttmann Fixed problem with access to values stored in ehcache related to expiration.
Reporter: Gonzalo Abollado
BugJDO
195520070426Werner GuttmannWerner Guttmann Improved handling of global/local element collisions with identical type for automatic class conflict resolution
Reporter: Werner Guttmann
BugXML
192120070425Werner GuttmannWerner Guttmann Fixed incorrect Java version number (as used in Marshaller).
Reporter: Dmitry Savenko
BugXML
195420070425Werner GuttmannWerner Guttmann XML code generator does not create property* methods for enumerations anymore.
Reporter: Godmar Back
BugGen
195220070423Ralf JoachimRalf 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
IdDateFixed byCommitted by DescriptionTypeProjectModule
194520070418Doug DanielsWerner Guttmann Fixed problem with 'time' type handling in XML instance to schema generator.
Reporter: Doug Daniels
BugXML
193720070416Paul CroarkinWerner 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
BugXML
194320070409Werner Guttmann<