Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] Two issues I feel that needs a healthydiscussion overbefore ECF 1.0...

Hi Remy,

Remy Suen wrote:
Hi Scott,

If we end up going with splitting the ECF core plugin I would suggest we
consider 3 resulting plugins

identity (namespace extension point):  org.eclipse.ecf.core.identity
container (containerFactory extension point):
org.eclipse.ecf.core.container
shared object (sharedObjectFactory extension point):
org.eclipse.ecf.core.sharedobject

What exactly is going to be identity? The IContainer interface defines
methods that requires Namespaces and IDs, so how do you plan to split
those two apart?

The 'container' bundle would have to depend upon the identity bundle. I'm thinking that the identity bundle could contain just org.eclipse.ecf.core.identity.*


But before we go too much further in these directions...do people really
feel this is necessary?  That is, do the size reduction benefits (<
136K) obviously outweigh the overhead (addl complexity, more meta files,
etc) of having multiple plugins?  Perhaps the answer is obviously 'yes',
but I just want to explore this a little before we just do it.

Tough call, sorting by size within the plugins/ folder do show quite a
few plug-ins that are below the 100kb mark. Perhaps Pascal or Philippe
can comment on this bit. Though I think that the question we need to
ask ourselves right now is "how often do bundles/plug-ins that depensd
on org.eclipse.ecf at the moment actually use the shared object subset
of interfaces/classes?" Going through org.eclipse.ecf.presence, I
notice that pretty much nothing is used besides ID and IContainer, and
we know org.eclipse.ecf.filetransfer is similar per previously
discussed. I'm not really familiar with the other plug-ins, so I can't
comment on those.

In practice, the main use of the shared object/sharedobjectcontainer code is to support provider implementations. Shared objects give some notion of 'reusable' components for ECF containers.

For example, one way to implement an API like remoteservice API (org.eclipse.ecf.remoteservices) is to build a shared object that implements IRemoteServiceContainer, and then reuse that shared object on *all* providers that support ISharedObjectContainer. I've recently doing this via the platform org.eclipse.core.runtime.adapters extension point (e.g. see org.eclipse.ecf.providers.remoteservice/plugin.xml). This allows reuse of the code implementing IRemoteServiceContainer on multiple providers that implement ISharedObjectContainer (like the ECF generic, xmpp, jxta, and jms).

This doesn't by any means mean that the shared object packages/code currently in core *must* stay in core (and all this would continue to work with a sharedobject plugin outside of core). But it does serve some function as obviously providers must be written and this does give some useful support for creating providers in a component-based fashion.

Anyway...I'm open to splitting things out...and maybe that is the right thing. I did get Pascal's comments and I know it's a good idea to make as small as possible for small runtime support (which absolutely I want to be there).

Thanks,

Scott



Regards,
Rem
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev




Back to the top