plynch 2003/03/27 09:29:25 Modified: src/plugins-build/webserver plugin.jelly Log: o use define taglib to help isolate the main work of the goals o improve user feedback o be explicit with the variable retrieval to avoid jexl issues Revision Changes Path 1.11 +96 -71 maven/src/plugins-build/webserver/plugin.jelly Index: plugin.jelly =================================================================== RCS file: /home/cvs/maven/src/plugins-build/webserver/plugin.jelly,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- plugin.jelly 2 Feb 2003 07:39:26 -0000 1.10 +++ plugin.jelly 27 Mar 2003 17:29:25 -0000 1.11 @@ -4,7 +4,8 @@ <!-- W E B S E R V E R P L U G I N --> <!-- ================================================================== --> <project xmlns:j="jelly:core" xmlns:ant="jelly:ant" xmlns:log="jelly:log" - xmlns:exception="exception" xmlns:define="jelly:define"> + xmlns:exception="exception" xmlns:define="jelly:define" + xmlns:webserver="http://www.maven.org/plugin/webserver"> <!--==================================================================--> <!-- S U P P O R T E D W E B S E R V E R S --> @@ -225,10 +226,68 @@ </j:choose> </j:set> + <j:if test="${context.getVariable('maven.webserver.started') == 'true' and context.getVariable('maven.webserver.installed') == 'true'}"> + <j:set var="maven.webserver.installedandStarted" value="true" /> + </j:if> + <log:info trim="false"> Maven has determined your <j:expr value="${maven.webserver.fullname}"/> webserver instance is <j:expr value="${maven.webserver.installed.msg}"/> in directory [ <j:expr value="${maven.webserver.dir}"/> ] and <j:expr value="${maven.webserver.started.msg}"/> on <j:expr value="${maven.webserver.test.url}"/> </log:info> + <!-- DEFINE CORE FUNCTIONALITY --> + <define:taglib uri="http://www.maven.org/plugin/webserver"> + + <define:tag name="clean"> + <log:info trim="false"> +<j:expr value="${maven.webserver.fullname}" />: Deleting webserver instance ... + </log:info> + + <!-- allow webservers to have their own cleanup --> + <attainGoal name="webserver:clean-${maven.webserver.fullname}" /> + + <!-- all clean calls should cleanup the server dir --> + <ant:delete dir="${maven.webserver.dir}"/> + </define:tag> + + + <define:tag name="install"> + <log:info trim="false"> +<j:expr value="${maven.webserver.fullname}" />: Installing webserver instance ... + </log:info> + <attainGoal name="webserver:install-${maven.webserver.fullname}" /> + </define:tag> + + <define:tag name="reinstall"> + <log:info trim="false"> +<j:expr value="${maven.webserver.fullname}" />: Re-installing webserver instance ... + </log:info> + <attainGoal name="webserver:install-${maven.webserver.fullname}" /> + </define:tag> + + + <define:tag name="restart"> + <log:info trim="false"> +<j:expr value="${maven.webserver.fullname}" />: Re-starting webserver instance ... + </log:info> + <attainGoal name="webserver:restart-${maven.webserver.fullname}" /> + </define:tag> + + <define:tag name="start"> + <log:info trim="false"> +<j:expr value="${maven.webserver.fullname}" />: Starting webserver instance ... + </log:info> + <attainGoal name="webserver:start-${maven.webserver.fullname}" /> + </define:tag> + + <define:tag name="stop"> + <log:info trim="false"> +<j:expr value="${maven.webserver.fullname}" />: Stopping webserver instance ... + </log:info> + <attainGoal name="webserver:stop-${maven.webserver.fullname}" /> + </define:tag> + + </define:taglib> + </goal> <!--==================================================================--> @@ -237,24 +296,24 @@ <goal name="webserver:install" prereqs="webserver:init" description="Install or reinstall a webserver instance"> + <!-- all goals will need a webserver dir --> <ant:mkdir dir="${maven.webserver.dir}" /> <j:choose> <!-- not installed - simply install --> - <j:when test="${!maven.webserver.installed}"> - <attainGoal name="webserver:install-${maven.webserver.fullname}" /> + <j:when test="${context.getVariable('maven.webserver.installed') != 'true'}"> + <webserver:install /> </j:when> <!-- installed and stopped --> - <j:when - test="${maven.webserver.installed} and ${!maven.webserver.started}"> - <attainGoal name="webserver:reinstall" /> + <j:when test="${context.getVariable('maven.webserver.installed') == 'true' and context.getVariable('maven.webserver.started') != 'true'}"> + <webserver:reinstall /> </j:when> <!-- installed and started --> - <j:when test="${maven.webserver.installed} and ${!maven.webserver.started}"> + <j:when test="${context.getVariable('maven.webserver.installedAndStarted') == 'true'}"> <attain> - <attainGoal name="webserver:stop" /> - <attainGoal name="webserver:reinstall" /> - <attainGoal name="webserver:start" /> + <webserver:stop /> + <webserver:reinstall /> + <webserver:start /> </attain> </j:when> <!-- one of those 'things' that should never happen --> @@ -279,7 +338,8 @@ <!--==================================================================--> <!-- the purpose of this target is to allow the user to be very --> <!-- specific when using pre and post goals and sometimes there may --> - <!-- be custom implementations of reinstall --> + <!-- be custom implementations of reinstall needed --> + <!-- by default we just call the install goal again --> <goal name="webserver:reinstall" prereqs="webserver:init, webserver:install-${maven.webserver.fullname}" description="Reinstall a webserver instance" > @@ -292,33 +352,18 @@ <goal name="webserver:start" prereqs="webserver:init" description="Start or restart a webserver instance"> - <!-- property to remember what goal the user first called --> - <ant:property name="webserver.goal.start.called" value="true" /> - - <!-- must install before starting --> - <j:if test="${!maven.webserver.installed}"> - <log:info trim="false"> -Installing the <j:expr value="${maven.webserver.fullname}" /> webserver instance before starting it ... - </log:info> - <attainGoal name="webserver:install" /> - </j:if> - <j:choose> - <j:when test="${maven.webserver.started}"> + <j:when test="${context.getVariable('maven.webserver.installed') != 'true'}"> <attain> - <attainGoal name="webserver:stop" /> - <log:info trim="false"> -Restarting the <j:expr value="${maven.webserver.fullname}"/> webserver instance ... - </log:info> - <attainGoal name="webserver:restart" /> + <webserver:install /> + <webserver:start /> </attain> </j:when> - <j:when test="${!maven.webserver.installed}"> - <log:info trim="false"> -Installing the <j:expr value="${maven.webserver.fullname}"/> webserver instance before starting it ... - </log:info> - <attainGoal name="webserver:install" /> - <attainGoal name="webserver:start-${maven.webserver.fullname}"/> + <j:when test="${context.getVariable('maven.webserver.installedAndStarted') == 'true'}"> + <webserver:restart /> + </j:when> + <j:when test="${context.getVariable('maven.webserver.installed') == 'true'}"> + <webserver:start /> </j:when> </j:choose> @@ -339,24 +384,10 @@ <!--==================================================================--> <goal name="webserver:stop" prereqs="webserver:init" description="Stop a webserver instance if started"> - - <j:choose> - <j:when test="${maven.webserver.started and maven.webserver.installed}"> - <log:info trim="false"> -Stopping the webserver ... - </log:info> - <attainGoal name="webserver:stop-${maven.webserver.fullname}" /> - </j:when> - <j:otherwise> - <j:if test="${webserver.goal.clean.called != 'true'}"> - <log:info trim="false"> -The <j:expr value="${maven.webserver.fullname}"/> is already stopped! - </log:info> - </j:if> - </j:otherwise> - </j:choose> - - </goal> + <j:if test="${context.getVariable('maven.webserver.installedAndStarted') == 'true'}"> + <webserver:stop /> + </j:if> + </goal> <!--==================================================================--> <!-- C L E A N --> @@ -364,33 +395,27 @@ <goal name="webserver:clean" prereqs="webserver:init" description="Safely delete an installed webserver instance"> - <!-- property to remember what goal the user first called --> - <j:set var="webserver.goal.clean.called" value="true" /> + <j:choose> - <j:if test="${maven.webserver.started}"> - <log:info trim="false"> -Stopping the <j:expr value="${maven.webserver.fullname}" /> webserver instance before deleting it ... - </log:info> - <attainGoal name="webserver:stop" /> - </j:if> + <!-- started and installed --> + <j:when test="${context.getVariable('maven.webserver.installedAndStarted') == 'true'}"> + <webserver:stop /> + <webserver:clean /> + </j:when> - <j:choose> - <j:when test="${maven.webserver.installed}"> - <log:info trim="false"> -Deleting the <j:expr value="${maven.webserver.fullname}" /> webserver instance ... - </log:info> - <!-- allow webservers to have their own cleanup --> - <attainGoal name="webserver:clean-${maven.webserver.fullname}" /> - <!-- all clean calls should cleanup the server dir --> - <ant:delete dir="${maven.webserver.dir}"/> + <!-- installed not started --> + <j:when test="${context.getVariable('maven.webserver.installed') == 'true'}"> + <webserver:clean /> </j:when> + + <!-- already cleaned --> <j:otherwise> <log:info trim="false"> -The <j:expr value="${maven.webserver.fullname}"/> webserver instance is already cleaned! +<j:expr value="${maven.webserver.fullname}"/>: Already cleaned! </log:info> </j:otherwise> - </j:choose> + </j:choose> </goal> </project>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
