|
The current production download code is the version 1.1.5 production release.
The last prior production distribution was version 1.1.3 - version 1.1.4 was
only distributed as jar files, and the changes from this version has been
incorporated into 1.1.5.
Work is getting started on a 1.2 release of JiBX which focuses on improving
the tool support. This will include updated and enhanced versions of the binding
generator, schema generator, and code generator from schema. These tools will
also be used for a production-grade version of JibxSoap. The first 1.2 beta
release is planned for July, 2007.
Work is also starting 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 first
beta release of JiBX 2.0 is planned for October, 2007.
The 1.1.5 production release corrects several code generation failures, and
also provides support for namespaces used in abstract <mapping>s. It is a
recommended upgrade for all JiBX users.
The 1.1.3 production release fixed several problems found in the 1.1 release,
including:
- Corrected a pair of problems with nested unordered groups, which resulted in
exceptions during code generation.
- Changed child component order under <binding> element to namespace, format,
include, in order to allow namespaces to be applied to included bindings, and
formats from includes to be used in the including binding.
- Fixed handling of abstract mappings with attributes (with or without
content), and also fixed namespace declarations for abstract mappings.
- Fixed problem with abstract base mapping use in unordered collection failing
code generation (stack size mismatch)
- Fixed add-constructors='true' option to make existing default constructors
accessible, and to add superclass default constructors where necessary.
- Corrected a problem in working with arrays of longs or doubles which could
result in modified classes failing JVM validation.
- Changed default JiBX build Ant target to build the full distribution with
debug information included, added a new "small-jars" target to compile and jar
without debug information.
- Loosened some overly-stringent checks during binding validation.
The 1.1 production release added several major new features to those
supported by the 1.0.x releases, including:
- Support for StAX parsers and writers as an alternative to the default
XMLPull parser (see StAX support for details on
using this).
- Compatibility with the Apache Axis2
web services framework.
- Support for "flexible" unmarshalling, where unknown elements are ignored
within unordered groups (using the new flexible attribute in the
structure attribute group).
- Allow the use of required elements within unordered groups, with runtime
exceptions if the elements are not present when unmarshalling.
- Detection of duplicated element errors within unordered groups (and the
option of disabling this using the new allow-repeats attribute in the
structure attribute group)
- Added direct support for using Java 5 enum types as values.
- Provided an option to add no-argument constructors to bound classes if not
already present (the new add-constructors attribute of the
binding element).
- Added an easy way to specify the type of instance to be created for an
interface or abstract class when unmarshalling (using the new create-type
attribute in the object attribute
group).
- Added support for the ugly-but-useful W3C XML Schema nillable kludge,
allowing elements to be included in instance documents to represent null values
(using the new nillable attribute in the
object attribute group).
- Changed the mapping element type-name
attribute, the structure element map-as
attribute, the format element label attribute, and
the value element format attribute to be
namespace-qualified values. To support this change the names of the
built-in conversion formats had to be changed.
- Provided J2ME compatibility, with new "j2me" build target to build J2ME
version of the distribution jars.
- More checking for possible errors during validation of the binding
definition.
Some of these new features (including the changed names for the built-in
format definitions, and the changed default behavior to throw an exception when
a bound element in an unordered groups is repeated) may cause problems for
existing bindings that worked on JiBX 1.0.x. Users with custom
marshallers/unmarshallers which rely on namespace index values may also be
effected by the xsi:nil support
change, which added the schema instance namespace at a fixed position in the
table of namespaces (index #2). I apologize for breaking full compatibility, but
felt that these changes were important enough for the future to justify the
inconvenience to current users.
See the Bugs and Bug Reporting page for information
about known issues and details of how to report problems.
|