Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • In fcrepo-kernel-api and fcrepo-kernel-modeshape
    • Repurpose isVersioned(), enableVersioning() and disableVersioning() in FedoraResource interface, add getTimeMap() function this is our LDPRv.
    • Create TimeMap interace defining getVersions(), getVersion(final Date/Instant d), createVersion(), createVersion(final Date/Instant d), getOriginal() and Modeshape implementing class (LDPCv)
      • VersionService interface and VersionServiceImpl functions/code (if useful) can be moved to TimeMap class. createVersion() for instance.
    • Repurpose FedoraVersion interface and FedoraVersionImpl, perhaps need getOriginal() and getTimemap() for them (LDPRm)
  • In fcrepo-http-api
    • Repurpose FedoraVersioning paths for use with TimeMap
    • Repurpose FedoraVersions to allow direct access to a specific Memento via its URI. (/fcrepo/rest/foo/fcr:versions/1234-5678)
    • Add new handing of headers and setting of response headers in FedoraLdp (
      Jira
      serverDuraSpace JIRA
      serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
      keyFCREPO-2612
      )
    • Handle DateTime negotiation on LDPRvs in FedoraLdp (
      Jira
      serverDuraSpace JIRA
      serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
      keyFCREPO-2613
      )

...


REST Interaction questions

(POST w/o body) → LDPCv → (copy) LDPRv → LDPRm

  1. POST to LDPCv without body and with or without Memento-Datetime header
  2. Copy LDPRv to new child of LDPCv
  3. Add rdf:type or identifier of Memento type (Identify as a Memento)
  4. Add snapshot datetime as property

Questions:

  1. If we use a rdf:type to mark a Memento then should we display that when the Memento is requested?
  2. Should we just call Mementos anything inside of a TimeMap?
  3. Where do we store the snapshot datetime? Property on the node?


(POST w body) → LDPCv → (compare LDP subtype) LDPRv → LDPRm

  1. POST to LDPCv with a new body and with or without Memento-Datetime header
    1. Can you provide a body and NOT provide a date?
  2. Compare the type of resource because we can't provide a LDP-NR as a Memento of a LDP-RS or vice versa
  3. Set the entity body as the new resource.
  4. Identify as a Memento?
  5. Add snapshot datetime as property.