diff options
author | Jani Laakso <jani.laakso@itmill.com> | 2007-11-05 09:36:16 +0000 |
---|---|---|
committer | Jani Laakso <jani.laakso@itmill.com> | 2007-11-05 09:36:16 +0000 |
commit | c397a92e8d15978852d8f08af7fa0ea992c59ca4 (patch) | |
tree | d5b993dccc2b4a2541d915876bfce3e70ec816e8 | |
parent | 9d0fae273abda4ad47c2ff1999d4b530bcc1b208 (diff) | |
download | vaadin-framework-c397a92e8d15978852d8f08af7fa0ea992c59ca4.tar.gz vaadin-framework-c397a92e8d15978852d8f08af7fa0ea992c59ca4.zip |
Fixing / refactoring launch files. Removed unneccessary launch file (DesktoP)
svn changeset:2709/svn branch:trunk
-rw-r--r-- | src/com/itmill/toolkit/launcher/ITMillDesktopLaunch.java | 190 | ||||
-rw-r--r-- | src/com/itmill/toolkit/launcher/ITMillHostedLaunch.java | 57 | ||||
-rw-r--r-- | src/com/itmill/toolkit/launcher/ITMillToolkitHostedMode.java (renamed from src/com/itmill/toolkit/launcher/ITMillWebModeLaunch.java) | 32 | ||||
-rw-r--r-- | src/com/itmill/toolkit/launcher/ITMillToolkitWebMode.java (renamed from src/com/itmill/toolkit/launcher/ITMillStandardLaunch.java) | 25 | ||||
-rw-r--r-- | src/com/itmill/toolkit/launcher/util/BrowserLauncher.java (renamed from src/com/itmill/toolkit/launcher/BrowserLauncher.java) | 2 |
5 files changed, 29 insertions, 277 deletions
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("<html>"
- + "<center>Desktop Server is running at: <br>" + "<a href=\""
- + applicationUrl + "\">" + applicationUrl
- + "</a><br>Close this window to shutdown the server.</center>"
- + "</html>");
- 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 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 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 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;
|