[
https://issues.apache.org/jira/browse/JOSHUA-275?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Lewis John McGibbney updated JOSHUA-275:
----------------------------------------
Fix Version/s: 6,2
> 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
> Fix For: 6,2
>
>
> 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:
> {code:java}
> @Inject
> public PackedGrammar(@TypesafeConfig("PackedGrammar.grammar_dir")
> String grammar_dir,
> @TypesafeConfig("PackedGrammar.span_limit")
> int span_limit,
> String owner,
> String type) throws FileNotFoundException,
> IOException ...
> {code}
> and then a config similar to
> \# Joshua configuration file
> {code:javascript}
> config = {
> default-non-terminal = X
> goal-symbol = GOAL
> ...
>
> PackedGrammar: {
> type: thrax,
> grammar_dir: /local/grammars/...
> span_limit: 50
> }
> ...
> }
> {code}
> 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)