wiki:trunk/features/pluginConfigXsd

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)
  1. Authentication (implemented: OSyncPluginAuthentication)
    • Username
    • Password
    • Reference to KWallet/GNOME-Key-Ring (?)
  1. 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().

  1. Connection (implemneted: OSyncPluginConnection)
    • Bluetooth
      • MAC
      • rfcomm
      • SDP UUID
    • USB
    • 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