The lifecycle of any Jackrabbit Content Repository starts with a call to one of
the RepositoryFactory.create()
methods passing optionally the source
of a repository configuration file (which by convention is called config.xml
)
and the RepositoryFactoryHome, which points to a directory from which the
Repository will continue reading further information for start-up and in
many cases will store the actual data that is persisted in the repository and
its workspaces.
Not supplying the RepositoryFactoryHome
will default to the
users home dir from the System property user.dir
.
Not supplying the configuration file parameter will default to the value of
Repository.factory.config
System Property and if that is not set
it will default to the config.xml
in the
RepositoryFactoryHome
.
Calling the create()
method will instantiate the
RepositoryFactory
singleton that will then, through the
getRepository(String name)
method, serve as the factory for
Repository instances.
As per the config.xml
a repository are started up with the
respectively configured RepositoryStore
, the RepositoryStore
defines where the repository stores information that is visible for the entire
Repository which includes things like the uuid of the root node, repository
properties, the namespace registry, node type definitions or the version
backing store in a file structure as follows.
./meta: rep.properties rootUUID ./namespaces: ns_reg.properties ./nodetypes: custom_nodetypes.xml ./versions:
The RepositoryStore normally points to a regular (i.e. local) file system but is abstracted through an abstract FileSystem that can be configured to point to a different FileSystem implementation, in case the above information should be stored in a different data container.
... to be continued ...