You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shiro.apache.org by Dain Sundstrom <da...@iq80.com> on 2008/09/01 18:59:50 UTC

Re: JSON as a configuration format?

I agree with Jeremy.

I would hate to loose the simple text based configuration, but I think  
we should make sure that the configuration system plays well with  
popular frameworks like Spring.

-dain

On Aug 29, 2008, at 2:21 PM, Jeremy Haile wrote:

> I agree - I don't think ini is a good tool for defining object  
> graphs - I just also think that most of our users won't want to  
> define object graphs in our file =)
>
> I think most users will view the ini section as basically setting  
> some properties to get things operating correctly.  And I don't  
> think that's a bad thing.  Simplest tool for the job.
>
>
> On Aug 29, 2008, at 3:16 PM, Les Hazlewood wrote:
>
>> Now that I think about about it, because Spring is so XML based, I  
>> would
>> much rather prefer to use json to define Spring configs too  
>> (assuming IDEs
>> would integrate with this nicely as well - click on names, jump to  
>> source
>> code, etc).  I wonder if I should build that and contribute it into  
>> Spring
>> 3.x.  That might be cool.
>>
>> For me this is about the best tool for the job - I believe the
>> .ini/.properties approach is less than ideal for defining object  
>> graphs, and
>> with the advent of json or yaml, so is XML as far as I'm  
>> concerned.  I just
>> think think there are better, cleaner (less verbose) ways...
>>
>> That being said, JSecurity configs are pretty small object graphs,  
>> so its
>> not that big of an issue for our project - I'm just thinking in  
>> general.
>> But if it is something that end-users want, I'd want to support  
>> it.  If no
>> one wants it, that's cool too.
>>
>> On Fri, Aug 29, 2008 at 2:58 PM, Jeremy Haile <jh...@fastmail.fm>  
>> wrote:
>>
>>> I'd think that if the jar footprint was minimal and we made it  
>>> optional,
>>> that's fine.  I just think that INI is probably sufficient and  
>>> simpler to
>>> understand for a large majority of users, so I'd like to see that  
>>> stay the
>>> standard for examples, example apps, etc.
>>>
>>>
>>> On Aug 29, 2008, at 2:51 PM, Les Hazlewood wrote:
>>>
>>> Let's say the parsing-to-object-graph logic was already written -  
>>> e.g. in
>>> another Apache licensed open source framework, and we just used  
>>> it.  What
>>> would you think then?
>>>
>>> On Fri, Aug 29, 2008 at 2:48 PM, Jeremy Haile <jh...@fastmail.fm>  
>>> wrote:
>>>
>>>> My fear is that the JSON syntax is bordering on writing our own  
>>>> "Spring
>>>> framework config" - I'd rather standardize on being able to embed  
>>>> spring
>>>> than invent our own syntax that no one is familiar with.  I'm not  
>>>> against
>>>> options, but personally I think most users will be fine either  
>>>> using the
>>>> simple INI (properties-looking) format or just using Spring for  
>>>> more complex
>>>> situations.
>>>>
>>>> J
>>>>
>>>>
>>>>
>>>> On Aug 29, 2008, at 2:40 PM, Les Hazlewood wrote:
>>>>
>>>> Hi JSecurity Community,
>>>>>
>>>>> I'd like to get your thoughts on something.
>>>>>
>>>>> Currently, JSecurity's only text-based configuration option (in  
>>>>> web.xml
>>>>> or
>>>>> jsecurity.ini) is the INI file format.
>>>>>
>>>>> This format works well enough and seems clean, but it doesn't
>>>>> particularly
>>>>> handle object graph definitions all that well.  But JSecurity
>>>>> configuration
>>>>> is essentially just that - an object graph of the JSecurity
>>>>> SecurityManager
>>>>> and all of its dependencies (realms, etc).
>>>>>
>>>>> JSON might be a better format for object graph definitions, and  
>>>>> might be
>>>>> more succinct than even INI.  Would it be worth having this as the
>>>>> preferred
>>>>> configuration syntax instead?
>>>>>
>>>>> Consider the following definitions:
>>>>>
>>>>> INI:
>>>>>
>>>>> bar = some.domain.package.Bar
>>>>> bar.name = ABar
>>>>> bar.amount = 50.00
>>>>>
>>>>> foo = some.domain.package.Foo
>>>>> foo.something = Some value
>>>>> foo.bar = $bar
>>>>> foo.anotherThing = 52
>>>>>
>>>>> JSON:
>>>>>
>>>>> foo: some.domain.package.Foo {
>>>>> something: Some value,
>>>>> bar: some.domain.package.Bar {
>>>>>     name: ABar,
>>>>>     amount: 50.00
>>>>> },
>>>>> anotherThing: 52
>>>>> }
>>>>>
>>>>> What do you think?  Which one would you prefer?
>>>>>
>>>>> --
>>>>> Les
>>>>>
>>>>
>>>>
>>>
>>>
>