This release of the JavaTM 2 Platform,
Standard Edition, includes
RMI-IIOP, a technology that integrates Java RMI (Remote Method
Invocation)
and Java IDL. As a result, Java IDL now uses a
new version of the
IDL-to-Java
compiler. This compiler supports new CORBA-standard features
required for RMI-IIOP. A summary of the changes that have occurred
as a result are outlined below.
RMI-IIOP supersedes Java IDL
for most purposes, by enabling you to write CORBA-compliant interfaces
directly in Java rather than in the OMG-specified IDL (Interface
Definition Language)
used with Java IDL. For details, see the
RMI-IIOP documentation.
Java IDL API changes
The following list provides a summary of changes that occurred in Java
IDL between the release of JDK 1.2 and J2SE v.1.3.
NEW! IDL-to-Java compiler, idlj
The tool that generates Java bindings froma given IDL file has been
renamed from idltojava to idlj. The
idltojava compiler was a separate download in JDK 1.2, the
idlj compiler is available as part of the J2SE v.1.3 download
and can be found in the /bin directory.
NEW! IDL-to-Java compiler is 100% Pure Java
The idltojava compiler was hard-coded to use a default C++
preprocessor. When using the idltojava compiler, it was
necessary to add the path to the preprocessor prior to running the
idltojava compiler. The idlj compiler is 100% pure
Java, so no preprocessor is necessary, and no special care need be
taken to set up a path to a preprocessor.
NEW! More IDL-to-Java compiler options
The idltojava compiler generated both client and
server-side bindings by default. The idlj compiler generates
only client-side bindings by default (making the assumption that client
and server will reside on different hosts). You can easily emulate the
default of the previous compiler by using the -fall option
when compiling IDL files.
NEW! Mapping for interfaces
The idltojava compiler generated five files in a
subdirectory with the same name as the IDL module. In accordance with
the OMG IDL to Java Language
Mapping Specification, Section 1.12, Mapping for
Interfaces, the idlj compiler generates six files. The
difference is that the signature interface no longer contains the
method that corresponds to the interface defined in the IDL file.
Instead, the operations interface,
<interface>Operations.java, is generated in the
<module> subdirectory and contains the methods
defined by the interface. The operations interface is shared by both
stubs and skeletons.