use of com.hazelcast.config.SplitBrainProtectionConfig in project hazelcast by hazelcast.
the class ConfigDataSerializerHook method createFactory.
@Override
public DataSerializableFactory createFactory() {
ConstructorFunction<Integer, IdentifiedDataSerializable>[] constructors = new ConstructorFunction[LEN];
constructors[WAN_REPLICATION_CONFIG] = arg -> new WanReplicationConfig();
constructors[WAN_CONSUMER_CONFIG] = arg -> new WanConsumerConfig();
constructors[WAN_CUSTOM_PUBLISHER_CONFIG] = arg -> new WanCustomPublisherConfig();
constructors[WAN_BATCH_PUBLISHER_CONFIG] = arg -> new WanBatchPublisherConfig();
constructors[NEAR_CACHE_CONFIG] = arg -> new NearCacheConfig();
constructors[NEAR_CACHE_PRELOADER_CONFIG] = arg -> new NearCachePreloaderConfig();
constructors[ADD_DYNAMIC_CONFIG_OP] = arg -> new AddDynamicConfigOperation();
constructors[DYNAMIC_CONFIG_PRE_JOIN_OP] = arg -> new DynamicConfigPreJoinOperation();
constructors[MULTIMAP_CONFIG] = arg -> new MultiMapConfig();
constructors[LISTENER_CONFIG] = arg -> new ListenerConfig();
constructors[ENTRY_LISTENER_CONFIG] = arg -> new EntryListenerConfig();
constructors[MAP_CONFIG] = arg -> new MapConfig();
constructors[MAP_STORE_CONFIG] = arg -> new MapStoreConfig();
constructors[MAP_PARTITION_LOST_LISTENER_CONFIG] = arg -> new MapPartitionLostListenerConfig();
constructors[INDEX_CONFIG] = arg -> new IndexConfig();
constructors[MAP_ATTRIBUTE_CONFIG] = arg -> new AttributeConfig();
constructors[QUERY_CACHE_CONFIG] = arg -> new QueryCacheConfig();
constructors[PREDICATE_CONFIG] = arg -> new PredicateConfig();
constructors[PARTITION_STRATEGY_CONFIG] = arg -> new PartitioningStrategyConfig();
constructors[HOT_RESTART_CONFIG] = arg -> new HotRestartConfig();
constructors[TOPIC_CONFIG] = arg -> new TopicConfig();
constructors[RELIABLE_TOPIC_CONFIG] = arg -> new ReliableTopicConfig();
constructors[ITEM_LISTENER_CONFIG] = arg -> new ItemListenerConfig();
constructors[QUEUE_STORE_CONFIG] = arg -> new QueueStoreConfig();
constructors[QUEUE_CONFIG] = arg -> new QueueConfig();
constructors[LIST_CONFIG] = arg -> new ListConfig();
constructors[SET_CONFIG] = arg -> new SetConfig();
constructors[EXECUTOR_CONFIG] = arg -> new ExecutorConfig();
constructors[DURABLE_EXECUTOR_CONFIG] = arg -> new DurableExecutorConfig();
constructors[SCHEDULED_EXECUTOR_CONFIG] = arg -> new ScheduledExecutorConfig();
constructors[REPLICATED_MAP_CONFIG] = arg -> new ReplicatedMapConfig();
constructors[RINGBUFFER_CONFIG] = arg -> new RingbufferConfig();
constructors[RINGBUFFER_STORE_CONFIG] = arg -> new RingbufferStoreConfig();
constructors[CARDINALITY_ESTIMATOR_CONFIG] = arg -> new CardinalityEstimatorConfig();
constructors[SIMPLE_CACHE_CONFIG] = arg -> new CacheSimpleConfig();
constructors[SIMPLE_CACHE_CONFIG_EXPIRY_POLICY_FACTORY_CONFIG] = arg -> new CacheSimpleConfig.ExpiryPolicyFactoryConfig();
constructors[SIMPLE_CACHE_CONFIG_TIMED_EXPIRY_POLICY_FACTORY_CONFIG] = arg -> new CacheSimpleConfig.ExpiryPolicyFactoryConfig.TimedExpiryPolicyFactoryConfig();
constructors[SIMPLE_CACHE_CONFIG_DURATION_CONFIG] = arg -> new CacheSimpleConfig.ExpiryPolicyFactoryConfig.DurationConfig();
constructors[SPLIT_BRAIN_PROTECTION_CONFIG] = arg -> new SplitBrainProtectionConfig();
constructors[EVENT_JOURNAL_CONFIG] = arg -> new EventJournalConfig();
constructors[SPLIT_BRAIN_PROTECTION_LISTENER_CONFIG] = arg -> new SplitBrainProtectionListenerConfig();
constructors[CACHE_PARTITION_LOST_LISTENER_CONFIG] = arg -> new CachePartitionLostListenerConfig();
constructors[SIMPLE_CACHE_ENTRY_LISTENER_CONFIG] = arg -> new CacheSimpleEntryListenerConfig();
constructors[FLAKE_ID_GENERATOR_CONFIG] = arg -> new FlakeIdGeneratorConfig();
constructors[MERGE_POLICY_CONFIG] = arg -> new MergePolicyConfig();
constructors[PN_COUNTER_CONFIG] = arg -> new PNCounterConfig();
constructors[MERKLE_TREE_CONFIG] = arg -> new MerkleTreeConfig();
constructors[WAN_SYNC_CONFIG] = arg -> new WanSyncConfig();
constructors[KUBERNETES_CONFIG] = arg -> new KubernetesConfig();
constructors[EUREKA_CONFIG] = arg -> new EurekaConfig();
constructors[GCP_CONFIG] = arg -> new GcpConfig();
constructors[AZURE_CONFIG] = arg -> new AzureConfig();
constructors[AWS_CONFIG] = arg -> new AwsConfig();
constructors[DISCOVERY_CONFIG] = arg -> new DiscoveryConfig();
constructors[DISCOVERY_STRATEGY_CONFIG] = arg -> new DiscoveryStrategyConfig();
constructors[WAN_REPLICATION_REF] = arg -> new WanReplicationRef();
constructors[EVICTION_CONFIG] = arg -> new EvictionConfig();
constructors[PERMISSION_CONFIG] = arg -> new PermissionConfig();
constructors[BITMAP_INDEX_OPTIONS] = arg -> new BitmapIndexOptions();
constructors[DATA_PERSISTENCE_CONFIG] = arg -> new DataPersistenceConfig();
constructors[TIERED_STORE_CONFIG] = arg -> new TieredStoreConfig();
constructors[MEMORY_TIER_CONFIG] = arg -> new MemoryTierConfig();
constructors[DISK_TIER_CONFIG] = arg -> new DiskTierConfig();
return new ArrayDataSerializableFactory(constructors);
}
use of com.hazelcast.config.SplitBrainProtectionConfig in project hazelcast by hazelcast.
the class MemberDomConfigProcessor method handleSplitBrainProtectionNode.
protected void handleSplitBrainProtectionNode(Node node, SplitBrainProtectionConfig splitBrainProtectionConfig, String name) {
Node attrEnabled = getNamedItemNode(node, "enabled");
boolean enabled = attrEnabled != null && getBooleanValue(getTextContent(attrEnabled));
// probabilistic-split-brain-protection and recently-active-split-brain-protection
// configs are constructed via SplitBrainProtectionConfigBuilder
SplitBrainProtectionConfigBuilder splitBrainProtectionConfigBuilder = null;
splitBrainProtectionConfig.setEnabled(enabled);
for (Node n : childElements(node)) {
String nodeName = cleanNodeName(n);
if (matches("minimum-cluster-size", nodeName)) {
splitBrainProtectionConfig.setMinimumClusterSize(getIntegerValue("minimum-cluster-size", getTextContent(n)));
} else if (matches("listeners", nodeName)) {
handleSplitBrainProtectionListeners(splitBrainProtectionConfig, n);
} else if (matches("protect-on", nodeName)) {
splitBrainProtectionConfig.setProtectOn(SplitBrainProtectionOn.valueOf(upperCaseInternal(getTextContent(n))));
} else if (matches("function-class-name", nodeName)) {
splitBrainProtectionConfig.setFunctionClassName(getTextContent(n));
} else if (matches("recently-active-split-brain-protection", nodeName)) {
splitBrainProtectionConfigBuilder = handleRecentlyActiveSplitBrainProtection(name, n, splitBrainProtectionConfig.getMinimumClusterSize());
} else if (matches("probabilistic-split-brain-protection", nodeName)) {
splitBrainProtectionConfigBuilder = handleProbabilisticSplitBrainProtection(name, n, splitBrainProtectionConfig.getMinimumClusterSize());
}
}
if (splitBrainProtectionConfigBuilder != null) {
boolean splitBrainProtectionFunctionDefinedByClassName = !isNullOrEmpty(splitBrainProtectionConfig.getFunctionClassName());
if (splitBrainProtectionFunctionDefinedByClassName) {
throw new InvalidConfigurationException("A split brain protection cannot simultaneously" + " define probabilistic-split-brain-protectionm or " + "recently-active-split-brain-protection and a split brain protection function class name.");
}
// ensure parsed attributes are reflected in constructed split brain protection config
SplitBrainProtectionConfig constructedConfig = splitBrainProtectionConfigBuilder.build();
constructedConfig.setMinimumClusterSize(splitBrainProtectionConfig.getMinimumClusterSize());
constructedConfig.setProtectOn(splitBrainProtectionConfig.getProtectOn());
constructedConfig.setListenerConfigs(splitBrainProtectionConfig.getListenerConfigs());
splitBrainProtectionConfig = constructedConfig;
}
config.addSplitBrainProtectionConfig(splitBrainProtectionConfig);
}
use of com.hazelcast.config.SplitBrainProtectionConfig in project hazelcast by hazelcast.
the class MemberQuorumServiceNullTest method setup.
@Before
public void setup() {
TestHazelcastInstanceFactory factory = createHazelcastInstanceFactory();
SplitBrainProtectionConfig sbpc = new SplitBrainProtectionConfig("dummyQuorum", true);
instance = factory.newHazelcastInstance(new Config().addSplitBrainProtectionConfig(sbpc));
}
use of com.hazelcast.config.SplitBrainProtectionConfig in project hazelcast by hazelcast.
the class AbstractSplitBrainProtectionTest method newSplitBrainProtectionConfig.
protected static SplitBrainProtectionConfig newSplitBrainProtectionConfig(SplitBrainProtectionOn splitBrainProtectionOn, String splitBrainProtectionName) {
SplitBrainProtectionConfig splitBrainProtectionConfig = new SplitBrainProtectionConfig();
splitBrainProtectionConfig.setName(splitBrainProtectionName);
splitBrainProtectionConfig.setProtectOn(splitBrainProtectionOn);
splitBrainProtectionConfig.setEnabled(true);
splitBrainProtectionConfig.setMinimumClusterSize(3);
return splitBrainProtectionConfig;
}
use of com.hazelcast.config.SplitBrainProtectionConfig in project hazelcast by hazelcast.
the class SplitBrainProtectionListenerTest method configWithSplitBrainProtection.
private Config configWithSplitBrainProtection(String name, SplitBrainProtectionListener listener) {
SplitBrainProtectionListenerConfig listenerConfig = new SplitBrainProtectionListenerConfig();
listenerConfig.setImplementation(listener);
Config config = new Config();
config.addSplitBrainProtectionConfig(new SplitBrainProtectionConfig(name, true, 3).addListenerConfig(listenerConfig));
return config;
}
Aggregations