Adding ThriftStatisticsPublisherTest and updating ThriftStatisticsPublisher and ThiriftClientConfigParserTest
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/5435bffd Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/5435bffd Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/5435bffd Branch: refs/heads/stratos-4.1.x Commit: 5435bffd21f21aa26a61f6cf3df345af453e20f6 Parents: 85036eb Author: Thanuja <[email protected]> Authored: Mon Nov 30 16:12:45 2015 +0530 Committer: gayangunarathne <[email protected]> Committed: Tue Dec 1 08:57:55 2015 +0530 ---------------------------------------------------------------------- .../publisher/ThriftStatisticsPublisher.java | 20 +++--- .../test/ThriftClientConfigParserTest.java | 73 +++++++++++--------- .../test/ThriftStatisticsPublisherTest.java | 60 ++++++++++++++++ .../src/test/resources/thrift-client-config.xml | 53 ++++++++------ 4 files changed, 142 insertions(+), 64 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/5435bffd/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/statistics/publisher/ThriftStatisticsPublisher.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/statistics/publisher/ThriftStatisticsPublisher.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/statistics/publisher/ThriftStatisticsPublisher.java index c26c6d3..bf0db61 100644 --- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/statistics/publisher/ThriftStatisticsPublisher.java +++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/statistics/publisher/ThriftStatisticsPublisher.java @@ -43,6 +43,8 @@ public class ThriftStatisticsPublisher implements StatisticsPublisher { private LoadBalancingDataPublisher loadBalancingDataPublisher; private List<ThriftClientInfo> thriftClientInfoList; private boolean enabled = false; + private ArrayList<ReceiverGroup> receiverGroups; + private ArrayList<DataPublisherHolder> dataPublisherHolders; /** * Credential information stored inside thrift-client-config.xml file @@ -58,6 +60,8 @@ public class ThriftStatisticsPublisher implements StatisticsPublisher { if (isPublisherEnabled()) { this.enabled = true; + receiverGroups = new ArrayList<ReceiverGroup>(); + dataPublisherHolders = new ArrayList<DataPublisherHolder>(); init(); } } @@ -82,23 +86,17 @@ public class ThriftStatisticsPublisher implements StatisticsPublisher { private ArrayList<ReceiverGroup> getReceiverGroups() { - ArrayList<ReceiverGroup> receiverGroups = new ArrayList<ReceiverGroup>(); - ArrayList<DataPublisherHolder> dataPublisherHolders = new ArrayList<DataPublisherHolder>(); - DataPublisherHolder aNode; - for (ThriftClientInfo thriftClientInfo : thriftClientInfoList) { if (thriftClientInfo.isStatsPublisherEnabled()) { - aNode = new DataPublisherHolder(null, buildUrl(thriftClientInfo), thriftClientInfo.getUsername(), - thriftClientInfo.getPassword()); - dataPublisherHolders.add(aNode); + dataPublisherHolders.add(new DataPublisherHolder(null, buildUrl(thriftClientInfo), thriftClientInfo.getUsername(), + thriftClientInfo.getPassword())); if (log.isDebugEnabled()) { log.debug(String.format("Thrift client [id] %s [ip] %s [port] %s is added to data publisher holder", thriftClientInfo.getId(), thriftClientInfo.getIp(), thriftClientInfo.getPort())); } } } - ReceiverGroup group = new ReceiverGroup(dataPublisherHolders); - receiverGroups.add(group); + receiverGroups.add(new ReceiverGroup(dataPublisherHolders)); return receiverGroups; } @@ -107,6 +105,10 @@ public class ThriftStatisticsPublisher implements StatisticsPublisher { return String.format("tcp://%s:%s", thriftClientInfo.getIp(), thriftClientInfo.getPort()); } + public ArrayList<DataPublisherHolder> getDataPublisherHolders() { + return dataPublisherHolders; + } + @Override public void setEnabled(boolean enabled) { this.enabled = enabled; http://git-wip-us.apache.org/repos/asf/stratos/blob/5435bffd/components/org.apache.stratos.common/src/test/java/org/apache/stratos/common/test/ThriftClientConfigParserTest.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.common/src/test/java/org/apache/stratos/common/test/ThriftClientConfigParserTest.java b/components/org.apache.stratos.common/src/test/java/org/apache/stratos/common/test/ThriftClientConfigParserTest.java index ae7e059..26cba9f 100644 --- a/components/org.apache.stratos.common/src/test/java/org/apache/stratos/common/test/ThriftClientConfigParserTest.java +++ b/components/org.apache.stratos.common/src/test/java/org/apache/stratos/common/test/ThriftClientConfigParserTest.java @@ -20,7 +20,6 @@ package org.apache.stratos.common.test; import junit.framework.TestCase; - import org.apache.stratos.common.statistics.publisher.ThriftClientConfig; import org.apache.stratos.common.statistics.publisher.ThriftClientInfo; import org.junit.Test; @@ -44,48 +43,58 @@ public class ThriftClientConfigParserTest extends TestCase { URL configFileUrl = ThriftClientConfigParserTest.class.getResource("/thrift-client-config.xml"); System.setProperty(ThriftClientConfig.THRIFT_CLIENT_CONFIG_FILE_PATH, configFileUrl.getPath()); ThriftClientConfig thriftClientConfig = ThriftClientConfig.getInstance(); - List <ThriftClientInfo> cepList = thriftClientConfig.getThriftClientInfo( + List<ThriftClientInfo> cepList = thriftClientConfig.getThriftClientInfo( ThriftClientConfig.CEP_THRIFT_CLIENT_NAME); - List <ThriftClientInfo> dasList = thriftClientConfig.getThriftClientInfo( + List<ThriftClientInfo> dasList = thriftClientConfig.getThriftClientInfo( ThriftClientConfig.DAS_THRIFT_CLIENT_NAME); ThriftClientInfo cepNode1 = null; ThriftClientInfo cepNode2 = null; ThriftClientInfo dasNode1 = null; - + ThriftClientInfo dasNode2 = null; + for (ThriftClientInfo cepNodeInfo : cepList) { - if(cepNodeInfo.getId().equals("node-01")) { - cepNode1 = cepNodeInfo; - }else if(cepNodeInfo.getId().equals("node-02")) { - cepNode2 = cepNodeInfo; - } - } - + if (cepNodeInfo.getId().equals("node-01")) { + cepNode1 = cepNodeInfo; + } else if (cepNodeInfo.getId().equals("node-02")) { + cepNode2 = cepNodeInfo; + } + } + for (ThriftClientInfo dasNodeInfo : dasList) { - if(dasNodeInfo.getId().equals("node-01")) { - dasNode1 = dasNodeInfo; - } - } + if (dasNodeInfo.getId().equals("node-01")) { + dasNode1 = dasNodeInfo; + } else if (dasNodeInfo.getId().equals("node-02")) { + dasNode2 = dasNodeInfo; + } + } // CEP-node1 - assertEquals("CEP Stats Publisher not enabled",true,cepNode1.isStatsPublisherEnabled()); - assertEquals("Incorrect Username", "admincep1", cepNode1.getUsername()); - assertEquals("Incorrect Password", "1234cep1", cepNode1.getPassword()); - assertEquals("Incorrect IP", "192.168.10.10", cepNode1.getIp()); - assertEquals("Incorrect Port", "9300", cepNode1.getPort()); - + assertEquals("CEP stats publisher is not enabled", true, cepNode1.isStatsPublisherEnabled()); + assertEquals("Incorrect username", "admincep1", cepNode1.getUsername()); + assertEquals("Incorrect password", "1234cep1", cepNode1.getPassword()); + assertEquals("Incorrect ip", "192.168.10.10", cepNode1.getIp()); + assertEquals("Incorrect port", "9300", cepNode1.getPort()); + // CEP-node2 - assertEquals("CEP Stats Publisher not enabled",true,cepNode2.isStatsPublisherEnabled()); - assertEquals("Incorrect Username", "admincep2", cepNode2.getUsername()); - assertEquals("Incorrect Password", "1234cep2", cepNode2.getPassword()); - assertEquals("Incorrect IP", "192.168.10.20", cepNode2.getIp()); - assertEquals("Incorrect Port", "9300", cepNode2.getPort()); + assertEquals("CEP stats publisher is not enabled", true, cepNode2.isStatsPublisherEnabled()); + assertEquals("Incorrect username", "admincep2", cepNode2.getUsername()); + assertEquals("Incorrect password", "1234cep2", cepNode2.getPassword()); + assertEquals("Incorrect ip", "192.168.10.20", cepNode2.getIp()); + assertEquals("Incorrect port", "9300", cepNode2.getPort()); // DAS node 1 - assertEquals("DAS Stats Publisher not enabled",true, dasNode1.isStatsPublisherEnabled()); - assertEquals("Incorrect Username", "admindas1", dasNode1.getUsername()); - assertEquals("Incorrect Password", "1234das1", dasNode1.getPassword()); - assertEquals("Incorrect IP", "192.168.10.11", dasNode1.getIp()); - assertEquals("Incorrect Port", "9301", dasNode1.getPort()); - + assertEquals("DAS stats publisher is not enabled", true, dasNode1.isStatsPublisherEnabled()); + assertEquals("Incorrect username", "admindas1", dasNode1.getUsername()); + assertEquals("Incorrect password", "1234das1", dasNode1.getPassword()); + assertEquals("Incorrect ip", "192.168.10.11", dasNode1.getIp()); + assertEquals("Incorrect port", "9301", dasNode1.getPort()); + + // DAS node 2 + assertEquals("DAS stats publisher is enabled", false, dasNode2.isStatsPublisherEnabled()); + assertEquals("Incorrect username", "admindas2", dasNode2.getUsername()); + assertEquals("Incorrect password", "1234das2", dasNode2.getPassword()); + assertEquals("Incorrect ip", "192.168.10.21", dasNode2.getIp()); + assertEquals("Incorrect port", "9301", dasNode2.getPort()); + } } http://git-wip-us.apache.org/repos/asf/stratos/blob/5435bffd/components/org.apache.stratos.common/src/test/java/org/apache/stratos/common/test/ThriftStatisticsPublisherTest.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.common/src/test/java/org/apache/stratos/common/test/ThriftStatisticsPublisherTest.java b/components/org.apache.stratos.common/src/test/java/org/apache/stratos/common/test/ThriftStatisticsPublisherTest.java new file mode 100644 index 0000000..43cd4c1 --- /dev/null +++ b/components/org.apache.stratos.common/src/test/java/org/apache/stratos/common/test/ThriftStatisticsPublisherTest.java @@ -0,0 +1,60 @@ +/* +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ + +package org.apache.stratos.common.test; + +import org.apache.stratos.common.statistics.publisher.ThriftClientConfig; +import org.apache.stratos.common.statistics.publisher.ThriftStatisticsPublisher; +import org.junit.Test; +import org.wso2.carbon.databridge.commons.StreamDefinition; + +import java.net.URL; + +import static org.junit.Assert.assertEquals; + +/** + * ThriftStatisticsPublisherTest + */ +public class ThriftStatisticsPublisherTest { + /** + * Checking whether LoadBalancingDataPublisher is created for cep and das according to thrift-client-config.xml + * + * @throws Exception + */ + @Test + public void createLoadBalancingDataPublisher() throws Exception { + URL configFileUrl = ThriftClientConfigParserTest.class.getResource("/thrift-client-config.xml"); + System.setProperty(ThriftClientConfig.THRIFT_CLIENT_CONFIG_FILE_PATH, configFileUrl.getPath()); + + StreamDefinition streamDefinition = new StreamDefinition("Test", "1.0.0"); + + ThriftStatisticsPublisher thriftStatisticsPublisher = new ThriftStatisticsPublisher(streamDefinition, + ThriftClientConfig.CEP_THRIFT_CLIENT_NAME); + assertEquals("CEP stats publisher is not enabled", true, thriftStatisticsPublisher.isEnabled()); + assertEquals("No of CEP nodes enabled for stats publishing is not equal to two", 2, + thriftStatisticsPublisher.getDataPublisherHolders().size()); + + thriftStatisticsPublisher = new ThriftStatisticsPublisher(streamDefinition, + ThriftClientConfig.DAS_THRIFT_CLIENT_NAME); + assertEquals("DAS stats publisher is not enabled", true, thriftStatisticsPublisher.isEnabled()); + assertEquals("More than one DAS node is enabled for stats publishing", 1, + thriftStatisticsPublisher.getDataPublisherHolders().size()); + + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/5435bffd/components/org.apache.stratos.common/src/test/resources/thrift-client-config.xml ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.common/src/test/resources/thrift-client-config.xml b/components/org.apache.stratos.common/src/test/resources/thrift-client-config.xml index f828e0d..0d46ae6 100644 --- a/components/org.apache.stratos.common/src/test/resources/thrift-client-config.xml +++ b/components/org.apache.stratos.common/src/test/resources/thrift-client-config.xml @@ -20,31 +20,38 @@ <!-- Apache thrift client configuration for publishing statistics to WSO2 CEP and WSO2 DAS --> <thriftClientConfiguration> - <config> + <config> <cep> - <node id="node-01"> - <statsPublisherEnabled>true</statsPublisherEnabled> - <username>admincep1</username> - <password>1234cep1</password> - <ip>192.168.10.10</ip> - <port>9300</port> - </node> - <node id="node-02"> - <statsPublisherEnabled>true</statsPublisherEnabled> - <username>admincep2</username> - <password>1234cep2</password> - <ip>192.168.10.20</ip> - <port>9300</port> - </node> + <node id="node-01"> + <statsPublisherEnabled>true</statsPublisherEnabled> + <username>admincep1</username> + <password>1234cep1</password> + <ip>192.168.10.10</ip> + <port>9300</port> + </node> + <node id="node-02"> + <statsPublisherEnabled>true</statsPublisherEnabled> + <username>admincep2</username> + <password>1234cep2</password> + <ip>192.168.10.20</ip> + <port>9300</port> + </node> </cep> <das> - <node id="node-01"> - <statsPublisherEnabled>true</statsPublisherEnabled> - <username>admindas1</username> - <password>1234das1</password> - <ip>192.168.10.11</ip> - <port>9301</port> - </node> + <node id="node-01"> + <statsPublisherEnabled>true</statsPublisherEnabled> + <username>admindas1</username> + <password>1234das1</password> + <ip>192.168.10.11</ip> + <port>9301</port> + </node> + <node id="node-02"> + <statsPublisherEnabled>false</statsPublisherEnabled> + <username>admindas2</username> + <password>1234das2</password> + <ip>192.168.10.21</ip> + <port>9301</port> + </node> </das> - </config> + </config> </thriftClientConfiguration> \ No newline at end of file
