Author: rgardler
Date: Tue Jan 18 15:50:03 2005
New Revision: 125572

URL: http://svn.apache.org/viewcvs?view=rev&rev=125572
Log:
open a web browser when server starts OK
Modified:
   
forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestRunner.java

Modified: 
forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestRunner.java
Url: 
http://svn.apache.org/viewcvs/forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestRunner.java?view=diff&rev=125572&p1=forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestRunner.java&r1=125571&p2=forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestRunner.java&r2=125572
==============================================================================
--- 
forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestRunner.java
   (original)
+++ 
forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestRunner.java
   Tue Jan 18 15:50:03 2005
@@ -17,6 +17,8 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.Hashtable;
@@ -39,6 +41,8 @@
 import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
 import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
 import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.webbrowser.WebBrowser;
+import org.eclipse.webbrowser.WebBrowserEditorInput;
 
 
 /**
@@ -53,6 +57,12 @@
        private static final int EXCEPTION_UNABLE_TO_START = 2010;
        
        private String workingDir;
+
+       private static final int CORE_EXCEPTION = 100;
+
+       private static final int IO_EXCEPTION = 101;
+
+       private static final int BROWSER_ERROR = 200;
        
        /**
         * Create a Forrest runner that will run a Jetty server on a given 
directory
@@ -159,14 +169,42 @@
                           ForrestManager.setServerLaunch( 
jettyConfig.launch(ILaunchManager.RUN_MODE, monitor));
                        } catch (CoreException e) {
                                logger.error("run(IProgressMonitor)", e);
+                               return new Status(Status.ERROR, 
ForrestPlugin.ID, CORE_EXCEPTION, "Unable to start Jetty server", e);
                        } catch (IOException e) {
                                logger.error("run(IProgressMonitor)", e);
+                               return new 
Status(Status.ERROR,ForrestPlugin.ID, IO_EXCEPTION, "Unable to start Jetty 
server", e);
                        }
                }
                
+               if ( ! openBrowser(monitor)) {
+                       status = new Status(Status.WARNING, ForrestPlugin.ID, 
BROWSER_ERROR, "Unable to open browser", null);
+               }
+               
                if (logger.isDebugEnabled()) {
                        logger.debug("run(IProgressMonitor) - end");
                }
                return status;
+       }
+
+       /**
+        * Open a web browser on the index page.
+        * @param monitor - the progress monitor for this job
+        * @return boolean - true if browser opened OK
+        */
+       private boolean openBrowser(IProgressMonitor monitor) {
+
+               monitor.subTask("Open index page");
+               URL url;
+               try {
+                       url = new URL("http://localhost:8888";);
+                       WebBrowserEditorInput browserInput = new 
WebBrowserEditorInput(url, WebBrowserEditorInput.SHOW_ALL);
+                       WebBrowser.openURL(browserInput);
+               } catch (MalformedURLException e1) {
+                       // Should never be thrown
+                       logger.error("openBrowser(IProgressMonitor)", e1);
+                       return false;
+               }               
+               monitor.worked(3);
+               return true;
        }
 }

Reply via email to