--- [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]>

Reply via email to