Notes on implementing a Universal Content Provider

* ucb/source/ucp/file: started reading, grief these guys are
slap-stick about implementing the whole interface. FileProvider:
XPropertySet, XFileIdentifierConverter, XContentIdentifierFactory,
XContentProvider. 

* ucb/source/ucp/webdav: This provider is based on the
ucb::ContentProviderImplHelper which seems to help, this code is in:

* ucbhelper/inc/ucbhelper.hxx, etc. seems much simpler, should base
our code on the webdav provider I think, only ~2678 lines - and has to
do the auth stuff too.

* see http://ucb.openoffice.org/ - lots of useful docs

* package - provides zip file UCP.


** Properties

	+ It seems properties are used on objects instead of having
	structured data,
	+ Thus a File may have a 'ContentType', 'hidden' etc. properties
	+ Properties seem not to extend to manipulating children

** Content  <-> maps to a URI
	+ encapsulates a resource
	+ properties / events / 'commands'
	+ may have children
		+ File / Folder Contents
	+ commands are opaque strings
		+ open, delete, transfer, insert,
		  getCommandInfo[!] etc.

** Content Service
	+ XContent
	+ XCommandProcessor
	+ XPropertyContainer
	+ XPropertiesChangeNotifier
	+ XChild (optional)
	+ XContentCreator (optional)

** Content commands

	+ 'open' -> open for reading
	+ 'insert' -> create / overwrite stream
	+ 'globalTransfer' - possibly hooked by a higher level ?

** ContentProvider
	+ factory for a set of Contents

** UCB == a set of UCPs.

** Authentication

	+ DAVResourceAccess.cxx: 
		new ucbhelper::SimpleAuthenticationRequest ();
		getInteractionHandler ...

** Component config
	+ need to be mapped in 
		officecfg/data/org/openoffice/ucb/Configuration.xcd
	+ also need to 'register' in setup process get into applicat.rdb
	  cf. libucpfile1.so 's registration

* Chaos not good as a base to work from, use webdav/ucphelper.

* webdav:
	+ file by file clone ...

* TODO
	+ do we want to store our own mirror tree of
	  'Content's ?
	+ implement 'transfer' ?
	+ exchangeIdentity ?
	+ what is the 'transient' concept ?
		is this for non-instantiated temporary local stuff ?
		we can bin that.

* Registering:
    ran:
	regcomp -register -r /opt/OOInstall/program/applicat.rdb \
		-c /opt/OOInstall/program/libucpgvfs1.so 
    hacked:
	/opt/OOInstall/share/config/registry/instance/org/openoffice/ucb/Configuration.xml
	to use the GnomeVFSContentProvider

* Commands

** open
	+ seems to return a sequence of children if applied to a directory

** Registry screwups ... [ talked to Stephan B. on the phone ]

	* Configuation.xml - screwed up - 
	* applicat.rdb - stuffed [!], copy from solver & register everything ...

** People constantly calling 'isFolder'
	+ can't work without an InteractionEnvironment [!]
