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