@Override protected InMemoryFormat getInMemoryFormat(String dataStructureName) { return cacheService.getConfigs().get(dataStructureName).getInMemoryFormat(); }
@Override protected InMemoryFormat getInMemoryFormat(String dataStructureName) { return cacheService.getConfigs().get(dataStructureName).getInMemoryFormat(); }
protected Object extractExpiryPolicyOfRecord(CacheRecord record) { Object policyData = record.getExpiryPolicy(); if (policyData == null) { return null; } switch (cacheConfig.getInMemoryFormat()) { case NATIVE: case BINARY: return policyData; case OBJECT: return toValue(policyData); default: throw new IllegalArgumentException("Invalid storage format: " + cacheConfig.getInMemoryFormat()); } }
protected V getRecordValue(R record) { final Object objValue; switch (cacheRecordStore.cacheConfig.getInMemoryFormat()) { case BINARY: objValue = cacheRecordStore.cacheService.toObject(record.getValue()); break; case OBJECT: objValue = record.getValue(); break; default: throw new IllegalArgumentException("Invalid storage format: " + cacheRecordStore.cacheConfig.getInMemoryFormat()); } return (V) objValue; }
protected V getRecordValue(R record) { final Object objValue; switch (cacheRecordStore.cacheConfig.getInMemoryFormat()) { case BINARY: objValue = cacheRecordStore.cacheService.toObject(record.getValue()); break; case OBJECT: objValue = record.getValue(); break; default: throw new IllegalArgumentException("Invalid storage format: " + cacheRecordStore.cacheConfig.getInMemoryFormat()); } return (V) objValue; }
protected Object toStorageValue(Object obj) { if (obj instanceof Data) { if (cacheConfig.getInMemoryFormat() == InMemoryFormat.OBJECT) { return dataToValue((Data) obj); } else { return obj; } } else if (obj instanceof CacheRecord) { return recordToValue((R) obj); } else { return obj; } }
protected Object toStorageValue(Object obj) { if (obj instanceof Data) { if (cacheConfig.getInMemoryFormat() == InMemoryFormat.OBJECT) { return dataToValue((Data) obj); } else { return obj; } } else if (obj instanceof CacheRecord) { return recordToValue((R) obj); } else { return obj; } }
/** * Validates the given {@link CacheConfig}. * * @param cacheConfig the {@link CacheConfig} to check * @param mergePolicyProvider the {@link CacheMergePolicyProvider} to resolve merge policy classes */ public static void checkCacheConfig(CacheConfig cacheConfig, CacheMergePolicyProvider mergePolicyProvider) { checkCacheConfig(cacheConfig.getInMemoryFormat(), cacheConfig.getEvictionConfig(), cacheConfig.getMergePolicy(), cacheConfig, mergePolicyProvider); }
@Override protected OperationFactory createMergeOperationFactory(String dataStructureName, SplitBrainMergePolicy<Data, CacheMergeTypes> mergePolicy, int[] partitions, List<CacheMergeTypes>[] entries) { CacheConfig cacheConfig = cacheService.getCacheConfig(dataStructureName); CacheOperationProvider operationProvider = cacheService.getCacheOperationProvider(dataStructureName, cacheConfig.getInMemoryFormat()); return operationProvider.createMergeOperationFactory(dataStructureName, partitions, entries, mergePolicy); } }
@Override protected OperationFactory createMergeOperationFactory(String dataStructureName, SplitBrainMergePolicy<Data, CacheMergeTypes> mergePolicy, int[] partitions, List<CacheMergeTypes>[] entries) { CacheConfig cacheConfig = cacheService.getCacheConfig(dataStructureName); CacheOperationProvider operationProvider = cacheService.getCacheOperationProvider(dataStructureName, cacheConfig.getInMemoryFormat()); return operationProvider.createMergeOperationFactory(dataStructureName, partitions, entries, mergePolicy); } }
/** * Validates the given {@link CacheConfig}. * * @param cacheConfig the {@link CacheConfig} to check * @param mergePolicyProvider the {@link CacheMergePolicyProvider} to resolve merge policy classes */ public static void checkCacheConfig(CacheConfig cacheConfig, CacheMergePolicyProvider mergePolicyProvider) { checkCacheConfig(cacheConfig.getInMemoryFormat(), cacheConfig.getEvictionConfig(), cacheConfig.getMergePolicy(), cacheConfig, mergePolicyProvider); }
protected CacheOperationProvider getOperationProvider(String name) { ICacheService service = getService(CacheService.SERVICE_NAME); CacheConfig cacheConfig = service.getCacheConfig(name); if (cacheConfig == null) { throw new CacheNotExistsException("Cache config for cache " + name + " has not been created yet!"); } return service.getCacheOperationProvider(name, cacheConfig.getInMemoryFormat()); }
protected CacheOperationProvider getOperationProvider(String name) { ICacheService service = getService(CacheService.SERVICE_NAME); CacheConfig cacheConfig = service.getCacheConfig(name); if (cacheConfig == null) { throw new CacheNotExistsException("Cache config for cache " + name + " has not been created yet!"); } return service.getCacheOperationProvider(name, cacheConfig.getInMemoryFormat()); }
AbstractCacheProxyBase(CacheConfig<K, V> cacheConfig, NodeEngine nodeEngine, ICacheService cacheService) { super(nodeEngine, cacheService); this.name = cacheConfig.getName(); this.nameWithPrefix = cacheConfig.getNameWithPrefix(); this.cacheConfig = cacheConfig; this.nodeEngine = nodeEngine; this.logger = nodeEngine.getLogger(getClass()); this.partitionService = nodeEngine.getPartitionService(); this.cacheService = cacheService; this.serializationService = nodeEngine.getSerializationService(); this.operationProvider = cacheService.getCacheOperationProvider(nameWithPrefix, cacheConfig.getInMemoryFormat()); }
AbstractCacheProxyBase(CacheConfig<K, V> cacheConfig, NodeEngine nodeEngine, ICacheService cacheService) { super(nodeEngine, cacheService); this.name = cacheConfig.getName(); this.nameWithPrefix = cacheConfig.getNameWithPrefix(); this.cacheConfig = cacheConfig; this.nodeEngine = nodeEngine; this.logger = nodeEngine.getLogger(getClass()); this.partitionService = nodeEngine.getPartitionService(); this.cacheService = cacheService; this.serializationService = nodeEngine.getSerializationService(); this.operationProvider = cacheService.getCacheOperationProvider(nameWithPrefix, cacheConfig.getInMemoryFormat()); }
protected CacheOperationProvider getOperationProvider(String name) { ICacheService service = getService(CacheService.SERVICE_NAME); final CacheConfig cacheConfig = service.getCacheConfig(name); if (cacheConfig == null) { throw new CacheNotExistsException("Cache " + name + " is already destroyed or not created yet, on " + nodeEngine.getLocalMember()); } final InMemoryFormat inMemoryFormat = cacheConfig.getInMemoryFormat(); return service.getCacheOperationProvider(name, inMemoryFormat); }
protected CacheOperationProvider getOperationProvider(String name) { ICacheService service = getService(CacheService.SERVICE_NAME); final CacheConfig cacheConfig = service.getCacheConfig(name); if (cacheConfig == null) { throw new CacheNotExistsException("Cache " + name + " is already destroyed or not created yet, on " + nodeEngine.getLocalMember()); } final InMemoryFormat inMemoryFormat = cacheConfig.getInMemoryFormat(); return service.getCacheOperationProvider(name, inMemoryFormat); }
@Override protected <K, V> void validateCacheConfig(CacheConfig<K, V> cacheConfig) { CacheMergePolicyProvider mergePolicyProvider = cacheService.getMergePolicyProvider(); checkCacheConfig(cacheConfig, mergePolicyProvider); Object mergePolicy = mergePolicyProvider.getMergePolicy(cacheConfig.getMergePolicy()); checkMergePolicySupportsInMemoryFormat(cacheConfig.getName(), mergePolicy, cacheConfig.getInMemoryFormat(), true, nodeEngine.getLogger(HazelcastCacheManager.class)); }
@Override protected <K, V> void validateCacheConfig(CacheConfig<K, V> cacheConfig) { CacheMergePolicyProvider mergePolicyProvider = cacheService.getMergePolicyProvider(); checkCacheConfig(cacheConfig, mergePolicyProvider); Object mergePolicy = mergePolicyProvider.getMergePolicy(cacheConfig.getMergePolicy()); checkMergePolicySupportsInMemoryFormat(cacheConfig.getName(), mergePolicy, cacheConfig.getInMemoryFormat(), nodeEngine.getClusterService().getClusterVersion(), true, nodeEngine.getLogger(HazelcastCacheManager.class)); }
@Override protected void processMessage() { CacheConfig cacheConfig = extractCacheConfigFromMessage(); CacheService cacheService = getService(CacheService.SERVICE_NAME); if (cacheConfig != null) { CacheMergePolicyProvider mergePolicyProvider = cacheService.getMergePolicyProvider(); checkCacheConfig(cacheConfig, mergePolicyProvider); Object mergePolicy = mergePolicyProvider.getMergePolicy(cacheConfig.getMergePolicy()); checkMergePolicySupportsInMemoryFormat(cacheConfig.getName(), mergePolicy, cacheConfig.getInMemoryFormat(), true, logger); ICompletableFuture future = cacheService.createCacheConfigOnAllMembersAsync(PreJoinCacheConfig.of(cacheConfig)); future.andThen(this); } else { sendResponse(null); } }