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 6: Line 6:
 
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):
+
See also the appropriate project set below.
 +
 
 +
Project set for ECF committers:
  
 
<pre>
 
<pre>
Line 12: Line 14:
 
<psf version="2.0">
 
<psf version="2.0">
 
<provider id="org.eclipse.team.cvs.core.cvsnature">
 
<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"/>
+
<project reference="1.0,:extssh:dev.eclipse.org:/home/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.provider.remoteservice,org.eclipse.ecf.provider.remoteservice"/>
 +
<project reference="1.0,:extssh:dev.eclipse.org:/home/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.remoteservice,org.eclipse.ecf.remoteservice"/>
 +
<project reference="1.0,:extssh:dev.eclipse.org:/home/technology,org.eclipse.ecf/tests/org.eclipse.ecf.test.remoteservice,org.eclipse.ecf.test.remoteservice"/>
 
</provider>
 
</provider>
 
</psf>
 
</psf>
 +
 
</pre>
 
</pre>
  
Here's a snapshot of an early version of the API ideas just to give you an idea of what I've been thinking.  See the source for a current version of everything, though.
+
Project set for anonymous CVS access
 
+
  
 
<pre>
 
<pre>
public interface IRemoteServiceContainer {
+
<?xml version="1.0" encoding="UTF-8"?>
+
<psf version="2.0">
public void addRemoteServiceListener(IRemoteServiceListener listener);
+
<provider id="org.eclipse.team.cvs.core.cvsnature">
public void removeRemoteServiceListener(IRemoteServiceListener listener);
+
<project reference="1.0,:pserver:dev.eclipse.org:/home/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.provider.remoteservice,org.eclipse.ecf.provider.remoteservice"/>
+
<project reference="1.0,:pserver:dev.eclipse.org:/home/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.remoteservice,org.eclipse.ecf.remoteservice"/>
public IRemoteServiceRegistration registerRemoteService(String [] clazzes, Object service, Dictionary properties) throws ECFException;
+
<project reference="1.0,:pserver:dev.eclipse.org:/home/technology,org.eclipse.ecf/tests/org.eclipse.ecf.test.remoteservice,org.eclipse.ecf.test.remoteservice"/>
public IRemoteServiceReference[] getRemoteServiceReferences(ID [] idFilter, String clazz, String filter) throws ECFException;
+
</provider>
public IRemoteService getRemoteService(IRemoteServiceReference ref) throws ECFException;
+
</psf>
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();
+
}
+
 
+
 
</pre>
 
</pre>

Revision as of 11:56, 4 August 2006

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


Below 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 the appropriate project set below.

Project set for ECF committers:

<?xml version="1.0" encoding="UTF-8"?>
<psf version="2.0">
	<provider id="org.eclipse.team.cvs.core.cvsnature">
		<project reference="1.0,:extssh:dev.eclipse.org:/home/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.provider.remoteservice,org.eclipse.ecf.provider.remoteservice"/>
		<project reference="1.0,:extssh:dev.eclipse.org:/home/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.remoteservice,org.eclipse.ecf.remoteservice"/>
		<project reference="1.0,:extssh:dev.eclipse.org:/home/technology,org.eclipse.ecf/tests/org.eclipse.ecf.test.remoteservice,org.eclipse.ecf.test.remoteservice"/>
	</provider>
</psf>

Project set for anonymous CVS 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.provider.remoteservice,org.eclipse.ecf.provider.remoteservice"/>
		<project reference="1.0,:pserver:dev.eclipse.org:/home/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.remoteservice,org.eclipse.ecf.remoteservice"/>
		<project reference="1.0,:pserver:dev.eclipse.org:/home/technology,org.eclipse.ecf/tests/org.eclipse.ecf.test.remoteservice,org.eclipse.ecf.test.remoteservice"/>
	</provider>
</psf>

Back to the top