Hi Pierre-Arnaud, On Mon, Oct 4, 2010 at 5:38 PM, Pierre-Arnaud Marcelot <[email protected]> wrote: > Hi Dev, > > That's it. > I'm done with the refactoring of the installers. > > The new installers are now integrated in the ApacheDS subproject (which make > the two other subprojects, daemon and installers, obsolete). > > Four new projects have been created. > > First, the 'apacheds-service' project (equivalent to the 'apacheds-noarch' > project in the installers subproject). > It contains the ApacheDsService class which holds all the code to start the > server as well as Installation and Instance layout classes. > This jar is now packaged as a shaded jar which includes and embeds all the > needed dependencies. > > Secondly, the 'apacheds-wrapper' project (equivalent to the > 'daemon-bootstrappers' project in the daemon subproject). > This is an implementation of a Tanuki service wrapper for ApacheDS. > I've removed all other old implementation (JSVC, ProcRun) and cleaned up the > code to only support Tanuki. > > Thirdly, the 'apacheds-installers-maven-plugin' project (equivalent to the > 'daemon-plugin' project in the daemon subproject). > This maven plugin is responsible for creating the installers. > Again, I tried to clean a lot of things there. > Now, everything is included in the maven plugin (before, files were shared > between the plugin and the project which was calling it). > A lot of configuration files are now shared between installer types (before, > most of them were duplicated, one for each type of installer) > > Lastly, the 'apacheds-installers' project (equivalent to the 'apacheds' > project in the installers subproject). > This is the project where we call the apacheds-installers-maven-plugin and > ask him to generate the installers we want. > > The two first new projects (apacheds-service and apacheds-wrapper) are > included in the standard build while the two last > (apacheds-installers-maven-plugin and apacheds-installers) are activated with > an 'installers' profile defined on the root pom. > > I have created a page explaining how to generate and use installers [1]. > Good news, I can now build all installers (for all operating systems) on my > Mac in less than a minute. :) > > Thoughts?
Wow, that rocks! I setup two jobs on Hudson, one on Ubuntu [2] (creates the deb, bin, zip, and tar.gz), one on OSX [3] (creates dmg, zip, and tar.gz). I'll ask the build/infra team if they could install the requried tools on the OSX machine, so we can build all installlers there. One minor improvement (we already discussed that in IRC): it would be nice to be able to specify the location of the utilities via the settings.xml file. > Now that this refactoring is done, I think the 'installers' subproject can > now be removed. > I'd say the same thing for the 'daemon' subproject but AFAIR we were not the > only one using the daemon-plugin. I believe the Felix project was using it a > while ago but I don't know if it's still the case. > If they're still using it I think it safe that we keep it, even if it will > probably not be updated and/or maintained, if not, I'd rather remove it. > > Thoughts? At least we can remove them from trunk-with-dependencies pom.xml and svn:externals Kind Regards, Stefan > [1] - https://cwiki.apache.org/confluence/display/DIRxSRVx11/Installers [2] https://hudson.apache.org/hudson/view/Directory/job/dir-apacheds-installers-jdk15-ubuntu [3] https://hudson.apache.org/hudson/view/Directory/job/dir-apacheds-installers-jdk16-osx
