To ease reproducibility, OpHistoryServices should be able to persist their histories, and from that persisted data be able to restore that history into a readable form.
Ideally, this would be accomplished using some OpHistoryService API along the lines of:
public void recordHistory(URI outputLocation);
public void restoreHistory(URI inputLocation);
(One) implementation of these methods might benefit from scijava-persist
The restoration of a history would ideally be possible independent of original OpHistoryService implementation (i.e. a FooOpHistoryService should be able to restore a BarOpHistoryService), but this might be too strict an approach. Potential problems may include:
- Situations where aa
BarOpHistoryService doesn't have all of the Ops listed in the history created by the FooOpHistoryService that recorded the history
- Limitations on extensibility (all
OpHistoryServices would have to serialize/deserialize in the same way, or at least know how to deserialize numerous types of serialized histories)
One interesting thought: upon a call to restoreHistory, should the OpHistoryService:
- Erase/Record any previously logged history?
- Meld its previously recorded history with the history recorded at
inputLocation?
To ease reproducibility,
OpHistoryServices should be able to persist their histories, and from that persisted data be able to restore that history into a readable form.Ideally, this would be accomplished using some
OpHistoryServiceAPI along the lines of:(One) implementation of these methods might benefit from
scijava-persistThe restoration of a history would ideally be possible independent of original
OpHistoryServiceimplementation (i.e. aFooOpHistoryServiceshould be able to restore aBarOpHistoryService), but this might be too strict an approach. Potential problems may include:BarOpHistoryServicedoesn't have all of the Ops listed in the history created by theFooOpHistoryServicethat recorded the historyOpHistoryServices would have to serialize/deserialize in the same way, or at least know how to deserialize numerous types of serialized histories)One interesting thought: upon a call to
restoreHistory, should theOpHistoryService:inputLocation?