refactor(core): 统一使用新的工具类替代旧版日期和JSON工具- 将 DateUtil 工具类调用替换为 DateTool

- 将 GsonTool 工具类调用替换为 GsonTool(新包路径)
- 移动旧版 DateUtil 和 GsonTool 到 deprecated 包下- 更新所有相关导入语句以匹配新的工具类位置- 修改日期处理方法引用以适配新工具类
- 调整 JSON 处理逻辑以兼容新 GsonTool 接口
pull/72/head
xuxueli 1 month ago
parent a07001644b
commit 84aae28ca2

@ -4,8 +4,8 @@ import com.xxl.job.admin.mapper.XxlJobGroupMapper;
import com.xxl.job.admin.model.XxlJobGroup;
import com.xxl.job.admin.model.XxlJobInfo;
import com.xxl.job.admin.scheduler.exception.XxlJobException;
import com.xxl.job.admin.scheduler.route.ExecutorRouteStrategyEnum;
import com.xxl.job.admin.scheduler.misfire.MisfireStrategyEnum;
import com.xxl.job.admin.scheduler.route.ExecutorRouteStrategyEnum;
import com.xxl.job.admin.scheduler.type.ScheduleTypeEnum;
import com.xxl.job.admin.service.XxlJobService;
import com.xxl.job.admin.util.I18nUtil;
@ -13,10 +13,10 @@ import com.xxl.job.admin.util.JobGroupPermissionUtil;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
import com.xxl.job.core.glue.GlueTypeEnum;
import com.xxl.job.core.util.DateUtil;
import com.xxl.sso.core.helper.XxlSsoHelper;
import com.xxl.sso.core.model.LoginInfo;
import com.xxl.tool.core.CollectionTool;
import com.xxl.tool.core.DateTool;
import com.xxl.tool.response.Response;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
@ -161,7 +161,7 @@ public class JobInfoController {
// collect data
if (lastTime != null) {
result.add(DateUtil.formatDateTime(lastTime));
result.add(DateTool.formatDateTime(lastTime));
} else {
break;
}

@ -15,8 +15,8 @@ import com.xxl.job.core.biz.model.KillParam;
import com.xxl.job.core.biz.model.LogParam;
import com.xxl.job.core.biz.model.LogResult;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.util.DateUtil;
import com.xxl.tool.core.CollectionTool;
import com.xxl.tool.core.DateTool;
import com.xxl.tool.core.StringTool;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
@ -121,8 +121,8 @@ public class JobLogController {
if (StringTool.isNotBlank(filterTime)) {
String[] temp = filterTime.split(" - ");
if (temp.length == 2) {
triggerTimeStart = DateUtil.parseDateTime(temp[0]);
triggerTimeEnd = DateUtil.parseDateTime(temp[1]);
triggerTimeStart = DateTool.parseDateTime(temp[0]);
triggerTimeEnd = DateTool.parseDateTime(temp[1]);
}
}
@ -273,13 +273,13 @@ public class JobLogController {
Date clearBeforeTime = null;
int clearBeforeNum = 0;
if (type == 1) {
clearBeforeTime = DateUtil.addMonths(new Date(), -1); // 清理一个月之前日志数据
clearBeforeTime = DateTool.addMonths(new Date(), -1); // 清理一个月之前日志数据
} else if (type == 2) {
clearBeforeTime = DateUtil.addMonths(new Date(), -3); // 清理三个月之前日志数据
clearBeforeTime = DateTool.addMonths(new Date(), -3); // 清理三个月之前日志数据
} else if (type == 3) {
clearBeforeTime = DateUtil.addMonths(new Date(), -6); // 清理六个月之前日志数据
clearBeforeTime = DateTool.addMonths(new Date(), -6); // 清理六个月之前日志数据
} else if (type == 4) {
clearBeforeTime = DateUtil.addYears(new Date(), -1); // 清理一年之前日志数据
clearBeforeTime = DateTool.addYears(new Date(), -1); // 清理一年之前日志数据
} else if (type == 5) {
clearBeforeNum = 1000; // 清理一千条以前日志数据
} else if (type == 6) {

@ -5,7 +5,7 @@ import com.xxl.job.admin.scheduler.config.XxlJobAdminBootstrap;
import com.xxl.job.admin.util.I18nUtil;
import com.xxl.job.core.biz.model.HandleCallbackParam;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.util.DateUtil;
import com.xxl.tool.core.DateTool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -73,7 +73,7 @@ public class JobCompleteHelper {
while (!toStop) {
try {
// 任务结果丢失处理:调度记录停留在 "运行中" 状态超过10min且对应执行器心跳注册失败不在线则将本地调度主动标记失败
Date losedTime = DateUtil.addMinutes(new Date(), -10);
Date losedTime = DateTool.addMinutes(new Date(), -10);
List<Long> losedJobIds = XxlJobAdminBootstrap.getInstance().getXxlJobLogMapper().findLostJobIds(losedTime);
if (losedJobIds!=null && losedJobIds.size()>0) {

@ -7,18 +7,18 @@ import com.xxl.job.admin.model.XxlJobLogReport;
import com.xxl.job.admin.scheduler.config.XxlJobAdminBootstrap;
import com.xxl.job.admin.scheduler.cron.CronExpression;
import com.xxl.job.admin.scheduler.misfire.MisfireStrategyEnum;
import com.xxl.job.admin.scheduler.type.ScheduleTypeEnum;
import com.xxl.job.admin.scheduler.route.ExecutorRouteStrategyEnum;
import com.xxl.job.admin.scheduler.thread.JobScheduleHelper;
import com.xxl.job.admin.scheduler.trigger.TriggerTypeEnum;
import com.xxl.job.admin.scheduler.type.ScheduleTypeEnum;
import com.xxl.job.admin.service.XxlJobService;
import com.xxl.job.admin.util.I18nUtil;
import com.xxl.job.admin.util.JobGroupPermissionUtil;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
import com.xxl.job.core.glue.GlueTypeEnum;
import com.xxl.job.core.util.DateUtil;
import com.xxl.sso.core.model.LoginInfo;
import com.xxl.tool.core.DateTool;
import jakarta.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -472,7 +472,7 @@ public class XxlJobServiceImpl implements XxlJobService {
if (logReportList!=null && logReportList.size()>0) {
for (XxlJobLogReport item: logReportList) {
String day = DateUtil.formatDate(item.getTriggerDay());
String day = DateTool.formatDate(item.getTriggerDay());
int triggerDayCountRunning = item.getRunningCount();
int triggerDayCountSuc = item.getSucCount();
int triggerDayCountFail = item.getFailCount();
@ -488,7 +488,7 @@ public class XxlJobServiceImpl implements XxlJobService {
}
} else {
for (int i = -6; i <= 0; i++) {
triggerDayList.add(DateUtil.formatDate(DateUtil.addDays(new Date(), i)));
triggerDayList.add(DateTool.formatDate(DateTool.addDays(new Date(), i)));
triggerDayCountRunningList.add(0);
triggerDayCountSucList.add(0);
triggerDayCountFailList.add(0);

@ -1,7 +1,7 @@
package com.xxl.job.admin.core.util;
import com.xxl.job.admin.scheduler.cron.CronExpression;
import com.xxl.job.core.util.DateUtil;
import com.xxl.tool.core.DateTool;
import org.junit.jupiter.api.Test;
import java.text.ParseException;
@ -15,7 +15,7 @@ public class CronExpressionTest {
Date lastTriggerTime = new Date();
for (int i = 0; i < 5; i++) {
Date nextTriggerTime = cronExpression.getNextValidTimeAfter(lastTriggerTime);
System.out.println(DateUtil.formatDateTime(nextTriggerTime));
System.out.println(DateTool.formatDateTime(nextTriggerTime));
lastTriggerTime = nextTriggerTime;
}

@ -1,7 +1,7 @@
package com.xxl.job.core.context;
import com.xxl.job.core.log.XxlJobFileAppender;
import com.xxl.job.core.util.DateUtil;
import com.xxl.tool.core.DateTool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.helpers.FormattingTuple;
@ -151,7 +151,7 @@ public class XxlJobHelper {
StackTraceElement callInfo = stackTraceElements[1];*/
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(DateUtil.formatDateTime(new Date())).append(" ")
stringBuffer.append(DateTool.formatDateTime(new Date())).append(" ")
.append("["+ callInfo.getClassName() + "#" + callInfo.getMethodName() +"]").append("-")
.append("["+ callInfo.getLineNumber() +"]").append("-")
.append("["+ Thread.currentThread().getName() +"]").append(" ")

@ -4,9 +4,9 @@ import com.xxl.job.core.biz.ExecutorBiz;
import com.xxl.job.core.biz.impl.ExecutorBizImpl;
import com.xxl.job.core.biz.model.*;
import com.xxl.job.core.thread.ExecutorRegistryThread;
import com.xxl.job.core.util.GsonTool;
import com.xxl.job.core.util.XxlJobRemotingUtil;
import com.xxl.tool.exception.ThrowableTool;
import com.xxl.tool.gson.GsonTool;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.buffer.Unpooled;
import io.netty.channel.*;

@ -8,11 +8,11 @@ import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.enums.RegistryConfig;
import com.xxl.job.core.executor.XxlJobExecutor;
import com.xxl.job.core.log.XxlJobFileAppender;
import com.xxl.job.core.util.GsonTool;
import com.xxl.tool.core.ArrayTool;
import com.xxl.tool.core.CollectionTool;
import com.xxl.tool.core.StringTool;
import com.xxl.tool.encrypt.Md5Tool;
import com.xxl.tool.gson.GsonTool;
import com.xxl.tool.io.FileTool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@ -1,156 +0,0 @@
package com.xxl.job.core.util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* date util
*
* @author xuxueli 2018-08-19 01:24:11
*/
public class DateUtil {
// ---------------------- format parse ----------------------
private static Logger logger = LoggerFactory.getLogger(DateUtil.class);
private static final String DATE_FORMAT = "yyyy-MM-dd";
private static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
private static final ThreadLocal<Map<String, DateFormat>> dateFormatThreadLocal = new ThreadLocal<Map<String, DateFormat>>();
private static DateFormat getDateFormat(String pattern) {
if (pattern==null || pattern.trim().length()==0) {
throw new IllegalArgumentException("pattern cannot be empty.");
}
Map<String, DateFormat> dateFormatMap = dateFormatThreadLocal.get();
if(dateFormatMap!=null && dateFormatMap.containsKey(pattern)){
return dateFormatMap.get(pattern);
}
synchronized (dateFormatThreadLocal) {
if (dateFormatMap == null) {
dateFormatMap = new HashMap<String, DateFormat>();
}
dateFormatMap.put(pattern, new SimpleDateFormat(pattern));
dateFormatThreadLocal.set(dateFormatMap);
}
return dateFormatMap.get(pattern);
}
/**
* format datetime. like "yyyy-MM-dd"
*
* @param date
* @return
* @throws ParseException
*/
public static String formatDate(Date date) {
return format(date, DATE_FORMAT);
}
/**
* format date. like "yyyy-MM-dd HH:mm:ss"
*
* @param date
* @return
* @throws ParseException
*/
public static String formatDateTime(Date date) {
return format(date, DATETIME_FORMAT);
}
/**
* format date
*
* @param date
* @param patten
* @return
* @throws ParseException
*/
public static String format(Date date, String patten) {
return getDateFormat(patten).format(date);
}
/**
* parse date string, like "yyyy-MM-dd HH:mm:s"
*
* @param dateString
* @return
* @throws ParseException
*/
public static Date parseDate(String dateString){
return parse(dateString, DATE_FORMAT);
}
/**
* parse datetime string, like "yyyy-MM-dd HH:mm:ss"
*
* @param dateString
* @return
* @throws ParseException
*/
public static Date parseDateTime(String dateString) {
return parse(dateString, DATETIME_FORMAT);
}
/**
* parse date
*
* @param dateString
* @param pattern
* @return
* @throws ParseException
*/
public static Date parse(String dateString, String pattern) {
try {
Date date = getDateFormat(pattern).parse(dateString);
return date;
} catch (Exception e) {
logger.warn("parse date error, dateString = {}, pattern={}; errorMsg = {}", dateString, pattern, e.getMessage());
return null;
}
}
// ---------------------- add date ----------------------
public static Date addYears(final Date date, final int amount) {
return add(date, Calendar.YEAR, amount);
}
public static Date addMonths(final Date date, final int amount) {
return add(date, Calendar.MONTH, amount);
}
public static Date addDays(final Date date, final int amount) {
return add(date, Calendar.DAY_OF_MONTH, amount);
}
public static Date addHours(final Date date, final int amount) {
return add(date, Calendar.HOUR_OF_DAY, amount);
}
public static Date addMinutes(final Date date, final int amount) {
return add(date, Calendar.MINUTE, amount);
}
private static Date add(final Date date, final int calendarField, final int amount) {
if (date == null) {
return null;
}
final Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(calendarField, amount);
return c.getTime();
}
}

@ -1,202 +0,0 @@
package com.xxl.job.core.util;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
/**
* gson tool From https://github.com/xuxueli/xxl-tool
*
* @author xuxueli 2020-04-11 20:56:31
*/
public class GsonTool {
private static Gson gson = null;
static {
gson= new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").disableHtmlEscaping().create();
}
/**
* Object json
*
* <pre>
* String json = GsonTool.toJson(new Demo());
* </pre>
*
* @param src
* @return String
*/
public static String toJson(Object src) {
return gson.toJson(src);
}
/**
* json clsObject
*
* <pre>
* Demo demo = GsonTool.fromJson(json, Demo.class);
* </pre>
*
* @param json
* @param classOfT
* @return
*/
public static <T> T fromJson(String json, Class<T> classOfT) {
return gson.fromJson(json, classOfT);
}
/**
* json rawClass<classOfT> Object
*
* <pre>
* Response<Demo> response = GsonTool.fromJson(json, Response.class, Demo.class);
* </pre>
*
* @param json
* @param classOfT
* @param argClassOfT
* @return
*/
/*public static <T> T fromJson(String json, Class<T> classOfT, Class argClassOfT) {
Type type = new ParameterizedType4ReturnT(classOfT, new Class[]{argClassOfT});
return gson.fromJson(json, type);
}
public static class ParameterizedType4ReturnT implements ParameterizedType {
private final Class raw;
private final Type[] args;
public ParameterizedType4ReturnT(Class raw, Type[] args) {
this.raw = raw;
this.args = args != null ? args : new Type[0];
}
@Override
public Type[] getActualTypeArguments() {
return args;
}
@Override
public Type getRawType() {
return raw;
}
@Override
public Type getOwnerType() {return null;}
}*/
/**
* json Type Object
*
* @param json
* @param typeOfT
* @return
* @param <T>
*/
public static <T> T fromJson(String json, Type typeOfT) {
return gson.fromJson(json, typeOfT);
}
/**
* json Type Object
*
* <pre>
* Response<Demo> response = GsonTool.fromJson(json, Response.class, Demo.class);
* </pre>
*
* @param json
* @param rawType
* @param typeArguments
* @return
*/
public static <T> T fromJson(String json, Type rawType, Type... typeArguments) {
Type type = TypeToken.getParameterized(rawType, typeArguments).getType();
return gson.fromJson(json, type);
}
/**
* json cls ArrayList
*
* <pre>
* List<Demo> demoList = GsonTool.fromJsonList(json, Demo.class);
* </pre>
*
* @param json
* @param classOfT
* @return
*/
public static <T> ArrayList<T> fromJsonList(String json, Class<T> classOfT) {
Type type = TypeToken.getParameterized(ArrayList.class, classOfT).getType();
return gson.fromJson(json, type);
}
/**
* json cls HashMap
*
* <pre>
* HashMap<String, Demo> map = GsonTool.fromJsonMap(json, String.class, Demo.class);
* </pre>
*
* @param json
* @param keyClass
* @param valueClass
* @return
* @param <K>
* @param <V>
*/
public static <K, V> HashMap<K, V> fromJsonMap(String json, Class<K> keyClass, Class<V> valueClass) {
Type type = TypeToken.getParameterized(HashMap.class, keyClass, valueClass).getType();
return gson.fromJson(json, type);
}
// ---------------------------------
/**
* Object JsonElement
*
* @param src
* @return
*/
public static JsonElement toJsonElement(Object src) {
return gson.toJsonTree(src);
}
/**
* JsonElement clsObject
*
* @param json
* @param classOfT
* @return
* @param <T>
*/
public static <T> T fromJsonElement(JsonElement json, Class<T> classOfT) {
return gson.fromJson(json, classOfT);
}
/**
* JsonElement rawClass<classOfT> Object
*
* @param json
* @param typeOfT
* @return
* @param <T>
*/
public static <T> T fromJsonElement(JsonElement json, Type typeOfT) {
return gson.fromJson(json, typeOfT);
}
/**
* JsonElement Type Object
*
* @param json
* @param rawType
* @param typeArguments
* @return
* @param <T>
*/
public static <T> T fromJsonElement(JsonElement json, Type rawType, Type... typeArguments) {
Type typeOfT = TypeToken.getParameterized(rawType, typeArguments).getType();
return gson.fromJson(json, typeOfT);
}
}

@ -1,6 +1,7 @@
package com.xxl.job.core.util;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.tool.gson.GsonTool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -12,7 +13,6 @@ import java.net.HttpURLConnection;
import java.net.URL;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Map;
/**
* @author xuxueli 2018-11-25 00:55:31

@ -0,0 +1,156 @@
//package com.xxl.job.core.util;
//
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import java.text.DateFormat;
//import java.text.ParseException;
//import java.text.SimpleDateFormat;
//import java.util.Calendar;
//import java.util.Date;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * date util
// *
// * @author xuxueli 2018-08-19 01:24:11
// */
//public class DateUtil {
//
// // ---------------------- format parse ----------------------
// private static Logger logger = LoggerFactory.getLogger(DateUtil.class);
//
// private static final String DATE_FORMAT = "yyyy-MM-dd";
// private static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
//
// private static final ThreadLocal<Map<String, DateFormat>> dateFormatThreadLocal = new ThreadLocal<Map<String, DateFormat>>();
// private static DateFormat getDateFormat(String pattern) {
// if (pattern==null || pattern.trim().length()==0) {
// throw new IllegalArgumentException("pattern cannot be empty.");
// }
//
// Map<String, DateFormat> dateFormatMap = dateFormatThreadLocal.get();
// if(dateFormatMap!=null && dateFormatMap.containsKey(pattern)){
// return dateFormatMap.get(pattern);
// }
//
// synchronized (dateFormatThreadLocal) {
// if (dateFormatMap == null) {
// dateFormatMap = new HashMap<String, DateFormat>();
// }
// dateFormatMap.put(pattern, new SimpleDateFormat(pattern));
// dateFormatThreadLocal.set(dateFormatMap);
// }
//
// return dateFormatMap.get(pattern);
// }
//
// /**
// * format datetime. like "yyyy-MM-dd"
// *
// * @param date
// * @return
// * @throws ParseException
// */
// public static String formatDate(Date date) {
// return format(date, DATE_FORMAT);
// }
//
// /**
// * format date. like "yyyy-MM-dd HH:mm:ss"
// *
// * @param date
// * @return
// * @throws ParseException
// */
// public static String formatDateTime(Date date) {
// return format(date, DATETIME_FORMAT);
// }
//
// /**
// * format date
// *
// * @param date
// * @param patten
// * @return
// * @throws ParseException
// */
// public static String format(Date date, String patten) {
// return getDateFormat(patten).format(date);
// }
//
// /**
// * parse date string, like "yyyy-MM-dd HH:mm:s"
// *
// * @param dateString
// * @return
// * @throws ParseException
// */
// public static Date parseDate(String dateString){
// return parse(dateString, DATE_FORMAT);
// }
//
// /**
// * parse datetime string, like "yyyy-MM-dd HH:mm:ss"
// *
// * @param dateString
// * @return
// * @throws ParseException
// */
// public static Date parseDateTime(String dateString) {
// return parse(dateString, DATETIME_FORMAT);
// }
//
// /**
// * parse date
// *
// * @param dateString
// * @param pattern
// * @return
// * @throws ParseException
// */
// public static Date parse(String dateString, String pattern) {
// try {
// Date date = getDateFormat(pattern).parse(dateString);
// return date;
// } catch (Exception e) {
// logger.warn("parse date error, dateString = {}, pattern={}; errorMsg = {}", dateString, pattern, e.getMessage());
// return null;
// }
// }
//
//
// // ---------------------- add date ----------------------
//
// public static Date addYears(final Date date, final int amount) {
// return add(date, Calendar.YEAR, amount);
// }
//
// public static Date addMonths(final Date date, final int amount) {
// return add(date, Calendar.MONTH, amount);
// }
//
// public static Date addDays(final Date date, final int amount) {
// return add(date, Calendar.DAY_OF_MONTH, amount);
// }
//
// public static Date addHours(final Date date, final int amount) {
// return add(date, Calendar.HOUR_OF_DAY, amount);
// }
//
// public static Date addMinutes(final Date date, final int amount) {
// return add(date, Calendar.MINUTE, amount);
// }
//
// private static Date add(final Date date, final int calendarField, final int amount) {
// if (date == null) {
// return null;
// }
// final Calendar c = Calendar.getInstance();
// c.setTime(date);
// c.add(calendarField, amount);
// return c.getTime();
// }
//
//}

@ -0,0 +1,202 @@
//package com.xxl.job.core.util;
//
//import com.google.gson.Gson;
//import com.google.gson.GsonBuilder;
//import com.google.gson.JsonElement;
//import com.google.gson.reflect.TypeToken;
//
//import java.lang.reflect.Type;
//import java.util.ArrayList;
//import java.util.HashMap;
//
///**
// * gson tool From https://github.com/xuxueli/xxl-tool
// *
// * @author xuxueli 2020-04-11 20:56:31
// */
//public class GsonTool {
//
// private static Gson gson = null;
// static {
// gson= new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").disableHtmlEscaping().create();
// }
//
// /**
// * Object 转成 json
// *
// * <pre>
// * String json = GsonTool.toJson(new Demo());
// * </pre>
// *
// * @param src
// * @return String
// */
// public static String toJson(Object src) {
// return gson.toJson(src);
// }
//
// /**
// * json 转成 特定的cls的Object
// *
// * <pre>
// * Demo demo = GsonTool.fromJson(json, Demo.class);
// * </pre>
// *
// * @param json
// * @param classOfT
// * @return
// */
// public static <T> T fromJson(String json, Class<T> classOfT) {
// return gson.fromJson(json, classOfT);
// }
//
// /**
// * json 转成 特定的 rawClass<classOfT> 的Object
// *
// * <pre>
// * Response<Demo> response = GsonTool.fromJson(json, Response.class, Demo.class);
// * </pre>
// *
// * @param json
// * @param classOfT
// * @param argClassOfT
// * @return
// */
// /*public static <T> T fromJson(String json, Class<T> classOfT, Class argClassOfT) {
// Type type = new ParameterizedType4ReturnT(classOfT, new Class[]{argClassOfT});
// return gson.fromJson(json, type);
// }
// public static class ParameterizedType4ReturnT implements ParameterizedType {
// private final Class raw;
// private final Type[] args;
// public ParameterizedType4ReturnT(Class raw, Type[] args) {
// this.raw = raw;
// this.args = args != null ? args : new Type[0];
// }
// @Override
// public Type[] getActualTypeArguments() {
// return args;
// }
// @Override
// public Type getRawType() {
// return raw;
// }
// @Override
// public Type getOwnerType() {return null;}
// }*/
//
// /**
// * json 转成 特定的 Type 的Object
// *
// * @param json
// * @param typeOfT
// * @return
// * @param <T>
// */
// public static <T> T fromJson(String json, Type typeOfT) {
// return gson.fromJson(json, typeOfT);
// }
//
// /**
// * json 转成 特定的 Type 的Object
// *
// * <pre>
// * Response<Demo> response = GsonTool.fromJson(json, Response.class, Demo.class);
// * </pre>
// *
// * @param json
// * @param rawType
// * @param typeArguments
// * @return
// */
// public static <T> T fromJson(String json, Type rawType, Type... typeArguments) {
// Type type = TypeToken.getParameterized(rawType, typeArguments).getType();
// return gson.fromJson(json, type);
// }
//
// /**
// * json 转成 特定的cls的 ArrayList
// *
// * <pre>
// * List<Demo> demoList = GsonTool.fromJsonList(json, Demo.class);
// * </pre>
// *
// * @param json
// * @param classOfT
// * @return
// */
// public static <T> ArrayList<T> fromJsonList(String json, Class<T> classOfT) {
// Type type = TypeToken.getParameterized(ArrayList.class, classOfT).getType();
// return gson.fromJson(json, type);
// }
//
// /**
// * json 转成 特定的cls的 HashMap
// *
// * <pre>
// * HashMap<String, Demo> map = GsonTool.fromJsonMap(json, String.class, Demo.class);
// * </pre>
// *
// * @param json
// * @param keyClass
// * @param valueClass
// * @return
// * @param <K>
// * @param <V>
// */
// public static <K, V> HashMap<K, V> fromJsonMap(String json, Class<K> keyClass, Class<V> valueClass) {
// Type type = TypeToken.getParameterized(HashMap.class, keyClass, valueClass).getType();
// return gson.fromJson(json, type);
// }
//
// // ---------------------------------
//
// /**
// * Object 转成 JsonElement
// *
// * @param src
// * @return
// */
// public static JsonElement toJsonElement(Object src) {
// return gson.toJsonTree(src);
// }
//
// /**
// * JsonElement 转成 特定的cls的Object
// *
// * @param json
// * @param classOfT
// * @return
// * @param <T>
// */
// public static <T> T fromJsonElement(JsonElement json, Class<T> classOfT) {
// return gson.fromJson(json, classOfT);
// }
//
// /**
// * JsonElement 转成 特定的 rawClass<classOfT> 的Object
// *
// * @param json
// * @param typeOfT
// * @return
// * @param <T>
// */
// public static <T> T fromJsonElement(JsonElement json, Type typeOfT) {
// return gson.fromJson(json, typeOfT);
// }
//
// /**
// * JsonElement 转成 特定的 Type 的 Object
// *
// * @param json
// * @param rawType
// * @param typeArguments
// * @return
// * @param <T>
// */
// public static <T> T fromJsonElement(JsonElement json, Type rawType, Type... typeArguments) {
// Type typeOfT = TypeToken.getParameterized(rawType, typeArguments).getType();
// return gson.fromJson(json, typeOfT);
// }
//
//}

@ -2,7 +2,7 @@ package com.xxl.job.executor.sample.frameless.jobhandler;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.core.util.GsonTool;
import com.xxl.tool.gson.GsonTool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -160,7 +160,7 @@ public class SampleXxlJob {
String method;
String data;
try {
Map<String, String> paramMap =GsonTool.fromJson(param, Map.class);
Map<String, String> paramMap = GsonTool.fromJson(param, Map.class);
url = paramMap.get("url");
method = paramMap.get("method");
data = paramMap.get("data");

@ -2,7 +2,7 @@ package com.xxl.job.executor.jobhandler;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.core.util.GsonTool;
import com.xxl.tool.gson.GsonTool;
import io.github.imfangs.dify.client.DifyClientFactory;
import io.github.imfangs.dify.client.DifyWorkflowClient;
import io.github.imfangs.dify.client.enums.ResponseMode;

@ -2,7 +2,7 @@ package com.xxl.job.executor.jobhandler;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.core.util.GsonTool;
import com.xxl.tool.gson.GsonTool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@ -162,7 +162,7 @@ public class SampleXxlJob {
String method;
String data;
try {
Map<String, String> paramMap =GsonTool.fromJson(param, Map.class);
Map<String, String> paramMap = GsonTool.fromJson(param, Map.class);
url = paramMap.get("url");
method = paramMap.get("method");
data = paramMap.get("data");

Loading…
Cancel
Save