You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ga...@apache.org on 2015/09/01 17:16:54 UTC
[2/4] stratos git commit: Merge conflicts
Merge conflicts
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/2ee9873a
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/2ee9873a
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/2ee9873a
Branch: refs/heads/master
Commit: 2ee9873a97ac67ac4f2d8abec468c91064760633
Parents: e19bfe7
Author: Akila Perera <ra...@gmail.com>
Authored: Tue Sep 1 01:41:28 2015 +0530
Committer: gayangunarathne <ga...@wso2.com>
Committed: Tue Sep 1 19:54:17 2015 +0530
----------------------------------------------------------------------
.../python-cartridge-agent/integration/pom.xml | 24 +-
.../python.cartridge.agent/test/ADCTest.java | 218 +++++++++++++++++++
.../test/DataPublisherTestUtil.java | 46 ++++
.../test/ThriftTestServer.java | 213 ++++++++++++++++++
.../test/resources/common/client-truststore.jks | Bin 0 -> 37935 bytes
.../resources/common/data-bridge-config.xml | 75 +++++++
.../src/test/resources/common/log4j.properties | 41 ++++
.../common/stratos-health-stream-def.json | 1 +
.../resources/common/thrift-agent-config.xml | 64 ++++++
.../src/test/resources/common/wso2carbon.jks | Bin 0 -> 33260 bytes
.../src/test/resources/log4j.properties | 41 ----
.../test-conf/integration-test.properties | 3 +-
12 files changed, 672 insertions(+), 54 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/2ee9873a/products/python-cartridge-agent/integration/pom.xml
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/integration/pom.xml b/products/python-cartridge-agent/integration/pom.xml
index e92bbb4..ae6f5e1 100755
--- a/products/python-cartridge-agent/integration/pom.xml
+++ b/products/python-cartridge-agent/integration/pom.xml
@@ -106,42 +106,42 @@
<artifactId>commons-exec</artifactId>
<version>1.0.1</version>
</dependency>
- <dependency>
+ <!--dependency>
<groupId>org.apache.stratos</groupId>
<artifactId>org.apache.stratos.common</artifactId>
<version>${project.version}</version>
- </dependency>
+ </dependency-->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.1.1</version>
</dependency>
- <dependency>
+ <!--dependency>
<groupId>org.apache.axis2.wso2</groupId>
<artifactId>axis2-client</artifactId>
<version>${axis2.wso2.version}</version>
- </dependency>
- <dependency>
+ </dependency-->
+ <!--dependency>
<groupId>org.apache.httpcomponents.wso2</groupId>
<artifactId>httpcore</artifactId>
<version>4.3.0.wso2v1</version>
- </dependency>
- <dependency>
+ </dependency-->
+ <!--dependency>
<groupId>org.apache.httpcomponents.wso2</groupId>
<artifactId>httpclient</artifactId>
<version>4.2.5.wso2v1</version>
- </dependency>
- <dependency>
+ </dependency-->
+ <!--dependency>
<groupId>org.apache.stratos</groupId>
<artifactId>org.apache.stratos.mock.iaas.client</artifactId>
<version>${project.version}</version>
<scope>test</scope>
- </dependency>
- <dependency>
+ </dependency-->
+ <!--dependency>
<groupId>org.wso2.andes.wso2</groupId>
<artifactId>andes-client</artifactId>
<version>0.13.wso2v8</version>
- </dependency>
+ </dependency-->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
http://git-wip-us.apache.org/repos/asf/stratos/blob/2ee9873a/products/python-cartridge-agent/integration/src/test/java/org/apache/stratos/python.cartridge.agent/test/ADCTest.java
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/integration/src/test/java/org/apache/stratos/python.cartridge.agent/test/ADCTest.java b/products/python-cartridge-agent/integration/src/test/java/org/apache/stratos/python.cartridge.agent/test/ADCTest.java
index 86fc7c3..0b9d406 100755
--- a/products/python-cartridge-agent/integration/src/test/java/org/apache/stratos/python.cartridge.agent/test/ADCTest.java
+++ b/products/python-cartridge-agent/integration/src/test/java/org/apache/stratos/python.cartridge.agent/test/ADCTest.java
@@ -17,5 +17,223 @@ package org.apache.stratos.python.cartridge.agent.test;/*
* under the License.
*/
+
public class ADCTest {
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.domain.LoadBalancingIPType;
+import org.apache.stratos.messaging.domain.topology.*;
+import org.apache.stratos.messaging.event.instance.notifier.ArtifactUpdatedEvent;
+import org.apache.stratos.messaging.event.topology.CompleteTopologyEvent;
+import org.apache.stratos.messaging.event.topology.MemberInitializedEvent;
+import org.testng.annotations.AfterSuite;
+import org.testng.annotations.BeforeSuite;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+import java.util.UUID;
+
+import static junit.framework.Assert.assertTrue;
+
+public class ADCTest extends PythonAgentTestManager {
+ private static final Log log = LogFactory.getLog(ADCTest.class);
+ private static final int ADC_TIMEOUT = 180000;
+ private static final String SUITE_NAME = "suite-2";
+ private static final String APPLICATION_PATH = "/tmp/pca-test-suite-2";
+ private static final String CLUSTER_ID = "tomcat.domain";
+ private static final String DEPLOYMENT_POLICY_NAME = "deployment-policy-2";
+ private static final String AUTOSCALING_POLICY_NAME = "autoscaling-policy-2";
+ private static final String APP_ID = "application-2";
+ private static final String MEMBER_ID = "tomcat.member-1";
+ private static final String CLUSTER_INSTANCE_ID = "cluster-1-instance-1";
+ private static final String NETWORK_PARTITION_ID = "network-partition-1";
+ private static final String PARTITION_ID = "partition-1";
+ private static final String TENANT_ID = "-1234";
+ private static final String SERVICE_NAME = "tomcat";
+
+ private boolean hasADCTestCompleted = false;
+
+ @BeforeSuite
+ public void setupADCTest() {
+ // Set jndi.properties.dir system property for initializing event publishers and receivers
+ System.setProperty("jndi.properties.dir", getResourcesPath(SUITE_NAME));
+
+ // start Python agent with configurations provided in resource path
+ setup(SUITE_NAME);
+
+ // Simulate server socket
+ startServerSocket(8080);
+ }
+
+ /**
+ * TearDown method for test method testPythonCartridgeAgent
+ */
+ @AfterSuite
+ public void tearDownADCTest() {
+ // TODO: app path is duplicated in Java test and payload
+ tearDown(APPLICATION_PATH);
+ }
+
+
+ @Test(timeOut = ADC_TIMEOUT)
+ public void testADC() {
+ startCommunicatorThread();
+ assertAgentActivation();
+ Thread adcTestThread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ log.info("Running ADC Test thread...");
+ // Send artifact updated event
+ publishEvent(getArtifactUpdatedEventForPrivateRepo());
+ log.info("Publishing artifact updated event for repo: " +
+ getArtifactUpdatedEventForPrivateRepo().getRepoURL());
+
+ List<String> outputLines = new ArrayList<String>();
+ while (!outputStream.isClosed() && !hasADCTestCompleted) {
+ List<String> newLines = getNewLines(outputLines, outputStream.toString());
+ if (newLines.size() > 0) {
+ for (String line : newLines) {
+ if (line.contains("Git clone executed")) {
+ log.info("Agent has completed git clone. Asserting the operation...");
+ assertRepoClone(getArtifactUpdatedEventForPrivateRepo());
+ File file = new File(APPLICATION_PATH + "/pca-live-" + UUID.randomUUID());
+ try {
+ file.createNewFile();
+ }
+ catch (IOException e) {
+ log.error("Could not create file", e);
+ }
+ }
+ if (line.contains("Pushed artifacts for tenant")) {
+ log.info("ADC Test completed");
+ hasADCTestCompleted = true;
+ }
+ }
+ }
+ sleep(1000);
+ }
+ }
+ });
+ adcTestThread.start();
+
+ while (!hasADCTestCompleted) {
+ // wait until the instance activated event is received.
+ sleep(1000);
+ }
+ }
+
+ private void assertAgentActivation() {
+ Thread startupTestThread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ while (!eventReceiverInitiated) {
+ sleep(1000);
+ }
+ List<String> outputLines = new ArrayList<String>();
+ while (!outputStream.isClosed()) {
+ List<String> newLines = getNewLines(outputLines, outputStream.toString());
+ if (newLines.size() > 0) {
+ for (String line : newLines) {
+ if (line.contains("Subscribed to 'topology/#'")) {
+ sleep(2000);
+ // Send complete topology event
+ log.info("Publishing complete topology event...");
+ Topology topology = createTestTopology();
+ CompleteTopologyEvent completeTopologyEvent = new CompleteTopologyEvent(topology);
+ publishEvent(completeTopologyEvent);
+ log.info("Complete topology event published");
+
+ // Publish member initialized event
+ log.info("Publishing member initialized event...");
+ MemberInitializedEvent memberInitializedEvent = new MemberInitializedEvent(
+ SERVICE_NAME, CLUSTER_ID, CLUSTER_INSTANCE_ID, MEMBER_ID, NETWORK_PARTITION_ID,
+ PARTITION_ID
+ );
+ publishEvent(memberInitializedEvent);
+ log.info("Member initialized event published");
+ }
+
+ // Send artifact updated event to activate the instance first
+ if (line.contains("Artifact repository found")) {
+ publishEvent(getArtifactUpdatedEventForPrivateRepo());
+ log.info("Artifact updated event published");
+ }
+ log.info(line);
+ }
+ }
+ sleep(1000);
+ }
+ }
+ });
+ startupTestThread.start();
+
+ while (!instanceStarted || !instanceActivated) {
+ // wait until the instance activated event is received.
+ // this will assert whether instance got activated within timeout period; no need for explicit assertions
+ sleep(2000);
+ }
+ }
+
+ private void assertRepoClone(ArtifactUpdatedEvent artifactUpdatedEvent) {
+ File file = new File(APPLICATION_PATH + "/README.text");
+ assertTrue("Git clone failed for repo [url] " + artifactUpdatedEvent.getRepoURL(),
+ file.exists());
+ }
+
+
+ public static ArtifactUpdatedEvent getArtifactUpdatedEventForPublicRepo() {
+ ArtifactUpdatedEvent publicRepoEvent = createTestArtifactUpdatedEvent();
+ publicRepoEvent.setRepoURL("https://bitbucket.org/testapache2211/opentestrepo1.git");
+ return publicRepoEvent;
+ }
+
+ public static ArtifactUpdatedEvent getArtifactUpdatedEventForPrivateRepo() {
+ ArtifactUpdatedEvent privateRepoEvent = createTestArtifactUpdatedEvent();
+ privateRepoEvent.setRepoURL("https://bitbucket.org/testapache2211/testrepo.git");
+ privateRepoEvent.setRepoUserName("testapache2211");
+ privateRepoEvent.setRepoPassword("RExPDGa4GkPJj4kJDzSROQ==");
+ return privateRepoEvent;
+ }
+
+ private static ArtifactUpdatedEvent createTestArtifactUpdatedEvent() {
+ ArtifactUpdatedEvent artifactUpdatedEvent = new ArtifactUpdatedEvent();
+ artifactUpdatedEvent.setClusterId(CLUSTER_ID);
+ artifactUpdatedEvent.setTenantId(TENANT_ID);
+ return artifactUpdatedEvent;
+ }
+
+ /**
+ * Create test topology
+ *
+ * @return
+ */
+ private Topology createTestTopology() {
+ Topology topology = new Topology();
+ Service service = new Service(SERVICE_NAME, ServiceType.SingleTenant);
+ topology.addService(service);
+
+ Cluster cluster = new Cluster(service.getServiceName(), CLUSTER_ID, DEPLOYMENT_POLICY_NAME,
+ AUTOSCALING_POLICY_NAME, APP_ID);
+ service.addCluster(cluster);
+
+ Member member = new Member(service.getServiceName(), cluster.getClusterId(), MEMBER_ID,
+ CLUSTER_INSTANCE_ID, NETWORK_PARTITION_ID, PARTITION_ID, LoadBalancingIPType.Private,
+ System.currentTimeMillis());
+
+ member.setDefaultPrivateIP("10.0.0.1");
+ member.setDefaultPublicIP("20.0.0.1");
+ Properties properties = new Properties();
+ properties.setProperty("prop1", "value1");
+ member.setProperties(properties);
+ member.setStatus(MemberStatus.Created);
+ cluster.addMember(member);
+
+ return topology;
+ }
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/2ee9873a/products/python-cartridge-agent/integration/src/test/java/org/apache/stratos/python.cartridge.agent/test/DataPublisherTestUtil.java
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/integration/src/test/java/org/apache/stratos/python.cartridge.agent/test/DataPublisherTestUtil.java b/products/python-cartridge-agent/integration/src/test/java/org/apache/stratos/python.cartridge.agent/test/DataPublisherTestUtil.java
new file mode 100644
index 0000000..7f1d985
--- /dev/null
+++ b/products/python-cartridge-agent/integration/src/test/java/org/apache/stratos/python.cartridge.agent/test/DataPublisherTestUtil.java
@@ -0,0 +1,46 @@
+package org.apache.stratos.python.cartridge.agent.test;/*
+ * 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.
+ */
+
+import java.io.File;
+
+public class DataPublisherTestUtil {
+ public static final String LOCAL_HOST = "localhost";
+
+ public static void setTrustStoreParams() {
+ String trustStore = PythonAgentTestManager.getResourcesPath("common");
+ System.setProperty("javax.net.ssl.trustStore", trustStore + File.separator + "client-truststore.jks");
+ System.setProperty("javax.net.ssl.trustStorePassword", "wso2carbon");
+ }
+
+ public static void setKeyStoreParams() {
+ String keyStore = PythonAgentTestManager.getResourcesPath("common");
+ System.setProperty("Security.KeyStore.Location", keyStore + File.separator + "wso2carbon.jks");
+ System.setProperty("Security.KeyStore.Password", "wso2carbon");
+ }
+
+ public static String getDataAgentConfigPath() {
+ String filePath = PythonAgentTestManager.getResourcesPath("common");
+ return filePath + File.separator + "data-agent-config.xml";
+ }
+
+ public static String getDataBridgeConfigPath() {
+ String filePath = PythonAgentTestManager.getResourcesPath("common");
+ return filePath + File.separator + "data-bridge-config.xml";
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/2ee9873a/products/python-cartridge-agent/integration/src/test/java/org/apache/stratos/python.cartridge.agent/test/ThriftTestServer.java
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/integration/src/test/java/org/apache/stratos/python.cartridge.agent/test/ThriftTestServer.java b/products/python-cartridge-agent/integration/src/test/java/org/apache/stratos/python.cartridge.agent/test/ThriftTestServer.java
new file mode 100644
index 0000000..aaa9ba0
--- /dev/null
+++ b/products/python-cartridge-agent/integration/src/test/java/org/apache/stratos/python.cartridge.agent/test/ThriftTestServer.java
@@ -0,0 +1,213 @@
+package org.apache.stratos.python.cartridge.agent.test;/*
+ * 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.
+ */
+
+import org.apache.log4j.Logger;
+import org.wso2.carbon.databridge.commons.Credentials;
+import org.wso2.carbon.databridge.commons.Event;
+import org.wso2.carbon.databridge.commons.StreamDefinition;
+import org.wso2.carbon.databridge.commons.exception.MalformedStreamDefinitionException;
+import org.wso2.carbon.databridge.commons.utils.EventDefinitionConverterUtils;
+import org.wso2.carbon.databridge.core.AgentCallback;
+import org.wso2.carbon.databridge.core.DataBridge;
+import org.wso2.carbon.databridge.core.Utils.AgentSession;
+import org.wso2.carbon.databridge.core.definitionstore.InMemoryStreamDefinitionStore;
+import org.wso2.carbon.databridge.core.exception.DataBridgeException;
+import org.wso2.carbon.databridge.core.exception.StreamDefinitionStoreException;
+import org.wso2.carbon.databridge.core.internal.authentication.AuthenticationHandler;
+import org.wso2.carbon.databridge.receiver.thrift.ThriftDataReceiver;
+import org.wso2.carbon.user.api.UserStoreException;
+
+import java.net.SocketException;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+
+public class ThriftTestServer {
+ Logger log = Logger.getLogger(ThriftTestServer.class);
+ ThriftDataReceiver thriftDataReceiver;
+ InMemoryStreamDefinitionStore streamDefinitionStore;
+ AtomicInteger numberOfEventsReceived;
+ RestarterThread restarterThread;
+
+ public void startTestServer() throws DataBridgeException, InterruptedException {
+ ThriftTestServer thriftTestServer = new ThriftTestServer();
+ thriftTestServer.start(7611);
+ Thread.sleep(100000000);
+ thriftTestServer.stop();
+ }
+
+
+ public void addStreamDefinition(StreamDefinition streamDefinition, int tenantId)
+ throws StreamDefinitionStoreException {
+ streamDefinitionStore.saveStreamDefinitionToStore(streamDefinition, tenantId);
+ }
+
+ public void addStreamDefinition(String streamDefinitionStr, int tenantId)
+ throws StreamDefinitionStoreException, MalformedStreamDefinitionException {
+ StreamDefinition streamDefinition = EventDefinitionConverterUtils.convertFromJson(streamDefinitionStr);
+ getStreamDefinitionStore().saveStreamDefinitionToStore(streamDefinition, tenantId);
+ }
+
+ private InMemoryStreamDefinitionStore getStreamDefinitionStore() {
+ if (streamDefinitionStore == null) {
+ streamDefinitionStore = new InMemoryStreamDefinitionStore();
+ }
+ return streamDefinitionStore;
+ }
+
+ public void start(int receiverPort) throws DataBridgeException {
+ DataPublisherTestUtil.setKeyStoreParams();
+ streamDefinitionStore = getStreamDefinitionStore();
+ numberOfEventsReceived = new AtomicInteger(0);
+ DataBridge databridge = new DataBridge(new AuthenticationHandler() {
+ @Override
+ public boolean authenticate(String userName,
+ String password) {
+ log.info("Thrift authentication returning true");
+ return true;// allays authenticate to true
+
+ }
+
+ @Override
+ public String getTenantDomain(String userName) {
+ return "admin";
+ }
+
+ @Override
+ public int getTenantId(String tenantDomain) throws UserStoreException {
+ return -1234;
+ }
+
+ @Override
+ public void initContext(AgentSession agentSession) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ log.info("Initializing Thrift agent context");
+ }
+
+ @Override
+ public void destroyContext(AgentSession agentSession) {
+
+ }
+ }, streamDefinitionStore, DataPublisherTestUtil.getDataBridgeConfigPath());
+
+ thriftDataReceiver = new ThriftDataReceiver(receiverPort, databridge);
+
+ databridge.subscribe(new AgentCallback() {
+ int totalSize = 0;
+
+ public void definedStream(StreamDefinition streamDefinition,
+ int tenantId) {
+ log.info("StreamDefinition " + streamDefinition);
+ }
+
+ @Override
+ public void removeStream(StreamDefinition streamDefinition, int tenantId) {
+ log.info("StreamDefinition remove " + streamDefinition);
+ }
+
+ @Override
+ public void receive(List<Event> eventList, Credentials credentials) {
+ numberOfEventsReceived.addAndGet(eventList.size());
+ log.info("Received events : " + numberOfEventsReceived);
+// log.info("eventListSize=" + eventList.size() + " eventList " + eventList + " for username " + credentials.getUsername());
+ }
+
+ });
+
+ String address = "localhost";
+ log.info("Test Server starting on " + address);
+ thriftDataReceiver.start(address);
+ log.info("Test Server Started");
+ }
+
+ public int getNumberOfEventsReceived() {
+ if (numberOfEventsReceived != null) {
+ return numberOfEventsReceived.get();
+ } else {
+ return 0;
+ }
+ }
+
+ public void resetReceivedEvents() {
+ numberOfEventsReceived.set(0);
+ }
+
+ public void stop() {
+ thriftDataReceiver.stop();
+ log.info("Test Server Stopped");
+ }
+
+ public void stopAndStartDuration(int port, long stopAfterTimeMilliSeconds, long startAfterTimeMS)
+ throws SocketException, DataBridgeException {
+ restarterThread = new RestarterThread(port, stopAfterTimeMilliSeconds, startAfterTimeMS);
+ Thread thread = new Thread(restarterThread);
+ thread.start();
+ }
+
+ public int getEventsReceivedBeforeLastRestart() {
+ return restarterThread.eventReceived;
+ }
+
+
+ class RestarterThread implements Runnable {
+ int eventReceived;
+ int port;
+
+ long stopAfterTimeMilliSeconds;
+ long startAfterTimeMS;
+
+ RestarterThread(int port, long stopAfterTime, long startAfterTime) {
+ this.port = port;
+ stopAfterTimeMilliSeconds = stopAfterTime;
+ startAfterTimeMS = startAfterTime;
+ }
+
+ @Override
+ public void run() {
+ try {
+ Thread.sleep(stopAfterTimeMilliSeconds);
+ }
+ catch (InterruptedException e) {
+ }
+ if (thriftDataReceiver != null) {
+ thriftDataReceiver.stop();
+ }
+
+ eventReceived = getNumberOfEventsReceived();
+
+ log.info("Number of events received in server shutdown :" + eventReceived);
+ try {
+ Thread.sleep(startAfterTimeMS);
+ }
+ catch (InterruptedException e) {
+ }
+
+ try {
+ if (thriftDataReceiver != null) {
+ thriftDataReceiver.start(DataPublisherTestUtil.LOCAL_HOST);
+ } else {
+ start(port);
+ }
+ }
+ catch (DataBridgeException e) {
+ log.error(e);
+ }
+
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/2ee9873a/products/python-cartridge-agent/integration/src/test/resources/common/client-truststore.jks
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/integration/src/test/resources/common/client-truststore.jks b/products/python-cartridge-agent/integration/src/test/resources/common/client-truststore.jks
new file mode 100644
index 0000000..2d22c24
Binary files /dev/null and b/products/python-cartridge-agent/integration/src/test/resources/common/client-truststore.jks differ
http://git-wip-us.apache.org/repos/asf/stratos/blob/2ee9873a/products/python-cartridge-agent/integration/src/test/resources/common/data-bridge-config.xml
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/integration/src/test/resources/common/data-bridge-config.xml b/products/python-cartridge-agent/integration/src/test/resources/common/data-bridge-config.xml
new file mode 100644
index 0000000..13ca54c
--- /dev/null
+++ b/products/python-cartridge-agent/integration/src/test/resources/common/data-bridge-config.xml
@@ -0,0 +1,75 @@
+<!--
+ ~ 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.
+ -->
+
+<dataBridgeConfiguration>
+
+ <workerThreads>10</workerThreads>
+ <eventBufferCapacity>10000</eventBufferCapacity>
+ <clientTimeoutMin>30</clientTimeoutMin>
+
+ <dataReceiver name="Thrift">
+ <config name="tcpPort">7611</config>
+ <config name="sslPort">7711</config>
+ </dataReceiver>
+
+ <dataReceiver name="Binary">
+ <config name="tcpPort">9611</config>
+ <config name="sslPort">9711</config>
+ <config name="sslReceiverThreadPoolSize">100</config>
+ <config name="tcpReceiverThreadPoolSize">100</config>
+ </dataReceiver>
+
+ <!--<streamDefinitions>
+ <streamDefinition>
+ {
+ 'name':'org.wso2.esb.MediatorStatistics',
+ 'version':'1.3.0',
+ 'nickName': 'Stock Quote Information',
+ 'description': 'Some Desc',
+ 'metaData':[
+ {'name':'ipAdd','type':'STRING'}
+ ],
+ 'payloadData':[
+ {'name':'symbol','type':'STRING'},
+ {'name':'price','type':'DOUBLE'},
+ {'name':'volume','type':'INT'},
+ {'name':'max','type':'DOUBLE'},
+ {'name':'min','type':'Double'}
+ ]
+ }
+ </streamDefinition>
+ <streamDefinition domainName="wso2">
+ {
+ 'name':'org.wso2.esb.MediatorStatistics',
+ 'version':'1.3.4',
+ 'nickName': 'Stock Quote Information',
+ 'description': 'Some Other Desc',
+ 'metaData':[
+ {'name':'ipAdd','type':'STRING'}
+ ],
+ 'payloadData':[
+ {'name':'symbol','type':'STRING'},
+ {'name':'price','type':'DOUBLE'},
+ {'name':'volume','type':'INT'}
+ ]
+ }
+ </streamDefinition>
+ </streamDefinitions>-->
+
+</dataBridgeConfiguration>
http://git-wip-us.apache.org/repos/asf/stratos/blob/2ee9873a/products/python-cartridge-agent/integration/src/test/resources/common/log4j.properties
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/integration/src/test/resources/common/log4j.properties b/products/python-cartridge-agent/integration/src/test/resources/common/log4j.properties
new file mode 100755
index 0000000..c0c6e78
--- /dev/null
+++ b/products/python-cartridge-agent/integration/src/test/resources/common/log4j.properties
@@ -0,0 +1,41 @@
+#
+# 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.
+#
+
+# Set root logger level and appenders
+log4j.rootLogger=INFO, CONSOLE_APPENDER, FILE_APPENDER
+
+# CONSOLE_APPENDER is set to be a ConsoleAppender.
+log4j.appender.CONSOLE_APPENDER=org.apache.log4j.ConsoleAppender
+
+# The standard error log where all the warnings, errors and fatal errors will be logged
+log4j.appender.FILE_APPENDER=org.apache.log4j.FileAppender
+log4j.appender.FILE_APPENDER.File=cartridge-agent.log
+log4j.appender.FILE_APPENDER.layout=org.apache.log4j.PatternLayout
+log4j.appender.FILE_APPENDER.layout.ConversionPattern=%d{ISO8601} [%X{ip}-%X{host}] [%t] %5p %c{1} %m%n
+log4j.appender.FILE_APPENDER.threshold=DEBUG
+
+# CONSOLE_APPENDER uses PatternLayout.
+log4j.appender.CONSOLE_APPENDER.layout=org.apache.log4j.PatternLayout
+log4j.appender.CONSOLE_APPENDER.layout.ConversionPattern=[%d{ISO8601}] %5p - [%c{1}] %m%n
+
+log4j.logger.org.apache.stratos.cartridge.agent=INFO
+log4j.logger.org.apache.stratos.messaging=INFO
+log4j.logger.org.apache.stratos.common.util=DEBUG
+log4j.logger.org.wso2.andes.client=ERROR
+log4j.logger.org.apache.activemq.jndi.ActiveMQInitialContextFactory=ERROR
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/2ee9873a/products/python-cartridge-agent/integration/src/test/resources/common/stratos-health-stream-def.json
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/integration/src/test/resources/common/stratos-health-stream-def.json b/products/python-cartridge-agent/integration/src/test/resources/common/stratos-health-stream-def.json
new file mode 100644
index 0000000..4d36c19
--- /dev/null
+++ b/products/python-cartridge-agent/integration/src/test/resources/common/stratos-health-stream-def.json
@@ -0,0 +1 @@
+{"name":"cartridge_agent_health_stats","version":"1.0.0","nickName":"agent health stats","description":"agent health stats","payloadData":[{"name":"cluster_id", "type": "STRING"},{"name":"cluster_instance_id", "type": "STRING"},{"name":"network_partition_id", "type": "STRING"},{"name":"member_id", "type": "STRING"},{"name":"partition_id", "type": "STRING"},{"name":"health_description", "type": "STRING"},{"name":"value", "type": "DOUBLE"}]}
http://git-wip-us.apache.org/repos/asf/stratos/blob/2ee9873a/products/python-cartridge-agent/integration/src/test/resources/common/thrift-agent-config.xml
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/integration/src/test/resources/common/thrift-agent-config.xml b/products/python-cartridge-agent/integration/src/test/resources/common/thrift-agent-config.xml
new file mode 100644
index 0000000..dbb2ba3
--- /dev/null
+++ b/products/python-cartridge-agent/integration/src/test/resources/common/thrift-agent-config.xml
@@ -0,0 +1,64 @@
+<!--
+ ~ 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.
+ -->
+
+<DataAgentsConfiguration>
+ <Agent>
+ <Name>Thrift</Name>
+ <DataEndpointClass>org.wso2.carbon.databridge.agent.endpoint.thrift.ThriftDataEndpoint</DataEndpointClass>
+ <!--<TrustSore>src/main/resources/client-truststore.jks</TrustSore>-->
+ <!--<TrustSorePassword>wso2carbon</TrustSorePassword>-->
+ <QueueSize>32768</QueueSize>
+ <BatchSize>200</BatchSize>
+ <CorePoolSize>5</CorePoolSize>
+ <MaxPoolSize>10</MaxPoolSize>
+ <SocketTimeoutMS>30000</SocketTimeoutMS>
+ <KeepAliveTimeInPool>20</KeepAliveTimeInPool>
+ <ReconnectionInterval>30</ReconnectionInterval>
+ <MaxTransportPoolSize>250</MaxTransportPoolSize>
+ <MaxIdleConnections>250</MaxIdleConnections>
+ <EvictionTimePeriod>5500</EvictionTimePeriod>
+ <MinIdleTimeInPool>5000</MinIdleTimeInPool>
+ <SecureMaxTransportPoolSize>250</SecureMaxTransportPoolSize>
+ <SecureMaxIdleConnections>250</SecureMaxIdleConnections>
+ <SecureEvictionTimePeriod>5500</SecureEvictionTimePeriod>
+ <SecureMinIdleTimeInPool>5000</SecureMinIdleTimeInPool>
+ </Agent>
+
+ <Agent>
+ <Name>Binary</Name>
+ <DataEndpointClass>org.wso2.carbon.databridge.agent.endpoint.binary.BinaryDataEndpoint</DataEndpointClass>
+ <!--<TrustSore>src/main/resources/client-truststore.jks</TrustSore>-->
+ <!--<TrustSorePassword>wso2carbon</TrustSorePassword>-->
+ <QueueSize>32768</QueueSize>
+ <BatchSize>200</BatchSize>
+ <CorePoolSize>5</CorePoolSize>
+ <MaxPoolSize>10</MaxPoolSize>
+ <SocketTimeoutMS>30000</SocketTimeoutMS>
+ <KeepAliveTimeInPool>20</KeepAliveTimeInPool>
+ <ReconnectionInterval>30</ReconnectionInterval>
+ <MaxTransportPoolSize>250</MaxTransportPoolSize>
+ <MaxIdleConnections>250</MaxIdleConnections>
+ <EvictionTimePeriod>5500</EvictionTimePeriod>
+ <MinIdleTimeInPool>5000</MinIdleTimeInPool>
+ <SecureMaxTransportPoolSize>250</SecureMaxTransportPoolSize>
+ <SecureMaxIdleConnections>250</SecureMaxIdleConnections>
+ <SecureEvictionTimePeriod>5500</SecureEvictionTimePeriod>
+ <SecureMinIdleTimeInPool>5000</SecureMinIdleTimeInPool>
+ </Agent>
+</DataAgentsConfiguration>
http://git-wip-us.apache.org/repos/asf/stratos/blob/2ee9873a/products/python-cartridge-agent/integration/src/test/resources/common/wso2carbon.jks
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/integration/src/test/resources/common/wso2carbon.jks b/products/python-cartridge-agent/integration/src/test/resources/common/wso2carbon.jks
new file mode 100644
index 0000000..7942c53
Binary files /dev/null and b/products/python-cartridge-agent/integration/src/test/resources/common/wso2carbon.jks differ
http://git-wip-us.apache.org/repos/asf/stratos/blob/2ee9873a/products/python-cartridge-agent/integration/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/integration/src/test/resources/log4j.properties b/products/python-cartridge-agent/integration/src/test/resources/log4j.properties
deleted file mode 100755
index c0c6e78..0000000
--- a/products/python-cartridge-agent/integration/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# 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.
-#
-
-# Set root logger level and appenders
-log4j.rootLogger=INFO, CONSOLE_APPENDER, FILE_APPENDER
-
-# CONSOLE_APPENDER is set to be a ConsoleAppender.
-log4j.appender.CONSOLE_APPENDER=org.apache.log4j.ConsoleAppender
-
-# The standard error log where all the warnings, errors and fatal errors will be logged
-log4j.appender.FILE_APPENDER=org.apache.log4j.FileAppender
-log4j.appender.FILE_APPENDER.File=cartridge-agent.log
-log4j.appender.FILE_APPENDER.layout=org.apache.log4j.PatternLayout
-log4j.appender.FILE_APPENDER.layout.ConversionPattern=%d{ISO8601} [%X{ip}-%X{host}] [%t] %5p %c{1} %m%n
-log4j.appender.FILE_APPENDER.threshold=DEBUG
-
-# CONSOLE_APPENDER uses PatternLayout.
-log4j.appender.CONSOLE_APPENDER.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE_APPENDER.layout.ConversionPattern=[%d{ISO8601}] %5p - [%c{1}] %m%n
-
-log4j.logger.org.apache.stratos.cartridge.agent=INFO
-log4j.logger.org.apache.stratos.messaging=INFO
-log4j.logger.org.apache.stratos.common.util=DEBUG
-log4j.logger.org.wso2.andes.client=ERROR
-log4j.logger.org.apache.activemq.jndi.ActiveMQInitialContextFactory=ERROR
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/2ee9873a/products/python-cartridge-agent/integration/src/test/resources/test-conf/integration-test.properties
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/integration/src/test/resources/test-conf/integration-test.properties b/products/python-cartridge-agent/integration/src/test/resources/test-conf/integration-test.properties
index 1242841..332441a 100755
--- a/products/python-cartridge-agent/integration/src/test/resources/test-conf/integration-test.properties
+++ b/products/python-cartridge-agent/integration/src/test/resources/test-conf/integration-test.properties
@@ -20,7 +20,8 @@ distribution.version=${project.version}
distribution.name=${python.cartridge.agent.distribution.name}-${project.version}
activemq.amqp.bind.address=tcp://localhost:61617
activemq.mqtt.bind.address=mqtt://localhost:1885
-cep.port=7712
+cep.port=7612
+cep.ssl.port=7712
stratos.endpoint=http://localhost:9763
stratos.admin.username=admin
stratos.admin.password=admin
\ No newline at end of file