Plugin Configuration XML Schema

Status: Implemented: OSyncPluginConfig

Abstract

The purpose of the Plugin Configuration XML Schema:

  • make the update case for existing plugin configuraiton possible and easy
    • no need to write for each plugin a seperated version update script
    • a common XSLT stylesheet could/should be enough to update all plugin configurations
  • make life easier of UI developers
    • no need to write configuration parser for each plugin from scratch
    • no need to read the plugin source code to understand the undocumented plugin configuration!
  • restrict the plugin developers to a "manageable" number of configuration options ;)
    • way to much people complainted so far about way to complex configuration
      • (should we care about such people which don't have a patch in her/his backpack?!)

Common configurable options

(unsorted):

1. Advanced Options (implemented: OSyncPluginAdvancedOptions)

  • self declaring options
  • designed to fit the purpose of UIs

2. Resources (implemented: OSyncPluginResource)

  • Enabeld (active Resource?)
  • Name
  • Mimetype
    • Objtype ( redundant information? required to avoid some crazy circual dependcies)
    • Objformat
  • Path
  • Url
    • RFC: Isn't Url simlar/same to Path? Should we stick with Url? (dgollub)

3. Authentication (implemented: OSyncPluginAuthentication)

  • Username
  • Password
  • Reference to KWallet/GNOME-Key-Ring (?)

4. Localization (implemented: OSyncPluginLocalization)

  • Encoding
  • Timezone
  • Language

5. Description
* Vendor
* Product
* Model
* Revision
* Version
While a discover the version information will already be stored. If a device needs the version information already for discovering, then this version file must be created. To ask that, it is necessary to implement in osync_plugin a value called 'version_needs_to_be_set_befor_discover', which will be set in get_sync_info().

6. Connection (implemneted: OSyncPluginConnection)

  • Bluetooth
    • MAC
    • rfcomm
    • SDP UUID
  • USB
    • Vendor/Product ID
    • Interface
  • IRDA
    • IRDA string
  • Network
    • IP/Hostname
    • Port
    • Protocol
    • Service Name (SLP/Zeroconf)
  • Serial
    • Speed
    • Device Node

The BIG Picture

Plugin Configuration Schema Draft

Draft Schema for discussion: PluginConfigXsdDraft

Attachments