Bug 325813 - [remoteservices][provider] XML-RPC provider for ECF
Summary: [remoteservices][provider] XML-RPC provider for ECF
Status: RESOLVED FIXED
Alias: None
Product: ECF
Classification: RT
Component: ecf.remoteservices (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 7
: P3 enhancement (vote)
Target Milestone: 3.5.0   Edit
Assignee: Pavel Samolisov CLA
QA Contact:
URL:
Whiteboard:
Keywords: helpwanted, plan
Depends on: 327379
Blocks: 337242
  Show dependency tree
 
Reported: 2010-09-21 02:52 EDT by Pavel Samolisov CLA
Modified: 2011-02-18 12:08 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pavel Samolisov CLA 2010-09-21 02:52:05 EDT
XML-RPC is more simple then SOAP protocol for remote method invocation via HTML. We can use org.apache.xmlrpc from ORBIT for this task.
Comment 1 Scott Lewis CLA 2010-09-23 17:14:03 EDT
This is a good idea.  It should be fairly straightforward, given the xml-rpc bundle in Orbit as Pavel mentions.
Comment 2 Scott Lewis CLA 2010-10-18 14:24:49 EDT
Changing target milestone.
Comment 3 Pavel Samolisov CLA 2011-01-25 14:12:39 EST
Currently status.

XML-RPC Provider classes
Bundle: org.eclipse.ecf.remoteservice.rpc
Location: http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/framework/bundles/org.eclipse.ecf.remoteservice.rpc
Status: Under active development

XML-RPC Provider feature
Feature: org.eclipse.ecf.remoteservice.rpc.feature
Location: http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/releng/features/org.eclipse.ecf.remoteservice.rpc.feature
Status: Under preparing for releng works

Tests
Bundle: org.eclipse.ecf.tests.remoteservice.rpc
Location: http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/tests/bundles/org.eclipse.ecf.tests.remoteservice.rpc
Status: Today (01/25/11) all tests passed

Currently the provider supports followed things:
- RemoteServicesClient API (Sync and Async invokes via Callable/Call);
- Remote Service invokation via Proxy (if a server is based on the Apache XML-RPC library);
- Custom input parameters serializers (i.e. java objects into RPC-friendly types serializers).

Currently the provider does not support:
- HTTP headers relation authentification;
- custom datatypes, but I'm planning to finish this work on early Feb 2011.
Comment 4 Pavel Samolisov CLA 2011-01-28 06:42:39 EST
XML-RPC addon is available from the http://build.ecf-project.org/repo/C-HEAD-remoteservice.rpc.feature/lastSuccessful/archive/site.p2/ updatesite.
Comment 5 Scott Lewis CLA 2011-02-15 13:47:44 EST
Given comment 4, I'm resolving this as fixed.  Congratulations and Thanks to Pavel...this a great contribution.
Comment 6 Scott Lewis CLA 2011-02-16 18:40:35 EST
Pavel, I thought I would try to use the xml-rpc remote services provider for OSGi remote services (and the new remote service admin) with the 'hello' examples, but when I went to define an XML-RPC server (for the remote service host), I didn't find an xml-rpc server in the xml-rpc provider.  i.e. there was the 'ecf.xmlrpc.client' but no 'ecf.xmlrpc.server' that I could find.

Is there (or could there) be an xml-rpc remote services server?  Is this just something that you haven't gotten to?  

BTW, I've also been contemplating adding a rest remote service host API...i.e. something that could be used with restlet API.  Maybe this is also needed here (?)
Comment 7 Pavel Samolisov CLA 2011-02-18 02:59:43 EST
Hello Scott,

I made only client API for XML-RPC. I think we need some common API for web-services, REST, XML-RPC server part and we should realize the adapters using this commons API.

Also for server side. XML-RPC is supported only some datatypes (int, string, double, etc) and we need some datatype mapping convention that define how Java-classes will be mappings to XML-RPC supported types.
Comment 8 Scott Lewis CLA 2011-02-18 12:08:47 EST
(In reply to comment #7)
> Hello Scott,
> 
> I made only client API for XML-RPC. I think we need some common API for
> web-services, REST, XML-RPC server part and we should realize the adapters
> using this commons API.

Yes, I agree.  I've been thinking for some time about an API for server-side REST-based OSGi services...but not been able to do much around that yet.  My expectation is that the IRemoteServiceContainerAdapter.registerRemoteService would have some REST-API-specified service object that to expose rest-based remote services.


> 
> Also for server side. XML-RPC is supported only some datatypes (int, string,
> double, etc) and we need some datatype mapping convention that define how
> Java-classes will be mappings to XML-RPC supported types.

Can't XML RPC use java object serialization somehow?  In any case, I agree with you that this is another server-side design question.