From: Henri Sara Date: Tue, 19 May 2009 08:29:12 +0000 (+0000) Subject: #2645 Rename launcher classes and Eclipse launches X-Git-Tag: 6.7.0.beta1~2839 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=10231abfa38d5a6e6bb87e20161bb6a5055fa3f3;p=vaadin-framework.git #2645 Rename launcher classes and Eclipse launches svn changeset:7874/svn branch:6.0 --- diff --git a/build/build.xml b/build/build.xml index 0876a3801f..c9911da6bd 100644 --- a/build/build.xml +++ b/build/build.xml @@ -510,8 +510,8 @@ - - + + diff --git a/build/package/eclipse-Vaadin Development Server-launch b/build/package/eclipse-Vaadin Development Server-launch new file mode 100644 index 0000000000..655cb13c1e --- /dev/null +++ b/build/package/eclipse-Vaadin Development Server-launch @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/package/eclipse-Vaadin Hosted Mode Browser-launch b/build/package/eclipse-Vaadin Hosted Mode Browser-launch new file mode 100644 index 0000000000..0578393797 --- /dev/null +++ b/build/package/eclipse-Vaadin Hosted Mode Browser-launch @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/package/eclipse-Vaadin Hosted Mode-launch b/build/package/eclipse-Vaadin Hosted Mode-launch deleted file mode 100644 index 7479aeb801..0000000000 --- a/build/package/eclipse-Vaadin Hosted Mode-launch +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/package/eclipse-Vaadin Web Mode-launch b/build/package/eclipse-Vaadin Web Mode-launch deleted file mode 100644 index 30439e501f..0000000000 --- a/build/package/eclipse-Vaadin Web Mode-launch +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/package/linux-readme.txt b/build/package/linux-readme.txt index 76cbccd0d5..cb886ff0a6 100644 --- a/build/package/linux-readme.txt +++ b/build/package/linux-readme.txt @@ -54,8 +54,8 @@ WebContent/doc/example-source WebContent/demo - files required by the demos -IT Mill Toolkit Hosted Mode.launch -IT Mill Toolkit Web Mode.launch +Vaadin Hosted Mode Browser.launch +Vaadin Development Server.launch - launch configurations for Eclipse workspace WebContent/doc/example-source/build-widgetset.xml diff --git a/build/package/mac-readme.txt b/build/package/mac-readme.txt index 062c1dc975..06d1ab76ab 100644 --- a/build/package/mac-readme.txt +++ b/build/package/mac-readme.txt @@ -55,8 +55,8 @@ WebContent/doc/example-source WebContent/demo - files required by the demos -IT Mill Toolkit Hosted Mode.launch -IT Mill Toolkit Web Mode.launch +Vaadin Hosted Mode Browser.launch +Vaadin Development Server.launch - launch configurations for Eclipse workspace WebContent/doc/example-source/build-widgetset.xml diff --git a/build/package/oophm-readme.txt b/build/package/oophm-readme.txt index 97ff2651e0..6a2e2c3843 100644 --- a/build/package/oophm-readme.txt +++ b/build/package/oophm-readme.txt @@ -63,8 +63,8 @@ WebContent/doc/example-source WebContent/demo - files required by the demos -IT Mill Toolkit Hosted Mode.launch -IT Mill Toolkit Web Mode.launch +Vaadin Hosted Mode Browser.launch +Vaadin Development Server.launch - launch configurations for Eclipse workspace WebContent/doc/example-source/build-widgetset.xml diff --git a/build/package/start.bat b/build/package/start.bat index 6399843e1d..c967380a87 100644 --- a/build/package/start.bat +++ b/build/package/start.bat @@ -1 +1 @@ -@java -cp "WebContent\demo\lib\jetty\jetty-6.1.7.jar;WebContent\demo\lib\jetty\jetty-util-6.1.7.jar;WebContent\demo\lib\jetty\servlet-api-2.5-6.1.7.jar;WebContent\WEB-INF\classes;WebContent\WEB-INF\src" com.vaadin.launcher.ITMillToolkitDesktopMode +@java -cp "WebContent\demo\lib\jetty\jetty-6.1.7.jar;WebContent\demo\lib\jetty\jetty-util-6.1.7.jar;WebContent\demo\lib\jetty\servlet-api-2.5-6.1.7.jar;WebContent\WEB-INF\classes;WebContent\WEB-INF\src" com.vaadin.launcher.DemoLauncher diff --git a/build/package/start.sh b/build/package/start.sh index b7faad9be3..d484b131bd 100644 --- a/build/package/start.sh +++ b/build/package/start.sh @@ -4,4 +4,4 @@ if [ "$1" != "" ] ; then cd $1 fi -java -cp WebContent/demo/lib/jetty/jetty-6.1.7.jar:WebContent/demo/lib/jetty/jetty-util-6.1.7.jar:WebContent/demo/lib/jetty/servlet-api-2.5-6.1.7.jar:WebContent/WEB-INF/classes:WebContent/WEB-INF/src com.vaadin.launcher.ITMillToolkitDesktopMode $VAADIN_PARAMETERS +java -cp WebContent/demo/lib/jetty/jetty-6.1.7.jar:WebContent/demo/lib/jetty/jetty-util-6.1.7.jar:WebContent/demo/lib/jetty/servlet-api-2.5-6.1.7.jar:WebContent/WEB-INF/classes:WebContent/WEB-INF/src com.vaadin.launcher.DemoLauncher $VAADIN_PARAMETERS diff --git a/build/package/windows-readme.txt b/build/package/windows-readme.txt index c81df58f85..f6dded8b5a 100644 --- a/build/package/windows-readme.txt +++ b/build/package/windows-readme.txt @@ -54,8 +54,8 @@ WebContent/doc/example-source WebContent/demo - files required by the demos -IT Mill Toolkit Hosted Mode.launch -IT Mill Toolkit Web Mode.launch +Vaadin Hosted Mode Browser.launch +Vaadin Development Server.launch - launch configurations for Eclipse workspace WebContent/doc/example-source/build-widgetset.xml diff --git a/src/com/vaadin/launcher/DemoLauncher.java b/src/com/vaadin/launcher/DemoLauncher.java new file mode 100644 index 0000000000..d52df1f8ae --- /dev/null +++ b/src/com/vaadin/launcher/DemoLauncher.java @@ -0,0 +1,211 @@ +/* +@ITMillApache2LicenseForJavaFiles@ + */ + +package com.vaadin.launcher; + +import java.awt.FlowLayout; +import java.awt.HeadlessException; +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; +import javax.swing.WindowConstants; + +import com.vaadin.launcher.util.BrowserLauncher; + +/** + * This class starts servlet container and opens a simple control dialog. + * + */ +public class DemoLauncher { + + public static void main(String[] args) { + + final Map serverArgs = DevelopmentServerLauncher.parseArguments(args); + boolean deployed = false; + try { + // Default deployment: embedded.war + deployed = deployEmbeddedWarfile(serverArgs); + } catch (final 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 Vaadin application. " + + "Please add --webroot parameter. Exiting."); + return; + } + } + + // Start the Winstone servlet container + final String url = DevelopmentServerLauncher.runServer(serverArgs, + "Demo Server"); + + if (!serverArgs.containsKey("nogui") && url != null) { + + // Open browser into application URL + BrowserLauncher.openBrowser(url); + + // Open control dialog + /* + * Swing components should never be manipulated outside the event + * dispatch thread. + */ + java.awt.EventQueue.invokeLater(new Runnable() { + public void run() { + try { + openServerControlDialog(url); + } catch (HeadlessException e) { + // nop, starting from console + } + } + }); + } + } + + /** + * 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(WindowConstants.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() { + @Override + 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 + final 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() { + @Override + public void windowClosing(WindowEvent e) { + final 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 + final java.awt.Dimension screenSize = java.awt.Toolkit + .getDefaultToolkit().getScreenSize(); + final int w = 270; + final int h = 95; + final 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 { + final String embeddedWarfileName = "/embedded.war"; + final InputStream embeddedWarfile = DemoLauncher.class + .getResourceAsStream(embeddedWarfileName); + if (embeddedWarfile != null) { + final File tempWarfile = File.createTempFile("embedded", ".war") + .getAbsoluteFile(); + tempWarfile.getParentFile().mkdirs(); + tempWarfile.deleteOnExit(); + + final String embeddedWebroot = "winstoneEmbeddedWAR"; + final File tempWebroot = new File(tempWarfile.getParentFile(), + embeddedWebroot); + tempWebroot.mkdirs(); + + final OutputStream out = new FileOutputStream(tempWarfile, true); + int read = 0; + final 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/vaadin/launcher/DevelopmentServerLauncher.java b/src/com/vaadin/launcher/DevelopmentServerLauncher.java new file mode 100644 index 0000000000..1ba7e69da0 --- /dev/null +++ b/src/com/vaadin/launcher/DevelopmentServerLauncher.java @@ -0,0 +1,131 @@ +/* +@ITMillApache2LicenseForJavaFiles@ + */ + +package com.vaadin.launcher; + +import java.util.HashMap; +import java.util.Map; + +import org.mortbay.jetty.Connector; +import org.mortbay.jetty.Server; +import org.mortbay.jetty.nio.SelectChannelConnector; +import org.mortbay.jetty.webapp.WebAppContext; + +import com.vaadin.launcher.util.BrowserLauncher; + +/** + * Class for running Jetty servlet container within Eclipse project. + * + */ +public class DevelopmentServerLauncher { + + private final static String serverPort = "8888"; + + /** + * Main function for 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 + final Map serverArgs = parseArguments(args); + + // Start Jetty + System.out.println("Starting Jetty servlet container."); + final String url = runServer(serverArgs, "Development Server Mode"); + + // Start Browser + System.out.println("Starting Web Browser."); + if (url != null) { + BrowserLauncher.openBrowser(url); + } + + } + + /** + * Run the server with specified arguments. + * + * @param serverArgs + * @return + */ + protected static String runServer(Map serverArgs, String mode) { + + // Add help for System.out + System.out + .println("-------------------------------------------------\n" + + "Starting Vaadin in " + + mode + + ".\n" + + "Running in http://localhost:" + + serverPort + + "\n-------------------------------------------------\n"); + + // Assign default values for some arguments + assignDefault(serverArgs, "webroot", "WebContent"); + assignDefault(serverArgs, "httpPort", serverPort); + assignDefault(serverArgs, "context", ""); + + try { + final Server server = new Server(); + + final Connector connector = new SelectChannelConnector(); + + connector.setPort(8888); + server.setConnectors(new Connector[] { connector }); + + final WebAppContext webappcontext = new WebAppContext(); + webappcontext.setContextPath(serverArgs.get("context").toString()); + webappcontext.setWar(serverArgs.get("webroot").toString()); + + server.setHandler(webappcontext); + + server.start(); + } catch (final Exception e) { + e.printStackTrace(); + return null; + } + + return "http://localhost:" + serverArgs.get("httpPort") + + serverArgs.get("context"); + } + + /** + * Assign default value for given key. + * + * @param map + * @param key + * @param value + */ + private static void assignDefault(Map map, String key, String value) { + if (!map.containsKey(key)) { + map.put(key, value); + } + } + + /** + * Parse all command line arguments into a map. + * + * Arguments format "key=value" are put into map. + * + * @param args + * @return map of arguments key value pairs. + */ + protected static Map parseArguments(String[] args) { + final Map map = new HashMap(); + for (int i = 0; i < args.length; i++) { + final int d = args[i].indexOf("="); + if (d > 0 && d < args[i].length() && args[i].startsWith("--")) { + final String name = args[i].substring(2, d); + final String value = args[i].substring(d + 1); + map.put(name, value); + } + } + return map; + } + +} diff --git a/src/com/vaadin/launcher/ITMillToolkitDesktopMode.java b/src/com/vaadin/launcher/ITMillToolkitDesktopMode.java deleted file mode 100644 index 4feabeae71..0000000000 --- a/src/com/vaadin/launcher/ITMillToolkitDesktopMode.java +++ /dev/null @@ -1,211 +0,0 @@ -/* -@ITMillApache2LicenseForJavaFiles@ - */ - -package com.vaadin.launcher; - -import java.awt.FlowLayout; -import java.awt.HeadlessException; -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; -import javax.swing.WindowConstants; - -import com.vaadin.launcher.util.BrowserLauncher; - -/** - * This class starts servlet container and opens a simple control dialog. - * - */ -public class ITMillToolkitDesktopMode { - - public static void main(String[] args) { - - final Map serverArgs = ITMillToolkitWebMode.parseArguments(args); - boolean deployed = false; - try { - // Default deployment: embedded.war - deployed = deployEmbeddedWarfile(serverArgs); - } catch (final 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 - final String url = ITMillToolkitWebMode.runServer(serverArgs, - "Desktop Mode"); - - if (!serverArgs.containsKey("nogui") && url != null) { - - // Open browser into application URL - BrowserLauncher.openBrowser(url); - - // Open control dialog - /* - * Swing components should never be manipulated outside the event - * dispatch thread. - */ - java.awt.EventQueue.invokeLater(new Runnable() { - public void run() { - try { - openServerControlDialog(url); - } catch (HeadlessException e) { - // nop, starting from console - } - } - }); - } - } - - /** - * 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(WindowConstants.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() { - @Override - 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 - final 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() { - @Override - public void windowClosing(WindowEvent e) { - final 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 - final java.awt.Dimension screenSize = java.awt.Toolkit - .getDefaultToolkit().getScreenSize(); - final int w = 270; - final int h = 95; - final 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 { - final String embeddedWarfileName = "/embedded.war"; - final InputStream embeddedWarfile = ITMillToolkitDesktopMode.class - .getResourceAsStream(embeddedWarfileName); - if (embeddedWarfile != null) { - final File tempWarfile = File.createTempFile("embedded", ".war") - .getAbsoluteFile(); - tempWarfile.getParentFile().mkdirs(); - tempWarfile.deleteOnExit(); - - final String embeddedWebroot = "winstoneEmbeddedWAR"; - final File tempWebroot = new File(tempWarfile.getParentFile(), - embeddedWebroot); - tempWebroot.mkdirs(); - - final OutputStream out = new FileOutputStream(tempWarfile, true); - int read = 0; - final 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/vaadin/launcher/ITMillToolkitWebMode.java b/src/com/vaadin/launcher/ITMillToolkitWebMode.java deleted file mode 100644 index d7931deb96..0000000000 --- a/src/com/vaadin/launcher/ITMillToolkitWebMode.java +++ /dev/null @@ -1,131 +0,0 @@ -/* -@ITMillApache2LicenseForJavaFiles@ - */ - -package com.vaadin.launcher; - -import java.util.HashMap; -import java.util.Map; - -import org.mortbay.jetty.Connector; -import org.mortbay.jetty.Server; -import org.mortbay.jetty.nio.SelectChannelConnector; -import org.mortbay.jetty.webapp.WebAppContext; - -import com.vaadin.launcher.util.BrowserLauncher; - -/** - * Class for running Jetty servlet container within Eclipse project. - * - */ -public class ITMillToolkitWebMode { - - private final static String serverPort = "8888"; - - /** - * Main function for 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 - final Map serverArgs = parseArguments(args); - - // Start Jetty - System.out.println("Starting Jetty servlet container."); - final String url = runServer(serverArgs, "Web Mode"); - - // Start Browser - System.out.println("Starting Web Browser."); - if (url != null) { - BrowserLauncher.openBrowser(url); - } - - } - - /** - * Run the server with specified arguments. - * - * @param serverArgs - * @return - */ - protected static String runServer(Map serverArgs, String mode) { - - // Add help for System.out - System.out - .println("-------------------------------------------------\n" - + "Starting IT Mill Toolkit in " - + mode - + ".\n" - + "Running in http://localhost:" - + serverPort - + "\n-------------------------------------------------\n"); - - // Assign default values for some arguments - assignDefault(serverArgs, "webroot", "WebContent"); - assignDefault(serverArgs, "httpPort", serverPort); - assignDefault(serverArgs, "context", ""); - - try { - final Server server = new Server(); - - final Connector connector = new SelectChannelConnector(); - - connector.setPort(8888); - server.setConnectors(new Connector[] { connector }); - - final WebAppContext webappcontext = new WebAppContext(); - webappcontext.setContextPath(serverArgs.get("context").toString()); - webappcontext.setWar(serverArgs.get("webroot").toString()); - - server.setHandler(webappcontext); - - server.start(); - } catch (final Exception e) { - e.printStackTrace(); - return null; - } - - return "http://localhost:" + serverArgs.get("httpPort") - + serverArgs.get("context"); - } - - /** - * Assign default value for given key. - * - * @param map - * @param key - * @param value - */ - private static void assignDefault(Map map, String key, String value) { - if (!map.containsKey(key)) { - map.put(key, value); - } - } - - /** - * Parse all command line arguments into a map. - * - * Arguments format "key=value" are put into map. - * - * @param args - * @return map of arguments key value pairs. - */ - protected static Map parseArguments(String[] args) { - final Map map = new HashMap(); - for (int i = 0; i < args.length; i++) { - final int d = args[i].indexOf("="); - if (d > 0 && d < args[i].length() && args[i].startsWith("--")) { - final String name = args[i].substring(2, d); - final String value = args[i].substring(d + 1); - map.put(name, value); - } - } - return map; - } - -}