ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Saikat Maitra <saikat.mai...@gmail.com>
Subject Re: Ignite-spring-boot-autoconfigurer
Date Fri, 24 Jan 2020 04:41:02 GMT
Hi Nikolay,

Thank you for updating the PR, the changes looks good.

Regards,
Saikat

On Wed, Jan 22, 2020 at 1:33 PM Николай Ижиков <nizhikov@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.maitra@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 Николай Ижиков <nizhikov@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.maitra@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 Николай Ижиков <nizhikov@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.dev@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 <dmagda@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 Николай Ижиков <nizhikov@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
> >>>>>>
> >>>>>>
> >>>>
> >>>
> >>
> >>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message