11 Kasım 2022 Cuma

Portable Seralization - Eski Compact Serialization Kullanın

Giriş
Şu satırı dahil ederiz
import com.hazelcast.nio.serialization.Portable;
Açıklaması şöyle. Yani farklı diller arasında kullanılabilir.
The Portable serialization mechanism allows us to store data in one stack and to access it from the other – and the other way around. Its main benefit is that it doesn’t require reflection.
Adımlar şöyle
1. Nesnemiz Portable arayüzünden kalıtır ve getFactoryId()getClassId(), readPortable()writePortable() metodlarını gerçekleştirir
2. Nesnemiz için PortableFactory arayüzünden kalıtan bir Factory nesnesi kodlarız
3. Bu yeni factory nesnesini SerializationConfig nesnesi ile Hazelcast' tanıtırız

Örnek
Burada bir örnek var

Örnek
Şöyle yaparız
public class Foo implements Portable {
  final static int ID = 5;
  private String foo;
  @Override
  public int getFactoryId() {
    return 1;
  }
  @Override
  public int getClassId() {
    return ID;
  }
  @Override
  public void writePortable(PortableWriter writer) throws IOException {
    writer.writeString("foo", foo);
  }
  @Override
  public void readPortable(PortableReader reader) throws IOException {
    foo = reader.readString("foo");
  }
}
Factory şöyledir
import com.hazelcast.nio.serialization.PortableFactory;

public class MyPortableFactory implements PortableFactory {
  @Override
  public Portable create(int classId) {
    if (Foo.ID == classId )
      return new Foo();
    else
      return null;
  }
}
Daha sonra SerializationConfig nesnesine eklemek için şöyle yaparız
Config config = new Config();
config.getSerializationConfig().addPortableFactory(1, new MyPortableFactory());



Hiç yorum yok:

Yorum Gönder

THIRD-PARTY.txt Dosyası

Kullanılan harici kütüphanelerin sürümleri bu dosyada Dosyanın yolu şöyle hazelcast/licenses/THIRD-PARTY.txt