Hello, Saikat. Thank you so much for the review.
I answered your questions and resolve all the comments. Please, take a look, one more time. > 22 янв. 2020 г., в 07:58, Saikat Maitra <saikat.mai...@gmail.com> написал(а): > > Hi Nikolay, > > I have reviewed the PR and shared comments. > > Please let me know if you have any feedback. > > Regards, > Saikat > > On Mon, Jan 20, 2020 at 2:42 PM Николай Ижиков <nizhi...@apache.org> wrote: > >> Hello, Saikat. >> >> Thanks, for feedback. >> >> I raised a PR [1] to `ignite-extensions`. >> >> You can find description of the new module below(examples can be found at >> [2]): >> >> Module provides the ability to integrate `Ignite` into you spring-boot >> application with zero(or minimal) configuration. >> >> After you add this module as a dependency to your spring-boot application >> `Ignite` node will be configured and injected into `BeanFactory`. >> >> Algorithm to configure `Ignite` is the following: >> 1. If `IgniteConfiguration` bean exists in the `BeanFactory` it will be >> used. >> 2. If `IgniteConfiguration` bean doesn't exist following rules are >> applied: >> 2.1. Default `Ignite` configuration created. >> 2.2. If `IgniteConfigurer` bean exists in `BeanFactory` it will be >> used to customize `IgniteConfiguration`. >> If a user wants to set custom SPI instances or similar hardcoded >> values >> one should do it with `IgniteConfigurer` implementation. >> 2.3 Application properties applied to `IgniteConfiguration`. Prefix >> for the properties is `ignite`. >> >> >> [1] https://github.com/apache/ignite-extensions/pull/6 >> [2] https://github.com/nizhikov/ignite-spring-boot-autoconfigure-example >> >> >>> 18 янв. 2020 г., в 06:44, Saikat Maitra <saikat.mai...@gmail.com> >> написал(а): >>> >>> Hi Nikolay, >>> >>> Thank you for your email. As part of Ignite Extensions migration we are >> migrating Ignite Extensions to following repo. >>> >>> https://github.com/apache/ignite-extensions >>> >>> We have added flink and pub-sub modules and few additional modules are >> open in PR. >>> >>> You can refer to this PR to see how we are migrating the modules >> https://github.com/apache/ignite-extensions/pull/5 >>> >>> I wanted to connect and discuss the changes to understand the spring >> boot auto configure feature. We currently have an ignite spring module that >> allows resource injection capabilities and provides a parser for Spring >> based xml configuration files. Can you please review and share if the >> changes you are proposing can be added as part of Ignite spring module or >> it make sense to make it a separate spring boot auto configure module. >>> >>> https://github.com/apache/ignite/tree/master/modules/spring >>> >>> Regards, >>> Saikat >>> >>> >>> >>> >>> >>> >>> >>> On Fri, Jan 17, 2020 at 3:12 AM Николай Ижиков <nizhi...@apache.org> >> wrote: >>> Tests added. >>> Please, review. >>> >>> Saikat, can you help with this PR [1]? >>> >>> I think it should be added as a separate module as we do with the flink >> integration. >>> Can you help me with it? >>> Do we have some how-to for it? >>> >>> [1] https://github.com/apache/ignite/pull/7237 >>> >>>> 16 янв. 2020 г., в 16:51, Николай Ижиков <nizhikov....@gmail.com> >> написал(а): >>>> >>>> Hello, Denis. >>>> >>>> Thanks, for the feedback. >>>> >>>> Alexey, it seems, PR is ready to be reviewed, but I need some time(a >> day or two) to write tests. >>>> You can start with the core code review if you wish. >>>> >>>> Here are autoconfigurer requirements: >>>> >>>> 1. Start usage of Ignite with minimal(or zero) configuration. >>>> 2. Configure Ignite configuration properties with the standard spring >> boot application properties. >>>> 3. Configure Ignite SPI implementation and so on that can’t be >> configured via #2. >>>> >>>> After some consultation with the Spring experts from the >> community(Maxim Stepachev thanks for the idea) >>>> I updated the PR with the logic described below: >>>> >>>> 1. To enable Ignite auto-configuration user should add >> `org.apache.ignite:spring-boot-ignite-autoconfigure:2.9.0` to dependencies. >>>> After it Ignite node will be started during spring-boot application >> startup. >>>> >>>> 2. IgniteConfiguration initialization logic: >>>> >>>> 2.1 If {@link IgniteConfiguration} bean exists in {@link BeanFactory} >> it will be used for the node start. >>>> 2.2 If {@link IgniteConfiguration} bean doesn't exist following rules >> are applied: >>>> * Newly introducer IgniteConfigurer bean will be used to customize an >> empty IgniteConfiguration instance. >>>> If a user wants to set custom SPI instances or similar hardcoded >> values one should do it IgniteConfigurer implementation. >>>> >>>> * Application properties will override config values. Prefix for >> properties names is "ignite». >>>> >>>> PS. Similar logic applied for the second module - >> `org.apache.ignite:spring-boot-ignite-client-autoconfigure:2.9.0`. >>>> It provides the same features but for the autoconfiguration of the >> IgniteClient >>>> >>>> >>>>> 15 янв. 2020 г., в 03:03, Denis Magda <dma...@apache.org> написал(а): >>>>> >>>>> Nikolay, >>>>> >>>>> Thanks for contributing in this direction! That's one of the gaps on >> our >>>>> end and the user community will be certainly thankful once we fill it >> in. >>>>> >>>>> *Alexey Kuznetsov*, as one of the Spring Boot experts, could you >> spend some >>>>> time reviewing the changes? >>>>> >>>>> As for the extensions/modularization activities, please join Saikat >> in the >>>>> discussions ([1] and [2]). He is contributing the foundation and >> moving our >>>>> existing integrations to that new repository. The Spring Boot >> improvements >>>>> might be moved or, another option, we might add this class to the >> core? >>>>> >>>>> [1] >>>>> >> http://apache-ignite-developers.2346864.n4.nabble.com/IGNITE-12361-Migrate-Flume-module-to-ignite-extensions-td45010.html >>>>> [2] >>>>> >> http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSS-Proposal-for-Ignite-Extensions-as-a-separate-Bahir-module-or-Incubator-project-td44064.html >>>>> >>>>> - >>>>> Denis >>>>> >>>>> >>>>> On Sat, Jan 11, 2020 at 10:44 AM Николай Ижиков <nizhi...@apache.org> >> wrote: >>>>> >>>>>> Hello, Igniters. >>>>>> >>>>>> During Ignite meetup I took part in there was a request from the >> users. >>>>>> They propose to create a custom spring boot autoconfigurer module for >>>>>> Ignite. >>>>>> This module should provide a smooth injection of Ignite to any >> spring-boot >>>>>> application. >>>>>> >>>>>> I've implemented a tiny straightforward prototype of the module [1] >>>>>> Examples of the usage of integration can be found in the example >>>>>> application [2] >>>>>> >>>>>> For now, the module provides the following features: >>>>>> >>>>>> 1. Starts Ignite node and inject it in the spring ApplicationContext >> if >>>>>> bean of the type IgniteConfiguration exists in the context. >>>>>> This can be achieved in two ways: >>>>>> * create `IgniteConfiguration` from java code [3] >>>>>> * add `ignite.xml` file to the application context [4] >>>>>> >>>>>> 2. Starts IgniteClient instance and injects it int the spring >> Application >>>>>> if: >>>>>> * ClientConfiguration bean exists in the context [5] >>>>>> * `spring.data.ignite.clientAddresses` exists in the application >>>>>> properties. [6] >>>>>> >>>>>> I have a following questions regards new module: >>>>>> >>>>>> 1. We have an extension initiative so where is the right place for >> the >>>>>> new module? >>>>>> 2. Do we have spring experts in the community? What other features >> for >>>>>> this autoconfigurer module required? >>>>>> >>>>>> [1] https://github.com/apache/ignite/pull/7237/files >>>>>> [2] >> https://github.com/nizhikov/ignite-spring-boot-autoconfigure-example >>>>>> [3] >>>>>> >> https://github.com/nizhikov/ignite-spring-boot-autoconfigure-example/tree/master/src/main/java/org/apache/ignite/spring/boot/configfrombean >>>>>> [4] >>>>>> >> https://github.com/nizhikov/ignite-spring-boot-autoconfigure-example/tree/master/src/main/java/org/apache/ignite/spring/boot/configfromfile >>>>>> [5] >>>>>> >> https://github.com/nizhikov/ignite-spring-boot-autoconfigure-example/tree/master/src/main/java/org/apache/ignite/spring/boot/thinclientfrombean >>>>>> [6] >>>>>> >> https://github.com/nizhikov/ignite-spring-boot-autoconfigure-example/tree/master/src/main/java/org/apache/ignite/spring/boot/thinclientfromconfig >>>>>> >>>>>> >>>> >>> >> >>