Dear All,

I have been working on a formal proposal for the Framework (late AbstractFramework) and BuilderService. Consequent on this work is also the ConnectionID interface. All of this is interdependent and has to be taken as a bundle. All of it is designed to work together as an all or nothing deal. There was another piece that was separable, however, the ComponentID interface. Really it should be part of the Core spec but I don't think Steve is working on it. This is the version that we came up with on Oct 2nd. I am using Boyana's notes as a reference see below. Please look at this and comment. I will post it to the voting machine soon if I don't hear anything. You can find the web version of this here

-Rob

ComponentID Proposed Modifications

gov.cca.ComponentID

Description

ComponentID provides an opaque handle with which to refer to a component. It is used in the gov.cca.BuilderServices interface and is most commonly obtained from the gov.cca.Services object that is obtained by every gov.cca.Component through the getComponentID() call. Obviously there is no guarantee that having a ComponentID instance actually means there is a valid component to which it refers. The component pointed to by the ComponentID may have been deleted or have otherwise gone out of scope. When this occurs the ComponentID is referred to as ``invalid''.

The change proposed here is to eliminate the string toString() method and add two in its place. This eliminates collisions with the Java API and provides a clearer understanding of what the different identifiers mean.

Interface Methods

string getInstanceName()

This is the unique instance name within the scope of the containing framework. Outside of this scope there is no guarantee that it means anything. Throws a CCAException if the ComponentID is invalid.

string getSerialization()

Returns a serialization of the ComponentID for which the framework, or possibly other instances of the same type of framework, can reconstruct the reference. Throws a CCAException if the ComponentID is invalid.

SIDL code for the interface, sent by Boyana

interface ComponentID {

/** Returns the instance name provided in 
BuilderService::createInstance().
string getInstanceName() throws CCAException;

/** Returns a serialization of the ComponentID.
(framework-specific)
string getSerialization() throws CCAException;

}