Package org.languagetool.server
Class HTTPServerConfig
java.lang.Object
org.languagetool.server.HTTPServerConfig
- Direct Known Subclasses:
HTTPSServerConfig
- Since:
- 2.0
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected String
protected String
protected int
protected long
protected String
protected boolean
protected String
protected String
protected String
static final String
static final int
The default port on which the server is running (8081).protected File
protected File
protected org.languagetool.GlobalConfig
protected List
<org.languagetool.Language> protected String
protected int
protected int
protected int
(package private) static final String
protected File
protected int
protected long
protected long
protected float
protected int
protected int
protected int
protected int
protected int
protected int
protected HTTPServerConfig.Mode
protected File
(package private) static final String
protected boolean
protected int
protected boolean
protected int
protected boolean
protected int
protected boolean
protected int
protected int
protected int
protected File
protected String
protected URI
protected boolean
protected boolean
protected int
protected int
protected boolean
protected boolean
(package private) static final String
protected File
-
Constructor Summary
ConstructorsConstructorDescriptionCreate a server configuration for the default port (DEFAULT_PORT
).HTTPServerConfig
(int serverPort) HTTPServerConfig
(int serverPort, boolean verbose) HTTPServerConfig
(String[] args) Parse command line options. -
Method Summary
Modifier and TypeMethodDescriptionprivate void
addDynamicLanguages
(Properties props) @Nullable String
@Nullable String
Value to set as the "Access-Control-Allow-Origin" http header.A list of HTTP referrers that are blocked and will only get an error message.(package private) int
Cache size (in number of sentences).(package private) long
Cache entry TTL; refreshed on access; in seconds(package private) @Nullable String
(package private) boolean
(package private) @Nullable String
(package private) @Nullable String
(package private) @Nullable String
@Nullable File
Get binary path for fasttext language detection@Nullable File
Get model path for fasttext language detection(package private) List
<org.languagetool.Language> Languages for whichgetHiddenMatchesServer()
will be queried.(package private) @Nullable String
URL of server that is queried to add additional (but hidden) matches to the result.(package private) int
Period to skip requests to hidden matches server after a timeout (in milliseconds)(package private) int
Timeout in milliseconds for queryinggetHiddenMatchesServer()
.(package private) int
since 4.4(package private) @Nullable File
Get language model directory (which contains '3grams' sub directory) ornull
.(package private) int
(package private) long
(package private) long
(package private) float
Maximum errors per word rate, checking will stop if the rate is higher.int
(package private) int
Maximum number of spelling errors for which a suggestion will be generated per check.(package private) int
Limit for maximum text length - text cannot be longer than this, even if user has valid secret token.(package private) int
(package private) int
Maximum text length for users that can identify themselves with an API key.(package private) int
(package private) HTTPServerConfig.Mode
getMode()
Get base directory for neural network models ornull
protected String
getOptionalProperty
(Properties props, String propertyName, String defaultValue) int
int
getPort()
int
protected String
getProperty
(Properties props, String propertyName, File config) (package private) int
(package private) int
(package private) int
(package private) @Nullable File
(package private) @Nullable String
Optional JWT token key.@Nullable URI
int
(package private) int
(package private) boolean
(package private) @Nullable File
Get word2vec model directory (which contains 'en' sub directories and final_embeddings.txt and dictionary.txt) ornull
.boolean
boolean
boolean
boolean
boolean
(package private) boolean
boolean
private void
parseConfigFile
(File file, boolean loadLangModel, boolean loadWord2VecModel, boolean loadNeuralNetworkModel) void
void
setAllowOriginUrl
(String allowOriginUrl) (package private) void
setBlockedReferrers
(List<String> blockedReferrers) (package private) void
setCacheSize
(int sentenceCacheSize) Set cache size (in number of sentences).(package private) void
setCacheTTLSeconds
(long cacheTTLSeconds) Set cache entry TTL in seconds(package private) void
setDatabaseDriver
(String dbDriver) (package private) void
setDatabaseLogging
(boolean logging) Whether meta data about each search (like in the logfile) should be logged to the database.(package private) void
setDatabasePassword
(String dbPassword) (package private) void
setDatabaseUrl
(String dbUrl) (package private) void
setDatabaseUsername
(String dbUsername) void
setFasttextBinary
(File binary) Set binary path for fasttext language detectionvoid
setFasttextModel
(File model) Set model path for fasttext language detectionprivate void
setFasttextPaths
(String fasttextModelPath, String fasttextBinaryPath) void
setLanguageModelDirectory
(String langModelDir) (package private) void
setMaxCheckThreads
(int maxCheckThreads) (package private) void
setMaxCheckTimeMillis
(int maxCheckTimeMillis) void
setMaxPipelinePoolSize
(int maxPipelinePoolSize) void
setMaxTextHardLength
(int len) void
setMaxTextLength
(int len) private void
setNeuralNetworkModelDir
(String nnModelDir) void
setPipelineCaching
(boolean pipelineCaching) void
setPipelineExpireTime
(int pipelineExpireTime) void
setPipelinePrewarming
(boolean pipelinePrewarming) (package private) void
setSecretTokenKey
(String secretTokenKey) void
setServerURL
(@Nullable String url) (package private) void
setTrustXForwardForHeader
(boolean trustXForwardForHeader) Set totrue
if this is running behind a (reverse) proxy which sets theX-forwarded-for
HTTP header.private void
setWord2VecModelDirectory
(String w2vModelDir)
-
Field Details
-
DEFAULT_HOST
- See Also:
-
DEFAULT_PORT
public static final int DEFAULT_PORTThe default port on which the server is running (8081).- See Also:
-
LANGUAGE_MODEL_OPTION
- See Also:
-
WORD2VEC_MODEL_OPTION
- See Also:
-
NN_MODEL_OPTION
- See Also:
-
verbose
protected boolean verbose -
publicAccess
protected boolean publicAccess -
port
protected int port -
allowOriginUrl
-
serverURL
-
maxTextLength
protected int maxTextLength -
maxTextHardLength
protected int maxTextHardLength -
maxTextLengthWithApiKey
protected int maxTextLengthWithApiKey -
secretTokenKey
-
maxCheckTimeMillis
protected long maxCheckTimeMillis -
maxCheckTimeWithApiKeyMillis
protected long maxCheckTimeWithApiKeyMillis -
maxCheckThreads
protected int maxCheckThreads -
mode
-
languageModelDir
-
word2vecModelDir
-
pipelineCaching
protected boolean pipelineCaching -
pipelinePrewarming
protected boolean pipelinePrewarming -
maxPipelinePoolSize
protected int maxPipelinePoolSize -
pipelineExpireTime
protected int pipelineExpireTime -
fasttextModel
-
fasttextBinary
-
neuralNetworkModelDir
-
requestLimit
protected int requestLimit -
requestLimitInBytes
protected int requestLimitInBytes -
timeoutRequestLimit
protected int timeoutRequestLimit -
requestLimitPeriodInSeconds
protected int requestLimitPeriodInSeconds -
ipFingerprintFactor
protected int ipFingerprintFactor -
trustXForwardForHeader
protected boolean trustXForwardForHeader -
maxWorkQueueSize
protected int maxWorkQueueSize -
rulesConfigFile
-
cacheSize
protected int cacheSize -
cacheTTLSeconds
protected long cacheTTLSeconds -
maxErrorsPerWordRate
protected float maxErrorsPerWordRate -
maxSpellingSuggestions
protected int maxSpellingSuggestions -
blockedReferrers
-
dbDriver
-
dbUrl
-
dbUsername
-
dbPassword
-
dbLogging
protected boolean dbLogging -
prometheusMonitoring
protected boolean prometheusMonitoring -
prometheusPort
protected int prometheusPort -
globalConfig
protected org.languagetool.GlobalConfig globalConfig -
disabledRuleIds
-
skipLoggingRuleMatches
protected boolean skipLoggingRuleMatches -
skipLoggingChecks
protected boolean skipLoggingChecks -
slowRuleLoggingThreshold
protected int slowRuleLoggingThreshold -
abTest
-
-
Constructor Details
-
HTTPServerConfig
public HTTPServerConfig()Create a server configuration for the default port (DEFAULT_PORT
). -
HTTPServerConfig
public HTTPServerConfig(int serverPort) - Parameters:
serverPort
- the port to bind to- Since:
- 2.8
-
HTTPServerConfig
public HTTPServerConfig(int serverPort, boolean verbose) - Parameters:
serverPort
- the port to bind toverbose
- when set to true, the input text will be logged in case there is an exception
-
HTTPServerConfig
HTTPServerConfig(String[] args) Parse command line options.
-
-
Method Details
-
parseConfigFile
private void parseConfigFile(File file, boolean loadLangModel, boolean loadWord2VecModel, boolean loadNeuralNetworkModel) -
addDynamicLanguages
- Throws:
IOException
-
setLanguageModelDirectory
-
setWord2VecModelDirectory
-
setNeuralNetworkModelDir
-
setFasttextPaths
-
isVerbose
public boolean isVerbose() -
isPublicAccess
public boolean isPublicAccess() -
getPort
public int getPort() -
getAllowOriginUrl
Value to set as the "Access-Control-Allow-Origin" http header.null
will not return that header at all. With*
your server can be used from any other web site from Javascript/Ajax (search Cross-origin resource sharing (CORS) for details). -
setAllowOriginUrl
- Since:
- 4.2
-
getServerURL
- Returns:
- prefix / base URL for API requests
- Since:
- 4.8
-
setServerURL
- Parameters:
url
- prefix / base URL for API requests- Since:
- 4.8
-
setMaxTextLength
public void setMaxTextLength(int len) - Parameters:
len
- the maximum text length allowed (in number of characters), texts that are longer will cause an exception when being checked, unless the user can provide a JWT 'token' parameter with a 'maxTextLength' claim
-
setMaxTextHardLength
public void setMaxTextHardLength(int len) - Parameters:
len
- the maximum text length allowed (in number of characters), texts that are longer will cause an exception when being checked even if the user can provide a JWT token- Since:
- 3.9
-
getMaxTextLength
int getMaxTextLength() -
getMaxTextLengthWithApiKey
@Experimental int getMaxTextLengthWithApiKey()Maximum text length for users that can identify themselves with an API key.- Since:
- 4.2
-
getMaxTextHardLength
int getMaxTextHardLength()Limit for maximum text length - text cannot be longer than this, even if user has valid secret token.- Since:
- 3.9
-
getSecretTokenKey
Optional JWT token key. Can be used to circumvent the maximum text length (but not maxTextHardLength).- Since:
- 3.9
-
setSecretTokenKey
- Since:
- 4.0
-
getRequestLimit
int getRequestLimit() -
getTimeoutRequestLimit
int getTimeoutRequestLimit()- Since:
- 4.0
-
getRequestLimitInBytes
int getRequestLimitInBytes()- Since:
- 4.0
-
getRequestLimitPeriodInSeconds
int getRequestLimitPeriodInSeconds() -
getIpFingerprintFactor
int getIpFingerprintFactor()since 4.4 -
setMaxCheckTimeMillis
void setMaxCheckTimeMillis(int maxCheckTimeMillis) - Parameters:
maxCheckTimeMillis
- The maximum duration allowed for a single check in milliseconds, checks that take longer will stop with an exception. Use-1
for no limit.- Since:
- 2.6
-
getMaxCheckTimeMillis
long getMaxCheckTimeMillis()- Since:
- 2.6
-
getMaxCheckTimeWithApiKeyMillis
@Experimental long getMaxCheckTimeWithApiKeyMillis()- Since:
- 4.2
-
getLanguageModelDir
Get language model directory (which contains '3grams' sub directory) ornull
.- Since:
- 2.7
-
getWord2VecModelDir
Get word2vec model directory (which contains 'en' sub directories and final_embeddings.txt and dictionary.txt) ornull
.- Since:
- 4.0
-
getNeuralNetworkModelDir
Get base directory for neural network models ornull
- Since:
- 4.4
-
getFasttextModel
Get model path for fasttext language detection- Since:
- 4.3
-
setFasttextModel
Set model path for fasttext language detection- Since:
- 4.4
-
getFasttextBinary
Get binary path for fasttext language detection- Since:
- 4.3
-
setFasttextBinary
Set binary path for fasttext language detection- Since:
- 4.4
-
getMode
HTTPServerConfig.Mode getMode()- Since:
- 2.7
-
setMaxCheckThreads
void setMaxCheckThreads(int maxCheckThreads) - Parameters:
maxCheckThreads
- The maximum number of threads serving requests running at the same time. If there are more requests, they will be queued until a thread can work on them.- Since:
- 2.7
-
getMaxCheckThreads
int getMaxCheckThreads()- Since:
- 2.7
-
setTrustXForwardForHeader
void setTrustXForwardForHeader(boolean trustXForwardForHeader) Set totrue
if this is running behind a (reverse) proxy which sets theX-forwarded-for
HTTP header. The last IP address (but not local IP addresses) in that header will then be used for enforcing a request limitation.- Since:
- 2.8
-
getTrustXForwardForHeader
boolean getTrustXForwardForHeader()- Since:
- 2.8
-
getMaxWorkQueueSize
int getMaxWorkQueueSize()- Since:
- 2.9
-
isPipelineCachingEnabled
public boolean isPipelineCachingEnabled()- Since:
- 4.4 Cache initalized JLanguageTool instances and share between non-parallel requests with identical paramenters Improves response time (especially when dealing with many small requests without specific settings), but increases memory usage
-
isPipelinePrewarmingEnabled
public boolean isPipelinePrewarmingEnabled()- Since:
- 4.4 Before starting to listen for requests, create a few pipelines for frequently used request settings and run simple checks on them; prevents long response time / request overload on the first real incoming requests
-
getMaxPipelinePoolSize
public int getMaxPipelinePoolSize()- Since:
- 4.4 Keep pipelines ready for this many different request settings
-
getPipelineExpireTime
public int getPipelineExpireTime()- Since:
- 4.4 Expire pipelines for a specific request setting after this many seconds without any matching request elapsed
-
setPipelineCaching
public void setPipelineCaching(boolean pipelineCaching) - Since:
- 4.4
-
setPipelinePrewarming
public void setPipelinePrewarming(boolean pipelinePrewarming) - Since:
- 4.4
-
setMaxPipelinePoolSize
public void setMaxPipelinePoolSize(int maxPipelinePoolSize) - Since:
- 4.4
-
setPipelineExpireTime
public void setPipelineExpireTime(int pipelineExpireTime) - Since:
- 4.4
-
getCacheSize
int getCacheSize()Cache size (in number of sentences).- Since:
- 3.7
-
setCacheSize
void setCacheSize(int sentenceCacheSize) Set cache size (in number of sentences).- Since:
- 4.2
-
getCacheTTLSeconds
long getCacheTTLSeconds()Cache entry TTL; refreshed on access; in seconds- Since:
- 4.6
-
setCacheTTLSeconds
void setCacheTTLSeconds(long cacheTTLSeconds) Set cache entry TTL in seconds- Since:
- 4.6
-
getMaxErrorsPerWordRate
float getMaxErrorsPerWordRate()Maximum errors per word rate, checking will stop if the rate is higher. For example, with a rate of 0.33, the checking would stop if the user's text has so many errors that more than every 3rd word causes a rule match. Note that this may not apply for very short texts.- Since:
- 4.0
-
getMaxSpellingSuggestions
int getMaxSpellingSuggestions()Maximum number of spelling errors for which a suggestion will be generated per check. It makes sense to limit this as generating suggestions is a CPU-heavy task.- Since:
- 4.2
-
getBlockedReferrers
A list of HTTP referrers that are blocked and will only get an error message.- Since:
- 4.2
-
setBlockedReferrers
- Since:
- 4.2
-
getHiddenMatchesServer
URL of server that is queried to add additional (but hidden) matches to the result.- Since:
- 4.0
-
getHiddenMatchesServerTimeout
@Experimental int getHiddenMatchesServerTimeout()Timeout in milliseconds for queryinggetHiddenMatchesServer()
.- Since:
- 4.0
-
getHiddenMatchesServerFailTimeout
@Experimental int getHiddenMatchesServerFailTimeout()Period to skip requests to hidden matches server after a timeout (in milliseconds)- Since:
- 4.5
-
getHiddenMatchesLanguages
Languages for whichgetHiddenMatchesServer()
will be queried.- Since:
- 4.0
-
getRulesConfigFile
- Returns:
- the file from which server rules configuration should be loaded, or
null
- Since:
- 3.0
-
getDatabaseDriver
- Returns:
- the database driver name like
org.mariadb.jdbc.Driver
, ornull
- Since:
- 4.2
-
setDatabaseDriver
- Since:
- 4.2
-
getDatabaseUrl
- Returns:
- the database url like
jdbc:mysql://localhost:3306/languagetool
, ornull
- Since:
- 4.2
-
setDatabaseUrl
- Since:
- 4.2
-
getDatabaseUsername
- Returns:
- the database username, or
null
- Since:
- 4.2
-
setDatabaseUsername
- Since:
- 4.2
-
getDatabasePassword
- Returns:
- the database password matching
getDatabaseUsername()
, ornull
- Since:
- 4.2
-
setDatabasePassword
- Since:
- 4.2
-
setDatabaseLogging
@Experimental void setDatabaseLogging(boolean logging) Whether meta data about each search (like in the logfile) should be logged to the database.- Since:
- 4.4
-
getDatabaseLogging
@Experimental boolean getDatabaseLogging()- Since:
- 4.4
-
isPrometheusMonitoring
public boolean isPrometheusMonitoring()- Returns:
- Since:
- 4.6
-
getPrometheusPort
public int getPrometheusPort()- Returns:
- Since:
- 4.6
-
getSlowRuleLoggingThreshold
@Experimental public int getSlowRuleLoggingThreshold()- Returns:
- threshold for rule computation time until a warning gets logged, in milliseconds
- Since:
- 4.5
-
isSkipLoggingRuleMatches
boolean isSkipLoggingRuleMatches()- Since:
- 4.5
-
isSkipLoggingChecks
public boolean isSkipLoggingChecks()- Since:
- 4.6
-
getDisabledRuleIds
- Since:
- 4.7
-
getAbTest
- Since:
- 4.4 See if a specific A/B-Test is to be run
-
setAbTest
- Since:
- 4.4 Enable a specific A/B-Test to be run (or null to disable all tests)
-
getProperty
- Throws:
IllegalConfigurationException
- if property is not set
-
getOptionalProperty
-