You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by pl...@apache.org on 2003/03/27 18:29:26 UTC
cvs commit: maven/src/plugins-build/webserver plugin.jelly
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: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org