On Fri, Jun 1, 2012 at 3:30 PM, Vincent Massol <vincent(a)massol.net> wrote:
Hi devs,
This proposal is a restart of the thread I've sent, entitled "[Proposal]
XWiki's Permanent Directory Strategy for Installations" in which I wasn't
clear.
Executive Summary
================
Define 2 XWiki directories; one for holding configuration data and one for
holding (permanent) data and allow various configurations for our
distributions.
* Config dir is where xwiki configuration files is located. Examples:
xwiki.cfg, xwiki.properties, hibernate.cfg.xml
* Data dir is where xwiki writes permanent data. Examples: database/,
extension/ lucene/, jetty log files
Should'nt we also consider a separate cache directory for stuffs like
lucene which does not really require backup, and a log directory for logs
file. This would better fit the FHS which concider /etc, /var/lib,
/var/cache and /var/log. We could of course have defaults to the data
directory for these unless specifically defined.
Rationale
========
This proposal below tries to answer the following general use cases:
* Ability to easily backup an XWiki install
* Ability to easily upgrade an XWiki install
* Ability to install XWiki on various OSes, including OSes like Windows 7
which require a total separation of readonly binaries and generated data
* Ability to have several instances of XWiki on the same machine
Note that I'm sending this email since I'm currently working on making our
installer work on Windows 7 and I need an agreement on this before I can
continue since I'm currently blocked.
You just not describe what you will do in the installer for Windows 7 ?
Use Cases
=========
The proposal below should allow the following use cases easily:
UC1: use the standalone zip distribution
UC2: upgrade a standalone zip distribution install
UC3: Use the WAR production distribution
UC4: Upgrade an existing WAR distribution
Short Term Proposal
=================
* Add 2 system property variables: xwiki.config.dir and xwiki.data.dir
* Use the following algorithm for resolving the Config dir (in Environment
Module):
** Check if system property xwiki.config.dir is set, if so, use it
** Otherwise default to the WEB-INF directory (same as now)
* Use the following algorithm for resolving the Data dir (in Environment
Module):
** Check if system property xwiki.data.dir is set, if so, use it
** Otherwise use value of environment.permanentDirectory in
xwiki.properties (same as now)
** If no environment.permanentDirectory exists, then use the temporary
directory (same as now)
* Don't provide a default value for environment.permanentDirectory in
xwiki.properties
* Note that we probably need to modify a bit Environment module to add
support for a Configuration directory (not sure yet about this need).
Use Cases Walkthrough
===================
UC1:
* user unzips, that's all
* in start/stop xwiki scripts we use xwiki.config.dir = [homedir]/config
and xwiki.data.dir=[homedir]/data
* environment.permanentDirectory is not defined in xwiki.properties
UC2:
* user unzips new version in another directory and copy the old data and
config directories over
* Note that this use case is not really a valid one since the standalone
zip is not meant to be a production zip at the moment
UC3:
* user deploys war in container's webapps dir and edits
WEB-INF/xwiki.properties to set environment.permanentDirectory (same as
now)
* however the recommendation is for the user to put it's XWiki config dir
and data dir somewhere on his system and use the xwiki.config.dir and
xwiki.data.dir system properties in his startup/stop scripts, thus making
it easy for UC4
UC4:
* users replaces the older WAR with the new WAR and if he has applied the
recommendation from UC3 that's all he has to do. Otherwise he needs to edit
the xwiki.properties file to set environment.permanentDirectory
WDYT?
This sounds good. I would suggest that the debian package be updated to
better respect the FHS, using /etc and /var appropriately.
So +1 for this with a strong filling we should extend it more to allow full
compliance with FHS.
Thanks
-Vincent
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
--
Denis Gervalle
SOFTEC sa - CEO
eGuilde sarl - CTO