diff --git a/hazelcast/pom.xml b/hazelcast/pom.xml new file mode 100644 index 0000000000..62cfa89c0f --- /dev/null +++ b/hazelcast/pom.xml @@ -0,0 +1,72 @@ + + 4.0.0 + com.baeldung + hazelcast + 0.0.1-SNAPSHOT + hazelcast + + + + + com.hazelcast + hazelcast-all + ${hazelcast.version} + + + + + org.slf4j + slf4j-api + ${org.slf4j.version} + + + + ch.qos.logback + logback-classic + ${logback.version} + + + + ch.qos.logback + logback-core + ${logback.version} + + + + + + hazelcast + + + src/main/resources + true + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + 1.8 + 1.8 + + + + + + + + 3.7 + + + 1.7.21 + 1.1.7 + + + 3.5.1 + + + \ No newline at end of file diff --git a/hazelcast/src/main/java/com/baeldung/hazelcast/cluster/NativeClient.java b/hazelcast/src/main/java/com/baeldung/hazelcast/cluster/NativeClient.java new file mode 100644 index 0000000000..bda4b94733 --- /dev/null +++ b/hazelcast/src/main/java/com/baeldung/hazelcast/cluster/NativeClient.java @@ -0,0 +1,26 @@ +package com.baeldung.hazelcast.cluster; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.baeldung.hazelcast.listener.CountryEntryListener; +import com.hazelcast.client.HazelcastClient; +import com.hazelcast.client.config.ClientConfig; +import com.hazelcast.config.GroupConfig; +import com.hazelcast.core.HazelcastInstance; +import com.hazelcast.core.IMap; + +public class NativeClient { + private static final Logger logger = LoggerFactory.getLogger(NativeClient.class); + + public static void main(String[] args) throws InterruptedException { + ClientConfig config = new ClientConfig(); + GroupConfig groupConfig = config.getGroupConfig(); + groupConfig.setName("dev"); + groupConfig.setPassword("dev-pass"); + HazelcastInstance hazelcastInstanceClient = HazelcastClient.newHazelcastClient(config); + IMap countryMap = hazelcastInstanceClient.getMap("country"); + countryMap.addEntryListener(new CountryEntryListener(), true); + logger.info("Country map size: " + countryMap.size()); + } +} diff --git a/hazelcast/src/main/java/com/baeldung/hazelcast/cluster/ServerNode.java b/hazelcast/src/main/java/com/baeldung/hazelcast/cluster/ServerNode.java new file mode 100644 index 0000000000..8680180399 --- /dev/null +++ b/hazelcast/src/main/java/com/baeldung/hazelcast/cluster/ServerNode.java @@ -0,0 +1,23 @@ +package com.baeldung.hazelcast.cluster; + +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.hazelcast.core.Hazelcast; +import com.hazelcast.core.HazelcastInstance; +import com.hazelcast.core.IdGenerator; + +public class ServerNode { + private static final Logger logger = LoggerFactory.getLogger(ServerNode.class); + + public static void main(String[] args) { + HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance(); + Map countryMap = hazelcastInstance.getMap("country"); + IdGenerator idGenerator = hazelcastInstance.getIdGenerator("newid"); + Long countryIdGenerator = idGenerator.newId() == 0L ? 1L : idGenerator.newId(); + countryMap.put(countryIdGenerator, "Country1"); + logger.info("Country map size: " + countryMap.size()); + } +} diff --git a/hazelcast/src/main/java/com/baeldung/hazelcast/listener/CountryEntryListener.java b/hazelcast/src/main/java/com/baeldung/hazelcast/listener/CountryEntryListener.java new file mode 100644 index 0000000000..1f95dcd9f3 --- /dev/null +++ b/hazelcast/src/main/java/com/baeldung/hazelcast/listener/CountryEntryListener.java @@ -0,0 +1,41 @@ +package com.baeldung.hazelcast.listener; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.hazelcast.core.EntryEvent; +import com.hazelcast.core.MapEvent; +import com.hazelcast.map.listener.EntryAddedListener; +import com.hazelcast.map.listener.EntryEvictedListener; +import com.hazelcast.map.listener.EntryRemovedListener; +import com.hazelcast.map.listener.EntryUpdatedListener; +import com.hazelcast.map.listener.MapClearedListener; +import com.hazelcast.map.listener.MapEvictedListener; + +public class CountryEntryListener implements EntryAddedListener, EntryRemovedListener, EntryUpdatedListener, EntryEvictedListener, MapEvictedListener, MapClearedListener { + private static final Logger logger = LoggerFactory.getLogger(CountryEntryListener.class); + + public void entryAdded(EntryEvent event) { + logger.info("entryAdded:" + event); + } + + public void entryUpdated(EntryEvent event) { + logger.info("entryUpdated:" + event); + } + + public void entryRemoved(EntryEvent event) { + logger.info("entryRemoved:" + event); + } + + public void entryEvicted(EntryEvent event) { + logger.info("entryEvicted:" + event); + } + + public void mapCleared(MapEvent event) { + logger.info("mapCleared:" + event); + } + + public void mapEvicted(MapEvent event) { + logger.info("mapEvicted:" + event); + } +} diff --git a/hazelcast/src/main/resources/hazelcast.xml b/hazelcast/src/main/resources/hazelcast.xml new file mode 100644 index 0000000000..f29dc532b8 --- /dev/null +++ b/hazelcast/src/main/resources/hazelcast.xml @@ -0,0 +1,16 @@ + + + + 5701 + + + + + machine1 + localhost + + + + \ No newline at end of file diff --git a/hazelcast/src/main/resources/logback.xml b/hazelcast/src/main/resources/logback.xml new file mode 100644 index 0000000000..8b566286b8 --- /dev/null +++ b/hazelcast/src/main/resources/logback.xml @@ -0,0 +1,18 @@ + + + + + + %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg %n + + + + + + + + + + + + \ No newline at end of file