static final Future<HazelcastInstance> HAZELCAST_INSTANCE=CompletableFuture.supplyAsync(() -> {
if(SHOULD_START_OWN_HZ_SERVER){
final Config config=new Config()
.setProperty("hazelcast.shutdownhook.enabled","false")
.setProperty("hazelcast.logging.type","log4j")
.addQueueConfig(new QueueConfig("*"))
.addMapConfig(new MapConfig("*")
.setBackupCount(1)
.setMaxIdleSeconds(0)
.setEvictionPolicy(NONE)
.setMergePolicyConfig(new MergePolicyConfig().setPolicy(LatestUpdateMapMergePolicy.class.getName())));
config.getGroupConfig()
.setName(HAZELCAST_USERNAME)
.setPassword(HAZELCAST_PASSWORD);
final NetworkConfig networkConfig=config.getNetworkConfig()
.setPublicAddress(Startup.getFQDNHostname())
.setPortAutoIncrement(false).setPort(5702).setReuseAddress(true);
final JoinConfig join=networkConfig.getJoin();
join.getMulticastConfig().setEnabled(false);
join.getTcpIpConfig().setMembers(STATIC_HAZELCAST_MEMBERS).setEnabled(true);
HazelcastSerializers.register(config.getSerializationConfig());
return Hazelcast.newHazelcastInstance(config);
}else{
final ClientConfig config=new ClientConfig()
.setProperty("hazelcast.shutdownhook.enabled","false")
.setProperty("hazelcast.logging.type","log4j");
config.getGroupConfig()
.setName(HAZELCAST_USERNAME)
.setPassword(HAZELCAST_PASSWORD);
config.getNetworkConfig()
.setAddresses(STATIC_HAZELCAST_MEMBERS)
.setRedoOperation(true)
.setConnectionAttemptLimit(Math.max(2,STATIC_HAZELCAST_MEMBERS.size()-1));
HazelcastSerializers.register(config.getSerializationConfig());
return HazelcastClient.newHazelcastClient(config);
}
}).exceptionally(e -> {
...
...
return null;
});