From 9492365d0df83e0df2131df5a907b460f16c9af4 Mon Sep 17 00:00:00 2001
From: hongawen <83944980@qq.com>
Date: Tue, 23 Apr 2024 09:37:41 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4pqs-job=E6=A8=A1=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 12 +-
pqs-advance/advance-api/pom.xml | 11 +-
.../ledgerManger/PmsMonitorController.java | 1 -
pqs-job/job-admin/Dockerfile | 12 -
pqs-job/job-admin/pom.xml | 164 -
.../njcn/job/admin/JobAdminApplication.java | 16 -
.../job/admin/controller/IndexController.java | 96 -
.../admin/controller/JobApiController.java | 72 -
.../admin/controller/JobCodeController.java | 96 -
.../admin/controller/JobGroupController.java | 197 -
.../admin/controller/JobInfoController.java | 226 -
.../admin/controller/JobLogController.java | 233 -
.../job/admin/controller/UserController.java | 179 -
.../annotation/PermissionLimit.java | 29 -
.../interceptor/CookieInterceptor.java | 43 -
.../interceptor/PermissionInterceptor.java | 60 -
.../controller/interceptor/WebMvcConfig.java | 28 -
.../resolver/WebExceptionResolver.java | 66 -
.../njcn/job/admin/core/alarm/JobAlarm.java | 20 -
.../njcn/job/admin/core/alarm/JobAlarmer.java | 65 -
.../admin/core/alarm/impl/EmailJobAlarm.java | 117 -
.../admin/core/complete/XxlJobCompleter.java | 99 -
.../admin/core/conf/XxlJobAdminConfig.java | 158 -
.../job/admin/core/cron/CronExpression.java | 1657 ---
.../admin/core/exception/XxlJobException.java | 14 -
.../job/admin/core/old/RemoteHttpJobBean.java | 32 -
.../core/old/XxlJobDynamicScheduler.java | 413 -
.../job/admin/core/old/XxlJobThreadPool.java | 58 -
.../core/route/ExecutorRouteStrategyEnum.java | 48 -
.../job/admin/core/route/ExecutorRouter.java | 24 -
.../route/strategy/ExecutorRouteBusyover.java | 48 -
.../strategy/ExecutorRouteConsistentHash.java | 85 -
.../route/strategy/ExecutorRouteFailover.java | 48 -
.../route/strategy/ExecutorRouteFirst.java | 19 -
.../core/route/strategy/ExecutorRouteLFU.java | 79 -
.../core/route/strategy/ExecutorRouteLRU.java | 76 -
.../route/strategy/ExecutorRouteLast.java | 19 -
.../route/strategy/ExecutorRouteRandom.java | 23 -
.../route/strategy/ExecutorRouteRound.java | 46 -
.../core/scheduler/MisfireStrategyEnum.java | 39 -
.../core/scheduler/ScheduleTypeEnum.java | 46 -
.../admin/core/scheduler/XxlJobScheduler.java | 101 -
.../admin/core/thread/JobCompleteHelper.java | 184 -
.../core/thread/JobFailMonitorHelper.java | 110 -
.../admin/core/thread/JobLogReportHelper.java | 152 -
.../admin/core/thread/JobRegistryHelper.java | 204 -
.../admin/core/thread/JobScheduleHelper.java | 369 -
.../core/thread/JobTriggerPoolHelper.java | 150 -
.../admin/core/trigger/TriggerTypeEnum.java | 27 -
.../job/admin/core/trigger/XxlJobTrigger.java | 226 -
.../njcn/job/admin/core/util/CookieUtil.java | 98 -
.../com/njcn/job/admin/core/util/FtlUtil.java | 31 -
.../njcn/job/admin/core/util/I18nUtil.java | 79 -
.../njcn/job/admin/core/util/JacksonUtil.java | 92 -
.../job/admin/core/util/LocalCacheUtil.java | 133 -
.../njcn/job/admin/dao/XxlJobGroupDao.java | 37 -
.../com/njcn/job/admin/dao/XxlJobInfoDao.java | 49 -
.../com/njcn/job/admin/dao/XxlJobLogDao.java | 62 -
.../njcn/job/admin/dao/XxlJobLogGlueDao.java | 24 -
.../job/admin/dao/XxlJobLogReportDao.java | 26 -
.../njcn/job/admin/dao/XxlJobRegistryDao.java | 38 -
.../com/njcn/job/admin/dao/XxlJobUserDao.java | 32 -
.../njcn/job/admin/service/LoginService.java | 107 -
.../njcn/job/admin/service/XxlJobService.java | 97 -
.../job/admin/service/impl/AdminBizImpl.java | 35 -
.../admin/service/impl/XxlJobServiceImpl.java | 718 --
.../src/main/resources/bootstrap.yml | 121 -
.../main/resources/i18n/message_en.properties | 276 -
.../resources/i18n/message_zh_CN.properties | 276 -
.../resources/i18n/message_zh_TC.properties | 276 -
.../mybatis-mapper/XxlJobGroupMapper.xml | 91 -
.../mybatis-mapper/XxlJobInfoMapper.xml | 240 -
.../mybatis-mapper/XxlJobLogGlueMapper.xml | 71 -
.../mybatis-mapper/XxlJobLogMapper.xml | 273 -
.../mybatis-mapper/XxlJobLogReportMapper.xml | 62 -
.../mybatis-mapper/XxlJobRegistryMapper.xml | 62 -
.../mybatis-mapper/XxlJobUserMapper.xml | 87 -
.../Ionicons/css/ionicons.min.css | 11 -
.../Ionicons/fonts/ionicons.eot | Bin 120724 -> 0 bytes
.../Ionicons/fonts/ionicons.svg | 2230 ----
.../Ionicons/fonts/ionicons.ttf | Bin 188508 -> 0 bytes
.../Ionicons/fonts/ionicons.woff | Bin 67904 -> 0 bytes
.../bower_components/PACE/pace.min.js | 2 -
.../PACE/themes/blue/pace-theme-flash.css | 77 -
.../daterangepicker.css | 269 -
.../daterangepicker.js | 1653 ---
.../bootstrap/css/bootstrap.min.css | 6 -
.../bootstrap/css/bootstrap.min.css.map | 1 -
.../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes
.../fonts/glyphicons-halflings-regular.svg | 288 -
.../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes
.../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes
.../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes
.../bootstrap/js/bootstrap.min.js | 6 -
.../css/dataTables.bootstrap.min.css | 1 -
.../js/dataTables.bootstrap.min.js | 8 -
.../js/jquery.dataTables.min.js | 166 -
.../bower_components/fastclick/fastclick.js | 841 --
.../font-awesome/css/font-awesome.css.map | 7 -
.../font-awesome/css/font-awesome.min.css | 4 -
.../font-awesome/fonts/FontAwesome.otf | Bin 134808 -> 0 bytes
.../fonts/fontawesome-webfont.eot | Bin 165742 -> 0 bytes
.../fonts/fontawesome-webfont.svg | 2671 -----
.../fonts/fontawesome-webfont.ttf | Bin 165548 -> 0 bytes
.../fonts/fontawesome-webfont.woff | Bin 98024 -> 0 bytes
.../fonts/fontawesome-webfont.woff2 | Bin 77160 -> 0 bytes
.../jquery.slimscroll.min.js | 16 -
.../bower_components/jquery/jquery.min.js | 2 -
.../bower_components/moment/moment.min.js | 1 -
.../static/adminlte/dist/css/AdminLTE.min.css | 8 -
.../dist/css/skins/_all-skins.min.css | 1 -
.../static/adminlte/dist/js/adminlte.min.js | 13 -
.../adminlte/plugins/iCheck/icheck.min.js | 10 -
.../adminlte/plugins/iCheck/square/blue.css | 62 -
.../adminlte/plugins/iCheck/square/blue.png | Bin 2185 -> 0 bytes
.../plugins/iCheck/square/blue@2x.png | Bin 4485 -> 0 bytes
.../src/main/resources/static/favicon.ico | Bin 4286 -> 0 bytes
.../src/main/resources/static/js/common.1.js | 156 -
.../src/main/resources/static/js/index.js | 207 -
.../resources/static/js/jobcode.index.1.js | 97 -
.../resources/static/js/jobgroup.index.1.js | 359 -
.../resources/static/js/jobinfo.index.1.js | 739 --
.../resources/static/js/joblog.detail.1.js | 91 -
.../resources/static/js/joblog.index.1.js | 396 -
.../src/main/resources/static/js/login.1.js | 66 -
.../main/resources/static/js/user.index.1.js | 328 -
.../codemirror/addon/hint/anyword-hint.js | 41 -
.../codemirror/addon/hint/show-hint.css | 36 -
.../codemirror/addon/hint/show-hint.js | 434 -
.../plugins/codemirror/lib/codemirror.css | 346 -
.../plugins/codemirror/lib/codemirror.js | 9698 -----------------
.../plugins/codemirror/mode/clike/clike.js | 879 --
.../codemirror/mode/javascript/javascript.js | 899 --
.../static/plugins/codemirror/mode/php/php.js | 234 -
.../codemirror/mode/powershell/powershell.js | 398 -
.../plugins/codemirror/mode/python/python.js | 409 -
.../plugins/codemirror/mode/shell/shell.js | 152 -
.../static/plugins/cronGen/cronGen.js | 1106 --
.../static/plugins/cronGen/cronGen_en.js | 1106 --
.../plugins/echarts/echarts.common.min.js | 22 -
.../static/plugins/jquery/jquery.cookie.js | 117 -
.../plugins/jquery/jquery.validate.min.js | 4 -
.../resources/static/plugins/layer/layer.js | 2 -
.../plugins/layer/theme/default/icon-ext.png | Bin 5911 -> 0 bytes
.../plugins/layer/theme/default/icon.png | Bin 11493 -> 0 bytes
.../plugins/layer/theme/default/layer.css | 1 -
.../plugins/layer/theme/default/loading-0.gif | Bin 5793 -> 0 bytes
.../plugins/layer/theme/default/loading-1.gif | Bin 701 -> 0 bytes
.../plugins/layer/theme/default/loading-2.gif | Bin 1787 -> 0 bytes
.../templates/common/common.exception.ftl | 31 -
.../templates/common/common.macro.ftl | 239 -
.../src/main/resources/templates/help.ftl | 47 -
.../src/main/resources/templates/index.ftl | 147 -
.../templates/jobcode/jobcode.index.ftl | 164 -
.../templates/jobgroup/jobgroup.index.ftl | 172 -
.../templates/jobinfo/jobinfo.index.ftl | 540 -
.../templates/joblog/joblog.detail.ftl | 72 -
.../templates/joblog/joblog.index.ftl | 180 -
.../src/main/resources/templates/login.ftl | 45 -
.../resources/templates/user/user.index.ftl | 188 -
pqs-job/job-api/pom.xml | 77 -
.../java/com/njcn/job/api/JobFeignClient.java | 68 -
.../JobFeignClientFallbackFactory.java | 66 -
.../java/com/njcn/job/model/XxlJobGroup.java | 77 -
.../java/com/njcn/job/model/XxlJobInfo.java | 237 -
.../java/com/njcn/job/model/XxlJobLog.java | 157 -
.../com/njcn/job/model/XxlJobLogGlue.java | 75 -
.../com/njcn/job/model/XxlJobLogReport.java | 54 -
.../com/njcn/job/model/XxlJobRegistry.java | 55 -
.../java/com/njcn/job/model/XxlJobUser.java | 73 -
pqs-job/job-executor/Dockerfile | 13 -
pqs-job/job-executor/pom.xml | 165 -
.../njcn/executor/JobExecutorApplication.java | 25 -
.../njcn/executor/config/XxlJobConfig.java | 78 -
.../njcn/executor/handler/AirStrategyJob.java | 42 -
.../com/njcn/executor/handler/AuditJob.java | 34 -
.../handler/DeviceAbnormalStatisticsJob.java | 30 -
.../executor/handler/EleIntegrityJob.java | 166 -
.../executor/handler/EleOnlineRateJob.java | 71 -
.../njcn/executor/handler/ElectricCalJob.java | 150 -
.../handler/HarmAberrationRateJob.java | 42 -
.../executor/handler/HarmAlarmDetailJob.java | 37 -
.../handler/HarmComprehensiveAssessJob.java | 48 -
.../executor/handler/HarmCustomReportJob.java | 48 -
.../executor/handler/HarmDateToDayJob.java | 61 -
.../executor/handler/HarmIntegrityJob.java | 49 -
.../executor/handler/HarmKpiAssessJob.java | 49 -
.../executor/handler/HarmLimitRateJob.java | 56 -
.../executor/handler/HarmLimitTargetJob.java | 51 -
.../executor/handler/HarmOnlineRateJob.java | 45 -
.../executor/handler/HarmOverLimitJob.java | 84 -
.../executor/handler/HarmPollutionJob.java | 48 -
.../njcn/executor/handler/LiteFlowJob.java | 91 -
.../njcn/executor/handler/RAlarmCountJob.java | 41 -
.../handler/RMpDevEvaluateDetailJob.java | 37 -
.../executor/handler/RMpEventDetailJob.java | 40 -
.../handler/RMpMonitorEvaluateJob.java | 39 -
.../njcn/executor/handler/RMpPassrateJob.java | 51 -
.../executor/handler/ROperatingIndexJob.java | 71 -
.../handler/ROperatingMonitorJob.java | 51 -
.../handler/RQualityParameterMJob.java | 50 -
.../executor/handler/RStatAbnormalJob.java | 40 -
.../executor/handler/RStatDevSignalJob.java | 33 -
.../njcn/executor/handler/RStatEventJob.java | 59 -
.../executor/handler/RStatEventOrgJob.java | 58 -
.../executor/handler/RStatHarmonicJob.java | 46 -
.../executor/handler/RStatHarmonicOrgJob.java | 41 -
.../njcn/executor/handler/RStatOrgJob.java | 58 -
.../executor/handler/RStatSubstationJob.java | 58 -
.../handler/SupvStatisticReportJob.java | 34 -
.../njcn/executor/handler/TargetWarnJob.java | 56 -
.../com/njcn/executor/handler/TestJob.java | 35 -
.../executor/handler/ThsSuperviseJob.java | 29 -
.../njcn/executor/pojo/dto/HarmonicDTO.java | 20 -
.../njcn/executor/pojo/dto/PollutionDTO.java | 59 -
.../njcn/executor/pojo/vo/DataFlicker.java | 43 -
.../com/njcn/executor/pojo/vo/DataFluc.java | 41 -
.../executor/pojo/vo/DataHarmPhasicI.java | 185 -
.../executor/pojo/vo/DataHarmPhasicV.java | 185 -
.../njcn/executor/pojo/vo/DataHarmPowerP.java | 193 -
.../njcn/executor/pojo/vo/DataHarmPowerQ.java | 188 -
.../njcn/executor/pojo/vo/DataHarmPowerS.java | 188 -
.../njcn/executor/pojo/vo/DataHarmRateI.java | 18 -
.../njcn/executor/pojo/vo/DataHarmRateV.java | 18 -
.../java/com/njcn/executor/pojo/vo/DataI.java | 203 -
.../njcn/executor/pojo/vo/DataInHarmI.java | 20 -
.../executor/pojo/vo/DataInHarmRateI.java | 20 -
.../executor/pojo/vo/DataInHarmRateV.java | 20 -
.../njcn/executor/pojo/vo/DataInHarmV.java | 186 -
.../com/njcn/executor/pojo/vo/DataPlt.java | 42 -
.../java/com/njcn/executor/pojo/vo/DataV.java | 221 -
.../njcn/executor/pojo/vo/DayHarmrateV.java | 184 -
.../java/com/njcn/executor/pojo/vo/DayI.java | 20 -
.../com/njcn/executor/pojo/vo/DayInharmV.java | 185 -
.../com/njcn/executor/pojo/vo/DayPlt.java | 23 -
.../java/com/njcn/executor/pojo/vo/DayV.java | 22 -
.../com/njcn/executor/pojo/vo/LimitRate.java | 244 -
.../njcn/executor/pojo/vo/PqsCommunicate.java | 32 -
.../executor/pojo/vo/PqsCommunicateClone.java | 32 -
.../njcn/executor/pojo/vo/PqsIntegrity.java | 31 -
.../njcn/executor/pojo/vo/PqsOnlineRate.java | 35 -
.../executor/utils/CommonExecutorUtils.java | 144 -
.../src/main/resources/bootstrap.yml | 66 -
.../src/test/java/BaseJunitTest.java | 16 -
pqs-job/job-executor/src/test/java/Test1.java | 59 -
pqs-job/pom.xml | 26 -
246 files changed, 14 insertions(+), 44596 deletions(-)
delete mode 100644 pqs-job/job-admin/Dockerfile
delete mode 100644 pqs-job/job-admin/pom.xml
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/JobAdminApplication.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/controller/IndexController.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/controller/JobApiController.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/controller/JobCodeController.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/controller/JobGroupController.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/controller/JobInfoController.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/controller/JobLogController.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/controller/UserController.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/controller/annotation/PermissionLimit.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/controller/interceptor/CookieInterceptor.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/controller/interceptor/PermissionInterceptor.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/controller/interceptor/WebMvcConfig.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/controller/resolver/WebExceptionResolver.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/alarm/JobAlarm.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/alarm/JobAlarmer.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/alarm/impl/EmailJobAlarm.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/complete/XxlJobCompleter.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/conf/XxlJobAdminConfig.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/cron/CronExpression.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/exception/XxlJobException.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/old/RemoteHttpJobBean.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/old/XxlJobDynamicScheduler.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/old/XxlJobThreadPool.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/route/ExecutorRouteStrategyEnum.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/route/ExecutorRouter.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/route/strategy/ExecutorRouteBusyover.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/route/strategy/ExecutorRouteFailover.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/route/strategy/ExecutorRouteFirst.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/route/strategy/ExecutorRouteLFU.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/route/strategy/ExecutorRouteLRU.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/route/strategy/ExecutorRouteLast.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/route/strategy/ExecutorRouteRandom.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/route/strategy/ExecutorRouteRound.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/scheduler/MisfireStrategyEnum.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/scheduler/ScheduleTypeEnum.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/scheduler/XxlJobScheduler.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/thread/JobCompleteHelper.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/thread/JobFailMonitorHelper.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/thread/JobLogReportHelper.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/thread/JobRegistryHelper.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/thread/JobScheduleHelper.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/thread/JobTriggerPoolHelper.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/trigger/TriggerTypeEnum.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/trigger/XxlJobTrigger.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/util/CookieUtil.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/util/FtlUtil.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/util/I18nUtil.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/util/JacksonUtil.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/util/LocalCacheUtil.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/dao/XxlJobGroupDao.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/dao/XxlJobInfoDao.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/dao/XxlJobLogDao.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/dao/XxlJobLogGlueDao.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/dao/XxlJobLogReportDao.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/dao/XxlJobRegistryDao.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/dao/XxlJobUserDao.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/service/LoginService.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/service/XxlJobService.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/service/impl/AdminBizImpl.java
delete mode 100644 pqs-job/job-admin/src/main/java/com/njcn/job/admin/service/impl/XxlJobServiceImpl.java
delete mode 100644 pqs-job/job-admin/src/main/resources/bootstrap.yml
delete mode 100644 pqs-job/job-admin/src/main/resources/i18n/message_en.properties
delete mode 100644 pqs-job/job-admin/src/main/resources/i18n/message_zh_CN.properties
delete mode 100644 pqs-job/job-admin/src/main/resources/i18n/message_zh_TC.properties
delete mode 100644 pqs-job/job-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml
delete mode 100644 pqs-job/job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml
delete mode 100644 pqs-job/job-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml
delete mode 100644 pqs-job/job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
delete mode 100644 pqs-job/job-admin/src/main/resources/mybatis-mapper/XxlJobLogReportMapper.xml
delete mode 100644 pqs-job/job-admin/src/main/resources/mybatis-mapper/XxlJobRegistryMapper.xml
delete mode 100644 pqs-job/job-admin/src/main/resources/mybatis-mapper/XxlJobUserMapper.xml
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/Ionicons/css/ionicons.min.css
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.eot
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.svg
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.ttf
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.woff
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/PACE/pace.min.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/PACE/themes/blue/pace-theme-flash.css
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.css
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/bootstrap/css/bootstrap.min.css
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/bootstrap/css/bootstrap.min.css.map
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/bootstrap/js/bootstrap.min.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/datatables.net/js/jquery.dataTables.min.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/fastclick/fastclick.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/font-awesome/css/font-awesome.css.map
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/font-awesome/css/font-awesome.min.css
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/FontAwesome.otf
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.eot
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.svg
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.ttf
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff2
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/jquery-slimscroll/jquery.slimscroll.min.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/jquery/jquery.min.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/bower_components/moment/moment.min.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/dist/css/AdminLTE.min.css
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/dist/css/skins/_all-skins.min.css
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/dist/js/adminlte.min.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/plugins/iCheck/icheck.min.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue.css
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue.png
delete mode 100644 pqs-job/job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue@2x.png
delete mode 100644 pqs-job/job-admin/src/main/resources/static/favicon.ico
delete mode 100644 pqs-job/job-admin/src/main/resources/static/js/common.1.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/js/index.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/js/jobcode.index.1.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/js/jobgroup.index.1.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/js/jobinfo.index.1.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/js/joblog.detail.1.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/js/joblog.index.1.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/js/login.1.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/js/user.index.1.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/codemirror/addon/hint/anyword-hint.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.css
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/codemirror/lib/codemirror.css
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/codemirror/lib/codemirror.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/codemirror/mode/clike/clike.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/codemirror/mode/javascript/javascript.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/codemirror/mode/php/php.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/codemirror/mode/powershell/powershell.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/codemirror/mode/python/python.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/codemirror/mode/shell/shell.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/cronGen/cronGen.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/cronGen/cronGen_en.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/echarts/echarts.common.min.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/jquery/jquery.cookie.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/jquery/jquery.validate.min.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/layer/layer.js
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/layer/theme/default/icon-ext.png
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/layer/theme/default/icon.png
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/layer/theme/default/layer.css
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/layer/theme/default/loading-0.gif
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/layer/theme/default/loading-1.gif
delete mode 100644 pqs-job/job-admin/src/main/resources/static/plugins/layer/theme/default/loading-2.gif
delete mode 100644 pqs-job/job-admin/src/main/resources/templates/common/common.exception.ftl
delete mode 100644 pqs-job/job-admin/src/main/resources/templates/common/common.macro.ftl
delete mode 100644 pqs-job/job-admin/src/main/resources/templates/help.ftl
delete mode 100644 pqs-job/job-admin/src/main/resources/templates/index.ftl
delete mode 100644 pqs-job/job-admin/src/main/resources/templates/jobcode/jobcode.index.ftl
delete mode 100644 pqs-job/job-admin/src/main/resources/templates/jobgroup/jobgroup.index.ftl
delete mode 100644 pqs-job/job-admin/src/main/resources/templates/jobinfo/jobinfo.index.ftl
delete mode 100644 pqs-job/job-admin/src/main/resources/templates/joblog/joblog.detail.ftl
delete mode 100644 pqs-job/job-admin/src/main/resources/templates/joblog/joblog.index.ftl
delete mode 100644 pqs-job/job-admin/src/main/resources/templates/login.ftl
delete mode 100644 pqs-job/job-admin/src/main/resources/templates/user/user.index.ftl
delete mode 100644 pqs-job/job-api/pom.xml
delete mode 100644 pqs-job/job-api/src/main/java/com/njcn/job/api/JobFeignClient.java
delete mode 100644 pqs-job/job-api/src/main/java/com/njcn/job/api/fallback/JobFeignClientFallbackFactory.java
delete mode 100644 pqs-job/job-api/src/main/java/com/njcn/job/model/XxlJobGroup.java
delete mode 100644 pqs-job/job-api/src/main/java/com/njcn/job/model/XxlJobInfo.java
delete mode 100644 pqs-job/job-api/src/main/java/com/njcn/job/model/XxlJobLog.java
delete mode 100644 pqs-job/job-api/src/main/java/com/njcn/job/model/XxlJobLogGlue.java
delete mode 100644 pqs-job/job-api/src/main/java/com/njcn/job/model/XxlJobLogReport.java
delete mode 100644 pqs-job/job-api/src/main/java/com/njcn/job/model/XxlJobRegistry.java
delete mode 100644 pqs-job/job-api/src/main/java/com/njcn/job/model/XxlJobUser.java
delete mode 100644 pqs-job/job-executor/Dockerfile
delete mode 100644 pqs-job/job-executor/pom.xml
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/JobExecutorApplication.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/config/XxlJobConfig.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/AirStrategyJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/AuditJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/DeviceAbnormalStatisticsJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/EleIntegrityJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/EleOnlineRateJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/ElectricCalJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/HarmAberrationRateJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/HarmAlarmDetailJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/HarmComprehensiveAssessJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/HarmCustomReportJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/HarmDateToDayJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/HarmIntegrityJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/HarmKpiAssessJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/HarmLimitRateJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/HarmLimitTargetJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/HarmOnlineRateJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/HarmOverLimitJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/HarmPollutionJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/LiteFlowJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/RAlarmCountJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/RMpDevEvaluateDetailJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/RMpEventDetailJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/RMpMonitorEvaluateJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/RMpPassrateJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/ROperatingIndexJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/ROperatingMonitorJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/RQualityParameterMJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/RStatAbnormalJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/RStatDevSignalJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/RStatEventJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/RStatEventOrgJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/RStatHarmonicJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/RStatHarmonicOrgJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/RStatOrgJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/RStatSubstationJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/SupvStatisticReportJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/TargetWarnJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/TestJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/handler/ThsSuperviseJob.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/dto/HarmonicDTO.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/dto/PollutionDTO.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataFlicker.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataFluc.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataHarmPhasicI.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataHarmPhasicV.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataHarmPowerP.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataHarmPowerQ.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataHarmPowerS.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataHarmRateI.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataHarmRateV.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataI.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataInHarmI.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataInHarmRateI.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataInHarmRateV.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataInHarmV.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataPlt.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DataV.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DayHarmrateV.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DayI.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DayInharmV.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DayPlt.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/DayV.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/LimitRate.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/PqsCommunicate.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/PqsCommunicateClone.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/PqsIntegrity.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/pojo/vo/PqsOnlineRate.java
delete mode 100644 pqs-job/job-executor/src/main/java/com/njcn/executor/utils/CommonExecutorUtils.java
delete mode 100644 pqs-job/job-executor/src/main/resources/bootstrap.yml
delete mode 100644 pqs-job/job-executor/src/test/java/BaseJunitTest.java
delete mode 100644 pqs-job/job-executor/src/test/java/Test1.java
delete mode 100644 pqs-job/pom.xml
diff --git a/pom.xml b/pom.xml
index 7361066b7..d073751f5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,29 +30,29 @@
nexus-releases
Nexus Release Repository
- http://192.168.1.13:8001/nexus/content/repositories/releases/
+ http://192.168.1.22:8001/nexus/content/repositories/releases/
nexus-snapshots
Nexus Snapshot Repository
- http://192.168.1.13:8001/nexus/content/repositories/snapshots/
+ http://192.168.1.22:8001/nexus/content/repositories/snapshots/
-
- 192.168.1.13
+
+ 192.168.1.22
127.0.0.1
- 192.168.1.13
+ 192.168.1.22
${middle.server.url}:18848
fd74182b-1fce-4dba-afa7-2623b0376205
-
+
${middle.server.url}:8080
${service.server.url}:10215
diff --git a/pqs-advance/advance-api/pom.xml b/pqs-advance/advance-api/pom.xml
index f0fa2f65a..d214d0de5 100644
--- a/pqs-advance/advance-api/pom.xml
+++ b/pqs-advance/advance-api/pom.xml
@@ -39,11 +39,16 @@
event-api
${project.version}
+
+
+
+
+
+
- com.sun.jna
+ net.java.dev.jna
jna
- 3.0.9
- compile
+ 5.8.0
com.njcn
diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsMonitorController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsMonitorController.java
index 8703a7f60..f6a6cb617 100644
--- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsMonitorController.java
+++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsMonitorController.java
@@ -283,7 +283,6 @@ public class PmsMonitorController extends BaseController {
public HttpResult
- *
- *
- * @author Sharada Jambula, James House
- * @author Contributions from Mads Henderson
- * @author Refactoring from CronTrigger to CronExpression by Aaron Craven
- *
- * Borrowed from quartz v2.3.1
- *
- */
-public final class CronExpression implements Serializable, Cloneable {
-
- private static final long serialVersionUID = 12423409423L;
-
- protected static final int SECOND = 0;
- protected static final int MINUTE = 1;
- protected static final int HOUR = 2;
- protected static final int DAY_OF_MONTH = 3;
- protected static final int MONTH = 4;
- protected static final int DAY_OF_WEEK = 5;
- protected static final int YEAR = 6;
- protected static final int ALL_SPEC_INT = 99; // '*'
- protected static final int NO_SPEC_INT = 98; // '?'
- protected static final Integer ALL_SPEC = ALL_SPEC_INT;
- protected static final Integer NO_SPEC = NO_SPEC_INT;
-
- protected static final Map monthMap = new HashMap(20);
- protected static final Map dayMap = new HashMap(60);
- static {
- monthMap.put("JAN", 0);
- monthMap.put("FEB", 1);
- monthMap.put("MAR", 2);
- monthMap.put("APR", 3);
- monthMap.put("MAY", 4);
- monthMap.put("JUN", 5);
- monthMap.put("JUL", 6);
- monthMap.put("AUG", 7);
- monthMap.put("SEP", 8);
- monthMap.put("OCT", 9);
- monthMap.put("NOV", 10);
- monthMap.put("DEC", 11);
-
- dayMap.put("SUN", 1);
- dayMap.put("MON", 2);
- dayMap.put("TUE", 3);
- dayMap.put("WED", 4);
- dayMap.put("THU", 5);
- dayMap.put("FRI", 6);
- dayMap.put("SAT", 7);
- }
-
- private final String cronExpression;
- private TimeZone timeZone = null;
- protected transient TreeSet seconds;
- protected transient TreeSet minutes;
- protected transient TreeSet hours;
- protected transient TreeSet daysOfMonth;
- protected transient TreeSet months;
- protected transient TreeSet daysOfWeek;
- protected transient TreeSet years;
-
- protected transient boolean lastdayOfWeek = false;
- protected transient int nthdayOfWeek = 0;
- protected transient boolean lastdayOfMonth = false;
- protected transient boolean nearestWeekday = false;
- protected transient int lastdayOffset = 0;
- protected transient boolean expressionParsed = false;
-
- public static final int MAX_YEAR = Calendar.getInstance().get(Calendar.YEAR) + 100;
-
- /**
- * Constructs a new CronExpression based on the specified
- * parameter.
- *
- * @param cronExpression String representation of the cron expression the
- * new object should represent
- * @throws ParseException
- * if the string expression cannot be parsed into a valid
- * CronExpression
- */
- public CronExpression(String cronExpression) throws ParseException {
- if (cronExpression == null) {
- throw new IllegalArgumentException("cronExpression cannot be null");
- }
-
- this.cronExpression = cronExpression.toUpperCase(Locale.US);
-
- buildExpression(this.cronExpression);
- }
-
- /**
- * Constructs a new {@code CronExpression} as a copy of an existing
- * instance.
- *
- * @param expression
- * The existing cron expression to be copied
- */
- public CronExpression(CronExpression expression) {
- /*
- * We don't call the other constructor here since we need to swallow the
- * ParseException. We also elide some of the sanity checking as it is
- * not logically trippable.
- */
- this.cronExpression = expression.getCronExpression();
- try {
- buildExpression(cronExpression);
- } catch (ParseException ex) {
- throw new AssertionError();
- }
- if (expression.getTimeZone() != null) {
- setTimeZone((TimeZone) expression.getTimeZone().clone());
- }
- }
-
- /**
- * Indicates whether the given date satisfies the cron expression. Note that
- * milliseconds are ignored, so two Dates falling on different milliseconds
- * of the same second will always have the same result here.
- *
- * @param date the date to evaluate
- * @return a boolean indicating whether the given date satisfies the cron
- * expression
- */
- public boolean isSatisfiedBy(Date date) {
- Calendar testDateCal = Calendar.getInstance(getTimeZone());
- testDateCal.setTime(date);
- testDateCal.set(Calendar.MILLISECOND, 0);
- Date originalDate = testDateCal.getTime();
-
- testDateCal.add(Calendar.SECOND, -1);
-
- Date timeAfter = getTimeAfter(testDateCal.getTime());
-
- return ((timeAfter != null) && (timeAfter.equals(originalDate)));
- }
-
- /**
- * Returns the next date/time after the given date/time which
- * satisfies the cron expression.
- *
- * @param date the date/time at which to begin the search for the next valid
- * date/time
- * @return the next valid date/time
- */
- public Date getNextValidTimeAfter(Date date) {
- return getTimeAfter(date);
- }
-
- /**
- * Returns the next date/time after the given date/time which does
- * not satisfy the expression
- *
- * @param date the date/time at which to begin the search for the next
- * invalid date/time
- * @return the next valid date/time
- */
- public Date getNextInvalidTimeAfter(Date date) {
- long difference = 1000;
-
- //move back to the nearest second so differences will be accurate
- Calendar adjustCal = Calendar.getInstance(getTimeZone());
- adjustCal.setTime(date);
- adjustCal.set(Calendar.MILLISECOND, 0);
- Date lastDate = adjustCal.getTime();
-
- Date newDate;
-
- //FUTURE_TODO: (QUARTZ-481) IMPROVE THIS! The following is a BAD solution to this problem. Performance will be very bad here, depending on the cron expression. It is, however A solution.
-
- //keep getting the next included time until it's farther than one second
- // apart. At that point, lastDate is the last valid fire time. We return
- // the second immediately following it.
- while (difference == 1000) {
- newDate = getTimeAfter(lastDate);
- if(newDate == null)
- break;
-
- difference = newDate.getTime() - lastDate.getTime();
-
- if (difference == 1000) {
- lastDate = newDate;
- }
- }
-
- return new Date(lastDate.getTime() + 1000);
- }
-
- /**
- * Returns the time zone for which this CronExpression
- * will be resolved.
- */
- public TimeZone getTimeZone() {
- if (timeZone == null) {
- timeZone = TimeZone.getDefault();
- }
-
- return timeZone;
- }
-
- /**
- * Sets the time zone for which this CronExpression
- * will be resolved.
- */
- public void setTimeZone(TimeZone timeZone) {
- this.timeZone = timeZone;
- }
-
- /**
- * Returns the string representation of the CronExpression
- *
- * @return a string representation of the CronExpression
- */
- @Override
- public String toString() {
- return cronExpression;
- }
-
- /**
- * Indicates whether the specified cron expression can be parsed into a
- * valid cron expression
- *
- * @param cronExpression the expression to evaluate
- * @return a boolean indicating whether the given expression is a valid cron
- * expression
- */
- public static boolean isValidExpression(String cronExpression) {
-
- try {
- new CronExpression(cronExpression);
- } catch (ParseException pe) {
- return false;
- }
-
- return true;
- }
-
- public static void validateExpression(String cronExpression) throws ParseException {
-
- new CronExpression(cronExpression);
- }
-
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // Expression Parsing Functions
- //
- ////////////////////////////////////////////////////////////////////////////
-
- protected void buildExpression(String expression) throws ParseException {
- expressionParsed = true;
-
- try {
-
- if (seconds == null) {
- seconds = new TreeSet();
- }
- if (minutes == null) {
- minutes = new TreeSet();
- }
- if (hours == null) {
- hours = new TreeSet();
- }
- if (daysOfMonth == null) {
- daysOfMonth = new TreeSet();
- }
- if (months == null) {
- months = new TreeSet();
- }
- if (daysOfWeek == null) {
- daysOfWeek = new TreeSet();
- }
- if (years == null) {
- years = new TreeSet();
- }
-
- int exprOn = SECOND;
-
- StringTokenizer exprsTok = new StringTokenizer(expression, " \t",
- false);
-
- while (exprsTok.hasMoreTokens() && exprOn <= YEAR) {
- String expr = exprsTok.nextToken().trim();
-
- // throw an exception if L is used with other days of the month
- if(exprOn == DAY_OF_MONTH && expr.indexOf('L') != -1 && expr.length() > 1 && expr.contains(",")) {
- throw new ParseException("Support for specifying 'L' and 'LW' with other days of the month is not implemented", -1);
- }
- // throw an exception if L is used with other days of the week
- if(exprOn == DAY_OF_WEEK && expr.indexOf('L') != -1 && expr.length() > 1 && expr.contains(",")) {
- throw new ParseException("Support for specifying 'L' with other days of the week is not implemented", -1);
- }
- if(exprOn == DAY_OF_WEEK && expr.indexOf('#') != -1 && expr.indexOf('#', expr.indexOf('#') +1) != -1) {
- throw new ParseException("Support for specifying multiple \"nth\" days is not implemented.", -1);
- }
-
- StringTokenizer vTok = new StringTokenizer(expr, ",");
- while (vTok.hasMoreTokens()) {
- String v = vTok.nextToken();
- storeExpressionVals(0, v, exprOn);
- }
-
- exprOn++;
- }
-
- if (exprOn <= DAY_OF_WEEK) {
- throw new ParseException("Unexpected end of expression.",
- expression.length());
- }
-
- if (exprOn <= YEAR) {
- storeExpressionVals(0, "*", YEAR);
- }
-
- TreeSet dow = getSet(DAY_OF_WEEK);
- TreeSet dom = getSet(DAY_OF_MONTH);
-
- // Copying the logic from the UnsupportedOperationException below
- boolean dayOfMSpec = !dom.contains(NO_SPEC);
- boolean dayOfWSpec = !dow.contains(NO_SPEC);
-
- if (!dayOfMSpec || dayOfWSpec) {
- if (!dayOfWSpec || dayOfMSpec) {
- throw new ParseException(
- "Support for specifying both a day-of-week AND a day-of-month parameter is not implemented.", 0);
- }
- }
- } catch (ParseException pe) {
- throw pe;
- } catch (Exception e) {
- throw new ParseException("Illegal cron expression format ("
- + e.toString() + ")", 0);
- }
- }
-
- protected int storeExpressionVals(int pos, String s, int type)
- throws ParseException {
-
- int incr = 0;
- int i = skipWhiteSpace(pos, s);
- if (i >= s.length()) {
- return i;
- }
- char c = s.charAt(i);
- if ((c >= 'A') && (c <= 'Z') && (!s.equals("L")) && (!s.equals("LW")) && (!s.matches("^L-[0-9]*[W]?"))) {
- String sub = s.substring(i, i + 3);
- int sval = -1;
- int eval = -1;
- if (type == MONTH) {
- sval = getMonthNumber(sub) + 1;
- if (sval <= 0) {
- throw new ParseException("Invalid Month value: '" + sub + "'", i);
- }
- if (s.length() > i + 3) {
- c = s.charAt(i + 3);
- if (c == '-') {
- i += 4;
- sub = s.substring(i, i + 3);
- eval = getMonthNumber(sub) + 1;
- if (eval <= 0) {
- throw new ParseException("Invalid Month value: '" + sub + "'", i);
- }
- }
- }
- } else if (type == DAY_OF_WEEK) {
- sval = getDayOfWeekNumber(sub);
- if (sval < 0) {
- throw new ParseException("Invalid Day-of-Week value: '"
- + sub + "'", i);
- }
- if (s.length() > i + 3) {
- c = s.charAt(i + 3);
- if (c == '-') {
- i += 4;
- sub = s.substring(i, i + 3);
- eval = getDayOfWeekNumber(sub);
- if (eval < 0) {
- throw new ParseException(
- "Invalid Day-of-Week value: '" + sub
- + "'", i);
- }
- } else if (c == '#') {
- try {
- i += 4;
- nthdayOfWeek = Integer.parseInt(s.substring(i));
- if (nthdayOfWeek < 1 || nthdayOfWeek > 5) {
- throw new Exception();
- }
- } catch (Exception e) {
- throw new ParseException(
- "A numeric value between 1 and 5 must follow the '#' option",
- i);
- }
- } else if (c == 'L') {
- lastdayOfWeek = true;
- i++;
- }
- }
-
- } else {
- throw new ParseException(
- "Illegal characters for this position: '" + sub + "'",
- i);
- }
- if (eval != -1) {
- incr = 1;
- }
- addToSet(sval, eval, incr, type);
- return (i + 3);
- }
-
- if (c == '?') {
- i++;
- if ((i + 1) < s.length()
- && (s.charAt(i) != ' ' && s.charAt(i + 1) != '\t')) {
- throw new ParseException("Illegal character after '?': "
- + s.charAt(i), i);
- }
- if (type != DAY_OF_WEEK && type != DAY_OF_MONTH) {
- throw new ParseException(
- "'?' can only be specified for Day-of-Month or Day-of-Week.",
- i);
- }
- if (type == DAY_OF_WEEK && !lastdayOfMonth) {
- int val = daysOfMonth.last();
- if (val == NO_SPEC_INT) {
- throw new ParseException(
- "'?' can only be specified for Day-of-Month -OR- Day-of-Week.",
- i);
- }
- }
-
- addToSet(NO_SPEC_INT, -1, 0, type);
- return i;
- }
-
- if (c == '*' || c == '/') {
- if (c == '*' && (i + 1) >= s.length()) {
- addToSet(ALL_SPEC_INT, -1, incr, type);
- return i + 1;
- } else if (c == '/'
- && ((i + 1) >= s.length() || s.charAt(i + 1) == ' ' || s
- .charAt(i + 1) == '\t')) {
- throw new ParseException("'/' must be followed by an integer.", i);
- } else if (c == '*') {
- i++;
- }
- c = s.charAt(i);
- if (c == '/') { // is an increment specified?
- i++;
- if (i >= s.length()) {
- throw new ParseException("Unexpected end of string.", i);
- }
-
- incr = getNumericValue(s, i);
-
- i++;
- if (incr > 10) {
- i++;
- }
- checkIncrementRange(incr, type, i);
- } else {
- incr = 1;
- }
-
- addToSet(ALL_SPEC_INT, -1, incr, type);
- return i;
- } else if (c == 'L') {
- i++;
- if (type == DAY_OF_MONTH) {
- lastdayOfMonth = true;
- }
- if (type == DAY_OF_WEEK) {
- addToSet(7, 7, 0, type);
- }
- if(type == DAY_OF_MONTH && s.length() > i) {
- c = s.charAt(i);
- if(c == '-') {
- ValueSet vs = getValue(0, s, i+1);
- lastdayOffset = vs.value;
- if(lastdayOffset > 30)
- throw new ParseException("Offset from last day must be <= 30", i+1);
- i = vs.pos;
- }
- if(s.length() > i) {
- c = s.charAt(i);
- if(c == 'W') {
- nearestWeekday = true;
- i++;
- }
- }
- }
- return i;
- } else if (c >= '0' && c <= '9') {
- int val = Integer.parseInt(String.valueOf(c));
- i++;
- if (i >= s.length()) {
- addToSet(val, -1, -1, type);
- } else {
- c = s.charAt(i);
- if (c >= '0' && c <= '9') {
- ValueSet vs = getValue(val, s, i);
- val = vs.value;
- i = vs.pos;
- }
- i = checkNext(i, s, val, type);
- return i;
- }
- } else {
- throw new ParseException("Unexpected character: " + c, i);
- }
-
- return i;
- }
-
- private void checkIncrementRange(int incr, int type, int idxPos) throws ParseException {
- if (incr > 59 && (type == SECOND || type == MINUTE)) {
- throw new ParseException("Increment > 60 : " + incr, idxPos);
- } else if (incr > 23 && (type == HOUR)) {
- throw new ParseException("Increment > 24 : " + incr, idxPos);
- } else if (incr > 31 && (type == DAY_OF_MONTH)) {
- throw new ParseException("Increment > 31 : " + incr, idxPos);
- } else if (incr > 7 && (type == DAY_OF_WEEK)) {
- throw new ParseException("Increment > 7 : " + incr, idxPos);
- } else if (incr > 12 && (type == MONTH)) {
- throw new ParseException("Increment > 12 : " + incr, idxPos);
- }
- }
-
- protected int checkNext(int pos, String s, int val, int type)
- throws ParseException {
-
- int end = -1;
- int i = pos;
-
- if (i >= s.length()) {
- addToSet(val, end, -1, type);
- return i;
- }
-
- char c = s.charAt(pos);
-
- if (c == 'L') {
- if (type == DAY_OF_WEEK) {
- if(val < 1 || val > 7)
- throw new ParseException("Day-of-Week values must be between 1 and 7", -1);
- lastdayOfWeek = true;
- } else {
- throw new ParseException("'L' option is not valid here. (pos=" + i + ")", i);
- }
- TreeSet set = getSet(type);
- set.add(val);
- i++;
- return i;
- }
-
- if (c == 'W') {
- if (type == DAY_OF_MONTH) {
- nearestWeekday = true;
- } else {
- throw new ParseException("'W' option is not valid here. (pos=" + i + ")", i);
- }
- if(val > 31)
- throw new ParseException("The 'W' option does not make sense with values larger than 31 (max number of days in a month)", i);
- TreeSet set = getSet(type);
- set.add(val);
- i++;
- return i;
- }
-
- if (c == '#') {
- if (type != DAY_OF_WEEK) {
- throw new ParseException("'#' option is not valid here. (pos=" + i + ")", i);
- }
- i++;
- try {
- nthdayOfWeek = Integer.parseInt(s.substring(i));
- if (nthdayOfWeek < 1 || nthdayOfWeek > 5) {
- throw new Exception();
- }
- } catch (Exception e) {
- throw new ParseException(
- "A numeric value between 1 and 5 must follow the '#' option",
- i);
- }
-
- TreeSet set = getSet(type);
- set.add(val);
- i++;
- return i;
- }
-
- if (c == '-') {
- i++;
- c = s.charAt(i);
- int v = Integer.parseInt(String.valueOf(c));
- end = v;
- i++;
- if (i >= s.length()) {
- addToSet(val, end, 1, type);
- return i;
- }
- c = s.charAt(i);
- if (c >= '0' && c <= '9') {
- ValueSet vs = getValue(v, s, i);
- end = vs.value;
- i = vs.pos;
- }
- if (i < s.length() && ((c = s.charAt(i)) == '/')) {
- i++;
- c = s.charAt(i);
- int v2 = Integer.parseInt(String.valueOf(c));
- i++;
- if (i >= s.length()) {
- addToSet(val, end, v2, type);
- return i;
- }
- c = s.charAt(i);
- if (c >= '0' && c <= '9') {
- ValueSet vs = getValue(v2, s, i);
- int v3 = vs.value;
- addToSet(val, end, v3, type);
- i = vs.pos;
- return i;
- } else {
- addToSet(val, end, v2, type);
- return i;
- }
- } else {
- addToSet(val, end, 1, type);
- return i;
- }
- }
-
- if (c == '/') {
- if ((i + 1) >= s.length() || s.charAt(i + 1) == ' ' || s.charAt(i + 1) == '\t') {
- throw new ParseException("'/' must be followed by an integer.", i);
- }
-
- i++;
- c = s.charAt(i);
- int v2 = Integer.parseInt(String.valueOf(c));
- i++;
- if (i >= s.length()) {
- checkIncrementRange(v2, type, i);
- addToSet(val, end, v2, type);
- return i;
- }
- c = s.charAt(i);
- if (c >= '0' && c <= '9') {
- ValueSet vs = getValue(v2, s, i);
- int v3 = vs.value;
- checkIncrementRange(v3, type, i);
- addToSet(val, end, v3, type);
- i = vs.pos;
- return i;
- } else {
- throw new ParseException("Unexpected character '" + c + "' after '/'", i);
- }
- }
-
- addToSet(val, end, 0, type);
- i++;
- return i;
- }
-
- public String getCronExpression() {
- return cronExpression;
- }
-
- public String getExpressionSummary() {
- StringBuilder buf = new StringBuilder();
-
- buf.append("seconds: ");
- buf.append(getExpressionSetSummary(seconds));
- buf.append("\n");
- buf.append("minutes: ");
- buf.append(getExpressionSetSummary(minutes));
- buf.append("\n");
- buf.append("hours: ");
- buf.append(getExpressionSetSummary(hours));
- buf.append("\n");
- buf.append("daysOfMonth: ");
- buf.append(getExpressionSetSummary(daysOfMonth));
- buf.append("\n");
- buf.append("months: ");
- buf.append(getExpressionSetSummary(months));
- buf.append("\n");
- buf.append("daysOfWeek: ");
- buf.append(getExpressionSetSummary(daysOfWeek));
- buf.append("\n");
- buf.append("lastdayOfWeek: ");
- buf.append(lastdayOfWeek);
- buf.append("\n");
- buf.append("nearestWeekday: ");
- buf.append(nearestWeekday);
- buf.append("\n");
- buf.append("NthDayOfWeek: ");
- buf.append(nthdayOfWeek);
- buf.append("\n");
- buf.append("lastdayOfMonth: ");
- buf.append(lastdayOfMonth);
- buf.append("\n");
- buf.append("years: ");
- buf.append(getExpressionSetSummary(years));
- buf.append("\n");
-
- return buf.toString();
- }
-
- protected String getExpressionSetSummary(java.util.Set set) {
-
- if (set.contains(NO_SPEC)) {
- return "?";
- }
- if (set.contains(ALL_SPEC)) {
- return "*";
- }
-
- StringBuilder buf = new StringBuilder();
-
- Iterator itr = set.iterator();
- boolean first = true;
- while (itr.hasNext()) {
- Integer iVal = itr.next();
- String val = iVal.toString();
- if (!first) {
- buf.append(",");
- }
- buf.append(val);
- first = false;
- }
-
- return buf.toString();
- }
-
- protected String getExpressionSetSummary(java.util.ArrayList list) {
-
- if (list.contains(NO_SPEC)) {
- return "?";
- }
- if (list.contains(ALL_SPEC)) {
- return "*";
- }
-
- StringBuilder buf = new StringBuilder();
-
- Iterator itr = list.iterator();
- boolean first = true;
- while (itr.hasNext()) {
- Integer iVal = itr.next();
- String val = iVal.toString();
- if (!first) {
- buf.append(",");
- }
- buf.append(val);
- first = false;
- }
-
- return buf.toString();
- }
-
- protected int skipWhiteSpace(int i, String s) {
- for (; i < s.length() && (s.charAt(i) == ' ' || s.charAt(i) == '\t'); i++) {
- }
-
- return i;
- }
-
- protected int findNextWhiteSpace(int i, String s) {
- for (; i < s.length() && (s.charAt(i) != ' ' || s.charAt(i) != '\t'); i++) {
- }
-
- return i;
- }
-
- protected void addToSet(int val, int end, int incr, int type)
- throws ParseException {
-
- TreeSet set = getSet(type);
-
- if (type == SECOND || type == MINUTE) {
- if ((val < 0 || val > 59 || end > 59) && (val != ALL_SPEC_INT)) {
- throw new ParseException(
- "Minute and Second values must be between 0 and 59",
- -1);
- }
- } else if (type == HOUR) {
- if ((val < 0 || val > 23 || end > 23) && (val != ALL_SPEC_INT)) {
- throw new ParseException(
- "Hour values must be between 0 and 23", -1);
- }
- } else if (type == DAY_OF_MONTH) {
- if ((val < 1 || val > 31 || end > 31) && (val != ALL_SPEC_INT)
- && (val != NO_SPEC_INT)) {
- throw new ParseException(
- "Day of month values must be between 1 and 31", -1);
- }
- } else if (type == MONTH) {
- if ((val < 1 || val > 12 || end > 12) && (val != ALL_SPEC_INT)) {
- throw new ParseException(
- "Month values must be between 1 and 12", -1);
- }
- } else if (type == DAY_OF_WEEK) {
- if ((val == 0 || val > 7 || end > 7) && (val != ALL_SPEC_INT)
- && (val != NO_SPEC_INT)) {
- throw new ParseException(
- "Day-of-Week values must be between 1 and 7", -1);
- }
- }
-
- if ((incr == 0 || incr == -1) && val != ALL_SPEC_INT) {
- if (val != -1) {
- set.add(val);
- } else {
- set.add(NO_SPEC);
- }
-
- return;
- }
-
- int startAt = val;
- int stopAt = end;
-
- if (val == ALL_SPEC_INT && incr <= 0) {
- incr = 1;
- set.add(ALL_SPEC); // put in a marker, but also fill values
- }
-
- if (type == SECOND || type == MINUTE) {
- if (stopAt == -1) {
- stopAt = 59;
- }
- if (startAt == -1 || startAt == ALL_SPEC_INT) {
- startAt = 0;
- }
- } else if (type == HOUR) {
- if (stopAt == -1) {
- stopAt = 23;
- }
- if (startAt == -1 || startAt == ALL_SPEC_INT) {
- startAt = 0;
- }
- } else if (type == DAY_OF_MONTH) {
- if (stopAt == -1) {
- stopAt = 31;
- }
- if (startAt == -1 || startAt == ALL_SPEC_INT) {
- startAt = 1;
- }
- } else if (type == MONTH) {
- if (stopAt == -1) {
- stopAt = 12;
- }
- if (startAt == -1 || startAt == ALL_SPEC_INT) {
- startAt = 1;
- }
- } else if (type == DAY_OF_WEEK) {
- if (stopAt == -1) {
- stopAt = 7;
- }
- if (startAt == -1 || startAt == ALL_SPEC_INT) {
- startAt = 1;
- }
- } else if (type == YEAR) {
- if (stopAt == -1) {
- stopAt = MAX_YEAR;
- }
- if (startAt == -1 || startAt == ALL_SPEC_INT) {
- startAt = 1970;
- }
- }
-
- // if the end of the range is before the start, then we need to overflow into
- // the next day, month etc. This is done by adding the maximum amount for that
- // type, and using modulus max to determine the value being added.
- int max = -1;
- if (stopAt < startAt) {
- switch (type) {
- case SECOND : max = 60; break;
- case MINUTE : max = 60; break;
- case HOUR : max = 24; break;
- case MONTH : max = 12; break;
- case DAY_OF_WEEK : max = 7; break;
- case DAY_OF_MONTH : max = 31; break;
- case YEAR : throw new IllegalArgumentException("Start year must be less than stop year");
- default : throw new IllegalArgumentException("Unexpected type encountered");
- }
- stopAt += max;
- }
-
- for (int i = startAt; i <= stopAt; i += incr) {
- if (max == -1) {
- // ie: there's no max to overflow over
- set.add(i);
- } else {
- // take the modulus to get the real value
- int i2 = i % max;
-
- // 1-indexed ranges should not include 0, and should include their max
- if (i2 == 0 && (type == MONTH || type == DAY_OF_WEEK || type == DAY_OF_MONTH) ) {
- i2 = max;
- }
-
- set.add(i2);
- }
- }
- }
-
- TreeSet getSet(int type) {
- switch (type) {
- case SECOND:
- return seconds;
- case MINUTE:
- return minutes;
- case HOUR:
- return hours;
- case DAY_OF_MONTH:
- return daysOfMonth;
- case MONTH:
- return months;
- case DAY_OF_WEEK:
- return daysOfWeek;
- case YEAR:
- return years;
- default:
- return null;
- }
- }
-
- protected ValueSet getValue(int v, String s, int i) {
- char c = s.charAt(i);
- StringBuilder s1 = new StringBuilder(String.valueOf(v));
- while (c >= '0' && c <= '9') {
- s1.append(c);
- i++;
- if (i >= s.length()) {
- break;
- }
- c = s.charAt(i);
- }
- ValueSet val = new ValueSet();
-
- val.pos = (i < s.length()) ? i : i + 1;
- val.value = Integer.parseInt(s1.toString());
- return val;
- }
-
- protected int getNumericValue(String s, int i) {
- int endOfVal = findNextWhiteSpace(i, s);
- String val = s.substring(i, endOfVal);
- return Integer.parseInt(val);
- }
-
- protected int getMonthNumber(String s) {
- Integer integer = monthMap.get(s);
-
- if (integer == null) {
- return -1;
- }
-
- return integer;
- }
-
- protected int getDayOfWeekNumber(String s) {
- Integer integer = dayMap.get(s);
-
- if (integer == null) {
- return -1;
- }
-
- return integer;
- }
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // Computation Functions
- //
- ////////////////////////////////////////////////////////////////////////////
-
- public Date getTimeAfter(Date afterTime) {
-
- // Computation is based on Gregorian year only.
- Calendar cl = new java.util.GregorianCalendar(getTimeZone());
-
- // move ahead one second, since we're computing the time *after* the
- // given time
- afterTime = new Date(afterTime.getTime() + 1000);
- // CronTrigger does not deal with milliseconds
- cl.setTime(afterTime);
- cl.set(Calendar.MILLISECOND, 0);
-
- boolean gotOne = false;
- // loop until we've computed the next time, or we've past the endTime
- while (!gotOne) {
-
- //if (endTime != null && cl.getTime().after(endTime)) return null;
- if(cl.get(Calendar.YEAR) > 2999) { // prevent endless loop...
- return null;
- }
-
- SortedSet st = null;
- int t = 0;
-
- int sec = cl.get(Calendar.SECOND);
- int min = cl.get(Calendar.MINUTE);
-
- // get second.................................................
- st = seconds.tailSet(sec);
- if (st != null && st.size() != 0) {
- sec = st.first();
- } else {
- sec = seconds.first();
- min++;
- cl.set(Calendar.MINUTE, min);
- }
- cl.set(Calendar.SECOND, sec);
-
- min = cl.get(Calendar.MINUTE);
- int hr = cl.get(Calendar.HOUR_OF_DAY);
- t = -1;
-
- // get minute.................................................
- st = minutes.tailSet(min);
- if (st != null && st.size() != 0) {
- t = min;
- min = st.first();
- } else {
- min = minutes.first();
- hr++;
- }
- if (min != t) {
- cl.set(Calendar.SECOND, 0);
- cl.set(Calendar.MINUTE, min);
- setCalendarHour(cl, hr);
- continue;
- }
- cl.set(Calendar.MINUTE, min);
-
- hr = cl.get(Calendar.HOUR_OF_DAY);
- int day = cl.get(Calendar.DAY_OF_MONTH);
- t = -1;
-
- // get hour...................................................
- st = hours.tailSet(hr);
- if (st != null && st.size() != 0) {
- t = hr;
- hr = st.first();
- } else {
- hr = hours.first();
- day++;
- }
- if (hr != t) {
- cl.set(Calendar.SECOND, 0);
- cl.set(Calendar.MINUTE, 0);
- cl.set(Calendar.DAY_OF_MONTH, day);
- setCalendarHour(cl, hr);
- continue;
- }
- cl.set(Calendar.HOUR_OF_DAY, hr);
-
- day = cl.get(Calendar.DAY_OF_MONTH);
- int mon = cl.get(Calendar.MONTH) + 1;
- // '+ 1' because calendar is 0-based for this field, and we are
- // 1-based
- t = -1;
- int tmon = mon;
-
- // get day...................................................
- boolean dayOfMSpec = !daysOfMonth.contains(NO_SPEC);
- boolean dayOfWSpec = !daysOfWeek.contains(NO_SPEC);
- if (dayOfMSpec && !dayOfWSpec) { // get day by day of month rule
- st = daysOfMonth.tailSet(day);
- if (lastdayOfMonth) {
- if(!nearestWeekday) {
- t = day;
- day = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
- day -= lastdayOffset;
- if(t > day) {
- mon++;
- if(mon > 12) {
- mon = 1;
- tmon = 3333; // ensure test of mon != tmon further below fails
- cl.add(Calendar.YEAR, 1);
- }
- day = 1;
- }
- } else {
- t = day;
- day = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
- day -= lastdayOffset;
-
- Calendar tcal = Calendar.getInstance(getTimeZone());
- tcal.set(Calendar.SECOND, 0);
- tcal.set(Calendar.MINUTE, 0);
- tcal.set(Calendar.HOUR_OF_DAY, 0);
- tcal.set(Calendar.DAY_OF_MONTH, day);
- tcal.set(Calendar.MONTH, mon - 1);
- tcal.set(Calendar.YEAR, cl.get(Calendar.YEAR));
-
- int ldom = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
- int dow = tcal.get(Calendar.DAY_OF_WEEK);
-
- if(dow == Calendar.SATURDAY && day == 1) {
- day += 2;
- } else if(dow == Calendar.SATURDAY) {
- day -= 1;
- } else if(dow == Calendar.SUNDAY && day == ldom) {
- day -= 2;
- } else if(dow == Calendar.SUNDAY) {
- day += 1;
- }
-
- tcal.set(Calendar.SECOND, sec);
- tcal.set(Calendar.MINUTE, min);
- tcal.set(Calendar.HOUR_OF_DAY, hr);
- tcal.set(Calendar.DAY_OF_MONTH, day);
- tcal.set(Calendar.MONTH, mon - 1);
- Date nTime = tcal.getTime();
- if(nTime.before(afterTime)) {
- day = 1;
- mon++;
- }
- }
- } else if(nearestWeekday) {
- t = day;
- day = daysOfMonth.first();
-
- Calendar tcal = Calendar.getInstance(getTimeZone());
- tcal.set(Calendar.SECOND, 0);
- tcal.set(Calendar.MINUTE, 0);
- tcal.set(Calendar.HOUR_OF_DAY, 0);
- tcal.set(Calendar.DAY_OF_MONTH, day);
- tcal.set(Calendar.MONTH, mon - 1);
- tcal.set(Calendar.YEAR, cl.get(Calendar.YEAR));
-
- int ldom = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
- int dow = tcal.get(Calendar.DAY_OF_WEEK);
-
- if(dow == Calendar.SATURDAY && day == 1) {
- day += 2;
- } else if(dow == Calendar.SATURDAY) {
- day -= 1;
- } else if(dow == Calendar.SUNDAY && day == ldom) {
- day -= 2;
- } else if(dow == Calendar.SUNDAY) {
- day += 1;
- }
-
-
- tcal.set(Calendar.SECOND, sec);
- tcal.set(Calendar.MINUTE, min);
- tcal.set(Calendar.HOUR_OF_DAY, hr);
- tcal.set(Calendar.DAY_OF_MONTH, day);
- tcal.set(Calendar.MONTH, mon - 1);
- Date nTime = tcal.getTime();
- if(nTime.before(afterTime)) {
- day = daysOfMonth.first();
- mon++;
- }
- } else if (st != null && st.size() != 0) {
- t = day;
- day = st.first();
- // make sure we don't over-run a short month, such as february
- int lastDay = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
- if (day > lastDay) {
- day = daysOfMonth.first();
- mon++;
- }
- } else {
- day = daysOfMonth.first();
- mon++;
- }
-
- if (day != t || mon != tmon) {
- cl.set(Calendar.SECOND, 0);
- cl.set(Calendar.MINUTE, 0);
- cl.set(Calendar.HOUR_OF_DAY, 0);
- cl.set(Calendar.DAY_OF_MONTH, day);
- cl.set(Calendar.MONTH, mon - 1);
- // '- 1' because calendar is 0-based for this field, and we
- // are 1-based
- continue;
- }
- } else if (dayOfWSpec && !dayOfMSpec) { // get day by day of week rule
- if (lastdayOfWeek) { // are we looking for the last XXX day of
- // the month?
- int dow = daysOfWeek.first(); // desired
- // d-o-w
- int cDow = cl.get(Calendar.DAY_OF_WEEK); // current d-o-w
- int daysToAdd = 0;
- if (cDow < dow) {
- daysToAdd = dow - cDow;
- }
- if (cDow > dow) {
- daysToAdd = dow + (7 - cDow);
- }
-
- int lDay = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
-
- if (day + daysToAdd > lDay) { // did we already miss the
- // last one?
- cl.set(Calendar.SECOND, 0);
- cl.set(Calendar.MINUTE, 0);
- cl.set(Calendar.HOUR_OF_DAY, 0);
- cl.set(Calendar.DAY_OF_MONTH, 1);
- cl.set(Calendar.MONTH, mon);
- // no '- 1' here because we are promoting the month
- continue;
- }
-
- // find date of last occurrence of this day in this month...
- while ((day + daysToAdd + 7) <= lDay) {
- daysToAdd += 7;
- }
-
- day += daysToAdd;
-
- if (daysToAdd > 0) {
- cl.set(Calendar.SECOND, 0);
- cl.set(Calendar.MINUTE, 0);
- cl.set(Calendar.HOUR_OF_DAY, 0);
- cl.set(Calendar.DAY_OF_MONTH, day);
- cl.set(Calendar.MONTH, mon - 1);
- // '- 1' here because we are not promoting the month
- continue;
- }
-
- } else if (nthdayOfWeek != 0) {
- // are we looking for the Nth XXX day in the month?
- int dow = daysOfWeek.first(); // desired
- // d-o-w
- int cDow = cl.get(Calendar.DAY_OF_WEEK); // current d-o-w
- int daysToAdd = 0;
- if (cDow < dow) {
- daysToAdd = dow - cDow;
- } else if (cDow > dow) {
- daysToAdd = dow + (7 - cDow);
- }
-
- boolean dayShifted = false;
- if (daysToAdd > 0) {
- dayShifted = true;
- }
-
- day += daysToAdd;
- int weekOfMonth = day / 7;
- if (day % 7 > 0) {
- weekOfMonth++;
- }
-
- daysToAdd = (nthdayOfWeek - weekOfMonth) * 7;
- day += daysToAdd;
- if (daysToAdd < 0
- || day > getLastDayOfMonth(mon, cl
- .get(Calendar.YEAR))) {
- cl.set(Calendar.SECOND, 0);
- cl.set(Calendar.MINUTE, 0);
- cl.set(Calendar.HOUR_OF_DAY, 0);
- cl.set(Calendar.DAY_OF_MONTH, 1);
- cl.set(Calendar.MONTH, mon);
- // no '- 1' here because we are promoting the month
- continue;
- } else if (daysToAdd > 0 || dayShifted) {
- cl.set(Calendar.SECOND, 0);
- cl.set(Calendar.MINUTE, 0);
- cl.set(Calendar.HOUR_OF_DAY, 0);
- cl.set(Calendar.DAY_OF_MONTH, day);
- cl.set(Calendar.MONTH, mon - 1);
- // '- 1' here because we are NOT promoting the month
- continue;
- }
- } else {
- int cDow = cl.get(Calendar.DAY_OF_WEEK); // current d-o-w
- int dow = daysOfWeek.first(); // desired
- // d-o-w
- st = daysOfWeek.tailSet(cDow);
- if (st != null && st.size() > 0) {
- dow = st.first();
- }
-
- int daysToAdd = 0;
- if (cDow < dow) {
- daysToAdd = dow - cDow;
- }
- if (cDow > dow) {
- daysToAdd = dow + (7 - cDow);
- }
-
- int lDay = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
-
- if (day + daysToAdd > lDay) { // will we pass the end of
- // the month?
- cl.set(Calendar.SECOND, 0);
- cl.set(Calendar.MINUTE, 0);
- cl.set(Calendar.HOUR_OF_DAY, 0);
- cl.set(Calendar.DAY_OF_MONTH, 1);
- cl.set(Calendar.MONTH, mon);
- // no '- 1' here because we are promoting the month
- continue;
- } else if (daysToAdd > 0) { // are we swithing days?
- cl.set(Calendar.SECOND, 0);
- cl.set(Calendar.MINUTE, 0);
- cl.set(Calendar.HOUR_OF_DAY, 0);
- cl.set(Calendar.DAY_OF_MONTH, day + daysToAdd);
- cl.set(Calendar.MONTH, mon - 1);
- // '- 1' because calendar is 0-based for this field,
- // and we are 1-based
- continue;
- }
- }
- } else { // dayOfWSpec && !dayOfMSpec
- throw new UnsupportedOperationException(
- "Support for specifying both a day-of-week AND a day-of-month parameter is not implemented.");
- }
- cl.set(Calendar.DAY_OF_MONTH, day);
-
- mon = cl.get(Calendar.MONTH) + 1;
- // '+ 1' because calendar is 0-based for this field, and we are
- // 1-based
- int year = cl.get(Calendar.YEAR);
- t = -1;
-
- // test for expressions that never generate a valid fire date,
- // but keep looping...
- if (year > MAX_YEAR) {
- return null;
- }
-
- // get month...................................................
- st = months.tailSet(mon);
- if (st != null && st.size() != 0) {
- t = mon;
- mon = st.first();
- } else {
- mon = months.first();
- year++;
- }
- if (mon != t) {
- cl.set(Calendar.SECOND, 0);
- cl.set(Calendar.MINUTE, 0);
- cl.set(Calendar.HOUR_OF_DAY, 0);
- cl.set(Calendar.DAY_OF_MONTH, 1);
- cl.set(Calendar.MONTH, mon - 1);
- // '- 1' because calendar is 0-based for this field, and we are
- // 1-based
- cl.set(Calendar.YEAR, year);
- continue;
- }
- cl.set(Calendar.MONTH, mon - 1);
- // '- 1' because calendar is 0-based for this field, and we are
- // 1-based
-
- year = cl.get(Calendar.YEAR);
- t = -1;
-
- // get year...................................................
- st = years.tailSet(year);
- if (st != null && st.size() != 0) {
- t = year;
- year = st.first();
- } else {
- return null; // ran out of years...
- }
-
- if (year != t) {
- cl.set(Calendar.SECOND, 0);
- cl.set(Calendar.MINUTE, 0);
- cl.set(Calendar.HOUR_OF_DAY, 0);
- cl.set(Calendar.DAY_OF_MONTH, 1);
- cl.set(Calendar.MONTH, 0);
- // '- 1' because calendar is 0-based for this field, and we are
- // 1-based
- cl.set(Calendar.YEAR, year);
- continue;
- }
- cl.set(Calendar.YEAR, year);
-
- gotOne = true;
- } // while( !done )
-
- return cl.getTime();
- }
-
- /**
- * Advance the calendar to the particular hour paying particular attention
- * to daylight saving problems.
- *
- * @param cal the calendar to operate on
- * @param hour the hour to set
- */
- protected void setCalendarHour(Calendar cal, int hour) {
- cal.set(Calendar.HOUR_OF_DAY, hour);
- if (cal.get(Calendar.HOUR_OF_DAY) != hour && hour != 24) {
- cal.set(Calendar.HOUR_OF_DAY, hour + 1);
- }
- }
-
- /**
- * NOT YET IMPLEMENTED: Returns the time before the given time
- * that the CronExpression matches.
- */
- public Date getTimeBefore(Date endTime) {
- // FUTURE_TODO: implement QUARTZ-423
- return null;
- }
-
- /**
- * NOT YET IMPLEMENTED: Returns the final time that the
- * CronExpression will match.
- */
- public Date getFinalFireTime() {
- // FUTURE_TODO: implement QUARTZ-423
- return null;
- }
-
- protected boolean isLeapYear(int year) {
- return ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));
- }
-
- protected int getLastDayOfMonth(int monthNum, int year) {
-
- switch (monthNum) {
- case 1:
- return 31;
- case 2:
- return (isLeapYear(year)) ? 29 : 28;
- case 3:
- return 31;
- case 4:
- return 30;
- case 5:
- return 31;
- case 6:
- return 30;
- case 7:
- return 31;
- case 8:
- return 31;
- case 9:
- return 30;
- case 10:
- return 31;
- case 11:
- return 30;
- case 12:
- return 31;
- default:
- throw new IllegalArgumentException("Illegal month number: "
- + monthNum);
- }
- }
-
-
- private void readObject(java.io.ObjectInputStream stream)
- throws java.io.IOException, ClassNotFoundException {
-
- stream.defaultReadObject();
- try {
- buildExpression(cronExpression);
- } catch (Exception ignore) {
- } // never happens
- }
-
- @Override
- @Deprecated
- public Object clone() {
- return new CronExpression(this);
- }
-}
-
-class ValueSet {
- public int value;
-
- public int pos;
-}
diff --git a/pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/exception/XxlJobException.java b/pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/exception/XxlJobException.java
deleted file mode 100644
index 28eeb28ca..000000000
--- a/pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/exception/XxlJobException.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.njcn.job.admin.core.exception;
-
-/**
- * @author xuxueli 2019-05-04 23:19:29
- */
-public class XxlJobException extends RuntimeException {
-
- public XxlJobException() {
- }
- public XxlJobException(String message) {
- super(message);
- }
-
-}
diff --git a/pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/old/RemoteHttpJobBean.java b/pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/old/RemoteHttpJobBean.java
deleted file mode 100644
index e5cba0312..000000000
--- a/pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/old/RemoteHttpJobBean.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.njcn.job.admin.core.old;//package com.xxl.job.admin.core.jobbean;
-//
-//import com.xxl.job.admin.core.thread.JobTriggerPoolHelper;
-//import com.xxl.job.admin.core.trigger.TriggerTypeEnum;
-//import org.quartz.JobExecutionContext;
-//import org.quartz.JobExecutionException;
-//import org.quartz.JobKey;
-//import org.slf4j.Logger;
-//import org.slf4j.LoggerFactory;
-//import org.springframework.scheduling.quartz.QuartzJobBean;
-//
-///**
-// * http job bean
-// * “@DisallowConcurrentExecution” disable concurrent, thread size can not be only one, better given more
-// * @author xuxueli 2015-12-17 18:20:34
-// */
-////@DisallowConcurrentExecution
-//public class RemoteHttpJobBean extends QuartzJobBean {
-// private static Logger logger = LoggerFactory.getLogger(RemoteHttpJobBean.class);
-//
-// @Override
-// protected void executeInternal(JobExecutionContext context)
-// throws JobExecutionException {
-//
-// // load jobId
-// JobKey jobKey = context.getTrigger().getJobKey();
-// Integer jobId = Integer.valueOf(jobKey.getName());
-//
-//
-// }
-//
-//}
\ No newline at end of file
diff --git a/pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/old/XxlJobDynamicScheduler.java b/pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/old/XxlJobDynamicScheduler.java
deleted file mode 100644
index 67ca519bf..000000000
--- a/pqs-job/job-admin/src/main/java/com/njcn/job/admin/core/old/XxlJobDynamicScheduler.java
+++ /dev/null
@@ -1,413 +0,0 @@
-package com.njcn.job.admin.core.old;//package com.xxl.job.admin.core.schedule;
-//
-//import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
-//import com.xxl.job.admin.core.jobbean.RemoteHttpJobBean;
-//import com.xxl.job.model.XxlJobInfo;
-//import com.xxl.job.admin.core.thread.JobFailMonitorHelper;
-//import com.xxl.job.admin.core.thread.JobRegistryMonitorHelper;
-//import com.xxl.job.admin.core.thread.JobTriggerPoolHelper;
-//import com.xxl.job.admin.core.util.I18nUtil;
-//import com.xxl.job.core.biz.AdminBiz;
-//import com.xxl.job.core.biz.ExecutorBiz;
-//import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
-//import com.xxl.rpc.remoting.invoker.XxlRpcInvokerFactory;
-//import com.xxl.rpc.remoting.invoker.call.CallType;
-//import com.xxl.rpc.remoting.invoker.reference.XxlRpcReferenceBean;
-//import com.xxl.rpc.remoting.invoker.route.LoadBalance;
-//import com.xxl.rpc.remoting.net.NetEnum;
-//import com.xxl.rpc.remoting.net.impl.servlet.server.ServletServerHandler;
-//import com.xxl.rpc.remoting.provider.XxlRpcProviderFactory;
-//import com.xxl.rpc.serialize.Serializer;
-//import org.quartz.*;
-//import org.quartz.Trigger.TriggerState;
-//import org.quartz.impl.triggers.CronTriggerImpl;
-//import org.slf4j.Logger;
-//import org.slf4j.LoggerFactory;
-//import org.springframework.util.Assert;
-//
-//import javax.servlet.ServletException;
-//import javax.servlet.http.HttpServletRequest;
-//import javax.servlet.http.HttpServletResponse;
-//import java.io.IOException;
-//import java.util.Date;
-//import java.util.concurrent.ConcurrentHashMap;
-//
-///**
-// * base quartz scheduler util
-// * @author xuxueli 2015-12-19 16:13:53
-// */
-//public final class XxlJobDynamicScheduler {
-// private static final Logger logger = LoggerFactory.getLogger(XxlJobDynamicScheduler_old.class);
-//
-// // ---------------------- param ----------------------
-//
-// // scheduler
-// private static Scheduler scheduler;
-// public void setScheduler(Scheduler scheduler) {
-// XxlJobDynamicScheduler_old.scheduler = scheduler;
-// }
-//
-//
-// // ---------------------- init + destroy ----------------------
-// public void start() throws Exception {
-// // valid
-// Assert.notNull(scheduler, "quartz scheduler is null");
-//
-// // init i18n
-// initI18n();
-//
-// // admin registry monitor run
-// JobRegistryMonitorHelper.getInstance().start();
-//
-// // admin monitor run
-// JobFailMonitorHelper.getInstance().start();
-//
-// // admin-server
-// initRpcProvider();
-//
-// logger.info(">>>>>>>>> init xxl-job admin success.");
-// }
-//
-//
-// public void destroy() throws Exception {
-// // admin trigger pool stop
-// JobTriggerPoolHelper.toStop();
-//
-// // admin registry stop
-// JobRegistryMonitorHelper.getInstance().toStop();
-//
-// // admin monitor stop
-// JobFailMonitorHelper.getInstance().toStop();
-//
-// // admin-server
-// stopRpcProvider();
-// }
-//
-//
-// // ---------------------- I18n ----------------------
-//
-// private void initI18n(){
-// for (ExecutorBlockStrategyEnum item:ExecutorBlockStrategyEnum.values()) {
-// item.setTitle(I18nUtil.getString("jobconf_block_".concat(item.name())));
-// }
-// }
-//
-//
-// // ---------------------- admin rpc provider (no server version) ----------------------
-// private static ServletServerHandler servletServerHandler;
-// private void initRpcProvider(){
-// // init
-// XxlRpcProviderFactory xxlRpcProviderFactory = new XxlRpcProviderFactory();
-// xxlRpcProviderFactory.initConfig(
-// NetEnum.NETTY_HTTP,
-// Serializer.SerializeEnum.HESSIAN.getSerializer(),
-// null,
-// 0,
-// XxlJobAdminConfig.getAdminConfig().getAccessToken(),
-// null,
-// null);
-//
-// // add services
-// xxlRpcProviderFactory.addService(AdminBiz.class.getName(), null, XxlJobAdminConfig.getAdminConfig().getAdminBiz());
-//
-// // servlet handler
-// servletServerHandler = new ServletServerHandler(xxlRpcProviderFactory);
-// }
-// private void stopRpcProvider() throws Exception {
-// XxlRpcInvokerFactory.getInstance().stop();
-// }
-// public static void invokeAdminService(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
-// servletServerHandler.handle(null, request, response);
-// }
-//
-//
-// // ---------------------- executor-client ----------------------
-// private static ConcurrentHashMap executorBizRepository = new ConcurrentHashMap();
-// public static ExecutorBiz getExecutorBiz(String address) throws Exception {
-// // valid
-// if (address==null || address.trim().length()==0) {
-// return null;
-// }
-//
-// // load-cache
-// address = address.trim();
-// ExecutorBiz executorBiz = executorBizRepository.get(address);
-// if (executorBiz != null) {
-// return executorBiz;
-// }
-//
-// // set-cache
-// executorBiz = (ExecutorBiz) new XxlRpcReferenceBean(
-// NetEnum.NETTY_HTTP,
-// Serializer.SerializeEnum.HESSIAN.getSerializer(),
-// CallType.SYNC,
-// LoadBalance.ROUND,
-// ExecutorBiz.class,
-// null,
-// 5000,
-// address,
-// XxlJobAdminConfig.getAdminConfig().getAccessToken(),
-// null,
-// null).getObject();
-//
-// executorBizRepository.put(address, executorBiz);
-// return executorBiz;
-// }
-//
-//
-// // ---------------------- schedule util ----------------------
-//
-// /**
-// * fill job info
-// *
-// * @param jobInfo
-// */
-// public static void fillJobInfo(XxlJobInfo jobInfo) {
-//
-// String name = String.valueOf(jobInfo.getId());
-//
-// // trigger key
-// TriggerKey triggerKey = TriggerKey.triggerKey(name);
-// try {
-//
-// // trigger cron
-// Trigger trigger = scheduler.getTrigger(triggerKey);
-// if (trigger!=null && trigger instanceof CronTriggerImpl) {
-// String cronExpression = ((CronTriggerImpl) trigger).getCronExpression();
-// jobInfo.setJobCron(cronExpression);
-// }
-//
-// // trigger state
-// TriggerState triggerState = scheduler.getTriggerState(triggerKey);
-// if (triggerState!=null) {
-// jobInfo.setJobStatus(triggerState.name());
-// }
-//
-// //JobKey jobKey = new JobKey(jobInfo.getJobName(), String.valueOf(jobInfo.getJobGroup()));
-// //JobDetail jobDetail = scheduler.getJobDetail(jobKey);
-// //String jobClass = jobDetail.getJobClass().getName();
-//
-// } catch (SchedulerException e) {
-// logger.error(e.getMessage(), e);
-// }
-// }
-//
-//
-// /**
-// * add trigger + job
-// *
-// * @param jobName
-// * @param cronExpression
-// * @return
-// * @throws SchedulerException
-// */
-// public static boolean addJob(String jobName, String cronExpression) throws SchedulerException {
-// // 1、job key
-// TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
-// JobKey jobKey = new JobKey(jobName);
-//
-// // 2、valid
-// if (scheduler.checkExists(triggerKey)) {
-// return true; // PASS
-// }
-//
-// // 3、corn trigger
-// CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression).withMisfireHandlingInstructionDoNothing(); // withMisfireHandlingInstructionDoNothing 忽略掉调度终止过程中忽略的调度
-// CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build();
-//
-// // 4、job detail
-// Class extends Job> jobClass_ = RemoteHttpJobBean.class; // Class.forName(jobInfo.getJobClass());
-// JobDetail jobDetail = JobBuilder.newJob(jobClass_).withIdentity(jobKey).build();
-//
-// /*if (jobInfo.getJobData()!=null) {
-// JobDataMap jobDataMap = jobDetail.getJobDataMap();
-// jobDataMap.putAll(JacksonUtil.readValue(jobInfo.getJobData(), Map.class));
-// // JobExecutionContext context.getMergedJobDataMap().get("mailGuid");
-// }*/
-//
-// // 5、schedule job
-// Date date = scheduler.scheduleJob(jobDetail, cronTrigger);
-//
-// logger.info(">>>>>>>>>>> addJob success(quartz), jobDetail:{}, cronTrigger:{}, date:{}", jobDetail, cronTrigger, date);
-// return true;
-// }
-//
-//
-// /**
-// * remove trigger + job
-// *
-// * @param jobName
-// * @return
-// * @throws SchedulerException
-// */
-// public static boolean removeJob(String jobName) throws SchedulerException {
-//
-// JobKey jobKey = new JobKey(jobName);
-// scheduler.deleteJob(jobKey);
-//
-// /*TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
-// if (scheduler.checkExists(triggerKey)) {
-// scheduler.unscheduleJob(triggerKey); // trigger + job
-// }*/
-//
-// logger.info(">>>>>>>>>>> removeJob success(quartz), jobKey:{}", jobKey);
-// return true;
-// }
-//
-//
-// /**
-// * updateJobCron
-// *
-// * @param jobName
-// * @param cronExpression
-// * @return
-// * @throws SchedulerException
-// */
-// public static boolean updateJobCron(String jobName, String cronExpression) throws SchedulerException {
-//
-// // 1、job key
-// TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
-//
-// // 2、valid
-// if (!scheduler.checkExists(triggerKey)) {
-// return true; // PASS
-// }
-//
-// CronTrigger oldTrigger = (CronTrigger) scheduler.getTrigger(triggerKey);
-//
-// // 3、avoid repeat cron
-// String oldCron = oldTrigger.getCronExpression();
-// if (oldCron.equals(cronExpression)){
-// return true; // PASS
-// }
-//
-// // 4、new cron trigger
-// CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression).withMisfireHandlingInstructionDoNothing();
-// oldTrigger = oldTrigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build();
-//
-// // 5、rescheduleJob
-// scheduler.rescheduleJob(triggerKey, oldTrigger);
-//
-// /*
-// JobKey jobKey = new JobKey(jobName);
-//
-// // old job detail
-// JobDetail jobDetail = scheduler.getJobDetail(jobKey);
-//
-// // new trigger
-// HashSet triggerSet = new HashSet();
-// triggerSet.add(cronTrigger);
-// // cover trigger of job detail
-// scheduler.scheduleJob(jobDetail, triggerSet, true);*/
-//
-// logger.info(">>>>>>>>>>> resumeJob success, JobName:{}", jobName);
-// return true;
-// }
-//
-//
-// /**
-// * pause
-// *
-// * @param jobName
-// * @return
-// * @throws SchedulerException
-// */
-// /*public static boolean pauseJob(String jobName) throws SchedulerException {
-//
-// TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
-//
-// boolean result = false;
-// if (scheduler.checkExists(triggerKey)) {
-// scheduler.pauseTrigger(triggerKey);
-// result = true;
-// }
-//
-// logger.info(">>>>>>>>>>> pauseJob {}, triggerKey:{}", (result?"success":"fail"),triggerKey);
-// return result;
-// }*/
-//
-//
-// /**
-// * resume
-// *
-// * @param jobName
-// * @return
-// * @throws SchedulerException
-// */
-// /*public static boolean resumeJob(String jobName) throws SchedulerException {
-//
-// TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
-//
-// boolean result = false;
-// if (scheduler.checkExists(triggerKey)) {
-// scheduler.resumeTrigger(triggerKey);
-// result = true;
-// }
-//
-// logger.info(">>>>>>>>>>> resumeJob {}, triggerKey:{}", (result?"success":"fail"), triggerKey);
-// return result;
-// }*/
-//
-//
-// /**
-// * run
-// *
-// * @param jobName
-// * @return
-// * @throws SchedulerException
-// */
-// /*public static boolean triggerJob(String jobName) throws SchedulerException {
-// // TriggerKey : name + group
-// JobKey jobKey = new JobKey(jobName);
-// TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
-//
-// boolean result = false;
-// if (scheduler.checkExists(triggerKey)) {
-// scheduler.triggerJob(jobKey);
-// result = true;
-// logger.info(">>>>>>>>>>> runJob success, jobKey:{}", jobKey);
-// } else {
-// logger.info(">>>>>>>>>>> runJob fail, jobKey:{}", jobKey);
-// }
-// return result;
-// }*/
-//
-//
-// /**
-// * finaAllJobList
-// *
-// * @return
-// *//*
-// @Deprecated
-// public static List