-
Key: CORBA35-54
-
Legacy Issue Number: 5910
-
Status: open
-
Source: Laboratoire d`Informatique Fondamentale de Lille ( Raphael Marvie)
-
Summary:
The following information is sent in order for the specification to
clearly state if components and local interfaces can support abstract
interfaces (the specification is confusing on this point).CORBA 3.0.1 does not explicitely states if a component can support an
abstract interface, thus it can be considered that it is possible. If so
a big problem arises as local interfaces inheriting abstract ones is
confusing in the specification.In addition, it is neither explicitely stated that provides and uses
declarations can or cannot be of types defined through abstract
interfaces. It does not seem to make sense for a port to be an abstract
type. Facets will never be used by value, and an operation cannot
(should not) return the reference of a facet or a valuetype (which would
be in favor of provides to be defined using abstract interfaces).-
- Problem
Consider the following definitions which are correct regarding
formal/02-12-06:/* omg idl3 */
abstract interface I
{ void foo () ; } ;
component C supports I {
} ;
The mapping to OMG IDL2 of these definitions is not correct right now as
they become:
/* omg idl2 */
abstract interface I { void foo () ; };
interface C : Components::CCMObject, I { } ;
local interface CCM_C : I { } ;
According to formal/02-12-06, the last line may not be correct. Local
interfaces may not inherit abstract interfaces (section 10.5.28). (I use
may as it is confusing and can lead to various understanding of the
spec.)-
- Potential solutions:
1. State in the CORBA 3.0.1 that components cannot support abstract
interfaces. In favor: Could ne considered as a minor change. Against: a
component reference cannot be returned by an operation that can return
an object by value or by reference. This solution looks cleaner that the
second one from a software engineering point of view.2. Clearly state that components and local interfaces can support
abstract interfaces. This use may be surprising from a software
engineering point of view, but may be important for some users. This
bring back the debate "quality vs powerfulness".In any case, I think it should be clearly stated if local interfaces may
or may not inherit abstract ones. -
-
Reported: CORBA 3.0.2 — Wed, 23 Apr 2003 04:00 GMT
-
Updated: Wed, 6 Dec 2023 23:10 GMT
CORBA35 — issue on component supporting abstract interfaces
- Key: CORBA35-54
- OMG Task Force: CORBA 3.5 RTF