package microservices.sample.discovery.hazelcast; import com.hazelcast.config.Config; import com.hazelcast.config.ItemListenerConfig; import com.hazelcast.config.SetConfig; import com.hazelcast.core.Hazelcast; import com.hazelcast.core.HazelcastInstance; import com.hazelcast.core.ItemListener; import java.util.UUID; /** * Builder class for creating a configured Hazelcast instance. * * @author mamad * @since 17/03/15. */ public class HazelcastBuilder { public static final String PUBLISHED_SERVICES = "_published_services"; private ItemListener listener; public static HazelcastBuilder create() { return new HazelcastBuilder(); } public HazelcastBuilder withListener(ItemListener listener) { this.listener = listener; return this; } public HazelcastInstance build() { Config config = new Config(); if (listener != null) { SetConfig setConfig = new SetConfig(); setConfig.setName(PUBLISHED_SERVICES); setConfig.addItemListenerConfig(new ItemListenerConfig(listener, true)); config.addSetConfig(setConfig); } config.setInstanceName(UUID.randomUUID().toString()); return Hazelcast.newHazelcastInstance(config); } }