# Changelog

The JAXB 2.x RI is a major reimplementation to meet the requirements of the 2.x specifications.

Please refer to the for older releases.

## Changes between 2.2.4 to 2.2.4-1

- 834 - Cannot use binding file on Windows

- 835 - XJC fails with project path that contains spaces

## Changes between 2.2.3u2 to 2.2.4

- 413 - Redundant cast to byte[] in code generated by XJCTask

- 416 - Ant XJC task problems with spaces in paths

- 450 - Reusing unmarshaller results in an unexpected result

- 549 - Unescaped javadoc in `@XmlElements`

- 602 - Different unmarshalling behavior between primitive type and simpletype with enumeration under restriction

- 618 - XJC generates certain code lines in a random order

- 620 - Problems with abstract classes and `@XMLValue`

- 652 - JAXB 2.2 API should be changed to work with old 2.1 jaxb implementation in JDK

- 696 - Incorrect implementation/documentation of javax.xml.bind.annotation.adapters.NormalizedStringAdapter

- 726 - Missing keyword 'throw'

- 761 - DatatypeConverterInterface.printDate inconsistencies

- 774 - Extra slash in XSD location prevents customization

- 803 - 2.2.2 strips schemaLocation in binding files

- 804 - JAXB 2.x : How to override an XmlElement annotation from parent class - Mission Impossible?

- 813 - Preserving white-space in XML (xs:string enumeration value) does not work

- 815 - Binding file cannot refer to schema file with space in file name.

- 816 - Incorrect System property to define the provider factory class

- 821 - Global customization are not applied to xjc when input document is WSDL

- 824 - API files in javax.xml.bind need to be updated for references to JLS with editions/hyperlinks

- 826 - JAXB fails to unmarshal attributes as properties on aix

- 268 - Map handling broken

- 470 - Potential changes to make JAXB work better with OSGi

- 478 - jaxb2-sources : Allow compilation under Java 6

- 633 - JDefinedClass getMods()

- 768 - Mailing list consolidation suggestions

- 784 - JAnnotationUse should provide getters for clazz and memberValues properties

- 406 - Allow setting of access modifiers in JMods

- 769 - Update to command-line help text

- 772 - Updates to XJC.html page and -Xpropertyaccessors plugin

- 783 - I18N: xjc generates localized strings of AM/PM so compilation fails

## Notable Changes between 2.2.3u1 to 2.2.3u2

- 826 - JAXB fails to unmarshal attributes as properties on AIX

## Notable Changes between 2.2.3 to 2.2.3u1

- 805 - SpecJ performance regression

## Notable Changes between 2.2.2 to 2.2.3

- 6975714 - JAXB 2.2 throws IAE for invalid Boolean values

- 620 - Problems with abstract classes (xsi type processing)

- Regression in Jersey JSON mapping

## Notable Changes between 2.2.1.1 to 2.2.2

- Specification changelog

- Fixes to bugs reported in java.net

## Notable Changes between 2.2.1 to 2.2.1.1

- This minor-minor release contains only changes relevant to GlassFish OSGi environment

## Notable Changes between 2.2 to 2.2.1

- Specification changelog

- Fixes to bugs reported in java.net

## Notable Changes between 2.1.12 to 2.2

- Specification changelog

- Fixes to bugs reported in java.net

## Notable Changes between 2.1.12 to 2.1.13

- Fixes to bugs reported in java.net

## Notable Changes between 2.1.11 to 2.1.12

- http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6846148

- https://jersey.dev.java.net/issues/show_bug.cgi?id=113

- https://jersey.dev.java.net/issues/show_bug.cgi?id=272

- Fixes to bugs reported in java.net

## Notable Changes between 2.1.10 to 2.1.11

- Minor licencing and legal fixes. No changes to source code.

## Notable Changes between 2.1.9 to 2.1.10

- Fixes to bugs reported in java.net

## Notable Changes between 2.1.8 to 2.1.9

- Fixes to bugs reported in java.net

## Notable Changes between 2.1.7 to 2.1.8

- Fixes to bugs reported in java.net

## Notable Changes between 2.1.6 to 2.1.7

- Fixed documentation that incorrectly showed that JAXB RI is CDDL only (it's actually CDDL/GPLv2+classpath dual license)

- Fixes to bugs reported in java.net

## Notable Changes between 2.1.5 to 2.1.6

- Fixes to bugs reported in java.net

## Notable Changes between 2.1.4 to 2.1.5

- Fixes to bugs reported in java.net

## Notable Changes between 2.1.3 to 2.1.4

- Fixes to bugs reported in java.net

## Notable Changes between 2.1.2 to 2.1.3

- Fixes to bugs reported in java.net

## Notable Changes between 2.1.1 to 2.1.2

- Fixes to bugs reported in java.net

## Notable Changes between 2.1 First Customer Ship (FCS) to 2.1.1

- Fixes to bugs reported in java.net

## Notable Changes between 2.1 Eary Access 2 to 2.1 First Customer Ship (FCS)

- Fixes to bugs reported in java.net

## Notable Changes between 2.1 Eary Access to 2.1 Early Access 2

- Fixes to bugs reported in java.net

- - Fixes to bugs reported in java.net

  - Bug fix: #6483368 javax.xml.bind.Binder.marshal() doesn't throw expected MarshalException

  - Bug fix: #6483953 javax.xml.bind.Binder.getJAXBNode(null) doesn't throw documented exception

  - More bug fixes

## Notable Changes between 2.0.2 to 2.1 Early Access

- Fixes to bugs reported in java.net

## Notable Changes between 2.0.2 to 2.0.3

- Fixes to bugs reported in java.net

- JavaSE 6 release is expected to include this version of the JAXB RI (certainly as of build 102.)

## Notable Changes between 2.0.1 to 2.0.2

- Fixes to bugs reported in java.net

- Bug fix: #6372392 Unmarshaller should report validation error for elements with xsi:nil="true" and content

- Bug fix: #6449776 ClassCastException in JAXB when using interfaces as parameters

- More bug fixes

## Notable Changes between 2.0 to 2.0.1

- Fixes to bugs reported in java.net

- More bug fixes

- The simpler and better binding mode is improved

- JAXB unofficial user's guide is available now, though it's still a work in progress

## Notable Changes between 2.0 Early Access 3 and 2.0 First Customer Ship (FCS)

- Java to schema samples are added

- Added <xjc:javaType> vendor customization

- Added experimental <xjc:simple> vendor customization, which brings in a new simpler and better binding mode

- The spec has renamed `AccessType` to `XmlAccessType`, and `@AccessorType` to `@XmlAccessorType`.

- Various error handling improvements

- Experimental canonicaliztion support is added.

- The '-b' option can now take a directory and recursively search for all "*.xjb" files.

- Fixed various issues regarding using JAXB from codef inside a restricted security sandbox.

- Added more pluggability points for plugins to customize the code generation behavior.

- Some of the code is split into a separate `istack-commons` project to promote more reuse among projects.

- Made a few changes so that RetroTranslator can translate the JAXB RI (and its generated code) to run it on JDK 1.4 and earlier

- Improved the quality of the generated code by removing unnecessary imports.

- Other countless bug fixes

## Notable Changes between 2.0 Early Access 2 and 2.0 Early Access 3

- Map property can be now correctly bound to XML Schema

- Default marshaller error handling behavior became draconian (previously errors were ignored.)

- @link to a parameterized type is now correctly generated

- started producing architecture document for those who want to build plugins or play with the RI internal.

- XJC now uses the platform default proxy setting by default.

- `@XmlAccessorOrder`, `@XmlSchemaType` and `@XmlInlineBinaryData` are implemented

- `@XmlJavaTypeAdapter` on a class/package is implemented

- Marshaller life-cycle events are implemented

- Integration to FastInfoset is improved in terms of performance

- XJC can generate `@Generated`

- The unmarshaller is significantly rewritten for better performance

- Added schemagen tool and its Ant task

- Various improvements in error reporting during unmarshalling/marshalling

- JAXB RI is now under CDDL

## Notable Changes between 2.0 Early Access and 2.0 Early Access 2

- The default for `@XmlAccessorType` was changed to PUBLIC_MEMBER

- Optimized binary data handling enabled by callbacks in package javax.xml.bind.attachment. Standards supported include MTOM/XOP and WS-I AP 1.0 ref:swaRef.

- Unmarshal/marshal support of element defaulting

- Improved the quality of the generated Java code

- Fixed bugs in default value handling

- Runtime performance improvements, memory usage improvements

- Added support for <xjc:superInterface> vendor extension

- Migrated source code to http://jaxb2-sources.dev.java.net

- Published NetBeans project file for JAXB RI

- Added more support to the schema generator: anonymous complex types, attribute refs, ID/IDREF, etc

- Implemented `javax.xml.bind.Binder` support (not 100% done yet)

- Implemented marshal-time validation

- Improved xjc command line interface - better support for proxy options, more options for specifying schema files

- Added schema-2-Java support for simple type substitution

- Added support for the new `<jaxb:globalBindings localScoping="nested" | "toplevel">` customization which helps control deeply nested classes

- Made the default `ValidationEventHandler` more forgiving in 2.0 than it was in 1.0 (The class still behaves the same as it did when used by a 1.0 app)

- Added wildcard support for DTD

- Numerous other small changes and bugfixes....

## Notable Changes between 1.0.x FCS and 2.0 Early Access

- Support for 100% W3C XML Schema (not all in EA, but planned for FCS)

- Support for binding Java to XML

- Addition of `javax.xml.bind.annotation` package for controling the binding from Java to XML

- Significant reduction in the number of generated schema-derived classes

  - Per complex type definition, generate one value class instead of an interface and implementation class.

  - Per global element declaration, generate a factory method instead of generating a schema-derived interface and implementation class.

- Replaced the validation capabilities in 1.0 with JAXP 1.3 validation API's

- Smaller runtime libraries

- Numerous other changes...