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 git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@113206 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -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 @@ Maven has determined your <j:expr value="${maven.webserver.fullname}"/> webserve
|
||||
<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 @@ Maven has determined your <j:expr value="${maven.webserver.fullname}"/> webserve
|
||||
<!--==================================================================-->
|
||||
<!-- 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 @@ Maven has determined your <j:expr value="${maven.webserver.fullname}"/> webserve
|
||||
<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 @@ Installing the <j:expr value="${maven.webserver.fullname}"/> webserver instance
|
||||
<!--==================================================================-->
|
||||
<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 @@ The <j:expr value="${maven.webserver.fullname}"/> is already stopped!
|
||||
<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: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>
|
||||
|
||||
<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}"/>
|
||||
|
||||
<!-- started and installed -->
|
||||
<j:when test="${context.getVariable('maven.webserver.installedAndStarted') == 'true'}">
|
||||
<webserver:stop />
|
||||
<webserver:clean />
|
||||
</j:when>
|
||||
|
||||
<!-- 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>
|
||||
Reference in New Issue
Block a user