Skip to content

Commit

Permalink
feat: add the serialized value of "[]" (#33)
Browse files Browse the repository at this point in the history
  • Loading branch information
coryhh authored Jun 20, 2024
1 parent 6276af6 commit a75baf2
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 86 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<groupId>com.arextest</groupId>
<artifactId>arex-common</artifactId>
<packaging>jar</packaging>
<version>0.1.29</version>
<version>0.1.30</version>


<name>${project.groupId}:${project.artifactId}</name>
Expand Down
181 changes: 96 additions & 85 deletions src/main/java/com/arextest/common/utils/SerializationUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,13 @@
import com.arextest.common.serialization.SerializationReader;
import com.arextest.common.serialization.SerializationWriter;
import com.fasterxml.jackson.core.type.TypeReference;
import lombok.extern.slf4j.Slf4j;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
import lombok.extern.slf4j.Slf4j;

/**
* @author jmo
Expand All @@ -20,101 +19,113 @@

@Slf4j
public final class SerializationUtils {
private SerializationUtils() {
}

/**
* The bytes of zstd equal json string "{}",useful deserialize
*/
public static final byte[] EMPTY_INSTANCE = new byte[]{40, -75, 47, -3, 0, 80, 17, 0, 0, 123, 125};

public static <T> void useZstdSerializeTo(OutputStream outputStream, T value) {
useZstdSerializeTo(SerializationProviders.DEFAULT_PROVIDER, outputStream, value);
private SerializationUtils() {
}

/**
* The bytes of zstd equal json string "{}",useful deserialize
*/
public static final byte[] EMPTY_INSTANCE = new byte[]{40, -75, 47, -3, 0, 80, 17, 0, 0, 123,
125};

/**
* The bytes of zstd equal json string "[]",useful deserialize
*/
public static final byte[] EMPTY_INSTANCE_LIST = new byte[]{40, -75, 47, -3, 0, 88, 17, 0, 0, 91,
93};

public static <T> void useZstdSerializeTo(OutputStream outputStream, T value) {
useZstdSerializeTo(SerializationProviders.DEFAULT_PROVIDER, outputStream, value);
}

public static <T> void useZstdSerializeTo(SerializationWriter serializationWriter,
OutputStream outputStream,
T value) {
try (OutputStream zstdOutputStream = StreamWrapUtils.wrapZstd(outputStream)) {
serializationWriter.writeValue(zstdOutputStream, value);
} catch (IOException e) {
LOGGER.error("serialize error:{}", e.getMessage(), e);
}

public static <T> void useZstdSerializeTo(SerializationWriter serializationWriter, OutputStream outputStream,
T value) {
try (OutputStream zstdOutputStream = StreamWrapUtils.wrapZstd(outputStream)) {
serializationWriter.writeValue(zstdOutputStream, value);
} catch (IOException e) {
LOGGER.error("serialize error:{}", e.getMessage(), e);
}
}

public static <T> byte[] useZstdSerializeToBytes(T value) {
try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
useZstdSerializeTo(out, value);
return out.toByteArray();
} catch (IOException e) {
LOGGER.error("serialize error:{}", e.getMessage(), e);
}

public static <T> byte[] useZstdSerializeToBytes(T value) {
try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
useZstdSerializeTo(out, value);
return out.toByteArray();
} catch (IOException e) {
LOGGER.error("serialize error:{}", e.getMessage(), e);
}
return null;
return null;
}

public static <T> String useZstdSerializeToBase64(T value) {
try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
useZstdSerializeTo(StreamWrapUtils.wrapBase64(out), value);
return out.toString(StandardCharsets.UTF_8.name());
} catch (IOException e) {
LOGGER.error("serialize error:{}", e.getMessage(), e);
}

public static <T> String useZstdSerializeToBase64(T value) {
try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
useZstdSerializeTo(StreamWrapUtils.wrapBase64(out), value);
return out.toString(StandardCharsets.UTF_8.name());
} catch (IOException e) {
LOGGER.error("serialize error:{}", e.getMessage(), e);
}
return null;
return null;
}

public static <T> T useZstdDeserialize(InputStream inputStream, Class<T> clazz) {
return useZstdDeserialize(SerializationProviders.DEFAULT_PROVIDER, inputStream, clazz);
}

public static <T> T useZstdDeserialize(SerializationReader serializationReader,
InputStream inputStream,
Class<T> clazz) {
try (InputStream zstdStream = StreamWrapUtils.wrapZstd(inputStream)) {
return serializationReader.readValue(zstdStream, clazz);
} catch (Throwable e) {
LOGGER.error("deserialize error:{}, target:{}", e.getMessage(), clazz.getName(), e);
}
return null;
}

public static <T> T useZstdDeserialize(InputStream inputStream, Class<T> clazz) {
return useZstdDeserialize(SerializationProviders.DEFAULT_PROVIDER, inputStream, clazz);
}
public static <T> T useZstdDeserialize(String base64Source, Class<T> clazz) {
return useZstdDeserialize(StreamWrapUtils.decodeBase64(base64Source), clazz);
}

public static <T> T useZstdDeserialize(SerializationReader serializationReader, InputStream inputStream,
Class<T> clazz) {
try (InputStream zstdStream = StreamWrapUtils.wrapZstd(inputStream)) {
return serializationReader.readValue(zstdStream, clazz);
} catch (Throwable e) {
LOGGER.error("deserialize error:{}, target:{}", e.getMessage(), clazz.getName(), e);
}
return null;
public static <T> T useZstdDeserialize(SerializationReader serializationReader, byte[] zstdValues,
Class<T> clazz) {
if (zstdValues == null) {
return null;
}

public static <T> T useZstdDeserialize(String base64Source, Class<T> clazz) {
return useZstdDeserialize(StreamWrapUtils.decodeBase64(base64Source), clazz);
try (ByteArrayInputStream inputStream = new ByteArrayInputStream(zstdValues)) {
return useZstdDeserialize(serializationReader, inputStream, clazz);
} catch (Throwable e) {
LOGGER.error("deserialize error:{}, target:{}", e.getMessage(), clazz.getName(), e);
}
return null;
}

public static <T> T useZstdDeserialize(SerializationReader serializationReader, byte[] zstdValues, Class<T> clazz) {
if (zstdValues == null) {
return null;
}
try (ByteArrayInputStream inputStream = new ByteArrayInputStream(zstdValues)) {
return useZstdDeserialize(serializationReader, inputStream, clazz);
} catch (Throwable e) {
LOGGER.error("deserialize error:{}, target:{}", e.getMessage(), clazz.getName(), e);
}
return null;
}
public static <T> T useZstdDeserialize(byte[] zstdValues, Class<T> clazz) {
return useZstdDeserialize(SerializationProviders.DEFAULT_PROVIDER, zstdValues, clazz);
}

public static <T> T useZstdDeserialize(byte[] zstdValues, Class<T> clazz) {
return useZstdDeserialize(SerializationProviders.DEFAULT_PROVIDER, zstdValues, clazz);
public static <T> T useZstdDeserialize(SerializationReader serializationReader, byte[] zstdValues,
TypeReference<T> typeReference) {
if (zstdValues == null) {
return null;
}

public static <T> T useZstdDeserialize(SerializationReader serializationReader, byte[] zstdValues,
TypeReference<T> typeReference) {
if (zstdValues == null) {
return null;
}
try (ByteArrayInputStream inputStream = new ByteArrayInputStream(zstdValues)) {
return useZstdDeserialize(serializationReader, inputStream, typeReference);
} catch (Exception e) {
LOGGER.error("deserialize error:{}", e.getMessage(), e);
}
return null;
try (ByteArrayInputStream inputStream = new ByteArrayInputStream(zstdValues)) {
return useZstdDeserialize(serializationReader, inputStream, typeReference);
} catch (Exception e) {
LOGGER.error("deserialize error:{}", e.getMessage(), e);
}

public static <T> T useZstdDeserialize(SerializationReader serializationReader, InputStream inputStream,
TypeReference<T> typeReference) {
try (InputStream zstdStream = StreamWrapUtils.wrapZstd(inputStream)) {
return serializationReader.readValue(zstdStream, typeReference);
} catch (Exception e) {
LOGGER.error("deserialize error:{}", e.getMessage(), e);
}
return null;
return null;
}

public static <T> T useZstdDeserialize(SerializationReader serializationReader,
InputStream inputStream,
TypeReference<T> typeReference) {
try (InputStream zstdStream = StreamWrapUtils.wrapZstd(inputStream)) {
return serializationReader.readValue(zstdStream, typeReference);
} catch (Exception e) {
LOGGER.error("deserialize error:{}", e.getMessage(), e);
}
return null;
}
}

0 comments on commit a75baf2

Please sign in to comment.