here is the release:
https://search.maven.org/artifact/io.micronaut.ignite/micronaut-ignite-core/1.0.0.RC1/jar

On Fri, Sep 11, 2020 at 10:16 AM Michael Pollind <mpoll...@gmail.com> wrote:

> looks like I was wrong, will have to wait till this PR get merged and a
> release is made in the repo.
>
> https://github.com/micronaut-projects/micronaut-core/pull/4070
>
> On Fri, Sep 11, 2020 at 10:01 AM Michael Pollind <mpoll...@gmail.com>
> wrote:
>
>> The caching is setup in the branch and the release candidate is already
>> out I think. can't think of anything off the top of my head with tweaking
>> the ignite cache module but i'm sure a few adjustments can be made.
>>
>> On Thu, Sep 10, 2020 at 10:41 AM Denis Magda <dma...@apache.org> wrote:
>>
>>> Michael, congrats, it was a pleasure working with you!
>>>
>>> Let us know once the release candidate is published. I'll go ahead and
>>> update my tutorial, and would probably create a separate blog post for
>>> DZone or Dev.to:
>>>
>>> https://www.gridgain.com/docs/tutorials/micronaut/getting-started/ignite-micronaut-getting-started
>>>
>>> Are you planning to work on the Micronaut Caching module? Or is it
>>> already enabled and we just need to prepare examples on how to use Ignite
>>> as a Micronaut cache?
>>>
>>> -
>>> Denis
>>>
>>>
>>> On Thu, Sep 10, 2020 at 9:17 AM Michael Pollind <mpoll...@gmail.com>
>>> wrote:
>>>
>>>> With some help from @Denis Magda <dma...@gridgain.com>, we were able
>>>> to rework micronaut-ignite and  a release candidate was approved. I'm
>>>> pretty happy with this first pass and there is a lot more that can be added
>>>> but this is a good initial first step.
>>>>
>>>> documentation can be bound here:
>>>> https://micronaut-projects.github.io/micronaut-ignite/snapshot/guide/
>>>> PR: https://github.com/micronaut-projects/micronaut-ignite/pull/33
>>>>
>>>> On Thu, Aug 27, 2020 at 5:32 PM Michael Pollind <mpoll...@gmail.com>
>>>> wrote:
>>>>
>>>>> Not sure, I would probably bring that up in the PR so the micronaut
>>>>> devs are aware of this. Not sure how the CI will work and what can be
>>>>> arranged in this case.
>>>>>
>>>>> On Thu, Aug 27, 2020 at 3:50 PM Denis Magda <dma...@apache.org> wrote:
>>>>>
>>>>>> Michael,
>>>>>>
>>>>>> The docs look good enough for the release. Once the integration is
>>>>>> released, I'll update and extend my Micronaut tutorial elucidating on
>>>>>> how
>>>>>> to use the integration in practice for various use cases.
>>>>>>
>>>>>> Btw, are the ignite-core and ignite-cache Maven artifacts will be
>>>>>> released
>>>>>> for a specific version of Ignite? Ideally, the version of Ignite
>>>>>> needs to
>>>>>> be set in a pom.xml and the Micronaut integration should pick them up.
>>>>>>
>>>>>> Also, what are we doing next - reviewing APIs of the ignite-cache
>>>>>> module or
>>>>>> going through a review process of the ignite-core and merging it
>>>>>> first to
>>>>>> the Micronaut repository?
>>>>>>
>>>>>> -
>>>>>> Denis
>>>>>>
>>>>>>
>>>>>> On Wed, Aug 26, 2020 at 3:35 PM Michael Pollind <mpoll...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>> > Also you need to sign the CLA since you add a commit to my branch.
>>>>>> >
>>>>>> > branch:
>>>>>> https://github.com/pollend/micronaut-ignite/tree/feature/rework
>>>>>> > linked PR:
>>>>>> https://github.com/micronaut-projects/micronaut-ignite/pull/33
>>>>>> >
>>>>>> > --
>>>>>> > Michael Pollind
>>>>>> >
>>>>>> > On Wed, Aug 26, 2020 at 3:29 PM Denis Magda <dma...@apache.org>
>>>>>> wrote:
>>>>>> >
>>>>>> > > Could you share the full path to the branch? Don't want to pick a
>>>>>> wrong
>>>>>> > one
>>>>>> > > accidentally.
>>>>>> > >
>>>>>> > >
>>>>>> > > -
>>>>>> > > Denis
>>>>>> > >
>>>>>> > >
>>>>>> > > On Wed, Aug 26, 2020 at 2:47 PM Michael Pollind <
>>>>>> mpoll...@gmail.com>
>>>>>> > > wrote:
>>>>>> > >
>>>>>> > > > so that clears up the extra flag for micronaut-cache. just need
>>>>>> to
>>>>>> > > > intercept the default IgniteConfiguration bean and update the
>>>>>> > > > configuration. if you pull my latest changes from the rework
>>>>>> branch you
>>>>>> > > can
>>>>>> > > > look at the docs for that micronaut module. `./gradlew docs`.
>>>>>> > Finalizing
>>>>>> > > > the docs should be the last part of this.  The configuration
>>>>>> from my
>>>>>> > > > perspective seems pretty much there. Is there anything else
>>>>>> that is
>>>>>> > > > missing?
>>>>>> > > >
>>>>>> > > > On Wed, Aug 26, 2020 at 1:31 PM Denis Magda <dma...@apache.org>
>>>>>> wrote:
>>>>>> > > >
>>>>>> > > > > 👍 Nice catch!
>>>>>> > > > >
>>>>>> > > > > -
>>>>>> > > > > Denis
>>>>>> > > > >
>>>>>> > > > >
>>>>>> > > > > On Wed, Aug 26, 2020 at 12:16 PM Michael Pollind <
>>>>>> mpoll...@gmail.com
>>>>>> > >
>>>>>> > > > > wrote:
>>>>>> > > > >
>>>>>> > > > > > One thing that just occurred to me for the
>>>>>> > > DefaultIgniteConfiguration.
>>>>>> > > > > you
>>>>>> > > > > > can actually just intercept the bean when it's created.
>>>>>> This should
>>>>>> > > let
>>>>>> > > > > us
>>>>>> > > > > > use the enable flag from ignite-core for ignite-cache
>>>>>> without the
>>>>>> > > > > > additional flag.
>>>>>> > > > > >
>>>>>> > > > > > @Singleton
>>>>>> > > > > > public class IgniteConfigurationFactoryInterceptor
>>>>>> implements
>>>>>> > > > > > BeanCreatedEventListener<DefaultIgniteConfiguration> {
>>>>>> > > > > >     @Override
>>>>>> > > > > >     public IgniteConfiguration
>>>>>> > > > > > onCreated(BeanCreatedEvent<DefaultIgniteConfiguration>
>>>>>> event) {
>>>>>> > > > > >         IgniteConfiguration configuration = event.getBean();
>>>>>> > > > > >         configuration.setIgniteInstanceName("instance-a");
>>>>>> > > > > >         return configuration;
>>>>>> > > > > >     }
>>>>>> > > > > > }
>>>>>> > > > > >
>>>>>> > > > > >
>>>>>> > > > > > On Wed, Aug 26, 2020 at 11:31 AM Denis Magda <
>>>>>> dma...@apache.org>
>>>>>> > > > wrote:
>>>>>> > > > > >
>>>>>> > > > > > > Michael,
>>>>>> > > > > > >
>>>>>> > > > > > > Looks terrific! I went ahead and grouped the configuration
>>>>>> > samples
>>>>>> > > > by a
>>>>>> > > > > > > client type:
>>>>>> > > > > > >
>>>>>> > > > >
>>>>>> > >
>>>>>> https://cwiki.apache.org/confluence/display/IGNITE/Micronaut+Integration
>>>>>> > > > > > >
>>>>>> > > > > > > As you see, the "Ignite Thin Client" section is blank for
>>>>>> now.
>>>>>> > > Would
>>>>>> > > > > you
>>>>>> > > > > > > mind filling it with configuration options following the
>>>>>> format
>>>>>> > > taken
>>>>>> > > > > for
>>>>>> > > > > > > the thick client?
>>>>>> > > > > > >
>>>>>> > > > > > > Ping me here once you're ready to review the API and
>>>>>> > implementation
>>>>>> > > > of
>>>>>> > > > > > the
>>>>>> > > > > > > ignite-caching module.
>>>>>> > > > > > >
>>>>>> > > > > > > -
>>>>>> > > > > > > Denis
>>>>>> > > > > > >
>>>>>> > > > > > >
>>>>>> > > > > > > On Tue, Aug 25, 2020 at 9:16 PM Michael Pollind <
>>>>>> > > mpoll...@gmail.com>
>>>>>> > > > > > > wrote:
>>>>>> > > > > > >
>>>>>> > > > > > > > Here is a sample project I threw together and I've also
>>>>>> updated
>>>>>> > > the
>>>>>> > > > > > wiki
>>>>>> > > > > > > > just a bit. working on updating the documentation on the
>>>>>> > > micronaut
>>>>>> > > > > end.
>>>>>> > > > > > > >
>>>>>> > > > > > > >
>>>>>> > > > > >
>>>>>> > > >
>>>>>> >
>>>>>> https://cwiki.apache.org/confluence/display/IGNITE/Micronaut+Integration
>>>>>> > > > > > > > https://github.com/pollend/micronaut-ignite-sample
>>>>>> > > > > > > >
>>>>>> > > > > > > > On Mon, Aug 24, 2020 at 6:57 PM Michael Pollind <
>>>>>> > > > mpoll...@gmail.com>
>>>>>> > > > > > > > wrote:
>>>>>> > > > > > > >
>>>>>> > > > > > > > >
>>>>>> > > > > > > > >
>>>>>> > > > > > > > > yea, I'm not sure about ignite-cache config.
>>>>>> splitting it
>>>>>> > into
>>>>>> > > > two
>>>>>> > > > > > > > modules
>>>>>> > > > > > > > > seems kind of overly complicated, but I also don't
>>>>>> really
>>>>>> > like
>>>>>> > > > the
>>>>>> > > > > > > random
>>>>>> > > > > > > > > boolean flag. here is the tweaks from the config your
>>>>>> > provider:
>>>>>> > > > > > > > > https://github.com/pollend/micronaut-ignite/pull/2
>>>>>> > > > > > > > >
>>>>>> > > > > > > > > kind of strange that there are not getters for the
>>>>>> > > > > > > > > TcpDiscoveryKubernetesIpFinder but there is enough to
>>>>>> verify
>>>>>> > > that
>>>>>> > > > > the
>>>>>> > > > > > > > > correct ipfinder was set from the unit test i've
>>>>>> written.
>>>>>> > > > > > > > >
>>>>>> > > > > > > > > static ip finder
>>>>>> > > > > > > > >
>>>>>> > > > > > > > > "ignite.enabled"                                    :
>>>>>> true,
>>>>>> > > > > > > > > "ignite.communication-spi.local-port"               :
>>>>>> > > > > > "localhost:1800",
>>>>>> > > > > > > > > "ignite.discovery-spi.static-ip-finder.enabled"     :
>>>>>> "true",
>>>>>> > > > > > > > > "ignite.discovery-spi.static-ip-finder.addresses[0]":
>>>>>> "
>>>>>> > > > > > 127.0.0.1:47500
>>>>>> > > > > > > ",
>>>>>> > > > > > > > > "ignite.discovery-spi.static-ip-finder.addresses[1]":
>>>>>> "
>>>>>> > > > > > 127.0.0.1:47501
>>>>>> > > > > > > ",
>>>>>> > > > > > > > >
>>>>>> > > > > > > > > kubernetties ip finder
>>>>>> > > > > > > > >
>>>>>> > > > > > > > > "ignite.enabled"
>>>>>>  : true,
>>>>>> > > > > > > > > "ignite.communication-spi.local-port"                :
>>>>>> > > > > > > "localhost:1800",
>>>>>> > > > > > > > > "ignite.discovery-spi.kubernetes-ip-finder.enabled"  :
>>>>>> > "true",
>>>>>> > > > > > > > > "ignite.discovery-spi.kubernetes-ip-finder.namespace":
>>>>>> > > > "HelloWorld"
>>>>>> > > > > > > > >
>>>>>> > > > > > > > >
>>>>>> > > > > > > > >
>>>>>> > > > > > > > >
>>>>>> > > > > > > > >
>>>>>> > > > > > > > > On Mon, Aug 24, 2020 at 6:16 PM Denis Magda <
>>>>>> > dma...@apache.org
>>>>>> > > >
>>>>>> > > > > > wrote:
>>>>>> > > > > > > > >
>>>>>> > > > > > > > >> Michael,
>>>>>> > > > > > > > >>
>>>>>> > > > > > > > >> I was thinking over the idea of splitting the
>>>>>> ignite-cache
>>>>>> > > > module
>>>>>> > > > > in
>>>>>> > > > > > > two
>>>>>> > > > > > > > >> (one for a thick-client based connection and the
>>>>>> other for
>>>>>> > > thin
>>>>>> > > > > > client
>>>>>> > > > > > > > >> connections), and would try to avoid this route if
>>>>>> possible.
>>>>>> > > > > > > > >>
>>>>>> > > > > > > > >> With the @CacheConfig annotation, Micronaut
>>>>>> developers can
>>>>>> > > > create
>>>>>> > > > > a
>>>>>> > > > > > > > >> generic
>>>>>> > > > > > > > >> implementation that is agnostic to the Ignite
>>>>>> connectivity
>>>>>> > > > > methods,
>>>>>> > > > > > > > which
>>>>>> > > > > > > > >> is good. While internally, the ignite-cache
>>>>>> implementation
>>>>>> > can
>>>>>> > > > > > decide
>>>>>> > > > > > > > what
>>>>>> > > > > > > > >> Ignite Cache API to use (the thick or thin client
>>>>>> one,
>>>>>> > depends
>>>>>> > > > on
>>>>>> > > > > > the
>>>>>> > > > > > > > type
>>>>>> > > > > > > > >> of a client you started with our auto-configuration
>>>>>> > feature).
>>>>>> > > > > Let’s
>>>>>> > > > > > > > >> discuss
>>>>>> > > > > > > > >> all the existing issues here and jump on another
>>>>>> call to
>>>>>> > > > finalize
>>>>>> > > > > a
>>>>>> > > > > > > > >> solution if needed.
>>>>>> > > > > > > > >>
>>>>>> > > > > > > > >> Denis
>>>>>> > > > > > > > >>
>>>>>> > > > > > > > >> On Monday, August 24, 2020, Denis Magda <
>>>>>> dma...@apache.org>
>>>>>> > > > > wrote:
>>>>>> > > > > > > > >>
>>>>>> > > > > > > > >> > Michael,
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > Great progress, thanks for your patience. I went
>>>>>> ahead and
>>>>>> > > > > pushed
>>>>>> > > > > > > some
>>>>>> > > > > > > > >> > changes to your working branch. As you'll see,
>>>>>> those
>>>>>> > changes
>>>>>> > > > do
>>>>>> > > > > > some
>>>>>> > > > > > > > >> minor
>>>>>> > > > > > > > >> > tweaks in the DefaultIgniteThinClientConfiguration
>>>>>> class
>>>>>> > and
>>>>>> > > > add
>>>>>> > > > > > > > Static
>>>>>> > > > > > > > >> > with Kubernetes IP finders to the
>>>>>> > DefaultIgniteConfiguration
>>>>>> > > > > > class.
>>>>>> > > > > > > > The
>>>>>> > > > > > > > >> > IgniteConfigurationSpec fails for now, but I think
>>>>>> we'll
>>>>>> > > > figure
>>>>>> > > > > > how
>>>>>> > > > > > > to
>>>>>> > > > > > > > >> > modify the test on the call today.
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > Also, let's decide if we want to configure
>>>>>> IgniteCaches
>>>>>> > via
>>>>>> > > > the
>>>>>> > > > > > > > >> Micronaut
>>>>>> > > > > > > > >> > configuration. If an application needs to create
>>>>>> any
>>>>>> > caches,
>>>>>> > > > it
>>>>>> > > > > > can
>>>>>> > > > > > > do
>>>>>> > > > > > > > >> this
>>>>>> > > > > > > > >> > dynamically after an Ignite instance is started.
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > -
>>>>>> > > > > > > > >> > Denis
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > On Sat, Aug 22, 2020 at 1:15 PM Michael Pollind <
>>>>>> > > > > > mpoll...@gmail.com
>>>>>> > > > > > > >
>>>>>> > > > > > > > >> > wrote:
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > The way i've gone about providing dependencies is
>>>>>> that
>>>>>> > these
>>>>>> > > > can
>>>>>> > > > > > be
>>>>>> > > > > > > > >> > provided through a factory.
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > @Bean
>>>>>> > > > > > > > >> > @Named("default")
>>>>>> > > > > > > > >> > @Primary
>>>>>> > > > > > > > >> > public IgniteConfiguration
>>>>>> > > > > > > > >> igniteConfiguration(DefaultIgniteConfiguration
>>>>>> > configuration,
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> Collection<DefaultCacheConfiguration>
>>>>>> cacheConfigurations,
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> Collection<PluginProvider> providers,
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> Collection<DefaultExecutorConfiguration>
>>>>>> > > executorConfigurations,
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> Optional<PlatformConfiguration>
>>>>>> platformConfigurations,
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > Optional<CollisionSpi>
>>>>>> > > > > > > > >> collisionSpi,
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> Collection<LoadBalancingSpi> loadBalancingSpis,
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > Collection<FailoverSpi>
>>>>>> > > > > > > > >> failoverSpis,
>>>>>> > > > > > > > >> >
>>>>>> > > @ConsistencyId
>>>>>> > > > > > > > >> Optional<Serializable> consistencyId,
>>>>>> > > > > > > > >> >
>>>>>> > > > @IgniteLifecycle
>>>>>> > > > > > > > >> Collection<LifecycleBean> lifecycleBeans) {
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > >
>>>>>> > > >
>>>>>> configuration.setCacheConfiguration(cacheConfigurations.toArray(new
>>>>>> > > > > > > > >> CacheConfiguration[0]))
>>>>>> > > > > > > > >> >         .setPluginProviders(providers.toArray(new
>>>>>> > > > > > > PluginProvider[0]))
>>>>>> > > > > > > > >> >
>>>>>> > > > > >
>>>>>> .setExecutorConfiguration(executorConfigurations.toArray(new
>>>>>> > > > > > > > >> ExecutorConfiguration[0]))
>>>>>> > > > > > > > >> >
>>>>>> > > > > > >
>>>>>> .setPlatformConfiguration(platformConfigurations.orElse(null))
>>>>>> > > > > > > > >> >         .setFailoverSpi(failoverSpis.toArray(new
>>>>>> > > > > FailoverSpi[0]))
>>>>>> > > > > > > > >> >
>>>>>>  .setLoadBalancingSpi(loadBalancingSpis.toArray(new
>>>>>> > > > > > > > >> LoadBalancingSpi[0]))
>>>>>> > > > > > > > >> >
>>>>>>  .setConsistentId(consistencyId.orElse(null))
>>>>>> > > > > > > > >> >
>>>>>>  .setLifecycleBeans(lifecycleBeans.toArray(new
>>>>>> > > > > > > > LifecycleBean[0]))
>>>>>> > > > > > > > >> >
>>>>>>  .setCollisionSpi(collisionSpi.orElse(null));
>>>>>> > > > > > > > >> >     return configuration;
>>>>>> > > > > > > > >> > }
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > On Sat, Aug 22, 2020 at 8:37 AM Michael Pollind <
>>>>>> > > > > > mpoll...@gmail.com
>>>>>> > > > > > > >
>>>>>> > > > > > > > >> > wrote:
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > here is an updated example what the yaml looks
>>>>>> like now.
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > ignite:
>>>>>> > > > > > > > >> >     enabled: true
>>>>>> > > > > > > > >> >     comunication-spi:
>>>>>> > > > > > > > >> >         local-port: 5555
>>>>>> > > > > > > > >> >     cache-configurations:
>>>>>> > > > > > > > >> >     - accounts:
>>>>>> > > > > > > > >> >         table-name: ACCOUNTS
>>>>>> > > > > > > > >> >         key-type: String
>>>>>> > > > > > > > >> >     - books:
>>>>>> > > > > > > > >> >         table-name: BOOKS
>>>>>> > > > > > > > >> >         key-type: String
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > On Fri, Aug 21, 2020 at 10:28 PM Michael Pollind <
>>>>>> > > > > > > mpoll...@gmail.com>
>>>>>> > > > > > > > >> > wrote:
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > micronaut will only inject into a nested object if
>>>>>> its
>>>>>> > > static
>>>>>> > > > > and
>>>>>> > > > > > > > nested
>>>>>> > > > > > > > >> > in a class. Its a separate final class so it will
>>>>>> not work
>>>>>> > > in
>>>>>> > > > > this
>>>>>> > > > > > > > >> case. So
>>>>>> > > > > > > > >> > DataRegionConfiguration will not get set from the
>>>>>> > > environment.
>>>>>> > > > > > This
>>>>>> > > > > > > > is a
>>>>>> > > > > > > > >> > working example but this can be adjusted.  I guess
>>>>>> it
>>>>>> > would
>>>>>> > > > have
>>>>>> > > > > > to
>>>>>> > > > > > > be
>>>>>> > > > > > > > >> > setup like DefaultIgniteConfiguration.
>>>>>> > > > > > > DefaultDataStorageConfiguration
>>>>>> > > > > > > > >> > and a nested EachProperty? Lets try have a minimum
>>>>>> working
>>>>>> > > > setup
>>>>>> > > > > > and
>>>>>> > > > > > > > >> then
>>>>>> > > > > > > > >> > add in the missing configurations as we go?
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > @ConfigurationBuilder(value =
>>>>>> "dataStorageConfiguration",
>>>>>> > > > > > excludes =
>>>>>> > > > > > > > >> "dataRegionConfigurations")
>>>>>> > > > > > > > >> > final DataStorageConfiguration
>>>>>> dataStorageConfiguration =
>>>>>> > > new
>>>>>> > > > > > > > >> DataStorageConfiguration();
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > @EachProperty("dataRegionConfigurations")
>>>>>> > > > > > > > >> > public static class DefaultDataRegionConfiguration
>>>>>> {
>>>>>> > > > > > > > >> >     @ConfigurationBuilder()
>>>>>> > > > > > > > >> >     DataRegionConfiguration
>>>>>> dataRegionConfiguration = new
>>>>>> > > > > > > > >> DataRegionConfiguration();
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> >     public DataRegionConfiguration
>>>>>> > > > getDataRegionConfiguration()
>>>>>> > > > > {
>>>>>> > > > > > > > >> >         return dataRegionConfiguration;
>>>>>> > > > > > > > >> >     }
>>>>>> > > > > > > > >> > }
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > On Fri, Aug 21, 2020 at 7:08 PM Michael Pollind <
>>>>>> > > > > > mpoll...@gmail.com
>>>>>> > > > > > > >
>>>>>> > > > > > > > >> > wrote:
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > Dennis,
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > oh, so I made those adjustments. I must have
>>>>>> missed it
>>>>>> > > because
>>>>>> > > > > > that
>>>>>> > > > > > > > >> didn't
>>>>>> > > > > > > > >> > occur to me. So DefaultIgniteConfiguration is
>>>>>> fine, but
>>>>>> > > > > > > > >> ClientConfiguration
>>>>>> > > > > > > > >> > is a final class so that can't be extended from.
>>>>>> This PR
>>>>>> > is
>>>>>> > > > > > starting
>>>>>> > > > > > > > to
>>>>>> > > > > > > > >> > shape up from my perspective, I just need to
>>>>>> update the
>>>>>> > > > > > > documentation.
>>>>>> > > > > > > > >> The
>>>>>> > > > > > > > >> > other thing I did was add a flag for the
>>>>>> associated cache
>>>>>> > to
>>>>>> > > > use
>>>>>> > > > > > > > >> > micronuat-cache. umm, I'll play with this a bit
>>>>>> and see
>>>>>> > If I
>>>>>> > > > can
>>>>>> > > > > > > work
>>>>>> > > > > > > > >> out
>>>>>> > > > > > > > >> > something better. ignite.enabled can be false but
>>>>>> you can
>>>>>> > > > > provide
>>>>>> > > > > > > your
>>>>>> > > > > > > > >> own
>>>>>> > > > > > > > >> > bean in place but that doesn't seem quite right.
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > [image: image.png]
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> >
>>>>>> > > > https://github.com/micronaut-projects/micronaut-ignite/pull/33
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > On Fri, Aug 21, 2020 at 6:29 PM Denis Magda <
>>>>>> > > > dma...@apache.org>
>>>>>> > > > > > > > wrote:
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > Michael,
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > Thanks, for verifying.
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > I've tried extending ClientConfiguration but
>>>>>> couldn't get
>>>>>> > > the
>>>>>> > > > > > > > >> > > getters/setters working with
>>>>>> ConfigurationBuilder.
>>>>>> > Instead
>>>>>> > > > > they
>>>>>> > > > > > > are
>>>>>> > > > > > > > >> just
>>>>>> > > > > > > > >> > > placed into wrapper classes.
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > Have a look at how Hazelcast implemented the
>>>>>> default
>>>>>> > > > > configuration
>>>>>> > > > > > > for
>>>>>> > > > > > > > >> its
>>>>>> > > > > > > > >> > thin client by extending ClientConfig class of
>>>>>> Hazelcast
>>>>>> > > core:
>>>>>> > > > > > > > >> >
>>>>>> > https://github.com/micronaut-projects/micronaut-cache/blob/
>>>>>> > > > > > > > >> >
>>>>>> > > > >
>>>>>> master/cache-hazelcast/src/main/java/io/micronaut/cache/hazelcast/
>>>>>> > > > > > > > >> > HazelcastClientConfiguration.java
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > Some observations. After extending ClientConfig,
>>>>>> their
>>>>>> > > > > Micronaut's
>>>>>> > > > > > > > >> > HazelcastClientConfiguration exposes the following
>>>>>> > > > configuration
>>>>>> > > > > > > > >> > parameteres:
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> >    - Some fields of primitive types that belong to
>>>>>> the
>>>>>> > > parent
>>>>>> > > > > > > > >> ClientConfig
>>>>>> > > > > > > > >> >    class. They do this by adding this - *includes =
>>>>>> > > > > {"properties",
>>>>>> > > > > > > > >> >    "instanceName", "labels", "userContext",
>>>>>> > "clusterName"}*
>>>>>> > > > > > > > >> >    - ClientNetworkConfig, ConnectionRetryConfig,
>>>>>> > > SocketOptions
>>>>>> > > > > > > > >> properties
>>>>>> > > > > > > > >> >    (that exist in the parent ClientConfig class)
>>>>>> can not
>>>>>> > be
>>>>>> > > > > > > inherited
>>>>>> > > > > > > > as
>>>>>> > > > > > > > >> >    above. Thus, they define those with
>>>>>> > @ConfigurationBuilder
>>>>>> > > > > > > manually.
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > As a result, their implementation is simple and
>>>>>> compact,
>>>>>> > and
>>>>>> > > > > here
>>>>>> > > > > > > is a
>>>>>> > > > > > > > >> > final list of configuration properties:
>>>>>> > > > > > > > >> >
>>>>>> https://micronaut-projects.github.io/micronaut-cache/
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >>
>>>>>> > > > > > > >
>>>>>> > > > > >
>>>>>> > > >
>>>>>> >
>>>>>> snapshot/guide/#io.micronaut.cache.hazelcast.HazelcastClientConfiguration
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > Could you check if we can follow a similar
>>>>>> approach? Let's
>>>>>> > > > start
>>>>>> > > > > > > with
>>>>>> > > > > > > > >> the
>>>>>> > > > > > > > >> > thin client. It's much simpler.
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > > yea, will need to
>>>>>> > > > > > > > >> > > setup a way for a user to provide their own bean
>>>>>> because
>>>>>> > > > there
>>>>>> > > > > > is
>>>>>> > > > > > > no
>>>>>> > > > > > > > >> way
>>>>>> > > > > > > > >> > a
>>>>>> > > > > > > > >> > > full configuration could be covered but I
>>>>>> haven't quite
>>>>>> > > > worked
>>>>>> > > > > > > that
>>>>>> > > > > > > > >> out
>>>>>> > > > > > > > >> > > yet.
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > That will be outstanding and fit well the design.
>>>>>> Let me
>>>>>> > > know
>>>>>> > > > if
>>>>>> > > > > > you
>>>>>> > > > > > > > >> need
>>>>>> > > > > > > > >> > me to help to figure out how to do that with
>>>>>> Micronaut.
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > -
>>>>>> > > > > > > > >> > Denis
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > On Fri, Aug 21, 2020 at 5:52 PM Michael Pollind <
>>>>>> > > > > > mpoll...@gmail.com
>>>>>> > > > > > > >
>>>>>> > > > > > > > >> > wrote:
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> > > Dennis,
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > > >> > > This is what I came up with with some of the
>>>>>> > suggestions:
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > > >> > >
>>>>>> > > > https://github.com/micronaut-projects/micronaut-ignite/blob/
>>>>>> > > > > > > > >> >
>>>>>> 3e1529ca4a40c2eb00793e344a36bb48d2a7d3fe/ignite-core/src/
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > >
>>>>>> > > > >
>>>>>> >
>>>>>> main/java/io/micronaut/ignite/configuration/DefaultIgniteConfiguration.
>>>>>> > > > > > > > >> > java
>>>>>> > > > > > > > >> > > and
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > > >> > >
>>>>>> > > > https://github.com/micronaut-projects/micronaut-ignite/blob/
>>>>>> > > > > > > > >> >
>>>>>> 3e1529ca4a40c2eb00793e344a36bb48d2a7d3fe/ignite-core/src/
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >>
>>>>>> > > > > > > >
>>>>>> > > > > > >
>>>>>> > > > > >
>>>>>> > > > >
>>>>>> > > >
>>>>>> > >
>>>>>> >
>>>>>> main/java/io/micronaut/ignite/configuration/DefaultCacheConfiguration.java
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > > >> > > test cases:
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > > >> > >
>>>>>> > > > https://github.com/micronaut-projects/micronaut-ignite/blob/
>>>>>> > > > > > > > >> >
>>>>>> 3e1529ca4a40c2eb00793e344a36bb48d2a7d3fe/ignite-core/src/
>>>>>> > > > > > > > >> >
>>>>>> > > test/groovy/io/micronaut/ignite/IgniteConfigurationSpec.groovy
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > > >> > > I've tried extending ClientConfiguration but
>>>>>> couldn't
>>>>>> > get
>>>>>> > > > the
>>>>>> > > > > > > > >> > > getters/setters working with
>>>>>> ConfigurationBuilder.
>>>>>> > Instead
>>>>>> > > > > they
>>>>>> > > > > > > are
>>>>>> > > > > > > > >> just
>>>>>> > > > > > > > >> > > placed into wrapper classes. Anyways, I don't
>>>>>> think
>>>>>> > > > > > > > >> ConfigurationProperty
>>>>>> > > > > > > > >> > > is supposed to work this way. Also note the
>>>>>> table in the
>>>>>> > > > > > > > >> documentation is
>>>>>> > > > > > > > >> > > generated and without a way to exclude things I
>>>>>> don't
>>>>>> > > think
>>>>>> > > > > this
>>>>>> > > > > > > > will
>>>>>> > > > > > > > >> > work
>>>>>> > > > > > > > >> > > cleanly. The other thing I wanted to do was nest
>>>>>> > > > @EachProperty
>>>>>> > > > > > in
>>>>>> > > > > > > a
>>>>>> > > > > > > > >> > single
>>>>>> > > > > > > > >> > > @ConfigurationProperties but that doesn't work
>>>>>> with how
>>>>>> > > > stuff
>>>>>> > > > > > gets
>>>>>> > > > > > > > >> > resolved
>>>>>> > > > > > > > >> > > (
>>>>>> > > > > >
>>>>>> https://github.com/micronaut-projects/micronaut-core/issues/3938
>>>>>> > > > > > > ).
>>>>>> > > > > > > > >> so
>>>>>> > > > > > > > >> > the
>>>>>> > > > > > > > >> > > cachConfiguration is in another class. This is
>>>>>> kind of a
>>>>>> > > > first
>>>>>> > > > > > > > working
>>>>>> > > > > > > > >> > > example so this will need to be adjusted quite a
>>>>>> bit.
>>>>>> > yea,
>>>>>> > > > > will
>>>>>> > > > > > > need
>>>>>> > > > > > > > >> to
>>>>>> > > > > > > > >> > > setup a way for a user to provide their own bean
>>>>>> because
>>>>>> > > > there
>>>>>> > > > > > is
>>>>>> > > > > > > no
>>>>>> > > > > > > > >> way
>>>>>> > > > > > > > >> > a
>>>>>> > > > > > > > >> > > full configuration could be covered but I
>>>>>> haven't quite
>>>>>> > > > worked
>>>>>> > > > > > > that
>>>>>> > > > > > > > >> out
>>>>>> > > > > > > > >> > > yet.
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > > >> > > If this is ok then I can do another pass on the
>>>>>> > > confluence.
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > > >> > > On Fri, Aug 21, 2020 at 1:55 PM Denis Magda <
>>>>>> > > > > dma...@apache.org>
>>>>>> > > > > > > > >> wrote:
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > > >> > > > Michael,
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > > Finally, I figured out Micronaut configuration
>>>>>> > > > > specificities.
>>>>>> > > > > > > What
>>>>>> > > > > > > > >> > > confused
>>>>>> > > > > > > > >> > > > me before, is that even though the beans
>>>>>> configuration
>>>>>> > > in
>>>>>> > > > > > > > Micronaut
>>>>>> > > > > > > > >> > looks
>>>>>> > > > > > > > >> > > > quite similar to the Spring Boot approach, the
>>>>>> former
>>>>>> > > > > > automates
>>>>>> > > > > > > a
>>>>>> > > > > > > > >> lot
>>>>>> > > > > > > > >> > > with
>>>>>> > > > > > > > >> > > > the help of reflection in runtime. That's how
>>>>>> our
>>>>>> > > default
>>>>>> > > > > > Spring
>>>>>> > > > > > > > >> Boot
>>>>>> > > > > > > > >> > > > configuration looks
>>>>>> > > > > > > > >> > > > <
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > >
>>>>>> > https://github.com/apache/ignite-extensions/blob/master/
>>>>>> > > > > > > > >> >
>>>>>> modules/spring-boot-thin-client-autoconfigure-ext/src/
>>>>>> > > > > > > > >> >
>>>>>> > > > main/java/org/apache/ignite/springframework/boot/autoconfigure/
>>>>>> > > > > > > > >> > IgniteClientConfigurer.java
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > like. And that's enough to let the users
>>>>>> define any
>>>>>> > > > possible
>>>>>> > > > > > > > >> property
>>>>>> > > > > > > > >> > of
>>>>>> > > > > > > > >> > > an
>>>>>> > > > > > > > >> > > > IgniteConfiguration instance as per this
>>>>>> example
>>>>>> > > > > > > > >> > > > <
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > >
>>>>>> https://apacheignite-mix.readme.io/docs/spring-boot#
>>>>>> > > > > > > > >> > set-ignite-up-via-spring-boot-configuration
>>>>>> > > > > > > > >> > > > >.
>>>>>> > > > > > > > >> > > > The upside of the reflection.
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > > Anyway, let's go back to our world. That's
>>>>>> what I
>>>>>> > would
>>>>>> > > > > > suggest.
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > > *Ignite Thin Client*
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > >    - Let's create
>>>>>> DefaultThinClientConfiguration that
>>>>>> > > > > > *extends*
>>>>>> > > > > > > > >> > Ignite's
>>>>>> > > > > > > > >> > > >    ClientConfiguration
>>>>>> > > > > > > > >> > > >    <
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > >
>>>>>> https://github.com/apache/ignite/blob/master/modules/
>>>>>> > > > > > > > >> > core/src/main/java/org/apache/ignite/configuration/
>>>>>> > > > > > > > >> > ClientConfiguration.java
>>>>>> > > > > > > > >> > > > >.
>>>>>> > > > > > > > >> > > >    Once done, it will be possible to configure
>>>>>> most of
>>>>>> > > > > > > > >> > > ClientConfiguration
>>>>>> > > > > > > > >> > > >    settings which are primitive types. (guess
>>>>>> that's
>>>>>> > how
>>>>>> > > > you
>>>>>> > > > > > > were
>>>>>> > > > > > > > >> doing
>>>>>> > > > > > > > >> > > > that
>>>>>> > > > > > > > >> > > >    before I joined the review)
>>>>>> > > > > > > > >> > > >    - Some fields of the ClientConfiguration
>>>>>> class are
>>>>>> > of
>>>>>> > > > > > custom
>>>>>> > > > > > > > >> > > >    non-primitive types and should be added
>>>>>> into the
>>>>>> > > > > > > > >> > > >    DefaultThinClientConfiguration explicitly
>>>>>> via the
>>>>>> > > > > > > > >> > > @ConfigurationBuilder
>>>>>> > > > > > > > >> > > >    annotation. Those fields are *sslType,
>>>>>> sslProtocol,
>>>>>> > > > > > > > >> > > >     sslCtxFactory, txCfg*.
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > > Apart from the DefaultThinClientConfiguration,
>>>>>> can we
>>>>>> > > > > support
>>>>>> > > > > > > > >> another
>>>>>> > > > > > > > >> > > > configuration approach when a
>>>>>> ClientConfiguration bean
>>>>>> > > is
>>>>>> > > > > > > created
>>>>>> > > > > > > > >> > > > programmatically in the source code and the
>>>>>> > integration
>>>>>> > > > uses
>>>>>> > > > > > > that
>>>>>> > > > > > > > >> bean
>>>>>> > > > > > > > >> > to
>>>>>> > > > > > > > >> > > > initialize an instance of the thin client
>>>>>> (instead of
>>>>>> > > > > > > > >> > > > using DefaultThinClientConfiguration that
>>>>>> requires to
>>>>>> > > set
>>>>>> > > > > the
>>>>>> > > > > > > > >> > properties
>>>>>> > > > > > > > >> > > > via YAML,etc.). For instance, that's how the
>>>>>> > > > > > ClientConfiguration
>>>>>> > > > > > > > >> bean
>>>>>> > > > > > > > >> > is
>>>>>> > > > > > > > >> > > > created programmatically in Spring Boot
>>>>>> > > > > > > > >> > > > <
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > > >>
>>>>>> > > > > > >
>>>>>> > > > >
>>>>>> > >
>>>>>> https://apacheignite-mix.readme.io/docs/spring-boot#set-thin-client-up-
>>>>>> > > > > > > > >> > programmatically
>>>>>> > > > > > > > >> > > > >and
>>>>>> > > > > > > > >> > > > our integration uses it to initialize an Ignite
>>>>>> > object.
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > > *Ignite Node (server or thick client)*
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > > Obviously, this one is trickier due to the
>>>>>> numerous
>>>>>> > > > > > > configuration
>>>>>> > > > > > > > >> > > > parameters of the IgniteConfiguration class
>>>>>> > > > > > > > >> > > > <
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > >
>>>>>> https://github.com/apache/ignite/blob/master/modules/
>>>>>> > > > > > > > >> > core/src/main/java/org/apache/ignite/configuration/
>>>>>> > > > > > > > >> > IgniteConfiguration.java
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > .
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > > So, as you suggested before, we need to select
>>>>>> the
>>>>>> > most
>>>>>> > > > > > > frequently
>>>>>> > > > > > > > >> used
>>>>>> > > > > > > > >> > > > configuration parameters and add them to the
>>>>>> > > > > > > > >> DefaultIgniteConfiguration
>>>>>> > > > > > > > >> > > > with @ConfigurationBuilder annotation.
>>>>>> However, it
>>>>>> > seems
>>>>>> > > > > > > > reasonable
>>>>>> > > > > > > > >> if
>>>>>> > > > > > > > >> > > > DefaultIgniteConfiguration will extend Ignite's
>>>>>> > > > > > > > IgniteConfiguration
>>>>>> > > > > > > > >> (so
>>>>>> > > > > > > > >> > > > that we don't need to list parameters of
>>>>>> primitive
>>>>>> > > types).
>>>>>> > > > > > Based
>>>>>> > > > > > > > on
>>>>>> > > > > > > > >> my
>>>>>> > > > > > > > >> > > > experience, I would add the following settings
>>>>>> of
>>>>>> > custom
>>>>>> > > > > > > > >> non-primitive
>>>>>> > > > > > > > >> > > > types:
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > >    - TcpDiscoverySpi
>>>>>> > > > > > > > >> > > >    <
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > >
>>>>>> > > >
>>>>>> https://github.com/apache/ignite/blob/f4b30f7f1e736845ffa8eaf2d8aa17
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >>
>>>>>> > > > > > > >
>>>>>> > > > > > >
>>>>>> > > > > >
>>>>>> > > > >
>>>>>> > > >
>>>>>> > >
>>>>>> >
>>>>>> 1700a928eb/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/
>>>>>> > > > > > > > >> > TcpDiscoverySpi.java
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > with
>>>>>> > > > > > > > >> > > >    all its fields of primitive types (this
>>>>>> should be
>>>>>> > > done
>>>>>> > > > > > > easily,
>>>>>> > > > > > > > >> > right,
>>>>>> > > > > > > > >> > > >    without copy-paste?) and its ipFinder
>>>>>> field. In the
>>>>>> > > > > > > beginning,
>>>>>> > > > > > > > I
>>>>>> > > > > > > > >> > would
>>>>>> > > > > > > > >> > > > only
>>>>>> > > > > > > > >> > > >    support setting TcpDiscoveryVmIpFinder
>>>>>> > > > > > > > >> > > >    <
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > >
>>>>>> > > >
>>>>>> https://github.com/apache/ignite/blob/f4b30f7f1e736845ffa8eaf2d8aa17
>>>>>> > > > > > > > >> >
>>>>>> 1700a928eb/modules/core/src/main/java/org/apache/ignite/
>>>>>> > > > > > > > >> >
>>>>>> spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > and
>>>>>> > > > > > > > >> > > >    KubernetesIpFinder
>>>>>> > > > > > > > >> > > >    <
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > >
>>>>>> > > >
>>>>>> https://github.com/apache/ignite/blob/f4b30f7f1e736845ffa8eaf2d8aa17
>>>>>> > > > > > > > >> >
>>>>>> 1700a928eb/modules/kubernetes/src/main/java/org/apache/
>>>>>> > > > > > > > >> > ignite/spi/discovery/tcp/ipfinder/kubernetes/
>>>>>> > > > > > > > >> > TcpDiscoveryKubernetesIpFinder.java
>>>>>> > > > > > > > >> > > > >via
>>>>>> > > > > > > > >> > > >    the DefaultIgniteConfiguration.
>>>>>> > > > > > > > >> > > >    - DataStorageConfiguration
>>>>>> > > > > > > > >> > > >    <
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > >
>>>>>> > > >
>>>>>> https://github.com/apache/ignite/blob/f4b30f7f1e736845ffa8eaf2d8aa17
>>>>>> > > > > > > > >> >
>>>>>> > > > > > >
>>>>>> > > >
>>>>>> 1700a928eb/modules/core/src/main/java/org/apache/ignite/configuration/
>>>>>> > > > > > > > >> > DataStorageConfiguration.java
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > including
>>>>>> > > > > > > > >> > > >    its DataStorageConfiguration.dataRegions
>>>>>> property.
>>>>>> > > > > > > > >> > > >    - TcpCommunicationSpi
>>>>>> > > > > > > > >> > > >    <
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > >
>>>>>> > > >
>>>>>> https://github.com/apache/ignite/blob/f4b30f7f1e736845ffa8eaf2d8aa17
>>>>>> > > > > > > > >> >
>>>>>> 1700a928eb/modules/core/src/main/java/org/apache/ignite/
>>>>>> > > > > > > > >> > spi/communication/tcp/TcpCommunicationSpi.java
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > with
>>>>>> > > > > > > > >> > > >    its fields of primitive types. Again, here
>>>>>> is I'm
>>>>>> > > > > assuming
>>>>>> > > > > > > that
>>>>>> > > > > > > > >> we
>>>>>> > > > > > > > >> > can
>>>>>> > > > > > > > >> > > > do
>>>>>> > > > > > > > >> > > >    this avoiding copy-pasting. Either through
>>>>>> > > > > > > > @ConfigurationBuilder
>>>>>> > > > > > > > >> > > > (include)
>>>>>> > > > > > > > >> > > >    or inheritence.
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > > If the user wants to configure any settings
>>>>>> > unsupported
>>>>>> > > by
>>>>>> > > > > > > > >> > > > DefaultIgniteConfiguration then, there should
>>>>>> be a way
>>>>>> > > to
>>>>>> > > > > > create
>>>>>> > > > > > > > an
>>>>>> > > > > > > > >> > > > IgniteConfiguration bean programmatically and
>>>>>> use it
>>>>>> > to
>>>>>> > > > > > > initialize
>>>>>> > > > > > > > >> an
>>>>>> > > > > > > > >> > > > Ignite instance (instead of
>>>>>> > DefaultIgniteConfiguration).
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > > What's your thinking? Let me know if I'm still
>>>>>> missing
>>>>>> > > > > > > something.
>>>>>> > > > > > > > >> > > > -
>>>>>> > > > > > > > >> > > > Denis
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > > On Wed, Aug 19, 2020 at 8:49 PM Saikat Maitra <
>>>>>> > > > > > > > >> saikat.mai...@gmail.com
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > > >> > > > wrote:
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > > > Hi Michael, Denis
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > > I was looking into tiering options for
>>>>>> ehcache[1]
>>>>>> > and
>>>>>> > > > > > network
>>>>>> > > > > > > > >> options
>>>>>> > > > > > > > >> > > for
>>>>>> > > > > > > > >> > > > > Hazelcast[2]  and I am thinking we can
>>>>>> implement
>>>>>> > > > something
>>>>>> > > > > > > > >> similar to
>>>>>> > > > > > > > >> > > > > configure CommunicationSpi
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > > [1]
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > >
>>>>>> https://micronaut-projects.github.io/micronaut-cache/
>>>>>> > > > > > > > >> > snapshot/guide/#ehcache
>>>>>> > > > > > > > >> > > > > [2]
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > >
>>>>>> https://micronaut-projects.github.io/micronaut-cache/
>>>>>> > > > > > > > >> > snapshot/guide/#hazelcast
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > > Let me know what you think.
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > > Regards,
>>>>>> > > > > > > > >> > > > > Saikat
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > > On Wed, Aug 19, 2020 at 7:09 PM Michael
>>>>>> Pollind <
>>>>>> > > > > > > > >> mpoll...@gmail.com>
>>>>>> > > > > > > > >> > > > > wrote:
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > > > > > A lot of this was just figured out through
>>>>>> > > > > > experimentation.
>>>>>> > > > > > > > You
>>>>>> > > > > > > > >> can
>>>>>> > > > > > > > >> > > ask
>>>>>> > > > > > > > >> > > > > > questions in the micronaut gitter:
>>>>>> > > > > > > > >> > > > > > https://gitter.im/micronautfw/questions
>>>>>> > > > > > > > >> > > > > > . Micronaut documentation is pretty
>>>>>> comprehensive:
>>>>>> > > > > > > > >> > > > > >
>>>>>> https://docs.micronaut.io/latest/guide/index.html
>>>>>> > .
>>>>>> > > > look
>>>>>> > > > > > for
>>>>>> > > > > > > > >> > > > EachProperty
>>>>>> > > > > > > > >> > > > > > and ConfigurationProperty. you can also
>>>>>> hunt
>>>>>> > through
>>>>>> > > > the
>>>>>> > > > > > > > current
>>>>>> > > > > > > > >> > > > existing
>>>>>> > > > > > > > >> > > > > > micronaut modules and find how those
>>>>>> configuration
>>>>>> > > > items
>>>>>> > > > > > are
>>>>>> > > > > > > > >> setup.
>>>>>> > > > > > > > >> > > > There
>>>>>> > > > > > > > >> > > > > > is also the unit test cases in
>>>>>> micronaut-core
>>>>>> > which
>>>>>> > > > have
>>>>>> > > > > > > been
>>>>>> > > > > > > > >> > pretty
>>>>>> > > > > > > > >> > > > > > helpful in the past in working out how
>>>>>> some of
>>>>>> > these
>>>>>> > > > > > > > annotations
>>>>>> > > > > > > > >> > work
>>>>>> > > > > > > > >> > > > in
>>>>>> > > > > > > > >> > > > > > practice.
>>>>>> > > > > > > > >> > > > > >
>>>>>> > > > > > > > >> > > > > > On Wed, Aug 19, 2020 at 4:50 PM Denis
>>>>>> Magda <
>>>>>> > > > > > > > dma...@apache.org>
>>>>>> > > > > > > > >> > > wrote:
>>>>>> > > > > > > > >> > > > > >
>>>>>> > > > > > > > >> > > > > > > Michael,
>>>>>> > > > > > > > >> > > > > > >
>>>>>> > > > > > > > >> > > > > > > Alright, then the question on the
>>>>>> possible
>>>>>> > > quantity
>>>>>> > > > of
>>>>>> > > > > > > > Ignite
>>>>>> > > > > > > > >> > > > instances
>>>>>> > > > > > > > >> > > > > > is
>>>>>> > > > > > > > >> > > > > > > settled - the integration will allow to
>>>>>> > > > > auto-configure a
>>>>>> > > > > > > > >> single
>>>>>> > > > > > > > >> > > > > instance
>>>>>> > > > > > > > >> > > > > > > only.
>>>>>> > > > > > > > >> > > > > > >
>>>>>> > > > > > > > >> > > > > > > Give me a couple of days to look into the
>>>>>> > > > > configuration
>>>>>> > > > > > > > >> matters
>>>>>> > > > > > > > >> > of
>>>>>> > > > > > > > >> > > > > > > DefaultIgniteConfiguration and see what
>>>>>> I can
>>>>>> > > > suggest.
>>>>>> > > > > > > Could
>>>>>> > > > > > > > >> you
>>>>>> > > > > > > > >> > > > > > recommend
>>>>>> > > > > > > > >> > > > > > > any materials (or sources) that on
>>>>>> Micronaut
>>>>>> > > > > > configuration
>>>>>> > > > > > > > >> > > specifies
>>>>>> > > > > > > > >> > > > > > > (through YAML and programmatically via
>>>>>> source
>>>>>> > > code)?
>>>>>> > > > > > > > >> > > > > > >
>>>>>> > > > > > > > >> > > > > > > Denis
>>>>>> > > > > > > > >> > > > > > >
>>>>>> > > > > > > > >> > > > > > > On Wednesday, August 19, 2020, Michael
>>>>>> Pollind <
>>>>>> > > > > > > > >> > mpoll...@gmail.com
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> > > > > > wrote:
>>>>>> > > > > > > > >> > > > > > >
>>>>>> > > > > > > > >> > > > > > > > I don't think micronaut will be able
>>>>>> to infer
>>>>>> > > the
>>>>>> > > > > > > > >> > > communicationSpi,
>>>>>> > > > > > > > >> > > > > so
>>>>>> > > > > > > > >> > > > > > > you
>>>>>> > > > > > > > >> > > > > > > > need to define it separately as
>>>>>> follows:
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > > > https://github.com/pollend/micronaut-ignite/blob/feature/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >>
>>>>>> > > > > >
>>>>>> >
>>>>>> rework-1/ignite-core/src/main/java/io/micronaut/ignite/configuration/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> DefaultIgniteConfiguration.java#L40-L43.
>>>>>> > > > > > > > >> > > > > > > > With this setup the configuration
>>>>>> should look
>>>>>> > > > pretty
>>>>>> > > > > > > much
>>>>>> > > > > > > > >> like
>>>>>> > > > > > > > >> > > the
>>>>>> > > > > > > > >> > > > > > > > spring-boot sample you showed me:
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > https://apacheignite-mix.readme.io/docs/spring-boot#
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> set-ignite-up-via-spring-boot-configuration.
>>>>>> > > > > > > > >> > > > > > > > I agree it should make the
>>>>>> configuration
>>>>>> > easier
>>>>>> > > > with
>>>>>> > > > > > > just
>>>>>> > > > > > > > >> > > allowing
>>>>>> > > > > > > > >> > > > a
>>>>>> > > > > > > > >> > > > > > > single
>>>>>> > > > > > > > >> > > > > > > > instance and it matches up well with
>>>>>> > spring-boot
>>>>>> > > > > > > > >> configuration:
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > https://docs.micronaut.io/latest/api/io/micronaut/
>>>>>> > > > > > > > >> > > > > > > > context/annotation/Requires.html.
>>>>>> > > > > > > > >> > > > > > > > Since its mostly a niche usecase then
>>>>>> having
>>>>>> > > that
>>>>>> > > > as
>>>>>> > > > > > the
>>>>>> > > > > > > > >> > default
>>>>>> > > > > > > > >> > > > use
>>>>>> > > > > > > > >> > > > > > case
>>>>>> > > > > > > > >> > > > > > > > seems pretty ideal to me. the
>>>>>> definition will
>>>>>> > > work
>>>>>> > > > > as
>>>>>> > > > > > > > >> follows:
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > ignite:
>>>>>> > > > > > > > >> > > > > > > >   enable true
>>>>>> > > > > > > > >> > > > > > > >   ignite-instance-name: name
>>>>>> > > > > > > > >> > > > > > > >   communication-spi:
>>>>>> > > > > > > > >> > > > > > > >     local-port: 5555
>>>>>> > > > > > > > >> > > > > > > >   data-storage-configuration:
>>>>>> > > > > > > > >> > > > > > > >   ...
>>>>>> > > > > > > > >> > > > > > > >   cache-configurations:
>>>>>> > > > > > > > >> > > > > > > >    - name: accounts
>>>>>> > > > > > > > >> > > > > > > >      queryEntities:
>>>>>> > > > > > > > >> > > > > > > >      - tableName: NAME
>>>>>> > > > > > > > >> > > > > > > >        ...
>>>>>> > > > > > > > >> > > > > > > >    - ...
>>>>>> > > > > > > > >> > > > > > > > ignite-thin:
>>>>>> > > > > > > > >> > > > > > > >   enable: false
>>>>>> > > > > > > > >> > > > > > > >   instance-name: name
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > Micronaut has some mechanism to
>>>>>> enforce the
>>>>>> > > > presence
>>>>>> > > > > > of
>>>>>> > > > > > > > >> > something
>>>>>> > > > > > > > >> > > > > that
>>>>>> > > > > > > > >> > > > > > > > should suffice for this usecase:
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > https://docs.micronaut.io/latest/api/io/micronaut/
>>>>>> > > > > > > > >> > > > > > > > context/annotation/Requires.html
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > On Wed, Aug 19, 2020 at 2:45 PM Denis
>>>>>> Magda <
>>>>>> > > > > > > > >> dma...@apache.org
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > > >> > > > > wrote:
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > Michael,
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > > The current way I have it setup is
>>>>>> the
>>>>>> > > primary
>>>>>> > > > > > bean
>>>>>> > > > > > > is
>>>>>> > > > > > > > >> used
>>>>>> > > > > > > > >> > > by
>>>>>> > > > > > > > >> > > > > > > default
>>>>>> > > > > > > > >> > > > > > > > so
>>>>>> > > > > > > > >> > > > > > > > > > you won't be able to use
>>>>>> micronaut-cache
>>>>>> > > with
>>>>>> > > > > > > anything
>>>>>> > > > > > > > >> but
>>>>>> > > > > > > > >> > > the
>>>>>> > > > > > > > >> > > > > > > default
>>>>>> > > > > > > > >> > > > > > > > > > bean. I guess one can override the
>>>>>> other
>>>>>> > if
>>>>>> > > > the
>>>>>> > > > > > > > >> > configuration
>>>>>> > > > > > > > >> > > > is
>>>>>> > > > > > > > >> > > > > > > > present.
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > The more I'm thinking the more I'm
>>>>>> convinced
>>>>>> > > > that
>>>>>> > > > > we
>>>>>> > > > > > > > >> > shouldn't
>>>>>> > > > > > > > >> > > > > bother
>>>>>> > > > > > > > >> > > > > > > > about
>>>>>> > > > > > > > >> > > > > > > > > the auto-configuration of several
>>>>>> Ignite
>>>>>> > > > > instances.
>>>>>> > > > > > > As I
>>>>>> > > > > > > > >> said
>>>>>> > > > > > > > >> > > > > before,
>>>>>> > > > > > > > >> > > > > > > > > that's an occasional use case.
>>>>>> Furthermore,
>>>>>> > > > > > Micronout
>>>>>> > > > > > > is
>>>>>> > > > > > > > >> > > designed
>>>>>> > > > > > > > >> > > > > for
>>>>>> > > > > > > > >> > > > > > > > > micro-services and serverless
>>>>>> functions and
>>>>>> > I
>>>>>> > > > can
>>>>>> > > > > > > hardly
>>>>>> > > > > > > > >> > think
>>>>>> > > > > > > > >> > > > of a
>>>>>> > > > > > > > >> > > > > > use
>>>>>> > > > > > > > >> > > > > > > > > case when a micro-service or
>>>>>> function would
>>>>>> > > need
>>>>>> > > > > to
>>>>>> > > > > > > boot
>>>>>> > > > > > > > >> up
>>>>>> > > > > > > > >> > > > several
>>>>>> > > > > > > > >> > > > > > > > Ignite
>>>>>> > > > > > > > >> > > > > > > > > clients. What if we let to
>>>>>> auto-configure a
>>>>>> > > > single
>>>>>> > > > > > > > Ignite
>>>>>> > > > > > > > >> > > > instance
>>>>>> > > > > > > > >> > > > > > per
>>>>>> > > > > > > > >> > > > > > > > > application process? What's your
>>>>>> view on
>>>>>> > this?
>>>>>> > > > It
>>>>>> > > > > > will
>>>>>> > > > > > > > >> > > > > significantly
>>>>>> > > > > > > > >> > > > > > > > > simplify the design and
>>>>>> implementation of
>>>>>> > > > > > integration.
>>>>>> > > > > > > > If
>>>>>> > > > > > > > >> > > anybody
>>>>>> > > > > > > > >> > > > > > needs
>>>>>> > > > > > > > >> > > > > > > > > several Ignite instances, then he can
>>>>>> > > > instantiate
>>>>>> > > > > > them
>>>>>> > > > > > > > >> > > manually.
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > By default the
>>>>>> > > > > > > > >> > > > > > > > > > thick client instance will replace
>>>>>> the
>>>>>> > > > > thin-client
>>>>>> > > > > > > > >> > > DynamicCache
>>>>>> > > > > > > > >> > > > > if
>>>>>> > > > > > > > >> > > > > > > that
>>>>>> > > > > > > > >> > > > > > > > > > would be ok?
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > If you agree on my proposal above,
>>>>>> then I
>>>>>> > > would
>>>>>> > > > > > simply
>>>>>> > > > > > > > >> > disallow
>>>>>> > > > > > > > >> > > > > > > > > auto-starting more than one Ignite
>>>>>> instance
>>>>>> > > (let
>>>>>> > > > > it
>>>>>> > > > > > > be a
>>>>>> > > > > > > > >> > thick
>>>>>> > > > > > > > >> > > or
>>>>>> > > > > > > > >> > > > > > thin
>>>>>> > > > > > > > >> > > > > > > > > client). For example, if a thick
>>>>>> client is
>>>>>> > > > already
>>>>>> > > > > > > > >> started,
>>>>>> > > > > > > > >> > > then
>>>>>> > > > > > > > >> > > > > > throw
>>>>>> > > > > > > > >> > > > > > > an
>>>>>> > > > > > > > >> > > > > > > > > exception on an attempt to
>>>>>> initialize a thin
>>>>>> > > > > client
>>>>>> > > > > > > (and
>>>>>> > > > > > > > >> vice
>>>>>> > > > > > > > >> > > > > versa).
>>>>>> > > > > > > > >> > > > > > > As
>>>>>> > > > > > > > >> > > > > > > > > for thick vs. thin client usage in
>>>>>> relation
>>>>>> > to
>>>>>> > > > > > > > Micronaut,
>>>>>> > > > > > > > >> I
>>>>>> > > > > > > > >> > > would
>>>>>> > > > > > > > >> > > > > > > > recommend
>>>>>> > > > > > > > >> > > > > > > > > using the thin client if Micronaut is
>>>>>> > deployed
>>>>>> > > > in
>>>>>> > > > > a
>>>>>> > > > > > > > >> > serverless
>>>>>> > > > > > > > >> > > > > > function
>>>>>> > > > > > > > >> > > > > > > > > (the thin client connects to the
>>>>>> cluster
>>>>>> > > > faster),
>>>>>> > > > > > > while
>>>>>> > > > > > > > >> for
>>>>>> > > > > > > > >> > > > > > > > micro-services
>>>>>> > > > > > > > >> > > > > > > > > you can use both types of clients.
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > The main reason why I was using the
>>>>>> spring
>>>>>> > > bean
>>>>>> > > > > > > > definition
>>>>>> > > > > > > > >> > was
>>>>>> > > > > > > > >> > > > > mainly
>>>>>> > > > > > > > >> > > > > > > for
>>>>>> > > > > > > > >> > > > > > > > > > convenience and I'm not sure what
>>>>>> fields
>>>>>> > are
>>>>>> > > > the
>>>>>> > > > > > > most
>>>>>> > > > > > > > >> > > relevant.
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > Ok, seems that I'm missing some
>>>>>> important
>>>>>> > > point
>>>>>> > > > > > about
>>>>>> > > > > > > > >> > > Micronaut.
>>>>>> > > > > > > > >> > > > > Let
>>>>>> > > > > > > > >> > > > > > me
>>>>>> > > > > > > > >> > > > > > > > > double-check the following with you.
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > Assume these are the only fields of
>>>>>> the
>>>>>> > > > > > > > >> > > > DefaultIgniteConfiguration:
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > private final String name;
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > @ConfigurationBuilder()
>>>>>> > > > > > > > >> > > > > > > > > private IgniteConfiguration
>>>>>> > > igniteConfiguration
>>>>>> > > > =
>>>>>> > > > > > new
>>>>>> > > > > > > > >> > > > > > > > > IgniteConfiguration();
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > Will I be able to set up the
>>>>>> > communicationSpi
>>>>>> > > > bean
>>>>>> > > > > > > below
>>>>>> > > > > > > > >> > > without
>>>>>> > > > > > > > >> > > > > > having
>>>>>> > > > > > > > >> > > > > > > > it
>>>>>> > > > > > > > >> > > > > > > > > as a field of the
>>>>>> > DefaultIgniteConfiguration?
>>>>>> > > > Are
>>>>>> > > > > > you
>>>>>> > > > > > > > >> > getting a
>>>>>> > > > > > > > >> > > > > > > > > NullPointerException?
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > ignite:
>>>>>> > > > > > > > >> > > > > > > > >     name: some_name
>>>>>> > > > > > > > >> > > > > > > > >     igniteConfiguration:
>>>>>> > > > > > > > >> > > > > > > > >         communicationSpi:
>>>>>> > > > > > > > >> > > > > > > > >             {redefining some fields
>>>>>> of the
>>>>>> > > SPI}
>>>>>> > > > > > > > >> > > > > > > > > -
>>>>>> > > > > > > > >> > > > > > > > > Denis
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > On Wed, Aug 19, 2020 at 12:17 AM
>>>>>> Michael
>>>>>> > > > Pollind <
>>>>>> > > > > > > > >> > > > > mpoll...@gmail.com
>>>>>> > > > > > > > >> > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > wrote:
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > > Here is the initial setup that I
>>>>>> quickly
>>>>>> > > threw
>>>>>> > > > > > > > together
>>>>>> > > > > > > > >> > along
>>>>>> > > > > > > > >> > > > > with
>>>>>> > > > > > > > >> > > > > > > some
>>>>>> > > > > > > > >> > > > > > > > > > example test cases. I feel like
>>>>>> this might
>>>>>> > > > get a
>>>>>> > > > > > > > little
>>>>>> > > > > > > > >> > > > > complicated
>>>>>> > > > > > > > >> > > > > > > > but I
>>>>>> > > > > > > > >> > > > > > > > > > think it's doable.
>>>>>> > > > > > > > >> > > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > >
>>>>>> https://github.com/pollend/micronaut-ignite/blob/feature/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >>
>>>>>> > > > > >
>>>>>> >
>>>>>> rework-1/ignite-core/src/main/java/io/micronaut/ignite/configuration/
>>>>>> > > > > > > > >> > > > > > > > DefaultIgniteConfiguration.java
>>>>>> > > > > > > > >> > > > > > > > > > along with some relevant test:
>>>>>> > > > > > > > >> > > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > >
>>>>>> https://github.com/pollend/micronaut-ignite/blob/feature/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > > > rework-1/ignite-core/src/test/groovy/io/micronaut/ignite/
>>>>>> > > > > > > > >> > > > > > > > IgniteConfigurationSpec.groovy#L55-L73
>>>>>> > > > > > > > >> > > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > > On Tue, Aug 18, 2020 at 11:49 PM
>>>>>> Michael
>>>>>> > > > > Pollind <
>>>>>> > > > > > > > >> > > > > > mpoll...@gmail.com
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > > wrote:
>>>>>> > > > > > > > >> > > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > >>
>>>>>> > > > > > > > >> > > > > > > > > >>
>>>>>> > > > > > > > >> > > > > > > > > >> The main reason why I was using
>>>>>> the
>>>>>> > spring
>>>>>> > > > bean
>>>>>> > > > > > > > >> definition
>>>>>> > > > > > > > >> > > was
>>>>>> > > > > > > > >> > > > > > > mainly
>>>>>> > > > > > > > >> > > > > > > > > for
>>>>>> > > > > > > > >> > > > > > > > > >> convenience and I'm not sure what
>>>>>> fields
>>>>>> > > are
>>>>>> > > > > the
>>>>>> > > > > > > most
>>>>>> > > > > > > > >> > > > relevant.
>>>>>> > > > > > > > >> > > > > > Will
>>>>>> > > > > > > > >> > > > > > > > > have
>>>>>> > > > > > > > >> > > > > > > > > >> to be kind of specific since the
>>>>>> > > > configuration
>>>>>> > > > > > > might
>>>>>> > > > > > > > >> get a
>>>>>> > > > > > > > >> > > > > little
>>>>>> > > > > > > > >> > > > > > > > > >> complicated. The other thing you
>>>>>> can do
>>>>>> > is
>>>>>> > > > use
>>>>>> > > > > > > > >> > > > > > > > > >>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > https://docs.micronaut.io/latest/api/io/micronaut/core/
>>>>>> > > > > > > > >> > > > > > > > convert/format/MapFormat.html
>>>>>> > > > > > > > >> > > > > > > > > >> which will just map fields and
>>>>>> values and
>>>>>> > > you
>>>>>> > > > > can
>>>>>> > > > > > > > pass
>>>>>> > > > > > > > >> > that
>>>>>> > > > > > > > >> > > to
>>>>>> > > > > > > > >> > > > > > > > somewhere
>>>>>> > > > > > > > >> > > > > > > > > >> else to be manage it.
>>>>>> > > > > > > > >> > > > > > > > > >>
>>>>>> > > > > > > > >> > > > > > > > > >> so you will need to do something
>>>>>> like
>>>>>> > this
>>>>>> > > as
>>>>>> > > > > > > > follows:
>>>>>> > > > > > > > >> > > > > > > > > >>
>>>>>> > > > > > > > >> > > > > > > > > >> private final String name;
>>>>>> > > > > > > > >> > > > > > > > > >> @ConfigurationBuilder()
>>>>>> > > > > > > > >> > > > > > > > > >> private IgniteConfiguration
>>>>>> > > > > igniteConfiguration =
>>>>>> > > > > > > new
>>>>>> > > > > > > > >> > > > > > > > > IgniteConfiguration();
>>>>>> > > > > > > > >> > > > > > > > > >> @ConfigurationBuilder(value =
>>>>>> > > > > "communicationSpi")
>>>>>> > > > > > > > >> > > > > > > > > >> private TcpCommunicationSpi
>>>>>> > > communicationSpi
>>>>>> > > > =
>>>>>> > > > > > new
>>>>>> > > > > > > > >> > > > > > > > > TcpCommunicationSpi();
>>>>>> > > > > > > > >> > > > > > > > > >>
>>>>>> > > > > > > > >> > > > > > > > > >> [image: image.png]
>>>>>> > > > > > > > >> > > > > > > > > >>
>>>>>> > > > > > > > >> > > > > > > > > >>
>>>>>> > > > > > > > >> > > > > > > > > >> On Tue, Aug 18, 2020 at 11:05 PM
>>>>>> Michael
>>>>>> > > > > Pollind
>>>>>> > > > > > <
>>>>>> > > > > > > > >> > > > > > > mpoll...@gmail.com>
>>>>>> > > > > > > > >> > > > > > > > > >> wrote:
>>>>>> > > > > > > > >> > > > > > > > > >>
>>>>>> > > > > > > > >> > > > > > > > > >>> Its whatever is setup by default
>>>>>> when
>>>>>> > the
>>>>>> > > > > object
>>>>>> > > > > > > is
>>>>>> > > > > > > > >> > > > declared. I
>>>>>> > > > > > > > >> > > > > > > think
>>>>>> > > > > > > > >> > > > > > > > > we
>>>>>> > > > > > > > >> > > > > > > > > >>> will have to define multiple
>>>>>> > > > > > ConfigurationBuilders
>>>>>> > > > > > > > If
>>>>>> > > > > > > > >> i'm
>>>>>> > > > > > > > >> > > not
>>>>>> > > > > > > > >> > > > > > > > mistaken
>>>>>> > > > > > > > >> > > > > > > > > for
>>>>>> > > > > > > > >> > > > > > > > > >>> the IgniteConfiguration.  you
>>>>>> don't need
>>>>>> > > to
>>>>>> > > > > > > provide
>>>>>> > > > > > > > >> the
>>>>>> > > > > > > > >> > > name
>>>>>> > > > > > > > >> > > > > > since
>>>>>> > > > > > > > >> > > > > > > > > that is
>>>>>> > > > > > > > >> > > > > > > > > >>> provided by the key for each
>>>>>> > configuration
>>>>>> > > > > under
>>>>>> > > > > > > > >> > > > EachProperty.
>>>>>> > > > > > > > >> > > > > > The
>>>>>> > > > > > > > >> > > > > > > > > name is
>>>>>> > > > > > > > >> > > > > > > > > >>> the qualified name that refers
>>>>>> to that
>>>>>> > > bean
>>>>>> > > > > and
>>>>>> > > > > > > also
>>>>>> > > > > > > > >> the
>>>>>> > > > > > > > >> > > same
>>>>>> > > > > > > > >> > > > > > > > > qualifier for
>>>>>> > > > > > > > >> > > > > > > > > >>> the Ignite instance. For the
>>>>>> most part
>>>>>> > > will
>>>>>> > > > > just
>>>>>> > > > > > > use
>>>>>> > > > > > > > >> the
>>>>>> > > > > > > > >> > > > > primary
>>>>>> > > > > > > > >> > > > > > > bean
>>>>>> > > > > > > > >> > > > > > > > > for
>>>>>> > > > > > > > >> > > > > > > > > >>> most part. I think you can only
>>>>>> have one
>>>>>> > > > cache
>>>>>> > > > > > > > >> instance
>>>>>> > > > > > > > >> > > > active
>>>>>> > > > > > > > >> > > > > > at a
>>>>>> > > > > > > > >> > > > > > > > > time.
>>>>>> > > > > > > > >> > > > > > > > > >>> The current way I have it setup
>>>>>> is the
>>>>>> > > > primary
>>>>>> > > > > > > bean
>>>>>> > > > > > > > is
>>>>>> > > > > > > > >> > used
>>>>>> > > > > > > > >> > > > by
>>>>>> > > > > > > > >> > > > > > > > default
>>>>>> > > > > > > > >> > > > > > > > > so
>>>>>> > > > > > > > >> > > > > > > > > >>> you won't be able to use
>>>>>> micronaut-cache
>>>>>> > > > with
>>>>>> > > > > > > > anything
>>>>>> > > > > > > > >> > but
>>>>>> > > > > > > > >> > > > the
>>>>>> > > > > > > > >> > > > > > > > default
>>>>>> > > > > > > > >> > > > > > > > > >>> bean. I guess one can override
>>>>>> the other
>>>>>> > > if
>>>>>> > > > > the
>>>>>> > > > > > > > >> > > configuration
>>>>>> > > > > > > > >> > > > > is
>>>>>> > > > > > > > >> > > > > > > > > present.
>>>>>> > > > > > > > >> > > > > > > > > >>> One problem I see is
>>>>>> micronaut-cache. We
>>>>>> > > can
>>>>>> > > > > > only
>>>>>> > > > > > > > use
>>>>>> > > > > > > > >> one
>>>>>> > > > > > > > >> > > > > > instance
>>>>>> > > > > > > > >> > > > > > > of
>>>>>> > > > > > > > >> > > > > > > > > >>> DynamicCache but I need to
>>>>>> verify how
>>>>>> > that
>>>>>> > > > > works
>>>>>> > > > > > > > >> again.
>>>>>> > > > > > > > >> > By
>>>>>> > > > > > > > >> > > > > > default
>>>>>> > > > > > > > >> > > > > > > > the
>>>>>> > > > > > > > >> > > > > > > > > >>> thick client instance will
>>>>>> replace the
>>>>>> > > > > > thin-client
>>>>>> > > > > > > > >> > > > DynamicCache
>>>>>> > > > > > > > >> > > > > > if
>>>>>> > > > > > > > >> > > > > > > > that
>>>>>> > > > > > > > >> > > > > > > > > >>> would be ok?
>>>>>> > > > > > > > >> > > > > > > > > >>>
>>>>>> > > > > > > > >> > > > > > > > > >>> ignite:
>>>>>> > > > > > > > >> > > > > > > > > >>>   thick-clients:
>>>>>> > > > > > > > >> > > > > > > > > >>>    default: <--- primary bean
>>>>>> > > > > > > > >> > > > > > > > > >>>      ...
>>>>>> > > > > > > > >> > > > > > > > > >>>    second-bean:
>>>>>> > > > > > > > >> > > > > > > > > >>>     ...
>>>>>> > > > > > > > >> > > > > > > > > >>>  thin-clients:
>>>>>> > > > > > > > >> > > > > > > > > >>>    default: <--- primary bean
>>>>>> > > > > > > > >> > > > > > > > > >>>     ...
>>>>>> > > > > > > > >> > > > > > > > > >>>    second-bean:
>>>>>> > > > > > > > >> > > > > > > > > >>>    ....
>>>>>> > > > > > > > >> > > > > > > > > >>>
>>>>>> > > > > > > > >> > > > > > > > > >>>
>>>>>> > > > > > > > >> > > > > > > > > >>>
>>>>>> > > > > > > > >> > > > > > > > > >>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > https://docs.micronaut.io/latest/api/io/micronaut/
>>>>>> > > > > > > > >> > > > > > > > context/annotation/Requires.html
>>>>>> > > > > > > > >> > > > > > > > > >>>
>>>>>> > > > > > > > >> > > > > > > > > >>> On Tue, Aug 18, 2020 at 10:13 PM
>>>>>> Denis
>>>>>> > > > Magda <
>>>>>> > > > > > > > >> > > > > dma...@apache.org>
>>>>>> > > > > > > > >> > > > > > > > > wrote:
>>>>>> > > > > > > > >> > > > > > > > > >>>
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > oh, so we probably don't need
>>>>>> to work
>>>>>> > > > with
>>>>>> > > > > > > > multiple
>>>>>> > > > > > > > >> > > > > instances.
>>>>>> > > > > > > > >> > > > > > > > This
>>>>>> > > > > > > > >> > > > > > > > > >>>> is what
>>>>>> > > > > > > > >> > > > > > > > > >>>> > I have in the current master
>>>>>> branch.
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > > >>>> In most cases, people start a
>>>>>> single
>>>>>> > > > instance
>>>>>> > > > > > of
>>>>>> > > > > > > a
>>>>>> > > > > > > > >> thick
>>>>>> > > > > > > > >> > > or
>>>>>> > > > > > > > >> > > > > thin
>>>>>> > > > > > > > >> > > > > > > > > client
>>>>>> > > > > > > > >> > > > > > > > > >>>> per
>>>>>> > > > > > > > >> > > > > > > > > >>>> application. The clients are
>>>>>> > > multi-threaded
>>>>>> > > > > and
>>>>>> > > > > > > can
>>>>>> > > > > > > > >> > > utilize
>>>>>> > > > > > > > >> > > > > all
>>>>>> > > > > > > > >> > > > > > > the
>>>>>> > > > > > > > >> > > > > > > > > CPUs
>>>>>> > > > > > > > >> > > > > > > > > >>>> effectively. However, it's not
>>>>>> harmful
>>>>>> > to
>>>>>> > > > > have
>>>>>> > > > > > > the
>>>>>> > > > > > > > >> > ability
>>>>>> > > > > > > > >> > > > to
>>>>>> > > > > > > > >> > > > > > > > > configure
>>>>>> > > > > > > > >> > > > > > > > > >>>> several clients per
>>>>>> application. As far
>>>>>> > > as
>>>>>> > > > I
>>>>>> > > > > > > > >> understand,
>>>>>> > > > > > > > >> > > > > > Micronaut
>>>>>> > > > > > > > >> > > > > > > > > >>>> distinguishes clients per the
>>>>>> > > > > > > > >> > > > "IgniteClientConfiguration.name"
>>>>>> > > > > > > > >> > > > > > > > > property,
>>>>>> > > > > > > > >> > > > > > > > > >>>> right?
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > > >>>> So what defaults are set for
>>>>>> > > > > > IgniteConfiguration?
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > > >>>> Does it matter to Micronaut
>>>>>> what those
>>>>>> > > > > defaults
>>>>>> > > > > > > > are?
>>>>>> > > > > > > > >> By
>>>>>> > > > > > > > >> > > > > looking
>>>>>> > > > > > > > >> > > > > > at
>>>>>> > > > > > > > >> > > > > > > > the
>>>>>> > > > > > > > >> > > > > > > > > >>>> IgniteThinClientConfiguration
>>>>>> > > > > > > > >> > > > > > > > > >>>> <
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > https://micronaut-projects.github.io/micronaut-ignite/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > snapshot/api/io/micronaut/ignite/configuration/
>>>>>> > > > > > > > >> > > > > > > > IgniteThinClientConfiguration.html
>>>>>> > > > > > > > >> > > > > > > > > >>>> >,
>>>>>> > > > > > > > >> > > > > > > > > >>>> that defines
>>>>>> > > > > > > > >> > > > >
>>>>>> org.apache.ignite.configuration.ClientConfiguration
>>>>>> > > > > > > > >> > > > > > > > > >>>> property
>>>>>> > > > > > > > >> > > > > > > > > >>>> (under the name of
>>>>>> "configuration"), I
>>>>>> > > see
>>>>>> > > > > that
>>>>>> > > > > > > > >> > Micronaut
>>>>>> > > > > > > > >> > > > > could
>>>>>> > > > > > > > >> > > > > > > > > >>>> introspect
>>>>>> > > > > > > > >> > > > > > > > > >>>> all the fields of the
>>>>>> > ClientConfiguration
>>>>>> > > > and
>>>>>> > > > > > > > >> prepared
>>>>>> > > > > > > > >> > > these
>>>>>> > > > > > > > >> > > > > > > > > properties
>>>>>> > > > > > > > >> > > > > > > > > >>>> table
>>>>>> > > > > > > > >> > > > > > > > > >>>> <
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > https://micronaut-projects.github.io/micronaut-ignite/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > snapshot/guide/#io.micronaut.ignite.configuration.
>>>>>> > > > > > > > >> > > > > > > > IgniteThinClientConfiguration
>>>>>> > > > > > > > >> > > > > > > > > >>>> >.
>>>>>> > > > > > > > >> > > > > > > > > >>>> For me, it means that whenever
>>>>>> I am
>>>>>> > > > > configuring
>>>>>> > > > > > > the
>>>>>> > > > > > > > >> thin
>>>>>> > > > > > > > >> > > > > client
>>>>>> > > > > > > > >> > > > > > > in a
>>>>>> > > > > > > > >> > > > > > > > > >>>> YAML
>>>>>> > > > > > > > >> > > > > > > > > >>>> file, Micronaut will create an
>>>>>> instance
>>>>>> > > of
>>>>>> > > > > the
>>>>>> > > > > > > > >> > > > > > ClientConfiguration
>>>>>> > > > > > > > >> > > > > > > > > >>>> (Ignite
>>>>>> > > > > > > > >> > > > > > > > > >>>> sets the defaults), and then I
>>>>>> can
>>>>>> > > override
>>>>>> > > > > > some
>>>>>> > > > > > > > >> > settings
>>>>>> > > > > > > > >> > > > such
>>>>>> > > > > > > > >> > > > > > as
>>>>>> > > > > > > > >> > > > > > > > > >>>> "addresses" or
>>>>>> > > "enablePartitionAwareness".
>>>>>> > > > > Does
>>>>>> > > > > > > > this
>>>>>> > > > > > > > >> > sound
>>>>>> > > > > > > > >> > > > > > > accurate
>>>>>> > > > > > > > >> > > > > > > > > >>>> concerning Micronaut?
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > > >>>> Jumping back to the
>>>>>> > IgniteConfiguration,
>>>>>> > > I
>>>>>> > > > > > would
>>>>>> > > > > > > > just
>>>>>> > > > > > > > >> > swap
>>>>>> > > > > > > > >> > > > the
>>>>>> > > > > > > > >> > > > > > > > "path"
>>>>>> > > > > > > > >> > > > > > > > > >>>> that
>>>>>> > > > > > > > >> > > > > > > > > >>>> is the String with the "config"
>>>>>> that is
>>>>>> > > > > > > > >> > > IgniteConfiguration.
>>>>>> > > > > > > > >> > > > > > Then
>>>>>> > > > > > > > >> > > > > > > > let
>>>>>> > > > > > > > >> > > > > > > > > >>>> Ignite take care of the
>>>>>> > > IgniteConfiguration
>>>>>> > > > > > > > defaults
>>>>>> > > > > > > > >> and
>>>>>> > > > > > > > >> > > > > allow a
>>>>>> > > > > > > > >> > > > > > > > > >>>> developer
>>>>>> > > > > > > > >> > > > > > > > > >>>> to override some defaults (such
>>>>>> as
>>>>>> > > > > > > > >> discoverySPI.ipFinder
>>>>>> > > > > > > > >> > > or
>>>>>> > > > > > > > >> > > > > > memory
>>>>>> > > > > > > > >> > > > > > > > > >>>> settings). Just in case, you
>>>>>> can find
>>>>>> > > > > > > > >> > IgniteConfiguration
>>>>>> > > > > > > > >> > > > > > defaults
>>>>>> > > > > > > > >> > > > > > > > > here
>>>>>> > > > > > > > >> > > > > > > > > >>>> <
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > https://github.com/apache/ignite/blob/master/modules/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > core/src/main/java/org/apache/ignite/configuration/
>>>>>> > > > > > > > >> > > > > > > > IgniteConfiguration.java
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>> .
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > > >>>> -
>>>>>> > > > > > > > >> > > > > > > > > >>>> Denis
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > > >>>> On Tue, Aug 18, 2020 at 8:59 PM
>>>>>> Michael
>>>>>> > > > > > Pollind <
>>>>>> > > > > > > > >> > > > > > > mpoll...@gmail.com
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> wrote:
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > > >>>> > oh, so we probably don't need
>>>>>> to work
>>>>>> > > > with
>>>>>> > > > > > > > multiple
>>>>>> > > > > > > > >> > > > > instances.
>>>>>> > > > > > > > >> > > > > > > > This
>>>>>> > > > > > > > >> > > > > > > > > >>>> is what
>>>>>> > > > > > > > >> > > > > > > > > >>>> > I have in the current master
>>>>>> branch.
>>>>>> > I
>>>>>> > > > > > believe
>>>>>> > > > > > > I
>>>>>> > > > > > > > >> was
>>>>>> > > > > > > > >> > > > > > originally
>>>>>> > > > > > > > >> > > > > > > > > >>>> trying to
>>>>>> > > > > > > > >> > > > > > > > > >>>> > set-up the configuration with
>>>>>> the
>>>>>> > > default
>>>>>> > > > > > > ignite
>>>>>> > > > > > > > >> > > instance
>>>>>> > > > > > > > >> > > > > but
>>>>>> > > > > > > > >> > > > > > > > found
>>>>>> > > > > > > > >> > > > > > > > > I
>>>>>> > > > > > > > >> > > > > > > > > >>>> > couldn't cover enough of the
>>>>>> > > > configuration.
>>>>>> > > > > > So
>>>>>> > > > > > > > what
>>>>>> > > > > > > > >> > > > defaults
>>>>>> > > > > > > > >> > > > > > are
>>>>>> > > > > > > > >> > > > > > > > set
>>>>>> > > > > > > > >> > > > > > > > > >>>> for
>>>>>> > > > > > > > >> > > > > > > > > >>>> > IgniteConfiguration? some of
>>>>>> those
>>>>>> > > > factory
>>>>>> > > > > > > items
>>>>>> > > > > > > > >> can't
>>>>>> > > > > > > > >> > > be
>>>>>> > > > > > > > >> > > > > > > covered
>>>>>> > > > > > > > >> > > > > > > > > >>>> with how
>>>>>> > > > > > > > >> > > > > > > > > >>>> > micronaut sets up
>>>>>> configurations.
>>>>>> > > > > > > > >> > @ConfigurationProperty
>>>>>> > > > > > > > >> > > > can
>>>>>> > > > > > > > >> > > > > > > only
>>>>>> > > > > > > > >> > > > > > > > be
>>>>>> > > > > > > > >> > > > > > > > > >>>> > defined on a known factory,
>>>>>> there are
>>>>>> > > > ways
>>>>>> > > > > to
>>>>>> > > > > > > > have
>>>>>> > > > > > > > >> > > > multiple
>>>>>> > > > > > > > >> > > > > > > > > factories
>>>>>> > > > > > > > >> > > > > > > > > >>>> and
>>>>>> > > > > > > > >> > > > > > > > > >>>> > label them optional but that
>>>>>> easily
>>>>>> > > gets
>>>>>> > > > > > > > >> overwhelming.
>>>>>> > > > > > > > >> > > In
>>>>>> > > > > > > > >> > > > > > this
>>>>>> > > > > > > > >> > > > > > > > > >>>> situation
>>>>>> > > > > > > > >> > > > > > > > > >>>> > providing your own bean would
>>>>>> > probably
>>>>>> > > be
>>>>>> > > > > > more
>>>>>> > > > > > > > >> ideal
>>>>>> > > > > > > > >> > in
>>>>>> > > > > > > > >> > > > this
>>>>>> > > > > > > > >> > > > > > > > > >>>> situation when
>>>>>> > > > > > > > >> > > > > > > > > >>>> > I think about it.  I was
>>>>>> worrying
>>>>>> > that
>>>>>> > > I
>>>>>> > > > > > > wouldn't
>>>>>> > > > > > > > >> be
>>>>>> > > > > > > > >> > > able
>>>>>> > > > > > > > >> > > > to
>>>>>> > > > > > > > >> > > > > > > cover
>>>>>> > > > > > > > >> > > > > > > > > >>>> enough
>>>>>> > > > > > > > >> > > > > > > > > >>>> > of the configuration with
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > ignite:  enabled: true
>>>>>> thin-clients:
>>>>>> > > > > > > default:
>>>>>> > > > > > > > >> > > > > > address:
>>>>>> > > > > > > > >> > > > > > > > >   -
>>>>>> > > > > > > > >> > > > > > > > > >>>> > "127.0.0.1:10800"      - "
>>>>>> > > > 127.0.0.1:10801"
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >     thin-client-2:
>>>>>> > > > > > > > >> > > > > > > > > >>>> >       address:      - "
>>>>>> > 127.0.0.1:10800
>>>>>> > > "
>>>>>> > > > > > > - "
>>>>>> > > > > > > > >> > > > > > 127.0.0.1:10801
>>>>>> > > > > > > > >> > > > > > > "
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > you can see it in the current
>>>>>> > snapshot
>>>>>> > > > > > > > >> documentation:
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > >
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > >
>>>>>> > > > >
>>>>>> >
>>>>>> https://micronaut-projects.github.io/micronaut-ignite/snapshot/guide/
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > On Tue, Aug 18, 2020 at 4:16
>>>>>> PM Denis
>>>>>> > > > > Magda <
>>>>>> > > > > > > > >> > > > > > dma...@apache.org>
>>>>>> > > > > > > > >> > > > > > > > > >>>> wrote:
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > Michael, thanks for filling
>>>>>> out the
>>>>>> > > > wiki
>>>>>> > > > > > > page.
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > I'm looking at the
>>>>>> > Auto-Configuration
>>>>>> > > > > wiki
>>>>>> > > > > > > > >> section
>>>>>> > > > > > > > >> > and
>>>>>> > > > > > > > >> > > > the
>>>>>> > > > > > > > >> > > > > > > > current
>>>>>> > > > > > > > >> > > > > > > > > >>>> > version
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > of the
>>>>>> > > > io.micronaut.ignite.configuration.
>>>>>> > > > > > > > >> > > > > > > > IgniteClientConfiguration
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > <
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > https://github.com/micronaut-projects/micronaut-ignite/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > > > > >> > > > > >
>>>>>> > > > > > > > >> > > >
>>>>>> > > blob/master/ignite-core/src/main/java/io/micronaut/ignite/
>>>>>> > > > > > > > >> > configuration/
>>>>>> > > > > > > > >> > > > > > > > IgniteClientConfiguration.java
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > class,
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > and wonder if we can
>>>>>> perform the
>>>>>> > > > > following
>>>>>> > > > > > > > >> changes:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    1. Rename the
>>>>>> > > > > IgniteClientConfiguration
>>>>>> > > > > > to
>>>>>> > > > > > > > >> > > > > > > > IgniteConfiguration
>>>>>> > > > > > > > >> > > > > > > > > >>>> (or, to
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    avoid ambiguity, even to
>>>>>> > > > > > > > >> > DefaultIgniteConfiguration
>>>>>> > > > > > > > >> > > > as
>>>>>> > > > > > > > >> > > > > > it's
>>>>>> > > > > > > > >> > > > > > > > > done
>>>>>> > > > > > > > >> > > > > > > > > >>>> for
>>>>>> > > > > > > > >> > > > > > > > > >>>> > the
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    Mongo driver
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    <
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > https://micronaut-projects.github.io/micronaut-mongodb/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > latest/api/io/micronaut/configuration/mongo/reactive/
>>>>>> > > > > > > > >> > > > > > > > DefaultMongoConfiguration.html
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >).
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    The rationale for this
>>>>>> change is
>>>>>> > > > that
>>>>>> > > > > > the
>>>>>> > > > > > > > >> > > developers
>>>>>> > > > > > > > >> > > > > > might
>>>>>> > > > > > > > >> > > > > > > > need
>>>>>> > > > > > > > >> > > > > > > > > >>>> to
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > start an embedded
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    Ignite server node
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    <
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > >
>>>>>> https://www.gridgain.com/docs/latest/installation-guide/
>>>>>> > > > > > > > >> > > > > > > > deployment-modes#embedded-deployment
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >.
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    So, I would not limit the
>>>>>> > > > integration
>>>>>> > > > > > > scope
>>>>>> > > > > > > > to
>>>>>> > > > > > > > >> > the
>>>>>> > > > > > > > >> > > > > Ignite
>>>>>> > > > > > > > >> > > > > > > > > clients
>>>>>> > > > > > > > >> > > > > > > > > >>>> > only.
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    2. Presently,
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > io.micronaut.ignite.configuration.IgniteClientConfiguration
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    supports two parameters
>>>>>> - the
>>>>>> > > "name"
>>>>>> > > > > and
>>>>>> > > > > > > > >> "path".
>>>>>> > > > > > > > >> > I
>>>>>> > > > > > > > >> > > > > would
>>>>>> > > > > > > > >> > > > > > > > > replace
>>>>>> > > > > > > > >> > > > > > > > > >>>> the
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > "path"
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    parameter with the
>>>>>> "config" one
>>>>>> > > that
>>>>>> > > > > > > > >> instantiates
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > org.apache.ignite.IgniteConfiguration.
>>>>>> > > > > > If
>>>>>> > > > > > > we
>>>>>> > > > > > > > >> do
>>>>>> > > > > > > > >> > > that,
>>>>>> > > > > > > > >> > > > > > then
>>>>>> > > > > > > > >> > > > > > > > the
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > developers
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    will be able to set any
>>>>>> property
>>>>>> > > of
>>>>>> > > > > the
>>>>>> > > > > > > > >> > > > > > IgniteConfiguration
>>>>>> > > > > > > > >> > > > > > > > > >>>> straight
>>>>>> > > > > > > > >> > > > > > > > > >>>> > in
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > the
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    main YAML file. See how
>>>>>> it's
>>>>>> > done
>>>>>> > > > for
>>>>>> > > > > > the
>>>>>> > > > > > > > >> Ignite
>>>>>> > > > > > > > >> > > > Spring
>>>>>> > > > > > > > >> > > > > > > Boot
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    Auto-Configuration
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    <
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > https://apacheignite-mix.readme.io/docs/spring-boot#
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> set-ignite-up-via-spring-boot-configuration
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >.
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    Guess, we can do the
>>>>>> same with
>>>>>> > > > > > Micronaut.
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    3. If the previous
>>>>>> modification
>>>>>> > is
>>>>>> > > > > > > feasible,
>>>>>> > > > > > > > >> > then I
>>>>>> > > > > > > > >> > > > > would
>>>>>> > > > > > > > >> > > > > > > > > rework
>>>>>> > > > > > > > >> > > > > > > > > >>>> the
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    Ignite thin client
>>>>>> configuration
>>>>>> > > > > > > similarly,
>>>>>> > > > > > > > >> > taking
>>>>>> > > > > > > > >> > > > our
>>>>>> > > > > > > > >> > > > > > > Spring
>>>>>> > > > > > > > >> > > > > > > > > >>>> Boot
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    integration for the thin
>>>>>> client
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    <
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > https://apacheignite-mix.readme.io/docs/spring-boot#
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > set-thin-client-up-via-spring-boot-configuration
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    as a reference. As I
>>>>>> see, the
>>>>>> > > > current
>>>>>> > > > > > > > version
>>>>>> > > > > > > > >> of
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> IgniteThinClientConfiguration
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    <
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > https://github.com/micronaut-projects/micronaut-ignite/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > > > > >> > > > > >
>>>>>> > > > > > > > >> > > >
>>>>>> > > blob/master/ignite-core/src/main/java/io/micronaut/ignite/
>>>>>> > > > > > > > >> > configuration/
>>>>>> > > > > > > > >> > > > > > > > IgniteThinClientConfiguration.java
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > already
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    adopts this approach. I
>>>>>> would
>>>>>> > only
>>>>>> > > > > > rename
>>>>>> > > > > > > > >> > > > > "configuration"
>>>>>> > > > > > > > >> > > > > > > to
>>>>>> > > > > > > > >> > > > > > > > > >>>> "config",
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > and
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    remove the "transaction"
>>>>>> field
>>>>>> > > since
>>>>>> > > > > you
>>>>>> > > > > > > can
>>>>>> > > > > > > > >> pass
>>>>>> > > > > > > > >> > > the
>>>>>> > > > > > > > >> > > > > > > > > >>>> transactional
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >    settings via the YAML
>>>>>> following
>>>>>> > > the
>>>>>> > > > > > format
>>>>>> > > > > > > > >> below:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > ignite-thin-client:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >     name:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >     config:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >         addresses:
>>>>>> <IP_addresses>
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>>  partitionAwarenessEnabled:
>>>>>> > > true
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>>  transactionConfiguration:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> >  defaultTxConcurrency:...
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >             defaultTxTimeout
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > -
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > Denis
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > On Mon, Aug 17, 2020 at
>>>>>> 6:50 PM
>>>>>> > > Michael
>>>>>> > > > > > > > Pollind <
>>>>>> > > > > > > > >> > > > > > > > > mpoll...@gmail.com
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > wrote:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > oh, that makes more
>>>>>> sense. so
>>>>>> > those
>>>>>> > > > > > methods
>>>>>> > > > > > > > get
>>>>>> > > > > > > > >> > > > wrapped
>>>>>> > > > > > > > >> > > > > > > into a
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > micronaut-aop intercept.
>>>>>> Below
>>>>>> > I've
>>>>>> > > > > > listed
>>>>>> > > > > > > > the
>>>>>> > > > > > > > >> > > > relevant
>>>>>> > > > > > > > >> > > > > > > > sections
>>>>>> > > > > > > > >> > > > > > > > > >>>> of
>>>>>> > > > > > > > >> > > > > > > > > >>>> > code
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > that would handle each
>>>>>> annotation
>>>>>> > > > along
>>>>>> > > > > > > with
>>>>>> > > > > > > > >> the
>>>>>> > > > > > > > >> > > > methods
>>>>>> > > > > > > > >> > > > > > > that
>>>>>> > > > > > > > >> > > > > > > > > get
>>>>>> > > > > > > > >> > > > > > > > > >>>> > called
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > from the ignite branch I'm
>>>>>> > working
>>>>>> > > > > from.
>>>>>> > > > > > > > >> Hopefully
>>>>>> > > > > > > > >> > > > this
>>>>>> > > > > > > > >> > > > > > > helps.
>>>>>> > > > > > > > >> > > > > > > > > >>>> The key
>>>>>> > > > > > > > >> > > > > > > > > >>>> > is
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > specified from the
>>>>>> CacheConfig
>>>>>> > > > > annotation
>>>>>> > > > > > > but
>>>>>> > > > > > > > >> this
>>>>>> > > > > > > > >> > > can
>>>>>> > > > > > > > >> > > > > be
>>>>>> > > > > > > > >> > > > > > > > > changed
>>>>>> > > > > > > > >> > > > > > > > > >>>> if
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > there
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > is a better way to
>>>>>> represent the
>>>>>> > > key.
>>>>>> > > > > By
>>>>>> > > > > > > > >> default
>>>>>> > > > > > > > >> > it
>>>>>> > > > > > > > >> > > > uses
>>>>>> > > > > > > > >> > > > > > > this
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > DefaultCacheKeyGenerator(
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >>
>>>>>> https://github.com/micronaut-projects/micronaut-cache/blob/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > master/cache-core/src/main/java/io/micronaut/cache/
>>>>>> > > > > > > > >> > interceptor/
>>>>>> > > > > > > > >> > > > > > > > DefaultCacheKeyGenerator.java
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > ).
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > I also finished up this
>>>>>> document
>>>>>> > on
>>>>>> > > > > > sunday:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >> > > > > > >
>>>>>> > > > > > > > >> > > > >
>>>>>> > > > > > > > >> > >
>>>>>> > > > > > > > >>
>>>>>> > > > > > > >
>>>>>> > > > > >
>>>>>> > > >
>>>>>> >
>>>>>> https://cwiki.apache.org/confluence/display/IGNITE/Micronaut+Integration
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > .
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > Any suggestions with what
>>>>>> I could
>>>>>> > > > > expand
>>>>>> > > > > > on
>>>>>> > > > > > > > and
>>>>>> > > > > > > > >> > how
>>>>>> > > > > > > > >> > > > this
>>>>>> > > > > > > > >> > > > > > > could
>>>>>> > > > > > > > >> > > > > > > > > be
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > adjusted.
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > Cacheable:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > For Cacheable it will run
>>>>>> a get
>>>>>> > and
>>>>>> > > > > > issue a
>>>>>> > > > > > > > >> put if
>>>>>> > > > > > > > >> > > the
>>>>>> > > > > > > > >> > > > > > value
>>>>>> > > > > > > > >> > > > > > > > is
>>>>>> > > > > > > > >> > > > > > > > > >>>> not
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > present
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > in the cache.
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > -> micronaut-cache:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >>
>>>>>> https://github.com/micronaut-projects/micronaut-cache/blob/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > master/cache-core/src/main/java/io/micronaut/cache/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> interceptor/CacheInterceptor.java#L163-L170
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > -> ignite-cache:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >   get:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > >
>>>>>> https://github.com/pollend/micronaut-ignite/blob/feature/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > rework/ignite-cache/src/main/java/io/micronaut/ignite/
>>>>>> > > > > > > > >> > > > > > > > IgniteSyncCache.java#L60-L70
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > CachePut:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > For cache put it will
>>>>>> invalidate
>>>>>> > if
>>>>>> > > > the
>>>>>> > > > > > > > return
>>>>>> > > > > > > > >> is
>>>>>> > > > > > > > >> > > null
>>>>>> > > > > > > > >> > > > > > else
>>>>>> > > > > > > > >> > > > > > > it
>>>>>> > > > > > > > >> > > > > > > > > >>>> will
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > issue a
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > put. I think there might
>>>>>> be a
>>>>>> > > mistake
>>>>>> > > > > in
>>>>>> > > > > > my
>>>>>> > > > > > > > >> code
>>>>>> > > > > > > > >> > > > > because I
>>>>>> > > > > > > > >> > > > > > > use
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > putIfAbsent
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > for both cases. I need to
>>>>>> > > investigate
>>>>>> > > > > > that
>>>>>> > > > > > > > >> closer
>>>>>> > > > > > > > >> > > and
>>>>>> > > > > > > > >> > > > > > write
>>>>>> > > > > > > > >> > > > > > > > some
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > additional
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > test cases to verify the
>>>>>> > behaviour.
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > --> micronaut-cache:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >>
>>>>>> https://github.com/micronaut-projects/micronaut-cache/blob/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > master/cache-core/src/main/java/io/micronaut/cache/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> interceptor/CacheInterceptor.java#L510-L525
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > -> ignite-cache:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > put:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > >
>>>>>> https://github.com/pollend/micronaut-ignite/blob/feature/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > rework/ignite-cache/src/main/java/io/micronaut/ignite/
>>>>>> > > > > > > > >> > > > > > > > IgniteSyncCache.java#L83-L88
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > invalidate:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > >
>>>>>> https://github.com/pollend/micronaut-ignite/blob/feature/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > rework/ignite-cache/src/main/java/io/micronaut/ignite/
>>>>>> > > > > > > > >> > > > > > > > IgniteSyncCache.java#L91-L95
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > CacheInvalidate:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > for cache invalidation it
>>>>>> will
>>>>>> > just
>>>>>> > > > be
>>>>>> > > > > > > > removed
>>>>>> > > > > > > > >> by
>>>>>> > > > > > > > >> > > the
>>>>>> > > > > > > > >> > > > > key.
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > --> micronaut-cache:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > > >>
>>>>>> https://github.com/micronaut-projects/micronaut-cache/blob/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > master/cache-core/src/main/java/io/micronaut/cache/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> interceptor/CacheInterceptor.java#L590-L596
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > -> ignite-cache:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > invalidate:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> >
>>>>>> > > > > > > > >> > > > > > > > > >>>>
>>>>>> > > > > > > > >> > > > > > > > >
>>>>>> > > > > > > >
>>>>>> https://github.com/pollend/micronaut-ignite/blob/feature/
>>>>>> > > > > > > > >> > > > > > > >
>>>>>> > > > > rework/ignite-cache/src/main/java/io/micronaut/ignite/
>>>>>> > > > > > > > >> > > > > > > > IgniteSyncCache.java#L91-L95
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > On Mon, Aug 17, 2020 at
>>>>>> 5:23 PM
>>>>>> > > > Saikat
>>>>>> > > > > > > > Maitra <
>>>>>> > > > > > > > >> > > > > > > > > >>>> saikat.mai...@gmail.com
>>>>>> > > > > > > > >> > > > > > > > > >>>> > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > wrote:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > Hi Michael,
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > In the Example
>>>>>> Cacheable Object
>>>>>> > > you
>>>>>> > > > > are
>>>>>> > > > > > > > using
>>>>>> > > > > > > > >> > > > > @CachePut,
>>>>>> > > > > > > > >> > > > > > > > > >>>> @Cacheable
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > annotations and
>>>>>> > @CacheInvalidate
>>>>>> > > > > > > > annotations
>>>>>> > > > > > > > >> > and I
>>>>>> > > > > > > > >> > > > was
>>>>>> > > > > > > > >> > > > > > > > trying
>>>>>> > > > > > > > >> > > > > > > > > to
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > understand
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > when user use these
>>>>>> annotation
>>>>>> > > then
>>>>>> > > > > > what
>>>>>> > > > > > > > >> would
>>>>>> > > > > > > > >> > be
>>>>>> > > > > > > > >> > > > the
>>>>>> > > > > > > > >> > > > > > > > > underlying
>>>>>> > > > > > > > >> > > > > > > > > >>>> > Ignite
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > operation that will
>>>>>> happen? and
>>>>>> > > how
>>>>>> > > > > > those
>>>>>> > > > > > > > >> > > operations
>>>>>> > > > > > > > >> > > > > are
>>>>>> > > > > > > > >> > > > > > > > > >>>> performed?
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > An example like when
>>>>>> user call
>>>>>> > > this
>>>>>> > > > > > below
>>>>>> > > > > > > > >> method
>>>>>> > > > > > > > >> > > > then
>>>>>> > > > > > > > >> > > > > > how
>>>>>> > > > > > > > >> > > > > > > > the
>>>>>> > > > > > > > >> > > > > > > > > >>>> result
>>>>>> > > > > > > > >> > > > > > > > > >>>> > of
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > getValue is cached?
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > @Cacheable
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > >     int getValue(String
>>>>>> name) {
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > >         return
>>>>>> > > > > > > > >> counters.computeIfAbsent(name, {
>>>>>> > > > > > > > >> > 0
>>>>>> > > > > > > > >> > > })
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > >     }
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > Regards,
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > Saikat
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > On Sat, Aug 15, 2020 at
>>>>>> 7:21 PM
>>>>>> > > > > Michael
>>>>>> > > > > > > > >> Pollind
>>>>>> > > > > > > > >> > <
>>>>>> > > > > > > > >> > > > > > > > > >>>> mpoll...@gmail.com>
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > wrote:
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > when you mean these
>>>>>> > annotations
>>>>>> > > > do
>>>>>> > > > > > you
>>>>>> > > > > > > > mean
>>>>>> > > > > > > > >> > this
>>>>>> > > > > > > > >> > > > > would
>>>>>> > > > > > > > >> > > > > > > > need
>>>>>> > > > > > > > >> > > > > > > > > >>>> to be
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > implemented in ignite?
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > The project at the
>>>>>> moment is
>>>>>> > > > split
>>>>>> > > > > > into
>>>>>> > > > > > > > >> > multiple
>>>>>> > > > > > > > >> > > > > > > modules.
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > ignite-core,
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > ignite-cache, etc ...
>>>>>> The
>>>>>> > plan
>>>>>> > > > was
>>>>>> > > > > to
>>>>>> > > > > > > > also
>>>>>> > > > > > > > >> > have
>>>>>> > > > > > > > >> > > > > > > > ignite-data
>>>>>> > > > > > > > >> > > > > > > > > >>>> but
>>>>>> > > > > > > > >> > > > > > > > > >>>> > that
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > will
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > take a bit of work to
>>>>>> get
>>>>>> > > working
>>>>>> > > > > > > > correctly
>>>>>> > > > > > > > >> > but
>>>>>> > > > > > > > >> > > > the
>>>>>> > > > > > > > >> > > > > > > basic
>>>>>> > > > > > > > >> > > > > > > > > >>>> config is
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > mostly
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > done. The plan is
>>>>>> also to
>>>>>> > > verify
>>>>>> > > > > the
>>>>>> > > > > > > API
>>>>>> > > > > > > > >> > > described
>>>>>> > > > > > > > >> > > > > in
>>>>>> > > > > > > > >> > > > > > > the
>>>>>> > > > > > > > >> > > > > > > > > >>>> wiki and
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > make
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > sure this is what
>>>>>> would work
>>>>>> > > > best.
>>>>>> > > > > At
>>>>>> > > > > > > the
>>>>>> > > > > > > > >> > moment
>>>>>> > > > > > > > >> > > > I'm
>>>>>> > > > > > > > >> > > > > > > > missing
>>>>>> > > > > > > > >> > > > > > > > > >>>> an
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > implementation for the
>>>>>> > > thin-cache
>>>>>> > > > > and
>>>>>> > > > > > > how
>>>>>> > > > > > > > >> that
>>>>>> > > > > > > > >> > > > would
>>>>>> > > > > > > > >> > > > > > fit
>>>>>> > > > > > > > >> > > > > > > > > into
>>>>>> > > > > > > > >> > > > > > > > > >>>> this
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > scheme.
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > I've removed it due
>>>>>> to the
>>>>>> > > added
>>>>>> > > > > > > > complexity
>>>>>> > > > > > > > >> > but
>>>>>> > > > > > > > >> > > > I'm
>>>>>> > > > > > > > >> > > > > > sure
>>>>>> > > > > > > > >> > > > > > > > > >>>> something
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > could
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > be
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > arranged that would
>>>>>> work.
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > >
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > For Ignite-cache, I
>>>>>> have it
>>>>>> > as
>>>>>> > > a
>>>>>> > > > > > > separate
>>>>>> > > > > > > > >> > module
>>>>>> > > > > > > > >> > > > > that
>>>>>> > > > > > > > >> > > > > > > can
>>>>>> > > > > > > > >> > > > > > > > be
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > optionally
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > included in a
>>>>>> micronaut
>>>>>> > project
>>>>>> > > > > where
>>>>>> > > > > > > > this
>>>>>> > > > > > > > >> > > module
>>>>>> > > > > > > > >> > > > > also
>>>>>> > > > > > > > >> > > > > > > > has a
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > dependency
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > on
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > micronaut-cache. The
>>>>>> > AsyncCache
>>>>>> > > > and
>>>>>> > > > > > > > >> SyncCache
>>>>>> > > > > > > > >> > > are
>>>>>> > > > > > > > >> > > > > the
>>>>>> > > > > > > > >> > > > > > > two
>>>>>> > > > > > > > >> > > > > > > > > >>>> > interfaces
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > that
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > micronaut-cache
>>>>>> defines.
>>>>>> > There
>>>>>> > > > are
>>>>>> > > > > > two
>>>>>> > > > > > > > >> ways to
>>>>>> > > > > > > > >> > > > > define
>>>>>> > > > > > > > >> > > > > > > the
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > implementation,
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > you can either
>>>>>> provide beans
>>>>>> > > for
>>>>>> > > > > > > > AsyncCache
>>>>>> > > > > > > > >> > and
>>>>>> > > > > > > > >> > > > > > > SyncCache
>>>>>> > > > > > > > >> > > > > > > > > but
>>>>>> > > > > > > > >> > > > > > > > > >>>> they
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > also
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > define a
>>>>>> DynamicCacheManager
>>>>>> > > that
>>>>>> > > > > > will
>>>>>> > > > > > > > use
>>>>>> > > > > > > > >> the
>>>>>> > > > > > > > >> > > > name
>>>>>> > > > > > > > >> > > > > of
>>>>>> > > > > > > > >> > > > > > > the
>>>>>> > > > > > > > >> > > > > > > > > >>>> instance
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > to
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > refer to the name of
>>>>>> the
>>>>>> > cache
>>>>>> > > > > used.
>>>>>> > > > > > In
>>>>>> > > > > > > > the
>>>>>> > > > > > > > >> > > > > > > documentation
>>>>>> > > > > > > > >> > > > > > > > I
>>>>>> > > > > > > > >> > > > > > > > > >>>> believe
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > for
>>>>>> > > > > > > > >> > > > > > > > > >>>> > > > > > Teracotta you give a
>>>>>> list of
>>>>>> > > > caches
>>>>>> > > > > > you
>>>>>> > > > > > > > >> want
>>>>>> > > > > > > > >> > and
>>>>>> > > > > > > > >> > > >
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >> >
>>>>>> > > > > > > > >>
>>>>>> > > > > > > > >> --
>>>>>> > > > > > > > >> -
>>>>>> > > > > > > > >> Denis
>>>>>> > > > > > > > >>
>>>>>> > > > > > > > >
>>>>>> > > > > > > >
>>>>>> > > > > > >
>>>>>> > > > > >
>>>>>> > > > >
>>>>>> > > >
>>>>>> > >
>>>>>> >
>>>>>>
>>>>>

Reply via email to