On Jun 2, 2012, at 4:06 PM, Thomas Mortagne wrote:

> On Fri, Jun 1, 2012 at 3:30 PM, Vincent Massol <[email protected]> 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
>> 
>> 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.
>> 
>> 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
> 
> There is something missing here. XWiki is not going to find anything
> in [homedir]/config obviously when starting so how does he knows about
> proper hsqldb configuration for example ? Is the configuration copied
> from the war the first time it starts ?

The zip contains everything. Its structure would be:

[homedir]/
  |_ data/
  |_ config/
  |_ jetty/
  |_ webapps/
  |_ start_xwiki.sh
  |_ …

In the start/stop shell scripts, we will have: -Dxwiki.data.dir=data and 
-Dxwiki.config.dir=config

Hope it's more clear :)

Thanks
-Vincent

>> * 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?
>> 
>> Thanks
>> -Vincent

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to