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 Wed, 22 Jan 2020 04:58:02 GMT
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