o the appserver plugin starts a new life out on its own. To be removed from the J2EE plugin project space.
git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@112745 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
1
appserver/.cvsignore
Normal file
1
appserver/.cvsignore
Normal file
@@ -0,0 +1 @@
|
||||
maven.log
|
||||
242
appserver/plugin.jelly
Normal file
242
appserver/plugin.jelly
Normal file
@@ -0,0 +1,242 @@
|
||||
<?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>
|
||||
67
appserver/plugin.properties
Normal file
67
appserver/plugin.properties
Normal file
@@ -0,0 +1,67 @@
|
||||
#############################################################################
|
||||
# W E B S E R V E R
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# the place where the root install of the app server resides
|
||||
#
|
||||
maven.appserver.home=/apps/apache2
|
||||
|
||||
#
|
||||
# a supported name of an application server instance to install
|
||||
#
|
||||
maven.appserver.name=apache
|
||||
|
||||
#
|
||||
# version number of the application server
|
||||
#
|
||||
maven.appserver.version=2.x
|
||||
|
||||
# needed for dir searches and messages
|
||||
maven.appserver.fullname=${maven.appserver.name}-${maven.appserver.version}
|
||||
|
||||
#
|
||||
# ports to access this server instance
|
||||
#
|
||||
maven.appserver.port.http=80
|
||||
maven.appserver.port.https=443
|
||||
maven.appserver.port.one=8090
|
||||
maven.appserver.port.two=8091
|
||||
maven.appserver.port.three=8092
|
||||
|
||||
#
|
||||
# where to install the local instance of the server
|
||||
#
|
||||
maven.appserver.dir=${basedir}/server
|
||||
|
||||
#
|
||||
# where to look for the instance specific files for this appserver
|
||||
#
|
||||
maven.appserver.conf.dir=${maven.conf.dir}/appserver/${maven.appserver.fullname}
|
||||
|
||||
#
|
||||
# files in an 'includes' pattern to include when controlling the server
|
||||
# For example, if you have classes in your classpath you would like to
|
||||
# include when starting the server, you could use
|
||||
# maven.appserver.classpath=${java.class.path}
|
||||
# paths can be absolute or relative to ${maven.appserver.dir} as that is
|
||||
# where a jvm will be started. This is common for libraries that need sharing
|
||||
# across all webapps installed in the server
|
||||
#
|
||||
maven.appserver.classpath=
|
||||
|
||||
#
|
||||
# The host name, used when configuring, defaults to localhost
|
||||
#
|
||||
maven.appserver.host=localhost
|
||||
|
||||
#
|
||||
# The URL used to test the current running status of the appserver
|
||||
#
|
||||
maven.appserver.url=http://${maven.appserver.host}:${maven.appserver.port.http}/index.html
|
||||
|
||||
#
|
||||
# The root directory out of which you will server will serve your documents
|
||||
#
|
||||
maven.appserver.root=${maven.appserver.dir}/webapps/ROOT
|
||||
|
||||
5
appserver/project.properties
Normal file
5
appserver/project.properties
Normal file
@@ -0,0 +1,5 @@
|
||||
# -------------------------------------------------------------------
|
||||
# P R O J E C T P R O P E R T I E S
|
||||
# -------------------------------------------------------------------
|
||||
maven.xdoc.date=left
|
||||
maven.xdoc.version=${pom.currentVersion}
|
||||
85
appserver/project.xml
Normal file
85
appserver/project.xml
Normal file
@@ -0,0 +1,85 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<project>
|
||||
|
||||
<extend>${basedir}/../project.xml</extend>
|
||||
<pomVersion>3</pomVersion>
|
||||
<id>maven-appserver-plugin</id>
|
||||
<name>Maven Appserver Plugin</name>
|
||||
<currentVersion>1.1-SNAPSHOT</currentVersion>
|
||||
|
||||
<description>
|
||||
</description>
|
||||
|
||||
<shortDescription>A Maven plugin that can be used to install and control a J2EE application server instance.</shortDescription>
|
||||
|
||||
<url>http://jakarta.apache.org/turbine/maven/reference/plugins/appserver/</url>
|
||||
<issueTrackingUrl>http://jira.werken.com/BrowseProject.jspa?id=10030</issueTrackingUrl>
|
||||
<siteAddress>jakarta.apache.org</siteAddress>
|
||||
<siteDirectory>/www/jakarta.apache.org/turbine/maven/reference/plugins/appserver/</siteDirectory>
|
||||
<distributionDirectory>/www/jakarta.apache.org/builds/jakarta-turbine-maven/</distributionDirectory>
|
||||
|
||||
<developers>
|
||||
<developer>
|
||||
<name>dIon Gillard</name>
|
||||
<id>dion</id>
|
||||
<email>dion@multitask.com.au</email>
|
||||
<organization>Multitask Consulting</organization>
|
||||
<roles>
|
||||
<role>Documentation</role>
|
||||
</roles>
|
||||
</developer>
|
||||
|
||||
<developer>
|
||||
<name>Peter Lynch</name>
|
||||
<id>plynch</id>
|
||||
<email>plynch@apache.org</email>
|
||||
<organization></organization>
|
||||
<roles>
|
||||
<role>Architect</role>
|
||||
<role>Java Developer</role>
|
||||
</roles>
|
||||
</developer>
|
||||
|
||||
<developer>
|
||||
<name>Stéphane Mor</name>
|
||||
<id>smor</id>
|
||||
<email>stephanemor@yahoo.fr</email>
|
||||
<organization>Hasgard Systèmes et Réseaux</organization>
|
||||
<roles>
|
||||
<role>Java Developer</role>
|
||||
</roles>
|
||||
</developer>
|
||||
|
||||
<developer>
|
||||
<name>Jason van Zyl</name>
|
||||
<id>jvanzyl</id>
|
||||
<email>jason@zenplex.com</email>
|
||||
<organization>Zenplex</organization>
|
||||
<roles>
|
||||
<role>Release Manager</role>
|
||||
</roles>
|
||||
</developer>
|
||||
</developers>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<id>ant</id>
|
||||
<version>1.5.1</version>
|
||||
<properties>
|
||||
<classloader>root</classloader>
|
||||
</properties>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<id>commons-jelly+tags-log</id>
|
||||
<version>SNAPSHOT</version>
|
||||
<properties>
|
||||
<classloader>root.maven</classloader>
|
||||
</properties>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
||||
77
appserver/src/plugin-resources/tomcat-4.x.jelly
Normal file
77
appserver/src/plugin-resources/tomcat-4.x.jelly
Normal file
@@ -0,0 +1,77 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!--
|
||||
========================================================================
|
||||
T O M C A T 4.x C O N T R O L
|
||||
========================================================================
|
||||
-->
|
||||
<project>
|
||||
|
||||
<!--
|
||||
========================================================================
|
||||
Install and configure Tomcat 4.0 instance
|
||||
========================================================================
|
||||
-->
|
||||
<goal name="appserver:install-tomcat-4.x"
|
||||
description="install and configure a tomcat 4.0 instance">
|
||||
|
||||
<!-- Create common directories and copy configuration files -->
|
||||
<mkdir dir="${maven.appserver.dir}/conf"/>
|
||||
<mkdir dir="${maven.appserver.dir}/work"/>
|
||||
<mkdir dir="${maven.appserver.dir}/temp"/>
|
||||
<mkdir dir="${maven.appserver.dir}/webapps"/>
|
||||
<mkdir dir="${maven.appserver.dir}/logs"/>
|
||||
|
||||
<!-- copy any user configuration files w/ filtering by forcing copy -->
|
||||
<!-- expecting at least a server.xml -->
|
||||
<copy todir="${maven.appserver.dir}/conf" overwrite="true">
|
||||
<fileset dir="${maven.conf.dir}/${maven.appserver.fullname}" excludes="**/web.xml"/>
|
||||
<filterset refid="maven.appserver.filterset" />
|
||||
</copy>
|
||||
|
||||
</goal>
|
||||
|
||||
<!--
|
||||
========================================================================
|
||||
Start Tomcat 4.0
|
||||
========================================================================
|
||||
-->
|
||||
<goal name="appserver:start-tomcat-4.x"
|
||||
description="Start Tomcat 4.0">
|
||||
<java classname="org.apache.catalina.startup.Bootstrap" fork="yes"
|
||||
dir="${maven.appserver.dir}">
|
||||
<classpath>
|
||||
<pathelement path="${maven.appserver.classpath}"/>
|
||||
<fileset dir="${maven.appserver.home}">
|
||||
<include name="bin/bootstrap.jar"/>
|
||||
</fileset>
|
||||
</classpath>
|
||||
<jvmarg value="-Dcatalina.base=${maven.appserver.dir}"/>
|
||||
<jvmarg value="-Dcatalina.home=${maven.appserver.home}"/>
|
||||
<arg value="start"/>
|
||||
</java>
|
||||
</goal>
|
||||
|
||||
<!--
|
||||
========================================================================
|
||||
Stop Tomcat 4.0
|
||||
========================================================================
|
||||
-->
|
||||
<goal name="appserver:stop-tomcat-4.x"
|
||||
description="Stop Tomcat 4.0">
|
||||
<java classname="org.apache.catalina.startup.Bootstrap" fork="yes"
|
||||
dir="${maven.appserver.dir}">
|
||||
<classpath>
|
||||
<pathelement path="${maven.appserver.classpath}"/>
|
||||
<fileset dir="${maven.appserver.home}">
|
||||
<include name="bin/bootstrap.jar"/>
|
||||
</fileset>
|
||||
</classpath>
|
||||
<jvmarg value="-Dcatalina.base=${maven.appserver.dir}"/>
|
||||
<jvmarg value="-Dcatalina.home=${maven.appserver.home}"/>
|
||||
<arg value="stop"/>
|
||||
</java>
|
||||
</goal>
|
||||
|
||||
</project>
|
||||
|
||||
Reference in New Issue
Block a user