Getting Started on a Custom Store
First, GetYourArmsAroundIt
Maybe you only want to CreateAnewDatabaseAdapter
Sequence Store:
the motivation behind it. Tiny introduction how to create a complete custom store [IntroFullCustomStore]
Some Things It Took Awhile to Figure Out
RevisionDescriptorStore
This store works with
NodeRevisionDescriptor and
NodeRevisionNumber objects. When creating a new NodeRevisionDescriptor the keys in the properties Hashtable must be equal to the namespace of the NodeProperty plus the name of the NodeProperty.
ex: (namespace = "DAV:") + (name = "getlastmodified") = (key = "DAV:getlastmodified")
RevisionDescriptorsStore
A store for managing NodeRevisionDescriptors. Here is a brief description of the arguments to the
NodeRevisionDescriptors class: . uri
The path to the resource. eg: /slide/files/test/foo.txt
initialRevision
FIXME: I don't know what this is for, but an empty NodeRevisionNumber seems to work.
workingRevisions
FIXME: I don't know what this is for. A Hashtable with the format key = String, value = NodeRevisionNumber works.
latestRevisionNumbers
A Hashtable with the format key = branch name (String), value = NodeRevisionNumber where the value is the largest revision number for this Uri. The default branch name is "main" if you just need something to put there.
branches
A Hashtable with the format key = branch name (String), value = Vector of NodeRevisionNumbers where the Vector contains all of the revision numbers for this Uri that are older than the current revision number.
isVersioned
boolean indicating whether or not this resource is versioned.
All
If you make a read-only store throw exceptions on the create/store methods, you won't be able to get the root node of the store to show up in a directory listing. Throwing the exception prevents the child binding from being set for the "/" SubjectNode.