[ 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: (was: 6,2) 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)