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

