users@glassfish.java.net

Re: Need advice on the Glassfish Classloaders!

From: <glassfish_at_javadesktop.org>
Date: Fri, 24 Jul 2009 10:02:45 PDT

I'm not sure why you categorize the GFv2 ORB as ancient. It is still undergoing active
maintenance and enhancement by a small team at Sun. The CORBA standards that we
implement are as documented in JDK 5 and 6 (which really is an ancient ORB).
The official standard compliance spec is from JDK 5:
http://java.sun.com/javase/6/docs/technotes/guides/idl/compliance.html
Are there newer standards that you require? The Java language mappings are either at
or close to the last versions released by the RTFs. There are some enhancements in
CORBA 2.6-3.0 (some things like POAManager factories) that we do not support,
and of course there is no support for the CORBA component model, which does not
seem to have much relevance to the enterprise Java world. We also do not support
broken specifications (firewalls in particular), or much in the way of CORBA services.
We have always limited our implementation to core ORB features, plus whatever is
needed for the app server.

As far as replacing the ORB in GFv2, you CANNOT implement remote EJB support with a
different ORB, as the ORB has a number of special interfaces that the EJB implementation
requires. We tried a long time ago to get sufficient standards for Java EE support in place,
but it simply took too much time and resources to succeed.

If you want to run a different ORB inside a GFv2 container, that is USUALLY simple:
see for example the discussion at http://developers.sun.com/appserver/reference/techart/orb.html
on how to embed JacORB into a GFv2 container. There is one major (known) caveat:
the third party ORB MUST support operation with a foreign singleton ORB (that's one
reason why the embedded ORB work was done with JacORB). Basically the issue here
is that all IDL compilers for the IDL to Java mapping tend to need to call ORB.init() (no args)
to get an ORB instance to use as a typecode factory, and some ORBs insist on having
all typecode be their own implementation. Unfortunately the OMG standards are written to only
support a single singleton ORB per Java VM. I do not know if you can embed VisiBroker
this way or not; we do not have the resources at Sun to do extensive testing of ORBs other than
our own.
[Message sent by forum member 'kcavanaugh' (kcavanaugh)]

http://forums.java.net/jive/thread.jspa?messageID=357473