easysoa/EasySOA — Issue #65: Service discovery by parsing implementation source code
Author: mdutoo
Created: 2011-10-25 09:44:34+00:00
State: open

Evaluate various alternatives, then implement the easiest and most useful one(s).

Source code, and what can be found in it that's interesting for EasySOA, can be :

* design-time information that is mapped to runtime, typically in an MDA approach, ex. eclipse EMF metamodels. However this is more accurately addressed by discovery at design-time, so not a priority here.
* java source : service definitions and implementations
* through annotations (JAXWS for SOAP, JAXRS for REST ; for now, local-only ones like Spring @Service are not a priority)
* or possibly inheritance for some service engines or application servers (ex. RMI's Remote interface, extending Spring's [ServletEndpointSupport](http://static.springsource.org/spring/docs/2.5.x/reference/remoting.html))
* runtime configuration files (configurating service engine or the wider application server) :
* WSDLs (WADLs), alone or referenced by other configuration files
* for FraSCAti or other SCA runtimes, SCA composites are runtime configuration. Note that SCA Import already adresses that, but at architecture (whatever the implementation) or runtime level (a complete packaged FraSCAti application).
* Spring XML, and notably service-related subsets : CXF, [remoting](http://static.springsource.org/spring/docs/2.5.x/reference/remoting.html)
* web.xml indicate UIs and / or HTTP APIs, but that's not sure enough to be interesting for now.

This mechanism could be plugged in several alternative places :

* locally in EasySOA. This is like SCA import. However it would be cumbersome to get access to the source : information to be specified (SVN), source would have to be checked out and something like a local build system to run... that sounds like continuous integration.
* in build configuration (maven), using EasySOA remote APIs
* in continuous integration (sonar, jenkins). Jenkins / Hudson is not in the place