All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.infinispan.spring.provider.SpringRemoteCache Maven / Gradle / Ivy

Go to download

The Infinispan Spring Integration project provides Spring integration for Infinispan, a high performance distributed cache. Its primary features are * An implementation of org.springframework.cache.CacheManager, Spring's central caching abstraction, backed by Infinispan's EmbeddedCacheManager. To be used if your Spring-powered application and Infinispan are colocated, i.e. running within the same VM. * An implementation of org.springframework.cache.CacheManager backed by Infinispan's RemoteCacheManager. To bes used if your Spring-powered application accesses Infinispan remotely, i.e. over the network. * An implementation of org.springframework.cache.CacheManager backed by a CacheContainer reference. To be used if your Spring- powered application needs access to a CacheContainer defined outside the application (e.g. retrieved from JNDI) * Spring namespace support allowing shortcut definitions for all the components above In addition, Infinispan Spring Integration offers various FactoryBeans for facilitating creation of Infinispan core classes - Cache, CacheManager, ... - within a Spring context.

There is a newer version: 8.1.0.Alpha2
Show newest version
package org.infinispan.spring.provider;

import org.infinispan.client.hotrod.RemoteCache;
import org.springframework.cache.Cache;
import org.springframework.cache.support.SimpleValueWrapper;
import org.springframework.util.Assert;

/**
 * 

* A {@link org.springframework.cache.Cache Cache} implementation that delegates to a * {@link org.infinispan.client.hotrod.RemoteCache org.infinispan.client.hotrod.RemoteCache} instance supplied at construction * time. *

* * @author Olaf Bergner * @author Marius Bogoevici * */ public class SpringRemoteCache implements Cache { private final CacheDelegate cacheImplementation; /** * @param nativeCache the underlying cache */ public SpringRemoteCache(final RemoteCache nativeCache) { this.cacheImplementation = new CacheDelegate(nativeCache); } /** * @see org.springframework.cache.Cache#getName() */ @Override public String getName() { return this.cacheImplementation.getName(); } /** * @see org.springframework.cache.Cache#getNativeCache() */ @Override public org.infinispan.commons.api.BasicCache getNativeCache() { return this.cacheImplementation.getNativeCache(); } /** * @see org.springframework.cache.Cache#get(java.lang.Object) */ @Override public ValueWrapper get(final Object key) { return cacheImplementation.get(key); } @Override public T get(Object key, Class type) { return cacheImplementation.get(key, type); } /** * @see org.springframework.cache.Cache#put(java.lang.Object, java.lang.Object) */ @Override public void put(final Object key, final Object value) { this.cacheImplementation.put(key, value); } @Override public ValueWrapper putIfAbsent(Object key, Object value) { return cacheImplementation.putIfAbsent(key, value); } /** * @see org.springframework.cache.Cache#evict(java.lang.Object) */ @Override public void evict(final Object key) { this.cacheImplementation.evict(key); } /** * @see org.springframework.cache.Cache#clear() */ @Override public void clear() { this.cacheImplementation.clear(); } /** * @see java.lang.Object#toString() */ @Override public String toString() { return "InfinispanCache [nativeCache = " + this.cacheImplementation.getNativeCache() + "]"; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy