[
https://issues.apache.org/jira/browse/JCR-556?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nicolas Toper updated JCR-556:
------------------------------
Attachment: VisitorPattern200207.patch
Hi,
I still haven't quit working on the backup tool. Thanks to Jukka, I have found
a much easier solution to backup the workspace content: work at the persistence
manager level directly.
But to achieve this idea, I had to write a Visitor pattern to the
PersistenceManager system. I needed a fast iteration on all nodes in order to
backup them with a small memory footprint (restore can take longer so it is
less of an issue). I couldn't reuse the Visitor facilities provided by the
JCR API since I need to work at a much lower level.
This is the patch I now propose to the Jackrabbit community. It is composed of
3 files:
- ItemStateVisitor is an interface. A visitor of an ItemState must implement it
- VisitableItemStateCollection is an interface. Every class implementing this
interface can be visited by an ItemStateVisitor. (Those classes are more
general than
- A patch to DatabasePersistenceManager implementing
VisitableItemStateCollection. With it most repository are backup ready. It will
be used also as a "proof of concept" code for other contributors who might want
to implement the visitor interface to others peristence manager.
If this patch is accepted, I will finish working on the backup/restore method
of the backup tool (those are the last steps) and add a fallback code so all
repository can be backuped albeit in a slower way.
BR,
Nico
> Refactoring of the BackupTool
> -----------------------------
>
> Key: JCR-556
> URL: https://issues.apache.org/jira/browse/JCR-556
> Project: Jackrabbit
> Issue Type: Improvement
> Reporter: Nicolas Toper
> Priority: Minor
> Attachments: BIO.patch, patch-backup-040906.txt,
> patch-jr-010906-NodeVersionHistoriesUpdatableStateManager.txt,
> patch-jr-010906-PropInfo.txt, patch-jr-010906-RepositoryImpl.txt,
> patch-jr-010906-SysViewImporter.txt, patch-jr-010906-VersionManagerImpl.txt,
> PropInfo.patch, VisitorPattern200207.patch
>
>
> The BackupTool has still some refactoring to perform. I will propose the
> patch on this new issue since we cannot change the JCR-442 (Google wants to
> see a place where all the Google SoC work is).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.