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