[omniORB] Introduction..

F. Michel sxthree@penfeld.tls.mms.fr
Fri, 17 Dec 1999 16:43:20 +0100


Hi omniORB users & developpers.

I'm new on this list, though I've been using omniORB
for a few months. My name is Francis Michel (the
email is not really explicit about this), working as
a SW engineer in Matra, Toulouse, south of France.

I'm currently using version 2.8.0 (last stable release) and
my job for now is to provide an "industrial" version of a
product that was initially developped with Iona's Orbix.

I had to make a few changes in the compiler in order to
compile the idls and have them work the way we expected
them to when using Orbix. I tried to introduce fonctionalities
without modifying the nominal behaviour using command line
options to omniidl2 and ifdefs in CORBA.h.
I'd like to know which of those patches may be integrated in
new releases and which may not. Some may have better
implementations, some may break OMG compliance.

Here is a list:
- RefCounting. For explicit object management we need to
know the refount of CORBA objects as well as our local objects.
omniObject only provides a private method for refCount retrieval.
Is there a reason why it couldn't be public (or at least protected) ?

- Naming service. Our product provides its own naming service
with an externalization method. It was initially developped using
OMG specification and now that all ORBs implement this service
we experience lots of name clashes. Well, I won't really agree with
this initial choice, but I have to deal with, so... Could it be possible
to
make omniORB naming service an optional feature ? (few ifdefs...)

- Keep include paths in generated stubs. This is a "nice to have"
feature. I've implemented a "-K" options which allows to keep
include paths and to remove given prefixes from the absolute paths.

- Skeleton generation. The purpose is to generate a dispatch method
inside the interface class rather than generating a skeleton class
for servers. This is a quite personal approach of the BOA but it allows
diamond inheritance between interfaces.

- CORBA::Environment. Orbix provides an additional parameter to
all distributed methods. We never use this parameter but it's in the
code. I've added an option to generate this parameter with default
values for operations and attribute access methods.


Of course each point should be given further explanations, this is just
an introduction.

=========================================================

Something different: I've noticed a problem with name lookup. An
identifier is now searched only in the first inherited level.
( An interface A defines an exception ex. B inherits from A and C
inherits from B. C defines a method which raises an ex. There, ex
is said not to be defined.)
This worked with omniidl2 V 2.7.1.
Is there a change in scoping policy ?

Thanks for any information about this.


salutations.

Nyny