maven-plugins/webserver/plugin.jelly
plynch 31f11f1b4a Recovery of changes made before the big plugin overhaul
plugin.jelly
o extraneous markup removed
o improved logging
o improved filters for goals that copy
o added ability for each webserver to have a clean target

plugin.properties
o adding maven.webserver.root which says where to serve documents from

apache-2.x.jelly
o add goals that start apache for Windows NT/XP/2000
o add a clean goal to cleanup installed services


git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@112737 13f79535-47bb-0310-9956-ffa450edef68
2003-01-25 10:04:04 +00:00

242 lines
10 KiB
XML

<?xml version="1.0"?>
<!-- ================================================================== -->
<!-- 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">
<!--==================================================================-->
<!-- S U P P O R T E D W E B S E R V E R S -->
<!--==================================================================-->
<j:import inherit="true" uri="apache-2.x.jelly" />
<!--==================================================================-->
<!-- B E G I N C O R E P R O C E S S I N G -->
<!--==================================================================-->
<!-- tell the user what Maven thinks about their webserver instance -->
<goal name="webserver:init"
description="Initialize resources needed for the plugin">
<!-- a flag to see if the webserver is started -->
<ant:condition property="maven.webserver.started">
<ant:http url="${maven.webserver.url}" />
</ant:condition>
<!-- a flag to see if the webserver is installed -->
<ant:available property="maven.webserver.installed"
file="${maven.webserver.root}" type="dir" />
<!-- convert all path related properties to their os equivalent -->
<ant:property name="maven.webserver.home.path"
location="${maven.webserver.home}" />
<ant:property name="maven.webserver.conf.dir.path"
location="${maven.webserver.conf.dir}" />
<ant:property name="maven.webserver.root.path"
location="${maven.webserver.root}" />
<ant:property name="maven.webserver.dir.path"
location="${maven.webserver.dir}" />
<!-- create the filterset to be available to copy tasks that want it -->
<ant:filterset id="maven.webserver.filterset.default">
<ant:filter token="maven.webserver.home" value="${maven.webserver.home.path}" />
<ant:filter token="maven.webserver.name" value="${maven.webserver.name}" />
<ant:filter token="maven.webserver.version" value="${maven.webserver.version}" />
<ant:filter token="maven.webserver.port.http" value="${maven.webserver.port.http}" />
<ant:filter token="maven.webserver.port.https" value="${maven.webserver.port.https}" />
<ant:filter token="maven.webserver.port.one" value="${maven.webserver.port.one}" />
<ant:filter token="maven.webserver.port.two" value="${maven.webserver.port.two}" />
<ant:filter token="maven.webserver.port.three" value="${maven.webserver.port.three}" />
<ant:filter token="maven.webserver.conf.dir" value="${maven.webserver.conf.dir.path}" />
<ant:filter token="maven.webserver.host" value="${maven.webserver.host}" />
<ant:filter token="maven.webserver.dir" value="${maven.webserver.dir.path}" />
<ant:filter token="maven.webserver.root" value="${maven.webserver.root.path}" />
</ant:filterset>
<ant:filterset id="maven.webserver.filterset">
<ant:filter token="maven.webserver.NULLTOKEN" value="foobar" />
</ant:filterset>
<j:set var="maven.webserver.installed.msg">
<j:choose>
<j:when test="${maven.webserver.installed}">installed</j:when>
<j:otherwise>not installed</j:otherwise>
</j:choose>
</j:set>
<j:set var="maven.webserver.started.msg">
<j:choose>
<j:when test="${maven.webserver.started}">started</j:when>
<j:otherwise>not started</j:otherwise>
</j:choose>
</j:set>
<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.url}"/>
</log:info>
</goal>
<!--==================================================================-->
<!-- I S T A L L -->
<!--==================================================================-->
<goal name="webserver:install" prereqs="webserver:init"
description="Install or reinstall a webserver instance">
<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>
<!-- installed and stopped -->
<j:when
test="${maven.webserver.installed} and ${!maven.webserver.started}">
<attainGoal name="webserver:reinstall" />
</j:when>
<!-- installed and started -->
<j:when test="${maven.webserver.installed} and ${!maven.webserver.started}">
<attain>
<attainGoal name="webserver:stop" />
<attainGoal name="webserver:reinstall" />
<attainGoal name="webserver:start" />
</attain>
</j:when>
<!-- one of those 'things' that should never happen -->
<j:otherwise>
<log:info>
Could not determine the current status for your
<j:expr value="${maven.webserver.fullname}"/> instance.
</log:info>
</j:otherwise>
</j:choose>
</goal>
<!--==================================================================-->
<!-- R E I N S T A L L -->
<!--==================================================================-->
<!-- 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 -->
<goal name="webserver:reinstall"
prereqs="webserver:init, webserver:install-${maven.webserver.fullname}"
description="Reinstall a webserver instance" >
</goal>
<!--==================================================================-->
<!-- S T A R T -->
<!--==================================================================-->
<goal name="webserver:start" prereqs="webserver:init"
description="Start or restart a webserver instance">
<!-- property to remember what goal the user first called -->
<property name="webserver: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}">
<attain>
<attainGoal name="webserver:stop" />
<log:info>
Restarting the <j:expr value="${maven.webserver.fullname}"/>
webserver instance ...
</log:info>
<attainGoal name="webserver:restart" />
</attain>
</j:when>
<j:when test="${!maven.webserver.installed}">
<log:info>
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>
</j:choose>
</goal>
<!--==================================================================-->
<!-- R E S T A R T -->
<!--==================================================================-->
<!-- the purpose of this target is to allow the user to be very -->
<!-- specific when using pre and post goals -->
<goal name="webserver:restart"
prereqs="webserver:init,webserver:restart-${maven.webserver.fullname}"
description="Restart the web server instance">
<!-- <attainGoal name="start-${maven.webserver.fullname}" /> -->
</goal>
<!--==================================================================-->
<!-- S T O P -->
<!--==================================================================-->
<goal name="webserver:stop" prereqs="webserver:init"
description="Stop a webserver instance if started">
<j:choose>
<j:when test="${maven.webserver.installed} and ${maven.webserver.started}">
<attainGoal
name="webserver:stop-${maven.webserver.fullname}" />
</j:when>
<j:otherwise>
<j:if test="${!webserver-clean.called}">
<log:info>
The <j:expr value="${maven.webserver.fullname}"/>
is already stopped!
</log:info>
</j:if>
</j:otherwise>
</j:choose>
</goal>
<!--==================================================================-->
<!-- C L E A N -->
<!--==================================================================-->
<goal name="webserver:clean" prereqs="webserver:init"
description="Safely delete an installed webserver instance">
<!-- property to remember what goal the user first called -->
<property name="webserver:clean.called" value="true" />
<j:if test="${maven.webserver.started}">
<log:info>
Stopping the <j:expr value="${maven.webserver.fullname}" />
webserver instance before deleting it...
</log:info>
<attainGoal name="webserver:stop" />
</j:if>
<j:if test="${maven.webserver.installed}">
<log:info>
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}" />
<!-- by default cleanup the server dir -->
<ant:delete dir="${maven.webserver.dir}"/>
</j:if>
<j:if test="${!maven.webserver.installed}">
<log:info>
The <j:expr value="${maven.webserver.fullname}"/>
webserver instance is already cleaned!
</log:info>
</j:if>
</goal>
</project>