== Using Third Party Types in your API == Sometimes it is dicouraged to have any XML-RPC or Delight reference in an interface class. In order to still use this interface with Delight a {{{ParameterConverterRegistry}}} has been introduced. See also [wiki:ExampleUsingThirdPartyTypes]. {{{ *** SOMETIMES DISCOURAGED *** @ConverterMappings( @Mapping(type=URL.class,converter=URLConverter.class) ) public interface Api { URL getHomepageLocation(); void addSite( URL url ); } }}} Alternative with '''ParameterConverterRegistry:''' {{{ public interface Api { URL getHomepageLocation(); void addSite( URL url ); } }}} Now, without having to annotate the interface invoking the methods looks like this: {{{ ParameterConverterRegistry.setParameterConverterForClass( URL.class, URLConverter.class ); Api remote_api = XmlRpc.createClient( Api.class, "handlerId", host, port ); URL homepageUrl = remote_api.getHomepageLocation(); InputStream is = homepageUrl.openStream(); ... remote_api.addSite( new URL( "http://middle.of.nowhere" ) ); ... }}} '''NOTE:''' Client '''AND''' Server have to register the converter prior to a remote call.