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

Max Thomas commented on JOSHUA-275:
-----------------------------------

+1 to this - I wouldn't mind working on this. 

Matt, I don't think they support "fuzzy parameters" but they do support 
JVM-style arguments that override everything else, addressing your first 
question. In other words, 

java -Dfoo.bar=qux MyMainClass 

with the configuration file saying "foo.bar = hello" would get the value "qux". 

You can see the hierarchy here:

https://github.com/typesafehub/config#standard-behavior

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

Reply via email to