/** * @param ccfg Cache configuration. * @param objs Extra components. * @return Components provided in cache configuration which can implement {@link GridLifecycleAware} interface. */ private Iterable<Object> lifecycleAwares(GridCacheConfiguration ccfg, Object...objs) { Collection<Object> ret = new ArrayList<>(7 + objs.length); ret.add(ccfg.getAffinity()); ret.add(ccfg.getAffinityMapper()); ret.add(ccfg.getCloner()); ret.add(ccfg.getEvictionFilter()); ret.add(ccfg.getEvictionPolicy()); ret.add(ccfg.getNearEvictionPolicy()); ret.add(ccfg.getInterceptor()); Collections.addAll(ret, objs); return ret; }
/** {@inheritDoc} */ @Override public void preProcessCacheConfiguration(GridCacheConfiguration cfg) { GridCacheEvictionPolicy evictPlc = cfg.getEvictionPolicy(); if (evictPlc instanceof GridCacheGgfsPerBlockLruEvictionPolicy && cfg.getEvictionFilter() == null) cfg.setEvictionFilter(new GridCacheGgfsEvictionFilter()); }
/** {@inheritDoc} */ @Override public void validateCacheConfiguration(GridCacheConfiguration cfg) throws GridException { GridCacheEvictionPolicy evictPlc = cfg.getEvictionPolicy(); if (evictPlc != null && evictPlc instanceof GridCacheGgfsPerBlockLruEvictionPolicy) { GridCacheEvictionFilter evictFilter = cfg.getEvictionFilter(); if (evictFilter != null && !(evictFilter instanceof GridCacheGgfsEvictionFilter)) throw new GridException("Eviction filter cannot be set explicitly when using " + "GridCacheGgfsPerBlockLruEvictionPolicy:" + cfg.getName()); } }
/** {@inheritDoc} */ @Override public void preProcessCacheConfiguration(GridCacheConfiguration cfg) { GridCacheEvictionPolicy evictPlc = cfg.getEvictionPolicy(); if (evictPlc instanceof GridCacheGgfsPerBlockLruEvictionPolicy && cfg.getEvictionFilter() == null) cfg.setEvictionFilter(new GridCacheGgfsEvictionFilter()); }
/** {@inheritDoc} */ @Override public void validateCacheConfiguration(GridCacheConfiguration cfg) throws GridException { GridCacheEvictionPolicy evictPlc = cfg.getEvictionPolicy(); if (evictPlc != null && evictPlc instanceof GridCacheGgfsPerBlockLruEvictionPolicy) { GridCacheEvictionFilter evictFilter = cfg.getEvictionFilter(); if (evictFilter != null && !(evictFilter instanceof GridCacheGgfsEvictionFilter)) throw new GridException("Eviction filter cannot be set explicitly when using " + "GridCacheGgfsPerBlockLruEvictionPolicy:" + cfg.getName()); } }
/** * @param cfg Configuration. * @param objs Extra components. * @throws GridException If failed to inject. */ private void prepare(GridCacheConfiguration cfg, Object... objs) throws GridException { prepare(cfg, cfg.getEvictionPolicy(), false); prepare(cfg, cfg.getNearEvictionPolicy(), true); prepare(cfg, cfg.getAffinity(), false); prepare(cfg, cfg.getAffinityMapper(), false); prepare(cfg, cfg.getCloner(), false); prepare(cfg, cfg.getStore(), false); prepare(cfg, cfg.getEvictionFilter(), false); prepare(cfg, cfg.getInterceptor(), false); GridDrSenderCacheConfiguration drSndCfg = cfg.getDrSenderConfiguration(); if (drSndCfg != null) prepare(cfg, drSndCfg.getEntryFilter(), false); GridDrReceiverCacheConfiguration drRcvCfg = cfg.getDrReceiverConfiguration(); if (drRcvCfg != null) prepare(cfg, drRcvCfg.getConflictResolver(), false); for (Object obj : objs) prepare(cfg, obj, false); }
/** * @param ccfg Cache configuration. * @return Data transfer object for eviction configuration properties. */ public static VisorEvictionConfig from(GridCacheConfiguration ccfg) { VisorEvictionConfig cfg = new VisorEvictionConfig(); Integer policyMaxSize = null; final GridCacheEvictionPolicy policy = ccfg.getEvictionPolicy(); if (policy instanceof GridCacheLruEvictionPolicyMBean) policyMaxSize = ((GridCacheLruEvictionPolicyMBean)policy).getMaxSize(); else if (policy instanceof GridCacheRandomEvictionPolicyMBean) policyMaxSize = ((GridCacheRandomEvictionPolicyMBean)policy).getMaxSize(); else if (policy instanceof GridCacheFifoEvictionPolicyMBean) policyMaxSize = ((GridCacheFifoEvictionPolicyMBean)policy).getMaxSize(); cfg.policy(compactClass(ccfg.getEvictionPolicy())); cfg.policyMaxSize(policyMaxSize); cfg.filter(compactClass(ccfg.getEvictionFilter())); cfg.synchronizedConcurrencyLevel(ccfg.getEvictSynchronizedConcurrencyLevel()); cfg.synchronizedTimeout(ccfg.getEvictSynchronizedTimeout()); cfg.synchronizedKeyBufferSize(ccfg.getEvictSynchronizedKeyBufferSize()); cfg.evictSynchronized(ccfg.isEvictSynchronized()); cfg.nearSynchronized(ccfg.isEvictNearSynchronized()); cfg.maxOverflowRatio(ccfg.getEvictMaxOverflowRatio()); return cfg; }
filter = cfg.getEvictionFilter();
evictFilterClsName = className(cfg.getEvictionFilter()); evictPlcClsName = className(cfg.getEvictionPolicy()); nearEvictPlcClsName = className(cfg.getNearEvictionPolicy());
new GridDrReceiverCacheConfiguration(cc.getDrReceiverConfiguration()) : null; eagerTtl = cc.isEagerTtl(); evictFilter = cc.getEvictionFilter(); evictKeyBufSize = cc.getEvictSynchronizedKeyBufferSize(); evictMaxOverflowRatio = cc.getEvictMaxOverflowRatio();