= XML-RPC Delight =
{{{
#!html
}}}
'''Using XML-RPC the easy way ...'''
----
'''XML-RPC Delight is meant for''': All users that want to have their java components connected using a web-based protocol but don't want to waste time with defining the interfaces a second time in another language-independed description format and then generate stubs and skeletons and so on.[[BR]]
'''XML-RPC Delight is an addon''' to the XML-RPC specification ([http://www.xmlrpc.com/spec]) and builds on apache's implementation ([http://ws.apache.org/xmlrpc/]).
----
== Design Objectives ==
- have java components interact over internet wire with a minimum of programming and
configuration effort
- preserve XML-RPC compliance
- make '''EVERY''' type XML-RPC transportable with '''minimal coding effort''' (ideally, not a single line of extra code!)
- do not interfere with design of remote interfaces. Within the remote calls, one should be able to use any
type or interface he wants.
- neither the client nor the server has to be forced to load configuration files
or register factories programmatically in order to use non XML-RPC compliant types in remote calls.
== Overview ==
XML-RPC Delight creates remote clients to java APIs that are supposed to be used remotely. XML-RPC Delight does this at runtime, not at compile time! [[BR]]
In case the API uses types which are not XML-RPC compliant, '''java annotations''' and user-defined conversion methods allow for '''automatic transformation of types''' to and from a XML-RPC compliant representation. Optimally, one can use non-compliant java classes in XML-RPC calls without having to code a single line of code!!
While all the automatic conversion is done, communication with the server is still XML-RPC compliant so that remote methods can still be called by non-java languages.
----
== How does it Work? ==
== Examples ==
[wiki:ExampleUsingXmlRpcCompliantTypes Using XML-RPC compliant types in your API]
[wiki:ExampleUsingOwnConceteTypes Using own concrete types in your API]
[wiki:ExampleUsingOwnInterfaceTypes Using interface or abstract types in your API]
[wiki:ExampleUsingThirdPartyTypes Using third party types in your API] -- When you cannot annotate or modify classes you want to use remotely ...
[wiki:ExampleUsingXmlRpcBeans For lazy programmers: using XmlRpcBeans] -- Own types '''without''' conversion coding ...
== Author ==
This library was developed by [http://www.dfki.de/web/contact/vcard.php?uid=anla00&lang=0 Andreas Lauer].
It is used in several projects of the [http://www.dfki.de/km DFKI's Knowledge Management] Lab including [http://www.dfki.de/mymory Mymory] and
[http://nepomuk.semanticdesktop.org/ Nepomuk].
== License ==
The librabry is published under [http://www.gnu.org/licenses/lgpl.html LGPL].
== Download ==
todo ...
== Apidoc ==
http://delight.opendfki.de/repos/trunk/XmlRpcDelight/apidoc/index.html