Java Endorsed Standards Override Mechanism

The following topics are covered:

Introduction

From time to time it is necessary to update the Java platform in order to incorporate newer versions of standards that are created outside of the Java Community Process (Endorsed Standards), or in order to update the version of a technology included in the platform to correspond to a later standalone version of that technology (Standalone Technologies).

The Endorsed Standards Override Mechanism provides a means whereby later versions of classes and interfaces that implement Endorsed Standards or Standalone Technologies may be incorporated into the Java Platform.

Deploying Updated Packages

Packages to be updated through this mechanism should be placed in JAR files. The system property java.endorsed.dirs specifies one or more directories that the Java runtime environment will search for such JAR files. If more than one directory path is specified by java.endorsed.dirs, they must be separated by File.pathSeparatorChar. If no value is set for java.endorsed.dirs, then Oracle's implementation of the Java platform looks for JAR files in a default standard location:

Here <java-home> refers to the directory where the runtime software is installed (which is the top-level directory of the Java SE Runtime Environment or the jre directory in the JDK).

The Java SE runtime environment will use classes in such JAR files to override the corresponding classes provided in the Java platform as it was shipped.

Endorsed Standards APIs

The Endorsed Standards for Java SE constitute all classes and interfaces that are defined in the packages listed in this section. Classes and interfaces defined in sub-packages of listed packages are not Endorsed Standards unless those sub-packages are themselves listed. The Endorsed Standards Override Mechanism may be used to override the Java SE platform packages in this list, and these packages may be overridden only by versions of the Endorsed Standard that are newer than that provided by the Java platform as released by Sun. With the exception of packages listed here and the technologies listed in the Standalone Technologies section below, no other packages from the Java SE platform API specification may be overridden.

javax.rmi.CORBA
org.omg.CORBA
org.omg.CORBA.DynAnyPackage
org.omg.CORBA.ORBPackage
org.omg.CORBA.portable
org.omg.CORBA.TypeCodePackage
org.omg.CORBA_2_3
org.omg.CORBA_2_3.portable
org.omg.CosNaming
org.omg.CosNaming.NamingContextExtPackage
org.omg.CosNaming.NamingContextPackage
org.omg.Dynamic
org.omg.DynamicAny
org.omg.DynamicAny.DynAnyFactoryPackage
org.omg.DynamicAny.DynAnyPackage
org.omg.IOP
org.omg.IOP.CodecFactoryPackage
org.omg.IOP.CodecPackage
org.omg.Messaging
org.omg.PortableInterceptor
org.omg.PortableInterceptor.ORBInitInfoPackage
org.omg.PortableServer
org.omg.PortableServer.CurrentPackage
org.omg.PortableServer.POAManagerPackage
org.omg.PortableServer.POAPackage
org.omg.PortableServer.portable
org.omg.PortableServer.ServantLocatorPackage
org.omg.SendingContext
org.omg.stub.java.rmi
org.w3c.dom
org.xml.sax
org.xml.sax.ext
org.xml.sax.helpers

In addition to the packages listed above, which are part of the Java SE specification, users of Sun's Java SE Reference Implementation are allowed to use the Endorsed Standards Override Mechanism to override implementation-specific classes associated with these packages, such as the org.w3c.dom sub-packages delivered in Sun's Reference Implementation.

Standalone Technologies

The Standalone Technologies for Java SE constitute all classes and interfaces that are defined and implemented in the technologies listed in this section. The Endorsed Standards Override Mechanism may be used to override the Java technologies in this list, and these technologies may be overridden only by providing a complete and newer implementation of the Standalone Technology than was provided in the original implementation of the Java Platform. With the exception of the technologies in this list and the packages listed in the Endorsed Standards APIs section above, no other packages from the Java SE platform API specification may be overridden.

Standalone Technology JSR Supported Implementation Version Packages
Java API for XML Processing (JAXP) JSR 206 1.6.0 See Java API for XML Processing in the Java SE Developer Guides.
Streaming API for XML (StAX) JSR 173 1.3 javax.xml.stream
javax.xml.stream.events
javax.xml.stream.util
Java Architecture for XML Binding (JAXB) JSR 222 2.2.8 javax.xml.bind
javax.xml.bind.annotation
javax.xml.bind.annotation.adapters
javax.xml.bind.attachment
javax.xml.bind.helpers
javax.xml.bind.util
Java API for XML Web Services (JAX-WS) JSR 224 2.2.9 javax.xml.ws
javax.xml.ws.handler
javax.xml.ws.handler.soap
javax.xml.ws.http
javax.xml.ws.soap
javax.xml.ws.spi
javax.xml.ws.spi.http
javax.xml.ws.wsaddressing
Java Compiler API JSR 199 1.8 javax.tools
Pluggable Annotation Processing API JSR 269 1.8 javax.annotation.processing
javax.lang.model
javax.lang.model.element
javax.lang.model.type
javax.lang.model.util
Scripting for the Java Platform JSR 223 1.0 javax.script
SOAP with Attachments API for Java (SAAJ) JSR 67 1.3.21 javax.xml.soap

Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.