Merged to master [1] Igniters, I want to release both modules I added. Do we have documentation, how it should be done for ignite-extensions?
[1] https://github.com/apache/ignite-extensions/commit/575ec510e4d48b1e0c2ec7e4cf8d596e7de82f70 пн, 27 янв. 2020 г. в 13:06, Nikolay Izhikov <nizhi...@apache.org>: > Hello, Alexey Kuznetsov. > > I have two approvals from Saikat Maitra and Maxim Stepachov. > I have plans to merge spring-boot autoconfigure modules to > ignite-extensions. [1] > Do you want to perform additional review? > > [1] https://github.com/apache/ignite-extensions/pull/6 > > пт, 24 янв. 2020 г. в 07:41, Saikat Maitra <saikat.mai...@gmail.com>: > >> Hi Nikolay, >> >> Thank you for updating the PR, the changes looks good. >> >> Regards, >> Saikat >> >> On Wed, Jan 22, 2020 at 1:33 PM Николай Ижиков <nizhi...@apache.org> >> wrote: >> >> > 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 >> > >>>>>> >> > >>>>>> >> > >>>> >> > >>> >> > >> >> > >> >> > >> > >> >