# Official Specifications for CORBA support in J2SE 1.4

## Specification References

The specifications with which the Java 2 Platform, Standard Edition (J2SE) v.1.4 ORB complies are as follows. If these links do not take you to the referenced specification, the OMG may have changed the URL, and you can link to www.omg.org to search for the correct specification.

- CORBA 2.3.1 (formal/99-10-07)
- IDL to Java language mapping (ptc/00-01-08)
- Revised IDL to Java language mapping (ptc/00-11-03)
- Java to IDL language mapping (ptc/00-01-06)
- Interoperable Naming Service (ptc/00-08-07)
- Portable Interceptors (ptc/2001-03-04)

These are the only specifications referenced by this document.

## Supported Specification Details

Not all of the above specifications are currently implemented in the ORB in J2SE 1.4. The precise list of supported sections is as follows:

- CORBA 2.3.1 chapters 1-3 and 6-9
- Revised IDL to Java language mapping, section 1.21.8.2, the `orb.properties` file.
- CORBA 2.3.1 chapter 4 with the following replacements from the Portable Interceptors specification:

- section 4.2.3.5 `destroy`
- section 4.5.2 `CodeFactory` and `PICurrent` are required
- Section 4.5.3.4 as updated for `register_initial_reference`

- CORBA 2.3.1 chapter 5 with the following update from the Portable Interceptors specification:

- 5.5.2 `StringSeq` and `WStringSeq` are required. This adds the following classes to `org.omg.CORBA`:

- `StringSeqHolder`
- `StringSeqHelper`
- `WStringSeqHolder`
- `WStringSeqHelper`

- CORBA 2.3.1 sections 10.6.1 and 10.6.2 are supported for repository IDs.
- CORBA 2.3.1 section 10.7 for `TypeCode` APIs.
- CORBA 2.3.1 chapter 11, Portable Object Adapter (POA), with the following updates from the Portable Interceptors specification:

- Section 11.3.7 POAs must preserve all policies
- Section 11.3.8.2 again states that POAs must preserve all policies
- Section 11.3.8.26 `POA::id` is required.

- CORBA 2.3.1 chapters 13 and 15 define GIOP 1.0, 1.1, and 1.2. The J2SE 1.4 ORB fully supports all versions of GIOP, with the exception that the bi-directional GIOP feature defined in sections 15.8 and 15.9 is not supported.
- All of the Interoperable Naming Service is supported.
- Portable Interceptors section 13.8 (the new `Coder`/`Decoder` interfaces) and all of chapter 21 (the interceptor specification).
- Section 1.21.8 of the Revised IDL to Java Language Mapping Specification (ptc/00-11-03) has been changed from the version in the IDL to Java Language Mapping Specification (ptc/00-01-08).

## Tools

- The IDL to Java compiler (`idlj`) complies with:

- CORBA 2.3.1 chapter 3 (IDL definition)
- CORBA 2.3.1 chapters 5 and 6 (semantics of Value types)
- CORBA 2.3.1 section 10.6.5 (pragmas)
- The IDL to Java mapping specification
- The Revised IDL to Java language mapping specification section 1.12.1 "local interfaces"

- The Java to IDL compiler (the IIOP backend for `rmic`) complies with:

- CORBA 2.3.1 chapters 5 and 6 (value types)
- The Java to IDL language mapping. Note that this implicitly references section 1.21 of the IDL to Java language mapping
- IDL generated by the `-idl` flag complies with CORBA 2.3.1 chapter 3.