Merge pull request #241 from menakaj/master

Fixed https://wso2.org/jira/browse/IOTS-359
application-manager-new
Rasika Perera 8 years ago committed by GitHub
commit cb4b5d9732

@ -89,6 +89,6 @@
"protocol": ""
},
"queryParameters" : {
"passBetweenPages" : ["shared"]
"passBetweenPages" : ["shared", "owner", "deviceId"]
}
}

@ -23,7 +23,7 @@
<parent>
<groupId>org.wso2.iot</groupId>
<artifactId>wso2iot-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>3.0.1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@ -35,8 +35,8 @@
<modules>
<module>tests-artifacts</module>
<module>tests-common</module>
<module>tests-integration</module>
<module>tests-ui-integration</module>
<!--<module>tests-integration</module>-->
<!--<module>tests-ui-integration</module>-->
<module>tests-iot-web-ui</module>
</modules>

@ -22,7 +22,7 @@
<parent>
<groupId>org.wso2.iot</groupId>
<artifactId>wso2iot-integration</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>3.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

@ -22,7 +22,7 @@
<parent>
<groupId>org.wso2.iot</groupId>
<artifactId>tests-common</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>3.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

@ -22,7 +22,7 @@
<parent>
<groupId>org.wso2.iot</groupId>
<artifactId>tests-common</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>3.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

@ -21,7 +21,7 @@
<parent>
<groupId>org.wso2.iot</groupId>
<artifactId>wso2iot-integration</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>3.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

@ -24,7 +24,7 @@
<parent>
<groupId>org.wso2.iot</groupId>
<artifactId>tests-common</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>3.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

@ -24,7 +24,7 @@
<parent>
<groupId>org.wso2.iot</groupId>
<artifactId>tests-common</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>3.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

@ -23,7 +23,7 @@
<parent>
<groupId>org.wso2.iot</groupId>
<artifactId>wso2iot-integration</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>3.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

@ -23,7 +23,7 @@
<parent>
<groupId>org.wso2.iot</groupId>
<artifactId>wso2iot-integration</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>3.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

@ -22,7 +22,7 @@
<parent>
<groupId>org.wso2.iot</groupId>
<artifactId>wso2iot-integration</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>3.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
@ -62,7 +62,7 @@
<property>
<name>carbon.zip</name>
<value>
${basedir}/../../distribution/target/wso2iots-${project.version}.zip
${basedir}/../../distribution/target/wso2iot-${project.version}.zip
</value>
</property>
<property>
@ -131,7 +131,7 @@
<artifactItems>
<artifactItem>
<groupId>org.wso2.iot</groupId>
<artifactId>wso2iots</artifactId>
<artifactId>wso2iot</artifactId>
<version>${project.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
@ -171,7 +171,7 @@
<resources>
<resource>
<directory>
${basedir}/target/tobeCopied/wso2iots-${project.version}/repository/resources/security/
${basedir}/target/tobeCopied/wso2iot-${project.version}/repository/resources/security/
</directory>
<includes>
<include>**/*.jks</include>
@ -192,7 +192,7 @@
<resources>
<resource>
<directory>
${basedir}/target/tobeCopied/wso2iots-${project.version}/repository/resources/security/
${basedir}/target/tobeCopied/wso2iot-${project.version}/repository/resources/security/
</directory>
<includes>
<include>**/*.jks</include>
@ -213,7 +213,7 @@
<resources>
<resource>
<directory>
${basedir}/target/tobeCopied/wso2iots-${project.version}/repository/conf/axis2/
${basedir}/target/tobeCopied/wso2iot-${project.version}/repository/conf/axis2/
</directory>
<includes>
<include>**/*.xml</include>

@ -0,0 +1,89 @@
/*
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. 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.wso2.carbon.iot.integration.web.ui.test.extension;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment;
import org.wso2.carbon.automation.engine.context.AutomationContext;
import org.wso2.carbon.automation.engine.context.ContextXpathConstants;
import org.wso2.carbon.automation.engine.context.TestUserMode;
import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
import org.wso2.carbon.automation.engine.extensions.ExecutionListenerExtension;
import org.wso2.carbon.automation.extensions.ExtensionConstants;
import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension;
import javax.xml.xpath.XPathExpressionException;
/**
* Test Automation server extension to start the DAS.
* This will set the carbon_home to {carbonHome}/core and port offset : 2
*/
public class AnalyticsServerExtension extends ExecutionListenerExtension {
private CustomTestServerManager serverManager;
private static final Log log = LogFactory.getLog(CarbonServerExtension.class);
private String executionEnvironment;
private AutomationContext automationContext;
@Override
public void initiate() throws AutomationFrameworkException {
try {
automationContext = new AutomationContext("IOT", TestUserMode.SUPER_TENANT_USER);
if(getParameters().get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) == null) {
getParameters().put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, "2");
}
serverManager = new CustomTestServerManager(getAutomationContext(), null, getParameters());
executionEnvironment =
automationContext.getConfigurationValue(ContextXpathConstants.EXECUTION_ENVIRONMENT);
} catch (XPathExpressionException e) {
handleException("Error while initiating test environment", e);
}
}
@Override
public void onExecutionStart() throws AutomationFrameworkException {
try {
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
String carbonHome = serverManager.startServer("analytics");
log.info(carbonHome);
System.setProperty(ExtensionConstants.CARBON_HOME, carbonHome);
}
} catch (Exception e) {
handleException("Fail to start carbon server ", e);
}
}
@Override
public void onExecutionFinish() throws AutomationFrameworkException {
try {
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
serverManager.stopServer();
}
} catch (Exception e) {
handleException("Fail to stop carbon server ", e);
}
}
private static void handleException(String msg, Exception e) {
log.error(msg, e);
throw new RuntimeException(msg, e);
}
}

@ -0,0 +1,89 @@
/*
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. 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.wso2.carbon.iot.integration.web.ui.test.extension;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment;
import org.wso2.carbon.automation.engine.context.AutomationContext;
import org.wso2.carbon.automation.engine.context.ContextXpathConstants;
import org.wso2.carbon.automation.engine.context.TestUserMode;
import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
import org.wso2.carbon.automation.engine.extensions.ExecutionListenerExtension;
import org.wso2.carbon.automation.extensions.ExtensionConstants;
import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension;
import javax.xml.xpath.XPathExpressionException;
/**
* Test Automation server extension to start the Broker.
* This will set the carbon_home to {carbonHome}/core and port offset : 3
*/
public class BrokerServerExtension extends ExecutionListenerExtension {
private CustomTestServerManager serverManager;
private static final Log log = LogFactory.getLog(CarbonServerExtension.class);
private String executionEnvironment;
private AutomationContext automationContext;
@Override
public void initiate() throws AutomationFrameworkException {
try {
automationContext = new AutomationContext("IOT", TestUserMode.SUPER_TENANT_USER);
if(getParameters().get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) == null) {
getParameters().put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, "3");
}
serverManager = new CustomTestServerManager(getAutomationContext(), null, getParameters());
executionEnvironment =
automationContext.getConfigurationValue(ContextXpathConstants.EXECUTION_ENVIRONMENT);
} catch (XPathExpressionException e) {
handleException("Error while initiating test environment", e);
}
}
@Override
public void onExecutionStart() throws AutomationFrameworkException {
try {
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
String carbonHome = serverManager.startServer("broker");
log.info(carbonHome);
System.setProperty(ExtensionConstants.CARBON_HOME, carbonHome);
}
} catch (Exception e) {
handleException("Fail to start carbon server ", e);
}
}
@Override
public void onExecutionFinish() throws AutomationFrameworkException {
try {
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
serverManager.stopServer();
}
} catch (Exception e) {
handleException("Fail to stop carbon server ", e);
}
}
private static void handleException(String msg, Exception e) {
log.error(msg, e);
throw new RuntimeException(msg, e);
}
}

@ -0,0 +1,147 @@
/*
* Copyright (c) 2005-2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. 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.wso2.carbon.iot.integration.web.ui.test.extension;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.automation.engine.FrameworkConstants;
import org.wso2.carbon.automation.engine.context.AutomationContext;
import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
import org.wso2.carbon.automation.extensions.ExtensionConstants;
import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerManager;
import javax.xml.xpath.XPathExpressionException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class CustomTestServerManager {
protected CarbonServerManager carbonServer;
protected String carbonZip;
protected int portOffset;
protected Map<String, String> commandMap = new HashMap<String, String>();
private static final Log log = LogFactory.getLog(CustomTestServerManager.class);
protected String carbonHome;
public CustomTestServerManager(AutomationContext context) {
carbonServer = new CarbonServerManager(context);
}
public CustomTestServerManager(AutomationContext context, String carbonZip) {
carbonServer = new CarbonServerManager(context);
this.carbonZip = carbonZip;
}
public CustomTestServerManager(AutomationContext context, int portOffset) {
carbonServer = new CarbonServerManager(context);
this.portOffset = portOffset;
commandMap.put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, String.valueOf(portOffset));
}
public CustomTestServerManager(AutomationContext context, String carbonZip,
Map<String, String> commandMap) {
carbonServer = new CarbonServerManager(context);
this.carbonZip = carbonZip;
if (commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) != null) {
this.portOffset = Integer.parseInt(commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND));
} else {
throw new IllegalArgumentException("portOffset value must be set in command list");
}
this.commandMap = commandMap;
}
public String getCarbonZip() {
return carbonZip;
}
public String getCarbonHome() {
return carbonHome;
}
public int getPortOffset() {
return portOffset;
}
public void configureServer() throws AutomationFrameworkException {
}
public Map<String, String> getCommands() {
return commandMap;
}
/**
* This method is called for starting a Carbon server in preparation for execution of a
* TestSuite
* <p/>
* Add the @BeforeSuite TestNG annotation in the method overriding this method
* @param server : The server which needs to be start.
* @return The CARBON_HOME
* @throws java.io.IOException If an error occurs while copying the deployment artifacts into the
* Carbon server
*/
public String startServer(String server)
throws AutomationFrameworkException, IOException, XPathExpressionException {
if(carbonHome == null) {
if (carbonZip == null) {
carbonZip = System.getProperty(FrameworkConstants.SYSTEM_PROPERTY_CARBON_ZIP_LOCATION);
}
if (carbonZip == null) {
throw new IllegalArgumentException("carbon zip file cannot find in the given location");
}
carbonHome = carbonServer.setUpCarbonHome(carbonZip) + "/" + server;
configureServer();
}
log.info("Carbon Home - " + carbonHome );
if (commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) != null) {
this.portOffset = Integer.parseInt(commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND));
} else {
this.portOffset = 0;
}
carbonServer.startServerUsingCarbonHome(carbonHome, commandMap);
return carbonHome;
}
/**
* Restarting server already started by the method startServer
* @throws AutomationFrameworkException
*/
public void restartGracefully() throws AutomationFrameworkException {
if(carbonHome == null) {
throw new AutomationFrameworkException("No Running Server found to restart. " +
"Please make sure whether server is started");
}
carbonServer.restartGracefully();
}
/**
* This method is called for stopping a Carbon server
* <p/>
* Add the @AfterSuite annotation in the method overriding this method
*
* @throws AutomationFrameworkException If an error occurs while shutting down the server
*/
public void stopServer() throws AutomationFrameworkException {
carbonServer.serverShutdown(portOffset);
}
}

@ -0,0 +1,89 @@
/*
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. 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.wso2.carbon.iot.integration.web.ui.test.extension;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment;
import org.wso2.carbon.automation.engine.context.AutomationContext;
import org.wso2.carbon.automation.engine.context.ContextXpathConstants;
import org.wso2.carbon.automation.engine.context.TestUserMode;
import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
import org.wso2.carbon.automation.engine.extensions.ExecutionListenerExtension;
import org.wso2.carbon.automation.extensions.ExtensionConstants;
import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension;
import javax.xml.xpath.XPathExpressionException;
/**
* Test Automation server extension to start the IOT core.
* This will set the carbon_home to {carbonHome}/core and port offset : 0
*/
public class IOTServerExtension extends ExecutionListenerExtension {
private CustomTestServerManager serverManager;
private static final Log log = LogFactory.getLog(CarbonServerExtension.class);
private String executionEnvironment;
private AutomationContext automationContext;
@Override
public void initiate() throws AutomationFrameworkException {
try {
automationContext = new AutomationContext("IOT", TestUserMode.SUPER_TENANT_USER);
if(getParameters().get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) == null) {
getParameters().put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, "0");
}
serverManager = new CustomTestServerManager(getAutomationContext(), null, getParameters());
executionEnvironment =
automationContext.getConfigurationValue(ContextXpathConstants.EXECUTION_ENVIRONMENT);
} catch (XPathExpressionException e) {
handleException("Error while initiating test environment", e);
}
}
@Override
public void onExecutionStart() throws AutomationFrameworkException {
try {
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
String carbonHome = serverManager.startServer("core");
log.info(carbonHome);
System.setProperty(ExtensionConstants.CARBON_HOME, carbonHome);
}
} catch (Exception e) {
handleException("Fail to start carbon server ", e);
}
}
@Override
public void onExecutionFinish() throws AutomationFrameworkException {
try {
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
serverManager.stopServer();
}
} catch (Exception e) {
handleException("Fail to stop carbon server ", e);
}
}
private static void handleException(String msg, Exception e) {
log.error(msg, e);
throw new RuntimeException(msg, e);
}
}

@ -24,7 +24,7 @@
<!--
Change this to edit wait time for test artifact deployment
-->
<deploymentDelay>60000</deploymentDelay>
<deploymentDelay>300000</deploymentDelay>
<!--
Change this to standalone|platform|all to execute test on specific environment
-->
@ -172,7 +172,9 @@
</hosts>
<ports>
<port type="http">9763</port>
<port type="https">9446</port>
<port type="https">9443</port>
<port type="https">9445</port>
</ports>
<properties>
@ -187,7 +189,9 @@
<platformExecutionManager>
<extentionClasses>
<class>
<name>org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension</name>
<name>org.wso2.carbon.iot.integration.web.ui.test.extension.BrokerServerExtension</name>
<name>org.wso2.carbon.iot.integration.web.ui.test.extension.IOTServerExtension</name>
<name>org.wso2.carbon.iot.integration.web.ui.test.extension.AnalyticsServerExtension</name>
<name>org.wso2.carbon.integration.common.extensions.usermgt.UserPopulateExtension</name>
</class>
</extentionClasses>

@ -21,7 +21,7 @@
<parent>
<groupId>org.wso2.iot</groupId>
<artifactId>wso2iot-integration</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>3.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

@ -22,7 +22,7 @@
<parent>
<groupId>org.wso2.iot</groupId>
<artifactId>wso2iot-integration</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>3.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

Loading…
Cancel
Save