You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Pierre-Arnaud Marcelot <pa...@marcelot.net> on 2010/10/04 17:38:44 UTC

[ApacheDS] Installers refactored for 2.0 + Future for installers and daemon subprojects

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?


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?


Thanks,
Pierre-Arnaud


[1] - https://cwiki.apache.org/confluence/display/DIRxSRVx11/Installers

Re: [ApacheDS] Installers refactored for 2.0 + Future for installers and daemon subprojects

Posted by Alex Karasulu <ak...@apache.org>.
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. :)
>
> Thoughts?
>
>
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.
>
> Thoughts?
>
>
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

Re: [ApacheDS] Installers refactored for 2.0 + Future for installers and daemon subprojects

Posted by Stefan Seelmann <se...@apache.org>.
Hi Pierre-Arnaud,

On Mon, Oct 4, 2010 at 5: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. :)
>
> 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