- 
                            Key: CORBA26-63
- 
                            Legacy Issue Number: 4116
- 
                            Status: closed
- 
                            Source: Zuehlke Engineering ( Frank Pilhofer)
- 
                            Summary:I am somewhat surprised over the ExtendedIR interface in 00-11-01. 
 I am very aware of problems with extensibility in the Interface Repo-
 sitory. In the past, a lot of problems have been caused because modi-
 fications like InterfaceDef::is_abstract have been worked in and out.
 We certainly desperately need a backwards-compatible Interface Repo-
 sitory.This is unachievable with version pragmas, because then a client's 
 is_a inquiries with "old" Repository Ids will fail, and the client
 will refuse to talk any further.Backward compatibility is instead achieved by not changing data types 
 (such as InterfaceDescription) and by not changing the signature of
 existing attributes and operations.Adding new types that are used by new operations on existing interfaces 
 does not break compatibility, because the client will simply be unaware
 that there are more operations than it knows of (such as describe_inter-
 face_2_3).Whether changing interfaces sensible is debatable, surely it's more 
 consistent to use derived interfaces instead – this has the least im-
 pact on compatiblity.In that light, I wonder whether the proposal in 00-11-01 gets us any 
 further. It adds more fixed interfaces in another module, and this new
 ExtendedIR module is just as static as the old ones have been. If any
 further changes were necessary, backwards-incompatible changes were
 just as necessary.The proposal in 00-11-01 also adds a lot of unnecessary verbose baggage 
 with its use of "extended" everywhere, and its usage of multiple inheri-
 tance from the original interfaces is confusing.Yet there is one item from 00-11-01 that I like much better than the 
 proposal in 99-10-03, and that is the usage of AbstractInterfaceDef and
 LocalInterfaceDef. I think that's the way to go.Therefore, I tend to vote against issue 3233 and its proposed resolution 
 in 00-11-01.Rather, I propose to go back to the original version instead, and - to add AbstractInterfaceDef, LocalInterfaceDef and the related
 container operations
- to add an AttributeWithExceptionsDef and InterfaceDef::create_
 attribute_with_exceptions and ValueDef::* operations.
 Whether the Interface Repository should be moved to a different module 
 should be a separate discussion. I support the idea, but I don't think
 that the implementation should be forced to offer access to the IFR
 using both the CORBA:: and IR:: modules.
 Note that vendors could still offer the old interfaces in their imple-
 mentation.
- to add AbstractInterfaceDef, LocalInterfaceDef and the related
- 
                            Reported: CORBA 2.4.1 — Tue, 19 Dec 2000 05:00 GMT
- 
                            Disposition: Resolved — CORBA 2.6.1
- 
                            Disposition Summary:see below 
- 
                            Updated: Fri, 6 Mar 2015 20:58 GMT