--- [EMAIL PROTECTED] wrote: > vmassol 02/05/03 12:44:38 > > Modified: > anttasks/src/java/org/apache/cactus/ant > StartServerHelper.java > documentation/docs/xdocs changes.xml > Log: > Improved debugging of <code>runservertests</code> > task. Simply run Ant in debug mode (<code>ant -debug > xxx</code>) and the task will print information. > Very useful to know why the > <code>runservertests</code> task seems to hang after > starting your server ... > > Revision Changes Path > 1.5 +59 -44 > jakarta-cactus/anttasks/src/java/org/apache/cactus/ant/StartServerHelper.java > > Index: StartServerHelper.java > > =================================================================== > RCS file: > /home/cvs/jakarta-cactus/anttasks/src/java/org/apache/cactus/ant/StartServerHelper.java,v > retrieving revision 1.4 > retrieving revision 1.5 > diff -u -r1.4 -r1.5 > --- StartServerHelper.java 14 Apr 2002 16:34:15 > -0000 1.4 > +++ StartServerHelper.java 3 May 2002 19:44:38 > -0000 1.5 > @@ -58,6 +58,9 @@ > > import java.io.InputStream; > import java.io.IOException; > +import java.io.PrintWriter; > +import java.io.ByteArrayOutputStream; > +import java.io.PrintStream; > import java.net.HttpURLConnection; > import java.net.MalformedURLException; > import java.net.URL; > @@ -79,7 +82,7 @@ > * > * @author <a > href="mailto:[EMAIL PROTECTED]">Vincent Massol</a> > * > - * @version $Id: StartServerHelper.java,v 1.4 > 2002/04/14 16:34:15 vmassol Exp $ > + * @version $Id: StartServerHelper.java,v 1.5 > 2002/05/03 19:44:38 vmassol Exp $ > */ > public class StartServerHelper implements > Runnable > { > @@ -137,26 +140,14 @@ > > // Try connecting in case the server is > already running. If so, does > // nothing > - try { > - > - HttpURLConnection connection = > - (HttpURLConnection) > this.testURL.openConnection(); > - connection.connect(); > - readFully(connection); > - connection.disconnect(); > - > + if (isURLCallable()) { > // Server is already running. Record > this information so that we > // don't stop it afterwards. > this.isServerAlreadyStarted = true; > - > - this.task.log("Server is already > running", Project.MSG_VERBOSE); > - > + this.task.log("Server is already > running", Project.MSG_DEBUG); > return; > - > - } catch (IOException e) { > - // An error occurred. It just means > the server is not running. Do > - // nothing > - this.task.log("Server is not > running", Project.MSG_VERBOSE); > + } else { > + this.task.log("Server is not > running", Project.MSG_DEBUG); > } > > // Call the target that starts the > server, in another thread. The called > @@ -167,53 +158,75 @@ > > // Wait a few ms more (just to make sure > the servlet engine is > // ready to accept connections) > - try { > - Thread.sleep(1000); > - } catch (InterruptedException e) { > - throw new > BuildException("Interruption during sleep", e); > - } > + sleep(1000); > > // Continuously try calling the test URL > until it succeeds > while (true) { > > - this.task.log("Checking if server is > up ...", Project.MSG_VERBOSE); > - > - try { > - HttpURLConnection connection = > - (HttpURLConnection) > this.testURL.openConnection(); > - connection.connect(); > - readFully(connection); > - connection.disconnect(); > - } catch (IOException e) { > - > - this.task.log("... got error : " > + e.getMessage(), > - Project.MSG_VERBOSE); > - > - try { > - Thread.sleep(500); > - } catch (InterruptedException ee) > { > - throw new > BuildException("Interruption during sleep", ee); > - } > + this.task.log("Checking if server is > up ...", Project.MSG_DEBUG); > > + if (!isURLCallable()) { > + sleep(500); > continue; > } > > - this.task.log("Server is up !", > Project.MSG_VERBOSE); > + this.task.log("Server is up !", > Project.MSG_DEBUG); > > break; > } > > // Wait a few ms more (just to be sure !) > + sleep(500); > + > + this.task.log("Server started", > Project.MSG_DEBUG); > + > + // We're done ... Ant will continue > processing other tasks > + } > + > + /** > + * Sleeps n milliseconds. > + * > + * @param theMs the number of milliseconds to > wait > + * @throws BuildException if the sleeping > thread is interrupted > + */ > + private void sleep(int theMs) throws > BuildException > + { > try { > - Thread.sleep(500); > + Thread.sleep(theMs); > } catch (InterruptedException e) { > throw new > BuildException("Interruption during sleep", e); > } > + } > > - this.task.log("Server started", > Project.MSG_VERBOSE); > + /** > + * @return true if the test URL could be > called without error or false > + * otherwise > + */ > + private boolean isURLCallable() > + { > + boolean isURLCallable = false; > > - // We're done ... Ant will continue > processing other tasks > + try { > + HttpURLConnection connection = > + (HttpURLConnection) > this.testURL.openConnection(); > + connection.connect(); > + readFully(connection); > + connection.disconnect(); > + isURLCallable = true; > + } catch (IOException e) { > === message truncated ===
__________________________________________________ Do You Yahoo!? Yahoo! Health - your guide to health and wellness http://health.yahoo.com -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
