diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobInfoController.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobInfoController.java index 89bfb3c0..5b7c2bfe 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobInfoController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobInfoController.java @@ -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; } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobLogController.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobLogController.java index 2f17f8fd..18941c83 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobLogController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobLogController.java @@ -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) { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/thread/JobCompleteHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/thread/JobCompleteHelper.java index b1e7583f..faaf3a3b 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/thread/JobCompleteHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/thread/JobCompleteHelper.java @@ -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 losedJobIds = XxlJobAdminBootstrap.getInstance().getXxlJobLogMapper().findLostJobIds(losedTime); if (losedJobIds!=null && losedJobIds.size()>0) { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java index 3807f86a..d4056f2a 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java @@ -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); diff --git a/xxl-job-admin/src/test/java/com/xxl/job/admin/core/util/CronExpressionTest.java b/xxl-job-admin/src/test/java/com/xxl/job/admin/core/util/CronExpressionTest.java index d7ccae50..e41ef343 100644 --- a/xxl-job-admin/src/test/java/com/xxl/job/admin/core/util/CronExpressionTest.java +++ b/xxl-job-admin/src/test/java/com/xxl/job/admin/core/util/CronExpressionTest.java @@ -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; } diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/context/XxlJobHelper.java b/xxl-job-core/src/main/java/com/xxl/job/core/context/XxlJobHelper.java index ede7d4b4..868b9fb3 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/context/XxlJobHelper.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/context/XxlJobHelper.java @@ -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(" ") diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java b/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java index dd9f2ae8..4967e39d 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java @@ -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.*; diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/thread/TriggerCallbackThread.java b/xxl-job-core/src/main/java/com/xxl/job/core/thread/TriggerCallbackThread.java index 906fc03a..7c0bf5f2 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/thread/TriggerCallbackThread.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/thread/TriggerCallbackThread.java @@ -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; diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/util/DateUtil.java b/xxl-job-core/src/main/java/com/xxl/job/core/util/DateUtil.java deleted file mode 100644 index 71afe0a6..00000000 --- a/xxl-job-core/src/main/java/com/xxl/job/core/util/DateUtil.java +++ /dev/null @@ -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> dateFormatThreadLocal = new ThreadLocal>(); - private static DateFormat getDateFormat(String pattern) { - if (pattern==null || pattern.trim().length()==0) { - throw new IllegalArgumentException("pattern cannot be empty."); - } - - Map dateFormatMap = dateFormatThreadLocal.get(); - if(dateFormatMap!=null && dateFormatMap.containsKey(pattern)){ - return dateFormatMap.get(pattern); - } - - synchronized (dateFormatThreadLocal) { - if (dateFormatMap == null) { - dateFormatMap = new HashMap(); - } - 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(); - } - -} \ No newline at end of file diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/util/GsonTool.java b/xxl-job-core/src/main/java/com/xxl/job/core/util/GsonTool.java deleted file mode 100644 index 2c3ed4a7..00000000 --- a/xxl-job-core/src/main/java/com/xxl/job/core/util/GsonTool.java +++ /dev/null @@ -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 - * - *
-     *     String json = GsonTool.toJson(new Demo());
-     * 
- * - * @param src - * @return String - */ - public static String toJson(Object src) { - return gson.toJson(src); - } - - /** - * json 转成 特定的cls的Object - * - *
-     *     Demo demo = GsonTool.fromJson(json, Demo.class);
-     * 
- * - * @param json - * @param classOfT - * @return - */ - public static T fromJson(String json, Class classOfT) { - return gson.fromJson(json, classOfT); - } - - /** - * json 转成 特定的 rawClass 的Object - * - *
-     *     Response response = GsonTool.fromJson(json, Response.class, Demo.class);
-     * 
- * - * @param json - * @param classOfT - * @param argClassOfT - * @return - */ - /*public static T fromJson(String json, Class 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 - */ - public static T fromJson(String json, Type typeOfT) { - return gson.fromJson(json, typeOfT); - } - - /** - * json 转成 特定的 Type 的Object - * - *
-     *     Response response = GsonTool.fromJson(json, Response.class, Demo.class);
-     * 
- * - * @param json - * @param rawType - * @param typeArguments - * @return - */ - public static T fromJson(String json, Type rawType, Type... typeArguments) { - Type type = TypeToken.getParameterized(rawType, typeArguments).getType(); - return gson.fromJson(json, type); - } - - /** - * json 转成 特定的cls的 ArrayList - * - *
-     *     List demoList = GsonTool.fromJsonList(json, Demo.class);
-     * 
- * - * @param json - * @param classOfT - * @return - */ - public static ArrayList fromJsonList(String json, Class classOfT) { - Type type = TypeToken.getParameterized(ArrayList.class, classOfT).getType(); - return gson.fromJson(json, type); - } - - /** - * json 转成 特定的cls的 HashMap - * - *
-     *     HashMap map = GsonTool.fromJsonMap(json, String.class, Demo.class);
-     * 
- * - * @param json - * @param keyClass - * @param valueClass - * @return - * @param - * @param - */ - public static HashMap fromJsonMap(String json, Class keyClass, Class 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 - */ - public static T fromJsonElement(JsonElement json, Class classOfT) { - return gson.fromJson(json, classOfT); - } - - /** - * JsonElement 转成 特定的 rawClass 的Object - * - * @param json - * @param typeOfT - * @return - * @param - */ - public static T fromJsonElement(JsonElement json, Type typeOfT) { - return gson.fromJson(json, typeOfT); - } - - /** - * JsonElement 转成 特定的 Type 的 Object - * - * @param json - * @param rawType - * @param typeArguments - * @return - * @param - */ - public static T fromJsonElement(JsonElement json, Type rawType, Type... typeArguments) { - Type typeOfT = TypeToken.getParameterized(rawType, typeArguments).getType(); - return gson.fromJson(json, typeOfT); - } - -} diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/util/XxlJobRemotingUtil.java b/xxl-job-core/src/main/java/com/xxl/job/core/util/XxlJobRemotingUtil.java index a8a1f6cb..fac0741b 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/util/XxlJobRemotingUtil.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/util/XxlJobRemotingUtil.java @@ -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 diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/util/deprecated/DateUtil.java b/xxl-job-core/src/main/java/com/xxl/job/core/util/deprecated/DateUtil.java new file mode 100644 index 00000000..6b740cd6 --- /dev/null +++ b/xxl-job-core/src/main/java/com/xxl/job/core/util/deprecated/DateUtil.java @@ -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> dateFormatThreadLocal = new ThreadLocal>(); +// private static DateFormat getDateFormat(String pattern) { +// if (pattern==null || pattern.trim().length()==0) { +// throw new IllegalArgumentException("pattern cannot be empty."); +// } +// +// Map dateFormatMap = dateFormatThreadLocal.get(); +// if(dateFormatMap!=null && dateFormatMap.containsKey(pattern)){ +// return dateFormatMap.get(pattern); +// } +// +// synchronized (dateFormatThreadLocal) { +// if (dateFormatMap == null) { +// dateFormatMap = new HashMap(); +// } +// 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(); +// } +// +//} \ No newline at end of file diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/deprecated/FileUtil.java b/xxl-job-core/src/main/java/com/xxl/job/core/util/deprecated/FileUtil.java similarity index 100% rename from xxl-job-core/src/main/java/com/xxl/job/core/deprecated/FileUtil.java rename to xxl-job-core/src/main/java/com/xxl/job/core/util/deprecated/FileUtil.java diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/util/deprecated/GsonTool.java b/xxl-job-core/src/main/java/com/xxl/job/core/util/deprecated/GsonTool.java new file mode 100644 index 00000000..91164e2c --- /dev/null +++ b/xxl-job-core/src/main/java/com/xxl/job/core/util/deprecated/GsonTool.java @@ -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 +// * +// *
+//     *     String json = GsonTool.toJson(new Demo());
+//     * 
+// * +// * @param src +// * @return String +// */ +// public static String toJson(Object src) { +// return gson.toJson(src); +// } +// +// /** +// * json 转成 特定的cls的Object +// * +// *
+//     *     Demo demo = GsonTool.fromJson(json, Demo.class);
+//     * 
+// * +// * @param json +// * @param classOfT +// * @return +// */ +// public static T fromJson(String json, Class classOfT) { +// return gson.fromJson(json, classOfT); +// } +// +// /** +// * json 转成 特定的 rawClass 的Object +// * +// *
+//     *     Response response = GsonTool.fromJson(json, Response.class, Demo.class);
+//     * 
+// * +// * @param json +// * @param classOfT +// * @param argClassOfT +// * @return +// */ +// /*public static T fromJson(String json, Class 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 +// */ +// public static T fromJson(String json, Type typeOfT) { +// return gson.fromJson(json, typeOfT); +// } +// +// /** +// * json 转成 特定的 Type 的Object +// * +// *
+//     *     Response response = GsonTool.fromJson(json, Response.class, Demo.class);
+//     * 
+// * +// * @param json +// * @param rawType +// * @param typeArguments +// * @return +// */ +// public static T fromJson(String json, Type rawType, Type... typeArguments) { +// Type type = TypeToken.getParameterized(rawType, typeArguments).getType(); +// return gson.fromJson(json, type); +// } +// +// /** +// * json 转成 特定的cls的 ArrayList +// * +// *
+//     *     List demoList = GsonTool.fromJsonList(json, Demo.class);
+//     * 
+// * +// * @param json +// * @param classOfT +// * @return +// */ +// public static ArrayList fromJsonList(String json, Class classOfT) { +// Type type = TypeToken.getParameterized(ArrayList.class, classOfT).getType(); +// return gson.fromJson(json, type); +// } +// +// /** +// * json 转成 特定的cls的 HashMap +// * +// *
+//     *     HashMap map = GsonTool.fromJsonMap(json, String.class, Demo.class);
+//     * 
+// * +// * @param json +// * @param keyClass +// * @param valueClass +// * @return +// * @param +// * @param +// */ +// public static HashMap fromJsonMap(String json, Class keyClass, Class 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 +// */ +// public static T fromJsonElement(JsonElement json, Class classOfT) { +// return gson.fromJson(json, classOfT); +// } +// +// /** +// * JsonElement 转成 特定的 rawClass 的Object +// * +// * @param json +// * @param typeOfT +// * @return +// * @param +// */ +// public static T fromJsonElement(JsonElement json, Type typeOfT) { +// return gson.fromJson(json, typeOfT); +// } +// +// /** +// * JsonElement 转成 特定的 Type 的 Object +// * +// * @param json +// * @param rawType +// * @param typeArguments +// * @return +// * @param +// */ +// public static T fromJsonElement(JsonElement json, Type rawType, Type... typeArguments) { +// Type typeOfT = TypeToken.getParameterized(rawType, typeArguments).getType(); +// return gson.fromJson(json, typeOfT); +// } +// +//} diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/deprecated/JdkSerializeTool.java b/xxl-job-core/src/main/java/com/xxl/job/core/util/deprecated/JdkSerializeTool.java similarity index 100% rename from xxl-job-core/src/main/java/com/xxl/job/core/deprecated/JdkSerializeTool.java rename to xxl-job-core/src/main/java/com/xxl/job/core/util/deprecated/JdkSerializeTool.java diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/deprecated/ShardingUtil.java b/xxl-job-core/src/main/java/com/xxl/job/core/util/deprecated/ShardingUtil.java similarity index 100% rename from xxl-job-core/src/main/java/com/xxl/job/core/deprecated/ShardingUtil.java rename to xxl-job-core/src/main/java/com/xxl/job/core/util/deprecated/ShardingUtil.java diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/deprecated/ThrowableUtil.java b/xxl-job-core/src/main/java/com/xxl/job/core/util/deprecated/ThrowableUtil.java similarity index 100% rename from xxl-job-core/src/main/java/com/xxl/job/core/deprecated/ThrowableUtil.java rename to xxl-job-core/src/main/java/com/xxl/job/core/util/deprecated/ThrowableUtil.java diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-frameless/src/main/java/com/xxl/job/executor/sample/frameless/jobhandler/SampleXxlJob.java b/xxl-job-executor-samples/xxl-job-executor-sample-frameless/src/main/java/com/xxl/job/executor/sample/frameless/jobhandler/SampleXxlJob.java index cc985b1a..0293b2cf 100644 --- a/xxl-job-executor-samples/xxl-job-executor-sample-frameless/src/main/java/com/xxl/job/executor/sample/frameless/jobhandler/SampleXxlJob.java +++ b/xxl-job-executor-samples/xxl-job-executor-sample-frameless/src/main/java/com/xxl/job/executor/sample/frameless/jobhandler/SampleXxlJob.java @@ -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 paramMap =GsonTool.fromJson(param, Map.class); + Map paramMap = GsonTool.fromJson(param, Map.class); url = paramMap.get("url"); method = paramMap.get("method"); data = paramMap.get("data"); diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot-ai/src/main/java/com/xxl/job/executor/jobhandler/AIXxlJob.java b/xxl-job-executor-samples/xxl-job-executor-sample-springboot-ai/src/main/java/com/xxl/job/executor/jobhandler/AIXxlJob.java index 6ae752aa..bd7c6589 100644 --- a/xxl-job-executor-samples/xxl-job-executor-sample-springboot-ai/src/main/java/com/xxl/job/executor/jobhandler/AIXxlJob.java +++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot-ai/src/main/java/com/xxl/job/executor/jobhandler/AIXxlJob.java @@ -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; diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/jobhandler/SampleXxlJob.java b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/jobhandler/SampleXxlJob.java index 55d3b5a3..5fe777f9 100644 --- a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/jobhandler/SampleXxlJob.java +++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/jobhandler/SampleXxlJob.java @@ -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 paramMap =GsonTool.fromJson(param, Map.class); + Map paramMap = GsonTool.fromJson(param, Map.class); url = paramMap.get("url"); method = paramMap.get("method"); data = paramMap.get("data");