Re: Unable to inject spring configuration on Cachestore

2017-04-24 Thread Guilherme Melo
Thats great,
Thank you very much Andrey.

Cheers,

Guilherme Melo
www.gmelo.org

On 25 April 2017 at 01:04, Andrey Gura  wrote:

> Hi Guilherme,
>
> Ignite creates Spring application context only if started using
> Ignition.start(springUrlCfg) method and can work only with XML
> application context.
>
> Try to use IgniteSpringBean. This class implements
> ApplicationContextAware interface so your Spring application context
> should be propagated to Ignite instance.
>
> Another way is using IgniteSpring.start() factory method that get
> optional Spring application context.
>
> On Mon, Apr 24, 2017 at 1:09 PM, Guilherme Melo 
> wrote:
> > Hello,
> > I am trying to utilize @SpringResource and
> > @SpringApplicationContextResource, however both are null on my
> CacheStore,
> > has anyone encountered this before?
> >
> > Below is my config:
> >
> > @Bean
> > public IgniteConfiguration getIgniteConfiguration() {
> > IgniteConfiguration cfg = new IgniteConfiguration();
> > cfg.setClientMode(false);
> > CacheConfiguration orderCache = new CacheConfiguration();
> > orderCache.setName("testCache");
> > orderCache.setBackups(1);
> > orderCache.setCacheMode(CacheMode.PARTITIONED);
> >
> > orderCache.setCacheWriterFactory(FactoryBuilder.factoryOf(
> CacheStoreWithInjectedBeans.class));
> > orderCache.setReadThrough(true);
> > orderCache.setWriteThrough(true);
> >
> > cfg.setCacheConfiguration(
> > orderCache);
> > return cfg;
> > }
> >
> > and the class:
> >
> > public class CacheStoreWithInjectedBeans implements CacheWriter > String> {
> > @SpringResource
> > private MyService myService;
> > @SpringApplicationContextResource
> > private Object appCtx;
> > @Override
> > public void write(Cache.Entry
> entry)
> > throws CacheWriterException {
> > myService.apply(entry.getValue());
> > }
> > @Override
> > public void writeAll(Collection > String>> entries) throws CacheWriterException {
> >
> > }
> > @Override
> > public void delete(Object key) throws CacheWriterException {
> >
> > }
> > @Override
> > public void deleteAll(Collection keys) throws
> CacheWriterException {
> >
> > }
> >
> > }
> >
> > Cheers,
> > Guilherme Melo
> > www.gmelo.org
>


Re: Unable to inject spring configuration on Cachestore

2017-04-24 Thread Andrey Gura
Hi Guilherme,

Ignite creates Spring application context only if started using
Ignition.start(springUrlCfg) method and can work only with XML
application context.

Try to use IgniteSpringBean. This class implements
ApplicationContextAware interface so your Spring application context
should be propagated to Ignite instance.

Another way is using IgniteSpring.start() factory method that get
optional Spring application context.

On Mon, Apr 24, 2017 at 1:09 PM, Guilherme Melo  wrote:
> Hello,
> I am trying to utilize @SpringResource and
> @SpringApplicationContextResource, however both are null on my CacheStore,
> has anyone encountered this before?
>
> Below is my config:
>
> @Bean
> public IgniteConfiguration getIgniteConfiguration() {
> IgniteConfiguration cfg = new IgniteConfiguration();
> cfg.setClientMode(false);
> CacheConfiguration orderCache = new CacheConfiguration();
> orderCache.setName("testCache");
> orderCache.setBackups(1);
> orderCache.setCacheMode(CacheMode.PARTITIONED);
>
> orderCache.setCacheWriterFactory(FactoryBuilder.factoryOf(CacheStoreWithInjectedBeans.class));
> orderCache.setReadThrough(true);
> orderCache.setWriteThrough(true);
>
> cfg.setCacheConfiguration(
> orderCache);
> return cfg;
> }
>
> and the class:
>
> public class CacheStoreWithInjectedBeans implements CacheWriter String> {
> @SpringResource
> private MyService myService;
> @SpringApplicationContextResource
> private Object appCtx;
> @Override
> public void write(Cache.Entry entry)
> throws CacheWriterException {
> myService.apply(entry.getValue());
> }
> @Override
> public void writeAll(Collection> entries) throws CacheWriterException {
>
> }
> @Override
> public void delete(Object key) throws CacheWriterException {
>
> }
> @Override
> public void deleteAll(Collection keys) throws CacheWriterException {
>
> }
>
> }
>
> Cheers,
> Guilherme Melo
> www.gmelo.org


Unable to inject spring configuration on Cachestore

2017-04-24 Thread Guilherme Melo
Hello,
I am trying to utilize @SpringResource and
@SpringApplicationContextResource, however both are null on my CacheStore,
has anyone encountered this before?

Below is my config:

@Bean
public IgniteConfiguration getIgniteConfiguration() {
IgniteConfiguration cfg = new IgniteConfiguration();
cfg.setClientMode(false);
CacheConfiguration orderCache = new CacheConfiguration();
orderCache.setName("testCache");
orderCache.setBackups(1);
orderCache.setCacheMode(CacheMode.PARTITIONED);

orderCache.setCacheWriterFactory(FactoryBuilder.factoryOf(CacheStoreWithInjectedBeans.class));
orderCache.setReadThrough(true);
orderCache.setWriteThrough(true);

cfg.setCacheConfiguration(
orderCache);
return cfg;
}

and the class:

public class CacheStoreWithInjectedBeans implements CacheWriter {
@SpringResource
private MyService myService;
@SpringApplicationContextResource
private Object appCtx;
@Override
public void write(Cache.Entry
entry) throws CacheWriterException {
myService.apply(entry.getValue());
}
@Override
public void writeAll(Collection entries) throws CacheWriterException {

}
@Override
public void delete(Object key) throws CacheWriterException {

}
@Override
public void deleteAll(Collection keys) throws CacheWriterException {

}

}

Cheers,
Guilherme Melo
www.gmelo.org