8000 Merge pull request #35 from arkuksin/hazelcast · java-code-samples/code-examples@457daf5 · GitHub
[go: up one dir, main page]

Skip to content

Commit 457daf5

Browse files
authored
Merge pull request thombergs#35 from arkuksin/hazelcast
Implement StreamSerializer for Car object.
2 parents 8729639 + 791a603 commit 457daf5

File tree

3 files changed

+40
-3
lines changed

3 files changed

+40
-3
lines changed

spring-boot/hazelcast/hazelcast-embedded-cache/src/main/java/io/refectoring/cache/embedded/CacheClient.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22

33
import com.hazelcast.config.Config;
44
import com.hazelcast.config.MapConfig;
5+
import com.hazelcast.config.SerializerConfig;
56
import com.hazelcast.core.Hazelcast;
67
import com.hazelcast.core.HazelcastInstance;
78
import com.hazelcast.map.IMap;
89
import io.refectoring.cache.embedded.rest.Car;
10+
import io.refectoring.cache.embedded.serializer.CarSerializer;
911
import org.springframework.stereotype.Component;
1012

1113
@Component
@@ -27,9 +29,16 @@ public Car get(String key){
2729
public Config createConfig() {
2830
Config config = new Config();
2931
config.addMapConfig(mapConfig());
32+
config.getSerializationConfig().addSerializerConfig(serializerConfig());
3033
return config;
3134
}
3235

36+
private SerializerConfig serializerConfig() {
37+
return new SerializerConfig()
38+
.setImplementation(new CarSerializer())
39+
.setTypeClass(Car.class);
40+
}
41+
3342
private MapConfig mapConfig() {
3443
MapConfig mapConfig = new MapConfig(CARS);
3544
mapConfig.setTimeToLiveSeconds(360);

spring-boot/hazelcast/hazelcast-embedded-cache/src/main/java/io/refectoring/cache/embedded/rest/Car.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,11 @@
55
import lombok.Data;
66
import lombok.NoArgsConstructor;
77

8-
import java.io.Serializable;
9-
108
@Data
119
@Builder
1210
@NoArgsConstructor
1311
@AllArgsConstructor
14-
public class Car implements Serializable {
12+
public class Car {
1513
private String number;
1614
private String name;
1715
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package io.refectoring.cache.embedded.serializer;
2+
3+
import com.hazelcast.nio.ObjectDataInput;
4+
import com.hazelcast.nio.ObjectDataOutput;
5+
import com.hazelcast.nio.serialization.StreamSerializer;
6+
import io.refectoring.cache.embedded.rest.Car;
7+
8+
import java.io.IOException;
9+
10+
public class CarSerializer implements StreamSerializer<Car> {
11+
12+
@Override
13+
public void write(ObjectDataOutput out, Car object) throws IOException {
14+
out.writeUTF(object.getName());
15+
out.writeUTF(object.getNumber());
16+
}
17+
18+
@Override
19+
public Car read(ObjectDataInput in) throws IOException {
20+
return Car.builder()
21+
.name(in.readUTF())
22+
.number(in.readUTF())
23+
.build();
24+
}
25+
26+
@Override
27+
public int getTypeId() {
28+
return 1;
29+
}
30+
}

0 commit comments

Comments
 (0)
0