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/Account.java | 766 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 383 insertions(+), 383 deletions(-) diff --git a/utils/src/main/java/com/qcloud/cmq/Account.java b/utils/src/main/java/com/qcloud/cmq/Account.java index 3d4106c..e5731fc 100644 --- a/utils/src/main/java/com/qcloud/cmq/Account.java +++ b/utils/src/main/java/com/qcloud/cmq/Account.java @@ -1,383 +1,383 @@ -package com.qcloud.cmq; - -import java.util.List; -import java.util.TreeMap; -import java.util.Vector; -import java.lang.Integer; - -import com.qcloud.cmq.*; -import com.qcloud.cmq.Json.*; - -/** - * CMQ_jAVA_SDK_V1.0.2 - * Update: Add topic and subscription function - * Tips: - * 1 Account class object is not safty in multy thread. - * 2 You should init different account for topic or queue - * Account class - * @author York. - * Created 2016骞�9鏈�27鏃�. - */ -public class Account{ - - - protected CMQClient client; - - /** - * @brief - * @param secretId String 顧� - * @param secretKey String - * @param endpoint String https://cmq-queue-gz.api.qcloud.com - * @param method String "POST" or "GET" default: "POST" - */ - public Account(String endpoint, String secretId, String secretKey){ - this.client = new CMQClient(endpoint, "/v2/index.php", secretId, secretKey, "POST"); - } - - /** - * @brief - * @param secretId String顧� - * @param secretKey String - * @param endpoint https://cmq-queue-gz.api.qcloud.com - * @param path String - * @param method String "POST" or "GET" default :"POST" - */ - public Account(String secretId, String secretKey,String endpoint, String path, String method){ - this.client = new CMQClient(endpoint, path, secretId, secretKey, method); - } - - public void setSignMethod(String Method) - { - this.client.setSignMethod(Method); - } - /** - * create queue - * @param queueName String queue name - * @param meta QueueMeta class object - * @throws Exception - * @throws CMQClientException - * @throws CMQServerException - */ - public void createQueue(String queueName,QueueMeta meta) throws Exception { - TreeMap<String, String> param = new TreeMap<String, String>(); - if(queueName.equals("")) - throw new CMQClientException("Invalid parameter:queueName is empty"); - else - param.put("queueName",queueName); - - if(meta.maxMsgHeapNum > 0) - param.put("maxMsgHeapNum",Integer.toString(meta.maxMsgHeapNum)); - if(meta.pollingWaitSeconds > 0) - param.put("pollingWaitSeconds",Integer.toString(meta.pollingWaitSeconds)); - if(meta.visibilityTimeout > 0) - param.put("visibilityTimeout",Integer.toString(meta.visibilityTimeout)); - if(meta.maxMsgSize > 0) - param.put("maxMsgSize",Integer.toString(meta.maxMsgSize)); - if(meta.msgRetentionSeconds > 0) - param.put("msgRetentionSeconds",Integer.toString(meta.msgRetentionSeconds)); - - String result = this.client.call("CreateQueue", param); - JSONObject jsonObj = new JSONObject(result); - int code = jsonObj.getInt("code"); - if(code != 0) - throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); - } - - /** - * delete queue - * - * @param queueName String queue name - * @throws CMQClientException - * @throws CMQServerException - */ - public void deleteQueue(String queueName) throws Exception { - TreeMap<String, String> param = new TreeMap<String, String>(); - if(queueName.equals("")) - throw new CMQClientException("Invalid parameter:queueName is empty"); - else - param.put("queueName",queueName); - - String result = this.client.call("DeleteQueue", param); - JSONObject jsonObj = new JSONObject(result); - int code = jsonObj.getInt("code"); - if(code != 0) - throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); - } - - /** - * list queue - * - * @param searchWord String - * @param offset int - * @param limit int - * @param queueList List<String> - * @return totalCount int - * @throws Exception - * @throws CMQClientException - * @throws CMQServerException - */ - public int listQueue(String searchWord, int offset, int limit, List<String> queueList) throws Exception { - TreeMap<String, String> param = new TreeMap<String, String>(); - if(!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("ListQueue", 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("queueList"); - for(int i=0;i<jsonArray.length();i++) - { - JSONObject obj = (JSONObject)jsonArray.get(i); - queueList.add(obj.getString("queueName")); - } - - return totalCount; - } - - /** - * get Queue - * @param queueName String - * @return Queue object - * - */ - public Queue getQueue(String queueName){ - return new Queue(queueName,this.client); - } - - /** - * get topic object - * @param topicName String - * @return Topic object - */ - public Topic getTopic(String topicName) - { - return new Topic(topicName, this.client); - } - - - /** - * TODO create topic - * - * @param topicName String - * @param maxMsgSize int - * @param filterType - * @throws Exception - */ - public void createTopic(final String topicName, final int maxMsgSize) throws Exception - { - createTopic(topicName,maxMsgSize,1); - } - public void createTopic(final String topicName, final int maxMsgSize, int filterType) throws Exception - { - TreeMap<String, String> param = new TreeMap<String, String>(); - if(topicName.equals("")) - throw new CMQClientException("Invalid parameter:topicName is empty"); - else - param.put("topicName",topicName); - - param.put("filterType",Integer.toString(filterType)); - if(maxMsgSize < 1 || maxMsgSize > 65536) - throw new CMQClientException("Invalid parameter: maxMsgSize > 65536 or maxMsgSize < 1"); - - param.put("maxMsgSize",Integer.toString(maxMsgSize)); - String result = this.client.call("CreateTopic", 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 delete topic - * - * @param topicName String - * @throws Exception int - */ - public void deleteTopic(final String topicName) throws Exception - { - TreeMap<String, String> param = new TreeMap<String, String>(); - if(topicName.equals("")) - throw new CMQClientException("Invalid parameter:topicName is empty"); - else - param.put("topicName",topicName); - - String result = this.client.call("DeleteTopic", 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 list topic - * - * @param searchWord String - * @param vTopicList List<String> - * @param offset int - * @param limit int - * @return totalCount int - * @throws Exception - */ - public int listTopic( final String searchWord, List<String> vTopicList , final int offset ,final int limit) throws Exception - { - TreeMap<String, String> param = new TreeMap<String, String>(); - if(!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("ListTopic", 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("topicList"); - - vTopicList.clear(); - for(int i=0;i<jsonArray.length();i++) - { - JSONObject obj = (JSONObject)jsonArray.get(i); - vTopicList.add(obj.getString("topicName")); - } - return totalCount; - } - - /** - * TODO create subscribe - * - * @param topicName String - * @param subscriptionName String - * @param Endpoint String - * @param Protocal String - * @throws Exception - */ - public void createSubscribe(final String topicName, final String subscriptionName, final String Endpoint,final String Protocal) throws Exception - { - createSubscribe(topicName,subscriptionName, Endpoint,Protocal,null,null,"BACKOFF_RETRY","JSON"); - - } - /** - * TODO create subscribe - * - * @param topicName String - * @param subscriptionName String - * @param Endpoint String - * @param Protocal String - * @param FilterTag List<String> - * @param NotifyStrategy String - * @param NotifyContentFormat String - * @throws Exception - */ - public void createSubscribe(final String topicName, final String subscriptionName, final String Endpoint,final String Protocal, - final List<String> FilterTag , final List<String>bindingKey,final String NotifyStrategy, final String NotifyContentFormat) throws Exception - { - - - if ( FilterTag != null && FilterTag.size() > 5) - throw new CMQClientException("Invalid parameter: Tag number > 5"); - - - TreeMap<String, String> param = new TreeMap<String, String>(); - if(topicName.equals("")) - throw new CMQClientException("Invalid parameter:topicName is empty"); - - param.put("topicName",topicName); - - if(subscriptionName.equals("")) - throw new CMQClientException("Invalid parameter:subscriptionName is empty"); - - param.put("subscriptionName", subscriptionName); - - if(Endpoint.equals("")) - throw new CMQClientException("Invalid parameter:Endpoint is empty"); - - param.put("endpoint", Endpoint); - - if(Protocal.equals("")) - throw new CMQClientException("Invalid parameter:Protocal is empty"); - - param.put("protocol", Protocal); - - if(NotifyStrategy.equals("")) - throw new CMQClientException("Invalid parameter:NotifyStrategy is empty"); - - param.put("notifyStrategy", NotifyStrategy); - - if(NotifyContentFormat.equals("") ) - throw new CMQClientException("Invalid parameter:NotifyContentFormat is empty"); - param.put("notifyContentFormat", NotifyContentFormat); - - if(FilterTag != null ) - { - for(int i = 0 ; i < FilterTag.size() ; ++i) - param.put("filterTag."+ Integer.toString(i+1),FilterTag.get(i)); - } - if(bindingKey != null ) - { - for(int i = 0 ; i < bindingKey.size() ; ++i) - param.put("bindingKey."+ Integer.toString(i+1),bindingKey.get(i)); - } - - String result = this.client.call("Subscribe", param); - JSONObject jsonObj = new JSONObject(result); - int code = jsonObj.getInt("code"); - if(code != 0) - throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); - } - - - /** - * delete subscription . - * - * @param topicName String - * @param subscriptionName String - * @throws Exception - */ - public void deleteSubscribe(final String topicName, final String subscriptionName) throws Exception - { - TreeMap<String, String> param = new TreeMap<String, String>(); - if(topicName.equals("")) - throw new CMQClientException("Invalid parameter:topicName is empty"); - else - param.put("topicName",topicName); - - if(subscriptionName.equals("")) - throw new CMQClientException("Invalid parameter:subscriptionName is empty"); - else - param.put("subscriptionName",subscriptionName); - - String result = this.client.call("Unsubscribe", 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 a subscription object. - * - * @param topicName String - * @param subscriptionName String - * @return - */ - public Subscription getSubscription(final String topicName,final String subscriptionName) - { - return new Subscription(topicName, subscriptionName, this.client); - } -} +package com.qcloud.cmq; + +import java.util.List; +import java.util.TreeMap; +import java.util.Vector; +import java.lang.Integer; + +import com.qcloud.cmq.*; +import com.qcloud.cmq.Json.*; + +/** + * CMQ_jAVA_SDK_V1.0.2 + * Update: Add topic and subscription function + * Tips: + * 1 Account class object is not safty in multy thread. + * 2 You should init different account for topic or queue + * Account class + * @author York. + * Created 2016骞�9鏈�27鏃�. + */ +public class Account{ + + + protected CMQClient client; + + /** + * @brief + * @param secretId String 顧� + * @param secretKey String + * @param endpoint String https://cmq-queue-gz.api.qcloud.com + * @param method String "POST" or "GET" default: "POST" + */ + public Account(String endpoint, String secretId, String secretKey){ + this.client = new CMQClient(endpoint, "/v2/index.php", secretId, secretKey, "POST"); + } + + /** + * @brief + * @param secretId String顧� + * @param secretKey String + * @param endpoint https://cmq-queue-gz.api.qcloud.com + * @param path String + * @param method String "POST" or "GET" default :"POST" + */ + public Account(String secretId, String secretKey,String endpoint, String path, String method){ + this.client = new CMQClient(endpoint, path, secretId, secretKey, method); + } + + public void setSignMethod(String Method) + { + this.client.setSignMethod(Method); + } + /** + * create queue + * @param queueName String queue name + * @param meta QueueMeta class object + * @throws Exception + * @throws CMQClientException + * @throws CMQServerException + */ + public void createQueue(String queueName,QueueMeta meta) throws Exception { + TreeMap<String, String> param = new TreeMap<String, String>(); + if(queueName.equals("")) + throw new CMQClientException("Invalid parameter:queueName is empty"); + else + param.put("queueName",queueName); + + if(meta.maxMsgHeapNum > 0) + param.put("maxMsgHeapNum",Integer.toString(meta.maxMsgHeapNum)); + if(meta.pollingWaitSeconds > 0) + param.put("pollingWaitSeconds",Integer.toString(meta.pollingWaitSeconds)); + if(meta.visibilityTimeout > 0) + param.put("visibilityTimeout",Integer.toString(meta.visibilityTimeout)); + if(meta.maxMsgSize > 0) + param.put("maxMsgSize",Integer.toString(meta.maxMsgSize)); + if(meta.msgRetentionSeconds > 0) + param.put("msgRetentionSeconds",Integer.toString(meta.msgRetentionSeconds)); + + String result = this.client.call("CreateQueue", param); + JSONObject jsonObj = new JSONObject(result); + int code = jsonObj.getInt("code"); + if(code != 0) + throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); + } + + /** + * delete queue + * + * @param queueName String queue name + * @throws CMQClientException + * @throws CMQServerException + */ + public void deleteQueue(String queueName) throws Exception { + TreeMap<String, String> param = new TreeMap<String, String>(); + if(queueName.equals("")) + throw new CMQClientException("Invalid parameter:queueName is empty"); + else + param.put("queueName",queueName); + + String result = this.client.call("DeleteQueue", param); + JSONObject jsonObj = new JSONObject(result); + int code = jsonObj.getInt("code"); + if(code != 0) + throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); + } + + /** + * list queue + * + * @param searchWord String + * @param offset int + * @param limit int + * @param queueList List<String> + * @return totalCount int + * @throws Exception + * @throws CMQClientException + * @throws CMQServerException + */ + public int listQueue(String searchWord, int offset, int limit, List<String> queueList) throws Exception { + TreeMap<String, String> param = new TreeMap<String, String>(); + if(!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("ListQueue", 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("queueList"); + for(int i=0;i<jsonArray.length();i++) + { + JSONObject obj = (JSONObject)jsonArray.get(i); + queueList.add(obj.getString("queueName")); + } + + return totalCount; + } + + /** + * get Queue + * @param queueName String + * @return Queue object + * + */ + public Queue getQueue(String queueName){ + return new Queue(queueName,this.client); + } + + /** + * get topic object + * @param topicName String + * @return Topic object + */ + public Topic getTopic(String topicName) + { + return new Topic(topicName, this.client); + } + + + /** + * TODO create topic + * + * @param topicName String + * @param maxMsgSize int + * @param filterType + * @throws Exception + */ + public void createTopic(final String topicName, final int maxMsgSize) throws Exception + { + createTopic(topicName,maxMsgSize,1); + } + public void createTopic(final String topicName, final int maxMsgSize, int filterType) throws Exception + { + TreeMap<String, String> param = new TreeMap<String, String>(); + if(topicName.equals("")) + throw new CMQClientException("Invalid parameter:topicName is empty"); + else + param.put("topicName",topicName); + + param.put("filterType",Integer.toString(filterType)); + if(maxMsgSize < 1 || maxMsgSize > 65536) + throw new CMQClientException("Invalid parameter: maxMsgSize > 65536 or maxMsgSize < 1"); + + param.put("maxMsgSize",Integer.toString(maxMsgSize)); + String result = this.client.call("CreateTopic", 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 delete topic + * + * @param topicName String + * @throws Exception int + */ + public void deleteTopic(final String topicName) throws Exception + { + TreeMap<String, String> param = new TreeMap<String, String>(); + if(topicName.equals("")) + throw new CMQClientException("Invalid parameter:topicName is empty"); + else + param.put("topicName",topicName); + + String result = this.client.call("DeleteTopic", 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 list topic + * + * @param searchWord String + * @param vTopicList List<String> + * @param offset int + * @param limit int + * @return totalCount int + * @throws Exception + */ + public int listTopic( final String searchWord, List<String> vTopicList , final int offset ,final int limit) throws Exception + { + TreeMap<String, String> param = new TreeMap<String, String>(); + if(!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("ListTopic", 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("topicList"); + + vTopicList.clear(); + for(int i=0;i<jsonArray.length();i++) + { + JSONObject obj = (JSONObject)jsonArray.get(i); + vTopicList.add(obj.getString("topicName")); + } + return totalCount; + } + + /** + * TODO create subscribe + * + * @param topicName String + * @param subscriptionName String + * @param Endpoint String + * @param Protocal String + * @throws Exception + */ + public void createSubscribe(final String topicName, final String subscriptionName, final String Endpoint,final String Protocal) throws Exception + { + createSubscribe(topicName,subscriptionName, Endpoint,Protocal,null,null,"BACKOFF_RETRY","JSON"); + + } + /** + * TODO create subscribe + * + * @param topicName String + * @param subscriptionName String + * @param Endpoint String + * @param Protocal String + * @param FilterTag List<String> + * @param NotifyStrategy String + * @param NotifyContentFormat String + * @throws Exception + */ + public void createSubscribe(final String topicName, final String subscriptionName, final String Endpoint,final String Protocal, + final List<String> FilterTag , final List<String>bindingKey,final String NotifyStrategy, final String NotifyContentFormat) throws Exception + { + + + if ( FilterTag != null && FilterTag.size() > 5) + throw new CMQClientException("Invalid parameter: Tag number > 5"); + + + TreeMap<String, String> param = new TreeMap<String, String>(); + if(topicName.equals("")) + throw new CMQClientException("Invalid parameter:topicName is empty"); + + param.put("topicName",topicName); + + if(subscriptionName.equals("")) + throw new CMQClientException("Invalid parameter:subscriptionName is empty"); + + param.put("subscriptionName", subscriptionName); + + if(Endpoint.equals("")) + throw new CMQClientException("Invalid parameter:Endpoint is empty"); + + param.put("endpoint", Endpoint); + + if(Protocal.equals("")) + throw new CMQClientException("Invalid parameter:Protocal is empty"); + + param.put("protocol", Protocal); + + if(NotifyStrategy.equals("")) + throw new CMQClientException("Invalid parameter:NotifyStrategy is empty"); + + param.put("notifyStrategy", NotifyStrategy); + + if(NotifyContentFormat.equals("") ) + throw new CMQClientException("Invalid parameter:NotifyContentFormat is empty"); + param.put("notifyContentFormat", NotifyContentFormat); + + if(FilterTag != null ) + { + for(int i = 0 ; i < FilterTag.size() ; ++i) + param.put("filterTag."+ Integer.toString(i+1),FilterTag.get(i)); + } + if(bindingKey != null ) + { + for(int i = 0 ; i < bindingKey.size() ; ++i) + param.put("bindingKey."+ Integer.toString(i+1),bindingKey.get(i)); + } + + String result = this.client.call("Subscribe", param); + JSONObject jsonObj = new JSONObject(result); + int code = jsonObj.getInt("code"); + if(code != 0) + throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); + } + + + /** + * delete subscription . + * + * @param topicName String + * @param subscriptionName String + * @throws Exception + */ + public void deleteSubscribe(final String topicName, final String subscriptionName) throws Exception + { + TreeMap<String, String> param = new TreeMap<String, String>(); + if(topicName.equals("")) + throw new CMQClientException("Invalid parameter:topicName is empty"); + else + param.put("topicName",topicName); + + if(subscriptionName.equals("")) + throw new CMQClientException("Invalid parameter:subscriptionName is empty"); + else + param.put("subscriptionName",subscriptionName); + + String result = this.client.call("Unsubscribe", 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 a subscription object. + * + * @param topicName String + * @param subscriptionName String + * @return + */ + public Subscription getSubscription(final String topicName,final String subscriptionName) + { + return new Subscription(topicName, subscriptionName, this.client); + } +} -- Gitblit v1.8.0