Merge pull request #35 from arkuksin/hazelcast
Implement StreamSerializer for Car object.
This commit is contained in:
@@ -2,10 +2,12 @@ package io.refectoring.cache.embedded;
|
||||
|
||||
import com.hazelcast.config.Config;
|
||||
import com.hazelcast.config.MapConfig;
|
||||
import com.hazelcast.config.SerializerConfig;
|
||||
import com.hazelcast.core.Hazelcast;
|
||||
import com.hazelcast.core.HazelcastInstance;
|
||||
import com.hazelcast.map.IMap;
|
||||
import io.refectoring.cache.embedded.rest.Car;
|
||||
import io.refectoring.cache.embedded.serializer.CarSerializer;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@@ -27,9 +29,16 @@ public class CacheClient {
|
||||
public Config createConfig() {
|
||||
Config config = new Config();
|
||||
config.addMapConfig(mapConfig());
|
||||
config.getSerializationConfig().addSerializerConfig(serializerConfig());
|
||||
return config;
|
||||
}
|
||||
|
||||
private SerializerConfig serializerConfig() {
|
||||
return new SerializerConfig()
|
||||
.setImplementation(new CarSerializer())
|
||||
.setTypeClass(Car.class);
|
||||
}
|
||||
|
||||
private MapConfig mapConfig() {
|
||||
MapConfig mapConfig = new MapConfig(CARS);
|
||||
mapConfig.setTimeToLiveSeconds(360);
|
||||
|
||||
@@ -5,13 +5,11 @@ import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class Car implements Serializable {
|
||||
public class Car {
|
||||
private String number;
|
||||
private String name;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package io.refectoring.cache.embedded.serializer;
|
||||
|
||||
import com.hazelcast.nio.ObjectDataInput;
|
||||
import com.hazelcast.nio.ObjectDataOutput;
|
||||
import com.hazelcast.nio.serialization.StreamSerializer;
|
||||
import io.refectoring.cache.embedded.rest.Car;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class CarSerializer implements StreamSerializer<Car> {
|
||||
|
||||
@Override
|
||||
public void write(ObjectDataOutput out, Car object) throws IOException {
|
||||
out.writeUTF(object.getName());
|
||||
out.writeUTF(object.getNumber());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Car read(ObjectDataInput in) throws IOException {
|
||||
return Car.builder()
|
||||
.name(in.readUTF())
|
||||
.number(in.readUTF())
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTypeId() {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user