From 02dc2a4caa979772064c81101f5c3dd6c0aa03bb Mon Sep 17 00:00:00 2001
From: xuxueli <931591021@qq.com>
Date: Sun, 28 Oct 2018 01:21:14 +0800
Subject: [PATCH] =?UTF-8?q?=E8=BF=81=E7=A7=BB=20springboot?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 10 +-
xxl-job-admin/Dockerfile | 8 +-
xxl-job-admin/pom.xml | 120 ++----
.../xxl/job/admin/XxlJobAdminApplication.java | 16 +
.../admin/controller/JobGroupController.java | 3 +-
.../interceptor/CookieInterceptor.java | 2 +
.../interceptor/PermissionInterceptor.java | 31 +-
.../controller/interceptor/WebMvcConfig.java | 29 ++
.../resolver/WebExceptionResolver.java | 3 +
.../admin/core/conf/XxlJobAdminConfig.java | 49 +++
.../conf/XxlJobDynamicSchedulerConfig.java | 43 ++
.../core/schedule/XxlJobDynamicScheduler.java | 37 +-
.../core/thread/JobFailMonitorHelper.java | 13 +-
.../core/thread/JobRegistryMonitorHelper.java | 9 +-
.../job/admin/core/trigger/XxlJobTrigger.java | 9 +-
.../com/xxl/job/admin/dao/XxlJobGroupDao.java | 2 +
.../com/xxl/job/admin/dao/XxlJobInfoDao.java | 2 +
.../com/xxl/job/admin/dao/XxlJobLogDao.java | 2 +
.../xxl/job/admin/dao/XxlJobLogGlueDao.java | 2 +
.../xxl/job/admin/dao/XxlJobRegistryDao.java | 2 +
.../src/main/resources/application.properties | 45 ++
.../src/main/resources/freemarker.properties | 10 -
xxl-job-admin/src/main/resources/log4j.xml | 27 --
xxl-job-admin/src/main/resources/logback.xml | 29 ++
.../spring/applicationcontext-base.xml | 21 -
.../applicationcontext-xxl-job-admin.xml | 71 ----
.../resources/spring/springmvc-context.xml | 45 --
.../adminlte/bootstrap/css/bootstrap.css.map | 0
.../adminlte/bootstrap/css/bootstrap.min.css | 0
.../fonts/glyphicons-halflings-regular.eot | Bin
.../fonts/glyphicons-halflings-regular.svg | 0
.../fonts/glyphicons-halflings-regular.ttf | Bin
.../fonts/glyphicons-halflings-regular.woff | Bin
.../fonts/glyphicons-halflings-regular.woff2 | Bin
.../adminlte/bootstrap/js/bootstrap.min.js | 0
.../adminlte/dist/css/AdminLTE-local.min.css | 0
.../static/adminlte/dist/css/AdminLTE.min.css | 0
...PJhLKp0zdtTvoM40tgx99jmYGv_xzYuwd1rU.woff2 | Bin
...PJhLKp0zdtTvoM7YHq4FgHI02B8rPccK0FJQ.woff2 | Bin
...PJhLKp0zdtTvoMxgy2Fsj5sj3EzlXpqVXRKo.woff2 | Bin
...HBYDBqgeIAH2zlC2Q8seG17bfDXYR_jUsrzg.woff2 | Bin
...HBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY.woff2 | Bin
...DBqgeIAH2zlNOAHFN6BivSraYkjhveRHY[0].woff2 | Bin
...HBYDBqgeIAH2zlNV_2ngZ8dMf8fLgjYEouxg.woff2 | Bin
...qsXbIeTHTrnQH6CzM2XYAq8cDhaXsrN8WXcA.woff2 | Bin
...qsXbIeTHTrnQH6E78GtRp3lhchupCJNw8t58.woff2 | Bin
...qsXbIeTHTrnQH6GQKuzMuncr0JB710wa2dPI.woff2 | Bin
...qsXbIeTHTrnQH6Lpx497t94oDua8KfAL9f-E.woff2 | Bin
...qsXbIeTHTrnQH6MAjkyiewWYrWZc50I8hK7I.woff2 | Bin
...qsXbIeTHTrnQH6OXKTZYPNtG1yMB_YJSqlic.woff2 | Bin
...mlt9b38dHJxOBGCOFnW3Jk0f09zW_Yln67Ac.woff2 | Bin
...mlt9b38dHJxOBGClYwVOhDRq2vbpGRTZ7bbs.woff2 | Bin
...mlt9b38dHJxOBGDRVvBvQIc1z78c__uoBcyI.woff2 | Bin
...mlt9b38dHJxOBGD_j0nMiB9fPhg_k1wdK2h0.woff2 | Bin
...mlt9b38dHJxOBGDovqjS_dXPZszO_XltPdNg.woff2 | Bin
...mlt9b38dHJxOBGEo0As1BFRXtCDhS66znb_k.woff2 | Bin
...mlt9b38dHJxOBGFKFh1TDTPrUZWzVp6FtpG8.woff2 | Bin
...mlt9b38dHJxOBGFxe-GPfKKFmiXaJ_Q0GFr8.woff2 | Bin
...mlt9b38dHJxOBGOode0-EuMkY--TSyExeINg.woff2 | Bin
.../css/google-local/local.google.fonts.css | 0
.../dist/css/skins/_all-skins.min.css | 0
.../static/adminlte/dist/js/app.min.js | 0
.../datatables/dataTables.bootstrap.css | 0
.../datatables/dataTables.bootstrap.min.js | 0
.../plugins/datatables/images/sort_asc.png | Bin
.../datatables/images/sort_asc_disabled.png | Bin
.../plugins/datatables/images/sort_both.png | Bin
.../plugins/datatables/images/sort_desc.png | Bin
.../datatables/images/sort_desc_disabled.png | Bin
.../datatables/jquery.dataTables.min.css | 0
.../datatables/jquery.dataTables.min.js | 0
.../jquery.dataTables_themeroller.css | 0
.../daterangepicker/daterangepicker.css | 0
.../daterangepicker/daterangepicker.js | 0
.../plugins/daterangepicker/moment.min.js | 0
.../plugins/fastclick/fastclick.min.js | 0
.../adminlte/plugins/iCheck/icheck.min.js | 0
.../adminlte/plugins/iCheck/square/_all.css | 0
.../adminlte/plugins/iCheck/square/aero.css | 0
.../adminlte/plugins/iCheck/square/aero.png | Bin
.../plugins/iCheck/square/aero@2x.png | Bin
.../adminlte/plugins/iCheck/square/blue.css | 0
.../adminlte/plugins/iCheck/square/blue.png | Bin
.../plugins/iCheck/square/blue@2x.png | Bin
.../adminlte/plugins/iCheck/square/green.css | 0
.../adminlte/plugins/iCheck/square/green.png | Bin
.../plugins/iCheck/square/green@2x.png | Bin
.../adminlte/plugins/iCheck/square/grey.css | 0
.../adminlte/plugins/iCheck/square/grey.png | Bin
.../plugins/iCheck/square/grey@2x.png | Bin
.../adminlte/plugins/iCheck/square/orange.css | 0
.../adminlte/plugins/iCheck/square/orange.png | Bin
.../plugins/iCheck/square/orange@2x.png | Bin
.../adminlte/plugins/iCheck/square/pink.css | 0
.../adminlte/plugins/iCheck/square/pink.png | Bin
.../plugins/iCheck/square/pink@2x.png | Bin
.../adminlte/plugins/iCheck/square/purple.css | 0
.../adminlte/plugins/iCheck/square/purple.png | Bin
.../plugins/iCheck/square/purple@2x.png | Bin
.../adminlte/plugins/iCheck/square/red.css | 0
.../adminlte/plugins/iCheck/square/red.png | Bin
.../adminlte/plugins/iCheck/square/red@2x.png | Bin
.../adminlte/plugins/iCheck/square/square.css | 0
.../adminlte/plugins/iCheck/square/square.png | Bin
.../plugins/iCheck/square/square@2x.png | Bin
.../adminlte/plugins/iCheck/square/yellow.css | 0
.../adminlte/plugins/iCheck/square/yellow.png | Bin
.../plugins/iCheck/square/yellow@2x.png | Bin
.../plugins/jQuery/jquery-2.2.3.min.js | 0
.../slimScroll/jquery.slimscroll.min.js | 0
.../{webapp => resources/static}/favicon.ico | Bin
.../static/js/common.1.js | 184 ++++-----
.../{webapp => resources}/static/js/index.js | 0
.../static/js/jobcode.index.1.js | 194 ++++-----
.../static/js/jobgroup.index.1.js | 0
.../static/js/jobinfo.index.1.js | 0
.../static/js/joblog.detail.1.js | 0
.../static/js/joblog.index.1.js | 0
.../static/js/login.1.js | 130 +++---
.../codemirror/addon/hint/anyword-hint.js | 0
.../codemirror/addon/hint/show-hint.css | 0
.../codemirror/addon/hint/show-hint.js | 0
.../plugins/codemirror/lib/codemirror.css | 0
.../plugins/codemirror/lib/codemirror.js | 0
.../plugins/codemirror/mode/clike/clike.js | 0
.../codemirror/mode/javascript/javascript.js | 0
.../static/plugins/codemirror/mode/php/php.js | 0
.../codemirror/mode/powershell/powershell.js | 0
.../plugins/codemirror/mode/python/python.js | 0
.../plugins/codemirror/mode/shell/shell.js | 0
.../plugins/echarts/echarts.common.min.js | 0
.../css/font-awesome.css.map | 0
.../css/font-awesome.min.css | 0
.../font-awesome-4.5.0/fonts/FontAwesome.otf | Bin
.../fonts/fontawesome-webfont.eot | Bin
.../fonts/fontawesome-webfont.svg | 0
.../fonts/fontawesome-webfont.ttf | Bin
.../fonts/fontawesome-webfont.woff | Bin
.../fonts/fontawesome-webfont.woff2 | Bin
.../ionicons-2.0.1/css/ionicons.min.css | 0
.../plugins/ionicons-2.0.1/fonts/ionicons.eot | Bin
.../plugins/ionicons-2.0.1/fonts/ionicons.svg | 0
.../plugins/ionicons-2.0.1/fonts/ionicons.ttf | Bin
.../ionicons-2.0.1/fonts/ionicons.woff | Bin
.../static/plugins/jquery/jquery.cookie.js | 0
.../plugins/jquery/jquery.validate.min.js | 0
.../static/plugins/layer/layer.js | 0
.../plugins/layer/skin/default/icon-ext.png | Bin
.../plugins/layer/skin/default/icon.png | Bin
.../plugins/layer/skin/default/layer.css | 0
.../plugins/layer/skin/default/loading-0.gif | Bin
.../plugins/layer/skin/default/loading-1.gif | Bin
.../plugins/layer/skin/default/loading-2.gif | Bin
.../static/plugins/pace/pace.min.js | 0
.../plugins/pace/themes/pace-theme-bounce.css | 0
.../plugins/pace/themes/pace-theme-flash.css | 0
.../templates}/common/common.exception.ftl | 60 +--
.../templates}/common/common.macro.ftl | 388 +++++++++---------
.../template => resources/templates}/help.ftl | 94 ++---
.../templates}/index.ftl | 4 +-
.../templates}/jobcode/jobcode.index.ftl | 316 +++++++-------
.../templates}/jobgroup/jobgroup.index.ftl | 6 +-
.../templates}/jobinfo/jobinfo.index.ftl | 4 +-
.../templates}/joblog/joblog.detail.ftl | 4 +-
.../templates}/joblog/joblog.index.ftl | 356 ++++++++--------
.../templates}/login.ftl | 2 +-
.../main/resources/xxl-job-admin.properties | 23 --
xxl-job-admin/src/main/webapp/500.html | 30 --
xxl-job-admin/src/main/webapp/WEB-INF/web.xml | 67 ---
169 files changed, 1189 insertions(+), 1313 deletions(-)
create mode 100644 xxl-job-admin/src/main/java/com/xxl/job/admin/XxlJobAdminApplication.java
create mode 100644 xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/WebMvcConfig.java
create mode 100644 xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobDynamicSchedulerConfig.java
create mode 100644 xxl-job-admin/src/main/resources/application.properties
delete mode 100644 xxl-job-admin/src/main/resources/freemarker.properties
delete mode 100644 xxl-job-admin/src/main/resources/log4j.xml
create mode 100644 xxl-job-admin/src/main/resources/logback.xml
delete mode 100644 xxl-job-admin/src/main/resources/spring/applicationcontext-base.xml
delete mode 100644 xxl-job-admin/src/main/resources/spring/applicationcontext-xxl-job-admin.xml
delete mode 100644 xxl-job-admin/src/main/resources/spring/springmvc-context.xml
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/bootstrap/css/bootstrap.css.map (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/bootstrap/css/bootstrap.min.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.eot (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.svg (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.ttf (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.woff (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.woff2 (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/bootstrap/js/bootstrap.min.js (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/AdminLTE-local.min.css (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/AdminLTE.min.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoM40tgx99jmYGv_xzYuwd1rU.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoM7YHq4FgHI02B8rPccK0FJQ.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoMxgy2Fsj5sj3EzlXpqVXRKo.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlC2Q8seG17bfDXYR_jUsrzg.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY[0].woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNV_2ngZ8dMf8fLgjYEouxg.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6CzM2XYAq8cDhaXsrN8WXcA.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6E78GtRp3lhchupCJNw8t58.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6GQKuzMuncr0JB710wa2dPI.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6Lpx497t94oDua8KfAL9f-E.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6MAjkyiewWYrWZc50I8hK7I.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6OXKTZYPNtG1yMB_YJSqlic.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGCOFnW3Jk0f09zW_Yln67Ac.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGClYwVOhDRq2vbpGRTZ7bbs.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGDRVvBvQIc1z78c__uoBcyI.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGD_j0nMiB9fPhg_k1wdK2h0.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGDovqjS_dXPZszO_XltPdNg.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGEo0As1BFRXtCDhS66znb_k.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGFKFh1TDTPrUZWzVp6FtpG8.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGFxe-GPfKKFmiXaJ_Q0GFr8.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGOode0-EuMkY--TSyExeINg.woff2 (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/google-local/local.google.fonts.css (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/css/skins/_all-skins.min.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/dist/js/app.min.js (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/datatables/dataTables.bootstrap.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/datatables/dataTables.bootstrap.min.js (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/datatables/images/sort_asc.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/datatables/images/sort_asc_disabled.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/datatables/images/sort_both.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/datatables/images/sort_desc.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/datatables/images/sort_desc_disabled.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/datatables/jquery.dataTables.min.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/datatables/jquery.dataTables.min.js (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/datatables/jquery.dataTables_themeroller.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/daterangepicker/daterangepicker.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/daterangepicker/daterangepicker.js (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/daterangepicker/moment.min.js (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/fastclick/fastclick.min.js (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/icheck.min.js (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/_all.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/aero.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/aero.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/aero@2x.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/blue.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/blue.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/blue@2x.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/green.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/green.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/green@2x.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/grey.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/grey.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/grey@2x.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/orange.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/orange.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/orange@2x.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/pink.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/pink.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/pink@2x.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/purple.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/purple.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/purple@2x.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/red.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/red.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/red@2x.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/square.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/square.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/square@2x.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/yellow.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/yellow.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/iCheck/square/yellow@2x.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/jQuery/jquery-2.2.3.min.js (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/adminlte/plugins/slimScroll/jquery.slimscroll.min.js (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources/static}/favicon.ico (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/js/common.1.js (96%)
rename xxl-job-admin/src/main/{webapp => resources}/static/js/index.js (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/js/jobcode.index.1.js (95%)
rename xxl-job-admin/src/main/{webapp => resources}/static/js/jobgroup.index.1.js (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/js/jobinfo.index.1.js (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/js/joblog.detail.1.js (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/js/joblog.index.1.js (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/js/login.1.js (96%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/codemirror/addon/hint/anyword-hint.js (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/codemirror/addon/hint/show-hint.css (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/codemirror/addon/hint/show-hint.js (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/codemirror/lib/codemirror.css (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/codemirror/lib/codemirror.js (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/codemirror/mode/clike/clike.js (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/codemirror/mode/javascript/javascript.js (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/codemirror/mode/php/php.js (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/codemirror/mode/powershell/powershell.js (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/codemirror/mode/python/python.js (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/codemirror/mode/shell/shell.js (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/echarts/echarts.common.min.js (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/font-awesome-4.5.0/css/font-awesome.css.map (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/font-awesome-4.5.0/css/font-awesome.min.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/font-awesome-4.5.0/fonts/FontAwesome.otf (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.eot (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.svg (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.ttf (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.woff (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.woff2 (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/ionicons-2.0.1/css/ionicons.min.css (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/ionicons-2.0.1/fonts/ionicons.eot (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/ionicons-2.0.1/fonts/ionicons.svg (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/ionicons-2.0.1/fonts/ionicons.ttf (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/ionicons-2.0.1/fonts/ionicons.woff (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/jquery/jquery.cookie.js (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/jquery/jquery.validate.min.js (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/layer/layer.js (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/layer/skin/default/icon-ext.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/layer/skin/default/icon.png (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/layer/skin/default/layer.css (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/layer/skin/default/loading-0.gif (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/layer/skin/default/loading-1.gif (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/layer/skin/default/loading-2.gif (100%)
mode change 100755 => 100644
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/pace/pace.min.js (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/pace/themes/pace-theme-bounce.css (100%)
rename xxl-job-admin/src/main/{webapp => resources}/static/plugins/pace/themes/pace-theme-flash.css (100%)
rename xxl-job-admin/src/main/{webapp/WEB-INF/template => resources/templates}/common/common.exception.ftl (95%)
rename xxl-job-admin/src/main/{webapp/WEB-INF/template => resources/templates}/common/common.macro.ftl (97%)
rename xxl-job-admin/src/main/{webapp/WEB-INF/template => resources/templates}/help.ftl (86%)
rename xxl-job-admin/src/main/{webapp/WEB-INF/template => resources/templates}/index.ftl (97%)
rename xxl-job-admin/src/main/{webapp/WEB-INF/template => resources/templates}/jobcode/jobcode.index.ftl (97%)
rename xxl-job-admin/src/main/{webapp/WEB-INF/template => resources/templates}/jobgroup/jobgroup.index.ftl (97%)
rename xxl-job-admin/src/main/{webapp/WEB-INF/template => resources/templates}/jobinfo/jobinfo.index.ftl (99%)
rename xxl-job-admin/src/main/{webapp/WEB-INF/template => resources/templates}/joblog/joblog.detail.ftl (95%)
rename xxl-job-admin/src/main/{webapp/WEB-INF/template => resources/templates}/joblog/joblog.index.ftl (96%)
rename xxl-job-admin/src/main/{webapp/WEB-INF/template => resources/templates}/login.ftl (97%)
delete mode 100644 xxl-job-admin/src/main/resources/xxl-job-admin.properties
delete mode 100644 xxl-job-admin/src/main/webapp/500.html
delete mode 100644 xxl-job-admin/src/main/webapp/WEB-INF/web.xml
diff --git a/pom.xml b/pom.xml
index ded21de3..d1d4321c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,9 +29,8 @@
3.1.0
2.3.3
- 4.3.19.RELEASE
- 2.9.6
- 1.8.13
+ 4.3.20.RELEASE
+ 2.9.7
1.7.25
2.3.28
4.12
@@ -53,7 +52,10 @@
2.4.15
2.3.0
- 1.5.16.RELEASE
+ 1.5.17.RELEASE
+ 1.3.2
+
+
diff --git a/xxl-job-admin/Dockerfile b/xxl-job-admin/Dockerfile
index e785cece..336db09e 100644
--- a/xxl-job-admin/Dockerfile
+++ b/xxl-job-admin/Dockerfile
@@ -1,6 +1,8 @@
-FROM tomcat:8.0-jre8-slim
+FROM openjdk:7-jre-slim
MAINTAINER xuxueli
-ADD target/xxl-job-admin*.war /usr/local/tomcat/webapps/xxl-job-admin.war
+ENV PARAMS=""
-CMD ["catalina.sh", "run"]
\ No newline at end of file
+ADD target/xxl-conf-admin-*.jar /app.jar
+
+ENTRYPOINT ["sh","-c","java -jar /app.jar $PARAMS"]
\ No newline at end of file
diff --git a/xxl-job-admin/pom.xml b/xxl-job-admin/pom.xml
index 07c0d9bf..68c2c15e 100644
--- a/xxl-job-admin/pom.xml
+++ b/xxl-job-admin/pom.xml
@@ -7,77 +7,56 @@
2.0.0-SNAPSHOT
xxl-job-admin
- war
+ jar
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ ${spring-boot.version}
+ pom
+ import
+
+
+
-
-
- org.springframework
- spring-webmvc
- ${spring.version}
-
-
- org.springframework
- spring-context-support
- ${spring.version}
-
-
- org.springframework
- spring-orm
- ${spring.version}
-
-
- org.springframework
- spring-test
- ${spring.version}
-
-
-
-
- org.aspectj
- aspectjweaver
- ${aspectjweaver.version}
-
-
-
- com.fasterxml.jackson.core
- jackson-databind
- ${jackson.version}
-
-
+
- javax.servlet
- javax.servlet-api
- ${javax.servlet-api.version}
+ org.springframework.boot
+ spring-boot-starter-web
+
- javax.servlet.jsp
- javax.servlet.jsp-api
- ${javax.servlet.jsp-api.version}
+ org.springframework.boot
+ spring-boot-starter-test
+ test
-
+
- org.freemarker
- freemarker
- ${freemarker.version}
+ org.springframework.boot
+ spring-boot-starter-freemarker
-
+
+
- org.slf4j
- slf4j-log4j12
- ${slf4j-api.version}
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ ${mybatis-spring-boot-starter.version}
-
+
+
- junit
- junit
- ${junit.version}
- test
+ mysql
+ mysql-connector-java
+ ${mysql-connector-java.version}
+
org.apache.commons
@@ -97,36 +76,6 @@
${commons-email.version}
-
-
- com.mchange
- c3p0
- ${c3p0.version}
-
-
-
- mysql
- mysql-connector-java
- ${mysql-connector-java.version}
-
-
-
- org.mybatis
- mybatis-spring
- ${mybatis-spring.version}
-
-
- org.mybatis
- mybatis
- ${mybatis.version}
-
-
-
-
- org.apache.httpcomponents
- httpclient
- ${httpclient.version}
-
@@ -135,6 +84,7 @@
${quartz.version}
+
com.xuxueli
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/XxlJobAdminApplication.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/XxlJobAdminApplication.java
new file mode 100644
index 00000000..fce10a81
--- /dev/null
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/XxlJobAdminApplication.java
@@ -0,0 +1,16 @@
+package com.xxl.job.admin;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @author xuxueli 2018-10-28 00:38:13
+ */
+@SpringBootApplication
+public class XxlJobAdminApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(XxlJobAdminApplication.class, args);
+ }
+
+}
\ No newline at end of file
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java
index 07a2c3d0..b3eed30c 100644
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java
@@ -1,5 +1,6 @@
package com.xxl.job.admin.controller;
+import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
import com.xxl.job.admin.core.model.XxlJobGroup;
import com.xxl.job.admin.core.model.XxlJobRegistry;
import com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler;
@@ -115,7 +116,7 @@ public class JobGroupController {
private List findRegistryByAppName(String appNameParam){
HashMap> appAddressMap = new HashMap>();
- List list = XxlJobDynamicScheduler.xxlJobRegistryDao.findAll(RegistryConfig.DEAD_TIMEOUT);
+ List list = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().findAll(RegistryConfig.DEAD_TIMEOUT);
if (list != null) {
for (XxlJobRegistry item: list) {
if (RegistryConfig.RegistType.EXECUTOR.name().equals(item.getRegistryGroup())) {
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/CookieInterceptor.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/CookieInterceptor.java
index 9337d1b0..b0b6d103 100644
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/CookieInterceptor.java
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/CookieInterceptor.java
@@ -3,6 +3,7 @@ package com.xxl.job.admin.controller.interceptor;
import com.xxl.job.admin.core.util.FtlUtil;
import com.xxl.job.admin.core.util.I18nUtil;
import org.apache.commons.lang3.ArrayUtils;
+import org.springframework.stereotype.Component;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
@@ -16,6 +17,7 @@ import java.util.HashMap;
*
* @author xuxueli 2015-12-12 18:09:04
*/
+@Component
public class CookieInterceptor extends HandlerInterceptorAdapter {
@Override
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/PermissionInterceptor.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/PermissionInterceptor.java
index b72cf99e..9205ed59 100644
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/PermissionInterceptor.java
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/PermissionInterceptor.java
@@ -4,6 +4,7 @@ import com.xxl.job.admin.controller.annotation.PermessionLimit;
import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
import com.xxl.job.admin.core.util.CookieUtil;
import org.apache.commons.codec.digest.DigestUtils;
+import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
@@ -16,23 +17,25 @@ import java.math.BigInteger;
*
* @author xuxueli 2015-12-12 18:09:04
*/
+@Component
public class PermissionInterceptor extends HandlerInterceptorAdapter {
public static final String LOGIN_IDENTITY_KEY = "XXL_JOB_LOGIN_IDENTITY";
- public static final String LOGIN_IDENTITY_TOKEN;
- static {
- String username = XxlJobAdminConfig.getAdminConfig().getLoginUsername();
- String password = XxlJobAdminConfig.getAdminConfig().getLoginPassword();
-
- // login token
- String tokenTmp = DigestUtils.md5Hex(username + "_" + password);
- tokenTmp = new BigInteger(1, tokenTmp.getBytes()).toString(16);
-
- LOGIN_IDENTITY_TOKEN = tokenTmp;
- }
+ private static String LOGIN_IDENTITY_TOKEN;
+ public static String getLoginIdentityToken() {
+ if (LOGIN_IDENTITY_TOKEN == null) {
+ String username = XxlJobAdminConfig.getAdminConfig().getLoginUsername();
+ String password = XxlJobAdminConfig.getAdminConfig().getLoginPassword();
+ // login token
+ String tokenTmp = DigestUtils.md5Hex(username + "_" + password);
+ tokenTmp = new BigInteger(1, tokenTmp.getBytes()).toString(16);
+ LOGIN_IDENTITY_TOKEN = tokenTmp;
+ }
+ return LOGIN_IDENTITY_TOKEN;
+ }
public static boolean login(HttpServletResponse response, String username, String password, boolean ifRemember){
@@ -40,12 +43,12 @@ public class PermissionInterceptor extends HandlerInterceptorAdapter {
String tokenTmp = DigestUtils.md5Hex(username + "_" + password);
tokenTmp = new BigInteger(1, tokenTmp.getBytes()).toString(16);
- if (!LOGIN_IDENTITY_TOKEN.equals(tokenTmp)){
+ if (!getLoginIdentityToken().equals(tokenTmp)){
return false;
}
// do login
- CookieUtil.set(response, LOGIN_IDENTITY_KEY, LOGIN_IDENTITY_TOKEN, ifRemember);
+ CookieUtil.set(response, LOGIN_IDENTITY_KEY, getLoginIdentityToken(), ifRemember);
return true;
}
public static void logout(HttpServletRequest request, HttpServletResponse response){
@@ -53,7 +56,7 @@ public class PermissionInterceptor extends HandlerInterceptorAdapter {
}
public static boolean ifLogin(HttpServletRequest request){
String indentityInfo = CookieUtil.getValue(request, LOGIN_IDENTITY_KEY);
- if (indentityInfo==null || !LOGIN_IDENTITY_TOKEN.equals(indentityInfo.trim())) {
+ if (indentityInfo==null || !getLoginIdentityToken().equals(indentityInfo.trim())) {
return false;
}
return true;
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/WebMvcConfig.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/WebMvcConfig.java
new file mode 100644
index 00000000..d817e78e
--- /dev/null
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/WebMvcConfig.java
@@ -0,0 +1,29 @@
+package com.xxl.job.admin.controller.interceptor;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+
+import javax.annotation.Resource;
+
+/**
+ * web mvc config
+ *
+ * @author xuxueli 2018-04-02 20:48:20
+ */
+@Configuration
+public class WebMvcConfig extends WebMvcConfigurerAdapter {
+
+ @Resource
+ private PermissionInterceptor permissionInterceptor;
+ @Resource
+ private CookieInterceptor cookieInterceptor;
+
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ registry.addInterceptor(permissionInterceptor).addPathPatterns("/**");
+ registry.addInterceptor(cookieInterceptor).addPathPatterns("/**");
+ super.addInterceptors(registry);
+ }
+
+}
\ No newline at end of file
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/resolver/WebExceptionResolver.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/resolver/WebExceptionResolver.java
index 0ceb9089..f520fda0 100644
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/resolver/WebExceptionResolver.java
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/resolver/WebExceptionResolver.java
@@ -4,6 +4,7 @@ import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.util.JacksonUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerExceptionResolver;
@@ -15,8 +16,10 @@ import java.io.IOException;
/**
* common exception resolver
+ *
* @author xuxueli 2016-1-6 19:22:18
*/
+@Component
public class WebExceptionResolver implements HandlerExceptionResolver {
private static transient Logger logger = LoggerFactory.getLogger(WebExceptionResolver.class);
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobAdminConfig.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobAdminConfig.java
index ba41d716..727c15d5 100644
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobAdminConfig.java
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobAdminConfig.java
@@ -1,9 +1,16 @@
package com.xxl.job.admin.core.conf;
+import com.xxl.job.admin.dao.XxlJobGroupDao;
+import com.xxl.job.admin.dao.XxlJobInfoDao;
+import com.xxl.job.admin.dao.XxlJobLogDao;
+import com.xxl.job.admin.dao.XxlJobRegistryDao;
+import com.xxl.job.core.biz.AdminBiz;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
+import javax.annotation.Resource;
+
/**
* xxl-job config
*
@@ -21,6 +28,8 @@ public class XxlJobAdminConfig implements InitializingBean{
adminConfig = this;
}
+ // conf
+
@Value("${xxl.job.mail.host}")
private String mailHost;
@@ -48,6 +57,22 @@ public class XxlJobAdminConfig implements InitializingBean{
@Value("${xxl.job.i18n}")
private String i18n;
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ // dao, service
+
+ @Resource
+ public XxlJobLogDao xxlJobLogDao;
+ @Resource
+ public XxlJobInfoDao xxlJobInfoDao;
+ @Resource
+ public XxlJobRegistryDao xxlJobRegistryDao;
+ @Resource
+ public XxlJobGroupDao xxlJobGroupDao;
+ @Resource
+ public AdminBiz adminBiz;
+
public String getMailHost() {
return mailHost;
@@ -85,4 +110,28 @@ public class XxlJobAdminConfig implements InitializingBean{
return i18n;
}
+ public String getAccessToken() {
+ return accessToken;
+ }
+
+ public XxlJobLogDao getXxlJobLogDao() {
+ return xxlJobLogDao;
+ }
+
+ public XxlJobInfoDao getXxlJobInfoDao() {
+ return xxlJobInfoDao;
+ }
+
+ public XxlJobRegistryDao getXxlJobRegistryDao() {
+ return xxlJobRegistryDao;
+ }
+
+ public XxlJobGroupDao getXxlJobGroupDao() {
+ return xxlJobGroupDao;
+ }
+
+ public AdminBiz getAdminBiz() {
+ return adminBiz;
+ }
+
}
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobDynamicSchedulerConfig.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobDynamicSchedulerConfig.java
new file mode 100644
index 00000000..0d802bca
--- /dev/null
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobDynamicSchedulerConfig.java
@@ -0,0 +1,43 @@
+package com.xxl.job.admin.core.conf;
+
+import com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler;
+import org.quartz.Scheduler;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.scheduling.quartz.SchedulerFactoryBean;
+
+import javax.sql.DataSource;
+
+/**
+ * @author xuxueli 2018-10-28 00:18:17
+ */
+@Configuration
+public class XxlJobDynamicSchedulerConfig {
+
+ @Bean
+ public SchedulerFactoryBean getSchedulerFactoryBean(DataSource dataSource){
+
+ SchedulerFactoryBean schedulerFactory = new SchedulerFactoryBean();
+ schedulerFactory.setDataSource(dataSource);
+ schedulerFactory.setAutoStartup(true); // 自动启动
+ schedulerFactory.setStartupDelay(20); // 延时启动,应用启动成功后在启动
+ schedulerFactory.setOverwriteExistingJobs(true); // 覆盖DB中JOB:true、以数据库中已经存在的为准:false
+ schedulerFactory.setApplicationContextSchedulerContextKey("applicationContext");
+ schedulerFactory.setConfigLocation(new ClassPathResource("quartz.properties"));
+
+ return schedulerFactory;
+ }
+
+ @Bean(initMethod = "start", destroyMethod = "destroy")
+ public XxlJobDynamicScheduler getXxlJobDynamicScheduler(SchedulerFactoryBean schedulerFactory){
+
+ Scheduler scheduler = schedulerFactory.getScheduler();
+
+ XxlJobDynamicScheduler xxlJobDynamicScheduler = new XxlJobDynamicScheduler();
+ xxlJobDynamicScheduler.setScheduler(scheduler);
+
+ return xxlJobDynamicScheduler;
+ }
+
+}
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/schedule/XxlJobDynamicScheduler.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/schedule/XxlJobDynamicScheduler.java
index 124c0c3a..79124dc1 100644
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/schedule/XxlJobDynamicScheduler.java
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/schedule/XxlJobDynamicScheduler.java
@@ -1,5 +1,6 @@
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.admin.core.model.XxlJobInfo;
import com.xxl.job.admin.core.thread.JobFailMonitorHelper;
@@ -21,6 +22,8 @@ import org.quartz.impl.triggers.CronTriggerImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.DisposableBean;
+import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.util.Assert;
@@ -33,7 +36,7 @@ import java.util.concurrent.ConcurrentHashMap;
* base quartz scheduler util
* @author xuxueli 2015-12-19 16:13:53
*/
-public final class XxlJobDynamicScheduler implements ApplicationContextAware {
+public final class XxlJobDynamicScheduler {
private static final Logger logger = LoggerFactory.getLogger(XxlJobDynamicScheduler.class);
// ---------------------- param ----------------------
@@ -44,31 +47,9 @@ public final class XxlJobDynamicScheduler implements ApplicationContextAware {
XxlJobDynamicScheduler.scheduler = scheduler;
}
- // accessToken
- private static String accessToken;
- public void setAccessToken(String accessToken) {
- this.accessToken = accessToken;
- }
-
- // dao
- public static XxlJobLogDao xxlJobLogDao;
- public static XxlJobInfoDao xxlJobInfoDao;
- public static XxlJobRegistryDao xxlJobRegistryDao;
- public static XxlJobGroupDao xxlJobGroupDao;
- public static AdminBiz adminBiz;
-
- // ---------------------- applicationContext ----------------------
- @Override
- public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
- XxlJobDynamicScheduler.xxlJobLogDao = applicationContext.getBean(XxlJobLogDao.class);
- XxlJobDynamicScheduler.xxlJobInfoDao = applicationContext.getBean(XxlJobInfoDao.class);
- XxlJobDynamicScheduler.xxlJobRegistryDao = applicationContext.getBean(XxlJobRegistryDao.class);
- XxlJobDynamicScheduler.xxlJobGroupDao = applicationContext.getBean(XxlJobGroupDao.class);
- XxlJobDynamicScheduler.adminBiz = applicationContext.getBean(AdminBiz.class);
- }
// ---------------------- init + destroy ----------------------
- public void init() throws Exception {
+ public void start() throws Exception {
// admin registry monitor run
JobRegistryMonitorHelper.getInstance().start();
@@ -76,8 +57,8 @@ public final class XxlJobDynamicScheduler implements ApplicationContextAware {
JobFailMonitorHelper.getInstance().start();
// admin-server(spring-mvc)
- NetComServerFactory.putService(AdminBiz.class, XxlJobDynamicScheduler.adminBiz);
- NetComServerFactory.setAccessToken(accessToken);
+ NetComServerFactory.putService(AdminBiz.class, XxlJobAdminConfig.getAdminConfig().getAdminBiz());
+ NetComServerFactory.setAccessToken(XxlJobAdminConfig.getAdminConfig().getAccessToken());
// init i18n
initI18n();
@@ -105,6 +86,7 @@ public final class XxlJobDynamicScheduler implements ApplicationContextAware {
JobFailMonitorHelper.getInstance().toStop();
}
+
// ---------------------- executor-client ----------------------
private static ConcurrentHashMap executorBizRepository = new ConcurrentHashMap();
public static ExecutorBiz getExecutorBiz(String address) throws Exception {
@@ -121,7 +103,7 @@ public final class XxlJobDynamicScheduler implements ApplicationContextAware {
}
// set-cache
- executorBiz = (ExecutorBiz) new NetComClientProxy(ExecutorBiz.class, address, accessToken).getObject();
+ executorBiz = (ExecutorBiz) new NetComClientProxy(ExecutorBiz.class, address, XxlJobAdminConfig.getAdminConfig().getAccessToken()).getObject();
executorBizRepository.put(address, executorBiz);
return executorBiz;
}
@@ -362,6 +344,7 @@ public final class XxlJobDynamicScheduler implements ApplicationContextAware {
return result;
}
+
/**
* finaAllJobList
*
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java
index aa1b5191..23fd9fcf 100644
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java
@@ -1,5 +1,6 @@
package com.xxl.job.admin.core.thread;
+import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
import com.xxl.job.admin.core.model.XxlJobGroup;
import com.xxl.job.admin.core.model.XxlJobInfo;
import com.xxl.job.admin.core.model.XxlJobLog;
@@ -52,7 +53,7 @@ public class JobFailMonitorHelper {
if (jobLogId==null || jobLogId==0) {
continue;
}
- XxlJobLog log = XxlJobDynamicScheduler.xxlJobLogDao.load(jobLogId);
+ XxlJobLog log = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().load(jobLogId);
if (log == null) {
continue;
}
@@ -70,13 +71,13 @@ public class JobFailMonitorHelper {
// job fail,
// 1、fail retry
- XxlJobInfo info = XxlJobDynamicScheduler.xxlJobInfoDao.loadById(log.getJobId());
+ XxlJobInfo info = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().loadById(log.getJobId());
if (log.getExecutorFailRetryCount() > 0) {
JobTriggerPoolHelper.trigger(log.getJobId(), TriggerTypeEnum.RETRY, (log.getExecutorFailRetryCount()-1), log.getExecutorShardingParam(), null);
String retryMsg = "
>>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_type_retry") +"<<<<<<<<<<<
";
log.setTriggerMsg(log.getTriggerMsg() + retryMsg);
- XxlJobDynamicScheduler.xxlJobLogDao.updateTriggerInfo(log);
+ XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateTriggerInfo(log);
}
// 2、fail alarm
@@ -101,10 +102,10 @@ public class JobFailMonitorHelper {
int drainToNum = getInstance().queue.drainTo(jobLogIdList);
if (jobLogIdList!=null && jobLogIdList.size()>0) {
for (Integer jobLogId: jobLogIdList) {
- XxlJobLog log = XxlJobDynamicScheduler.xxlJobLogDao.load(jobLogId);
+ XxlJobLog log = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().load(jobLogId);
if (ReturnT.FAIL_CODE == log.getTriggerCode()|| ReturnT.FAIL_CODE==log.getHandleCode()) {
// job fail,
- XxlJobInfo info = XxlJobDynamicScheduler.xxlJobInfoDao.loadById(log.getJobId());
+ XxlJobInfo info = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().loadById(log.getJobId());
failAlarm(info, log);
logger.info(">>>>>>>>>>> job monitor last, job fail, JobLogId:{}", jobLogId);
@@ -180,7 +181,7 @@ public class JobFailMonitorHelper {
Set emailSet = new HashSet(Arrays.asList(info.getAlarmEmail().split(",")));
for (String email: emailSet) {
- XxlJobGroup group = XxlJobDynamicScheduler.xxlJobGroupDao.load(Integer.valueOf(info.getJobGroup()));
+ XxlJobGroup group = XxlJobAdminConfig.getAdminConfig().getXxlJobGroupDao().load(Integer.valueOf(info.getJobGroup()));
String title = I18nUtil.getString("jobconf_monitor");
String content = MessageFormat.format(mailBodyTemplate,
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryMonitorHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryMonitorHelper.java
index 647c02ed..e1dd3a12 100644
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryMonitorHelper.java
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryMonitorHelper.java
@@ -1,5 +1,6 @@
package com.xxl.job.admin.core.thread;
+import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
import com.xxl.job.admin.core.model.XxlJobGroup;
import com.xxl.job.admin.core.model.XxlJobRegistry;
import com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler;
@@ -36,15 +37,15 @@ public class JobRegistryMonitorHelper {
while (!toStop) {
try {
// auto registry group
- List groupList = XxlJobDynamicScheduler.xxlJobGroupDao.findByAddressType(0);
+ List groupList = XxlJobAdminConfig.getAdminConfig().getXxlJobGroupDao().findByAddressType(0);
if (CollectionUtils.isNotEmpty(groupList)) {
// remove dead address (admin/executor)
- XxlJobDynamicScheduler.xxlJobRegistryDao.removeDead(RegistryConfig.DEAD_TIMEOUT);
+ XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().removeDead(RegistryConfig.DEAD_TIMEOUT);
// fresh online address (admin/executor)
HashMap> appAddressMap = new HashMap>();
- List list = XxlJobDynamicScheduler.xxlJobRegistryDao.findAll(RegistryConfig.DEAD_TIMEOUT);
+ List list = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().findAll(RegistryConfig.DEAD_TIMEOUT);
if (list != null) {
for (XxlJobRegistry item: list) {
if (RegistryConfig.RegistType.EXECUTOR.name().equals(item.getRegistryGroup())) {
@@ -71,7 +72,7 @@ public class JobRegistryMonitorHelper {
addressListStr = StringUtils.join(registryList, ",");
}
group.setAddressList(addressListStr);
- XxlJobDynamicScheduler.xxlJobGroupDao.update(group);
+ XxlJobAdminConfig.getAdminConfig().getXxlJobGroupDao().update(group);
}
}
} catch (Exception e) {
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java
index e570f5c7..34d8b3c0 100644
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java
@@ -1,5 +1,6 @@
package com.xxl.job.admin.core.trigger;
+import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
import com.xxl.job.admin.core.model.XxlJobGroup;
import com.xxl.job.admin.core.model.XxlJobInfo;
import com.xxl.job.admin.core.model.XxlJobLog;
@@ -41,7 +42,7 @@ public class XxlJobTrigger {
*/
public static void trigger(int jobId, TriggerTypeEnum triggerType, int failRetryCount, String executorShardingParam, String executorParam) {
// load data
- XxlJobInfo jobInfo = XxlJobDynamicScheduler.xxlJobInfoDao.loadById(jobId);
+ XxlJobInfo jobInfo = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().loadById(jobId);
if (jobInfo == null) {
logger.warn(">>>>>>>>>>>> trigger fail, jobId invalid,jobId={}", jobId);
return;
@@ -50,7 +51,7 @@ public class XxlJobTrigger {
jobInfo.setExecutorParam(executorParam);
}
int finalFailRetryCount = failRetryCount>=0?failRetryCount:jobInfo.getExecutorFailRetryCount();
- XxlJobGroup group = XxlJobDynamicScheduler.xxlJobGroupDao.load(jobInfo.getJobGroup());
+ XxlJobGroup group = XxlJobAdminConfig.getAdminConfig().getXxlJobGroupDao().load(jobInfo.getJobGroup());
// sharding param
int[] shardingParam = null;
@@ -96,7 +97,7 @@ public class XxlJobTrigger {
jobLog.setJobGroup(jobInfo.getJobGroup());
jobLog.setJobId(jobInfo.getId());
jobLog.setTriggerTime(new Date());
- XxlJobDynamicScheduler.xxlJobLogDao.save(jobLog);
+ XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().save(jobLog);
logger.debug(">>>>>>>>>>> xxl-job trigger start, jobId:{}", jobLog.getId());
// 2、init trigger-param
@@ -169,7 +170,7 @@ public class XxlJobTrigger {
//jobLog.setTriggerTime();
jobLog.setTriggerCode(triggerResult.getCode());
jobLog.setTriggerMsg(triggerMsgSb.toString());
- XxlJobDynamicScheduler.xxlJobLogDao.updateTriggerInfo(jobLog);
+ XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateTriggerInfo(jobLog);
// 7、monitor trigger
JobFailMonitorHelper.monitor(jobLog.getId());
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobGroupDao.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobGroupDao.java
index 7d654145..35f3cd3c 100644
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobGroupDao.java
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobGroupDao.java
@@ -1,6 +1,7 @@
package com.xxl.job.admin.dao;
import com.xxl.job.admin.core.model.XxlJobGroup;
+import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -8,6 +9,7 @@ import java.util.List;
/**
* Created by xuxueli on 16/9/30.
*/
+@Mapper
public interface XxlJobGroupDao {
public List findAll();
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java
index 92fbba4e..338ab433 100644
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java
@@ -1,6 +1,7 @@
package com.xxl.job.admin.dao;
import com.xxl.job.admin.core.model.XxlJobInfo;
+import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -10,6 +11,7 @@ import java.util.List;
* job info
* @author xuxueli 2016-1-12 18:03:45
*/
+@Mapper
public interface XxlJobInfoDao {
public List pageList(@Param("offset") int offset,
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java
index 8263811b..a5489d59 100644
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java
@@ -1,6 +1,7 @@
package com.xxl.job.admin.dao;
import com.xxl.job.admin.core.model.XxlJobLog;
+import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
@@ -11,6 +12,7 @@ import java.util.Map;
* job log
* @author xuxueli 2016-1-12 18:03:06
*/
+@Mapper
public interface XxlJobLogDao {
public List pageList(@Param("offset") int offset,
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogGlueDao.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogGlueDao.java
index e17d6d4c..3028aed2 100644
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogGlueDao.java
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogGlueDao.java
@@ -1,6 +1,7 @@
package com.xxl.job.admin.dao;
import com.xxl.job.admin.core.model.XxlJobLogGlue;
+import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -9,6 +10,7 @@ import java.util.List;
* job log for glue
* @author xuxueli 2016-5-19 18:04:56
*/
+@Mapper
public interface XxlJobLogGlueDao {
public int save(XxlJobLogGlue xxlJobLogGlue);
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobRegistryDao.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobRegistryDao.java
index b4ce0bc4..66100a0c 100644
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobRegistryDao.java
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobRegistryDao.java
@@ -1,6 +1,7 @@
package com.xxl.job.admin.dao;
import com.xxl.job.admin.core.model.XxlJobRegistry;
+import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -8,6 +9,7 @@ import java.util.List;
/**
* Created by xuxueli on 16/9/30.
*/
+@Mapper
public interface XxlJobRegistryDao {
public int removeDead(@Param("timeout") int timeout);
diff --git a/xxl-job-admin/src/main/resources/application.properties b/xxl-job-admin/src/main/resources/application.properties
new file mode 100644
index 00000000..4467f3df
--- /dev/null
+++ b/xxl-job-admin/src/main/resources/application.properties
@@ -0,0 +1,45 @@
+### web
+server.port=8080
+server.context-path=/xxl-job-admin
+
+### resources
+spring.mvc.static-path-pattern=/static/**
+spring.resources.static-locations=classpath:/static/
+
+### freemarker
+spring.freemarker.templateLoaderPath=classpath:/templates/
+spring.freemarker.suffix=.ftl
+spring.freemarker.charset=UTF-8
+spring.freemarker.request-context-attribute=request
+
+### mybatis
+mybatis.mapper-locations=classpath:/mybatis-mapper/*Mapper.xml
+
+### xxl-job, datasource
+spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl-job?Unicode=true&characterEncoding=UTF-8
+spring.datasource.username=root
+spring.datasource.password=root_pwd
+spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+
+spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
+spring.datasource.tomcat.max-wait=10000
+spring.datasource.tomcat.max-active=30
+spring.datasource.tomcat.test-on-borrow=true
+
+### xxl-job email
+xxl.job.mail.host=smtp.163.com
+xxl.job.mail.port=25
+xxl.job.mail.ssl=false
+xxl.job.mail.username=ovono802302@163.com
+xxl.job.mail.password=asdfzxcv
+xxl.job.mail.sendNick=《任务调度平台XXL-JOB》
+
+### xxl-job login
+xxl.job.login.username=admin
+xxl.job.login.password=123456
+
+### xxl-job, access token
+xxl.job.accessToken=
+
+### xxl-job, i18n (default empty as chinese, "en" as english)
+xxl.job.i18n=
diff --git a/xxl-job-admin/src/main/resources/freemarker.properties b/xxl-job-admin/src/main/resources/freemarker.properties
deleted file mode 100644
index fbc42ea5..00000000
--- a/xxl-job-admin/src/main/resources/freemarker.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-template_update_delay=0
-default_encoding=UTF-8
-output_encoding=UTF-8
-locale=zh_CN
-number_format=0.##########
-date_format=yyyy-MM-dd
-time_format=HH:mm:ss
-datetime_format=yyyy-MM-dd HH:mm:s
-classic_compatible=true
-template_exception_handler=ignore
\ No newline at end of file
diff --git a/xxl-job-admin/src/main/resources/log4j.xml b/xxl-job-admin/src/main/resources/log4j.xml
deleted file mode 100644
index b62da198..00000000
--- a/xxl-job-admin/src/main/resources/log4j.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/xxl-job-admin/src/main/resources/logback.xml b/xxl-job-admin/src/main/resources/logback.xml
new file mode 100644
index 00000000..d4b08c24
--- /dev/null
+++ b/xxl-job-admin/src/main/resources/logback.xml
@@ -0,0 +1,29 @@
+
+
+
+ logback
+
+
+
+
+ %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+ ${log.path}
+
+ ${log.path}.%d{yyyy-MM-dd}.zip
+
+
+ %date %level [%thread] %logger{36} [%file : %line] %msg%n
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/xxl-job-admin/src/main/resources/spring/applicationcontext-base.xml b/xxl-job-admin/src/main/resources/spring/applicationcontext-base.xml
deleted file mode 100644
index 003649cf..00000000
--- a/xxl-job-admin/src/main/resources/spring/applicationcontext-base.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/xxl-job-admin/src/main/resources/spring/applicationcontext-xxl-job-admin.xml b/xxl-job-admin/src/main/resources/spring/applicationcontext-xxl-job-admin.xml
deleted file mode 100644
index c603f5f6..00000000
--- a/xxl-job-admin/src/main/resources/spring/applicationcontext-xxl-job-admin.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
-
-
-
-
-
- classpath*:xxl-job-admin.properties
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/xxl-job-admin/src/main/resources/spring/springmvc-context.xml b/xxl-job-admin/src/main/resources/spring/springmvc-context.xml
deleted file mode 100644
index a6285b90..00000000
--- a/xxl-job-admin/src/main/resources/spring/springmvc-context.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/css/bootstrap.css.map b/xxl-job-admin/src/main/resources/static/adminlte/bootstrap/css/bootstrap.css.map
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/css/bootstrap.css.map
rename to xxl-job-admin/src/main/resources/static/adminlte/bootstrap/css/bootstrap.css.map
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/css/bootstrap.min.css b/xxl-job-admin/src/main/resources/static/adminlte/bootstrap/css/bootstrap.min.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/css/bootstrap.min.css
rename to xxl-job-admin/src/main/resources/static/adminlte/bootstrap/css/bootstrap.min.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.eot b/xxl-job-admin/src/main/resources/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.eot
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.eot
rename to xxl-job-admin/src/main/resources/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.eot
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.svg b/xxl-job-admin/src/main/resources/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.svg
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.svg
rename to xxl-job-admin/src/main/resources/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.svg
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.ttf b/xxl-job-admin/src/main/resources/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.ttf
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.ttf
rename to xxl-job-admin/src/main/resources/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.ttf
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.woff b/xxl-job-admin/src/main/resources/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.woff
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.woff
rename to xxl-job-admin/src/main/resources/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.woff
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.woff2
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/bootstrap/fonts/glyphicons-halflings-regular.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/js/bootstrap.min.js b/xxl-job-admin/src/main/resources/static/adminlte/bootstrap/js/bootstrap.min.js
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/bootstrap/js/bootstrap.min.js
rename to xxl-job-admin/src/main/resources/static/adminlte/bootstrap/js/bootstrap.min.js
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/AdminLTE-local.min.css b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/AdminLTE-local.min.css
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/AdminLTE-local.min.css
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/AdminLTE-local.min.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/AdminLTE.min.css b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/AdminLTE.min.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/AdminLTE.min.css
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/AdminLTE.min.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoM40tgx99jmYGv_xzYuwd1rU.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoM40tgx99jmYGv_xzYuwd1rU.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoM40tgx99jmYGv_xzYuwd1rU.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoM40tgx99jmYGv_xzYuwd1rU.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoM7YHq4FgHI02B8rPccK0FJQ.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoM7YHq4FgHI02B8rPccK0FJQ.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoM7YHq4FgHI02B8rPccK0FJQ.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoM7YHq4FgHI02B8rPccK0FJQ.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoMxgy2Fsj5sj3EzlXpqVXRKo.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoMxgy2Fsj5sj3EzlXpqVXRKo.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoMxgy2Fsj5sj3EzlXpqVXRKo.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/M2Jd71oPJhLKp0zdtTvoMxgy2Fsj5sj3EzlXpqVXRKo.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlC2Q8seG17bfDXYR_jUsrzg.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlC2Q8seG17bfDXYR_jUsrzg.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlC2Q8seG17bfDXYR_jUsrzg.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlC2Q8seG17bfDXYR_jUsrzg.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY[0].woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY[0].woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY[0].woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNOAHFN6BivSraYkjhveRHY[0].woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNV_2ngZ8dMf8fLgjYEouxg.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNV_2ngZ8dMf8fLgjYEouxg.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNV_2ngZ8dMf8fLgjYEouxg.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/ODelI1aHBYDBqgeIAH2zlNV_2ngZ8dMf8fLgjYEouxg.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6CzM2XYAq8cDhaXsrN8WXcA.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6CzM2XYAq8cDhaXsrN8WXcA.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6CzM2XYAq8cDhaXsrN8WXcA.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6CzM2XYAq8cDhaXsrN8WXcA.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6E78GtRp3lhchupCJNw8t58.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6E78GtRp3lhchupCJNw8t58.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6E78GtRp3lhchupCJNw8t58.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6E78GtRp3lhchupCJNw8t58.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6GQKuzMuncr0JB710wa2dPI.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6GQKuzMuncr0JB710wa2dPI.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6GQKuzMuncr0JB710wa2dPI.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6GQKuzMuncr0JB710wa2dPI.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6Lpx497t94oDua8KfAL9f-E.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6Lpx497t94oDua8KfAL9f-E.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6Lpx497t94oDua8KfAL9f-E.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6Lpx497t94oDua8KfAL9f-E.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6MAjkyiewWYrWZc50I8hK7I.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6MAjkyiewWYrWZc50I8hK7I.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6MAjkyiewWYrWZc50I8hK7I.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6MAjkyiewWYrWZc50I8hK7I.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6OXKTZYPNtG1yMB_YJSqlic.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6OXKTZYPNtG1yMB_YJSqlic.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6OXKTZYPNtG1yMB_YJSqlic.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/fpTVHK8qsXbIeTHTrnQH6OXKTZYPNtG1yMB_YJSqlic.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGCOFnW3Jk0f09zW_Yln67Ac.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGCOFnW3Jk0f09zW_Yln67Ac.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGCOFnW3Jk0f09zW_Yln67Ac.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGCOFnW3Jk0f09zW_Yln67Ac.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGClYwVOhDRq2vbpGRTZ7bbs.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGClYwVOhDRq2vbpGRTZ7bbs.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGClYwVOhDRq2vbpGRTZ7bbs.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGClYwVOhDRq2vbpGRTZ7bbs.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGDRVvBvQIc1z78c__uoBcyI.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGDRVvBvQIc1z78c__uoBcyI.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGDRVvBvQIc1z78c__uoBcyI.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGDRVvBvQIc1z78c__uoBcyI.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGD_j0nMiB9fPhg_k1wdK2h0.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGD_j0nMiB9fPhg_k1wdK2h0.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGD_j0nMiB9fPhg_k1wdK2h0.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGD_j0nMiB9fPhg_k1wdK2h0.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGDovqjS_dXPZszO_XltPdNg.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGDovqjS_dXPZszO_XltPdNg.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGDovqjS_dXPZszO_XltPdNg.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGDovqjS_dXPZszO_XltPdNg.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGEo0As1BFRXtCDhS66znb_k.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGEo0As1BFRXtCDhS66znb_k.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGEo0As1BFRXtCDhS66znb_k.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGEo0As1BFRXtCDhS66znb_k.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGFKFh1TDTPrUZWzVp6FtpG8.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGFKFh1TDTPrUZWzVp6FtpG8.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGFKFh1TDTPrUZWzVp6FtpG8.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGFKFh1TDTPrUZWzVp6FtpG8.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGFxe-GPfKKFmiXaJ_Q0GFr8.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGFxe-GPfKKFmiXaJ_Q0GFr8.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGFxe-GPfKKFmiXaJ_Q0GFr8.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGFxe-GPfKKFmiXaJ_Q0GFr8.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGOode0-EuMkY--TSyExeINg.woff2 b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGOode0-EuMkY--TSyExeINg.woff2
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGOode0-EuMkY--TSyExeINg.woff2
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/fonts/toadOcfmlt9b38dHJxOBGOode0-EuMkY--TSyExeINg.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/local.google.fonts.css b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/local.google.fonts.css
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/google-local/local.google.fonts.css
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/google-local/local.google.fonts.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/css/skins/_all-skins.min.css b/xxl-job-admin/src/main/resources/static/adminlte/dist/css/skins/_all-skins.min.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/css/skins/_all-skins.min.css
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/css/skins/_all-skins.min.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/dist/js/app.min.js b/xxl-job-admin/src/main/resources/static/adminlte/dist/js/app.min.js
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/dist/js/app.min.js
rename to xxl-job-admin/src/main/resources/static/adminlte/dist/js/app.min.js
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/dataTables.bootstrap.css b/xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/dataTables.bootstrap.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/dataTables.bootstrap.css
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/dataTables.bootstrap.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/dataTables.bootstrap.min.js b/xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/dataTables.bootstrap.min.js
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/dataTables.bootstrap.min.js
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/dataTables.bootstrap.min.js
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/images/sort_asc.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/images/sort_asc.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/images/sort_asc.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/images/sort_asc.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/images/sort_asc_disabled.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/images/sort_asc_disabled.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/images/sort_asc_disabled.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/images/sort_asc_disabled.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/images/sort_both.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/images/sort_both.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/images/sort_both.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/images/sort_both.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/images/sort_desc.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/images/sort_desc.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/images/sort_desc.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/images/sort_desc.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/images/sort_desc_disabled.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/images/sort_desc_disabled.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/images/sort_desc_disabled.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/images/sort_desc_disabled.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/jquery.dataTables.min.css b/xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/jquery.dataTables.min.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/jquery.dataTables.min.css
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/jquery.dataTables.min.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/jquery.dataTables.min.js b/xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/jquery.dataTables.min.js
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/jquery.dataTables.min.js
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/jquery.dataTables.min.js
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/jquery.dataTables_themeroller.css b/xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/jquery.dataTables_themeroller.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/datatables/jquery.dataTables_themeroller.css
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/datatables/jquery.dataTables_themeroller.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/daterangepicker/daterangepicker.css b/xxl-job-admin/src/main/resources/static/adminlte/plugins/daterangepicker/daterangepicker.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/daterangepicker/daterangepicker.css
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/daterangepicker/daterangepicker.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/daterangepicker/daterangepicker.js b/xxl-job-admin/src/main/resources/static/adminlte/plugins/daterangepicker/daterangepicker.js
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/daterangepicker/daterangepicker.js
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/daterangepicker/daterangepicker.js
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/daterangepicker/moment.min.js b/xxl-job-admin/src/main/resources/static/adminlte/plugins/daterangepicker/moment.min.js
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/daterangepicker/moment.min.js
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/daterangepicker/moment.min.js
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/fastclick/fastclick.min.js b/xxl-job-admin/src/main/resources/static/adminlte/plugins/fastclick/fastclick.min.js
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/fastclick/fastclick.min.js
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/fastclick/fastclick.min.js
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/icheck.min.js b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/icheck.min.js
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/icheck.min.js
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/icheck.min.js
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/_all.css b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/_all.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/_all.css
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/_all.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/aero.css b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/aero.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/aero.css
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/aero.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/aero.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/aero.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/aero.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/aero.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/aero@2x.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/aero@2x.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/aero@2x.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/aero@2x.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/blue.css b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/blue.css
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/blue.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/blue.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/blue@2x.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue@2x.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/blue@2x.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue@2x.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/green.css b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/green.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/green.css
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/green.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/green.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/green.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/green.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/green.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/green@2x.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/green@2x.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/green@2x.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/green@2x.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/grey.css b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/grey.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/grey.css
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/grey.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/grey.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/grey.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/grey.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/grey.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/grey@2x.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/grey@2x.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/grey@2x.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/grey@2x.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/orange.css b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/orange.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/orange.css
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/orange.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/orange.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/orange.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/orange.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/orange.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/orange@2x.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/orange@2x.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/orange@2x.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/orange@2x.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/pink.css b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/pink.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/pink.css
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/pink.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/pink.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/pink.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/pink.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/pink.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/pink@2x.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/pink@2x.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/pink@2x.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/pink@2x.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/purple.css b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/purple.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/purple.css
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/purple.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/purple.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/purple.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/purple.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/purple.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/purple@2x.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/purple@2x.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/purple@2x.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/purple@2x.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/red.css b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/red.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/red.css
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/red.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/red.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/red.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/red.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/red.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/red@2x.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/red@2x.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/red@2x.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/red@2x.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/square.css b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/square.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/square.css
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/square.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/square.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/square.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/square.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/square.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/square@2x.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/square@2x.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/square@2x.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/square@2x.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/yellow.css b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/yellow.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/yellow.css
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/yellow.css
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/yellow.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/yellow.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/yellow.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/yellow.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/yellow@2x.png b/xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/yellow@2x.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/iCheck/square/yellow@2x.png
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/iCheck/square/yellow@2x.png
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/jQuery/jquery-2.2.3.min.js b/xxl-job-admin/src/main/resources/static/adminlte/plugins/jQuery/jquery-2.2.3.min.js
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/jQuery/jquery-2.2.3.min.js
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/jQuery/jquery-2.2.3.min.js
diff --git a/xxl-job-admin/src/main/webapp/static/adminlte/plugins/slimScroll/jquery.slimscroll.min.js b/xxl-job-admin/src/main/resources/static/adminlte/plugins/slimScroll/jquery.slimscroll.min.js
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/adminlte/plugins/slimScroll/jquery.slimscroll.min.js
rename to xxl-job-admin/src/main/resources/static/adminlte/plugins/slimScroll/jquery.slimscroll.min.js
diff --git a/xxl-job-admin/src/main/webapp/favicon.ico b/xxl-job-admin/src/main/resources/static/favicon.ico
similarity index 100%
rename from xxl-job-admin/src/main/webapp/favicon.ico
rename to xxl-job-admin/src/main/resources/static/favicon.ico
diff --git a/xxl-job-admin/src/main/webapp/static/js/common.1.js b/xxl-job-admin/src/main/resources/static/js/common.1.js
similarity index 96%
rename from xxl-job-admin/src/main/webapp/static/js/common.1.js
rename to xxl-job-admin/src/main/resources/static/js/common.1.js
index 1fd6c37b..458ebe65 100644
--- a/xxl-job-admin/src/main/webapp/static/js/common.1.js
+++ b/xxl-job-admin/src/main/resources/static/js/common.1.js
@@ -1,92 +1,92 @@
-$(function(){
-
- // logout
- $("#logoutBtn").click(function(){
- layer.confirm( I18n.logout_confirm , {
- icon: 3,
- title: I18n.system_tips ,
- btn: [ I18n.system_ok, I18n.system_cancel ]
- }, function(index){
- layer.close(index);
-
- $.post(base_url + "/logout", function(data, status) {
- if (data.code == "200") {
- layer.msg( I18n.logout_success );
- setTimeout(function(){
- window.location.href = base_url + "/";
- }, 500);
- } else {
- layer.open({
- title: I18n.system_tips ,
- btn: [ I18n.system_ok ],
- content: (data.msg || I18n.logout_fail),
- icon: '2'
- });
- }
- });
- });
-
- });
-
- // slideToTop
- var slideToTop = $("");
- slideToTop.html('');
- slideToTop.css({
- position: 'fixed',
- bottom: '20px',
- right: '25px',
- width: '40px',
- height: '40px',
- color: '#eee',
- 'font-size': '',
- 'line-height': '40px',
- 'text-align': 'center',
- 'background-color': '#222d32',
- cursor: 'pointer',
- 'border-radius': '5px',
- 'z-index': '99999',
- opacity: '.7',
- 'display': 'none'
- });
- slideToTop.on('mouseenter', function () {
- $(this).css('opacity', '1');
- });
- slideToTop.on('mouseout', function () {
- $(this).css('opacity', '.7');
- });
- $('.wrapper').append(slideToTop);
- $(window).scroll(function () {
- if ($(window).scrollTop() >= 150) {
- if (!$(slideToTop).is(':visible')) {
- $(slideToTop).fadeIn(500);
- }
- } else {
- $(slideToTop).fadeOut(500);
- }
- });
- $(slideToTop).click(function () {
- $("html,body").animate({ // firefox ie not support body, chrome support body. but found that new version chrome not support body too.
- scrollTop: 0
- }, 100);
- });
-
- // left menu status v: js + server + cookie
- $('.sidebar-toggle').click(function(){
- var xxljob_adminlte_settings = $.cookie('xxljob_adminlte_settings'); // on=open,off=close
- if ('off' == xxljob_adminlte_settings) {
- xxljob_adminlte_settings = 'on';
- } else {
- xxljob_adminlte_settings = 'off';
- }
- $.cookie('xxljob_adminlte_settings', xxljob_adminlte_settings, { expires: 7 }); //$.cookie('the_cookie', '', { expires: -1 });
- });
-
- // left menu status v1: js + cookie
- /*
- var xxljob_adminlte_settings = $.cookie('xxljob_adminlte_settings');
- if (xxljob_adminlte_settings == 'off') {
- $('body').addClass('sidebar-collapse');
- }
- */
-
-});
+$(function(){
+
+ // logout
+ $("#logoutBtn").click(function(){
+ layer.confirm( I18n.logout_confirm , {
+ icon: 3,
+ title: I18n.system_tips ,
+ btn: [ I18n.system_ok, I18n.system_cancel ]
+ }, function(index){
+ layer.close(index);
+
+ $.post(base_url + "/logout", function(data, status) {
+ if (data.code == "200") {
+ layer.msg( I18n.logout_success );
+ setTimeout(function(){
+ window.location.href = base_url + "/";
+ }, 500);
+ } else {
+ layer.open({
+ title: I18n.system_tips ,
+ btn: [ I18n.system_ok ],
+ content: (data.msg || I18n.logout_fail),
+ icon: '2'
+ });
+ }
+ });
+ });
+
+ });
+
+ // slideToTop
+ var slideToTop = $("");
+ slideToTop.html('');
+ slideToTop.css({
+ position: 'fixed',
+ bottom: '20px',
+ right: '25px',
+ width: '40px',
+ height: '40px',
+ color: '#eee',
+ 'font-size': '',
+ 'line-height': '40px',
+ 'text-align': 'center',
+ 'background-color': '#222d32',
+ cursor: 'pointer',
+ 'border-radius': '5px',
+ 'z-index': '99999',
+ opacity: '.7',
+ 'display': 'none'
+ });
+ slideToTop.on('mouseenter', function () {
+ $(this).css('opacity', '1');
+ });
+ slideToTop.on('mouseout', function () {
+ $(this).css('opacity', '.7');
+ });
+ $('.wrapper').append(slideToTop);
+ $(window).scroll(function () {
+ if ($(window).scrollTop() >= 150) {
+ if (!$(slideToTop).is(':visible')) {
+ $(slideToTop).fadeIn(500);
+ }
+ } else {
+ $(slideToTop).fadeOut(500);
+ }
+ });
+ $(slideToTop).click(function () {
+ $("html,body").animate({ // firefox ie not support body, chrome support body. but found that new version chrome not support body too.
+ scrollTop: 0
+ }, 100);
+ });
+
+ // left menu status v: js + server + cookie
+ $('.sidebar-toggle').click(function(){
+ var xxljob_adminlte_settings = $.cookie('xxljob_adminlte_settings'); // on=open,off=close
+ if ('off' == xxljob_adminlte_settings) {
+ xxljob_adminlte_settings = 'on';
+ } else {
+ xxljob_adminlte_settings = 'off';
+ }
+ $.cookie('xxljob_adminlte_settings', xxljob_adminlte_settings, { expires: 7 }); //$.cookie('the_cookie', '', { expires: -1 });
+ });
+
+ // left menu status v1: js + cookie
+ /*
+ var xxljob_adminlte_settings = $.cookie('xxljob_adminlte_settings');
+ if (xxljob_adminlte_settings == 'off') {
+ $('body').addClass('sidebar-collapse');
+ }
+ */
+
+});
diff --git a/xxl-job-admin/src/main/webapp/static/js/index.js b/xxl-job-admin/src/main/resources/static/js/index.js
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/js/index.js
rename to xxl-job-admin/src/main/resources/static/js/index.js
diff --git a/xxl-job-admin/src/main/webapp/static/js/jobcode.index.1.js b/xxl-job-admin/src/main/resources/static/js/jobcode.index.1.js
similarity index 95%
rename from xxl-job-admin/src/main/webapp/static/js/jobcode.index.1.js
rename to xxl-job-admin/src/main/resources/static/js/jobcode.index.1.js
index 09c41fbd..668d6347 100644
--- a/xxl-job-admin/src/main/webapp/static/js/jobcode.index.1.js
+++ b/xxl-job-admin/src/main/resources/static/js/jobcode.index.1.js
@@ -1,97 +1,97 @@
-$(function() {
-
- // init code editor
- var codeEditor;
- function initIde(glueSource) {
- if (codeEditor == null) {
- codeEditor = CodeMirror(document.getElementById("ideWindow"), {
- mode : ideMode,
- lineNumbers : true,
- matchBrackets : true,
- value: glueSource
- });
- } else {
- codeEditor.setValue(glueSource);
- }
- }
-
- initIde($("#version_now").val());
-
- // code change
- $(".source_version").click(function(){
- var sourceId = $(this).attr('version');
- var temp = $( "#" + sourceId ).val();
-
- //codeEditor.setValue('');
- initIde(temp);
- });
-
- // code source save
- $("#save").click(function() {
- $('#saveModal').modal({backdrop: false, keyboard: false}).modal('show');
- });
-
- $("#saveModal .ok").click(function() {
-
- var glueSource = codeEditor.getValue();
- var glueRemark = $("#glueRemark").val();
-
- if (!glueRemark) {
- layer.open({
- title: I18n.system_tips,
- btn: [ I18n.system_ok],
- content: I18n.system_please_input + I18n.jobinfo_glue_remark ,
- icon: '2'
- });
- return;
- }
- if (glueRemark.length <4 || glueRemark.length > 100) {
- layer.open({
- title: I18n.system_tips ,
- btn: [ I18n.system_ok ],
- content: I18n.jobinfo_glue_remark_limit ,
- icon: '2'
- });
- return;
- }
-
- $.ajax({
- type : 'POST',
- url : base_url + '/jobcode/save',
- data : {
- 'id' : id,
- 'glueSource' : glueSource,
- 'glueRemark' : glueRemark
- },
- dataType : "json",
- success : function(data){
- if (data.code == 200) {
- layer.open({
- title: I18n.system_tips,
- btn: [ I18n.system_ok ],
- content: (I18n.system_save + I18n.system_success) ,
- icon: '1',
- end: function(layero, index){
- //$(window).unbind('beforeunload');
- window.location.reload();
- }
- });
- } else {
- layer.open({
- title: I18n.system_tips,
- btn: [ I18n.system_ok ],
- content: (data.msg || (I18n.system_save + I18n.system_fail) ),
- icon: '2'
- });
- }
- }
- });
-
- });
-
- // before upload
- /*$(window).bind('beforeunload',function(){
- return 'Glue尚未保存,确定离开Glue编辑器?';
- });*/
-
-});
+$(function() {
+
+ // init code editor
+ var codeEditor;
+ function initIde(glueSource) {
+ if (codeEditor == null) {
+ codeEditor = CodeMirror(document.getElementById("ideWindow"), {
+ mode : ideMode,
+ lineNumbers : true,
+ matchBrackets : true,
+ value: glueSource
+ });
+ } else {
+ codeEditor.setValue(glueSource);
+ }
+ }
+
+ initIde($("#version_now").val());
+
+ // code change
+ $(".source_version").click(function(){
+ var sourceId = $(this).attr('version');
+ var temp = $( "#" + sourceId ).val();
+
+ //codeEditor.setValue('');
+ initIde(temp);
+ });
+
+ // code source save
+ $("#save").click(function() {
+ $('#saveModal').modal({backdrop: false, keyboard: false}).modal('show');
+ });
+
+ $("#saveModal .ok").click(function() {
+
+ var glueSource = codeEditor.getValue();
+ var glueRemark = $("#glueRemark").val();
+
+ if (!glueRemark) {
+ layer.open({
+ title: I18n.system_tips,
+ btn: [ I18n.system_ok],
+ content: I18n.system_please_input + I18n.jobinfo_glue_remark ,
+ icon: '2'
+ });
+ return;
+ }
+ if (glueRemark.length <4 || glueRemark.length > 100) {
+ layer.open({
+ title: I18n.system_tips ,
+ btn: [ I18n.system_ok ],
+ content: I18n.jobinfo_glue_remark_limit ,
+ icon: '2'
+ });
+ return;
+ }
+
+ $.ajax({
+ type : 'POST',
+ url : base_url + '/jobcode/save',
+ data : {
+ 'id' : id,
+ 'glueSource' : glueSource,
+ 'glueRemark' : glueRemark
+ },
+ dataType : "json",
+ success : function(data){
+ if (data.code == 200) {
+ layer.open({
+ title: I18n.system_tips,
+ btn: [ I18n.system_ok ],
+ content: (I18n.system_save + I18n.system_success) ,
+ icon: '1',
+ end: function(layero, index){
+ //$(window).unbind('beforeunload');
+ window.location.reload();
+ }
+ });
+ } else {
+ layer.open({
+ title: I18n.system_tips,
+ btn: [ I18n.system_ok ],
+ content: (data.msg || (I18n.system_save + I18n.system_fail) ),
+ icon: '2'
+ });
+ }
+ }
+ });
+
+ });
+
+ // before upload
+ /*$(window).bind('beforeunload',function(){
+ return 'Glue尚未保存,确定离开Glue编辑器?';
+ });*/
+
+});
diff --git a/xxl-job-admin/src/main/webapp/static/js/jobgroup.index.1.js b/xxl-job-admin/src/main/resources/static/js/jobgroup.index.1.js
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/js/jobgroup.index.1.js
rename to xxl-job-admin/src/main/resources/static/js/jobgroup.index.1.js
diff --git a/xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js b/xxl-job-admin/src/main/resources/static/js/jobinfo.index.1.js
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js
rename to xxl-job-admin/src/main/resources/static/js/jobinfo.index.1.js
diff --git a/xxl-job-admin/src/main/webapp/static/js/joblog.detail.1.js b/xxl-job-admin/src/main/resources/static/js/joblog.detail.1.js
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/js/joblog.detail.1.js
rename to xxl-job-admin/src/main/resources/static/js/joblog.detail.1.js
diff --git a/xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js b/xxl-job-admin/src/main/resources/static/js/joblog.index.1.js
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js
rename to xxl-job-admin/src/main/resources/static/js/joblog.index.1.js
diff --git a/xxl-job-admin/src/main/webapp/static/js/login.1.js b/xxl-job-admin/src/main/resources/static/js/login.1.js
similarity index 96%
rename from xxl-job-admin/src/main/webapp/static/js/login.1.js
rename to xxl-job-admin/src/main/resources/static/js/login.1.js
index b86e08f0..574d194a 100644
--- a/xxl-job-admin/src/main/webapp/static/js/login.1.js
+++ b/xxl-job-admin/src/main/resources/static/js/login.1.js
@@ -1,66 +1,66 @@
-$(function(){
-
- // input iCheck
- $('input').iCheck({
- checkboxClass: 'icheckbox_square-blue',
- radioClass: 'iradio_square-blue',
- increaseArea: '20%' // optional
- });
-
- // login Form Valid
- var loginFormValid = $("#loginForm").validate({
- errorElement : 'span',
- errorClass : 'help-block',
- focusInvalid : true,
- rules : {
- userName : {
- required : true ,
- minlength: 5,
- maxlength: 18
- },
- password : {
- required : true ,
- minlength: 5,
- maxlength: 18
- }
- },
- messages : {
- userName : {
- required : I18n.login_username_empty,
- minlength : I18n.login_username_lt_5
- },
- password : {
- required : I18n.login_password_empty ,
- minlength : I18n.login_password_lt_5
- /*,maxlength:"登录密码不应超过18位"*/
- }
- },
- highlight : function(element) {
- $(element).closest('.form-group').addClass('has-error');
- },
- success : function(label) {
- label.closest('.form-group').removeClass('has-error');
- label.remove();
- },
- errorPlacement : function(error, element) {
- element.parent('div').append(error);
- },
- submitHandler : function(form) {
- $.post(base_url + "/login", $("#loginForm").serialize(), function(data, status) {
- if (data.code == "200") {
- layer.msg( I18n.login_success );
- setTimeout(function(){
- window.location.href = base_url;
- }, 500);
- } else {
- layer.open({
- title: I18n.system_tips,
- btn: [ I18n.system_ok ],
- content: (data.msg || I18n.login_fail ),
- icon: '2'
- });
- }
- });
- }
- });
+$(function(){
+
+ // input iCheck
+ $('input').iCheck({
+ checkboxClass: 'icheckbox_square-blue',
+ radioClass: 'iradio_square-blue',
+ increaseArea: '20%' // optional
+ });
+
+ // login Form Valid
+ var loginFormValid = $("#loginForm").validate({
+ errorElement : 'span',
+ errorClass : 'help-block',
+ focusInvalid : true,
+ rules : {
+ userName : {
+ required : true ,
+ minlength: 5,
+ maxlength: 18
+ },
+ password : {
+ required : true ,
+ minlength: 5,
+ maxlength: 18
+ }
+ },
+ messages : {
+ userName : {
+ required : I18n.login_username_empty,
+ minlength : I18n.login_username_lt_5
+ },
+ password : {
+ required : I18n.login_password_empty ,
+ minlength : I18n.login_password_lt_5
+ /*,maxlength:"登录密码不应超过18位"*/
+ }
+ },
+ highlight : function(element) {
+ $(element).closest('.form-group').addClass('has-error');
+ },
+ success : function(label) {
+ label.closest('.form-group').removeClass('has-error');
+ label.remove();
+ },
+ errorPlacement : function(error, element) {
+ element.parent('div').append(error);
+ },
+ submitHandler : function(form) {
+ $.post(base_url + "/login", $("#loginForm").serialize(), function(data, status) {
+ if (data.code == "200") {
+ layer.msg( I18n.login_success );
+ setTimeout(function(){
+ window.location.href = base_url;
+ }, 500);
+ } else {
+ layer.open({
+ title: I18n.system_tips,
+ btn: [ I18n.system_ok ],
+ content: (data.msg || I18n.login_fail ),
+ icon: '2'
+ });
+ }
+ });
+ }
+ });
});
\ No newline at end of file
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/codemirror/addon/hint/anyword-hint.js b/xxl-job-admin/src/main/resources/static/plugins/codemirror/addon/hint/anyword-hint.js
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/codemirror/addon/hint/anyword-hint.js
rename to xxl-job-admin/src/main/resources/static/plugins/codemirror/addon/hint/anyword-hint.js
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/codemirror/addon/hint/show-hint.css b/xxl-job-admin/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.css
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/codemirror/addon/hint/show-hint.css
rename to xxl-job-admin/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.css
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/codemirror/addon/hint/show-hint.js b/xxl-job-admin/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.js
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/codemirror/addon/hint/show-hint.js
rename to xxl-job-admin/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.js
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/codemirror/lib/codemirror.css b/xxl-job-admin/src/main/resources/static/plugins/codemirror/lib/codemirror.css
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/codemirror/lib/codemirror.css
rename to xxl-job-admin/src/main/resources/static/plugins/codemirror/lib/codemirror.css
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/codemirror/lib/codemirror.js b/xxl-job-admin/src/main/resources/static/plugins/codemirror/lib/codemirror.js
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/codemirror/lib/codemirror.js
rename to xxl-job-admin/src/main/resources/static/plugins/codemirror/lib/codemirror.js
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/codemirror/mode/clike/clike.js b/xxl-job-admin/src/main/resources/static/plugins/codemirror/mode/clike/clike.js
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/codemirror/mode/clike/clike.js
rename to xxl-job-admin/src/main/resources/static/plugins/codemirror/mode/clike/clike.js
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/codemirror/mode/javascript/javascript.js b/xxl-job-admin/src/main/resources/static/plugins/codemirror/mode/javascript/javascript.js
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/codemirror/mode/javascript/javascript.js
rename to xxl-job-admin/src/main/resources/static/plugins/codemirror/mode/javascript/javascript.js
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/codemirror/mode/php/php.js b/xxl-job-admin/src/main/resources/static/plugins/codemirror/mode/php/php.js
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/codemirror/mode/php/php.js
rename to xxl-job-admin/src/main/resources/static/plugins/codemirror/mode/php/php.js
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/codemirror/mode/powershell/powershell.js b/xxl-job-admin/src/main/resources/static/plugins/codemirror/mode/powershell/powershell.js
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/codemirror/mode/powershell/powershell.js
rename to xxl-job-admin/src/main/resources/static/plugins/codemirror/mode/powershell/powershell.js
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/codemirror/mode/python/python.js b/xxl-job-admin/src/main/resources/static/plugins/codemirror/mode/python/python.js
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/codemirror/mode/python/python.js
rename to xxl-job-admin/src/main/resources/static/plugins/codemirror/mode/python/python.js
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/codemirror/mode/shell/shell.js b/xxl-job-admin/src/main/resources/static/plugins/codemirror/mode/shell/shell.js
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/codemirror/mode/shell/shell.js
rename to xxl-job-admin/src/main/resources/static/plugins/codemirror/mode/shell/shell.js
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/echarts/echarts.common.min.js b/xxl-job-admin/src/main/resources/static/plugins/echarts/echarts.common.min.js
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/echarts/echarts.common.min.js
rename to xxl-job-admin/src/main/resources/static/plugins/echarts/echarts.common.min.js
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/css/font-awesome.css.map b/xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/css/font-awesome.css.map
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/css/font-awesome.css.map
rename to xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/css/font-awesome.css.map
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/css/font-awesome.min.css b/xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/css/font-awesome.min.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/css/font-awesome.min.css
rename to xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/css/font-awesome.min.css
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/fonts/FontAwesome.otf b/xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/fonts/FontAwesome.otf
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/fonts/FontAwesome.otf
rename to xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/fonts/FontAwesome.otf
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.eot b/xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.eot
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.eot
rename to xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.eot
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.svg b/xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.svg
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.svg
rename to xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.svg
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.ttf b/xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.ttf
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.ttf
rename to xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.ttf
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.woff b/xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.woff
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.woff
rename to xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.woff
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.woff2 b/xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.woff2
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.woff2
rename to xxl-job-admin/src/main/resources/static/plugins/font-awesome-4.5.0/fonts/fontawesome-webfont.woff2
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/ionicons-2.0.1/css/ionicons.min.css b/xxl-job-admin/src/main/resources/static/plugins/ionicons-2.0.1/css/ionicons.min.css
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/ionicons-2.0.1/css/ionicons.min.css
rename to xxl-job-admin/src/main/resources/static/plugins/ionicons-2.0.1/css/ionicons.min.css
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/ionicons-2.0.1/fonts/ionicons.eot b/xxl-job-admin/src/main/resources/static/plugins/ionicons-2.0.1/fonts/ionicons.eot
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/ionicons-2.0.1/fonts/ionicons.eot
rename to xxl-job-admin/src/main/resources/static/plugins/ionicons-2.0.1/fonts/ionicons.eot
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/ionicons-2.0.1/fonts/ionicons.svg b/xxl-job-admin/src/main/resources/static/plugins/ionicons-2.0.1/fonts/ionicons.svg
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/ionicons-2.0.1/fonts/ionicons.svg
rename to xxl-job-admin/src/main/resources/static/plugins/ionicons-2.0.1/fonts/ionicons.svg
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/ionicons-2.0.1/fonts/ionicons.ttf b/xxl-job-admin/src/main/resources/static/plugins/ionicons-2.0.1/fonts/ionicons.ttf
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/ionicons-2.0.1/fonts/ionicons.ttf
rename to xxl-job-admin/src/main/resources/static/plugins/ionicons-2.0.1/fonts/ionicons.ttf
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/ionicons-2.0.1/fonts/ionicons.woff b/xxl-job-admin/src/main/resources/static/plugins/ionicons-2.0.1/fonts/ionicons.woff
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/ionicons-2.0.1/fonts/ionicons.woff
rename to xxl-job-admin/src/main/resources/static/plugins/ionicons-2.0.1/fonts/ionicons.woff
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/jquery/jquery.cookie.js b/xxl-job-admin/src/main/resources/static/plugins/jquery/jquery.cookie.js
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/jquery/jquery.cookie.js
rename to xxl-job-admin/src/main/resources/static/plugins/jquery/jquery.cookie.js
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/jquery/jquery.validate.min.js b/xxl-job-admin/src/main/resources/static/plugins/jquery/jquery.validate.min.js
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/jquery/jquery.validate.min.js
rename to xxl-job-admin/src/main/resources/static/plugins/jquery/jquery.validate.min.js
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/layer/layer.js b/xxl-job-admin/src/main/resources/static/plugins/layer/layer.js
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/layer/layer.js
rename to xxl-job-admin/src/main/resources/static/plugins/layer/layer.js
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/icon-ext.png b/xxl-job-admin/src/main/resources/static/plugins/layer/skin/default/icon-ext.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/icon-ext.png
rename to xxl-job-admin/src/main/resources/static/plugins/layer/skin/default/icon-ext.png
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/icon.png b/xxl-job-admin/src/main/resources/static/plugins/layer/skin/default/icon.png
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/icon.png
rename to xxl-job-admin/src/main/resources/static/plugins/layer/skin/default/icon.png
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/layer.css b/xxl-job-admin/src/main/resources/static/plugins/layer/skin/default/layer.css
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/layer.css
rename to xxl-job-admin/src/main/resources/static/plugins/layer/skin/default/layer.css
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/loading-0.gif b/xxl-job-admin/src/main/resources/static/plugins/layer/skin/default/loading-0.gif
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/loading-0.gif
rename to xxl-job-admin/src/main/resources/static/plugins/layer/skin/default/loading-0.gif
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/loading-1.gif b/xxl-job-admin/src/main/resources/static/plugins/layer/skin/default/loading-1.gif
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/loading-1.gif
rename to xxl-job-admin/src/main/resources/static/plugins/layer/skin/default/loading-1.gif
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/loading-2.gif b/xxl-job-admin/src/main/resources/static/plugins/layer/skin/default/loading-2.gif
old mode 100755
new mode 100644
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/layer/skin/default/loading-2.gif
rename to xxl-job-admin/src/main/resources/static/plugins/layer/skin/default/loading-2.gif
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/pace/pace.min.js b/xxl-job-admin/src/main/resources/static/plugins/pace/pace.min.js
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/pace/pace.min.js
rename to xxl-job-admin/src/main/resources/static/plugins/pace/pace.min.js
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/pace/themes/pace-theme-bounce.css b/xxl-job-admin/src/main/resources/static/plugins/pace/themes/pace-theme-bounce.css
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/pace/themes/pace-theme-bounce.css
rename to xxl-job-admin/src/main/resources/static/plugins/pace/themes/pace-theme-bounce.css
diff --git a/xxl-job-admin/src/main/webapp/static/plugins/pace/themes/pace-theme-flash.css b/xxl-job-admin/src/main/resources/static/plugins/pace/themes/pace-theme-flash.css
similarity index 100%
rename from xxl-job-admin/src/main/webapp/static/plugins/pace/themes/pace-theme-flash.css
rename to xxl-job-admin/src/main/resources/static/plugins/pace/themes/pace-theme-flash.css
diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.exception.ftl b/xxl-job-admin/src/main/resources/templates/common/common.exception.ftl
similarity index 95%
rename from xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.exception.ftl
rename to xxl-job-admin/src/main/resources/templates/common/common.exception.ftl
index b821e327..e448125e 100644
--- a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.exception.ftl
+++ b/xxl-job-admin/src/main/resources/templates/common/common.exception.ftl
@@ -1,31 +1,31 @@
-
-
-
-
- Error
-
-
-
-
-
-
-
-
System Error
-
${exceptionMsg}
-
Back
-
-
-
-
+
+
+
+
+ Error
+
+
+
+
+
+
+
+
System Error
+
${exceptionMsg}
+
Back
+
+
+
+