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