[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] Re: Notes on ECF meeting 8/16/05

Hi Folks,

I wanted to let everyone know that I made some significant API changes in response to Boris' comments. Specifically:

1) IContainer.joinGroup/leaveGroup are now IContainer.connect/disconnect.
2) Associated exception and param classes (e.g. ContainerJoinException, IJoinPolicy) renamed to be appropriate with connect/disconnect (e.g. ContainerConnectException, IConnectPolicy).
3) I vastly simplified the ECF namespace extension point. There is no long an IDInstantiator (interfaces and classes removed), there is just a namespace class, which must be a subclass of Namespace. The Namespace abstract superclass declares a method makeInstance, which is responsible for creating ID instances within that namespace. I made a number of associated changes to the schema docs, but I need to make another pass at those docs to check to make sure I've got the right name method/class name changes all made, etc.
4) I updated the javadocs for IContainer and associated classes.
5) I added a method to IContainer.getConnectNamespace(). This allows a client to query the container to get a hold of the Namespace that is appropriate for creating an ID to pass into the 'connect' method. This way client code can expect containers to provide information sufficient for a) creating an ID (from a URI, for example) that the container can use to connect with a remote server or group.

Any comments would be appreciated. I think these API changes make things both simpler for the API user and simpler for the provider implementer (which was the goal). Thanks to Boris for proposing these ideas.


Boris Bokowski wrote:

Boris questioned the use of joinGroup/leaveGroup rather than

**After discussing with Boris at call I (Scott) and
subsequently thinking about the various arguments for/against
joinGroup/leaveGroup vs. connect/disconnect am inclined to
*change* joinGroup/leaveGroup to connect/disconnect. What do
other people think about this? If we make this API change, I
would like to do it soon, so that we don't have to do it
again, so please let you opinions be known about this as soon as

For the record, here are my arguments for changing joinGroup/leaveGroup to connect/disconnect:

1. Under the hood, joinGroup in most cases means to connect to a
server that hosts some kind of networked service.
2. The method joinGroup could be misunderstood as being the API to
start a group chat session. Since one of our use-cases is to be able
to connect to an instant-messaging service, we should try to minimize
the chances of confusion.
3. For an example where the IContainer implements some kind of
FTP-based file transfer, joinGroup just seems to be the wrong name.

ecf-dev mailing list