{{{ #!html

XML-RPC Delight

Using XML-RPC the easy way ...

The logo has been designed by Dominik Heim

}}} ---- '''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/]), version 1.1 (Download [https://delight.opendfki.de/repos/trunk/XmlRpcDelight/import/xmlrpc-1.1_all.jar here]). ---- == 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 Getting started -- 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 == Latest Version (2.0): [http://delight.opendfki.de/repos/trunk/XmlRpcDelight/dist/XmlRpcDelight-2.0_22.05.2007.zip] '''Changes''' - Contains annotation not needed anymore - Array support added (also supported: primitive type arrays) - Nested parameters and return types for collections, maps and arrays possible - 'null'-parameters can be used together with !ParameterConverters - Better logging support Older Versions: v 1.0: [https://delight.opendfki.de/repos/trunk/XmlRpcDelight/dist/XmlRpcDelight-1.0_17.11.2006.zip] == Repository == A subversion repository is setup at [https://delight.opendfki.de/repos/]. Use the repository to checkout the latest version of XML-RPC Delight. == Documentation == http://delight.opendfki.de/repos/trunk/XmlRpcDelight/apidoc/index.html Also see some slides on XML-RPC Delight (for version 1.0) available in [http://delight.opendfki.de/repos/tags/v1.0/XmlRpcDelight/doc/presentations/XmlRpcDelight_10.10.06.ppt ppt] or [http://delight.opendfki.de/repos/tags/v1.0/XmlRpcDelight/doc/presentations/XmlRpcDelight_10.10.06.pdf pdf] format.