From 58f84079c05390a50609f7b03bb3208150bc0859 Mon Sep 17 00:00:00 2001 From: walking98 Date: Fri, 10 May 2019 17:24:11 +0800 Subject: [PATCH] Fixed console ISSUE#254 #252 #251 --- .../rocketmq/console/controller/TopicController.java | 9 +++++++-- .../apache/rocketmq/console/service/TopicService.java | 2 +- .../console/service/impl/MessageServiceImpl.java | 3 ++- .../console/service/impl/TopicServiceImpl.java | 8 ++++++-- .../console/support/GlobalExceptionHandler.java | 2 +- src/main/resources/static/src/message.js | 10 +++++++++- src/main/resources/static/src/messageTrace.js | 5 ++++- src/main/resources/static/src/producer.js | 5 ++++- src/main/resources/static/view/pages/consumer.html | 8 ++++---- .../console/service/impl/TopicServiceImplTest.java | 4 ++-- 10 files changed, 40 insertions(+), 16 deletions(-) diff --git a/src/main/java/org/apache/rocketmq/console/controller/TopicController.java b/src/main/java/org/apache/rocketmq/console/controller/TopicController.java index 90819af..ce9080b 100644 --- a/src/main/java/org/apache/rocketmq/console/controller/TopicController.java +++ b/src/main/java/org/apache/rocketmq/console/controller/TopicController.java @@ -49,8 +49,13 @@ public class TopicController { @RequestMapping(value = "/list.query", method = RequestMethod.GET) @ResponseBody - public Object list() throws MQClientException, RemotingException, InterruptedException { - return topicService.fetchAllTopicList(); + public Object list(@RequestParam(value = "skipSysProcess", required = false) String skipSysProcess) + throws MQClientException, RemotingException, InterruptedException { + boolean flag = false; + if ("true".equals(skipSysProcess)) { + flag = true; + } + return topicService.fetchAllTopicList(flag); } @RequestMapping(value = "/stats.query", method = RequestMethod.GET) diff --git a/src/main/java/org/apache/rocketmq/console/service/TopicService.java b/src/main/java/org/apache/rocketmq/console/service/TopicService.java index 41a6b3b..ff2d308 100644 --- a/src/main/java/org/apache/rocketmq/console/service/TopicService.java +++ b/src/main/java/org/apache/rocketmq/console/service/TopicService.java @@ -29,7 +29,7 @@ import org.apache.rocketmq.console.model.request.TopicConfigInfo; import java.util.List; public interface TopicService { - TopicList fetchAllTopicList(); + TopicList fetchAllTopicList(boolean skipSysProcess); TopicStatsTable stats(String topic); diff --git a/src/main/java/org/apache/rocketmq/console/service/impl/MessageServiceImpl.java b/src/main/java/org/apache/rocketmq/console/service/impl/MessageServiceImpl.java index 0205a69..14cc31c 100644 --- a/src/main/java/org/apache/rocketmq/console/service/impl/MessageServiceImpl.java +++ b/src/main/java/org/apache/rocketmq/console/service/impl/MessageServiceImpl.java @@ -38,6 +38,7 @@ import org.apache.rocketmq.common.message.MessageQueue; import org.apache.rocketmq.common.protocol.body.Connection; import org.apache.rocketmq.common.protocol.body.ConsumeMessageDirectlyResult; import org.apache.rocketmq.common.protocol.body.ConsumerConnection; +import org.apache.rocketmq.console.exception.ServiceException; import org.apache.rocketmq.console.model.MessageView; import org.apache.rocketmq.console.service.MessageService; import org.apache.rocketmq.tools.admin.MQAdminExt; @@ -66,7 +67,7 @@ public class MessageServiceImpl implements MessageService { return new Pair<>(MessageView.fromMessageExt(messageExt), messageTrackList); } catch (Exception e) { - throw Throwables.propagate(e); + throw new ServiceException(-1, String.format("Failed to query message by Id: %s", msgId)); } } diff --git a/src/main/java/org/apache/rocketmq/console/service/impl/TopicServiceImpl.java b/src/main/java/org/apache/rocketmq/console/service/impl/TopicServiceImpl.java index a3ee18b..7660eaa 100644 --- a/src/main/java/org/apache/rocketmq/console/service/impl/TopicServiceImpl.java +++ b/src/main/java/org/apache/rocketmq/console/service/impl/TopicServiceImpl.java @@ -55,10 +55,14 @@ public class TopicServiceImpl extends AbstractCommonService implements TopicServ private RMQConfigure rMQConfigure; @Override - public TopicList fetchAllTopicList() { + public TopicList fetchAllTopicList(boolean skipSysProcess) { try { - TopicList sysTopics = getSystemTopicList(); TopicList allTopics = mqAdminExt.fetchAllTopicList(); + if (skipSysProcess) { + return allTopics; + } + + TopicList sysTopics = getSystemTopicList(); Set topics = new HashSet<>(); for (String topic: allTopics.getTopicList()) { diff --git a/src/main/java/org/apache/rocketmq/console/support/GlobalExceptionHandler.java b/src/main/java/org/apache/rocketmq/console/support/GlobalExceptionHandler.java index 37a8d64..ab44b64 100644 --- a/src/main/java/org/apache/rocketmq/console/support/GlobalExceptionHandler.java +++ b/src/main/java/org/apache/rocketmq/console/support/GlobalExceptionHandler.java @@ -39,7 +39,7 @@ public class GlobalExceptionHandler { value = new JsonResult(((ServiceException) ex).getCode(), ex.getMessage()); } else { - value = new JsonResult(-1, ex.getMessage()); + value = new JsonResult(-1, ex.getMessage() == null ? ex.toString() : ex.getMessage()); } } return value; diff --git a/src/main/resources/static/src/message.js b/src/main/resources/static/src/message.js index fca286c..1d70fe5 100644 --- a/src/main/resources/static/src/message.js +++ b/src/main/resources/static/src/message.js @@ -27,7 +27,10 @@ module.controller('messageController', ['$scope', 'ngDialog', '$http','Notificat $scope.queryMessageByMessageIdResult={}; $http({ method: "GET", - url: "topic/list.query" + url: "topic/list.query", + params: { + skipSysProcess: 'true' + } }).success(function (resp) { if(resp.status ==0){ $scope.allTopicList = resp.data.topicList.sort(); @@ -57,6 +60,11 @@ module.controller('messageController', ['$scope', 'ngDialog', '$http','Notificat console.log($scope.selectedTopic); console.log($scope.timepickerBegin) console.log($scope.timepickerEnd) + if ($scope.timepickerEnd < $scope.timepickerBegin) { + Notification.error({message: "endTime is later than beginTime!", delay: 2000}); + return + } + $http({ method: "GET", url: "message/queryMessageByTopic.query", diff --git a/src/main/resources/static/src/messageTrace.js b/src/main/resources/static/src/messageTrace.js index d48b64e..4b7132b 100644 --- a/src/main/resources/static/src/messageTrace.js +++ b/src/main/resources/static/src/messageTrace.js @@ -28,7 +28,10 @@ module.controller('messageTraceController', ['$scope', 'ngDialog', '$http','Noti $http({ method: "GET", - url: "topic/list.query" + url: "topic/list.query", + params: { + skipSysProcess:"true" + } }).success(function (resp) { if(resp.status ==0){ $scope.allTopicList = resp.data.topicList.sort(); diff --git a/src/main/resources/static/src/producer.js b/src/main/resources/static/src/producer.js index 3c039ad..7018c1a 100644 --- a/src/main/resources/static/src/producer.js +++ b/src/main/resources/static/src/producer.js @@ -21,7 +21,10 @@ module.controller('producerController', ['$scope', '$http','Notification',functi $scope.producerGroup=""; $http({ method: "GET", - url: "topic/list.query" + url: "topic/list.query", + params:{ + skipSysProcess:"true" + } }).success(function (resp) { if(resp.status ==0){ $scope.allTopicList = resp.data.topicList.sort(); diff --git a/src/main/resources/static/view/pages/consumer.html b/src/main/resources/static/view/pages/consumer.html index d8dfe4e..13b2762 100644 --- a/src/main/resources/static/view/pages/consumer.html +++ b/src/main/resources/static/view/pages/consumer.html @@ -379,10 +379,10 @@ - +