subsys/infinispan/src/main/java/org/commonjava/indy/subsys/infinispan/CacheProducer.java
public synchronized <K, V> BasicCacheHandle<K, V> getBasicCache( String named )
    {
        BasicCacheHandle handle = caches.computeIfAbsent( named, ( k ) -> {
            if ( remoteConfiguration.isEnabled() && remoteConfiguration.isRemoteCache( k ) )
            {
                RemoteCache<K, V> cache = null;
                try
                {
                    cache = remoteCacheManager.getCache( k );
                    if ( cache == null )
                    {
                        logger.warn( "Can not get remote cache, name: {}", k );
                        return null;
                    }
                }
                catch ( Exception e )
                {
                    logger.warn( "Get remote cache failed", e );
                    return null;
                }
                logger.info( "Get remote cache, name: {}", k );
                return new RemoteCacheHandle( k, cache, metricsManager, getCacheMetricPrefix( k ) );
            }
public synchronized <K, V> BasicCacheHandle<K, V> getBasicCache( String named )
    {
        BasicCacheHandle handle = caches.computeIfAbsent( named, ( k ) -> {
            if ( remoteConfiguration.isEnabled() && remoteConfiguration.isRemoteCache( k ) )
            {
                RemoteCache<K, V> cache = null;
                try
                {
                    cache = remoteCacheManager.getCache( k );
                    if ( cache == null )
                    {
                        logger.warn( "Can not get remote cache, name: {}", k );
                        return null;
                    }
                }
                catch ( Exception e )
                {
                    logger.warn( "Get remote cache failed", e );
                    return null;
                }
                logger.info( "Get remote cache, name: {}", k );
                return new RemoteCacheHandle( k, cache, metricsManager, getCacheMetricPrefix( k ) );
            }
Get a BasicCache instance. If the remote cache is enabled, it will match the named with remote.patterns.
If matched, it will create/return a RemoteCache. If not matched, an embedded cache will be created/returned to the caller.