All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.scalecube.cluster.metadata.JdkMetadataCodec Maven / Gradle / Ivy

package io.scalecube.cluster.metadata;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.nio.ByteBuffer;
import reactor.core.Exceptions;

public class JdkMetadataCodec implements MetadataCodec {

  @Override
  public Object deserialize(ByteBuffer buffer) {
    byte[] bytes = buffer.array();
    try (ObjectInputStream is = new ObjectInputStream(new ByteArrayInputStream(bytes))) {
      return is.readObject();
    } catch (Exception e) {
      throw Exceptions.propagate(e);
    }
  }

  @Override
  public ByteBuffer serialize(Object metadata) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    try (ObjectOutputStream os = new ObjectOutputStream(baos)) {
      os.writeObject(metadata);
      os.flush();
      return ByteBuffer.wrap(baos.toByteArray());
    } catch (Exception e) {
      throw Exceptions.propagate(e);
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy