Release News

The current production download code is the version 1.2.3 release. The 1.2 release added major new features to JiBX, including integrated support for binding, schema, and WSDL generation from existing code, code and binding generation from existing schemas, and modular binding compilation. The 1.2.3 release adds many enhancements and bug fixes, including the following:

  • Fixed several problems with embedded schema components in CodeGen JavaDocs, including use of ref="..." attributes to components in other namespaces
  • Corrected several related issues in code generation from schema for schema using substitution groups, or group reference as base for complexType extension or restriction
  • Corrected code generation from schema when using the xml.xsd definitions from the http://www.w3.org/XML/1998/namespace namespace
  • Corrected bug in schema validation which required a base='...' attribute for a simpleType restriction element (inline base type allowed as alternative)
  • Fixed broken WSDL generation from Jibx2Wsdl, which generated empty definitions for output messages
  • Added support for xs:list types
  • Better naming algorithm for nested schema components (if only one child component, pass the outer name down to the child component)
  • Fixed repeated-type="array" CodeGen customization
  • Corrected problem with using existing bindings with redundant includes with CodeGen (NPE)
  • Changed Java 5 enum default serialization to use the name() method, rather than the toString() method
  • Changed Java 5 enum code generation from schema to add an xmlValue() method where needed to supply the actual text to be used in a document, rather than overriding toString()

There are still some known limitations in the support for code generation from schema, which are discussed on the CodeGen page. Also note that the binding.dtd and binding.xsd XML grammar definitions for binding documents have not yet been updated to include new features added in the JiBX 1.2 release.

There are a few changes to the CodeGen extensions handling since 1.2:

  • Added pluralize()/depluralize() methods to org.jibx.schema.codegen.extend.NameConverter interface
  • Changed org.jibx.schema.codegen.extend.ClassDecorator finish() method to take a binding component, allowing this method to modify the generated binding
  • Changed org.jibx.schema.codegen.extend.CollectionMethodsDecorator to use plural form of name (as obtained from the getXXX() method) for sizeXXX() and clearXXX() methods

Incompatibility Note: The 1.2 code introduced a number of backward-incompatible changes to the actual binding factory structure. If you compile a binding using the 1.2 or later binding compiler and then try to use the bound classes with an older runtime you'll get an error like:

Unable to access binding information for class xxx.xxx.xxx.Xxx
Make sure classes generated by the binding compiler are available at runtime

Status

There are no current plans for more releases in the 1.2.x series, though this may change if problems are found with the 1.2.2 release.

Work is in progress on JiBX 2.0. The main focus of the 2.0 changes is an entirely new code generation model, which is designed to support both direct bytecode generation (as in the 1.X code) and source code generation. The actual development schedule depends on the needs of commercial clients of Sosnoski Software Associates Ltd and Sosnoski Software Solutions, Inc., which represent the main developers of the JiBX project and related subprojects. The best estimate based on current needs is for a beta release mid-2010.