You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by James_1 <po...@yahoo.com> on 2006/07/30 08:50:16 UTC

Newbie questions

Okay, here are more newbie questions:

1) Why does Versioning require both a FileSystem and PersistenceManager
configured?  I think I understand what the PersistenceManager is for, but
what about the FileSystem?  What kind of imformation is stored there?  Is it
purely version data?  Is it orthogonal to the node data?  Can someone post
an example of the kind of data that's stored in the FileSystem?

2) How does NodeType Administration work?  Are node types stored only in the
file system?  Adding/modifying nodetypes thus requires file i/o?

Thanks!

-- 
View this message in context: http://www.nabble.com/Newbie-questions-tf2022590.html#a5561139
Sent from the Jackrabbit - Users forum at Nabble.com.


Re: Newbie questions

Posted by Tobias Bocanegra <to...@day.com>.
every persistence manager gets a 'FileSystem' passed in it's context.
this file system is an implementation of the FileSystem interface.
this can be a direct mapping to the java.io stuff, or a database
driven one, or something else.

what the persistence manager does with this filesystem, depends on his
implementation. for example the xml-persistencemgr uses it for storing
the nodestate info in xml-serialized form in the filesystem. where as
the db-based persistence manager, uses it for storing large binary
data (depeding on it's config).

so, depending on the persistence manager and it's config, the
filesystem is used differently. if you want to store 'all' data, item
states, config files, binary data, etc...you can use the db-filesytem
and a db-persistencemanager.

for every workspace, there is a persistence manager configured. for
example, you can define for your workspace 'A' a total filesystem
based persistence manager, and for your workspace 'B' a db-based
persistence manager.

the 'versioning' subsystem uses a 'virtual' workspace for storing the
versions and can therefore be configured like one (well, almost). but
it needs a persistence manager. the versions are like normal states,
they just live in another (virtual) workspace. and when you checkin a
node, it's state is copied in the versions workspace and persisted
with the version persistence manager.

regards, toby

On 7/30/06, James_1 <po...@yahoo.com> wrote:
>
>
> Jukka Zitting-3 wrote:
> >
> > The versioning store in Jackrabbit is kind of a system workspace whose
> > contents are shared by all normal workspaces and which can only be
> > seen indirectly as the virtual /jcr:system/jcr:versionStorage subtree
> > of each workspace. Just like normal workspaces allow a FileSystem to
> > be configured for determining where their data is persisted, so does
> > the versioning store.
> >
> > The configured FileSystem instance is passed to the configured
> > PersistenceManager with the idea that it should be used to actually
> > store the persistence files. In effect a PersistenceManager decides
> > how and a FileSystem where the content is persisted. Of course some
> > PersistenceManagers (like the database ones) skip the configured
> > FileSystem and use some other mechanism for storing and retrieving the
> > information.
> >
>
> Thanks for the response.  I guess I'm still not understanding where
> versioning data is actually persisted.  The PersistenceManager persists the
> versioned NodeStates, but where is the version info persisted?  I don't see
> any kind of version data structure in the NodeState that would get persisted
> (e.g. NodeState.getVersion()).  Or is that info embedded in the id of the
> node, using some kind of naming scheme?
> --
> View this message in context: http://www.nabble.com/Newbie-questions-tf2022590.html#a5565327
> Sent from the Jackrabbit - Users forum at Nabble.com.
>
>


-- 
-----------------------------------------< 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 >---

Re: Newbie questions

Posted by Nicolas <nt...@gmail.com>.
Hi,

The versioning is persisted in a specific "kind of" repository. You can find
it on your FS in the directory version/

Is it clearer?

Nico
my blog! http://www.deviant-abstraction.net !!

Re: Newbie questions

Posted by James_1 <po...@yahoo.com>.

Jukka Zitting-3 wrote:
> 
> The versioning store in Jackrabbit is kind of a system workspace whose
> contents are shared by all normal workspaces and which can only be
> seen indirectly as the virtual /jcr:system/jcr:versionStorage subtree
> of each workspace. Just like normal workspaces allow a FileSystem to
> be configured for determining where their data is persisted, so does
> the versioning store.
> 
> The configured FileSystem instance is passed to the configured
> PersistenceManager with the idea that it should be used to actually
> store the persistence files. In effect a PersistenceManager decides
> how and a FileSystem where the content is persisted. Of course some
> PersistenceManagers (like the database ones) skip the configured
> FileSystem and use some other mechanism for storing and retrieving the
> information.
> 

Thanks for the response.  I guess I'm still not understanding where
versioning data is actually persisted.  The PersistenceManager persists the
versioned NodeStates, but where is the version info persisted?  I don't see
any kind of version data structure in the NodeState that would get persisted
(e.g. NodeState.getVersion()).  Or is that info embedded in the id of the
node, using some kind of naming scheme?
-- 
View this message in context: http://www.nabble.com/Newbie-questions-tf2022590.html#a5565327
Sent from the Jackrabbit - Users forum at Nabble.com.


Re: Newbie questions

Posted by Jukka Zitting <ju...@gmail.com>.
Hi,

On 7/30/06, James_1 <po...@yahoo.com> wrote:
> 1) Why does Versioning require both a FileSystem and PersistenceManager
> configured?  I think I understand what the PersistenceManager is for, but
> what about the FileSystem?  What kind of imformation is stored there?  Is it
> purely version data?  Is it orthogonal to the node data?  Can someone post
> an example of the kind of data that's stored in the FileSystem?

The versioning store in Jackrabbit is kind of a system workspace whose
contents are shared by all normal workspaces and which can only be
seen indirectly as the virtual /jcr:system/jcr:versionStorage subtree
of each workspace. Just like normal workspaces allow a FileSystem to
be configured for determining where their data is persisted, so does
the versioning store.

The configured FileSystem instance is passed to the configured
PersistenceManager with the idea that it should be used to actually
store the persistence files. In effect a PersistenceManager decides
how and a FileSystem where the content is persisted. Of course some
PersistenceManagers (like the database ones) skip the configured
FileSystem and use some other mechanism for storing and retrieving the
information.

> 2) How does NodeType Administration work?  Are node types stored only in the
> file system?  Adding/modifying nodetypes thus requires file i/o?

Yes. There's a custom_nodetypes.xml file that contains a persistent
copy of the configured node type definitions. The types are of course
also referenced by content within the persistence stores, so you
should generally only modify node types through the exposed
administration methods (see o.a.j.api.JackrabbitNodeTypeManager).

BR,

Jukka Zitting

-- 
Yukatan - http://yukatan.fi/ - info@yukatan.fi
Software craftsmanship, JCR consulting, and Java development