diff -w -u /cygdrive/d/development/java/tomcat_tasks/src/AbstractCatalinaTask.java /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/AbstractCatalinaTask.java --- /cygdrive/d/development/java/tomcat_tasks/src/AbstractCatalinaTask.java 2002-06-25 19:53:12.000000000 +0200 +++ /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/AbstractCatalinaTask.java 2002-06-26 01:10:24.000000000 +0200 @@ -69,12 +69,12 @@ import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; + import org.apache.catalina.util.Base64; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; - /** * Abstract base class for Ant tasks that interact with the * Manager web application for dynamically deploying and @@ -136,6 +136,19 @@ } + /** + * global flag indicating wether to throw buildException on error or not + */ + protected boolean failonerror = true; + + public boolean getFailonerror() { + return (this.failonerror); + } + + public void setFailonerror(boolean failonerror) { + this.failonerror = failonerror; + } + // --------------------------------------------------------- Public Methods @@ -149,7 +162,7 @@ public void execute() throws BuildException { if ((username == null) || (password == null) || (url == null)) { - throw new BuildException + if(failonerror) throw new BuildException ("Must specify all of 'username', 'password', and 'url'"); } @@ -249,6 +262,7 @@ StringBuffer buff = new StringBuffer(); String error = null; boolean first = true; + int lastChar = 0; while (true) { int ch = reader.read(); if (ch < 0) { @@ -256,26 +270,36 @@ } else if ((ch == '\r') || (ch == '\n')) { String line = buff.toString(); buff.setLength(0); - log(line, Project.MSG_INFO); + + int logLevel = Project.MSG_INFO; if (first) { - if (!line.startsWith("OK -")) { + if (line.startsWith("FAIL -")) { error = line; + logLevel = Project.MSG_ERR; + } else { + logLevel = Project.MSG_INFO; } first = false; } + + // log only if its not allready logged on first linefeed char + // (win32 issue because of 2char linefeed - prevents empty log lines) + if (!(ch == '\n' && lastChar == '\r')) log(line, logLevel); } else { buff.append((char) ch); } + lastChar = ch; } if (buff.length() > 0) { log(buff.toString(), Project.MSG_INFO); } if (error != null) { + if (failonerror) throw new BuildException(error); } } catch (Throwable t) { - throw new BuildException(t); + if(failonerror) throw new BuildException(t); } finally { if (reader != null) { try { diff -w -u /cygdrive/d/development/java/tomcat_tasks/src/DeployTask.java /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/DeployTask.java --- /cygdrive/d/development/java/tomcat_tasks/src/DeployTask.java 2002-06-25 19:53:20.000000000 +0200 +++ /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/DeployTask.java 2002-06-25 23:00:36.000000000 +0200 @@ -126,11 +126,11 @@ super.execute(); if (path == null) { - throw new BuildException + if(failonerror) throw new BuildException ("Must specify 'path' attribute"); } if (war == null) { - throw new BuildException + if(failonerror) throw new BuildException ("Must specify 'war' attribute"); } BufferedInputStream stream = null; @@ -141,7 +141,7 @@ contentLength = conn.getContentLength(); stream = new BufferedInputStream(conn.getInputStream(), 1024); } catch (IOException e) { - throw new BuildException(e); + if(failonerror) throw new BuildException(e); } execute("/deploy?path=" + URLEncoder.encode(this.path), stream, "application/octet-stream", contentLength); diff -w -u /cygdrive/d/development/java/tomcat_tasks/src/InstallTask.java /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/InstallTask.java --- /cygdrive/d/development/java/tomcat_tasks/src/InstallTask.java 2002-06-25 19:53:28.000000000 +0200 +++ /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/InstallTask.java 2002-06-25 22:59:56.000000000 +0200 @@ -137,11 +137,11 @@ super.execute(); if (path == null) { - throw new BuildException + if(failonerror) throw new BuildException ("Must specify 'path' attribute"); } if ((config == null) && (war == null)) { - throw new BuildException + if(failonerror) throw new BuildException ("Must specify at least one of 'config' and 'war'"); } StringBuffer sb = new StringBuffer("/install?path="); diff -w -u /cygdrive/d/development/java/tomcat_tasks/src/ReloadTask.java /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/ReloadTask.java --- /cygdrive/d/development/java/tomcat_tasks/src/ReloadTask.java 2002-06-25 19:53:40.000000000 +0200 +++ /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/ReloadTask.java 2002-06-25 22:59:20.000000000 +0200 @@ -108,8 +108,7 @@ super.execute(); if (path == null) { - throw new BuildException - ("Must specify 'path' attribute"); + if(failonerror) throw new BuildException("Must specify 'path' attribute"); } execute("/reload?path=" + URLEncoder.encode(this.path)); diff -w -u /cygdrive/d/development/java/tomcat_tasks/src/RemoveTask.java /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/RemoveTask.java --- /cygdrive/d/development/java/tomcat_tasks/src/RemoveTask.java 2002-06-25 19:53:48.000000000 +0200 +++ /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/RemoveTask.java 2002-06-25 22:59:00.000000000 +0200 @@ -107,8 +107,7 @@ super.execute(); if (path == null) { - throw new BuildException - ("Must specify 'path' attribute"); + if(failonerror) throw new BuildException("Must specify 'path' attribute"); } execute("/remove?path=" + URLEncoder.encode(this.path)); diff -w -u /cygdrive/d/development/java/tomcat_tasks/src/StartTask.java /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/StartTask.java --- /cygdrive/d/development/java/tomcat_tasks/src/StartTask.java 2002-06-25 19:54:10.000000000 +0200 +++ /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/StartTask.java 2002-06-25 22:56:36.000000000 +0200 @@ -108,8 +108,7 @@ super.execute(); if (path == null) { - throw new BuildException - ("Must specify 'path' attribute"); + if(failonerror) throw new BuildException("Must specify 'path' attribute"); } execute("/start?path=" + URLEncoder.encode(this.path)); diff -w -u /cygdrive/d/development/java/tomcat_tasks/src/StopTask.java /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/StopTask.java --- /cygdrive/d/development/java/tomcat_tasks/src/StopTask.java 2002-06-25 19:54:18.000000000 +0200 +++ /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/StopTask.java 2002-06-25 22:57:36.000000000 +0200 @@ -108,8 +108,7 @@ super.execute(); if (path == null) { - throw new BuildException - ("Must specify 'path' attribute"); + if(failonerror) throw new BuildException("Must specify 'path' attribute"); } execute("/stop?path=" + URLEncoder.encode(this.path)); diff -w -u /cygdrive/d/development/java/tomcat_tasks/src/UndeployTask.java /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/UndeployTask.java --- /cygdrive/d/development/java/tomcat_tasks/src/UndeployTask.java 2002-06-25 19:54:24.000000000 +0200 +++ /cygdrive/d/development/java/projects/tomcat_tasks/src/org/apache/catalina/ant/UndeployTask.java 2002-06-25 22:58:20.000000000 +0200 @@ -107,8 +107,7 @@ super.execute(); if (path == null) { - throw new BuildException - ("Must specify 'path' attribute"); + if(failonerror) throw new BuildException("Must specify 'path' attribute"); } execute("/undeploy?path=" + this.path);