Vincent, I'll add to this thread even though I mentioned it in the other thread.
I'm all for #3 as long as it can be configured using a script to add the driver and configuration files to the war before deployment (such as for auto-deployments to our development environment). I suspect that it shouldn't be difficult to do this (just need to add the driver). David -- On 9/11/07, Vincent Massol <[EMAIL PROTECTED]> wrote: > I'm resurrecting this thread since we now have an urgent need to > implement it. > > See http://www.nabble.com/One-WAR-with-everything%2C-one-empty-WAR- > and-or-one-WAR-per-database--tf4054670.html#a11517330 for details. > > The problem is that I've just discovered we're using Maven wrongly in > the platform/web modules. We're using classifiers to release DB- > flavors of the XWiki WAR. This is apparently not fully supported by > Maven. The problem is that when you release an artifact on a remote > repository with Maven it updates a metadata file with the version of > that artifact (if it's a SNAPSHOT it's resolved to a timestamped > version). The problem is that metadata file doesn't include > classifier information so there's single "last updated" version. As > we're releasing the HSQLDB and MySQL versions separately this > metadata file is always wrong for one of the artifact, thus making > dependent projects fail often since the SNAPSHOT version they're > trying to retrieve doesn't exist! > > There are 2 solutions: > A) Package a generic WAR and then have 2 separates modules to > repackage it with DB data (thus leading to different artifactId - no > more issue with classifiers) > B) Implement the solution I was recommending below, i.e. generate a > XWiki WAR without DB information (i.e. not-configured > hibernate.cfg.xml file and no DB drivers). Solution 3 below. > > So far, if I recap the discussion thread we had: > > - Sergiu: +1 for solution 3 > - Vincent: +1 for solution 3 > - Artem: +1 for solution 3 > - David: +1 for solution 2 > > I still think it's better if we have platform artifacts that are > independent of databases. For me XWiki configuration is an activity > that should be done in XWiki products and not in the platform. > > Another point is that since we now have a 1.1 branch too, we have to > build and release 4 WARs (for 2 Databases - MySQL and HSQLDB). Very > soon we'll have XEM which will probably require to use Derby for its > standalone installation leading to 6 WARs... Each WAR takes between 5 > minutes to 30 minutes to build and upload (35MB) so that's starting > to weight on our dev process too (not counting the bandwidth cost and > disk space issues). > > Using Solution 3) will also solve the problem of having to define an > arbitrary location for the HSQLDB database files which is an ugly > hack we currently have... > > We also now have nice installers and the next step for these > installers is to allow users to decide what DB to use at installation > time. > > We need to move quickly since this issue is causing false positives > in our builds. > > If you haven't guessed I'm still in favor of solution 3... ;) > > Thanks > -Vincent > > On Jul 10, 2007, at 10:46 AM, Vincent Massol wrote: > > > Hi, > > > > With the 1.1M3 release we have currently only released a hsql > > version of the platform WAR. That war only includes the HSQL JAR > > but not the driver JARS for other DBs. > > In our current build we can generate the platform WAR for other DBs > > using for ex: mvn install -Pmysql. That includes the driver JAR for > > that DB. > > > > Before we were bundling all driver JARs into our WAR so our users > > may be a bit confused and we need to decide on the strategy we want > > to have. I can see 3 possible strategies: > > > > 1) 1 WAR per database > > - We could start by releasing only 2 WARs: one for HSQL and one for > > MySQL. I don't think we need more and releasing more is going to be > > a pain as each WAR weights 40MB. > > > > 2) 1 WAR with everything > > - Cons: having all these DB drivers makes our WAR fatter > > - Possible solution: we only release the HSQL and MySQL drivers > > > > 3) 1 empty WAR > > > > I feel 3) might actually be the best solution for the following > > reasons: > > - if the user is non technical he'll install the standalone version > > - if the user is technical it means he shouldn't have any problem > > following install instructions that tell him to download such > > driver at such location and put it in WEB-INF/lib > > - we only release one common WAR and our XWiki Platform is > > environment independent (which is a new property to have I think) > > - releasing one WAR makes our release process simpler (only 40MB to > > release once) > > > > WDYT? > > > > Thanks > > -Vincent > > > > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

