o making maven.webserver.test.url optional

o adding a bunch of FIXME notes about the next release of werkz which hopefully contains the already implemented session attribute on attaingoal. In the meantime the ability to effectively use postGoal and preGoals  on the primary goals of the plugin is very limited.

If someone is reading this that has the ability to upload the latest werkz which already contains the above feature, please upload to ibiblio, that would be great.

o improved logging in the case where only a socket is used


git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@113209 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
plynch
2003-03-27 20:50:44 +00:00
parent c78da219dc
commit 58071bcf0f

View File

@@ -138,9 +138,6 @@
<j:if test="${context.getVariable('maven.webserver.test.socket') == null}">
<exception:requiredPropertyMissing propname="maven.webserver.test.socket" />
</j:if>
<j:if test="${context.getVariable('maven.webserver.test.url') == null}">
<exception:requiredPropertyMissing propname="maven.webserver.test.url" />
</j:if>
<j:if test="${context.getVariable('maven.webserver.root') == null}">
<exception:requiredPropertyMissing propname="maven.webserver.root" />
</j:if>
@@ -157,23 +154,6 @@
propvalue="${maven.webserver.conf.dir}" />
</j:if>
<!-- a flag to see if the webserver is started -->
<ant:condition property="maven.webserver.started">
<ant:and>
<ant:socket server="${maven.webserver.host}"
port="${maven.webserver.test.socket}" />
<ant:http url="${maven.webserver.test.url}" />
</ant:and>
</ant:condition>
<!-- a flag to see if the webserver is installed -->
<ant:condition property="maven.webserver.installed">
<ant:and>
<ant:available file="${maven.webserver.root}" type="dir" />
<ant:available file="${maven.webserver.dir}" type="dir" />
</ant:and>
</ant:condition>
<!-- convert all path related properties to their os equivalent -->
<ant:property name="maven.webserver.home.path"
location="${maven.webserver.home}" />
@@ -212,6 +192,30 @@
value="${maven.webserver.root.path}" />
</ant:filterset>
<!-- a flag to see if the webserver is started -->
<ant:condition property="maven.webserver.started">
<ant:and>
<ant:socket server="${maven.webserver.host}"
port="${maven.webserver.test.socket}" />
<!-- only use the test url if defined, else just use the socket -->
<j:if test="${context.getVariable('maven.webserver.test.url') != null}">
<ant:http url="${maven.webserver.test.url}" />
</j:if>
</ant:and>
</ant:condition>
<!-- a flag to see if the webserver is installed -->
<ant:condition property="maven.webserver.installed">
<ant:and>
<ant:available file="${maven.webserver.root}" type="dir" />
<ant:available file="${maven.webserver.dir}" type="dir" />
</ant:and>
</ant:condition>
<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>
<j:set var="maven.webserver.installed.msg">
<j:choose>
<j:when test="${maven.webserver.installed}">installed</j:when>
@@ -226,13 +230,18 @@
</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>
<j:if test="${context.getVariable('maven.webserver.test.url') != null}">
<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>
</j:if>
<j:if test="${context.getVariable('maven.webserver.test.url') == null}">
<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}"/> using socket <j:expr value="${maven.webserver.port.http}"/> on host <j:expr value="${maven.webserver.host}"/>.
</log:info>
</j:if>
<!-- DEFINE CORE FUNCTIONALITY -->
<define:taglib uri="http://www.maven.org/plugin/webserver">
@@ -280,10 +289,24 @@ Maven has determined your <j:expr value="${maven.webserver.fullname}"/> webserve
</define:tag>
<define:tag name="stop">
<log:info trim="false">
<j:choose>
<j:when test="${context.getVariable('maven.webserver.installedAndStarted') == 'true'}">
<log:info trim="false">
<j:expr value="${maven.webserver.fullname}" />: Stopping webserver instance ...
</log:info>
<attainGoal name="webserver:stop-${maven.webserver.fullname}" />
</log:info>
<attainGoal name="webserver:stop-${maven.webserver.fullname}" />
</j:when>
<!-- already stopped -->
<j:otherwise>
<log:info trim="false">
<j:expr value="${maven.webserver.fullname}"/>: Already stopped!
</log:info>
</j:otherwise>
</j:choose>
</define:tag>
</define:taglib>
@@ -306,11 +329,13 @@ Maven has determined your <j:expr value="${maven.webserver.fullname}"/> webserve
</j:when>
<!-- installed and stopped -->
<j:when test="${context.getVariable('maven.webserver.installed') == 'true' and context.getVariable('maven.webserver.started') != 'true'}">
<!-- FIXME - another candidate for the attainGoal session attribute -->
<webserver:reinstall />
</j:when>
<!-- installed and started -->
<j:when test="${context.getVariable('maven.webserver.installedAndStarted') == 'true'}">
<attain>
<!-- FIXME - another candidate for the attainGoal session attribute -->
<webserver:stop />
<webserver:reinstall />
<webserver:start />
@@ -355,11 +380,21 @@ Maven has determined your <j:expr value="${maven.webserver.fullname}"/> webserve
<j:choose>
<j:when test="${context.getVariable('maven.webserver.installed') != 'true'}">
<attain>
<!-- Use the next line when werkz beta 9 is pushed which should
contain a session attribute on the attainGoal tag. Using attainGoal
here allows the user to write post and pre goals against the
webserver:install goal, the likely spot where they will copy webserver
files to the webserver installation -->
<!-- <attainGoal
session="${context.getVariable('maven.session.global', 'parent')}"
name="webserver:install" /> -->
<!-- The next line will do until the next werkz is pushed and above line is uncommented-->
<webserver:install />
<webserver:start />
</attain>
</j:when>
<j:when test="${context.getVariable('maven.webserver.installedAndStarted') == 'true'}">
<!-- FIXME - another candidate for the session attribute on attainGoal -->
<webserver:restart />
</j:when>
<j:when test="${context.getVariable('maven.webserver.installed') == 'true'}">
@@ -384,10 +419,8 @@ Maven has determined your <j:expr value="${maven.webserver.fullname}"/> webserve
<!--==================================================================-->
<goal name="webserver:stop" prereqs="webserver:init"
description="Stop a webserver instance if started">
<j:if test="${context.getVariable('maven.webserver.installedAndStarted') == 'true'}">
<webserver:stop />
</j:if>
</goal>
<webserver:stop />
</goal>
<!--==================================================================-->
<!-- C L E A N -->
@@ -399,7 +432,9 @@ Maven has determined your <j:expr value="${maven.webserver.fullname}"/> webserve
<!-- started and installed -->
<j:when test="${context.getVariable('maven.webserver.installedAndStarted') == 'true'}">
<!-- FIXME - another candidate for attainGoal session -->
<webserver:stop />
<webserver:clean />
</j:when>