jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Guggisberg" <stefan.guggisb...@gmail.com>
Subject Re: Google Summer of Code project for Jackrabbit
Date Sat, 27 May 2006 08:46:19 GMT
On 5/26/06, Nicolas Toper <ntoper@gmail.com> wrote:
> Hi Tobias,
>
> Thanks for your feedback.
>
> About the issue on jcr.Lock, if we do as you all suggested, I think I can
> simply ignore them since I will be sure no transaction would be committed to
> the PM while backuping. I will reconciliate later the PM with the changelogs
> committed in between. Would this work fine?
>
> - what about inter-workspace operations?
> What do you mean please?
>
>
> - how do you backup the versions?
> My initial idea is to fetch them all for each node and copy them in the
> backup workspace (as in the ExamplesPages in the wiki). I was thinking of
> adding a protected method to the Node object: setVersionHistory. It would be
> accessible by JR "system" layer application. Is this idea good?
>
> It seems the more maintenable since I would be only in the application layer
> of the versioning framework.
>
> Do you think I should work directly at the persistence layer storage? I
> assumed the code would run faster but we would put more maintenance effort
> in it.
>
> - how do you backup the namespaces?
> I will simply store in the backup workspace all namespaces (since I will put
> only one workspace at a time in the backup one, I will simply use
> Workspace.getNamespaceRegistry().getPrefixes() and
> Workspace.getNamespaceRegistry().getUris).
>
> With the following pseudocode
>
> String[] prefix = myWorkspace.getNamespaceRegistry().getPrefixes()
> String[] uri = myWorkspace.getNamespaceRegistry().getUris()
>
> Is  prefix[0] the prefix for uri[0]?

no, yu can't make any assumptions about the order. you'll have to
get all prefixes and and for each prefix get the associated namespace uri
(or vice cersa).

>
>
>
> - how do you backup the nodetypes?
> One idea would be to use the dump method of the NodeTypeManager but it seems
> kind of inelegant. Instead I think I would use getAllNodeTypes and iterate
> on it to add them to the backup workspace.

you shouldn't use the dump method. it's for internal debugging
pruposes only and
he output format may change at any time. keep in mind that the node types have
global scope i.e. not per workspace. you could e.g. use or borrow code from
jackrabbit's internal xml node type serialization format
(NodeTypeWriter & NodeTypeReader).

cheers
stefan

>
> Nicolas
>
> On 5/26/06, Tobias Bocanegra <tobias.bocanegra@day.com> wrote:
> >
> > > There are two kinds of lock: the jcr.Lock and the
> > > EDU.oswego.cs.dl.util.concurrent.*. The two are somewhat
> > > not related. Am I correct?
> > not at all. the locks i mentioned where jcr locks.
> >
> > > There are no issues with jcr.Lock (we can still read a node).
> > there is one. the locks you need are 'deep locks'. i.e. the locks the
> > node and the entire subtree. but you can only accquire a lock, if no
> > one else locked a node. so you would not be able to bakckup until all
> > locks are released. which may not be suiteable.
> >
> > other questions:
> > - what about inter-workspace operations?
> > - how do you backup the versions?
> > - how do you backup the namespaces?
> > - how do you backup the nodetypes?
> >
> > regards, toby
> > --
> > -----------------------------------------< tobias.bocanegra@day.com >---
> > Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel
> > T +41 61 226 98 98, F +41 61 226 98 97
> > -----------------------------------------------< http://www.day.com >---
> >
>
>
>
> --
> a+
> nico
> My blog! http://www.deviant-abstraction.net !!
>
>

Mime
View raw message