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

Reply via email to