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/03/27 18:29:26 UTC

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

plynch      2003/03/27 09:29:25

  Modified:    src/plugins-build/webserver plugin.jelly
  Log:
  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
  
  Revision  Changes    Path
  1.11      +96 -71    maven/src/plugins-build/webserver/plugin.jelly
  
  Index: plugin.jelly
  ===================================================================
  RCS file: /home/cvs/maven/src/plugins-build/webserver/plugin.jelly,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- plugin.jelly	2 Feb 2003 07:39:26 -0000	1.10
  +++ plugin.jelly	27 Mar 2003 17:29:25 -0000	1.11
  @@ -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 @@
     <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 @@
     <!--==================================================================-->
     <!-- 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 @@
     <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 @@
     <!--==================================================================-->
     <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 @@
     <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:choose>
   
  -    <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>
  +      <!-- started and installed -->
  +      <j:when test="${context.getVariable('maven.webserver.installedAndStarted') == 'true'}">
  +        <webserver:stop />
  +        <webserver:clean />
  +      </j:when>
   
  -    <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}"/>
  +      <!-- 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>
  
  
  

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