# Endorsed Standards Override Mechanism

Documentation Contents

### Introduction

> An endorsed standard is a JavaTM API defined through a standards process other than the Java Community ProcessSM (JCPSM). Because endorsed standards are defined outside the JCP, it is anticipated that such standards may be revised between releases of the Java 2 Platform. In order to take advantage of new revisions to endorsed standards, developers and software vendors may use the Endorsed Standards Override Mechanism to provide newer versions of an endorsed standard than those included in the Java 2 Platform as released by Sun Microsystems.

### Endorsed Standards Classes Deployment

> Classes implementing newer versions of endorsed standards 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 Sun Microsystem's implementation of the Java 2 Platform looks for JAR files in a default standard location:

> >     <java-home>\lib\endorsed          [Microsoft Windows]
> >     <java-home>/lib/endorsed          [Solaris or Linux]

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

> The Java runtime environment will use classes in such JAR files to override the corresponding classes provided in the Java 2 Platform as shipped by Sun.

### Endorsed Standards APIs

> The endorsed standards for J2SETM 1.4 constitute all classes and interfaces that are defined in the packages listed below. 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 J2SE platform packages in the list below, and these packages may be overriden only by versions of the endorsed standard that are newer than that provided by the Java 2 Platform as released by Sun. No other packages from the J2SE 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 J2SE specification, users of Sun's J2SE Reference Implementation may be allowed to use the Endorsed Standards Override Mechanism to override implementation-specific classes such as the `org.w3c.dom` sub-packages delivered in Sun's Reference Implementation. See the corresponding license for details.

Copyright © 2002 Sun Microsystems, Inc. All Rights Reserved. Please send comments to: j2se-comments@sun.com | Java Software