Kellen Sunderland created JOSHUA-275:
----------------------------------------
Summary: Revamp the Configuration System
Key: JOSHUA-275
URL: https://issues.apache.org/jira/browse/JOSHUA-275
Project: Joshua
Issue Type: Improvement
Affects Versions: 6.1, 6.2, 7
Reporter: Kellen Sunderland
I'd like to propose we centralize Joshua's configuration system to make use of
typesafe/config https://github.com/typesafehub/config . This config system
looks like JSON but with comments so it's easy to read. Because it's JSON it
supports hierarchies of configurations, lists of configuration etc quite
easily. It has some nice features like parsing time automatically. The main
advantage here though is that we have a standard config system that doesn't
have to be manually parsed.
Here's a quick example of how we can use it:
@Inject
public PackedGrammar(@TypesafeConfig("PackedGrammar.grammar_dir")
String grammar_dir,
@TypesafeConfig("PackedGrammar.span_limit")
int span_limit,
String owner,
String type) throws FileNotFoundException, IOException
...
and then a config similar to
# Joshua configuration file
config = {
# Joshua configuration file
default-non-terminal = X
goal-symbol = GOAL
...
tm: {
type: thrax,
grammar_dir: /local/grammars/...
span_limit: 50
}
...
}
Version: TBD, but it's a breaking change so we may consider putting it in
Joshua 7.
Totally open to other config / injection systems if others want to suggest any
of their favorites.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)