wiki:WikiStart

Version 42 (modified by lauer, 15 years ago) (diff)

--


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-independend description format and then generate stubs and skeletons and so on.

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 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!
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

Getting started -- Using XML-RPC compliant types in your API

Using own concrete types in your API

Using interface or abstract types in your API

Using third party types in your API -- When you cannot annotate or modify classes you want to use remotely ...

For lazy programmers: using XmlRpcBeans -- Own types without conversion coding ...

Using the Parameter Converter Registry -- Enabling converters even without @ConverterMappings annotation ...

Author

This library was developed by Andreas Lauer. It is used in several projects of the DFKI's Knowledge Management Lab including Mymory and Nepomuk.

License

The library is published under LGPL.

Download

Latest Version: 2.2.1 http://delight.opendfki.de/repos/trunk/XmlRpcDelight/dist/XmlRpcDelight-2.2.1_04.03.2009.zip

Changes

  • minor fixes (method typos), no new features
  • added URL c'tor to XmlRpcConnection
  • added FileConverter

Version 2.2:

Changes

  • added new feature: unknown, xml-rpc unaware types without annotations are treated as XmlRpcBeans enable with: XmlRpc.treatUnkownTypesAsBeans( true )
  • added support for types Float and float
  • support for sets added
  • new automatic null-value masking feature: XmlRpc.useAutomaticNullMasking( true ) enables the feature

values for all standard XML-RPC types (except BASE64), arrays and Convertable parameters can now be null-values. XmlRpcBeans can have null-valued properties. ParameterConverters can handle null-values separately, but also can rely on the new masking feature.

  • Note: this version is java 1.5 compliant

Version 2.0:

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

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 ppt or pdf format.

Feature Requests

  • add maven support - added in upcoming 2.5 release
  • for client proxies: also support abstract classes (and not only interfaces) - added in upcoming 2.5 release
  • set a custom converter for unknown types - added in upcoming 2.5 release
  • add a generic serialization converter
  • support automatic conversion of enums

Attachments (1)

Download all attachments as: .zip