Skip to content

Commit 897e245

Browse files
BAEL-221 - Guide to Hazelcast
1 parent 91d12fe commit 897e245

6 files changed

Lines changed: 196 additions & 0 deletions

File tree

hazelcast/pom.xml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<groupId>com.baeldung</groupId>
5+
<artifactId>hazelcast</artifactId>
6+
<version>0.0.1-SNAPSHOT</version>
7+
<name>hazelcast</name>
8+
9+
<dependencies>
10+
<!-- hazelcast -->
11+
<dependency>
12+
<groupId>com.hazelcast</groupId>
13+
<artifactId>hazelcast-all</artifactId>
14+
<version>${hazelcast.version}</version>
15+
</dependency>
16+
17+
<!-- utils -->
18+
<dependency>
19+
<groupId>org.slf4j</groupId>
20+
<artifactId>slf4j-api</artifactId>
21+
<version>${org.slf4j.version}</version>
22+
</dependency>
23+
24+
<dependency>
25+
<groupId>ch.qos.logback</groupId>
26+
<artifactId>logback-classic</artifactId>
27+
<version>${logback.version}</version>
28+
</dependency>
29+
30+
<dependency>
31+
<groupId>ch.qos.logback</groupId>
32+
<artifactId>logback-core</artifactId>
33+
<version>${logback.version}</version>
34+
</dependency>
35+
36+
</dependencies>
37+
38+
<build>
39+
<finalName>hazelcast</finalName>
40+
<resources>
41+
<resource>
42+
<directory>src/main/resources</directory>
43+
<filtering>true</filtering>
44+
</resource>
45+
</resources>
46+
47+
<plugins>
48+
<plugin>
49+
<groupId>org.apache.maven.plugins</groupId>
50+
<artifactId>maven-compiler-plugin</artifactId>
51+
<version>${maven-compiler-plugin.version}</version>
52+
<configuration>
53+
<source>1.8</source>
54+
<target>1.8</target>
55+
</configuration>
56+
</plugin>
57+
</plugins>
58+
</build>
59+
60+
<properties>
61+
<!-- hazelcast -->
62+
<hazelcast.version>3.7</hazelcast.version>
63+
64+
<!-- logging -->
65+
<org.slf4j.version>1.7.21</org.slf4j.version>
66+
<logback.version>1.1.7</logback.version>
67+
68+
<!-- maven plugins -->
69+
<maven-compiler-plugin.version>3.5.1</maven-compiler-plugin.version>
70+
</properties>
71+
72+
</project>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.baeldung.hazelcast.cluster;
2+
3+
import org.slf4j.Logger;
4+
import org.slf4j.LoggerFactory;
5+
6+
import com.baeldung.hazelcast.listener.CountryEntryListener;
7+
import com.hazelcast.client.HazelcastClient;
8+
import com.hazelcast.client.config.ClientConfig;
9+
import com.hazelcast.config.GroupConfig;
10+
import com.hazelcast.core.HazelcastInstance;
11+
import com.hazelcast.core.IMap;
12+
13+
public class NativeClient {
14+
private static final Logger logger = LoggerFactory.getLogger(NativeClient.class);
15+
16+
public static void main(String[] args) throws InterruptedException {
17+
ClientConfig config = new ClientConfig();
18+
GroupConfig groupConfig = config.getGroupConfig();
19+
groupConfig.setName("dev");
20+
groupConfig.setPassword("dev-pass");
21+
HazelcastInstance hazelcastInstanceClient = HazelcastClient.newHazelcastClient(config);
22+
IMap<Long, String> countryMap = hazelcastInstanceClient.getMap("country");
23+
countryMap.addEntryListener(new CountryEntryListener(), true);
24+
logger.info("Country map size: " + countryMap.size());
25+
}
26+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.baeldung.hazelcast.cluster;
2+
3+
import java.util.Map;
4+
5+
import org.slf4j.Logger;
6+
import org.slf4j.LoggerFactory;
7+
8+
import com.hazelcast.core.Hazelcast;
9+
import com.hazelcast.core.HazelcastInstance;
10+
import com.hazelcast.core.IdGenerator;
11+
12+
public class ServerNode {
13+
private static final Logger logger = LoggerFactory.getLogger(ServerNode.class);
14+
15+
public static void main(String[] args) {
16+
HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance();
17+
Map<Long, String> countryMap = hazelcastInstance.getMap("country");
18+
IdGenerator idGenerator = hazelcastInstance.getIdGenerator("newid");
19+
Long countryIdGenerator = idGenerator.newId() == 0L ? 1L : idGenerator.newId();
20+
countryMap.put(countryIdGenerator, "Country1");
21+
logger.info("Country map size: " + countryMap.size());
22+
}
23+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.baeldung.hazelcast.listener;
2+
3+
import org.slf4j.Logger;
4+
import org.slf4j.LoggerFactory;
5+
6+
import com.hazelcast.core.EntryEvent;
7+
import com.hazelcast.core.MapEvent;
8+
import com.hazelcast.map.listener.EntryAddedListener;
9+
import com.hazelcast.map.listener.EntryEvictedListener;
10+
import com.hazelcast.map.listener.EntryRemovedListener;
11+
import com.hazelcast.map.listener.EntryUpdatedListener;
12+
import com.hazelcast.map.listener.MapClearedListener;
13+
import com.hazelcast.map.listener.MapEvictedListener;
14+
15+
public class CountryEntryListener implements EntryAddedListener<Long, String>, EntryRemovedListener<Long, String>, EntryUpdatedListener<Long, String>, EntryEvictedListener<Long, String>, MapEvictedListener, MapClearedListener {
16+
private static final Logger logger = LoggerFactory.getLogger(CountryEntryListener.class);
17+
18+
public void entryAdded(EntryEvent<Long, String> event) {
19+
logger.info("entryAdded:" + event);
20+
}
21+
22+
public void entryUpdated(EntryEvent<Long, String> event) {
23+
logger.info("entryUpdated:" + event);
24+
}
25+
26+
public void entryRemoved(EntryEvent<Long, String> event) {
27+
logger.info("entryRemoved:" + event);
28+
}
29+
30+
public void entryEvicted(EntryEvent<Long, String> event) {
31+
logger.info("entryEvicted:" + event);
32+
}
33+
34+
public void mapCleared(MapEvent event) {
35+
logger.info("mapCleared:" + event);
36+
}
37+
38+
public void mapEvicted(MapEvent event) {
39+
logger.info("mapEvicted:" + event);
40+
}
41+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-3.7.xsd"
3+
xmlns="http://www.hazelcast.com/schema/config"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
5+
<network>
6+
<port auto-increment="true" port-count="20">5701</port>
7+
<join>
8+
<multicast enabled="false">
9+
</multicast>
10+
<tcp-ip enabled="true">
11+
<member>machine1</member>
12+
<member>localhost</member>
13+
</tcp-ip>
14+
</join>
15+
</network>
16+
</hazelcast>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
4+
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
5+
<layout class="ch.qos.logback.classic.PatternLayout">
6+
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg %n</pattern>
7+
</layout>
8+
</appender>
9+
10+
<logger name="com.baeldung.hazelcast" level="INFO" additivity="false">
11+
<appender-ref ref="STDOUT" />
12+
</logger>
13+
14+
<root level="DEBUG">
15+
<appender-ref ref="STDOUT" />
16+
</root>
17+
18+
</configuration>

0 commit comments

Comments
 (0)