Uploaded image for project: 'XWiki Platform'
  1. XWiki Platform
  2. XWIKI-3028

XMLRPC Subsystem refactoring/improvement

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.7
    • Fix Version/s: 1.8 M1
    • Component/s: {Unused} Web Services
    • Labels:
      None
    • Tests:
      Integration
    • Similar issues:

      Description

      The current implementation of the XMLRPC could be refactored at the code level in order to improve code readability and modularity.
      In particular the component initialization/cleanup system is based on a hack that makes use of subclassing of some Apache XML RPC classes in order to perform the component setup and cleanup before and after method invocations, respectively .

      This could be done in a better way by using Java reflection and a Proxy mechanism.

      The XML RPC API will be specified by using an interface ,and a java.lang.reflect.InvocationHandler will be used to build a Proxy object that mediates every call to the actual implementation and performs component initialization and cleanup. The InvocationHandler will also inject XWiki relevant objects into the implementation, so that they are directly available and the don't have to be retrieved using cumbersome mechanisms (as it was done before)

      Having an interface that specifies the XML RPC API is also handy because this interface can be used by XML RPC frameworks (such as the Apache one) in order to generate, on the client side, dynamic proxies that can be used to call the XML RPC methods.

        Attachments

          Activity

            People

            • Assignee:
              fmancinelli Fabio Mancinelli
              Reporter:
              fmancinelli Fabio Mancinelli
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: