From c397a92e8d15978852d8f08af7fa0ea992c59ca4 Mon Sep 17 00:00:00 2001 From: Jani Laakso Date: Mon, 5 Nov 2007 09:36:16 +0000 Subject: [PATCH] Fixing / refactoring launch files. Removed unneccessary launch file (DesktoP) svn changeset:2709/svn branch:trunk --- .../toolkit/launcher/ITMillDesktopLaunch.java | 190 ------------------ .../toolkit/launcher/ITMillHostedLaunch.java | 57 ------ ...unch.java => ITMillToolkitHostedMode.java} | 32 ++- ...dLaunch.java => ITMillToolkitWebMode.java} | 25 ++- .../launcher/{ => util}/BrowserLauncher.java | 2 +- 5 files changed, 29 insertions(+), 277 deletions(-) delete mode 100644 src/com/itmill/toolkit/launcher/ITMillDesktopLaunch.java delete mode 100644 src/com/itmill/toolkit/launcher/ITMillHostedLaunch.java rename src/com/itmill/toolkit/launcher/{ITMillWebModeLaunch.java => ITMillToolkitHostedMode.java} (80%) rename src/com/itmill/toolkit/launcher/{ITMillStandardLaunch.java => ITMillToolkitWebMode.java} (83%) rename src/com/itmill/toolkit/launcher/{ => util}/BrowserLauncher.java (92%) diff --git a/src/com/itmill/toolkit/launcher/ITMillDesktopLaunch.java b/src/com/itmill/toolkit/launcher/ITMillDesktopLaunch.java deleted file mode 100644 index 396ea409c0..0000000000 --- a/src/com/itmill/toolkit/launcher/ITMillDesktopLaunch.java +++ /dev/null @@ -1,190 +0,0 @@ -package com.itmill.toolkit.launcher; - -import java.awt.FlowLayout; -import java.awt.Rectangle; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.Map; - -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; - -/** - * This class starts servlet container and opens a simple control dialog. - * - */ -public class ITMillDesktopLaunch { - - public static void main(String[] args) { - - Map serverArgs = ITMillWebModeLaunch.parseArguments(args); - boolean deployed = false; - try { - // Default deployment: embedded.war - deployed = deployEmbeddedWarfile(serverArgs); - } catch (IOException e1) { - e1.printStackTrace(); - deployed = false; - } - - // Check if deployment was succesful - if (!deployed && !serverArgs.containsKey("webroot")) { - // Default deployment failed, try other means - if (new File("WebContent").exists()) { - // Using WebContent directory as webroot - serverArgs.put("webroot", "WebContent"); - } else { - System.err.print("Failed to deploy Toolkit application. " - + "Please add --webroot parameter. Exiting."); - return; - } - } - - // Start the Winstone servlet container - String url = ITMillWebModeLaunch.runServer(serverArgs); - - // Open browser into application URL - if (url != null) { - BrowserLauncher.openBrowser(url); - } - - // Open control dialog - if (url != null) { - openServerControlDialog(url); - } - - } - - /** - * Open a control dialog for embedded server. - * - * @param applicationUrl - * Application URL - */ - private static void openServerControlDialog(final String applicationUrl) { - - // Main frame - final String title = "Desktop Server"; - final JFrame frame = new JFrame(title); - frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); - - // Create link label and listen mouse click - final JLabel link = new JLabel("" - + "
Desktop Server is running at:
" + "" + applicationUrl - + "
Close this window to shutdown the server.
" - + ""); - link.addMouseListener(new MouseAdapter() { - public void mouseClicked(MouseEvent e) { - BrowserLauncher.openBrowser(applicationUrl); - } - }); - - // Create a panel and add components to it. - final JPanel contentPane = new JPanel(new FlowLayout()); - frame.setContentPane(contentPane); - contentPane.add(link); - - // Close confirmation - final JLabel question = new JLabel( - "This will stop the server. Are you sure?"); - final JButton okButton = new JButton("OK"); - final JButton cancelButton = new JButton("Cancel"); - - // List for close verify buttons - ActionListener buttonListener = new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (e.getSource() == okButton) { - System.exit(0); - } else { - Rectangle bounds = frame.getBounds(); - frame.setTitle(title); - contentPane.removeAll(); - contentPane.add(link); - contentPane.setBounds(bounds); - frame.setBounds(bounds); - frame.setVisible(true); - frame.repaint(); - } - } - }; - okButton.addActionListener(buttonListener); - cancelButton.addActionListener(buttonListener); - - frame.addWindowListener(new WindowAdapter() { - public void windowClosing(WindowEvent e) { - Rectangle bounds = frame.getBounds(); - frame.setTitle("Confirm close"); - contentPane.removeAll(); - contentPane.add(question); - contentPane.add(okButton); - contentPane.add(cancelButton); - frame.setBounds(bounds); - frame.setVisible(true); - frame.repaint(); - } - }); - - // Position the window nicely - java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit() - .getScreenSize(); - int w = 270; - int h = 95; - int margin = 20; - frame.setBounds(new Rectangle(screenSize.width - w - margin, - screenSize.height - h - margin * 2, w, h)); - frame.toFront(); - frame.setVisible(true); - } - - /** - * Deploy file named "embedded.war" from classpath (inside jar file). - * - * @param args - * @return - * @throws IOException - */ - protected static boolean deployEmbeddedWarfile(Map args) throws IOException { - String embeddedWarfileName = "/embedded.war"; - InputStream embeddedWarfile = ITMillDesktopLaunch.class - .getResourceAsStream(embeddedWarfileName); - if (embeddedWarfile != null) { - File tempWarfile = File.createTempFile("embedded", ".war") - .getAbsoluteFile(); - tempWarfile.getParentFile().mkdirs(); - tempWarfile.deleteOnExit(); - - String embeddedWebroot = "winstoneEmbeddedWAR"; - File tempWebroot = new File(tempWarfile.getParentFile(), - embeddedWebroot); - tempWebroot.mkdirs(); - - OutputStream out = new FileOutputStream(tempWarfile, true); - int read = 0; - byte buffer[] = new byte[2048]; - while ((read = embeddedWarfile.read(buffer)) != -1) { - out.write(buffer, 0, read); - } - out.close(); - embeddedWarfile.close(); - - args.put("warfile", tempWarfile.getAbsolutePath()); - args.put("webroot", tempWebroot.getAbsolutePath()); - args.remove("webappsDir"); - args.remove("hostsDir"); - return true; - } - return false; - } -} diff --git a/src/com/itmill/toolkit/launcher/ITMillHostedLaunch.java b/src/com/itmill/toolkit/launcher/ITMillHostedLaunch.java deleted file mode 100644 index a94c6f8df0..0000000000 --- a/src/com/itmill/toolkit/launcher/ITMillHostedLaunch.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.itmill.toolkit.launcher; - -import java.util.Map; - -import com.google.gwt.dev.GWTShell; - -/** - * Class for starting Google Web Toolkit (GWT) Hosted mode with without embedded - * tomcat (-noserver). Instead of tomcat we use external servlet container - * (Jetty). - * - * NOTE: you must edit Eclipse launcher and following parameters there. - * - * For program arguments: - * - * -noserver -out WebContent/ITMILL/widgetsets http://localhost:8080/ - * - * - * And for VM arguments: - * - * -XstartOnFirstThread -Xms256M -Xmx512M - * - * TODO: how to add *.launch files automatically when importing Eclipse - * workspace? - * - */ -public class ITMillHostedLaunch extends ITMillStandardLaunch { - - private final static String serverPort = "8080"; - - /** - * Main function for staring GWTShell and running Jetty. - * - * Command line Arguments are passed through to Jetty, see runServer method - * for options. - * - * @param args - */ - public static void main(String[] args) { - - // Pass-through of arguments for Jetty - Map serverArgs = parseArguments(args); - - String url = runServer(serverArgs); - - // Start GWTShell - - GWTShell.main(args); - - // Open browser into application URL - if (url != null) { - BrowserLauncher.openBrowser(url); - } - - } - -} diff --git a/src/com/itmill/toolkit/launcher/ITMillWebModeLaunch.java b/src/com/itmill/toolkit/launcher/ITMillToolkitHostedMode.java similarity index 80% rename from src/com/itmill/toolkit/launcher/ITMillWebModeLaunch.java rename to src/com/itmill/toolkit/launcher/ITMillToolkitHostedMode.java index e689652dde..fe9360d2f5 100644 --- a/src/com/itmill/toolkit/launcher/ITMillWebModeLaunch.java +++ b/src/com/itmill/toolkit/launcher/ITMillToolkitHostedMode.java @@ -7,15 +7,16 @@ import org.mortbay.jetty.Connector; import org.mortbay.jetty.Server; import org.mortbay.jetty.nio.SelectChannelConnector; import org.mortbay.jetty.webapp.WebAppContext; -import org.mortbay.thread.BoundedThreadPool; + +import com.google.gwt.dev.GWTShell; /** * Class for running Jetty servlet container within Eclipse project. * */ -public class ITMillWebModeLaunch { +public class ITMillToolkitHostedMode { - private final static String serverPort = "8080"; + private final static String serverPort = "8888"; /** * Main function for running Jetty. @@ -27,15 +28,13 @@ public class ITMillWebModeLaunch { */ public static void main(String[] args) { - // Pass-through of arguments for Jetty - Map serverArgs = parseArguments(args); - - String url = runServer(serverArgs); + // Start Jetty + System.out.println("Starting Jetty servlet container."); + String url = runServer(new HashMap()); - // Open browser into application URL - if (url != null) { - BrowserLauncher.openBrowser(url); - } + // Start GWT + System.out.println("Starting GWT Hosted Mode browser."); + GWTShell.main(args); } @@ -50,10 +49,9 @@ public class ITMillWebModeLaunch { // Add help for System.out System.out .println("-------------------------------------------------\n" - + "Starting IT Mill Toolkit examples.\n" - + "Please go to http://localhost:" + + "Starting IT Mill Toolkit in GWT Hosted Mode.\n" + + "Running in http://localhost:" + serverPort - + "\nif your web browser is not automatically started." + "\n-------------------------------------------------\n"); // Assign default values for some arguments @@ -87,10 +85,10 @@ public class ITMillWebModeLaunch { // server.setThreadPool(threadPool); Connector connector = new SelectChannelConnector(); - // FIXME httpPort hardcoded to 8080 + // FIXME httpPort hardcoded to 8888 // connector.setPort(Integer.valueOf(serverArgs.get("httpPort") // .toString())); - connector.setPort(8080); + connector.setPort(8888); server.setConnectors(new Connector[] { connector }); WebAppContext webappcontext = new WebAppContext(); @@ -100,8 +98,6 @@ public class ITMillWebModeLaunch { server.setHandler(webappcontext); server.start(); - System.err.println("Started Jetty in " - + (System.currentTimeMillis() - started) + "ms."); } catch (Exception e) { e.printStackTrace(); return null; diff --git a/src/com/itmill/toolkit/launcher/ITMillStandardLaunch.java b/src/com/itmill/toolkit/launcher/ITMillToolkitWebMode.java similarity index 83% rename from src/com/itmill/toolkit/launcher/ITMillStandardLaunch.java rename to src/com/itmill/toolkit/launcher/ITMillToolkitWebMode.java index 41e75ca918..b01f88a131 100644 --- a/src/com/itmill/toolkit/launcher/ITMillStandardLaunch.java +++ b/src/com/itmill/toolkit/launcher/ITMillToolkitWebMode.java @@ -7,15 +7,16 @@ import org.mortbay.jetty.Connector; import org.mortbay.jetty.Server; import org.mortbay.jetty.nio.SelectChannelConnector; import org.mortbay.jetty.webapp.WebAppContext; -import org.mortbay.thread.BoundedThreadPool; + +import com.itmill.toolkit.launcher.util.BrowserLauncher; /** * Class for running Jetty servlet container within Eclipse project. * */ -public class ITMillStandardLaunch { +public class ITMillToolkitWebMode { - private final static String serverPort = "8080"; + private final static String serverPort = "8888"; /** * Main function for running Jetty. @@ -30,9 +31,12 @@ public class ITMillStandardLaunch { // Pass-through of arguments for Jetty Map serverArgs = parseArguments(args); + // Start Jetty + System.out.println("Starting Jetty servlet container."); String url = runServer(serverArgs); - // Open browser into application URL + // Start Browser + System.out.println("Starting Web Browser."); if (url != null) { BrowserLauncher.openBrowser(url); } @@ -50,10 +54,9 @@ public class ITMillStandardLaunch { // Add help for System.out System.out .println("-------------------------------------------------\n" - + "Starting IT Mill Toolkit examples.\n" - + "Please go to http://localhost:" + + "Starting IT Mill Toolkit in Web Mode.\n" + + "Running in http://localhost:" + serverPort - + "\nif your web browser is not automatically started." + "\n-------------------------------------------------\n"); // Assign default values for some arguments @@ -87,10 +90,10 @@ public class ITMillStandardLaunch { // server.setThreadPool(threadPool); Connector connector = new SelectChannelConnector(); - // FIXME httpPort hardcoded to 8080 + // FIXME httpPort hardcoded to 8888 // connector.setPort(Integer.valueOf(serverArgs.get("httpPort") // .toString())); - connector.setPort(8080); + connector.setPort(8888); server.setConnectors(new Connector[] { connector }); WebAppContext webappcontext = new WebAppContext(); @@ -100,8 +103,8 @@ public class ITMillStandardLaunch { server.setHandler(webappcontext); server.start(); - System.err.println("Started Jetty in " - + (System.currentTimeMillis() - started) + "ms."); + // System.err.println("Started Jetty in " + // + (System.currentTimeMillis() - started) + "ms."); } catch (Exception e) { e.printStackTrace(); return null; diff --git a/src/com/itmill/toolkit/launcher/BrowserLauncher.java b/src/com/itmill/toolkit/launcher/util/BrowserLauncher.java similarity index 92% rename from src/com/itmill/toolkit/launcher/BrowserLauncher.java rename to src/com/itmill/toolkit/launcher/util/BrowserLauncher.java index 082f93e152..06870ce7e2 100644 --- a/src/com/itmill/toolkit/launcher/BrowserLauncher.java +++ b/src/com/itmill/toolkit/launcher/util/BrowserLauncher.java @@ -1,4 +1,4 @@ -package com.itmill.toolkit.launcher; +package com.itmill.toolkit.launcher.util; import java.io.IOException; -- 2.39.5