Release News

The current production download code is the version 1.2.2 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.2 release adds many enhancements and bug fixes, including the following:

  • Fixed namespace handling for concrete mappings in precompiled binding
  • Added new ExtensionDecorator for setting a base class to be extended by the generated class, and also allowing pre-get/pre-set/post-set methods to be specified (from the base class, normally)
  • Fixed problem with element definition using wrong namespace in binding when the element type is in a different namespace
  • Added binding-file-name, binding-per-schema, and prefix attributes for and customizations, to control binding generation; now uses namespace prefix from schemas by default
  • Added -i CodeGen command line parameter, to use pregenerated bindings and code for referenced schemas
  • Added <schema-type> customization to allow overrides to the default handling of predefined schema datatypes
  • Added support for Joda Time library, including extensive conversion options
  • Fixed stack overflow resulting from circular schema references, added support for circular schema includes
  • Added support for schema xs:all compositor to code generation
  • Changed code generation to follow JavaBean conventions with isXXX() method rather than getXXX() for a boolean value
  • Added support for classpath: URLs for binding include paths
  • Added support for using existing bindings and schemas with Jibx2Wsdl
  • Added customizations for service method parameters and return values with Jibx2Wsdl
  • Added schema definition for CodeGen customizations (schemas/codegen-customizations.xsd

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.