移除fst依赖

This commit is contained in:
thinkgem
2024-07-25 11:35:54 +08:00
parent 5084ac39cf
commit f6e598d225
3 changed files with 49 additions and 67 deletions

View File

@@ -46,13 +46,6 @@
<version>${commons-io.version}</version> <version>${commons-io.version}</version>
</dependency> </dependency>
<!-- Java serialization -->
<dependency>
<groupId>de.ruedigermoeller</groupId>
<artifactId>fst</artifactId>
<version>${fst.version}</version>
</dependency>
<!-- Jackson json --> <!-- Jackson json -->
<dependency> <dependency>
<groupId>com.fasterxml.jackson.core</groupId> <groupId>com.fasterxml.jackson.core</groupId>

View File

@@ -5,11 +5,9 @@
package com.jeesite.common.lang; package com.jeesite.common.lang;
import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.BooleanUtils;
import org.nustaq.serialization.FSTConfiguration;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.core.NamedThreadLocal;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
@@ -24,14 +22,14 @@ import java.lang.reflect.InvocationTargetException;
*/ */
public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils { public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
private static Logger logger = LoggerFactory.getLogger(ObjectUtils.class); private static final Logger logger = LoggerFactory.getLogger(ObjectUtils.class);
private static final boolean isJavaSerialize; private static final boolean isJavaSerialize;
static { static {
String[] ver = StringUtils.split(System.getProperty("java.version"), StringUtils.DOT); String[] ver = StringUtils.split(System.getProperty("java.version"), StringUtils.DOT);
isJavaSerialize = ver.length > 0 && Integer.parseInt(ver[0]) > 1; isJavaSerialize = ver.length > 0 && Integer.parseInt(ver[0]) > 1;
} }
/** /**
* 转换为 Double 类型 * 转换为 Double 类型
*/ */
@@ -164,11 +162,7 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
*/ */
public static byte[] serialize(Object object) { public static byte[] serialize(Object object) {
try { try {
if (isJavaSerialize) { return ObjectUtils.serializeJava(object);
return ObjectUtils.serializeJava(object);
}else {
return ObjectUtils.serializeFst(object);
}
} catch (Exception e) { } catch (Exception e) {
logger.error("serialize: {}", e.getMessage()); logger.error("serialize: {}", e.getMessage());
} }
@@ -182,11 +176,7 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
*/ */
public static Object unserialize(byte[] bytes) { public static Object unserialize(byte[] bytes) {
try { try {
if (isJavaSerialize) { return ObjectUtils.unserializeJava(bytes);
return ObjectUtils.unserializeJava(bytes);
}else {
return ObjectUtils.unserializeFst(bytes);
}
} catch (Exception e) { } catch (Exception e) {
logger.error("unserialize: {}", e.getMessage()); logger.error("unserialize: {}", e.getMessage());
} }
@@ -243,50 +233,50 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
} }
return object; return object;
} }
private static ThreadLocal<FSTConfiguration> fstConfiguration =
new NamedThreadLocal<FSTConfiguration>("FSTConfiguration") {
@Override
public FSTConfiguration initialValue() {
return FSTConfiguration.createDefaultConfiguration();
}
};
/** // private static ThreadLocal<FSTConfiguration> fstConfiguration =
* FST 序列化对象 // new NamedThreadLocal<FSTConfiguration>("FSTConfiguration") {
* @param object // @Override
* @return // public FSTConfiguration initialValue() {
*/ // return FSTConfiguration.createDefaultConfiguration();
public static byte[] serializeFst(Object object) { // }
if (object == null){ // };
return null; //
} // /**
long beginTime = System.currentTimeMillis(); // * FST 序列化对象
byte[] bytes = fstConfiguration.get().asByteArray(object); // * @param object
long totalTime = System.currentTimeMillis() - beginTime; // * @return
if (totalTime > 30000){ // */
logger.warn(object.getClass() + " fst serialize time: " + TimeUtils.formatTime(totalTime)); // public static byte[] serializeFst(Object object) {
} // if (object == null){
return bytes; // return null;
} // }
// long beginTime = System.currentTimeMillis();
/** // byte[] bytes = fstConfiguration.get().asByteArray(object);
* FST 反序列化对象 // long totalTime = System.currentTimeMillis() - beginTime;
* @param bytes // if (totalTime > 30000){
* @return // logger.warn(object.getClass() + " fst serialize time: " + TimeUtils.formatTime(totalTime));
*/ // }
public static Object unserializeFst(byte[] bytes) { // return bytes;
if (bytes == null){ // }
return null; //
} // /**
long beginTime = System.currentTimeMillis(); // * FST 反序列化对象
Object object = fstConfiguration.get().asObject(bytes); // * @param bytes
long totalTime = System.currentTimeMillis() - beginTime; // * @return
if (totalTime > 30000 && object != null){ // */
logger.warn(object.getClass() + " fst unserialize time: " + TimeUtils.formatTime(totalTime)); // public static Object unserializeFst(byte[] bytes) {
} // if (bytes == null){
return object; // return null;
} // }
// long beginTime = System.currentTimeMillis();
// Object object = fstConfiguration.get().asObject(bytes);
// long totalTime = System.currentTimeMillis() - beginTime;
// if (totalTime > 30000 && object != null){
// logger.warn(object.getClass() + " fst unserialize time: " + TimeUtils.formatTime(totalTime));
// }
// return object;
// }
// private static Pool<Kryo> kryoPool = new Pool<Kryo>(true, false, 8) { // private static Pool<Kryo> kryoPool = new Pool<Kryo>(true, false, 8) {
// protected Kryo create() { // protected Kryo create() {

View File

@@ -28,7 +28,6 @@
<jackson-bom2.version>2.17.1</jackson-bom2.version> <jackson-bom2.version>2.17.1</jackson-bom2.version>
<fastjson.version>2.0.51</fastjson.version> <fastjson.version>2.0.51</fastjson.version>
<fst.version>3.0.4-jdk17</fst.version>
<snakeyaml.version>2.2</snakeyaml.version> <snakeyaml.version>2.2</snakeyaml.version>
<glassfish-jaxb.version>2.3.9</glassfish-jaxb.version> <glassfish-jaxb.version>2.3.9</glassfish-jaxb.version>