git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@112745 13f79535-47bb-0310-9956-ffa450edef68
242 lines
10 KiB
XML
242 lines
10 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!-- ================================================================== -->
|
|
<!-- A P P 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 A P P S E R V E R S -->
|
|
<!--==================================================================-->
|
|
<j:import inherit="true" uri="file:${plugin.resources}/tomcat-4.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 appserver instance -->
|
|
<goal name="appserver:init"
|
|
description="Initialize resources needed for the plugin">
|
|
|
|
<!-- a flag to see if the appserver is started -->
|
|
<ant:condition property="maven.appserver.started">
|
|
<ant:http url="${maven.appserver.url}" />
|
|
</ant:condition>
|
|
|
|
<!-- a flag to see if the appserver is installed -->
|
|
<ant:available property="maven.appserver.installed"
|
|
file="${maven.appserver.root}" type="dir" />
|
|
|
|
<!-- convert all path related properties to their os equivalent -->
|
|
<ant:property name="maven.appserver.home.path"
|
|
location="${maven.appserver.home}" />
|
|
<ant:property name="maven.appserver.conf.dir.path"
|
|
location="${maven.appserver.conf.dir}" />
|
|
<ant:property name="maven.appserver.root.path"
|
|
location="${maven.appserver.root}" />
|
|
<ant:property name="maven.appserver.dir.path"
|
|
location="${maven.appserver.dir}" />
|
|
|
|
<!-- create the filterset to be available to copy tasks that want it -->
|
|
<ant:filterset id="maven.appserver.filterset.default">
|
|
<ant:filter token="maven.appserver.home" value="${maven.appserver.home.path}" />
|
|
<ant:filter token="maven.appserver.name" value="${maven.appserver.name}" />
|
|
<ant:filter token="maven.appserver.version" value="${maven.appserver.version}" />
|
|
<ant:filter token="maven.appserver.port.http" value="${maven.appserver.port.http}" />
|
|
<ant:filter token="maven.appserver.port.https" value="${maven.appserver.port.https}" />
|
|
<ant:filter token="maven.appserver.port.one" value="${maven.appserver.port.one}" />
|
|
<ant:filter token="maven.appserver.port.two" value="${maven.appserver.port.two}" />
|
|
<ant:filter token="maven.appserver.port.three" value="${maven.appserver.port.three}" />
|
|
<ant:filter token="maven.appserver.conf.dir" value="${maven.appserver.conf.dir.path}" />
|
|
<ant:filter token="maven.appserver.host" value="${maven.appserver.host}" />
|
|
<ant:filter token="maven.appserver.dir" value="${maven.appserver.dir.path}" />
|
|
<ant:filter token="maven.appserver.root" value="${maven.appserver.root.path}" />
|
|
</ant:filterset>
|
|
|
|
<ant:filterset id="maven.appserver.filterset">
|
|
<ant:filter token="maven.appserver.NULLTOKEN" value="foobar" />
|
|
</ant:filterset>
|
|
|
|
<j:set var="maven.appserver.installed.msg">
|
|
<j:choose>
|
|
<j:when test="${maven.appserver.installed}">installed</j:when>
|
|
<j:otherwise>not installed</j:otherwise>
|
|
</j:choose>
|
|
</j:set>
|
|
|
|
<j:set var="maven.appserver.started.msg">
|
|
<j:choose>
|
|
<j:when test="${maven.appserver.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.appserver.fullname}"/> appserver instance is <j:expr value="${maven.appserver.installed.msg}"/> in directory [ <j:expr value="${maven.appserver.dir}"/> ] and <j:expr value="${maven.appserver.started.msg}"/> on <j:expr value="${maven.appserver.url}"/>
|
|
</log:info>
|
|
|
|
</goal>
|
|
|
|
<!--==================================================================-->
|
|
<!-- I S T A L L -->
|
|
<!--==================================================================-->
|
|
<goal name="appserver:install" prereqs="appserver:init"
|
|
description="Install or reinstall a appserver instance">
|
|
|
|
<ant:mkdir dir="${maven.appserver.dir}" />
|
|
|
|
<j:choose>
|
|
<!-- not installed - simply install -->
|
|
<j:when test="${!maven.appserver.installed}">
|
|
<attainGoal name="appserver:install-${maven.appserver.fullname}" />
|
|
</j:when>
|
|
<!-- installed and stopped -->
|
|
<j:when
|
|
test="${maven.appserver.installed} and ${!maven.appserver.started}">
|
|
<attainGoal name="appserver:reinstall" />
|
|
</j:when>
|
|
<!-- installed and started -->
|
|
<j:when test="${maven.appserver.installed} and ${!maven.appserver.started}">
|
|
<attain>
|
|
<attainGoal name="appserver:stop" />
|
|
<attainGoal name="appserver:reinstall" />
|
|
<attainGoal name="appserver: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.appserver.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="appserver:reinstall"
|
|
prereqs="appserver:init, appserver:install-${maven.appserver.fullname}"
|
|
description="Reinstall a appserver instance" >
|
|
</goal>
|
|
|
|
|
|
<!--==================================================================-->
|
|
<!-- S T A R T -->
|
|
<!--==================================================================-->
|
|
<goal name="appserver:start" prereqs="appserver:init"
|
|
description="Start or restart a appserver instance">
|
|
|
|
<!-- property to remember what goal the user first called -->
|
|
<property name="appserver:start.called" value="true" />
|
|
|
|
<!-- must install before starting -->
|
|
<j:if test="${!maven.appserver.installed}">
|
|
<log:info trim="false">
|
|
|
|
Installing the <j:expr value="${maven.appserver.fullname}" /> appserver instance before starting it ...
|
|
|
|
</log:info>
|
|
<attainGoal name="appserver:install" />
|
|
</j:if>
|
|
|
|
<j:choose>
|
|
<j:when test="${maven.appserver.started}">
|
|
<attain>
|
|
<attainGoal name="appserver:stop" />
|
|
<log:info>
|
|
Restarting the <j:expr value="${maven.appserver.fullname}"/>
|
|
appserver instance ...
|
|
</log:info>
|
|
<attainGoal name="appserver:restart" />
|
|
</attain>
|
|
</j:when>
|
|
<j:when test="${!maven.appserver.installed}">
|
|
<log:info>
|
|
Installing the <j:expr value="${maven.appserver.fullname}"/>
|
|
appserver instance before starting it ...
|
|
</log:info>
|
|
<attainGoal name="appserver:install" />
|
|
<attainGoal name="appserver:start-${maven.appserver.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="appserver:restart"
|
|
prereqs="appserver:init,appserver:restart-${maven.appserver.fullname}"
|
|
description="Restart the web server instance">
|
|
<!-- <attainGoal name="start-${maven.appserver.fullname}" /> -->
|
|
</goal>
|
|
|
|
<!--==================================================================-->
|
|
<!-- S T O P -->
|
|
<!--==================================================================-->
|
|
<goal name="appserver:stop" prereqs="appserver:init"
|
|
description="Stop a appserver instance if started">
|
|
|
|
<j:choose>
|
|
<j:when test="${maven.appserver.installed} and ${maven.appserver.started}">
|
|
<attainGoal
|
|
name="appserver:stop-${maven.appserver.fullname}" />
|
|
</j:when>
|
|
<j:otherwise>
|
|
<j:if test="${!appserver-clean.called}">
|
|
<log:info>
|
|
The <j:expr value="${maven.appserver.fullname}"/>
|
|
is already stopped!
|
|
</log:info>
|
|
</j:if>
|
|
</j:otherwise>
|
|
</j:choose>
|
|
|
|
</goal>
|
|
|
|
<!--==================================================================-->
|
|
<!-- C L E A N -->
|
|
<!--==================================================================-->
|
|
<goal name="appserver:clean" prereqs="appserver:init"
|
|
description="Safely delete an installed appserver instance">
|
|
|
|
<!-- property to remember what goal the user first called -->
|
|
<property name="appserver:clean.called" value="true" />
|
|
|
|
<j:if test="${maven.appserver.started}">
|
|
<log:info>
|
|
Stopping the <j:expr value="${maven.appserver.fullname}" />
|
|
appserver instance before deleting it...
|
|
</log:info>
|
|
<attainGoal name="appserver:stop" />
|
|
</j:if>
|
|
|
|
<j:if test="${maven.appserver.installed}">
|
|
<log:info>
|
|
Deleting the <j:expr value="${maven.appserver.fullname}" />
|
|
appserver instance ...
|
|
</log:info>
|
|
|
|
<!-- allow appservers to have their own cleanup -->
|
|
<attainGoal name="appserver:clean-${maven.appserver.fullname}" />
|
|
<!-- by default cleanup the server dir -->
|
|
<ant:delete dir="${maven.appserver.dir}"/>
|
|
|
|
</j:if>
|
|
|
|
<j:if test="${!maven.appserver.installed}">
|
|
<log:info>
|
|
The <j:expr value="${maven.appserver.fullname}"/>
|
|
appserver instance is already cleaned!
|
|
</log:info>
|
|
</j:if>
|
|
|
|
</goal>
|
|
|
|
</project> |