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

Reply via email to