From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 20 五月 2020 17:25:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2 --- utils/src/main/java/com/qcloud/cmq/Topic.java | 486 +++++++++++++++++++++++++++--------------------------- 1 files changed, 243 insertions(+), 243 deletions(-) diff --git a/utils/src/main/java/com/qcloud/cmq/Topic.java b/utils/src/main/java/com/qcloud/cmq/Topic.java index 02acf3b..44dd563 100644 --- a/utils/src/main/java/com/qcloud/cmq/Topic.java +++ b/utils/src/main/java/com/qcloud/cmq/Topic.java @@ -1,243 +1,243 @@ -package com.qcloud.cmq; - -import java.util.TreeMap; -import java.util.Vector; -import java.util.List; -import java.lang.Integer; -import com.qcloud.cmq.Json.JSONArray; -import com.qcloud.cmq.Json.JSONObject; - -/** - * TODO topic class. - * - * @author York. - * Created 2016骞�9鏈�26鏃�. - */ -public class Topic { - // topic name - protected String topicName; - // cmq client - protected CMQClient client; - - /** - * construct . - * - * @param topicName String - * @param client CMQClient - */ - Topic(String topicName, CMQClient client) { - this.topicName = topicName; - this.client = client; - } - - - /** - * TODO set topic attributes - * - * @param maxMsgSize int - * @throws Exception - */ - public void setTopicAttributes(final int maxMsgSize)throws Exception - { - if (maxMsgSize < 0 || maxMsgSize >65536) - throw new CMQClientException("Invalid parameter maxMsgSize < 0 or maxMsgSize > 65536"); - - TreeMap<String, String> param = new TreeMap<String, String>(); - - param.put("topicName",this.topicName); - - if(maxMsgSize > 0) - param.put("maxMsgSize",Integer.toString(maxMsgSize)); - - String result = this.client.call("SetTopicAttributes", param); - JSONObject jsonObj = new JSONObject(result); - int code = jsonObj.getInt("code"); - if(code != 0) - throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); - } - - - /** - * TODO get topic attributes. - * - * @return return topic meta object - * @throws Exception - */ - public TopicMeta getTopicAttributes() throws Exception - { - TreeMap<String, String> param = new TreeMap<String, String>(); - - param.put("topicName",this.topicName); - - String result = this.client.call("GetTopicAttributes", param); - JSONObject jsonObj = new JSONObject(result); - int code = jsonObj.getInt("code"); - if(code != 0) - throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); - - TopicMeta meta = new TopicMeta(); - meta.msgCount = jsonObj.getInt("msgCount"); - meta.maxMsgSize = jsonObj.getInt("maxMsgSize"); - meta.msgRetentionSeconds = jsonObj.getInt("msgRetentionSeconds"); - meta.createTime =jsonObj.getInt("createTime"); - meta.lastModifyTime = jsonObj.getInt("lastModifyTime"); - meta.filterType = jsonObj.getInt("filterType"); - return meta; - - } - - /** - * publish message without tags. - * - * @param message String - * @return msgId, String - * @throws Exception - */ - public String publishMessage(String message) throws Exception - { - return publishMessage(message,null,null); - } - public String publishMessage(String message,String routingKey) throws Exception - { - return publishMessage(message, null,routingKey); - } - - /** - * publish message . - * - * @param msg String message body - * @param vTagList Vector<String> message tag - * @return msgId String - * @throws Exception - */ - public String publishMessage(String msg, List<String> vTagList,String routingKey) throws Exception - { - TreeMap<String, String> param = new TreeMap<String, String>(); - - param.put("topicName",this.topicName); - param.put("msgBody",msg); - if(routingKey != null) - param.put("routingKey",routingKey); - - if( vTagList != null ) - { - for(int i = 0 ; i < vTagList.size() ; ++i) - { - param.put("msgTag."+Integer.toString(i+1), vTagList.get(i)); - } - } - - String result = this.client.call("PublishMessage", param); - JSONObject jsonObj = new JSONObject(result); - int code = jsonObj.getInt("code"); - if(code != 0) - throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); - return jsonObj.getString("msgId"); - } - - /** - * TODO batch publish message without tags. - * - * @param vMsgList Vector<String> message array - * @return msgId Vector<String> message id array - * @throws Exception - */ - public Vector<String> batchPublishMessage(List<String> vMsgList) throws Exception - { - return batchPublishMessage(vMsgList,null, null); - } - public Vector<String> batchPublishMessage(List<String> vMsgList,String routingKey) throws Exception - { - return batchPublishMessage(vMsgList,null,routingKey); - } - - /** - * batch publish message - * - * @param vMsgList message array - * @param vTagList message tag array - * @return message handles array - * @throws Exception - */ - public Vector<String> batchPublishMessage(List<String> vMsgList,List<String> vTagList,String routingKey ) throws Exception - { - - TreeMap<String, String> param = new TreeMap<String, String>(); - - param.put("topicName",this.topicName); - if(routingKey != null) - param.put("routingKey",routingKey); - if(vMsgList != null ) - { - for(int i = 0 ; i< vMsgList.size() ; ++i) - { - param.put("msgBody."+Integer.toString(i+1), vMsgList.get(i)); - } - } - if(vTagList != null) - { - for(int i = 0 ; i< vTagList.size() ; ++i) - { - param.put("msgTag."+Integer.toString(i+1), vTagList.get(i)); - } - } - - String result = this.client.call("BatchPublishMessage", param); - JSONObject jsonObj = new JSONObject(result); - int code = jsonObj.getInt("code"); - if(code != 0) - throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); - - JSONArray jsonArray = jsonObj.getJSONArray("msgList"); - - Vector<String> vmsgId = new Vector<String>(); - for(int i=0;i<jsonArray.length();i++) - { - JSONObject obj = (JSONObject)jsonArray.get(i); - vmsgId.add(obj.getString("msgId")); - } - - return vmsgId; - - } - /** - * TODO list subscription by topic. - * - * @param totalCount int - * @param offset int - * @param limit int - * @param searchWord String - * @param vSubscriptionList List<String> - * @return totalCount int - * @throws Exception - */ - public int ListSubscription(final int offset , int limit , - final String searchWord, List< String>vSubscriptionList - ) throws Exception - { - TreeMap<String, String> param = new TreeMap<String, String>(); - param.put("topicName", this.topicName); - if( searchWord != null && !searchWord.equals("")) - param.put("searchWord",searchWord); - if(offset >=0 ) - param.put("offset",Integer.toString(offset)); - if(limit > 0 ) - param.put("limit",Integer.toString(limit)); - - String result = this.client.call("ListSubscriptionByTopic", param); - JSONObject jsonObj = new JSONObject(result); - int code = jsonObj.getInt("code"); - if(code != 0) - throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); - - int totalCount = jsonObj.getInt("totalCount"); - JSONArray jsonArray = jsonObj.getJSONArray("subscriptionList"); - for(int i=0;i<jsonArray.length();i++) - { - JSONObject obj = (JSONObject)jsonArray.get(i); - vSubscriptionList.add(obj.getString("subscriptionName")); - } - return totalCount; - } - -} +package com.qcloud.cmq; + +import java.util.TreeMap; +import java.util.Vector; +import java.util.List; +import java.lang.Integer; +import com.qcloud.cmq.Json.JSONArray; +import com.qcloud.cmq.Json.JSONObject; + +/** + * TODO topic class. + * + * @author York. + * Created 2016骞�9鏈�26鏃�. + */ +public class Topic { + // topic name + protected String topicName; + // cmq client + protected CMQClient client; + + /** + * construct . + * + * @param topicName String + * @param client CMQClient + */ + Topic(String topicName, CMQClient client) { + this.topicName = topicName; + this.client = client; + } + + + /** + * TODO set topic attributes + * + * @param maxMsgSize int + * @throws Exception + */ + public void setTopicAttributes(final int maxMsgSize)throws Exception + { + if (maxMsgSize < 0 || maxMsgSize >65536) + throw new CMQClientException("Invalid parameter maxMsgSize < 0 or maxMsgSize > 65536"); + + TreeMap<String, String> param = new TreeMap<String, String>(); + + param.put("topicName",this.topicName); + + if(maxMsgSize > 0) + param.put("maxMsgSize",Integer.toString(maxMsgSize)); + + String result = this.client.call("SetTopicAttributes", param); + JSONObject jsonObj = new JSONObject(result); + int code = jsonObj.getInt("code"); + if(code != 0) + throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); + } + + + /** + * TODO get topic attributes. + * + * @return return topic meta object + * @throws Exception + */ + public TopicMeta getTopicAttributes() throws Exception + { + TreeMap<String, String> param = new TreeMap<String, String>(); + + param.put("topicName",this.topicName); + + String result = this.client.call("GetTopicAttributes", param); + JSONObject jsonObj = new JSONObject(result); + int code = jsonObj.getInt("code"); + if(code != 0) + throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); + + TopicMeta meta = new TopicMeta(); + meta.msgCount = jsonObj.getInt("msgCount"); + meta.maxMsgSize = jsonObj.getInt("maxMsgSize"); + meta.msgRetentionSeconds = jsonObj.getInt("msgRetentionSeconds"); + meta.createTime =jsonObj.getInt("createTime"); + meta.lastModifyTime = jsonObj.getInt("lastModifyTime"); + meta.filterType = jsonObj.getInt("filterType"); + return meta; + + } + + /** + * publish message without tags. + * + * @param message String + * @return msgId, String + * @throws Exception + */ + public String publishMessage(String message) throws Exception + { + return publishMessage(message,null,null); + } + public String publishMessage(String message,String routingKey) throws Exception + { + return publishMessage(message, null,routingKey); + } + + /** + * publish message . + * + * @param msg String message body + * @param vTagList Vector<String> message tag + * @return msgId String + * @throws Exception + */ + public String publishMessage(String msg, List<String> vTagList,String routingKey) throws Exception + { + TreeMap<String, String> param = new TreeMap<String, String>(); + + param.put("topicName",this.topicName); + param.put("msgBody",msg); + if(routingKey != null) + param.put("routingKey",routingKey); + + if( vTagList != null ) + { + for(int i = 0 ; i < vTagList.size() ; ++i) + { + param.put("msgTag."+Integer.toString(i+1), vTagList.get(i)); + } + } + + String result = this.client.call("PublishMessage", param); + JSONObject jsonObj = new JSONObject(result); + int code = jsonObj.getInt("code"); + if(code != 0) + throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); + return jsonObj.getString("msgId"); + } + + /** + * TODO batch publish message without tags. + * + * @param vMsgList Vector<String> message array + * @return msgId Vector<String> message id array + * @throws Exception + */ + public Vector<String> batchPublishMessage(List<String> vMsgList) throws Exception + { + return batchPublishMessage(vMsgList,null, null); + } + public Vector<String> batchPublishMessage(List<String> vMsgList,String routingKey) throws Exception + { + return batchPublishMessage(vMsgList,null,routingKey); + } + + /** + * batch publish message + * + * @param vMsgList message array + * @param vTagList message tag array + * @return message handles array + * @throws Exception + */ + public Vector<String> batchPublishMessage(List<String> vMsgList,List<String> vTagList,String routingKey ) throws Exception + { + + TreeMap<String, String> param = new TreeMap<String, String>(); + + param.put("topicName",this.topicName); + if(routingKey != null) + param.put("routingKey",routingKey); + if(vMsgList != null ) + { + for(int i = 0 ; i< vMsgList.size() ; ++i) + { + param.put("msgBody."+Integer.toString(i+1), vMsgList.get(i)); + } + } + if(vTagList != null) + { + for(int i = 0 ; i< vTagList.size() ; ++i) + { + param.put("msgTag."+Integer.toString(i+1), vTagList.get(i)); + } + } + + String result = this.client.call("BatchPublishMessage", param); + JSONObject jsonObj = new JSONObject(result); + int code = jsonObj.getInt("code"); + if(code != 0) + throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); + + JSONArray jsonArray = jsonObj.getJSONArray("msgList"); + + Vector<String> vmsgId = new Vector<String>(); + for(int i=0;i<jsonArray.length();i++) + { + JSONObject obj = (JSONObject)jsonArray.get(i); + vmsgId.add(obj.getString("msgId")); + } + + return vmsgId; + + } + /** + * TODO list subscription by topic. + * + * @param totalCount int + * @param offset int + * @param limit int + * @param searchWord String + * @param vSubscriptionList List<String> + * @return totalCount int + * @throws Exception + */ + public int ListSubscription(final int offset , int limit , + final String searchWord, List< String>vSubscriptionList + ) throws Exception + { + TreeMap<String, String> param = new TreeMap<String, String>(); + param.put("topicName", this.topicName); + if( searchWord != null && !searchWord.equals("")) + param.put("searchWord",searchWord); + if(offset >=0 ) + param.put("offset",Integer.toString(offset)); + if(limit > 0 ) + param.put("limit",Integer.toString(limit)); + + String result = this.client.call("ListSubscriptionByTopic", param); + JSONObject jsonObj = new JSONObject(result); + int code = jsonObj.getInt("code"); + if(code != 0) + throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); + + int totalCount = jsonObj.getInt("totalCount"); + JSONArray jsonArray = jsonObj.getJSONArray("subscriptionList"); + for(int i=0;i<jsonArray.length();i++) + { + JSONObject obj = (JSONObject)jsonArray.get(i); + vSubscriptionList.add(obj.getString("subscriptionName")); + } + return totalCount; + } + +} -- Gitblit v1.8.0