+1 btw

On Mon, Jun 4, 2012 at 10:41 AM, Thomas Mortagne
<[email protected]> wrote:
> On Mon, Jun 4, 2012 at 10:06 AM, Vincent Massol <[email protected]> wrote:
>>
>> 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 :)
>
> Yes, was actually understanding [homedir] as the user home directory
> (like the HOME env var on unix systems, not sure about its names on
> Windows).
>
>>
>> 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
>
>
>
> --
> Thomas Mortagne



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

Reply via email to