Revision: 8497
http://languagetool.svn.sourceforge.net/languagetool/?rev=8497&view=rev
Author: dnaber
Date: 2012-12-03 22:40:47 +0000 (Mon, 03 Dec 2012)
Log Message:
-----------
try harder to keep the HTTP checkbox in the tray menu in sync with whether the
server is actually running or not (before, it was checked even when starting
the server failed)
Modified Paths:
--------------
trunk/JLanguageTool/src/main/java/org/languagetool/gui/Main.java
trunk/JLanguageTool/src/main/java/org/languagetool/server/Server.java
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPServerLoadTest.java
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPServerTest.java
Modified: trunk/JLanguageTool/src/main/java/org/languagetool/gui/Main.java
===================================================================
--- trunk/JLanguageTool/src/main/java/org/languagetool/gui/Main.java
2012-12-03 22:16:40 UTC (rev 8496)
+++ trunk/JLanguageTool/src/main/java/org/languagetool/gui/Main.java
2012-12-03 22:40:47 UTC (rev 8497)
@@ -73,7 +73,7 @@
private LanguageComboBox languageBox;
private LanguageDetectionCheckbox autoDetectBox;
private Cursor prevCursor;
- private CheckboxMenuItem enableHttpsServerItem;
+ private CheckboxMenuItem enableHttpServerItem;
private HTTPServer httpServer;
@@ -259,10 +259,11 @@
private PopupMenu makePopupMenu() {
final PopupMenu popup = new PopupMenu();
final ActionListener rmbListener = new TrayActionRMBListener();
- enableHttpsServerItem = new
CheckboxMenuItem(StringTools.getLabel(messages.getString("tray_menu_enable_server")));
- enableHttpsServerItem.setState(config.getRunServer());
- enableHttpsServerItem.addItemListener(new TrayActionItemListener());
- popup.add(enableHttpsServerItem);
+ // Enable or disable embedded HTTP server:
+ enableHttpServerItem = new
CheckboxMenuItem(StringTools.getLabel(messages.getString("tray_menu_enable_server")));
+ enableHttpServerItem.setState(httpServer != null &&
httpServer.isRunning());
+ enableHttpServerItem.addItemListener(new TrayActionItemListener());
+ popup.add(enableHttpServerItem);
// Check clipboard text:
final MenuItem checkClipboardItem =
new
MenuItem(StringTools.getLabel(messages.getString("guiMenuCheckClipboard")));
@@ -388,24 +389,22 @@
final HTTPServerConfig serverConfig = new
HTTPServerConfig(config.getServerPort(), false);
httpServer = new HTTPServer(serverConfig, true);
httpServer.run();
- if (enableHttpsServerItem != null) {
- enableHttpsServerItem.setState(true);
+ if (enableHttpServerItem != null) {
+ enableHttpServerItem.setState(httpServer.isRunning());
}
} catch (PortBindingException e) {
- final String message = e.getMessage();
- JOptionPane.showMessageDialog(null, message, "Error",
JOptionPane.ERROR_MESSAGE);
- return false;
+ JOptionPane.showMessageDialog(null, e.getMessage(), "Error",
JOptionPane.ERROR_MESSAGE);
}
- return true;
- } else {
- return false;
}
+ return httpServer != null && httpServer.isRunning();
}
private void stopServer() {
if (httpServer != null) {
httpServer.stop();
- enableHttpsServerItem.setState(false);
+ if (enableHttpServerItem != null) {
+ enableHttpServerItem.setState(httpServer.isRunning());
+ }
httpServer = null;
}
}
@@ -637,8 +636,8 @@
if (e.getStateChange() == ItemEvent.SELECTED) {
config.setRunServer(true);
final boolean serverStarted = maybeStartServer();
+ enableHttpServerItem.setState(serverStarted);
config.setRunServer(serverStarted);
- enableHttpsServerItem.setState(serverStarted);
config.saveConfiguration(language);
if (configDialog != null) {
configDialog.setRunServer(true);
Modified: trunk/JLanguageTool/src/main/java/org/languagetool/server/Server.java
===================================================================
--- trunk/JLanguageTool/src/main/java/org/languagetool/server/Server.java
2012-12-03 22:16:40 UTC (rev 8496)
+++ trunk/JLanguageTool/src/main/java/org/languagetool/server/Server.java
2012-12-03 22:40:47 UTC (rev 8497)
@@ -45,6 +45,8 @@
protected String host;
protected HttpServer server;
+ private boolean isRunning;
+
/**
* Start the server.
*/
@@ -52,20 +54,30 @@
final String hostName = host != null ? host : "localhost";
System.out.println("Starting server on " + getProtocol() + "://" +
hostName + ":" + port + "...");
server.start();
+ isRunning = true;
System.out.println("Server started");
}
/**
- * Stop the server.
+ * Stop the server. Once stopped, a server cannot be used again.
*/
public void stop() {
if (server != null) {
System.out.println("Stopping server");
server.stop(0);
+ isRunning = false;
System.out.println("Server stopped");
}
}
+ /**
+ * @return whether the server is running
+ * @since 2.0
+ */
+ public boolean isRunning() {
+ return isRunning;
+ }
+
protected static boolean usageRequested(String[] args) {
return args.length == 1 && (args[0].equals("-h") ||
args[0].equals("--help"));
}
Modified:
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPServerLoadTest.java
===================================================================
---
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPServerLoadTest.java
2012-12-03 22:16:40 UTC (rev 8496)
+++
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPServerLoadTest.java
2012-12-03 22:40:47 UTC (rev 8497)
@@ -8,6 +8,9 @@
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
/**
* Test HTTP server access from multiple threads.
*/
@@ -22,8 +25,10 @@
public void testHTTPServer() throws Exception {
final long startTime = System.currentTimeMillis();
final HTTPServer server = new HTTPServer();
+ assertFalse(server.isRunning());
try {
server.run();
+ assertTrue(server.isRunning());
final ExecutorService executorService =
Executors.newFixedThreadPool(THREAD_COUNT);
final List<Future> futures = new ArrayList<Future>();
for (int i = 0; i < THREAD_COUNT; i++) {
@@ -35,6 +40,7 @@
}
} finally {
server.stop();
+ assertFalse(server.isRunning());
final long runtime = System.currentTimeMillis() - startTime;
System.out.println("Running with " + THREAD_COUNT + " threads in " +
runtime + "ms");
}
Modified:
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPServerTest.java
===================================================================
---
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPServerTest.java
2012-12-03 22:16:40 UTC (rev 8496)
+++
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPServerTest.java
2012-12-03 22:40:47 UTC (rev 8497)
@@ -43,11 +43,14 @@
@Test
public void testHTTPServer() throws Exception {
final HTTPServer server = new HTTPServer();
+ assertFalse(server.isRunning());
try {
server.run();
+ assertTrue(server.isRunning());
runTests();
} finally {
server.stop();
+ assertFalse(server.isRunning());
}
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Languagetool-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-commits