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/05/05 04:58:47 UTC

cvs commit: maven/src/plugins-build/appserver plugin.jelly

plynch      2003/05/04 19:58:47

  Modified:    src/plugins-build/appserver plugin.jelly
  Log:
  o now closely mimics the behaviour of the webserver plugin protocol
  o a complete rewrite, therefore the version gets bumped to 2.0
  
  Revision  Changes    Path
  1.3       +464 -119  maven/src/plugins-build/appserver/plugin.jelly
  
  Index: plugin.jelly
  ===================================================================
  RCS file: /home/cvs/maven/src/plugins-build/appserver/plugin.jelly,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- plugin.jelly	11 Apr 2003 17:21:18 -0000	1.2
  +++ plugin.jelly	5 May 2003 02:58:47 -0000	1.3
  @@ -1,14 +1,19 @@
   <?xml version="1.0"?>
   
   <!-- ================================================================== -->
  -<!-- A P P S E R V E R  P L U G I N                                     -->
  +<!-- 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">
  +<project xmlns:j="jelly:core" xmlns:ant="jelly:ant" xmlns:log="jelly:log"
  +  xmlns:util="jelly:util"
  +  xmlns:exception="http://www.maven.org/plugin/appserver/exception"
  +  xmlns:appserver="http://www.maven.org/plugin/appserver"
  +  xmlns:define="jelly:define" >
   
     <!--==================================================================-->
  -  <!-- S U P P O R T E D  A P P S E R V E R S                           -->
  +  <!-- S U P P O R T E D  W E B S E R V E R S                           -->
     <!--==================================================================-->
  -  <j:import inherit="true" uri="file:${plugin.resources}/tomcat-4.x.jelly" />
  +  <j:import inherit="true" file="${plugin.resources}/tomcat-4.0.x.jelly" />
  +  <j:import inherit="true" file="${plugin.resources}/tomcat-4.1.x.jelly" />
   
     <!--==================================================================-->
     <!-- B E G I N  C O R E  P R O C E S S I N G                          -->
  @@ -17,14 +22,160 @@
     <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>
  +    <!--
  +    1. First check that name and version properties have values
  +    2. Check the appserver name and version is supported by this plugin
  +    3. Check the home dir to make sure we can find the install
  +    4. Check the rest of the required properties
  +    5. Check the ports to make sure they are numbers only
  +    -->
  +
  +    <define:taglib uri="http://www.maven.org/plugin/appserver/exception">
  +      <define:tag name="requiredPropertyMissing">
  +        <ant:fail message=" ">
  + --------------------------------------------------------------------------
  + | Plugin Configuration Error                                             |
  + --------------------------------------------------------------------------
  +
  +  A required property is missing a value.
  +
  +  Property name: ${propname}
  +
  +  Errors must be corrected before using this plugin.
  +
  + --------------------------------------------------------------------------
  +        </ant:fail>
  +      </define:tag>
  +      <define:tag name="invalidPropertyDirectory">
  +        <ant:fail message=" ">
  + --------------------------------------------------------------------------
  + | Plugin Configuration Error                                             |
  + --------------------------------------------------------------------------
  +
  +  A required property is pointing to an invalid directory.
  +
  +  Property name: ${propname}
  +  Invalid value: ${propvalue}
  +
  +  Errors must be corrected before using this plugin.
  +
  + --------------------------------------------------------------------------
  +        </ant:fail>
  +      </define:tag>
  +      <define:tag name="appserverNameNotSupported">
  +        <ant:fail message=" ">
  + --------------------------------------------------------------------------
  + | Plugin Configuration Error                                             |
  + --------------------------------------------------------------------------
  +
  +  The specified appserver name is currently not supported.
  +
  +  Property name: ${propname}
  +  Property value: ${propvalue}
  +
  +  For supported ${propname} values, please see the help docs.
  +
  + --------------------------------------------------------------------------
  +        </ant:fail>
  +      </define:tag>
  +      <define:tag name="appserverVersionNotSupported">
  +        <ant:fail message=" ">
  + --------------------------------------------------------------------------
  + | Plugin Configuration Error                                             |
  + --------------------------------------------------------------------------
  +
  +  The specified version for the ${appserver} appserver is currently
  +  not supported.
  +
  +  Property name: ${propname}
  +  Property value: ${propvalue}
  +
  +  For supported ${propname} values, please see the help docs.
  +
  + --------------------------------------------------------------------------
  +        </ant:fail>
  +      </define:tag>
  +    </define:taglib>
  +
  +
  +    <!-- Check required properties for a name and version first -->
  +    <j:if test="${context.getVariable('maven.appserver.name') == null}">
  +      <exception:requiredPropertyMissing propname="maven.appserver.name" />
  +    </j:if>
  +    <j:if test="${context.getVariable('maven.appserver.version') == null}">
  +      <exception:requiredPropertyMissing propname="maven.appserver.version" />
  +    </j:if>
   
  -    <!-- a flag to see if the appserver is installed -->
  -    <ant:available property="maven.appserver.installed"
  -      file="${maven.appserver.root}" type="dir" />
  +    <!-- Check if the appserver name and version are supported -->
  +    <j:choose>
  +      <j:when test="${context.getVariable('maven.appserver.name') == 'tomcat'}">
  +        <j:choose>
  +          <j:when test="${context.getVariable('maven.appserver.version') == '4.0.x'}" />
  +          <j:when test="${context.getVariable('maven.appserver.version') == '4.1.x'}" />
  +          <j:otherwise>
  +            <exception:appserverVersionNotSupported
  +              appserver="${maven.appserver.name}"
  +              propname="maven.appserver.version"
  +              propvalue="${maven.appserver.version}" />
  +          </j:otherwise>
  +        </j:choose>
  +      </j:when>
  +      <j:otherwise>
  +        <exception:appserverNameNotSupported propname="maven.appserver.name"
  +          propvalue="${maven.appserver.name}" />
  +      </j:otherwise>
  +    </j:choose>
  +
  +    <!-- Check the home dir to see if it exists -->
  +    <!-- hack to work around maven console caching property values -->
  +    <j:remove var="maven.appserver.conf.dir.exists" />
  +    <util:available file="${maven.appserver.home}">
  +      <j:set var="maven.appserver.home.exists" value="true" />
  +    </util:available>
  +    <j:if test="${!context.getVariable('maven.appserver.home.exists')}">
  +      <exception:invalidPropertyDirectory propname="maven.appserver.home"
  +      propvalue="${maven.appserver.home}" />
  +    </j:if>
  +
  +    <!-- Check the rest of the required properties -->
  +    <j:if test="${context.getVariable('maven.appserver.dir') == null}">
  +      <exception:requiredPropertyMissing propname="maven.appserver.dir" />
  +    </j:if>
  +    <j:if test="${context.getVariable('maven.appserver.test.socket') == null}">
  +      <exception:requiredPropertyMissing propname="maven.appserver.test.socket" />
  +    </j:if>
  +    <j:if test="${context.getVariable('maven.appserver.root') == null}">
  +      <exception:requiredPropertyMissing propname="maven.appserver.root" />
  +    </j:if>
  +
  +    <!-- sanity check for preset variables -->
  +    <j:choose>
  +      <j:when test="${context.getVariable('maven.appserver.port.http') == null}">
  +        <j:if test="${context.getVariable('maven.appserver.port.https') == null}">
  +          <exception:requiredPropertyMissing
  +            propname="maven.appserver.port.http OR maven.appserver.port.https" />
  +        </j:if>
  +      </j:when>
  +      <j:when test="${context.getVariable('maven.appserver.port.https') == null}">
  +        <j:if test="${context.getVariable('maven.appserver.port.http') == null}">
  +          <exception:requiredPropertyMissing
  +            propname="maven.appserver.port.http OR maven.appserver.port.https" />
  +        </j:if>
  +      </j:when>
  +    </j:choose>
  +
  +    <!-- These are special cases where the user should not override -->
  +    <j:if test="${context.getVariable('maven.appserver.fullname') == null}">
  +      <exception:requiredPropertyMissing propname="maven.appserver.fullname" />
  +    </j:if>
  +    <j:remove var="maven.appserver.conf.dir.exists" />
  +    <util:available file="${maven.appserver.conf.dir}">
  +      <j:set var="maven.appserver.conf.dir.exists" value="true" />
  +    </util:available>
  +    <j:if test="${!context.getVariable('maven.appserver.conf.dir.exists')}">
  +      <exception:invalidPropertyDirectory propname="maven.appserver.conf.dir"
  +      propvalue="${maven.appserver.conf.dir}" />
  +    </j:if>
   
       <!-- convert all path related properties to their os equivalent -->
       <ant:property name="maven.appserver.home.path"
  @@ -38,23 +189,57 @@
   
       <!-- 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: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.A"
  +        value="${maven.appserver.port.A}" />
  +      <ant:filter token="maven.appserver.port.B"
  +        value="${maven.appserver.port.B}" />
  +      <ant:filter token="maven.appserver.port.C"
  +        value="${maven.appserver.port.C}" />
  +      <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>
  +    <!-- a flag to see if the appserver is started -->
  +    <j:remove var="maven.appserver.started" />
  +    <ant:condition property="maven.appserver.started">
  +      <ant:and>
  +        <ant:socket server="${maven.appserver.host}"
  +          port="${maven.appserver.test.socket}" />
  +        <!-- only use the test url if defined, else just use the socket -->
  +        <j:if test="${context.getVariable('maven.appserver.test.url') != null}">
  +          <ant:http url="${maven.appserver.test.url}" />
  +        </j:if>
  +      </ant:and>
  +    </ant:condition>
  +
  +    <!-- a flag to see if the appserver is installed -->
  +    <j:remove var="maven.appserver.installed" />
  +    <ant:condition property="maven.appserver.installed">
  +      <ant:and>
  +        <ant:available file="${maven.appserver.root}" type="dir" />
  +        <ant:available file="${maven.appserver.dir}" type="dir" />
  +      </ant:and>
  +    </ant:condition>
  +
  +    <j:if test="${context.getVariable('maven.appserver.started') == 'true' and context.getVariable('maven.appserver.installed') == 'true'}">
  +      <j:set var="maven.appserver.installedAndStarted" value="true" />
  +    </j:if>
   
       <j:set var="maven.appserver.installed.msg">
         <j:choose>
  @@ -70,173 +255,333 @@
         </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}"/>
  +    <j:if test="${context.getVariable('maven.appserver.test.url') != null}">
  +    <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.test.url}"/>
       </log:info>
  +    </j:if>
  +
  +    <j:if test="${context.getVariable('maven.appserver.test.url') == null}">
  +    <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}"/> using socket <j:expr value="${maven.appserver.test.socket}"/> on host <j:expr value="${maven.appserver.host}"/>.
  +    </log:info>
  +    </j:if>
  +
  +    <!--==================================================================-->
  +    <!-- C O R E                                                          -->
  +    <!--==================================================================-->
  +    <define:taglib uri="http://www.maven.org/plugin/appserver">
  +
  +      <!--==================================================================-->
  +      <!-- C L E A N                                                        -->
  +      <!--==================================================================-->
  +      <define:tag name="clean">
  +        <log:info trim="false">
  +<j:expr value="${maven.appserver.fullname}" />: Deleting appserver instance ...
  +        </log:info>
  +        <attainGoal session="${context.getVariable('maven.session.global', 'parent')}"
  +          name="appserver:clean-${maven.appserver.fullname}" />
  +       <ant:delete dir="${maven.appserver.dir}"/>
  +      </define:tag>
  +
  +      <!--==================================================================-->
  +      <!-- I N S T A L L                                                    -->
  +      <!--==================================================================-->
  +      <define:tag name="install">
  +        <log:info trim="false">
  +<j:expr value="${maven.appserver.fullname}" />: Installing appserver instance ...
  +        </log:info>
  +        <attainGoal
  +          session="${context.getVariable('maven.session.global', 'parent')}"
  +          name="appserver:install-${maven.appserver.fullname}" />
  +      </define:tag>
  +
  +      <!--==================================================================-->
  +      <!-- R E I N S T A L L                                                -->
  +      <!--==================================================================-->
  +      <define:tag name="reinstall">
  +        <log:info trim="false">
  +<j:expr value="${maven.appserver.fullname}" />: Re-installing appserver instance ...
  +        </log:info>
  +        <attainGoal session="${context.getVariable('maven.session.global', 'parent')}"
  +           name="appserver:reinstall-${maven.appserver.fullname}" />
  +      </define:tag>
   
  +
  +      <!--==================================================================-->
  +      <!-- S T A R T                                                        -->
  +      <!--==================================================================-->
  +      <define:tag name="start">
  +        <log:info trim="false">
  +<j:expr value="${maven.appserver.fullname}" />: Starting appserver instance ...
  +        </log:info>
  +        <attainGoal
  +          session="${context.getVariable('maven.session.global', 'parent')}"
  +          name="appserver:start-${maven.appserver.fullname}" />
  +      </define:tag>
  +
  +      <!--==================================================================-->
  +      <!-- R E S T A R T                                                    -->
  +      <!--==================================================================-->
  +      <define:tag name="restart">
  +        <log:info trim="false">
  +<j:expr value="${maven.appserver.fullname}" />: Re-starting appserver instance ...
  +        </log:info>
  +        <attainGoal
  +          session="${context.getVariable('maven.session.global', 'parent')}"
  +          name="appserver:restart-${maven.appserver.fullname}" />
  +      </define:tag>
  +
  +      <!--==================================================================-->
  +      <!-- S T O P                                                          -->
  +      <!--==================================================================-->
  +      <define:tag name="stop">
  +        <log:info trim="false">
  +<j:expr value="${maven.appserver.fullname}" />: Stopping appserver instance ...
  +        </log:info>
  +        <attainGoal session="${context.getVariable('maven.session.global', 'parent')}"
  +          name="appserver:stop-${maven.appserver.fullname}" />
  +      </define:tag>
  +
  +    </define:taglib>
     </goal>
   
     <!--==================================================================-->
  -  <!-- I S T A L L                                                      -->
  +  <!-- C Y C L E                                                        -->
     <!--==================================================================-->
  -  <goal name="appserver:install" prereqs="appserver:init"
  -    description="Install or reinstall a appserver instance">
  +  <goal name="appserver:cycle" prereqs="appserver:init"
  +    description="Forced install and start of a appserver instance">
   
  +    <!-- all goals will need a appserver dir -->
       <ant:mkdir dir="${maven.appserver.dir}" />
  +    <ant:mkdir dir="${maven.appserver.root}" />
   
       <j:choose>
  -      <!-- not installed - simply install -->
  -      <j:when test="${!maven.appserver.installed}">
  -        <attainGoal name="appserver:install-${maven.appserver.fullname}" />
  +      <!-- not installed - simply install and start-->
  +      <j:when test="${context.getVariable('maven.appserver.installed') != 'true'}">
  +        <appserver:install />
  +        <appserver:start />
         </j:when>
  +
         <!-- installed and stopped -->
  -      <j:when
  -        test="${maven.appserver.installed and !maven.appserver.started}">
  -        <attainGoal name="appserver:reinstall" />
  +      <j:when test="${context.getVariable('maven.appserver.installed') == 'true' and context.getVariable('maven.appserver.started') != 'true'}">
  +        <appserver:reinstall />
  +        <appserver:start />
         </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 test="${context.getVariable('maven.appserver.installedAndStarted') == 'true'}">
  +        <appserver:reinstall />
  +        <appserver:restart />
         </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>
  +        <ant:fail message=" ">
  + --------------------------------------------------------------------------
  + | Plugin Runtime Error                                                   |
  + --------------------------------------------------------------------------
  +
  + Maven could not determine the current status for your <j:expr value="${maven.appserver.fullname}"/>
  + instance. This was an unexpected runtime error that should be reported.
  +
  + --------------------------------------------------------------------------
  +        </ant:fail>
         </j:otherwise>
       </j:choose>
   
     </goal>
   
  +
  +  <!--==================================================================-->
  +  <!-- I N S T A L L                                                    -->
  +  <!--==================================================================-->
  +  <goal name="appserver:install" prereqs="appserver:init"
  +    description="Install a appserver instance">
  +
  +    <!-- all goals will need a appserver dir -->
  +    <ant:mkdir dir="${maven.appserver.dir}" />
  +    <ant:mkdir dir="${maven.appserver.root}" />
  +
  +    <j:choose>
  +      <!-- not installed - simply install -->
  +      <j:when test="${context.getVariable('maven.appserver.installed') != 'true'}">
  +        <appserver:install />
  +      </j:when>
  +      <j:otherwise>
  +        <ant:echo message=" ">
  + --------------------------------------------------------------------------
  + | Plugin Warning                                                         |
  + --------------------------------------------------------------------------
  +
  + Appserver already installed
  +
  + You may try
  + o appserver:reinstall
  +
  + --------------------------------------------------------------------------
  +        </ant:echo>
  +      </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                           -->
  +  <!-- be custom implementations of reinstall needed                    -->
  +  <!-- by default we just call the install goal again                   -->
     <goal name="appserver:reinstall"
  -    prereqs="appserver:init, appserver:install-${maven.appserver.fullname}"
  -    description="Reinstall a appserver instance" >
  +    prereqs="appserver:init" description="Reinstall a appserver instance" >
  +
  +    <j:choose>
  +      <j:when test="${context.getVariable('maven.appserver.installed') != 'true'}">
  +        <ant:echo message=" ">
  + --------------------------------------------------------------------------
  + | Plugin Warning                                                         |
  + --------------------------------------------------------------------------
  +
  + Appserver not yet installed
  +
  + You may try
  + o appserver:install
  +
  + --------------------------------------------------------------------------
  +        </ant:echo>
  +      </j:when>
  +      <j:otherwise>
  +        <appserver:reinstall />
  +      </j:otherwise>
  +    </j:choose>
     </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" />
  +    description="Start a appserver instance">
   
  -    <!-- 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 ...
  +    <j:choose>
  +      <j:when test="${context.getVariable('maven.appserver.installed') != 'true'}">
  +        <ant:echo message=" ">
  + --------------------------------------------------------------------------
  + | Plugin Warning                                                         |
  + --------------------------------------------------------------------------
  +
  + Appserver not yet installed
  +
  + You may try
  + o appserver:install appserver:start
  + o appserver:cycle
   
  -      </log:info>
  -      <attainGoal name="appserver:install" />
  -    </j:if>
  + --------------------------------------------------------------------------
  +        </ant:echo>
  +      </j:when>
  +      <j:when test="${context.getVariable('maven.appserver.started') == 'true'}">
  +        <ant:echo message=" ">
  + --------------------------------------------------------------------------
  + | Plugin Warning                                                         |
  + --------------------------------------------------------------------------
  +
  + Appserver already started
  +
  + You may try
  + o appserver:restart
  + o appserver:cycle
   
  -    <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>
  + --------------------------------------------------------------------------
  +        </ant:echo>
         </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 test="${context.getVariable('maven.appserver.installed') == 'true'}">
  +        <appserver:start />
         </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}" /> -->
  +    prereqs="appserver:init"
  +    description="Restart a appserver instance">
  +
  +    <j:choose>
  +      <j:when test="${context.getVariable('maven.appserver.started') == 'true'}">
  +        <appserver:restart />
  +      </j:when>
  +      <j:otherwise>
  +        <ant:echo message=" ">
  + --------------------------------------------------------------------------
  + | Plugin Warning                                                         |
  + --------------------------------------------------------------------------
  +
  + Appserver not yet started
  +
  + You may try
  + o appserver:start
  + o appserver:cycle
  +
  + --------------------------------------------------------------------------
  +        </ant:echo>
  +      </j:otherwise>
  +    </j:choose>
     </goal>
   
  +
     <!--==================================================================-->
     <!-- S T O P                                                          -->
     <!--==================================================================-->
     <goal name="appserver:stop" prereqs="appserver:init"
  -    description="Stop a appserver instance if started">
  +    description="Stop a appserver instance">
   
       <j:choose>
  -      <j:when test="${maven.appserver.installed and maven.appserver.started}">
  -        <attainGoal
  -          name="appserver:stop-${maven.appserver.fullname}" />
  +      <j:when test="${context.getVariable('maven.appserver.installedAndStarted') == 'true'}">
  +        <appserver:stop />
         </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>
  +        <log:info trim="false">
  +==> Appserver already stopped!
  +        </log:info>
         </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:choose>
   
  -    <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}"/>
  +      <!-- started and installed -->
  +      <j:when test="${context.getVariable('maven.appserver.installedAndStarted') == 'true'}">
  +        <appserver:stop />
  +        <appserver:clean />
  +      </j:when>
   
  -    </j:if>
  +      <!-- installed not started -->
  +      <j:when test="${context.getVariable('maven.appserver.installed') == 'true'}">
  +        <appserver:clean />
  +      </j:when>
   
  -    <j:if test="${!maven.appserver.installed}">
  -      <log:info>
  -        The <j:expr value="${maven.appserver.fullname}"/>
  -        appserver instance is already cleaned!
  -      </log:info>
  -    </j:if>
  +      <!-- already cleaned -->
  +      <j:otherwise>
  +        <log:info trim="false">
  +==> Appserver already cleaned!
  +        </log:info>
  +      </j:otherwise>
   
  +    </j:choose>
     </goal>
   
   </project>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org