JavaTM API for XML Processing Release Notes

Specification Version: 1.6
Reference Implementation (RI) Version: 1.6.0
March 3, 2014

The updates in JAXP 1.6 are primarily motivated by the JDK 8 effort Prepare for Modularization. To allow for future modularization of the Java SE platform where service providers may be deployed by means other than JAR files and perhaps without the service configuration files, the JAXP 1.6 specification requires the use of the service provider loader facility defined by java.util.ServiceLoader to load services from service configuration files. This change has been incorporated into JDK 8. Please read below for more details about this update.

Changes and bug fixes:

  1. Locating and loading Service Providers

    JAXP performs a 4 step procedure to locate and load service providers. In JAXP 1.6, the manual process of reading the service files in the 3rd step is replaced by using the service provider loader facility defined by java.util.ServiceLoader. For compatibility, please see the compatibility section below.

  2. Security

    JAXP 1.6 RI includes the relevant security fixes that were included in JDK 7 update 51 please refer to JDK 7 update 51 release notes for more details.

  3. Others

    Please refer to:

    The JAXP 1.6.0 Change Log


  1. Custom ClassLoaders

    Service providers across JAXP will now be located consistently following the process as defined in java.util.ServiceLoader. The changes may result in some subtle differences from implementations of prior releases where the provider-configuration file may have been located differently, for example, by using a different getResourceXXX method of the ClassLoader than ServiceLoader. Applications that implement their own Classloaders shall therefore make sure that the ClassLoaders' getResourceXXX methods are implemented consistently so as to maintain compatibility.

  2. StAX API

    The StAX API 1.2, JSR 173 MR3, defined newInstance/newFactory methods that take two parameters: a factoryId and classLoader. The first parameter (factoryId) did not constrain what the value could be in the StAX specification, it implied it could be any arbitrary string. With JAXP 1.6 specification change, in the context of JAXP, the value of factoryId must be the name of the base service class if it is intended to represent the name of the service configuration file, that is, if it is not the name of a System Property.

    The second parameter (classLoader) was ignored by the factories when looking up and instantiating the services. This is no longer the case in JAXP 1.6 and JDK 8. JAXP 1.6 now loads implementations with the specified classLoader when it is not null.

  3. JDK Source Level

    Previous versions of JAXP implementation supported JDK 5. Starting from JAXP 1.6, JDK 6 and later are required due to the use of java.util.ServiceLoader.

End of JAXP Standalone distribution

    JAXP 1.6 will be the final standalone release. All future revisions to the JAXP API will be part of the Java SE specification, starting with Java SE 9. Future JAXP development will be done solely within the
OpenJDK community. Please join us in the OpenJDK community, use mailing aliases such as discuss for general discussion, [release]-dev for release-specific and core-libs-dev for JAXP specific questions. Report bugs at the JDK Bug System for the xml component.
Terms of Use; Privacy Policy; Copyright ©2013-2017 (revision 20160708.bf2ac18)
Please Confirm