Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "ECF Remote Services"

Line 5: Line 5:
  
 
See also the newly checked in (7/17/2006) org.eclipse.ecf.remoteservice plugin (see [http://www.eclipse.org/ecf/resources.html ecf dev resources] to get CVS access to the code (in plugins module).
 
See also the newly checked in (7/17/2006) org.eclipse.ecf.remoteservice plugin (see [http://www.eclipse.org/ecf/resources.html ecf dev resources] to get CVS access to the code (in plugins module).
 +
 +
See also this project set (for anonymous CVS access...ECF committers should access via extssh protocol for read/write access):
 +
 +
<pre>
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<psf version="2.0">
 +
<provider id="org.eclipse.team.cvs.core.cvsnature">
 +
<project reference="1.0,:pserver:dev.eclipse.org:/home/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.remoteservice,org.eclipse.ecf.remoteservice"/>
 +
</provider>
 +
</psf>
 +
</pre>
  
 
<pre>
 
<pre>

Revision as of 14:07, 17 July 2006

Scott has been fooling around with designing a remote OSGI services API.


Bslow are some ideas for an IRemoteServiceContainer...an adapter interface for registering, finding, and using remote service references.

See also the newly checked in (7/17/2006) org.eclipse.ecf.remoteservice plugin (see ecf dev resources to get CVS access to the code (in plugins module).

See also this project set (for anonymous CVS access...ECF committers should access via extssh protocol for read/write access):

<?xml version="1.0" encoding="UTF-8"?>
<psf version="2.0">
	<provider id="org.eclipse.team.cvs.core.cvsnature">
		<project reference="1.0,:pserver:dev.eclipse.org:/home/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.remoteservice,org.eclipse.ecf.remoteservice"/>
	</provider>
</psf>
public interface IRemoteServiceContainer {
	
	public void addRemoteServiceListener(IRemoteServiceListener listener);
	public void removeRemoteServiceListener(IRemoteServiceListener listener);
	
	public IRemoteServiceRegistration registerRemoteService(String [] clazzes, Object service, Dictionary properties) throws ECFException;
	public IRemoteServiceReference[] getRemoteServiceReferences(ID [] idFilter, String clazz, String filter) throws ECFException;
	public IRemoteService getRemoteService(IRemoteServiceReference ref) throws ECFException;
	public boolean ungetRemoteService(IRemoteServiceReference ref);
	
}

public interface IRemoteServiceRegistration {
	public IRemoteServiceReference getReference();
	public void setProperties(Dictionary properties);
	public void unregister();
}

public interface IRemoteServiceReference {
	public ID getRemoteID();
	public Object getProperty(String key);
	public String [] getPropertyKeys();
}

public interface IRemoteService {
	public Object callSynch(IRemoteCallable call) throws ECFException;
	public AsynchResult callAsynch(IRemoteCallable call) throws ECFException;
	public void fire(IRemoteCallable call) throws ECFException;
}

public interface IRemoteCallable {
	public String getMethod();
	public Object [] getParameters();
	public Dictionary getProperties();
	public long getTimeout();
}

Back to the top