[ 
https://issues.apache.org/jira/browse/JOSHUA-275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15304288#comment-15304288
 ] 

Matt Post commented on JOSHUA-275:
----------------------------------

This looks awesome to me. Can you give some indication / examples of how this 
can interplay with command-line switches? Will we be able to maintain the 
ability to (a) default to config-file parameters but (b) override from the 
command line?

I'm also curious if we'll lose the current flexibility in specifying names 
(e.g., all the following are the same: "-top-n", "-topN", "-topn"). That's a 
nice feature because you don't have to remember particulars, but I am fine if 
we have to say goodbye to it.

> 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:
> {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)

Reply via email to