Hi Petar

Please file a jira for this.

Best if you provide separate jira for each changes

-D


On Mon, Oct 28, 2013 at 10:44 AM, Petar Tahchiev <[email protected]>wrote:

> Hi guys,
>
> my name is Petar Tahchiev and I am a former Maven developer. Recently I've
> been playing with the APPASSEMBLY plugin,
> and I think I've done some improvements to it (see attached patch).
> All I wanted was to creat a daemon for my project, zip it and deploy it to
> a remote server. I figured out I need to create
> a daemon with the following folder structure:
>
> +ROOT
>  - bin/
>  - conf/
>  - lib/
>  - logs/
>  - webapps/ROOT/
>
> So my first step was to use the maven-war plugin to create the exploded
> folder ROOT in the webapps directory. This worked well.
> After that the maven appassembly plugin should create the rest of my
> folder structure. And it really did, but with
> these minor defects:
> 1) I have a config folder in src/main/config/tomcat/ which contains the
> server.xml and web.xml and a bunch of other
> catalina conf files. When I used the
>
> <copyConfigurationDirectory>true</copyConfigurationDirectory>
>
> it didn't copy my configuration files. So digging in the code I saw that
> this attribute was set on the AssemblyMojo (AM),
> which extends AbstractScriptGeneratorMojo (ASGM), and for daemons I was
> using the GenerateDaemonsMojo (GM) which extended
> the same ASGM, so the structure is pretty much:
>
>      (AAM)
>        ^
>        |
>      (ASGM)
>        ^
>        |
>       / \
>   (GDM) (AM)
>
> So what I did was to move the copyConfiguration property from (AM) to
> (ASGM) so that both (GDM) and (AM) could use it. I had to also
> copy the <configurationSourceDirectory> and <configurationDirectory>
> attributes, the copyConfigurationDirectory and installDependencies
> methods. After this it worked great - my config files were copied.
> 2) I didn't want to generate a repository in my lib folder, because I was
> generating exploded war file in webapps/ROOT and inside it's
> WEB-INF/lib folder were all the jar files that I needed so I didn't want
> to have any duplication. Unfortunately the same situation as before -
> the generateRepository was specified on (AM) and I needed it both on (AM)
> and (GDM), so I simply moved it to (ASGM). Now that this problem
> was solved, my lib/ repository folder contained only the tanukisoftware
> libraries. Perfect!!!
> 3) Another problem I faced was, that some of my libraries were with scope
> provided (like mysql connectors, and servlet-api and tomcat-embedded
> jars, etc.). But they weren't copied to the repository lib/ folder. So I
> made a small change, after installing the dependencies in the
> lib repository I added another method to copy all the dependencies with
> scope "provided" in the lib repository. And if you really think about
> it it's where they belong - if they should be provided and we are creating
> a server daemon, they must be provided in the lib folder.
> 4) My last change was to add two new attributes <tempDirectory> and
> <logsDirectory>. If those are provided, the maven plugin will create the
> provided folders just before the end. I had a problem that when starting
> the tomcat daemon it was trying to write it's PID file inside the logs
> directory, which weren't there so I had to every time call antrun plugin
> to create that folder, which seemed a huge overkill. Anyways if the
> folders are not provided, no folders are created.
>
> With all those changes I am happily creating my zips, with either jetty or
> tomcat (depending on the profile you run maven in), and I really
> believe that these changes will help someone else too.
>
> Please let me know what you think and if the source looks good enough,
> apply it in the trunk.
>
> Thanks
>
> P.S. I have also modified one of the tests to test if a null-or-empty
> <commandLineArgument> was passed. Before I was getting a Null-pointer
> exception so I added a null check in there.
>
> --
> Regards, Petar!
> Karlovo, Bulgaria.
> ---
> Public PGP Key at:
> https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611
> Key Fingerprint: A369 A7EE 61BC 93A3 CDFF  55A5 1965 8550 C311 0611
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>

Reply via email to