You are viewing a plain text version of this content. The canonical link for it is here.
Posted to svn@forrest.apache.org by rg...@apache.org on 2005/01/19 00:50:06 UTC

svn commit: r125572 - /forrest/trunk/tools/eclipse/src/org/apache/forrest/eclipse/job/ForrestRunner.java

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;
 	}
 }