ソースを参照

LTS-Admin加入节点上下线日志

hugui 9 年 前
コミット
d338fee73a
50 ファイル変更699 行追加83 行削除
  1. 1 1
      build.cmd
  2. 1 1
      build.sh
  3. 1 1
      lts-admin/pom.xml
  4. 43 8
      lts-admin/src/main/java/com/lts/web/cluster/RegistryService.java
  5. 22 1
      lts-admin/src/main/java/com/lts/web/controller/api/NodeApiController.java
  6. 6 7
      lts-admin/src/main/java/com/lts/web/controller/ui/MonitorUIController.java
  7. 7 0
      lts-admin/src/main/java/com/lts/web/controller/ui/UIController.java
  8. 13 11
      lts-admin/src/main/java/com/lts/web/initialization/LtsAdminDatabaseInitialingBean.java
  9. 120 0
      lts-admin/src/main/java/com/lts/web/repository/domain/NodeOnOfflineLog.java
  10. 1 1
      lts-admin/src/main/java/com/lts/web/repository/mapper/AbstractRepo.java
  11. 1 3
      lts-admin/src/main/java/com/lts/web/repository/mapper/JobTrackerMonitorRepo.java
  12. 21 0
      lts-admin/src/main/java/com/lts/web/repository/mapper/NodeOnOfflineLogRepo.java
  13. 1 1
      lts-admin/src/main/java/com/lts/web/repository/mapper/TaskTrackerMonitorRepo.java
  14. 2 0
      lts-admin/src/main/java/com/lts/web/repository/memory/NodeMemoryDatabase.java
  15. 59 0
      lts-admin/src/main/java/com/lts/web/request/NodeOnOfflineLogRequest.java
  16. 10 10
      lts-admin/src/main/java/com/lts/web/service/MonitorDataService.java
  17. 1 0
      lts-admin/src/main/java/com/lts/web/support/AppConfigurer.java
  18. 1 0
      lts-admin/src/main/java/com/lts/web/support/H2ConsoleWebServlet.java
  19. 41 11
      lts-admin/src/main/java/com/lts/web/support/LtsAdminDataCleaner.java
  20. 1 1
      lts-admin/src/main/resources/mybatis/mapper/jobTrackerMonitorRepo.xml
  21. 100 0
      lts-admin/src/main/resources/mybatis/mapper/nodeOnOfflineLogRepo.xml
  22. 1 1
      lts-admin/src/main/resources/mybatis/mapper/taskTrackerMonitorRepo.xml
  23. 1 1
      lts-admin/src/main/resources/mybatis/sql/lts_admin_job_tracker_monitor_data.xml
  24. 25 0
      lts-admin/src/main/resources/mybatis/sql/lts_admin_node_onoffline_log.xml
  25. 0 0
      lts-admin/src/main/resources/mybatis/sql/lts_admin_task_tracker_monitor_data.xml
  26. 2 1
      lts-admin/src/main/webapp/main.html
  27. 2 2
      lts-admin/src/main/webapp/main/node-manager.jsp
  28. 145 0
      lts-admin/src/main/webapp/main/node-onoffline-log.jsp
  29. 1 1
      lts-core/pom.xml
  30. 49 0
      lts-core/src/main/java/com/lts/core/commons/utils/QuietUtils.java
  31. 1 1
      lts-core/src/main/java/com/lts/core/support/Version.java
  32. 1 1
      lts-example/pom.xml
  33. 1 1
      lts-jobclient/pom.xml
  34. 1 1
      lts-jobtracker/pom.xml
  35. 1 1
      lts-logger/lts-logger-api/pom.xml
  36. 1 1
      lts-logger/lts-logger-console/pom.xml
  37. 1 1
      lts-logger/lts-logger-mongo/pom.xml
  38. 1 1
      lts-logger/lts-logger-mysql/pom.xml
  39. 1 1
      lts-logger/pom.xml
  40. 1 1
      lts-queue/lts-queue-api/pom.xml
  41. 1 1
      lts-queue/lts-queue-mongo/pom.xml
  42. 1 1
      lts-queue/lts-queue-mysql/pom.xml
  43. 1 1
      lts-queue/pom.xml
  44. 1 1
      lts-spring/pom.xml
  45. 1 1
      lts-startup/lts-startup-admin/pom.xml
  46. 1 1
      lts-startup/lts-startup-jobtracker/pom.xml
  47. 1 1
      lts-startup/lts-startup-tasktracker/pom.xml
  48. 1 1
      lts-startup/pom.xml
  49. 1 1
      lts-tasktracker/pom.xml
  50. 1 1
      pom.xml

+ 1 - 1
build.cmd

@@ -4,7 +4,7 @@ start mvn clean install -DskipTests
 echo "LTS: mvn clean install -DskipTests"
 echo "LTS: After sub window finished, close it , and press any key to continue" & pause>nul
 
-set VERSION=1.5.5-SNAPSHOT
+set VERSION=1.6.0-SNAPSHOT
 set BASE_HOME=%~dp0%
 set DIST_BIN_DIR=lts-%VERSION%-bin
 

+ 1 - 1
build.sh

@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 
-VERSION="1.5.5-SNAPSHOT"
+VERSION="1.6.0-SNAPSHOT"
 
 LTS_BIN="${BASH_SOURCE-$0}"
 LTS_BIN="$(dirname "${LTS_BIN}")"

+ 1 - 1
lts-admin/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-parent</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <packaging>war</packaging>

+ 43 - 8
lts-admin/src/main/java/com/lts/web/cluster/RegistryService.java

@@ -6,12 +6,16 @@ import com.lts.core.registry.NotifyEvent;
 import com.lts.core.registry.NotifyListener;
 import com.lts.core.registry.Registry;
 import com.lts.core.registry.RegistryFactory;
+import com.lts.web.repository.domain.NodeOnOfflineLog;
+import com.lts.web.repository.mapper.NodeOnOfflineLogRepo;
 import com.lts.web.repository.memory.NodeMemoryDatabase;
 import com.lts.web.request.NodeRequest;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -20,10 +24,12 @@ import java.util.List;
 @Component
 public class RegistryService implements InitializingBean {
 
-    private NodeMemoryDatabase repo = new NodeMemoryDatabase();
-
     @Autowired
-    private AdminApplication application;
+    NodeMemoryDatabase nodeMemoryDatabase;
+    @Autowired
+    AdminApplication application;
+    @Autowired
+    NodeOnOfflineLogRepo nodeOnOfflineLogRepo;
 
     private Registry registry;
 
@@ -37,25 +43,54 @@ public class RegistryService implements InitializingBean {
                 }
                 switch (event) {
                     case ADD:
-                        repo.addNode(nodes);
+                        nodeMemoryDatabase.addNode(nodes);
                         break;
                     case REMOVE:
-                        repo.removeNode(nodes);
+                        nodeMemoryDatabase.removeNode(nodes);
                         break;
                 }
+                // 记录日志
+                addLog(event, nodes);
             }
         });
     }
 
-    public List<Node> getNodes(NodeRequest request) {
-        return repo.search(request);
+    public List<Node> getOnlineNodes(NodeRequest request) {
+        return nodeMemoryDatabase.search(request);
+    }
+
+    /**
+     * 记录节点上下线日志
+     */
+    private void addLog(NotifyEvent event, List<Node> nodes) {
+        List<NodeOnOfflineLog> logs = new ArrayList<NodeOnOfflineLog>(nodes.size());
+
+        for (Node node : nodes) {
+            NodeOnOfflineLog log = new NodeOnOfflineLog();
+            log.setLogTime(new Date());
+            log.setEvent(event == NotifyEvent.ADD ? "ONLINE" : "OFFLINE");
+
+            log.setClusterName(node.getClusterName());
+            log.setCreateTime(node.getCreateTime());
+            log.setGroup(node.getGroup());
+            log.setHostName(node.getHostName());
+            log.setIdentity(node.getIdentity());
+            log.setIp(node.getIp());
+            log.setPort(node.getPort());
+            log.setThreads(node.getThreads());
+            log.setNodeType(node.getNodeType());
+
+            logs.add(log);
+        }
+
+        nodeOnOfflineLogRepo.insert(logs);
     }
 
     @Override
     public void afterPropertiesSet() throws Exception {
 
         registry = RegistryFactory.getRegistry(application);
-        
+
         register();
     }
 }

+ 22 - 1
lts-admin/src/main/java/com/lts/web/controller/api/NodeApiController.java

@@ -8,7 +8,10 @@ import com.lts.queue.domain.NodeGroupPo;
 import com.lts.web.cluster.AdminApplication;
 import com.lts.web.cluster.RegistryService;
 import com.lts.web.controller.AbstractController;
+import com.lts.web.repository.domain.NodeOnOfflineLog;
+import com.lts.web.repository.mapper.NodeOnOfflineLogRepo;
 import com.lts.web.request.NodeGroupRequest;
+import com.lts.web.request.NodeOnOfflineLogRequest;
 import com.lts.web.request.NodeRequest;
 import com.lts.web.response.PageResponse;
 import com.lts.web.vo.RestfulResponse;
@@ -16,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -29,12 +33,14 @@ public class NodeApiController extends AbstractController {
     RegistryService registryService;
     @Autowired
     AdminApplication application;
+    @Autowired
+    NodeOnOfflineLogRepo nodeOnOfflineLogRepo;
 
     @RequestMapping("node-list-get")
     public RestfulResponse getNodeList(NodeRequest request) {
         RestfulResponse response = new RestfulResponse();
 
-        List<Node> nodes = registryService.getNodes(request);
+        List<Node> nodes = registryService.getOnlineNodes(request);
 
         response.setSuccess(true);
         response.setResults(CollectionUtils.sizeOf(nodes));
@@ -82,4 +88,19 @@ public class NodeApiController extends AbstractController {
         response.setSuccess(true);
         return response;
     }
+
+    @RequestMapping("node-onoffline-log-get")
+    public RestfulResponse delNodeGroup(NodeOnOfflineLogRequest request) {
+        RestfulResponse response = new RestfulResponse();
+        Long results = nodeOnOfflineLogRepo.count(request);
+        response.setResults(results.intValue());
+        if(results > 0){
+            List<NodeOnOfflineLog> rows = nodeOnOfflineLogRepo.select(request);
+            response.setRows(rows);
+        }else{
+            response.setRows(new ArrayList(0));
+        }
+        response.setSuccess(true);
+        return response;
+    }
 }

+ 6 - 7
lts-admin/src/main/java/com/lts/web/controller/ui/MonitorUIController.java

@@ -5,9 +5,8 @@ import com.lts.core.commons.utils.CollectionUtils;
 import com.lts.core.commons.utils.DateUtils;
 import com.lts.queue.domain.NodeGroupPo;
 import com.lts.web.cluster.AdminApplication;
-import com.lts.web.repository.domain.TaskTrackerMonitorDataPo;
-import com.lts.web.repository.mapper.JobTrackerMonitorRepository;
-import com.lts.web.repository.mapper.TaskTrackerMonitorRepository;
+import com.lts.web.repository.mapper.JobTrackerMonitorRepo;
+import com.lts.web.repository.mapper.TaskTrackerMonitorRepo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -27,9 +26,9 @@ public class MonitorUIController {
     @Autowired
     private AdminApplication application;
     @Autowired
-    private TaskTrackerMonitorRepository taskTrackerMonitorRepository;
+    private TaskTrackerMonitorRepo taskTrackerMonitorRepo;
     @Autowired
-    private JobTrackerMonitorRepository jobTrackerMonitorRepository;
+    private JobTrackerMonitorRepo jobTrackerMonitorRepo;
 
     @RequestMapping("monitor/tasktracker-monitor")
     public String taskTrackerMonitor(Model model) {
@@ -40,7 +39,7 @@ public class MonitorUIController {
         model.addAttribute("startTime", DateUtils.formatYMD(new Date()));
         model.addAttribute("endTime", DateUtils.formatYMD(new Date()));
 
-        List<Map<String, String>> taskTrackerMap = taskTrackerMonitorRepository.getTaskTrackerMap();
+        List<Map<String, String>> taskTrackerMap = taskTrackerMonitorRepo.getTaskTrackerMap();
 
         Map<String, String> map = new HashMap<String, String>();
         if(CollectionUtils.isNotEmpty(taskTrackerMap)){
@@ -63,7 +62,7 @@ public class MonitorUIController {
         model.addAttribute("startTime", DateUtils.formatYMD(new Date()));
         model.addAttribute("endTime", DateUtils.formatYMD(new Date()));
 
-        List<String> taskTrackers = jobTrackerMonitorRepository.getJobTrackers();
+        List<String> taskTrackers = jobTrackerMonitorRepo.getJobTrackers();
         model.addAttribute("jobTrackers", taskTrackers);
 
         return "jobtracker-monitor";

+ 7 - 0
lts-admin/src/main/java/com/lts/web/controller/ui/UIController.java

@@ -34,6 +34,13 @@ public class UIController {
         return "node-group-manager";
     }
 
+    @RequestMapping("node/node-onoffline-log")
+    public String nodeOnOfflineLogUI(Model model) {
+        model.addAttribute("startLogTime", DateUtils.formatYMD_HMS(DateUtils.addDay(new Date(), -10)));
+        model.addAttribute("endLogTime", DateUtils.formatYMD_HMS(new Date()));
+        return "node-onoffline-log";
+    }
+
     @RequestMapping("job-queue/job-add-ui")
     public String addJobUI(Model model) {
         setAttr(model);

+ 13 - 11
lts-admin/src/main/java/com/lts/web/initialization/LtsAdminDatabaseInitialingBean.java

@@ -1,9 +1,10 @@
 package com.lts.web.initialization;
 
 import com.lts.core.commons.utils.CollectionUtils;
-import com.lts.web.repository.mapper.AbstractRepository;
-import com.lts.web.repository.mapper.JobTrackerMonitorRepository;
-import com.lts.web.repository.mapper.TaskTrackerMonitorRepository;
+import com.lts.web.repository.mapper.AbstractRepo;
+import com.lts.web.repository.mapper.JobTrackerMonitorRepo;
+import com.lts.web.repository.mapper.NodeOnOfflineLogRepo;
+import com.lts.web.repository.mapper.TaskTrackerMonitorRepo;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.BadSqlGrammarException;
@@ -30,22 +31,23 @@ import java.util.List;
 public class LtsAdminDatabaseInitialingBean implements InitializingBean {
 
     @Autowired
-    private TaskTrackerMonitorRepository taskTrackerMonitorRepository;
+    TaskTrackerMonitorRepo taskTrackerMonitorRepo;
     @Autowired
-    private JobTrackerMonitorRepository jobTrackerMonitorRepository;
+    JobTrackerMonitorRepo jobTrackerMonitorRepo;
+    @Autowired
+    NodeOnOfflineLogRepo nodeOnOfflineLogRepo;
 
     @Override
     public void afterPropertiesSet() throws Exception {
-
-        execute(taskTrackerMonitorRepository, "sql/lts_admin_task_tracker_monitor_data.xml");
-        execute(jobTrackerMonitorRepository, "sql/lts_admin_job_tracker_monitor_data.xml");
-
+        execute(taskTrackerMonitorRepo, "mybatis/sql/lts_admin_task_tracker_monitor_data.xml");
+        execute(jobTrackerMonitorRepo, "mybatis/sql/lts_admin_job_tracker_monitor_data.xml");
+        execute(nodeOnOfflineLogRepo, "mybatis/sql/lts_admin_node_onoffline_log.xml");
     }
 
     /**
      * 执行创建表语句
      */
-    private void execute(AbstractRepository repository, String sqlXml) throws Exception {
+    private void execute(AbstractRepo repository, String sqlXml) throws Exception {
 
         TableSchema tableSchema = getTableSchema(sqlXml);
 
@@ -81,7 +83,7 @@ public class LtsAdminDatabaseInitialingBean implements InitializingBean {
         tableSchema.table = table.item(0).getFirstChild().getNodeValue();
 
         NodeList indexes = root.getElementsByTagName("indexes");
-        if (indexes != null) {
+        if (indexes != null && indexes.getLength() > 0) {
             tableSchema.indexes = new ArrayList<String>();
             NodeList indexList = ((Element) indexes.item(0)).getElementsByTagName("index");
             for (int i = 0; i < indexList.getLength(); i++) {

+ 120 - 0
lts-admin/src/main/java/com/lts/web/repository/domain/NodeOnOfflineLog.java

@@ -0,0 +1,120 @@
+package com.lts.web.repository.domain;
+
+import com.lts.core.cluster.NodeType;
+
+import java.util.Date;
+
+/**
+ * 用来记录节点的上下线
+ *
+ * @author Robert HG (254963746@qq.com) on 9/26/15.
+ */
+public class NodeOnOfflineLog {
+
+    // 日志时间
+    private Date logTime;
+    // 取值 ONLINE(上线) OFFLINE(离线)
+    private String event;
+
+    /**
+     * 下面属性来自
+     * {@link com.lts.core.cluster.Node}
+     */
+    private String clusterName;
+    private String ip;
+    private Integer port;
+    private String hostName;
+    private String group;
+    private Long createTime;
+    private Integer threads;
+    private String identity;
+    private NodeType nodeType;
+
+    public NodeType getNodeType() {
+        return nodeType;
+    }
+
+    public void setNodeType(NodeType nodeType) {
+        this.nodeType = nodeType;
+    }
+
+    public Date getLogTime() {
+        return logTime;
+    }
+
+    public void setLogTime(Date logTime) {
+        this.logTime = logTime;
+    }
+
+    public String getEvent() {
+        return event;
+    }
+
+    public void setEvent(String event) {
+        this.event = event;
+    }
+
+    public String getClusterName() {
+        return clusterName;
+    }
+
+    public void setClusterName(String clusterName) {
+        this.clusterName = clusterName;
+    }
+
+    public String getIp() {
+        return ip;
+    }
+
+    public void setIp(String ip) {
+        this.ip = ip;
+    }
+
+    public Integer getPort() {
+        return port;
+    }
+
+    public void setPort(Integer port) {
+        this.port = port;
+    }
+
+    public String getHostName() {
+        return hostName;
+    }
+
+    public void setHostName(String hostName) {
+        this.hostName = hostName;
+    }
+
+    public String getGroup() {
+        return group;
+    }
+
+    public void setGroup(String group) {
+        this.group = group;
+    }
+
+    public Long getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+    }
+
+    public Integer getThreads() {
+        return threads;
+    }
+
+    public void setThreads(Integer threads) {
+        this.threads = threads;
+    }
+
+    public String getIdentity() {
+        return identity;
+    }
+
+    public void setIdentity(String identity) {
+        this.identity = identity;
+    }
+}

+ 1 - 1
lts-admin/src/main/java/com/lts/web/repository/mapper/AbstractRepository.java → lts-admin/src/main/java/com/lts/web/repository/mapper/AbstractRepo.java

@@ -5,7 +5,7 @@ import org.apache.ibatis.annotations.Param;
 /**
  * @author Robert HG (254963746@qq.com) on 9/26/15.
  */
-public interface AbstractRepository {
+public interface AbstractRepo {
 
     void executeSQL(@Param("sql") String sql);
 

+ 1 - 3
lts-admin/src/main/java/com/lts/web/repository/mapper/JobTrackerMonitorRepository.java → lts-admin/src/main/java/com/lts/web/repository/mapper/JobTrackerMonitorRepo.java

@@ -1,16 +1,14 @@
 package com.lts.web.repository.mapper;
 
 import com.lts.web.repository.domain.JobTrackerMonitorDataPo;
-import com.lts.web.repository.domain.TaskTrackerMonitorDataPo;
 import com.lts.web.request.MonitorDataRequest;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * @author Robert HG (254963746@qq.com) on 9/22/15.
  */
-public interface JobTrackerMonitorRepository extends AbstractRepository {
+public interface JobTrackerMonitorRepo extends AbstractRepo {
 
     void insert(List<JobTrackerMonitorDataPo> pos);
 

+ 21 - 0
lts-admin/src/main/java/com/lts/web/repository/mapper/NodeOnOfflineLogRepo.java

@@ -0,0 +1,21 @@
+package com.lts.web.repository.mapper;
+
+import com.lts.web.repository.domain.NodeOnOfflineLog;
+import com.lts.web.request.NodeOnOfflineLogRequest;
+
+import java.util.List;
+
+/**
+ * @author Robert HG (254963746@qq.com) on 9/26/15.
+ */
+public interface NodeOnOfflineLogRepo extends AbstractRepo {
+
+    void insert(List<NodeOnOfflineLog> nodeOnOfflineLogs);
+
+    List<NodeOnOfflineLog> select(NodeOnOfflineLogRequest request);
+
+    Long count(NodeOnOfflineLogRequest request);
+
+    void delete(NodeOnOfflineLogRequest request);
+
+}

+ 1 - 1
lts-admin/src/main/java/com/lts/web/repository/mapper/TaskTrackerMonitorRepository.java → lts-admin/src/main/java/com/lts/web/repository/mapper/TaskTrackerMonitorRepo.java

@@ -9,7 +9,7 @@ import java.util.Map;
 /**
  * @author Robert HG (254963746@qq.com) on 9/22/15.
  */
-public interface TaskTrackerMonitorRepository extends AbstractRepository {
+public interface TaskTrackerMonitorRepo extends AbstractRepo {
 
     void insert(List<TaskTrackerMonitorDataPo> pos);
 

+ 2 - 0
lts-admin/src/main/java/com/lts/web/repository/memory/NodeMemoryDatabase.java

@@ -9,6 +9,7 @@ import com.lts.core.logger.LoggerFactory;
 import com.lts.store.jdbc.SqlBuilder;
 import com.lts.web.request.NodeRequest;
 import org.apache.commons.dbutils.ResultSetHandler;
+import org.springframework.stereotype.Repository;
 
 import java.sql.ResultSet;
 import java.sql.SQLException;
@@ -18,6 +19,7 @@ import java.util.List;
 /**
  * @author Robert HG (254963746@qq.com) on 6/6/15.
  */
+@Repository
 public class NodeMemoryDatabase extends MemoryDatabase {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(NodeMemoryDatabase.class);

+ 59 - 0
lts-admin/src/main/java/com/lts/web/request/NodeOnOfflineLogRequest.java

@@ -0,0 +1,59 @@
+package com.lts.web.request;
+
+import java.util.Date;
+
+/**
+ * @author Robert HG (254963746@qq.com) on 9/26/15.
+ */
+public class NodeOnOfflineLogRequest extends PageRequest{
+
+    private Date startLogTime;
+
+    private Date endLogTime;
+
+    private String group;
+
+    private String identity;
+
+    private String event;
+
+    public String getIdentity() {
+        return identity;
+    }
+
+    public void setIdentity(String identity) {
+        this.identity = identity;
+    }
+
+    public String getEvent() {
+        return event;
+    }
+
+    public void setEvent(String event) {
+        this.event = event;
+    }
+
+    public String getGroup() {
+        return group;
+    }
+
+    public void setGroup(String group) {
+        this.group = group;
+    }
+
+    public Date getStartLogTime() {
+        return startLogTime;
+    }
+
+    public void setStartLogTime(Date startLogTime) {
+        this.startLogTime = startLogTime;
+    }
+
+    public Date getEndLogTime() {
+        return endLogTime;
+    }
+
+    public void setEndLogTime(Date endLogTime) {
+        this.endLogTime = endLogTime;
+    }
+}

+ 10 - 10
lts-admin/src/main/java/com/lts/web/service/MonitorDataService.java

@@ -4,15 +4,14 @@ import com.alibaba.fastjson.TypeReference;
 import com.lts.core.commons.utils.BeanUtils;
 import com.lts.core.commons.utils.CollectionUtils;
 import com.lts.core.commons.utils.JSONUtils;
-import com.lts.core.commons.utils.Md5Encrypt;
 import com.lts.core.domain.JobTrackerMonitorData;
 import com.lts.core.domain.TaskTrackerMonitorData;
 import com.lts.core.support.SystemClock;
 import com.lts.web.repository.domain.AbstractMonitorDataPo;
 import com.lts.web.repository.domain.JobTrackerMonitorDataPo;
 import com.lts.web.repository.domain.TaskTrackerMonitorDataPo;
-import com.lts.web.repository.mapper.JobTrackerMonitorRepository;
-import com.lts.web.repository.mapper.TaskTrackerMonitorRepository;
+import com.lts.web.repository.mapper.JobTrackerMonitorRepo;
+import com.lts.web.repository.mapper.TaskTrackerMonitorRepo;
 import com.lts.web.request.MonitorDataAddRequest;
 import com.lts.web.request.MonitorDataRequest;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,13 +27,14 @@ import java.util.List;
 public class MonitorDataService {
 
     @Autowired
-    private TaskTrackerMonitorRepository taskTrackerMonitorRepository;
+    private TaskTrackerMonitorRepo taskTrackerMonitorRepo;
     @Autowired
-    private JobTrackerMonitorRepository jobTrackerMonitorDataRepository;
+    private JobTrackerMonitorRepo jobTrackerMonitorDataRepo;
 
     public void addTaskTrackerMonitorData(MonitorDataAddRequest request) {
 
-        List<TaskTrackerMonitorData> monitorDataList = JSONUtils.parse(request.getMonitorData(), new TypeReference<List<TaskTrackerMonitorData>>() {
+        List<TaskTrackerMonitorData> monitorDataList =
+                JSONUtils.parse(request.getMonitorData(), new TypeReference<List<TaskTrackerMonitorData>>() {
         });
         if (CollectionUtils.isEmpty(monitorDataList)) {
             throw new IllegalArgumentException("monitorData can not be null");
@@ -52,7 +52,7 @@ public class MonitorDataService {
 
             pos.add(po);
         }
-        taskTrackerMonitorRepository.insert(pos);
+        taskTrackerMonitorRepo.insert(pos);
     }
 
     public List<? extends AbstractMonitorDataPo> queryMonitorDataSum(MonitorDataRequest request){
@@ -60,9 +60,9 @@ public class MonitorDataService {
             case JOB_CLIENT:
                 return null;
             case JOB_TRACKER:
-                return jobTrackerMonitorDataRepository.querySum(request);
+                return jobTrackerMonitorDataRepo.querySum(request);
             case TASK_TRACKER:
-                return taskTrackerMonitorRepository.querySum(request);
+                return taskTrackerMonitorRepo.querySum(request);
         }
         return null;
     }
@@ -84,7 +84,7 @@ public class MonitorDataService {
             po.setGmtCreated(SystemClock.now());
             pos.add(po);
         }
-        jobTrackerMonitorDataRepository.insert(pos);
+        jobTrackerMonitorDataRepo.insert(pos);
     }
     public void addJobClientMonitorData(MonitorDataAddRequest request){
 

+ 1 - 0
lts-admin/src/main/java/com/lts/web/support/AppConfigurer.java

@@ -11,6 +11,7 @@ import java.util.Properties;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
+ * 系统的配置信息(lts-admin.cfg)
  * @author Robert HG (254963746@qq.com) on 5/11/15.
  */
 public class AppConfigurer {

+ 1 - 0
lts-admin/src/main/java/com/lts/web/support/H2ConsoleWebServlet.java

@@ -6,6 +6,7 @@ import org.h2.server.web.WebServlet;
 import javax.servlet.ServletContext;
 
 /**
+ * H2 Console 的 servlet
  * @author Robert HG (254963746@qq.com) on 9/26/15.
  */
 public class H2ConsoleWebServlet extends WebServlet {

+ 41 - 11
lts-admin/src/main/java/com/lts/web/support/MonitorDataCleaner.java → lts-admin/src/main/java/com/lts/web/support/LtsAdminDataCleaner.java

@@ -1,11 +1,14 @@
 package com.lts.web.support;
 
 import com.lts.core.commons.utils.DateUtils;
+import com.lts.core.commons.utils.QuietUtils;
 import com.lts.core.logger.Logger;
 import com.lts.core.logger.LoggerFactory;
-import com.lts.web.repository.mapper.JobTrackerMonitorRepository;
-import com.lts.web.repository.mapper.TaskTrackerMonitorRepository;
+import com.lts.web.repository.mapper.JobTrackerMonitorRepo;
+import com.lts.web.repository.mapper.NodeOnOfflineLogRepo;
+import com.lts.web.repository.mapper.TaskTrackerMonitorRepo;
 import com.lts.web.request.MonitorDataRequest;
+import com.lts.web.request.NodeOnOfflineLogRequest;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -22,13 +25,17 @@ import java.util.concurrent.atomic.AtomicBoolean;
  * @author Robert HG (254963746@qq.com) on 8/23/15.
  */
 @Component
-public class MonitorDataCleaner implements InitializingBean {
+public class LtsAdminDataCleaner implements InitializingBean {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(MonitorDataCleaner.class);
+    private static final Logger LOGGER = LoggerFactory.getLogger(LtsAdminDataCleaner.class);
+
+    @Autowired
+    private TaskTrackerMonitorRepo taskTrackerMonitorRepo;
     @Autowired
-    private TaskTrackerMonitorRepository taskTrackerMonitorRepository;
+    private JobTrackerMonitorRepo jobTrackerMonitorDataRepo;
     @Autowired
-    private JobTrackerMonitorRepository jobTrackerMonitorDataRepository;
+    private NodeOnOfflineLogRepo nodeOnOfflineLogRepo;
+
     private ScheduledExecutorService cleanExecutor = Executors.newSingleThreadScheduledExecutor();
 
     private AtomicBoolean start = new AtomicBoolean(false);
@@ -49,12 +56,35 @@ public class MonitorDataCleaner implements InitializingBean {
     }
 
     private void clean() {
-        //  1. 清除TaskTracker JobTracker的统计数据(5天之前的)
-        Long endTime = DateUtils.addDay(new Date(), -5).getTime();
-        MonitorDataRequest request = new MonitorDataRequest();
+        //  1. 清除TaskTracker JobTracker的统计数据(3天之前的)
+        Long endTime = DateUtils.addDay(new Date(), -3).getTime();
+        final MonitorDataRequest request = new MonitorDataRequest();
         request.setEndTime(endTime);
-        taskTrackerMonitorRepository.delete(request);
-        jobTrackerMonitorDataRepository.delete(request);
+
+        QuietUtils.doWithWarn(new QuietUtils.Callable() {
+            @Override
+            public void call() throws Exception {
+                taskTrackerMonitorRepo.delete(request);
+            }
+        });
+
+        QuietUtils.doWithWarn(new QuietUtils.Callable() {
+            @Override
+            public void call() throws Exception {
+                jobTrackerMonitorDataRepo.delete(request);
+            }
+        });
+
+        // 2. 清除30天以前的节点上下线日志
+        final NodeOnOfflineLogRequest nodeOnOfflineLogRequest = new NodeOnOfflineLogRequest();
+        nodeOnOfflineLogRequest.setEndLogTime(DateUtils.addDay(new Date(), -30));
+
+        QuietUtils.doWithWarn(new QuietUtils.Callable() {
+            @Override
+            public void call() throws Exception {
+                nodeOnOfflineLogRepo.delete(nodeOnOfflineLogRequest);
+            }
+        });
 
         LOGGER.info("Clean monitor data before {} succeed ", DateUtils.formatYMD_HMS(new Date(endTime)));
     }

+ 1 - 1
lts-admin/src/main/resources/mybatis/mapper/jobTrackerMonitor.xml → lts-admin/src/main/resources/mybatis/mapper/jobTrackerMonitorRepo.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
-<mapper namespace="com.lts.web.repository.mapper.JobTrackerMonitorRepository">
+<mapper namespace="com.lts.web.repository.mapper.JobTrackerMonitorRepo">
 
     <insert id="executeSQL" parameterType="java.lang.String">
       ${sql}

+ 100 - 0
lts-admin/src/main/resources/mybatis/mapper/nodeOnOfflineLogRepo.xml

@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.lts.web.repository.mapper.NodeOnOfflineLogRepo">
+
+    <insert id="executeSQL" parameterType="java.lang.String">
+      ${sql}
+    </insert>
+
+    <insert id="insert" parameterType="java.util.List" flushCache="true">
+        <![CDATA[
+        INSERT INTO `lts_admin_node_onoffline_log` 
+        (
+        `log_time`, 
+        `event`, 
+        `node_type`,
+        `cluster_name`,
+        `ip`, 
+        `port`, 
+        `host_name`, 
+        `group`, 
+        `create_time`, 
+        `threads`, 
+        `identity`)
+        VALUES  
+        ]]>
+        <foreach collection="list" item="item" index="index" separator=",">
+            <![CDATA[
+        (
+        #{item.logTime},
+        #{item.event}, 
+        #{item.nodeType},
+        #{item.clusterName},
+        #{item.ip}, 
+        #{item.port}, 
+        #{item.hostName},
+        #{item.group}, 
+        #{item.createTime},
+        #{item.threads}, 
+        #{item.identity})
+        ]]>
+        </foreach>
+
+    </insert>
+
+    <sql id="whereCondition">
+        <where>
+            <if test="identity != null and identity != ''">
+                <![CDATA[  AND `identity` = #{identity} ]]>
+            </if>
+            <if test="group != null and group != ''">
+                <![CDATA[  AND `group` = #{group} ]]>
+            </if>
+            <if test="event != null and event != ''">
+                <![CDATA[  AND `event` = #{event} ]]>
+            </if>
+            <if test="startLogTime != null">
+                <![CDATA[  AND log_time >= #{startLogTime} ]]>
+            </if>
+            <if test="endLogTime != null">
+                <![CDATA[  AND log_time <= #{endLogTime} ]]>
+            </if>
+        </where>
+    </sql>
+
+    <select id="select" parameterType="com.lts.web.request.NodeOnOfflineLogRequest"
+            resultType="com.lts.web.repository.domain.NodeOnOfflineLog">
+        SELECT
+        `log_time` as logTime,
+        `event`,
+        `node_type` as nodeType,
+        `cluster_name` as clusterName,
+        `ip`,
+        `port`,
+        `host_name` as hostName,
+        `group`,
+        `create_time` as createTime,
+        `threads`,
+        `identity`
+        FROM lts_admin_node_onoffline_log
+        <include refid="whereCondition"/>
+        ORDER BY log_time DESC limit #{start}, #{limit}
+    </select>
+
+    <select id="count" parameterType="com.lts.web.request.NodeOnOfflineLogRequest"
+            resultType="java.lang.Long">
+        SELECT
+        count(1)
+        FROM lts_admin_node_onoffline_log
+        <include refid="whereCondition"/>
+    </select>
+
+
+    <delete id="delete" parameterType="com.lts.web.request.NodeOnOfflineLogRequest">
+        DELETE FROM lts_admin_node_onoffline_log
+        <include refid="whereCondition"/>
+    </delete>
+
+</mapper>

+ 1 - 1
lts-admin/src/main/resources/mybatis/mapper/taskTrackerMonitor.xml → lts-admin/src/main/resources/mybatis/mapper/taskTrackerMonitorRepo.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
-<mapper namespace="com.lts.web.repository.mapper.TaskTrackerMonitorRepository">
+<mapper namespace="com.lts.web.repository.mapper.TaskTrackerMonitorRepo">
 
     <insert id="executeSQL" parameterType="java.lang.String">
       ${sql}

+ 1 - 1
lts-admin/src/main/resources/sql/lts_admin_job_tracker_monitor_data.xml → lts-admin/src/main/resources/mybatis/sql/lts_admin_job_tracker_monitor_data.xml

@@ -20,7 +20,7 @@
       );
     </table>
     <indexes>
-      <index>CREATE INDEX `idx_timestamp` ON `lts_admin_job_tracker_monitor_data` (`timestamp`);</index>
+      <index>CREATE INDEX `idx_jobTracker_timestamp` ON `lts_admin_job_tracker_monitor_data` (`timestamp`);</index>
       <index>CREATE INDEX `idx_jobTrackerIdentity` ON `lts_admin_job_tracker_monitor_data` (`job_tracker_identity`);</index>
     </indexes>
 </tableSchema>

+ 25 - 0
lts-admin/src/main/resources/mybatis/sql/lts_admin_node_onoffline_log.xml

@@ -0,0 +1,25 @@
+<tableSchema>
+    <table>
+      CREATE TABLE IF NOT EXISTS `lts_admin_node_onoffline_log` (
+      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
+      `log_time` timestamp NULL DEFAULT NULL,
+      `event` varchar(32) DEFAULT NULL,
+      `node_type` varchar(16) DEFAULT NULL,
+      `cluster_name` varchar(64) DEFAULT NULL,
+      `ip` varchar(16) DEFAULT NULL,
+      `port` int(11) DEFAULT NULL,
+      `host_name` varchar(64) DEFAULT NULL,
+      `group` varchar(64) DEFAULT NULL,
+      `create_time` bigint(20) DEFAULT NULL,
+      `threads` int(11) DEFAULT NULL,
+      `identity` varchar(32) DEFAULT NULL,
+      PRIMARY KEY (`id`)
+      )
+    </table>
+  <indexes>
+    <index>CREATE INDEX `idx_logTime` ON `lts_admin_node_onoffline_log` (`log_time`);</index>
+    <index>CREATE INDEX `idx_event` ON `lts_admin_node_onoffline_log` (`event`);</index>
+    <index>CREATE INDEX `idx_identity` ON `lts_admin_node_onoffline_log` (`identity`);</index>
+    <index>CREATE INDEX `idx_group` ON `lts_admin_node_onoffline_log` (`group`);</index>
+  </indexes>
+</tableSchema>

+ 0 - 0
lts-admin/src/main/resources/sql/lts_admin_task_tracker_monitor_data.xml → lts-admin/src/main/resources/mybatis/sql/lts_admin_task_tracker_monitor_data.xml


+ 2 - 1
lts-admin/src/main/webapp/main.html

@@ -44,7 +44,8 @@
                 text: '节点管理',
                 items: [
                     {id: 'node-manager', text: '节点管理', href: 'node/node-manager.htm'},
-                    {id: 'node-group-manager', text: '节点组管理', href: 'node/node-group-manager.htm'}
+                    {id: 'node-group-manager', text: '节点组管理', href: 'node/node-group-manager.htm'},
+                    {id: 'node-onoffline-log', text: '节点上下线日志', href: 'node/node-onoffline-log.htm'}
                 ]
             }, {
                 text: '任务队列管理',

+ 2 - 2
lts-admin/src/main/webapp/main/node-manager.jsp

@@ -101,11 +101,11 @@
             }
             },
             {
-                title: '工作线程数', dataIndex: 'threads', width: 60, renderer: function (v, obj) {
+                title: '工作线程数', dataIndex: 'threads', width: 80, renderer: function (v, obj) {
                 if (obj['nodeType'] == 'TASK_TRACKER') {
                     return v;
                 }
-                return '';
+                return '';
             }
             },
             {

+ 145 - 0
lts-admin/src/main/webapp/main/node-onoffline-log.jsp

@@ -0,0 +1,145 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<!DOCTYPE HTML>
+<html>
+<head>
+    <jsp:include page="head.jsp"/>
+</head>
+<body>
+<div class="container">
+    <div class="row">
+        <form id="searchForm" class="form-horizontal span24">
+            <div class="row">
+                <div class="control-group span8">
+                    <label class="control-label">节点组:</label>
+
+                    <div class="controls">
+                        <input type="text" class="control-text" name="group">
+                    </div>
+                </div>
+                <div class="control-group span8">
+                    <label class="control-label">节点标识:</label>
+
+                    <div class="controls">
+                        <input type="text" class="control-text" name="identity">
+                    </div>
+                </div>
+                <div class="control-group span8">
+                    <label class="control-label">事件类型:</label>
+                    <div class="controls">
+                        <select name="event">
+                            <option value="">所有</option>
+                            <option value="ONLINE">上线</option>
+                            <option value="OFFLINE">离线</option>
+                        </select>
+                    </div>
+                </div>
+                <div class="control-group span12">
+                    <label class="control-label">创建时间:</label>
+                    <div class="controls">
+                        <input type="text" class="calendar calendar-time" name="startLogTime" value="${startLogTime}"><span> -
+                        </span><input name="endLogTime" type="text" class="calendar calendar-time" value="${endLogTime}">
+                    </div>
+                </div>
+                <div class="control-group span3">
+                    <button type="button" id="btnSearch" class="button button-primary">搜索</button>
+                </div>
+            </div>
+        </form>
+    </div>
+    <div class="search-grid-container">
+        <div id="grid"></div>
+    </div>
+</div>
+
+<script type="text/javascript">
+    BUI.use('common/page');
+</script>
+<script type="text/javascript">
+
+    BUI.use(['bui/common', 'bui/grid', 'bui/form', 'bui/data', 'bui/overlay','common/date-util'], buiInit);
+
+    function buiInit(BUI, Grid, Form, Data, Overlay, DateUtil) {
+
+        var columns = [
+            {
+                title: '记录时间', dataIndex: 'logTime', width: 125, renderer: function (v) {
+                return DateUtil.formatYMDHMD(v);
+                }
+            },
+            {
+                title: '事件', dataIndex: 'event', width: 50, renderer: function (v) {
+                return v == "ONLINE" ? "上线" : "离线";
+            }
+            },
+            {title: '集群名称', dataIndex: 'clusterName', width: 120},
+            {title: '节点类型', dataIndex: 'nodeType', width: 100},
+            {title: '节点组名', dataIndex: 'group', width: 180},
+            {title: '节点标识', dataIndex: 'identity', width: 245},
+            {
+                title: '节点创建时间', dataIndex: 'createTime', width: 125, renderer: function (v) {
+                return DateUtil.formatYMDHMD(v);
+            }
+            },
+            {
+                title: '机器', dataIndex: 'ip', width: 140, renderer: function (v, obj) {
+                if (obj['nodeType'] == 'JOB_TRACKER') {
+                    return obj['hostName'] + "<br/>(" + obj['ip'] + ":" + obj['port'] + ")";
+                }
+                return obj['hostName'] + "<br/>("  + obj['ip'] + ")";
+            }
+            },
+            {
+                title: '工作线程数', dataIndex: 'threads', width: 80, renderer: function (v, obj) {
+                if (obj['nodeType'] == 'TASK_TRACKER') {
+                    return v;
+                }
+                return '无';
+            }
+            }
+        ];
+
+        var store = new Data.Store({
+            url: '../api/node/node-onoffline-log-get',
+            autoLoad: true,
+            pageSize: 20,
+            remoteSort: false
+        });
+
+        store.on('exception', function (ev) {
+            BUI.Message.Alert(JSON.stringify(ev.error));
+        });
+
+        var grid = new Grid.Grid({
+            render: "#grid",
+            columns: columns,
+            loadMask : true,
+            bbar: {
+                pagingBar: true
+            },
+            emptyDataTpl : '<div class="centered">查询的数据不存在</div>',
+            store: store
+        });
+        grid.render();
+
+        // initForm
+        var form = new Form.HForm({
+            srcNode: '#searchForm'
+        }).render();
+
+
+        $('#btnSearch').on('click', function (ev) {
+            ev.preventDefault();
+            form.valid();
+            if (form.isValid()) {
+                var param = form.serializeToObject();
+                param.start = 0;
+                param.pageIndex = 0;
+                store.load(param);
+            }
+        });
+    }
+
+</script>
+</body>
+</html>

+ 1 - 1
lts-core/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-parent</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <packaging>jar</packaging>

+ 49 - 0
lts-core/src/main/java/com/lts/core/commons/utils/QuietUtils.java

@@ -0,0 +1,49 @@
+package com.lts.core.commons.utils;
+
+
+import com.lts.core.logger.Logger;
+import com.lts.core.logger.LoggerFactory;
+
+/**
+ * @author Robert HG (254963746@qq.com) on 9/26/15.
+ */
+public class QuietUtils {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(QuietUtils.class);
+
+    public static void doWithError(Callable callable) {
+        try {
+            callable.call();
+        } catch (Exception e) {
+            LOGGER.error(e.getMessage(), e);
+        }
+    }
+
+    public static void doWithWarn(Callable callable) {
+        try {
+            callable.call();
+        } catch (Exception e) {
+            LOGGER.warn(e.getMessage(), e);
+        }
+    }
+
+    public static void doWithInfo(Callable callable) {
+        try {
+            callable.call();
+        } catch (Exception e) {
+            LOGGER.info(e.getMessage(), e);
+        }
+    }
+
+    public static void doQuietly(Callable callable) {
+        try {
+            callable.call();
+        } catch (Exception ignored) {
+        }
+    }
+
+    public interface Callable {
+        void call() throws Exception;
+    }
+
+}

+ 1 - 1
lts-core/src/main/java/com/lts/core/support/Version.java

@@ -20,7 +20,7 @@ public final class Version {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(Version.class);
 
-    private static final String VERSION = getVersion(Version.class, "1.5.5-SNAPSHOT");
+    private static final String VERSION = getVersion(Version.class, "1.6.0-SNAPSHOT");
 
     static {
         // 检查是否存在重复的jar包

+ 1 - 1
lts-example/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-parent</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>lts-example</artifactId>

+ 1 - 1
lts-jobclient/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-parent</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
lts-jobtracker/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-parent</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
lts-logger/lts-logger-api/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-logger</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
lts-logger/lts-logger-console/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-logger</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
lts-logger/lts-logger-mongo/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-logger</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
lts-logger/lts-logger-mysql/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-logger</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
lts-logger/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-parent</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
lts-queue/lts-queue-api/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-queue</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
lts-queue/lts-queue-mongo/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-queue</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <packaging>jar</packaging>

+ 1 - 1
lts-queue/lts-queue-mysql/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-queue</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
lts-queue/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-parent</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
lts-spring/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-parent</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <packaging>jar</packaging>

+ 1 - 1
lts-startup/lts-startup-admin/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-startup</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
lts-startup/lts-startup-jobtracker/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-startup</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
lts-startup/lts-startup-tasktracker/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-startup</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
lts-startup/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-parent</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
lts-tasktracker/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>lts-parent</artifactId>
         <groupId>com.lts</groupId>
-        <version>1.5.5-SNAPSHOT</version>
+        <version>1.6.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
pom.xml

@@ -7,7 +7,7 @@
     <groupId>com.lts</groupId>
     <artifactId>lts-parent</artifactId>
     <packaging>pom</packaging>
-    <version>1.5.5-SNAPSHOT</version>
+    <version>1.6.0-SNAPSHOT</version>
     <modules>
         <module>lts-core</module>
         <module>lts-jobtracker</module>