Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Communications Framework (ECF) » How to implement a new provider
How to implement a new provider [message #623457] Wed, 09 April 2008 10:11 Go to next message
James Peltzer is currently offline James Peltzer
Messages: 43
Registered: July 2009
Member
Is there any place where I can find information about implementing a new
provider.

Information like:
Interfaces I need to implement
Extension Points I need to use
What the interfaces are actually supposed to do
etc.

The only part of ECF I care about is the remote services API and I don't
really care if my provider is capable of anything outside of that scope.

Also, if someone already has a SOAP provider implemented, I would really
like to know so I can avoid re-inventing the wheel.

Help. Please.

Thanks,

-James
Re: How to implement a new provider [message #623458 is a reply to message #623457] Wed, 09 April 2008 13:29 Go to previous message
Scott Lewis is currently offline Scott Lewis
Messages: 966
Registered: July 2009
Senior Member
Hi James,

James Peltzer wrote:
> Is there any place where I can find information about implementing a new
> provider.
>
> Information like:
> Interfaces I need to implement
> Extension Points I need to use
> What the interfaces are actually supposed to do
> etc.

There is information about how to create a new IContainer type in the
first few sections of the ECF Archtectural Overview here

http://www.eclipse.org/ecf/documentation.php

As a quick summary (I'm trying to work on a tutorial on exactly this
topic, but it's slow going with all the other commitments):

Necessary Extension points:

org.eclipse.ecf.namespace: This allows new providers to define a new
type of Namespace and ID. Extensions must create a class that extends
Namespace (and, of course overrides/implements appropriate methods).

org.eclipse.ecf.containerFactory: This allows new providers to define a
new IContainer implementation class (and any adapter interfaces). The
interface that must be implemented is
org.eclipse.ecf.IContainerInstantiator. Note there is also a utility
BaseContainerInstantiator class that can be used (in same package) if
desired.

These are the only two 'required' extension points to create an ECF
provider.

There is a trivial example provider implementation that implements these
two extension points called org.eclipse.ecf.examples.provider.trivial.
The project is located here in CVS:


/cvsroot/technology
org.eclipse.ecf/examples/plugins/org.eclipse.ecf.examples.pr ovider.trivial

You can browse the source via the web, if you wish, here:

http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.ecf/exa mples/plugins/org.eclipse.ecf.examples.provider.trivial/?roo t=Technology_Project

>
> The only part of ECF I care about is the remote services API and I don't
> really care if my provider is capable of anything outside of that scope.


Understood. So in addition to the above, you will need to implement
(via IContainer.getAdapter()) the IRemoteServiceContainerAdapter
interface. Since you don't want your provider to supply any other
functionality then you don't need/want to implement other providers.


>
> Also, if someone already has a SOAP provider implemented, I would really
> like to know so I can avoid re-inventing the wheel.

There is not any SOAP provider implemented that I know of...yet. We
would very much like to make one available though...would you consider
working with us and contributing/making the implementation available?

BTW, the Orbit project makes the Apache axis (v1.4) SOAP library
available as a bundle/bundles:

http://download.eclipse.org/tools/orbit/downloads/drops/S200 80326131619/

as well as some other libraries potentially useful/relevant to a ECF
remoteservices SOAP provider (org.apache.ws.*, jetty, etc). I don't
know what you have in mind WRT making the actual SOAP calls (Axis or
something else), but these may come in handy...they are already being
used, I believe, in WTP and perhaps STP and other Eclipse Foundation
projects. They have already been approved for use in Eclipse
Foundation/EPL projects so ECF's using them would be very easy.

Also, we now have an implementation of the ECF remote services API that
uses/is based upon r-OSGI (r-osgi.sourceforge.net). The provider
implementation is here:

:pserver:anonymous@ecf1.osuosl.org:/ecf
plugins/org.eclipse.ecf.provider.r-osgi

This is not yet at Eclipse.org because we are waiting for IP approval,
which we expect to have within next week or so (and at that point it
will move to dev.eclipse.org). This provider was implemented by Jan
Rellermeyer, based upon his work on r-OSGi.

Also, I (Scott) am in the middle of using the Riena project
http://www.eclipse.org/riena to create a remote services provider that
uses Riena's RPC mechanism (JSON over http-based). This work is not yet
checked into the ECF codebase, but it will be over the next week.

We would love to have a SOAP-based ECF remote services provider
available, so if this is something you would consider please let us
know. Also, if you have any questions and/or suggested changes WRT the
ECF core APIs (namespace and/or IContainer) or the remote services API,
please do let us know...via this newsgroup, dev mailing list, and/or
bug/enhancement reports at bugs.eclipse.org.

Thanks James,

Scott
Previous Topic:Google SOC 2008 Proposal Deadline
Next Topic:Question about method asProperties( ) in ServiceProperties (in ECF discovery)
Goto Forum:
  


Current Time: Mon Jul 28 14:42:04 EDT 2014

Powered by FUDForum. Page generated in 0.01478 seconds