This commit is contained in:
thinkgem
2018-05-26 20:14:26 +08:00
parent dc3d70e96f
commit 65bd1c16e9
13 changed files with 118 additions and 33 deletions

View File

@@ -3,6 +3,7 @@
*/
package com.jeesite.modules.sys.db;
import org.quartz.CronTrigger;
import org.springframework.beans.factory.annotation.Autowired;
import com.jeesite.common.callback.MethodCallback;
@@ -13,6 +14,10 @@ import com.jeesite.common.tests.BaseInitDataTests;
import com.jeesite.modules.gen.entity.GenTable;
import com.jeesite.modules.gen.entity.GenTableColumn;
import com.jeesite.modules.gen.service.GenTableService;
import com.jeesite.modules.job.entity.JobEntity;
import com.jeesite.modules.job.service.JobService;
import com.jeesite.modules.msg.task.impl.MsgLocalMergePushTask;
import com.jeesite.modules.msg.task.impl.MsgLocalPushTask;
import com.jeesite.modules.sys.dao.RoleMenuDao;
import com.jeesite.modules.sys.entity.Area;
import com.jeesite.modules.sys.entity.Company;
@@ -366,6 +371,30 @@ public class InitCoreData extends BaseInitDataTests {
}
});
}
@Autowired
private JobService jobService;
/**
* 初始化消息推送服务
*/
public void initMsgPushJob(){
JobEntity job = new JobEntity(MsgLocalPushTask.class.getSimpleName(), "SYSTEM");
job.setDescription("消息推送服务 (实时推送)");
job.setInvokeTarget("msgLocalPushTask.execute()");
job.setCronExpression("0/3 * * * * ?");
job.setConcurrent(Global.NO);
job.setMisfireInstruction(CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING);
job.setStatus(JobEntity.STATUS_PAUSED);
jobService.insert(job);
job = new JobEntity(MsgLocalMergePushTask.class.getSimpleName(), "SYSTEM");
job.setDescription("消息推送服务 (延迟推送)");
job.setInvokeTarget("msgLocalMergePushTask.execute()");
job.setCronExpression("0 0/30 * * * ?");
job.setConcurrent(Global.NO);
job.setMisfireInstruction(CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING);
job.setStatus(JobEntity.STATUS_PAUSED);
jobService.insert(job);
}
@Autowired
private GenTableService genTableService;

View File

@@ -416,7 +416,7 @@ msg:
# 短信网关
sms:
beanName: smsSendService
url: http://host:port/msg/sendSms
url: http://localhost:80/msg/sendSms
data: account=demo&pswd=demo&product=
prefix: ~
suffix: 【JeeSite】

View File

@@ -1,6 +1,6 @@
-- 日志表新增执行时间字段
ALTER TABLE [dbo].[${_prefix}sys_log] ADD [execute_time] decimal(19) NULL;
ALTER TABLE ${_prefix}sys_log ADD execute_time decimal(19) NULL;
-- 重命名待推送为已完成消息表
execute sp_rename N'${_prefix}sys_msg_push_wait', N'${_prefix}sys_msg_pushed';

View File

@@ -1,9 +1,19 @@
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516261885186048', '0', '0,', '9030', '0000009030,', '0', '0', '消息推送', '消息推送', '1', '', '', 'icon-envelope-letter', '', '', '60', '0', 'default', 'core', '0', 'system', getdate(), 'system', getdate(), '');
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516673799393280', '989516261885186048', '0,989516261885186048,', '30', '0000009030,0000000030,', '1', '1', '消息推送/未完成消息', '未完成消息', '1', '/msg/msgPush/list', '', '', '', 'msg:msgPush', '60', '1', 'default', 'core', '0', 'system', getdate(), 'system', getdate(), '');
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516723044716544', '989516261885186048', '0,989516261885186048,', '60', '0000009030,0000000060,', '1', '1', '消息推送/已完成消息', '已完成消息', '1', '/msg/msgPush/list?pushed=true', '', '', '', 'msg:msgPush', '60', '1', 'default', 'core', '0', 'system', getdate(), 'system', getdate(), '');
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516785057501184', '989516261885186048', '0,989516261885186048,', '90', '0000009030,0000000090,', '1', '1', '消息推送/消息模板管理', '消息模板管理', '1', '/msg/msgTemplate/list', '', '', '', 'msg:msgTemplate', '60', '1', 'default', 'core', '0', 'system', getdate(), 'system', getdate(), '');
ALTER TABLE ${_prefix}sys_msg_push ALTER COLUMN push_date datetime;
ALTER TABLE ${_prefix}sys_msg_push ALTER COLUMN read_date datetime;
ALTER TABLE ${_prefix}sys_msg_pushed ALTER COLUMN push_date datetime;
ALTER TABLE ${_prefix}sys_msg_pushed ALTER COLUMN read_date datetime;
INSERT INTO ${_prefix}sys_job (job_name, job_group, description, invoke_target, cron_expression, misfire_instruction, concurrent, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('MsgLocalMergePushTask', 'SYSTEM', '消息推送服务 (延迟)', 'msgLocalMergePushTask.execute()', '0 0/30 * * * ?', '2', '0', '2', 'system', getdate(), 'system', getdate(), NULL);
INSERT INTO ${_prefix}sys_job (job_name, job_group, description, invoke_target, cron_expression, misfire_instruction, concurrent, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('MsgLocalPushTask', 'SYSTEM', '消息推送服务 (即时)', 'msgLocalPushTask.execute()', '0/3 * * * * ?', '2', '0', '2', 'system', getdate(), 'system', getdate(), NULL);

View File

@@ -1,17 +1,21 @@
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516261885186048', '0', '0,', '9030', '0000009030,', '0', '0', '消息推送', '消息推送', '1', '', '', 'icon-envelope-letter', '', '', '60', '0', 'default', 'core', '0', 'system', now(), 'system', now(), '');
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516673799393280', '989516261885186048', '0,989516261885186048,', '30', '0000009030,0000000030,', '1', '1', '消息推送/未完成消息', '未完成消息', '1', '/msg/msgPush/list', '', '', '', 'msg:msgPush', '60', '1', 'default', 'core', '0', 'system', now(), 'system', now(), '');
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516723044716544', '989516261885186048', '0,989516261885186048,', '60', '0000009030,0000000060,', '1', '1', '消息推送/已完成消息', '已完成消息', '1', '/msg/msgPush/list?pushed=true', '', '', '', 'msg:msgPush', '60', '1', 'default', 'core', '0', 'system', now(), 'system', now(), '');
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516785057501184', '989516261885186048', '0,989516261885186048,', '90', '0000009030,0000000090,', '1', '1', '消息推送/消息模板管理', '消息模板管理', '1', '/msg/msgTemplate/list', '', '', '', 'msg:msgTemplate', '60', '1', 'default', 'core', '0', 'system', now(), 'system', now(), '');
ALTER TABLE `js_sys_msg_push`
CHANGE `push_date` `push_date` DATETIME NULL COMMENT '推送时间',
CHANGE `read_date` `read_date` DATETIME NULL COMMENT '读取时间';
ALTER TABLE `js_sys_msg_pushed`
CHANGE `push_date` `push_date` DATETIME NULL COMMENT '推送时间',
CHANGE `read_date` `read_date` DATETIME NULL COMMENT '读取时间';
ALTER TABLE ${_prefix}sys_msg_push CHANGE push_date push_date DATETIME NULL COMMENT '推送时间';
ALTER TABLE ${_prefix}sys_msg_push CHANGE read_date read_date DATETIME NULL COMMENT '读取时间';
ALTER TABLE ${_prefix}sys_msg_pushed CHANGE push_date push_date DATETIME NULL COMMENT '推送时间';
ALTER TABLE ${_prefix}sys_msg_pushed CHANGE read_date read_date DATETIME NULL COMMENT '读取时间';
INSERT INTO ${_prefix}sys_job (job_name, job_group, description, invoke_target, cron_expression, misfire_instruction, concurrent, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('MsgLocalMergePushTask', 'SYSTEM', '消息推送服务 (延迟)', 'msgLocalMergePushTask.execute()', '0 0/30 * * * ?', '2', '0', '2', 'system', now(), 'system', now(), NULL);
INSERT INTO ${_prefix}sys_job (job_name, job_group, description, invoke_target, cron_expression, misfire_instruction, concurrent, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('MsgLocalPushTask', 'SYSTEM', '消息推送服务 (即时)', 'msgLocalPushTask.execute()', '0/3 * * * * ?', '2', '0', '2', 'system', now(), 'system', now(), NULL);
commit;

View File

@@ -1,9 +1,21 @@
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516261885186048', '0', '0,', '9030', '0000009030,', '0', '0', '消息推送', '消息推送', '1', '', '', 'icon-envelope-letter', '', '', '60', '0', 'default', 'core', '0', 'system', sysdate, 'system', sysdate, '');
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516673799393280', '989516261885186048', '0,989516261885186048,', '30', '0000009030,0000000030,', '1', '1', '消息推送/未完成消息', '未完成消息', '1', '/msg/msgPush/list', '', '', '', 'msg:msgPush', '60', '1', 'default', 'core', '0', 'system', sysdate, 'system', sysdate, '');
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516723044716544', '989516261885186048', '0,989516261885186048,', '60', '0000009030,0000000060,', '1', '1', '消息推送/已完成消息', '已完成消息', '1', '/msg/msgPush/list?pushed=true', '', '', '', 'msg:msgPush', '60', '1', 'default', 'core', '0', 'system', sysdate, 'system', sysdate, '');
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516785057501184', '989516261885186048', '0,989516261885186048,', '90', '0000009030,0000000090,', '1', '1', '消息推送/消息模板管理', '消息模板管理', '1', '/msg/msgTemplate/list', '', '', '', 'msg:msgTemplate', '60', '1', 'default', 'core', '0', 'system', sysdate, 'system', sysdate, '');
ALTER TABLE ${_prefix}sys_msg_push MODIFY ( push_date TIMESTAMP );
ALTER TABLE ${_prefix}sys_msg_push MODIFY ( read_date TIMESTAMP );
ALTER TABLE ${_prefix}sys_msg_pushed MODIFY ( push_date TIMESTAMP );
ALTER TABLE ${_prefix}sys_msg_pushed MODIFY ( read_date TIMESTAMP );
INSERT INTO ${_prefix}sys_job (job_name, job_group, description, invoke_target, cron_expression, misfire_instruction, concurrent, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('MsgLocalMergePushTask', 'SYSTEM', '消息推送服务 (延迟)', 'msgLocalMergePushTask.execute()', '0 0/30 * * * ?', '2', '0', '2', 'system', sysdate, 'system', sysdate, NULL);
INSERT INTO ${_prefix}sys_job (job_name, job_group, description, invoke_target, cron_expression, misfire_instruction, concurrent, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('MsgLocalPushTask', 'SYSTEM', '消息推送服务 (即时)', 'msgLocalPushTask.execute()', '0/3 * * * * ?', '2', '0', '2', 'system', sysdate, 'system', sysdate, NULL);
commit;

View File

@@ -1,9 +1,21 @@
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516261885186048', '0', '0,', '9030', '0000009030,', '0', '0', '消息推送', '消息推送', '1', '', '', 'icon-envelope-letter', '', '', '60', '0', 'default', 'core', '0', 'system', now(), 'system', now(), '');
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516673799393280', '989516261885186048', '0,989516261885186048,', '30', '0000009030,0000000030,', '1', '1', '消息推送/未完成消息', '未完成消息', '1', '/msg/msgPush/list', '', '', '', 'msg:msgPush', '60', '1', 'default', 'core', '0', 'system', now(), 'system', now(), '');
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516723044716544', '989516261885186048', '0,989516261885186048,', '60', '0000009030,0000000060,', '1', '1', '消息推送/已完成消息', '已完成消息', '1', '/msg/msgPush/list?pushed=true', '', '', '', 'msg:msgPush', '60', '1', 'default', 'core', '0', 'system', now(), 'system', now(), '');
INSERT INTO js_sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
INSERT INTO ${_prefix}sys_menu (menu_code, parent_code, parent_codes, tree_sort, tree_sorts, tree_leaf, tree_level, tree_names, menu_name, menu_type, menu_href, menu_target, menu_icon, menu_color, permission, weight, is_show, sys_code, module_codes, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('989516785057501184', '989516261885186048', '0,989516261885186048,', '90', '0000009030,0000000090,', '1', '1', '消息推送/消息模板管理', '消息模板管理', '1', '/msg/msgTemplate/list', '', '', '', 'msg:msgTemplate', '60', '1', 'default', 'core', '0', 'system', now(), 'system', now(), '');
ALTER TABLE ${_prefix}sys_msg_push ALTER COLUMN push_date TYPE timestamp;
ALTER TABLE ${_prefix}sys_msg_push ALTER COLUMN read_date TYPE timestamp;
ALTER TABLE ${_prefix}sys_msg_pushed ALTER COLUMN push_date TYPE timestamp;
ALTER TABLE ${_prefix}sys_msg_pushed ALTER COLUMN read_date TYPE timestamp;
INSERT INTO ${_prefix}sys_job (job_name, job_group, description, invoke_target, cron_expression, misfire_instruction, concurrent, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('MsgLocalMergePushTask', 'SYSTEM', '消息推送服务 (延迟)', 'msgLocalMergePushTask.execute()', '0 0/30 * * * ?', '2', '0', '2', 'system', now(), 'system', now(), NULL);
INSERT INTO ${_prefix}sys_job (job_name, job_group, description, invoke_target, cron_expression, misfire_instruction, concurrent, status, create_by, create_date, update_by, update_date, remarks)
VALUES ('MsgLocalPushTask', 'SYSTEM', '消息推送服务 (即时)', 'msgLocalPushTask.execute()', '0/3 * * * * ?', '2', '0', '2', 'system', now(), 'system', now(), NULL);
commit;

View File

@@ -1,3 +1,4 @@
4.0.0
4.0.1
4.0.2
4.0.2
4.0.3