On Mon, Oct 4, 2010 at 6:38 PM, Pierre-Arnaud Marcelot <pa@marcelot.net> 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. :)


Nice job on the cleanup. This simplifies so much thanks Pierre!

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.

I think Karaf might have done away with that. However it does not hurt to just move it to the sandbox or delete it from svn. I'm sure if they are using it they would stick to a revision. If they need it we can figure something out.
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.


Go ahead and remove it - not going to be lost for ever with svn.

Thanks again mate.

Alex Karasulu
My Blog :: http://www.jroller.com/akarasulu/
Apache Directory Server :: http://directory.apache.org
Apache MINA :: http://mina.apache.org
To set up a meeting with me: http://tungle.me/AlexKarasulu