Overview of the currently implemented CORBA functionality
The CORBA implementation in the Classpath project is now a working prototype.
This prototype is interoperable with Sun's implementation v 1.4, transferring
object references, primitive types, narrow and wide strings, arrays, structures
and trees between these two platforms. The thrown exceptions are also transferred
and handled. The support for stringified object references (IORs) is implemented.
The redirection commands works, LOCATION_FORWARD_PERM changing the target address
until the application is restarted and LOCATION_FORWARD redirecting for the
current session only. Both Little and Big Endian encoded messages
are accepted. The encoding of the sent messages is the same as used in the
stringified IOR reference of that object or Big Endian, if no such data
available.
The current release supports the Value types that appeared since v 1.3 and are
something between CORBA structures (no methods, data local) and CORBA objects
(both methods and data remote). Value type has local data, can have
local methods and is transferred by value, not by IOR reference.
You can use both request-oriented (based on org.omg.CORBA.Request)
and stream-oriented (based on org.omg.CORBA.portable.ObjectImpl)
invocation models. The current release includes the working examples, demonstrating
the client-server communication using both methods. These examples also show,
how to use the Classpath naming service. The IDL compiler is not yet written,
but as a side effect of the required compatibility, the implementation seems
accepting the output of the Sun's 1.3 idlj.