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

Reply via email to