Revision: 7033
http://languagetool.svn.sourceforge.net/languagetool/?rev=7033&view=rev
Author: milek_pl
Date: 2012-05-22 11:28:30 +0000 (Tue, 22 May 2012)
Log Message:
-----------
use GUI configuration settings for the HTTP Server started from the GUI
Modified Paths:
--------------
trunk/JLanguageTool/CHANGES.txt
trunk/JLanguageTool/src/java/org/languagetool/MessagesBundle.properties
trunk/JLanguageTool/src/java/org/languagetool/MessagesBundle_en.properties
trunk/JLanguageTool/src/java/org/languagetool/gui/Configuration.java
trunk/JLanguageTool/src/java/org/languagetool/gui/ConfigurationDialog.java
trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java
trunk/JLanguageTool/src/java/org/languagetool/server/HTTPServer.java
trunk/JLanguageTool/src/java/org/languagetool/server/LanguageToolHttpHandler.java
trunk/JLanguageTool/src/test/org/languagetool/server/HTTPServerTest.java
Property Changed:
----------------
trunk/JLanguageTool/
Property changes on: trunk/JLanguageTool
___________________________________________________________________
Modified: svn:ignore
- dist
junit.classes
build
test.txt
test-de.txt
JLanguageTool.jar
JLanguageToolGUI.jar
test-de-gross.txt
test-de-gross2.txt
test-en-gross.txt
test-en-gross2.txt
TODO
jar-package
openoffice
cobertura.ser
junit.instrumented-classes
LanguageTool.jnlp
.fbwarnings
.settings
*.zip
*.checkstyle
*.checkstyle
reports
.externalToolBuilders
.pmd
.fbprefs
bin
keystore.ks
ooolocales.properties
*.iml
test-en.txt
myalias.p12
+ dist
junit.classes
build
test.txt
test-de.txt
JLanguageTool.jar
JLanguageToolGUI.jar
test-de-gross.txt
test-de-gross2.txt
test-en-gross.txt
test-en-gross2.txt
TODO
jar-package
openoffice
cobertura.ser
junit.instrumented-classes
LanguageTool.jnlp
.fbwarnings
.settings
*.zip
*.checkstyle
*.checkstyle
reports
.externalToolBuilders
.pmd
.fbprefs
bin
keystore.ks
ooolocales.properties
*.iml
test-en.txt
*.p12
Modified: trunk/JLanguageTool/CHANGES.txt
===================================================================
--- trunk/JLanguageTool/CHANGES.txt 2012-05-22 11:01:58 UTC (rev 7032)
+++ trunk/JLanguageTool/CHANGES.txt 2012-05-22 11:28:30 UTC (rev 7033)
@@ -15,8 +15,8 @@
-Russian:
-fixed a few false alarms
- -add URL element for some rules with URL with more information about this
rule
- -add spellcheck dictionary for standalone version.
+ -added URL element for some rules with URL with more information about this
rule
+ -added spellcheck dictionary for standalone version.
-Italian:
-several new rules (Riccardo Murri and Agnese Dal Borgo)
@@ -27,6 +27,9 @@
-Breton
-several new rules and fixed false alarms
+
+ -Polish
+ -added spelling check dictionary for the standalone version
-LibreOffice: if a LanguageTool rule has an URL with more information, the
grammar checking dialog in LibreOffice will now offer a "More..." link
@@ -38,6 +41,10 @@
-LanguageTool in the standalone version supports now spell-checking via
hunspell.
There are two distribution files: a .zip file for standalone use,
and an .oxt extension for LibreOffice/ApacheOpenOffice.
+
+ -If you start the HTTP Server from the GUI, it now reads the configuration
files
+ that are configured in the GUI (if the appropriate checkbox is set).
+ This way the user can control the behavior of the server easily.
-The XML format for rules has been changed to use <marker>...</marker> tags
instead
of mark_from and mark_to attributes
Modified:
trunk/JLanguageTool/src/java/org/languagetool/MessagesBundle.properties
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/MessagesBundle.properties
2012-05-22 11:01:58 UTC (rev 7032)
+++ trunk/JLanguageTool/src/java/org/languagetool/MessagesBundle.properties
2012-05-22 11:28:30 UTC (rev 7033)
@@ -211,6 +211,8 @@
unpaired_brackets = Unpaired bracket or similar symbol
+useGUIConfig = Use above settings for the server
+
whitespace_repetition = Possible typo: you repeated a whitespace
ro = Romanian
Modified:
trunk/JLanguageTool/src/java/org/languagetool/MessagesBundle_en.properties
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/MessagesBundle_en.properties
2012-05-22 11:01:58 UTC (rev 7032)
+++ trunk/JLanguageTool/src/java/org/languagetool/MessagesBundle_en.properties
2012-05-22 11:28:30 UTC (rev 7033)
@@ -203,6 +203,8 @@
unpaired_brackets = Unpaired bracket or similar symbol
+useGUIConfig = Use above settings for the server
+
whitespace_repetition = Possible typo: you repeated a whitespace
ro = Romanian
Modified: trunk/JLanguageTool/src/java/org/languagetool/gui/Configuration.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/gui/Configuration.java
2012-05-22 11:01:58 UTC (rev 7032)
+++ trunk/JLanguageTool/src/java/org/languagetool/gui/Configuration.java
2012-05-22 11:28:30 UTC (rev 7033)
@@ -45,6 +45,7 @@
private static final String AUTO_DETECT_CONFIG_KEY = "autoDetect";
private static final String SERVER_RUN_CONFIG_KEY = "serverMode";
private static final String SERVER_PORT_CONFIG_KEY = "serverPort";
+ private static final String USE_GUI_CONFIG_KEY = "useGUIConfig";
private static final String DELIMITER = ",";
private File configFile;
@@ -54,6 +55,7 @@
private Language motherTongue;
private boolean runServer;
private boolean autoDetect;
+ private boolean guiConfig;
private int serverPort = HTTPServer.DEFAULT_PORT;
public Configuration(final File baseDir, final String filename)
@@ -121,6 +123,15 @@
return serverPort;
}
+ public void setUseGUIConfig(final boolean useGUIConfg) {
+ this.guiConfig = useGUIConfg;
+ }
+
+ public boolean getUseGUIConfig() {
+ return guiConfig;
+}
+
+
public void setServerPort(final int serverPort) {
this.serverPort = serverPort;
}
@@ -144,16 +155,11 @@
if (motherTongueStr != null) {
motherTongue = Language.getLanguageForShortName(motherTongueStr);
}
-
- final String autoDetectStr = (String) props.get(AUTO_DETECT_CONFIG_KEY);
- if (autoDetectStr != null) {
- autoDetect = autoDetectStr.equals("true");
- }
-
- final String runServerString = (String) props.get(SERVER_RUN_CONFIG_KEY);
- if (runServerString != null) {
- runServer = runServerString.equals("true");
- }
+
+ autoDetect = "true".equals((String) props.get(AUTO_DETECT_CONFIG_KEY));
+ guiConfig = "true".equals((String) props.get(USE_GUI_CONFIG_KEY));
+ runServer = "true".equals((String) props.get(SERVER_RUN_CONFIG_KEY));
+
final String serverPortString = (String)
props.get(SERVER_PORT_CONFIG_KEY);
if (serverPortString != null) {
serverPort = Integer.parseInt(serverPortString);
@@ -186,8 +192,9 @@
props.setProperty(MOTHER_TONGUE_CONFIG_KEY, motherTongue.getShortName());
}
props.setProperty(AUTO_DETECT_CONFIG_KEY,
Boolean.valueOf(autoDetect).toString());
+ props.setProperty(USE_GUI_CONFIG_KEY,
Boolean.valueOf(guiConfig).toString());
props.setProperty(SERVER_RUN_CONFIG_KEY,
Boolean.valueOf(runServer).toString());
- props.setProperty(SERVER_PORT_CONFIG_KEY,
Integer.valueOf(serverPort).toString());
+ props.setProperty(SERVER_PORT_CONFIG_KEY,
Integer.valueOf(serverPort).toString());
final FileOutputStream fos = new FileOutputStream(configFile);
try {
props.store(fos, "LanguageTool configuration");
Modified:
trunk/JLanguageTool/src/java/org/languagetool/gui/ConfigurationDialog.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/gui/ConfigurationDialog.java
2012-05-22 11:01:58 UTC (rev 7032)
+++ trunk/JLanguageTool/src/java/org/languagetool/gui/ConfigurationDialog.java
2012-05-22 11:28:30 UTC (rev 7033)
@@ -90,10 +90,13 @@
private Language motherTongue;
private boolean serverMode;
private int serverPort;
+ private boolean useGUIConfig;
private final Frame owner;
private final boolean insideOOo;
+private JCheckBox serverSettingsCheckbox;
+
public ConfigurationDialog(Frame owner, boolean insideOOo) {
this.owner = owner;
this.insideOOo = insideOOo;
@@ -238,6 +241,14 @@
}
});
portPanel.add(serverPortField, cons);
+ cons.gridx = 0;
+ cons.gridy = 10;
+ serverSettingsCheckbox = new JCheckBox(StringTools.getLabel(messages
+ .getString("useGUIConfig")));
+ serverSettingsCheckbox.setMnemonic(StringTools.getMnemonic(messages
+ .getString("useGUIConfig")));
+ serverSettingsCheckbox.setSelected(useGUIConfig);
+ portPanel.add(serverSettingsCheckbox, cons);
}
final JPanel buttonPanel = new JPanel();
@@ -397,6 +408,9 @@
serverMode = serverCheckbox.isSelected();
serverPort = Integer.parseInt(serverPortField.getText());
}
+ if (serverSettingsCheckbox != null) {
+ useGUIConfig = serverSettingsCheckbox.isSelected();
+ }
dialog.setVisible(false);
} else if (e.getSource() == cancelButton) {
dialog.setVisible(false);
@@ -458,7 +472,19 @@
public void setRunServer(boolean serverMode) {
this.serverMode = serverMode;
}
+
+ public void setUseGUIConfig(boolean useGUIConfig) {
+ this.useGUIConfig = useGUIConfig;
+ }
+
+ public boolean getUseGUIConfig() {
+ if (serverSettingsCheckbox == null) {
+ return false;
+ }
+ return serverSettingsCheckbox.isSelected();
+ }
+
public boolean getRunServer() {
if (serverCheckbox == null) {
return false;
Modified: trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java 2012-05-22
11:01:58 UTC (rev 7032)
+++ trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java 2012-05-22
11:28:30 UTC (rev 7033)
@@ -291,9 +291,15 @@
config.setDisabledCategoryNames(configDialog.getDisabledCategoryNames());
config.setMotherTongue(configDialog.getMotherTongue());
config.setRunServer(configDialog.getRunServer());
+ config.setUseGUIConfig(configDialog.getUseGUIConfig());
config.setServerPort(configDialog.getServerPort());
+ try { //save config - needed for the server
+ config.saveConfiguration();
+ } catch (final IOException e) {
+ Tools.showError(e);
+ }
// Stop server, start new server if requested:
- stopServer();
+ stopServer();
maybeStartServer();
}
@@ -369,9 +375,9 @@
private void maybeStartServer() {
if (config.getRunServer()) {
- httpServer = new HTTPServer(config.getServerPort());
+ httpServer = new HTTPServer(config.getServerPort(), false, true);
try {
- httpServer.run();
+ httpServer.run();
} catch (final PortBindingException e) {
final String message = e.getMessage() + "\n\n" +
org.languagetool.tools.Tools.getFullStackTrace(e);
JOptionPane.showMessageDialog(null, message, "Error",
JOptionPane.ERROR_MESSAGE);
@@ -419,6 +425,7 @@
configDialog.setDisabledCategories(config.getDisabledCategoryNames());
configDialog.setRunServer(config.getRunServer());
configDialog.setServerPort(config.getServerPort());
+ configDialog.setUseGUIConfig(config.getUseGUIConfig());
configDialogs.put(language, configDialog);
}
return configDialog;
Modified: trunk/JLanguageTool/src/java/org/languagetool/server/HTTPServer.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/server/HTTPServer.java
2012-05-22 11:01:58 UTC (rev 7032)
+++ trunk/JLanguageTool/src/java/org/languagetool/server/HTTPServer.java
2012-05-22 11:28:30 UTC (rev 7033)
@@ -50,6 +50,11 @@
private final HttpServer server;
/**
+ * True if the server was started from the GUI.
+ */
+ private boolean runInternally = false;
+
+ /**
* Prepare a server on the given port - use run() to start it. Accepts
* connections from localhost only.
*/
@@ -73,32 +78,47 @@
* @throws PortBindingException if we cannot bind to the given port, e.g.
because something else is running there
*/
public HTTPServer(int port, boolean verbose) {
- this(port, verbose, DEFAULT_ALLOWED_IPS);
+ this(port, verbose, false, DEFAULT_ALLOWED_IPS);
}
+
/**
+ * Prepare a server on localhost on the given port - use run() to start it.
Accepts
+ * connections from localhost only.
+ * @param verbose if true, the text to be checked will be displayed in case
of exceptions
+ * @param runInternally if true, then the server was started from the GUI.
+ * @throws PortBindingException if we cannot bind to the given port, e.g.
because something else is running there
+ */
+ public HTTPServer(int port, boolean verbose, boolean runInternally) {
+ this(port, verbose, runInternally, DEFAULT_HOST, DEFAULT_ALLOWED_IPS);
+ }
+
+
+ /**
* Prepare a server on localhost on the given port - use run() to start it.
The server will bind to localhost.
* @param verbose if true, the text to be checked will be displayed in case
of exceptions
+ * @param runInternally if true, then the server was started from the GUI.
* @param allowedIps the IP addresses from which connections are allowed
* @throws PortBindingException if we cannot bind to the given port, e.g.
because something else is running there
*/
- public HTTPServer(int port, boolean verbose, Set<String> allowedIps) {
- this(port, verbose, DEFAULT_HOST, allowedIps);
+ public HTTPServer(int port, boolean verbose, boolean runInternally,
Set<String> allowedIps) {
+ this(port, verbose, runInternally, DEFAULT_HOST, allowedIps);
}
/**
* Prepare a server on the given host and port - use run() to start it.
* @param verbose if true, the text to be checked will be displayed in case
of exceptions
+ * @param runInternally if true, then the server was started from the GUI.
* @param host the host to bind to, e.g. <code>"localhost"</code> or
<code>InetAddress.anyLocalAddress()</code>
* @param allowedIps the IP addresses from which connections are allowed
* @throws PortBindingException if we cannot bind to the given port, e.g.
because something else is running there
* @since 1.7
*/
- public HTTPServer(int port, boolean verbose, String host, Set<String>
allowedIps) {
+ public HTTPServer(int port, boolean verbose, boolean runInternally, String
host, Set<String> allowedIps) {
this.port = port;
try {
server = HttpServer.create(new InetSocketAddress(host, port), 0);
- server.createContext("/", new LanguageToolHttpHandler(verbose,
allowedIps));
+ server.createContext("/", new LanguageToolHttpHandler(verbose,
allowedIps, runInternally));
} catch (Exception e) {
throw new PortBindingException(
"LanguageTool server could not be started on host '" + host + "',
port " + port
@@ -125,13 +145,14 @@
System.out.println("Server stopped");
}
}
-
+
public static void main(String[] args) throws IOException {
if (args.length > 3) {
System.out.println("Usage: " + HTTPServer.class.getSimpleName() + "
[-p|--port port]");
System.exit(1);
}
boolean verbose = false;
+ boolean runInternal = false;
int port = DEFAULT_PORT;
for (int i = 0; i < args.length; i++) {
if ("-p".equals(args[i]) || "--port".equals(args[i])) {
@@ -142,7 +163,7 @@
}
try {
final HttpServer server = HttpServer.create(new
InetSocketAddress(DEFAULT_HOST, port), 0);
- server.createContext("/", new LanguageToolHttpHandler(verbose,
DEFAULT_ALLOWED_IPS));
+ server.createContext("/", new LanguageToolHttpHandler(verbose,
DEFAULT_ALLOWED_IPS, runInternal));
server.start();
System.out.println("Started LanguageTool HTTP server on " + DEFAULT_HOST
+ ", port " + port + ".");
} catch (Exception e) {
Modified:
trunk/JLanguageTool/src/java/org/languagetool/server/LanguageToolHttpHandler.java
===================================================================
---
trunk/JLanguageTool/src/java/org/languagetool/server/LanguageToolHttpHandler.java
2012-05-22 11:01:58 UTC (rev 7032)
+++
trunk/JLanguageTool/src/java/org/languagetool/server/LanguageToolHttpHandler.java
2012-05-22 11:28:30 UTC (rev 7033)
@@ -4,12 +4,14 @@
import com.sun.net.httpserver.HttpHandler;
import org.languagetool.JLanguageTool;
import org.languagetool.Language;
+import org.languagetool.gui.Configuration;
import org.languagetool.rules.RuleMatch;
import org.languagetool.rules.bitext.BitextRule;
import org.languagetool.tools.StringTools;
import org.languagetool.tools.Tools;
import java.io.BufferedReader;
+import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
@@ -27,10 +29,18 @@
private final Set<String> allowedIps;
private final boolean verbose;
-
- LanguageToolHttpHandler(boolean verbose, Set<String> allowedIps) {
+ private final boolean internalServer;
+
+ private static final String CONFIG_FILE = ".languagetool.cfg";
+
+ private final Configuration config;
+
+ LanguageToolHttpHandler(boolean verbose, Set<String> allowedIps,
+ boolean internal) throws IOException {
this.verbose = verbose;
this.allowedIps = allowedIps;
+ this.internalServer = internal;
+ config = new Configuration(new File(System.getProperty("user.home")),
CONFIG_FILE);
}
@Override
@@ -193,8 +203,37 @@
final JLanguageTool newLanguageTool = new JLanguageTool(lang,
motherTongue);
newLanguageTool.activateDefaultPatternRules();
newLanguageTool.activateDefaultFalseFriendRules();
+ if (internalServer && config.getUseGUIConfig()) { // use the GUI config
values
+ configureGUI(lang, newLanguageTool);
+ }
return newLanguageTool;
}
+
+ private void configureGUI(Language language, JLanguageTool langTool) {
+ print("Using options configured in the GUI");
+ //TODO: add a parameter to config to set language
+ final Set<String> disabledRules = config.getDisabledRuleIds();
+ if (disabledRules != null) {
+ for (final String ruleId : disabledRules) {
+ langTool.disableRule(ruleId);
+ }
+ }
+ final Set<String> disabledCategories = config.
+ getDisabledCategoryNames();
+ if (disabledCategories != null) {
+ for (final String categoryName : disabledCategories) {
+ langTool.disableCategory(categoryName);
+ }
+ }
+ final Set<String> enabledRules = config.getEnabledRuleIds();
+ if (enabledRules != null) {
+ for (String ruleName : enabledRules) {
+ langTool.enableDefaultOffRule(ruleName);
+ langTool.enableRule(ruleName);
+ }
+ }
+ }
+
/**
* Construct an xml string containing all supported languages. <br/>The xml
format is:<br/>
Modified:
trunk/JLanguageTool/src/test/org/languagetool/server/HTTPServerTest.java
===================================================================
--- trunk/JLanguageTool/src/test/org/languagetool/server/HTTPServerTest.java
2012-05-22 11:01:58 UTC (rev 7032)
+++ trunk/JLanguageTool/src/test/org/languagetool/server/HTTPServerTest.java
2012-05-22 11:28:30 UTC (rev 7033)
@@ -95,7 +95,7 @@
}
public void testAccessDenied() throws Exception {
- final HTTPServer server = new HTTPServer(HTTPServer.DEFAULT_PORT, false,
new HashSet<String>());
+ final HTTPServer server = new HTTPServer(HTTPServer.DEFAULT_PORT, false,
false, new HashSet<String>());
try {
server.run();
try {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Languagetool-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs