I generally agree with Andrey Gura. I do not think that the effort required to implement another format for configuration justifies the means. Let's stick to the Spring configuration.
D. On Wed, May 16, 2018 at 10:10 AM, Pavel Tupitsyn <ptupit...@apache.org> wrote: > Andrey G, +1 > > > Andrey K, > > > json-schema > It's a draft. XML schema is a mature standard. > > > eye fatigue > Here is Ignite.NET config: <cacheConfiguration cacheMode='Replicated' > name='myCache' /> > Equivalent JSON excerpt: "cacheConfiguration": { "cacheMode": > "Replicated", "name": "myCache" } > Enough said I guess :) > > > > On Wed, May 16, 2018 at 12:48 AM, Andrey Gura <ag...@apache.org> wrote: > > > Guys, > > > > Spring is IoC and you can't offer any format that can replace Spring. It > > will just limited DSL. > > > > Once again. We have enough problems with main functionality. Why do you > > want to focus on minor features? > > > > > > вт, 15 мая 2018 г., 23:26 Andrey Kuznetsov <stku...@gmail.com>: > > > > > Pavel, > > > > > > One can use json-schema if necessary. Of course, XML is more powerful > in > > > many aspects, but produces more eye fatigue for humans. Of course, we > are > > > to stay with XML if switching to another configuration format requires > > > significant effort. > > > > > > BTW, first time I heard about JSON from [1] : " JSON is like XML, > except > > it > > > doesn't suck ". > > > > > > [1] https://github.com/cajun-jsonapi/cajun-jsonapi/blob/ > > master/Readme.txt > > > > > > > > > 2018-05-15 22:43 GMT+03:00 Pavel Tupitsyn <ptupit...@apache.org>: > > > > > > > JSON sucks for config files anyway, there are no comments, no > schemas, > > > > quotes are required around keys, etc > > > > > > > > Just answer one question: what issue are we trying to solve? > > > > XML is not a problem IMO, complexity of our config is. > > > > > > > > On Tue, May 15, 2018 at 8:00 PM, Igor Sapego <isap...@apache.org> > > wrote: > > > > > > > > > How are you going to translate this YAML config to Spring config? > > > > > > > > > > How would you deal with something like [1]? > > > > > > > > > > [1] - > > > > > https://github.com/apache/ignite/blob/master/modules/ > > > > > platforms/cpp/odbc-test/config/queries-ssl-32.xml > > > > > > > > > > Best Regards, > > > > > Igor > > > > > > > > > > On Tue, May 15, 2018 at 7:10 PM, Pavel Kovalenko < > jokse...@gmail.com > > > > > > > > wrote: > > > > > > > > > > > Igor, > > > > > > > > > > > > Just get one of the config samples and translate it directly to > > YAML: > > > > > > XML - https://pastebin.com/wtQXXq8f > > > > > > YAML - https://pastebin.com/akGu3e81 > > > > > > > > > > > > 2018-05-15 18:49 GMT+03:00 Igor Sapego <isap...@apache.org>: > > > > > > > > > > > > > Guys, if you think the YAML or JSON would be better, how about > > > > > > > you provide us a brief example of how such configs are going to > > > > > > > look, so we can compare and see, if this ever have any sense. > > > > > > > > > > > > > > Best Regards, > > > > > > > Igor > > > > > > > > > > > > > > On Tue, May 15, 2018 at 4:20 PM, Ilya Kasnacheev < > > > > > > > ilya.kasnach...@gmail.com> > > > > > > > wrote: > > > > > > > > > > > > > > > Hello! > > > > > > > > > > > > > > > > Maybe we should take .Net configuration as a standard, extend > > it > > > to > > > > > > JSON > > > > > > > > and YAML? > > > > > > > > > > > > > > > > <goog_787531833> > > > > > > > > https://apacheignite-net.readme.io/docs/configuration > > > > > > > > > > > > > > > > It should be fairly robust, and there's much less > boilerplate. > > > > > > > > > > > > > > > > Regards, > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > Ilya Kasnacheev > > > > > > > > > > > > > > > > 2018-05-15 16:09 GMT+03:00 Pavel Kovalenko < > jokse...@gmail.com > > >: > > > > > > > > > > > > > > > > > +1 to Dmitriy G. proposal. > > > > > > > > > > > > > > > > > > Since we're moving Ignite towards outside of Java world, we > > > > should > > > > > > > > > definitely care about config usability for users who are > not > > > > > familiar > > > > > > > > with > > > > > > > > > Java/Spring. > > > > > > > > > If we take a look at any of our XML-configs, we can see a > lot > > > of > > > > > > > > > boilerplate like "<bean class="">", "<property name="">" - > > > terms > > > > > > which > > > > > > > > say > > > > > > > > > nothing to users outside of Java world. > > > > > > > > > When I see such configs my eyes are filled with bloody > tears. > > > > > > > > > > > > > > > > > > I think we should really consider YAML as our additional > > > approach > > > > > to > > > > > > > > > configure Ignite with full replacement instead of XML in > > > future. > > > > > > > > > Comparing to XML, YAML is significantly more human-readable > > and > > > > > > > > lightweight > > > > > > > > > format and has stable Java library to parse and translate > > > config > > > > > > files > > > > > > > to > > > > > > > > > Java objects without extra-magic. > > > > > > > > > > > > > > > > > > We can find a lot of famous projects which are using YAML: > > > Apache > > > > > > > Flink, > > > > > > > > > Apache Storm/Heron and one of the our main rivals - Apache > > > > > Cassandra. > > > > > > > > > > > > > > > > > > Some of the projects use simple <property>=<name> config > form > > > > > (Kafka, > > > > > > > > > Spark), some of the projects use their own YAML-like format > > > > > > (Aerospike, > > > > > > > > > Tarantool), but it's really difficult to find such project > > > which > > > > > has > > > > > > so > > > > > > > > > heavy config as us (maybe VoltDB). > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 2018-05-15 14:02 GMT+03:00 Andrey Gura <ag...@apache.org>: > > > > > > > > > > > > > > > > > > > Actually sometimes users ask about JSON configuration > (e.g. > > > was > > > > > PR > > > > > > in > > > > > > > > > > vertx-ignite project). But it's non trivial task because > it > > > > will > > > > > > > > > > require development of some DSL (or set of DSL's) and > will > > > make > > > > > > > adding > > > > > > > > > > new configuration elements some kind of pain while we > > should > > > be > > > > > > > > > > focused on basic functionality: data grid, persistence, > > etc. > > > > > > > > > > > > > > > > > > > > I just believe that configuration format is not so > > important > > > > > aspect > > > > > > > > > > and this task is out of product scope. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Tue, May 15, 2018 at 12:56 PM, Dmitriy Setrakyan > > > > > > > > > > <dsetrak...@apache.org> wrote: > > > > > > > > > > > I still do not understand *why* do we need to add > > > additional > > > > > > > formats > > > > > > > > > for > > > > > > > > > > > the configuration. Can you please show me some users on > > the > > > > > user@ > > > > > > > > list > > > > > > > > > > or > > > > > > > > > > > stack overflow who asked for it? I just want to make > sure > > > > that > > > > > if > > > > > > > we > > > > > > > > > are > > > > > > > > > > > creating work for ourselves, then someone actually > needs > > > it. > > > > > > > > > > > > > > > > > > > > > > D. > > > > > > > > > > > > > > > > > > > > > > On Tue, May 15, 2018 at 12:41 PM, Igor Sapego < > > > > > > isap...@apache.org> > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > >> I don't think we need to add new formats on server > side > > as > > > > > there > > > > > > > may > > > > > > > > > > >> be a lot of different formats for different clients. > On > > > the > > > > > > other > > > > > > > > > hand, > > > > > > > > > > >> supporting additional formats may be non trivial and > > > > > > error-prone, > > > > > > > > > while > > > > > > > > > > >> adding little to a user experience. > > > > > > > > > > >> > > > > > > > > > > >> For clients, I see no problem in adding for example > JSON > > > -> > > > > > XML > > > > > > > > > > >> converter on client side, if JS folks need it. > > > > > > > > > > >> > > > > > > > > > > >> For servers, adding another configuration format just > to > > > > make > > > > > it > > > > > > > > more > > > > > > > > > > >> familiar to users with no Java background seems > > > unreasonable > > > > > to > > > > > > me > > > > > > > > > > >> as well, as there still going to be Java class names > in > > > > > > > > configuration > > > > > > > > > > >> and Spring approach in general. > > > > > > > > > > >> > > > > > > > > > > >> What will change is a XML formatting is going to > change > > to > > > > > JSON > > > > > > > > > > >> formatting, which has no much sense to me, as everyone > > > know > > > > > XML. > > > > > > > > > > >> It is Spring approach what can be confusing to > non-Java > > > > users, > > > > > > and > > > > > > > > > > >> it is not going to change regardless of format. > > > > > > > > > > >> > > > > > > > > > > >> Best Regards, > > > > > > > > > > >> Igor > > > > > > > > > > >> > > > > > > > > > > >> On Tue, May 15, 2018 at 12:15 PM, Dmitriy Govorukhin < > > > > > > > > > > >> dmitriy.govoruk...@gmail.com> wrote: > > > > > > > > > > >> > > > > > > > > > > >> > Folks, > > > > > > > > > > >> > > > > > > > > > > > >> > I guess when work on a thin client will be > completed, > > we > > > > get > > > > > > > more > > > > > > > > > > >> newcomers > > > > > > > > > > >> > who use go/python/php/js. > > > > > > > > > > >> > And we can do ignite more friendly for them, support > > > > > familiar > > > > > > > > > formats > > > > > > > > > > for > > > > > > > > > > >> > configuration. > > > > > > > > > > >> > > > > > > > > > > > >> > On Tue, May 15, 2018 at 12:13 PM, Dmitry Pavlov < > > > > > > > > > > dpavlov....@gmail.com> > > > > > > > > > > >> > wrote: > > > > > > > > > > >> > > > > > > > > > > > >> > > Hi Igniters, > > > > > > > > > > >> > > > > > > > > > > > > >> > > In general I aggree with adding new format, e.g. > > JSON > > > is > > > > > > more > > > > > > > > > > popular > > > > > > > > > > >> > than > > > > > > > > > > >> > > XML for new applications. > > > > > > > > > > >> > > > > > > > > > > > > >> > > In the same time I've never heard that user asked > > this > > > > in > > > > > > the > > > > > > > > user > > > > > > > > > > >> list. > > > > > > > > > > >> > Or > > > > > > > > > > >> > > did I missed such topics? > > > > > > > > > > >> > > > > > > > > > > > > >> > > Sincerely, > > > > > > > > > > >> > > Dmitriy Pavlov > > > > > > > > > > >> > > > > > > > > > > > > >> > > вт, 15 мая 2018 г. в 9:31, Pavel Tupitsyn < > > > > > > > ptupit...@apache.org > > > > > > > > >: > > > > > > > > > > >> > > > > > > > > > > > > >> > > > Dmitriy, > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > We don't need to support different config > formats > > on > > > > > > server > > > > > > > in > > > > > > > > > > order > > > > > > > > > > >> to > > > > > > > > > > >> > > add > > > > > > > > > > >> > > > that to thin clients. > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > Thin client protocol provides a way to create a > > > cache > > > > > with > > > > > > > > > custom > > > > > > > > > > >> > config > > > > > > > > > > >> > > > [1]. > > > > > > > > > > >> > > > It is up to thin client library authors to use > any > > > > > config > > > > > > > > format > > > > > > > > > > they > > > > > > > > > > >> > > like > > > > > > > > > > >> > > > and then convert it into protocol-defined > format. > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > C# thin client uses custom format, for example, > > not > > > > > > Spring. > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > [1] > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > https://apacheignite.readme. > > io/docs/binary-client- > > > > > > > > > > >> > > protocol-cache-configuration- > > > > operations#section-op_cache_ > > > > > > > > > > >> > > create_with_configuration > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > On Mon, May 14, 2018 at 7:54 PM, Ivan Rakov < > > > > > > > > > > ivan.glu...@gmail.com> > > > > > > > > > > >> > > wrote: > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > Dmitry, > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > We rely on Spring Framework when we start > Ignite > > > > node > > > > > > from > > > > > > > > XML > > > > > > > > > > >> > > > > configuration. Spring doesn't easily support > > > another > > > > > > > formats > > > > > > > > > of > > > > > > > > > > >> > > > > configuration files. I think, the main reason > > for > > > > this > > > > > > is > > > > > > > > > > built-in > > > > > > > > > > >> > > > ability > > > > > > > > > > >> > > > > to validate configuration via XML Schema. We > can > > > > > surely > > > > > > > hack > > > > > > > > > > this > > > > > > > > > > >> > > around > > > > > > > > > > >> > > > (I > > > > > > > > > > >> > > > > bet there are existing libraries for > configuring > > > > > Spring > > > > > > > with > > > > > > > > > > JSON), > > > > > > > > > > >> > > but I > > > > > > > > > > >> > > > > don't think that anyone suffered from > inability > > to > > > > > > > > statically > > > > > > > > > > >> > configure > > > > > > > > > > >> > > > > Ignite with json/yaml. > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > Regarding thin clients: makes sense. I suppose > > > > > necessary > > > > > > > > > > mappings > > > > > > > > > > >> > will > > > > > > > > > > >> > > be > > > > > > > > > > >> > > > > implemented as a part of thin client. > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > Best Regards, > > > > > > > > > > >> > > > > Ivan Rakov > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > On 14.05.2018 18:58, Dmitriy Govorukhin wrote: > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > >> Hi, Igniters! > > > > > > > > > > >> > > > >> > > > > > > > > > > >> > > > >> As far as I know, many people work on a thin > > > client > > > > > for > > > > > > > > > > different > > > > > > > > > > >> > > > language > > > > > > > > > > >> > > > >> (go,js,php...). > > > > > > > > > > >> > > > >> Are there any reasons why ignite does not > > support > > > > > yaml > > > > > > or > > > > > > > > > json > > > > > > > > > > >> > format > > > > > > > > > > >> > > > for > > > > > > > > > > >> > > > >> configuration? or some other popular format? > > > > > > > > > > >> > > > >> In future, it can help to integrate with thin > > > > > clients, > > > > > > > for > > > > > > > > > > >> example, > > > > > > > > > > >> > js > > > > > > > > > > >> > > > >> client may want to dynamic cache start, he > > passes > > > > > cache > > > > > > > > > > >> > configuration > > > > > > > > > > >> > > > (in > > > > > > > > > > >> > > > >> native format, for js it will json) through > > TCP, > > > > > Ignite > > > > > > > > node > > > > > > > > > > >> unwrap > > > > > > > > > > >> > > and > > > > > > > > > > >> > > > >> remap to java representation and dynamic > start > > > > cache. > > > > > > > > > > >> > > > >> > > > > > > > > > > >> > > > >> > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > Best regards, > > > Andrey Kuznetsov. > > > > > >