<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-avro</artifactId>
<version>2.12.0</version>
</dependency>
public class DataObject {
private String message;
public DataObject() {
}
public DataObject(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.avro.AvroMapper;
import com.fasterxml.jackson.dataformat.avro.AvroSchema;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public class AvroCompressionHelper {
private static AvroMapper avroMapper = new AvroMapper();
public static byte[] compressData(DataObject dataObject) throws IOException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
avroMapper.writer().with(new AvroSchema(DataObject.class)).writeValue(outputStream, dataObject);
return outputStream.toByteArray();
}
public static DataObject decompressData(byte[] compressedData) throws IOException {
ByteArrayInputStream inputStream = new ByteArrayInputStream(compressedData);
return avroMapper.reader().forType(DataObject.class).with(new AvroSchema(DataObject.class)).readValue(inputStream);
}
}
public class Main {
public static void main(String[] args) {
try {
byte[] compressedData = AvroCompressionHelper.compressData(dataObject);
DataObject decompressedData = AvroCompressionHelper.decompressData(compressedData);
} catch (IOException e) {
e.printStackTrace();
}
}
}