You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2013/07/31 13:17:00 UTC

[19/51] [partial] applying patch related to JIRA STRATOS-12

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/features/service/org.apache.stratos.ui.feature/pom.xml
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/features/service/org.apache.stratos.ui.feature/pom.xml b/products/stratos-controller/modules/features/service/org.apache.stratos.ui.feature/pom.xml
new file mode 100755
index 0000000..bdec5c9
--- /dev/null
+++ b/products/stratos-controller/modules/features/service/org.apache.stratos.ui.feature/pom.xml
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+   <parent>
+        <groupId>org.apache.stratos</groupId>
+        <artifactId>stratos-features</artifactId>
+        <version>3.0.0-SNAPSHOT</version>
+    </parent>
+
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.apache.stratos.ui.feature</artifactId>
+    <packaging>pom</packaging>
+    <name>Apache Stratos - Cloud Manager UI Feature</name>
+    <url>http://apache.org</url>
+    <description>This feature contains the bundles required for Front-end Cloud Manager functionality</description>
+
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.stratos</groupId>
+                <artifactId>org.apache.stratos.account.mgt.ui</artifactId>
+	    <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.wso2.carbon</groupId>
+                <artifactId>org.wso2.carbon.ui.menu.tools</artifactId>
+		<version>${wso2carbon.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.stratos</groupId>
+                <artifactId>org.apache.stratos.common</artifactId>
+		<version>${project.version}</version>
+            </dependency>
+            <!--<dependency>
+                <groupId>org.wso2.carbon</groupId>
+                <artifactId>org.apache.stratos.tenant.mgt.ui</artifactId>
+		<version>${stratos.version}</version>
+            </dependency>-->
+            <dependency>
+                <groupId>org.apache.stratos</groupId>
+                <artifactId>org.apache.stratos.theme.mgt.ui</artifactId>
+		<version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.stratos</groupId>
+                <artifactId>org.apache.stratos.theme.mgt.stub</artifactId>
+		<version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.batik.wso2</groupId>
+                <artifactId>batik</artifactId>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.stratos</groupId>
+                <artifactId>org.apache.stratos.validate.domain.ui</artifactId>
+		<version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.stratos</groupId>
+                <artifactId>org.apache.stratos.register.ui</artifactId>
+		<version>${project.version}</version>
+            </dependency>
+            <!--<dependency>
+                <groupId>org.wso2.carbon</groupId>
+                <artifactId>org.wso2.carbon.tenant.activity.ui</artifactId>
+              <version>${stratos.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.wso2.carbon</groupId>
+                <artifactId>org.wso2.carbon.tenant.activity.stub</artifactId>
+              <version>4.0.0</version>
+            </dependency>-->
+	    <dependency>
+                <groupId>org.wso2.carbon</groupId>
+                <artifactId>org.wso2.carbon.email.verification.ui</artifactId>
+		<version>${carbon.version}</version>
+            </dependency>
+	        <dependency>
+                <groupId>org.wso2.carbon</groupId>
+                <artifactId>org.wso2.carbon.email.verification.stub</artifactId>
+		<version>${carbon.version}</version>
+            </dependency>
+	    <dependency>
+                <groupId>org.apache.stratos</groupId>
+                <artifactId>org.apache.stratos.tenant.register.stub</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+	    <dependency>
+                <groupId>org.wso2.carbon</groupId>
+                <artifactId>org.wso2.carbon.security.mgt</artifactId>
+	        <version>${carbon.version}</version>
+            </dependency>
+	    <dependency>
+                <groupId>org.apache.stratos</groupId>
+                <artifactId>org.apache.stratos.manager.dashboard.ui</artifactId>
+                <version>${project.version}</version>
+		</dependency>
+	    <dependency>
+                <groupId>org.apache.stratos</groupId>
+                <artifactId>org.apache.stratos.manager.dashboard.stub</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.stratos</groupId>
+                <artifactId>org.apache.stratos.manager.login.ui</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.stratos</groupId>
+                <artifactId>org.apache.stratos.manager.styles</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+	    <!--stubs-->
+	    <dependency>
+		 <groupId>org.apache.stratos</groupId>
+                 <artifactId>org.apache.stratos.account.mgt.stub</artifactId>
+                 <version>${project.version}</version>
+            </dependency>
+	    <dependency>
+                 <groupId>org.apache.stratos</groupId>
+                 <artifactId>org.apache.stratos.validate.domain.stub</artifactId>
+		<version>${project.version}</version>
+            </dependency>
+        </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.wso2.maven</groupId>
+                <artifactId>carbon-p2-plugin</artifactId>
+                <version>${carbon.p2.plugin.version}</version>
+                <executions>
+                    <execution>
+                        <id>p2-feature-generation</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>p2-feature-gen</goal>
+                        </goals>
+                        <configuration>
+                            <id>org.apache.stratos.ui</id>
+                            <propertiesFile>../etc/feature.properties</propertiesFile>
+                            <adviceFile>
+                                <properties>
+                                    <propertyDef>org.wso2.carbon.p2.category.type:console</propertyDef>
+                                    <propertyDef>org.eclipse.equinox.p2.type.group:false</propertyDef>
+                                </properties>
+                            </adviceFile>
+                            <bundles>
+                                <bundleDef>org.apache.stratos:org.apache.stratos.account.mgt.ui:${project.version}</bundleDef>
+                                <!--<bundleDef>org.wso2.carbon:org.apache.stratos.tenant.mgt.ui</bundleDef>-->
+                                <bundleDef>org.apache.stratos:org.apache.stratos.theme.mgt.ui:${project.version}</bundleDef>
+                                <bundleDef>org.apache.stratos:org.apache.stratos.theme.mgt.stub:${project.version}</bundleDef>
+                                <bundleDef>org.apache.batik.wso2:batik</bundleDef>
+                                <bundleDef>org.apache.stratos:org.apache.stratos.validate.domain.ui:${project.version}</bundleDef>
+                                <bundleDef>org.apache.stratos:org.apache.stratos.register.ui:${project.version}</bundleDef>
+				<!--bundleDef>org.wso2.carbon:org.wso2.carbon.payment.ui:${stratos.component.version}</bundleDef-->
+                                <bundleDef>org.wso2.carbon:org.wso2.carbon.email.verification.ui</bundleDef>
+                                <bundleDef>org.wso2.carbon:org.wso2.carbon.email.verification.stub</bundleDef>
+                                <bundleDef>org.apache.stratos:org.apache.stratos.manager.dashboard.ui:${project.version}</bundleDef>
+				<bundleDef>org.apache.stratos:org.apache.stratos.manager.dashboard.stub:${project.version}</bundleDef>
+                                <bundleDef>org.apache.stratos:org.apache.stratos.manager.login.ui:${project.version}</bundleDef>
+                                <bundleDef>org.apache.stratos:org.apache.stratos.manager.styles:${project.version}</bundleDef>
+				<!--<bundleDef>org.wso2.carbon:org.wso2.carbon.tenant.activity.ui</bundleDef>
+				<bundleDef>org.wso2.carbon:org.wso2.carbon.tenant.activity.stub:${wso2carbon.version}</bundleDef>-->
+
+				<!--stub bundles -->
+
+				<bundleDef>org.apache.stratos:org.apache.stratos.account.mgt.stub:${project.version}</bundleDef>
+				<bundleDef>org.apache.stratos:org.apache.stratos.validate.domain.stub:${project.version}</bundleDef>
+				<!--<bundleDef>org.wso2.carbon:org.apache.stratos.tenant.mgt.stub:${wso2carbon.version}</bundleDef>-->
+				<bundleDef>org.apache.stratos:org.apache.stratos.tenant.register.stub:${project.version}</bundleDef>
+				<bundleDef>org.wso2.carbon:org.wso2.carbon.payment.stub:${wso2carbon.version}</bundleDef>
+                            </bundles>
+                            <importBundles>
+                                <importBundleDef>org.wso2.carbon:org.wso2.carbon.ui.menu.tools</importBundleDef>
+                            </importBundles>
+                            <importFeatures>
+                                <importFeatureDef>org.wso2.carbon.security.mgt:${carbon.version}</importFeatureDef>
+                                <importFeatureDef>org.wso2.carbon.core.ui:${carbon.version}</importFeatureDef>
+                            </importFeatures>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/features/service/pom.xml
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/features/service/pom.xml b/products/stratos-controller/modules/features/service/pom.xml
new file mode 100755
index 0000000..794d4de
--- /dev/null
+++ b/products/stratos-controller/modules/features/service/pom.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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.
+  --> 
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <parent>
+	<groupId>org.apache.stratos</groupId>
+	<artifactId>apache-stratos-features-parent</artifactId>
+	<version>3.0.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>stratos-features</artifactId>
+    <packaging>pom</packaging>
+    <name>Apache Stratos - Features Aggregator Module</name>
+    <url>http://apache.org</url>
+
+    <modules>
+        <module>org.apache.stratos.feature</module>
+        <module>org.apache.stratos.server.feature</module>
+        <module>org.apache.stratos.ui.feature</module>
+    </modules>
+
+    <properties>
+        <wso2carbon.version>4.1.0</wso2carbon.version>
+	<synapse.version>${version.synapse}</synapse.version>
+        <quartz.wso2.version>2.1.1.wso2v1</quartz.wso2.version>
+	<stratos.controller.version>1.0.0</stratos.controller.version>
+    </properties>
+
+</project>
+

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/integration/pom.xml
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/integration/pom.xml b/products/stratos-controller/modules/integration/pom.xml
new file mode 100755
index 0000000..d724ab2
--- /dev/null
+++ b/products/stratos-controller/modules/integration/pom.xml
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <parent>
+	<groupId>org.apache.stratos</groupId>
+	<artifactId>stratos-controller-parent</artifactId>
+	<version>3.0.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>integration</artifactId>
+    <name>Apache Stratos - Manager Integration Tests</name>
+    <packaging>jar</packaging>
+
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-clean-plugin</artifactId>
+                <version>2.4.1</version>
+                <executions>
+                    <execution>
+                        <id>auto-clean</id>
+                        <phase>initialize</phase>
+                        <goals>
+                            <goal>clean</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <inherited>false</inherited>
+                <configuration>
+                    <suiteXmlFiles>
+                        <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
+                    </suiteXmlFiles>
+                    <!--includes>
+                        <include>**/*TestServerManager.java</include>
+                        <include>**/LoginLogoutTestCase.java</include>
+                        <include>**/TenantMgtTestCase.java</include>
+                    </includes-->
+                    <systemProperties>
+                        <maven.test.haltafterfailure>false</maven.test.haltafterfailure>
+                        <carbon.zip>
+                            ${basedir}/../distribution/target/apache-stratos-sc-${project.version}.zip
+                        </carbon.zip>
+                        <sec.verifier.dir>${basedir}/target/security-verifier/</sec.verifier.dir>
+                        <extracted.dir>stratos-controller-parent-${project.version}</extracted.dir>
+                        <emma.home>${basedir}/target/emma</emma.home>
+                    </systemProperties>
+                    <workingDirectory>${basedir}/target</workingDirectory>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>copy-emma-dependencies</id>
+                        <phase>compile</phase>
+                        <goals>
+                            <goal>copy-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/emma</outputDirectory>
+                            <includeTypes>jar</includeTypes>
+                            <includeArtifactIds>emma,org.wso2.carbon.integration.framework</includeArtifactIds>
+                        </configuration>
+                    </execution>
+                    <execution>
+                    	<id>copy-secVerifier</id>
+                        <phase>compile</phase>
+                        <goals>
+                            <goal>copy-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${basedir}/target/security-verifier</outputDirectory>
+                            <includeTypes>aar</includeTypes>
+                            <includeArtifactIds>SecVerifier</includeArtifactIds>
+                            <stripVersion>true</stripVersion>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.wso2.carbon</groupId>
+            <artifactId>org.wso2.carbon.integration.framework</artifactId>
+            <version>${carbon.kernel.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+            <version>6.1.1</version>
+        </dependency>
+        <!--dependency>
+            <groupId>emma</groupId>
+            <artifactId>emma</artifactId>
+            <version>${emma.version}</version>
+        </dependency-->
+        <dependency>
+            <groupId>org.apache.axis2.wso2</groupId>
+            <artifactId>axis2-client</artifactId>
+            <version>${axis2.osgi.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.wso2.carbon</groupId>
+            <artifactId>org.wso2.carbon.addressing</artifactId>
+            <version>${carbon.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.wso2.carbon</groupId>
+            <artifactId>org.wso2.carbon.integration.core</artifactId>
+            <version>${carbon.kernel.version}</version>
+            <classifier>tests</classifier>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.stratos</groupId>
+            <artifactId>org.apache.stratos.tenant.mgt.stub</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+        	<groupId>org.wso2.carbon</groupId>
+        	<artifactId>SecVerifier</artifactId>
+        	<version>${carbon.kernel.version}</version>
+        	<type>aar</type>
+        </dependency>
+    </dependencies>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/LoginLogoutTestCase.java
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/LoginLogoutTestCase.java b/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/LoginLogoutTestCase.java
new file mode 100755
index 0000000..ae08489
--- /dev/null
+++ b/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/LoginLogoutTestCase.java
@@ -0,0 +1,49 @@
+/*
+ * 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.manager.integration.tests;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.testng.annotations.Test;
+import org.wso2.carbon.integration.framework.ClientConnectionUtil;
+import org.wso2.carbon.integration.framework.LoginLogoutUtil;
+
+/**
+ * A test case which tests logging in & logging out of a Carbon core server
+ */
+public class LoginLogoutTestCase {
+
+    private LoginLogoutUtil util = new LoginLogoutUtil();
+    public static final Log log = LogFactory.getLog(LoginLogoutTestCase.class);
+
+    @Test(groups = {"stratos.manager"})
+    public void login() throws Exception {
+        log.info("****************************** LoginLogoutTestCase Start ******************************");
+        ClientConnectionUtil.waitForPort(9763);
+        util.login();
+    }
+
+    @Test(groups = {"stratos.manager"})
+    public void logout() throws Exception {
+        ClientConnectionUtil.waitForPort(9763);
+        util.logout();
+        log.info("****************************** LoginLogoutTestCase End ******************************");
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/SecurityVerificationTestCase.java
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/SecurityVerificationTestCase.java b/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/SecurityVerificationTestCase.java
new file mode 100755
index 0000000..1cfa9e0
--- /dev/null
+++ b/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/SecurityVerificationTestCase.java
@@ -0,0 +1,27 @@
+/*
+ * 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.manager.integration.tests;
+
+import org.wso2.carbon.integration.framework.SecurityVerificationTest;
+
+/**
+ * Test to ensure that the WSO2 Stratos Manager is properly secured
+ */
+public class SecurityVerificationTestCase extends SecurityVerificationTest {
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/StratosManagerTestServerManager.java
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/StratosManagerTestServerManager.java b/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/StratosManagerTestServerManager.java
new file mode 100755
index 0000000..0a1c7e1
--- /dev/null
+++ b/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/StratosManagerTestServerManager.java
@@ -0,0 +1,54 @@
+/*
+ * 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.manager.integration.tests;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.testng.annotations.AfterSuite;
+import org.testng.annotations.BeforeSuite;
+import org.wso2.carbon.integration.framework.TestServerManager;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Prepares the WSO2 AS for test runs, starts the server, and stops the server after
+ * test runs
+ */
+public class StratosManagerTestServerManager extends TestServerManager {
+    private static final Log log = LogFactory.getLog(StratosManagerTestServerManager.class);
+
+    @Override
+    @BeforeSuite(timeOut = 300000)
+    public String startServer() throws IOException {
+        String carbonHome = super.startServer();
+        System.setProperty("carbon.home", carbonHome);
+        return carbonHome;
+    }
+
+    @Override
+    @AfterSuite(timeOut = 60000)
+    public void stopServer() throws Exception {
+        super.stopServer();
+    }
+
+    protected void copyArtifacts(String carbonHome) throws IOException {
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/TenantMgtTestCase.java
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/TenantMgtTestCase.java b/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/TenantMgtTestCase.java
new file mode 100755
index 0000000..963e0a1
--- /dev/null
+++ b/products/stratos-controller/modules/integration/src/test/java/org/apache/stratos/manager/integration/tests/TenantMgtTestCase.java
@@ -0,0 +1,92 @@
+/*
+ * 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.manager.integration.tests;
+
+import org.apache.axis2.client.ServiceClient;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.testng.Assert;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+import org.wso2.carbon.integration.framework.utils.FrameworkSettings;
+import org.apache.stratos.tenant.mgt.stub.TenantMgtAdminServiceStub;
+import org.apache.stratos.tenant.mgt.stub.beans.xsd.TenantInfoBean;
+import org.wso2.carbon.utils.CarbonUtils;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+
+public class TenantMgtTestCase {
+
+    private static String TenantMgtAdminServiceURL;
+    private static String TestTenantDomain;
+    public static final Log log = LogFactory.getLog(TenantMgtTestCase.class);
+
+    @BeforeClass
+    public void init() {
+        log.info("****************************** TenantMgtTestCase Start ******************************");
+        TestTenantDomain = "testcase.org";
+        TenantMgtAdminServiceURL = "https://" + FrameworkSettings.HOST_NAME + ":" +
+                                 FrameworkSettings.HTTPS_PORT + "/services/TenantMgtAdminService";
+    }
+
+    @Test(groups = {"stratos.manager"})
+    public void addTenantTest() throws Exception {
+        Calendar calender = new GregorianCalendar();
+        calender.setTime(new Date());
+
+        TenantInfoBean tenantInfoBean = new TenantInfoBean();
+        tenantInfoBean.setActive(true);
+        tenantInfoBean.setEmail("manager-test@wso2.com");
+        tenantInfoBean.setAdmin("admin");
+        tenantInfoBean.setAdminPassword("admin123");
+        tenantInfoBean.setTenantDomain(TestTenantDomain);
+        tenantInfoBean.setCreatedDate(calender);
+        tenantInfoBean.setFirstname("Fname");
+        tenantInfoBean.setLastname("Lname");
+        tenantInfoBean.setSuccessKey("true");
+        tenantInfoBean.setUsagePlan("Demo");
+
+        TenantMgtAdminServiceStub stub = new TenantMgtAdminServiceStub(TenantMgtAdminServiceURL);
+        ServiceClient client = stub._getServiceClient();
+        CarbonUtils.setBasicAccessSecurityHeaders(FrameworkSettings.USER_NAME, FrameworkSettings.PASSWORD, client);
+
+        String result = stub.addTenant(tenantInfoBean);
+        Assert.assertTrue(stub.retrieveTenants()[0].getTenantDomain().equals(TestTenantDomain));
+
+    }
+
+    @Test(groups = {"stratos.manager"})
+    public void activateTenantTest() throws Exception {
+        TenantMgtAdminServiceStub stub = new TenantMgtAdminServiceStub(TenantMgtAdminServiceURL);
+        ServiceClient client = stub._getServiceClient();
+        CarbonUtils.setBasicAccessSecurityHeaders(FrameworkSettings.USER_NAME, FrameworkSettings.PASSWORD, client);
+        stub.activateTenant(TestTenantDomain);
+        Assert.assertTrue(stub.retrieveTenants()[0].getActive());
+    }
+
+    @AfterClass
+    public void end(){
+        log.info("****************************** TenantMgtTestCase End ******************************");
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/integration/src/test/resources/instrumentation.txt
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/integration/src/test/resources/instrumentation.txt b/products/stratos-controller/modules/integration/src/test/resources/instrumentation.txt
new file mode 100755
index 0000000..3ebd80a
--- /dev/null
+++ b/products/stratos-controller/modules/integration/src/test/resources/instrumentation.txt
@@ -0,0 +1,2 @@
+org.apache.stratos.tenant.mgt_
+org.apache.stratos.tenant.mgt.core_
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/integration/src/test/resources/keys/wso2carbon.jks
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/integration/src/test/resources/keys/wso2carbon.jks b/products/stratos-controller/modules/integration/src/test/resources/keys/wso2carbon.jks
new file mode 100755
index 0000000..7942c53
Binary files /dev/null and b/products/stratos-controller/modules/integration/src/test/resources/keys/wso2carbon.jks differ

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/integration/src/test/resources/testng.xml
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/integration/src/test/resources/testng.xml b/products/stratos-controller/modules/integration/src/test/resources/testng.xml
new file mode 100755
index 0000000..5cdc25e
--- /dev/null
+++ b/products/stratos-controller/modules/integration/src/test/resources/testng.xml
@@ -0,0 +1,17 @@
+<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
+<suite name="Apache Stratos Manager Test Suite">
+    <test name="testing" preserve-order="true">
+        <classes>
+            <class name="org.apache.stratos.manager.integration.tests.StratosManagerTestServerManager"/>
+            <class name="org.apache.stratos.manager.integration.tests.LoginLogoutTestCase"/>
+            <class name="org.apache.stratos.manager.integration.tests.SecurityVerificationTestCase"/>
+            <!--class name="org.apache.stratos.manager.integration.tests.TenantMgtTestCase">
+                <methods>
+                    <include name="init"/>
+                    <include name="addTenantTest"/>
+                    <include name="activateTenantTest"/>
+                </methods>
+            </class-->
+        </classes>
+    </test>
+</suite>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/login/pom.xml
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/login/pom.xml b/products/stratos-controller/modules/login/pom.xml
new file mode 100644
index 0000000..03c4acf
--- /dev/null
+++ b/products/stratos-controller/modules/login/pom.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+     <parent>
+	<groupId>org.apache.stratos</groupId>
+	<artifactId>stratos-controller-parent</artifactId>
+	<version>3.0.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.apache.stratos.manager.login.ui</artifactId>
+    <packaging>bundle</packaging>
+    <name>Apache Stratos - Cloud Manager Login User Interface</name>
+
+    <build>
+
+        <plugins>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>1.5</source>
+                    <target>1.5</target>
+                </configuration>
+            </plugin>
+	    
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>add-source</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>add-source</goal>
+                        </goals>
+                        <configuration>
+                            <sources>
+                                <source>target/generated-code/src</source>
+                            </sources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+                        <Bundle-Name>${project.artifactId}</Bundle-Name>
+                        <Import-Package>
+                            javax.servlet; version=2.4.0,
+                            javax.servlet.http; version=2.4.0,
+                            org.apache.lucene.*,
+                            *;resolution:=optional
+                        </Import-Package>
+                        <Carbon-Component>UIBundle</Carbon-Component>
+                    </instructions>
+                </configuration>
+            </plugin>
+
+        </plugins>
+    </build>
+
+   <dependencies>
+
+        <dependency>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.wso2.carbon</groupId>
+            <artifactId>org.wso2.carbon.registry.common.ui</artifactId>
+            <version>${registry-component.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.wso2.carbon</groupId>
+            <artifactId>org.wso2.carbon.registry.core</artifactId>
+            <version>${wso2carbon.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.axis2.wso2</groupId>
+            <artifactId>axis2</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.ws.commons.axiom.wso2</groupId>
+            <artifactId>axiom</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.wso2.carbon</groupId>
+            <artifactId>org.wso2.carbon.ui</artifactId>
+            <version>${wso2carbon.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.wso2.carbon</groupId>
+            <artifactId>org.wso2.carbon.core</artifactId>
+            <version>${wso2carbon.version}</version>
+        </dependency>
+    </dependencies>
+
+
+    <properties>
+        <eclipse.version>3.2.0</eclipse.version>
+        <!-- Component versions == Carbon version, if not, please change the properties below. -->
+        <registry-component.version>4.1.0</registry-component.version>
+   </properties>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/login/src/main/resources/META-INF/component.xml
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/login/src/main/resources/META-INF/component.xml b/products/stratos-controller/modules/login/src/main/resources/META-INF/component.xml
new file mode 100644
index 0000000..565c0d5
--- /dev/null
+++ b/products/stratos-controller/modules/login/src/main/resources/META-INF/component.xml
@@ -0,0 +1,21 @@
+<!--
+  ~ 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.
+  -->
+<component xmlns="http://products.wso2.org/carbon">
+    <!-- sample menu configuration -->
+</component>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/login/src/main/resources/TenantService.wsdl
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/login/src/main/resources/TenantService.wsdl b/products/stratos-controller/modules/login/src/main/resources/TenantService.wsdl
new file mode 100644
index 0000000..c66acdc
--- /dev/null
+++ b/products/stratos-controller/modules/login/src/main/resources/TenantService.wsdl
@@ -0,0 +1,577 @@
+<!--
+  ~ 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.
+  -->
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:ax223="http://exceptions.core.registry.carbon.wso2.org/xsd" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:ns="http://services.mgt.tenant.multitenancy.carbon.wso2.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ax226="http://util.mgt.tenant.multitenancy.carbon.wso2.com/xsd" targetNamespace="http://services.mgt.tenant.multitenancy.carbon.wso2.com">
+    <wsdl:documentation>TenantConfigService</wsdl:documentation>
+    <wsdl:types>
+        <xs:schema xmlns:ax225="http://exceptions.core.registry.carbon.wso2.org/xsd" xmlns:ax227="http://util.mgt.tenant.multitenancy.carbon.wso2.com/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://services.mgt.tenant.multitenancy.carbon.wso2.com">
+            <xs:import namespace="http://exceptions.core.registry.carbon.wso2.org/xsd" />
+            <xs:import namespace="http://util.mgt.tenant.multitenancy.carbon.wso2.com/xsd" />
+            <xs:complexType name="Exception">
+                <xs:sequence>
+                    <xs:element minOccurs="0" name="Exception" nillable="true" type="xs:anyType" />
+                </xs:sequence>
+            </xs:complexType>
+            <xs:element name="RegistryException">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="RegistryException" nillable="true" type="ax225:RegistryException" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="validateOrSuggestDomain">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="domain" nillable="true" type="xs:string" />
+                        <xs:element minOccurs="0" name="successKey" nillable="true" type="xs:string" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="validateOrSuggestDomainResponse">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="updateTenant">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="tenantInfoBean" nillable="true" type="ax226:TenantInfoBean" />
+                        <xs:element minOccurs="0" name="oldAdminPassword" nillable="true" type="xs:string" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="proceedTenantAdding">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="tenantInfoBean" nillable="true" type="ax226:TenantInfoBean" />
+                        <xs:element minOccurs="0" name="confirmationKey" nillable="true" type="xs:string" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="proceedTenantAddingResponse">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="getTenantsResponse">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="ax226:TenantInfoBean" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="getTenant">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="tenantDomain" nillable="true" type="xs:string" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="getTenantResponse">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="return" nillable="true" type="ax226:TenantInfoBean" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="deactivateTenant">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="tenantDomain" nillable="true" type="xs:string" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="Exception">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="Exception" nillable="true" type="ns:Exception" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="checkDomainAvailability">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="domainName" nillable="true" type="xs:string" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="checkDomainAvailabilityResponse">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="return" type="xs:boolean" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="addTenant">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="tenantInfoBean" nillable="true" type="ax226:TenantInfoBean" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="activateTenant">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="tenantDomain" nillable="true" type="xs:string" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+        </xs:schema>
+        <xs:schema xmlns:ax224="http://services.mgt.tenant.multitenancy.carbon.wso2.com" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://exceptions.core.registry.carbon.wso2.org/xsd">
+            <xs:import namespace="http://services.mgt.tenant.multitenancy.carbon.wso2.com" />
+            <xs:complexType name="RegistryException">
+                <xs:complexContent>
+                    <xs:extension base="ax224:Exception">
+                        <xs:sequence />
+                    </xs:extension>
+                </xs:complexContent>
+            </xs:complexType>
+        </xs:schema>
+        <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://util.mgt.tenant.multitenancy.carbon.wso2.com/xsd">
+            <xs:complexType name="TenantInfoBean">
+                <xs:sequence>
+                    <xs:element minOccurs="0" name="active" type="xs:boolean" />
+                    <xs:element minOccurs="0" name="admin" nillable="true" type="xs:string" />
+                    <xs:element minOccurs="0" name="adminPassword" nillable="true" type="xs:string" />
+                    <xs:element minOccurs="0" name="email" nillable="true" type="xs:string" />
+                    <xs:element minOccurs="0" name="successKey" nillable="true" type="xs:string" />
+                    <xs:element minOccurs="0" name="tenantDomain" nillable="true" type="xs:string" />
+                    <xs:element minOccurs="0" name="tenantId" type="xs:int" />
+                </xs:sequence>
+            </xs:complexType>
+        </xs:schema>
+    </wsdl:types>
+    <wsdl:message name="deactivateTenantRequest">
+        <wsdl:part name="parameters" element="ns:deactivateTenant" />
+    </wsdl:message>
+    <wsdl:message name="deactivateTenantResponse" />
+    <wsdl:message name="RegistryException">
+        <wsdl:part name="parameters" element="ns:RegistryException" />
+    </wsdl:message>
+    <wsdl:message name="activateTenantRequest">
+        <wsdl:part name="parameters" element="ns:activateTenant" />
+    </wsdl:message>
+    <wsdl:message name="activateTenantResponse" />
+    <wsdl:message name="validateOrSuggestDomainRequest">
+        <wsdl:part name="parameters" element="ns:validateOrSuggestDomain" />
+    </wsdl:message>
+    <wsdl:message name="validateOrSuggestDomainResponse">
+        <wsdl:part name="parameters" element="ns:validateOrSuggestDomainResponse" />
+    </wsdl:message>
+    <wsdl:message name="addTenantRequest">
+        <wsdl:part name="parameters" element="ns:addTenant" />
+    </wsdl:message>
+    <wsdl:message name="addTenantResponse" />
+    <wsdl:message name="proceedTenantAddingRequest">
+        <wsdl:part name="parameters" element="ns:proceedTenantAdding" />
+    </wsdl:message>
+    <wsdl:message name="proceedTenantAddingResponse">
+        <wsdl:part name="parameters" element="ns:proceedTenantAddingResponse" />
+    </wsdl:message>
+    <wsdl:message name="getTenantsRequest" />
+    <wsdl:message name="getTenantsResponse">
+        <wsdl:part name="parameters" element="ns:getTenantsResponse" />
+    </wsdl:message>
+    <wsdl:message name="checkDomainAvailabilityRequest">
+        <wsdl:part name="parameters" element="ns:checkDomainAvailability" />
+    </wsdl:message>
+    <wsdl:message name="checkDomainAvailabilityResponse">
+        <wsdl:part name="parameters" element="ns:checkDomainAvailabilityResponse" />
+    </wsdl:message>
+    <wsdl:message name="Exception">
+        <wsdl:part name="parameters" element="ns:Exception" />
+    </wsdl:message>
+    <wsdl:message name="getTenantRequest">
+        <wsdl:part name="parameters" element="ns:getTenant" />
+    </wsdl:message>
+    <wsdl:message name="getTenantResponse">
+        <wsdl:part name="parameters" element="ns:getTenantResponse" />
+    </wsdl:message>
+    <wsdl:message name="updateTenantRequest">
+        <wsdl:part name="parameters" element="ns:updateTenant" />
+    </wsdl:message>
+    <wsdl:message name="updateTenantResponse" />
+    <wsdl:portType name="TenantConfigServicePortType">
+        <wsdl:operation name="deactivateTenant">
+            <wsdl:input message="ns:deactivateTenantRequest" wsaw:Action="urn:deactivateTenant" />
+            <wsdl:output message="ns:deactivateTenantResponse" wsaw:Action="urn:deactivateTenantResponse" />
+            <wsdl:fault message="ns:RegistryException" name="RegistryException" wsaw:Action="urn:deactivateTenantRegistryException" />
+        </wsdl:operation>
+        <wsdl:operation name="activateTenant">
+            <wsdl:input message="ns:activateTenantRequest" wsaw:Action="urn:activateTenant" />
+            <wsdl:output message="ns:activateTenantResponse" wsaw:Action="urn:activateTenantResponse" />
+            <wsdl:fault message="ns:RegistryException" name="RegistryException" wsaw:Action="urn:activateTenantRegistryException" />
+        </wsdl:operation>
+        <wsdl:operation name="validateOrSuggestDomain">
+            <wsdl:input message="ns:validateOrSuggestDomainRequest" wsaw:Action="urn:validateOrSuggestDomain" />
+            <wsdl:output message="ns:validateOrSuggestDomainResponse" wsaw:Action="urn:validateOrSuggestDomainResponse" />
+            <wsdl:fault message="ns:RegistryException" name="RegistryException" wsaw:Action="urn:validateOrSuggestDomainRegistryException" />
+        </wsdl:operation>
+        <wsdl:operation name="addTenant">
+            <wsdl:input message="ns:addTenantRequest" wsaw:Action="urn:addTenant" />
+            <wsdl:output message="ns:addTenantResponse" wsaw:Action="urn:addTenantResponse" />
+            <wsdl:fault message="ns:RegistryException" name="RegistryException" wsaw:Action="urn:addTenantRegistryException" />
+        </wsdl:operation>
+        <wsdl:operation name="proceedTenantAdding">
+            <wsdl:input message="ns:proceedTenantAddingRequest" wsaw:Action="urn:proceedTenantAdding" />
+            <wsdl:output message="ns:proceedTenantAddingResponse" wsaw:Action="urn:proceedTenantAddingResponse" />
+            <wsdl:fault message="ns:RegistryException" name="RegistryException" wsaw:Action="urn:proceedTenantAddingRegistryException" />
+        </wsdl:operation>
+        <wsdl:operation name="getTenants">
+            <wsdl:input message="ns:getTenantsRequest" wsaw:Action="urn:getTenants" />
+            <wsdl:output message="ns:getTenantsResponse" wsaw:Action="urn:getTenantsResponse" />
+            <wsdl:fault message="ns:RegistryException" name="RegistryException" wsaw:Action="urn:getTenantsRegistryException" />
+        </wsdl:operation>
+        <wsdl:operation name="checkDomainAvailability">
+            <wsdl:input message="ns:checkDomainAvailabilityRequest" wsaw:Action="urn:checkDomainAvailability" />
+            <wsdl:output message="ns:checkDomainAvailabilityResponse" wsaw:Action="urn:checkDomainAvailabilityResponse" />
+            <wsdl:fault message="ns:Exception" name="Exception" wsaw:Action="urn:checkDomainAvailabilityException" />
+        </wsdl:operation>
+        <wsdl:operation name="getTenant">
+            <wsdl:input message="ns:getTenantRequest" wsaw:Action="urn:getTenant" />
+            <wsdl:output message="ns:getTenantResponse" wsaw:Action="urn:getTenantResponse" />
+            <wsdl:fault message="ns:RegistryException" name="RegistryException" wsaw:Action="urn:getTenantRegistryException" />
+        </wsdl:operation>
+        <wsdl:operation name="updateTenant">
+            <wsdl:input message="ns:updateTenantRequest" wsaw:Action="urn:updateTenant" />
+            <wsdl:output message="ns:updateTenantResponse" wsaw:Action="urn:updateTenantResponse" />
+            <wsdl:fault message="ns:RegistryException" name="RegistryException" wsaw:Action="urn:updateTenantRegistryException" />
+        </wsdl:operation>
+    </wsdl:portType>
+    <wsdl:binding name="TenantConfigServiceSoap11Binding" type="ns:TenantConfigServicePortType">
+        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+        <wsdl:operation name="deactivateTenant">
+            <soap:operation soapAction="urn:deactivateTenant" style="document" />
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="activateTenant">
+            <soap:operation soapAction="urn:activateTenant" style="document" />
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="validateOrSuggestDomain">
+            <soap:operation soapAction="urn:validateOrSuggestDomain" style="document" />
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="addTenant">
+            <soap:operation soapAction="urn:addTenant" style="document" />
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="proceedTenantAdding">
+            <soap:operation soapAction="urn:proceedTenantAdding" style="document" />
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getTenants">
+            <soap:operation soapAction="urn:getTenants" style="document" />
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="checkDomainAvailability">
+            <soap:operation soapAction="urn:checkDomainAvailability" style="document" />
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="Exception">
+                <soap:fault use="literal" name="Exception" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getTenant">
+            <soap:operation soapAction="urn:getTenant" style="document" />
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="updateTenant">
+            <soap:operation soapAction="urn:updateTenant" style="document" />
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:binding name="TenantConfigServiceSoap12Binding" type="ns:TenantConfigServicePortType">
+        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+        <wsdl:operation name="deactivateTenant">
+            <soap12:operation soapAction="urn:deactivateTenant" style="document" />
+            <wsdl:input>
+                <soap12:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap12:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="activateTenant">
+            <soap12:operation soapAction="urn:activateTenant" style="document" />
+            <wsdl:input>
+                <soap12:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap12:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="validateOrSuggestDomain">
+            <soap12:operation soapAction="urn:validateOrSuggestDomain" style="document" />
+            <wsdl:input>
+                <soap12:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap12:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="addTenant">
+            <soap12:operation soapAction="urn:addTenant" style="document" />
+            <wsdl:input>
+                <soap12:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap12:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="proceedTenantAdding">
+            <soap12:operation soapAction="urn:proceedTenantAdding" style="document" />
+            <wsdl:input>
+                <soap12:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap12:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getTenants">
+            <soap12:operation soapAction="urn:getTenants" style="document" />
+            <wsdl:input>
+                <soap12:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap12:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="checkDomainAvailability">
+            <soap12:operation soapAction="urn:checkDomainAvailability" style="document" />
+            <wsdl:input>
+                <soap12:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="Exception">
+                <soap12:fault use="literal" name="Exception" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getTenant">
+            <soap12:operation soapAction="urn:getTenant" style="document" />
+            <wsdl:input>
+                <soap12:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap12:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="updateTenant">
+            <soap12:operation soapAction="urn:updateTenant" style="document" />
+            <wsdl:input>
+                <soap12:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="RegistryException">
+                <soap12:fault use="literal" name="RegistryException" />
+            </wsdl:fault>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:binding name="TenantConfigServiceHttpBinding" type="ns:TenantConfigServicePortType">
+        <http:binding verb="POST" />
+        <wsdl:operation name="deactivateTenant">
+            <http:operation location="deactivateTenant" />
+            <wsdl:input>
+                <mime:content type="text/xml" part="deactivateTenant" />
+            </wsdl:input>
+            <wsdl:output>
+                <mime:content type="text/xml" part="deactivateTenant" />
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="activateTenant">
+            <http:operation location="activateTenant" />
+            <wsdl:input>
+                <mime:content type="text/xml" part="activateTenant" />
+            </wsdl:input>
+            <wsdl:output>
+                <mime:content type="text/xml" part="activateTenant" />
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="validateOrSuggestDomain">
+            <http:operation location="validateOrSuggestDomain" />
+            <wsdl:input>
+                <mime:content type="text/xml" part="validateOrSuggestDomain" />
+            </wsdl:input>
+            <wsdl:output>
+                <mime:content type="text/xml" part="validateOrSuggestDomain" />
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="addTenant">
+            <http:operation location="addTenant" />
+            <wsdl:input>
+                <mime:content type="text/xml" part="addTenant" />
+            </wsdl:input>
+            <wsdl:output>
+                <mime:content type="text/xml" part="addTenant" />
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="proceedTenantAdding">
+            <http:operation location="proceedTenantAdding" />
+            <wsdl:input>
+                <mime:content type="text/xml" part="proceedTenantAdding" />
+            </wsdl:input>
+            <wsdl:output>
+                <mime:content type="text/xml" part="proceedTenantAdding" />
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="getTenants">
+            <http:operation location="getTenants" />
+            <wsdl:input>
+                <mime:content type="text/xml" part="getTenants" />
+            </wsdl:input>
+            <wsdl:output>
+                <mime:content type="text/xml" part="getTenants" />
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="checkDomainAvailability">
+            <http:operation location="checkDomainAvailability" />
+            <wsdl:input>
+                <mime:content type="text/xml" part="checkDomainAvailability" />
+            </wsdl:input>
+            <wsdl:output>
+                <mime:content type="text/xml" part="checkDomainAvailability" />
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="getTenant">
+            <http:operation location="getTenant" />
+            <wsdl:input>
+                <mime:content type="text/xml" part="getTenant" />
+            </wsdl:input>
+            <wsdl:output>
+                <mime:content type="text/xml" part="getTenant" />
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="updateTenant">
+            <http:operation location="updateTenant" />
+            <wsdl:input>
+                <mime:content type="text/xml" part="updateTenant" />
+            </wsdl:input>
+            <wsdl:output>
+                <mime:content type="text/xml" part="updateTenant" />
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:service name="TenantConfigService">
+        <wsdl:port name="TenantConfigServiceHttpsSoap11Endpoint" binding="ns:TenantConfigServiceSoap11Binding">
+            <soap:address location="https://10.100.1.125:9443/services/TenantConfigService.TenantConfigServiceHttpsSoap11Endpoint/" />
+        </wsdl:port>
+        <wsdl:port name="TenantConfigServiceHttpsSoap12Endpoint" binding="ns:TenantConfigServiceSoap12Binding">
+            <soap12:address location="https://10.100.1.125:9443/services/TenantConfigService.TenantConfigServiceHttpsSoap12Endpoint/" />
+        </wsdl:port>
+        <wsdl:port name="TenantConfigServiceHttpsEndpoint" binding="ns:TenantConfigServiceHttpBinding">
+            <http:address location="https://10.100.1.125:9443/services/TenantConfigService.TenantConfigServiceHttpsEndpoint/" />
+        </wsdl:port>
+    </wsdl:service>
+</wsdl:definitions>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/css/loginpage.css
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/css/loginpage.css b/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/css/loginpage.css
new file mode 100644
index 0000000..c69f1c6
--- /dev/null
+++ b/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/css/loginpage.css
@@ -0,0 +1,268 @@
+body {
+	color:#111111;
+	font-family:"Calibri","Lucida Grande","Lucida Sans","Microsoft Sans Serif","Lucida Sans Unicode","Verdana","Sans-serif","trebuchet ms" !important;
+	font-size:0.75em;
+	font-size-adjust:none;
+	font-style:normal;
+	font-variant:normal;
+	font-weight:normal;
+	line-height:1.25em;
+	background-image: url(../images/body-bg.gif);
+	background-position: left top;
+	background-repeat: repeat-x;
+	margin: 0px;
+	padding: 0px;
+}
+
+div.clear {
+	clear:both;
+}
+p { }
+
+td { }
+
+a:link { }
+
+a:visited { }
+
+a:hover { }
+
+a:active { }
+
+div#login-content {
+	background-image:url(../images/login-bg.gif);
+	background-position:left top;
+	background-repeat:no-repeat;
+	height:277px;
+	left:50%;
+	margin-left:-481px;
+	position:absolute;
+	text-align:center;
+	width:962px;
+}
+div#login-content div.main-text {
+	margin-top: 113px;
+	margin-left: 50px;
+	float: left;
+	width: 750px;
+	font-size: 140%;
+	line-height: 125%;
+	height: 80px;
+	text-align: left;
+}
+div.feature {
+	float:left;
+	margin-left:79px;
+	margin-top:23px;
+	padding-bottom:20px;
+	padding-top:20px;
+	text-align:left;
+	width:221px;
+}
+div.feature img {
+	float: left;
+	margin-right: 10px;
+	width: 64px;
+}
+div.feature h2 {
+	margin-top: 0px;
+	margin-bottom: 7px;
+	color: #0499CC;
+	font-size: 155%;
+	line-height: 110%;
+	font-weight: normal;
+	
+}
+div.feature p {
+	margin-top: 0px;
+	padding-top: 0px;
+}
+div#login-content div.feature-left {
+	margin-left: 70px;
+}
+a.register-button {
+	background-image:url(../images/reg-button.gif);
+	background-position:left top;
+	background-repeat:no-repeat;
+	color:#FFFFFF;
+	cursor:pointer;
+	display:block;
+	font-size:220%;
+	font-weight:normal;
+	line-height:63px;
+	margin:auto auto 5px;
+	text-align:left;
+	text-decoration:none;
+	text-indent:25px;
+	width:444px;
+}
+a.register-button:hover {
+	background-image: url(../images/reg-button-hover.gif);
+}
+div.resources {
+	text-align: center;
+}
+div.resources a {
+	background-image:url("../images/link-icon.gif");
+	background-position:right 4px;
+	background-repeat:no-repeat;
+	color:#004990;
+	font-size:130%;
+	line-height:20px;
+	padding-right:15px;
+	text-decoration:none;
+}
+div.resources a:hover {
+	color: #000000;
+}
+table.adv {
+	width: 100%;
+	margin-top: 15px;
+}
+table.adv tr td {
+	vertical-align: top;
+	text-align: center;
+}
+td#ad {
+	height:210px;
+	width: 50%;	
+}
+div#sign-in {
+	text-align:left;
+	width: 580px;
+	margin: auto;
+}
+div#sign-in div.sign-in-form {
+	width: 580px;
+}
+div#sign-in h2 {
+	border-bottom:1px solid #78BDE8;
+	font-size:130%;
+	margin-bottom:10px;
+	margin-top:0;
+	padding-bottom:10px;
+	padding-top:0;
+}
+div#sign-in table tr td.top {
+	padding-top: 10px;
+}
+div#sign-in table tr td {
+	padding-bottom:5px;
+	padding-right:7px;
+}
+div#sign-in table {
+	border-bottom:1px solid #0499CC;
+	margin-bottom:7px;
+}
+div#sign-in table tr td.title {
+	font-size: 180%;
+	font-weight: bold;
+	padding-bottom: 10px;
+	padding-top: 0px;
+	text-align: left;
+}
+#loginForm td label{
+    font-size:12px;
+}
+div#sign-in a.help {
+	font-size: 14px;
+	text-decoration: none;
+	color: #00447C;
+}
+td#ad iframe.ad-frame {
+	border: 0px;
+	width: 420px;
+	height: 210px;
+	margin: 0px;
+	padding: 0px;
+}
+div#footer {
+	margin-top: 30px;
+	height: 50px;
+	border-top: solid 1px #009FC2;
+	padding-top: 7px;
+	text-align: left;
+}
+div#footer a {
+	text-decoration: none;
+	color: #00447C;
+}
+div#footer div.powered {
+	float: right;
+	font-size: 11px;
+	color: #333;
+}
+div#footer div.powered span {
+	float: left;
+	margin-right: 5px;
+	line-height: 23px;
+}
+div#sign-in table.sign-in {
+	border-bottom: 0px;
+}
+div#sign-in table tr td {
+	padding-top: 10px;
+	width: 290px;
+}
+div#sign-in table tbody tr td.third-party {
+	border-left: dotted 1px #cccccc;
+	padding: 20px;
+}
+div#sign-in table tbody tr td.third-party a img {
+	border: 0px;
+	margin-top: 10px;
+}
+.sign-in-box{
+    -moz-border-radius: 5px;
+    border-radius: 5px;
+    border:solid 1px #b5dff7;
+    background-color:#ebf7fd;
+    padding-left:10px;
+    width:800px;
+    margin-left:70px;
+
+        -moz-box-shadow: 0 0 3px #999;
+    -webkit-box-shadow: 0 0 3px #999;
+    box-shadow: 0 0 3px #999;
+}
+.sign-in-box h3{
+    color:#0499cc;
+    font-size:12px;
+    font-weight:bold;
+    padding-bottom:10px;
+}
+.sign-in-box table tr td{
+    text-align:left !important;
+}
+.user_pass_table a{
+    font-size:11px;
+}
+.user_pass_table td{
+    padding:4px;
+    text-align:left !important;
+}
+.sign-in-box div.help_txt{
+    color: #666666;
+    line-height:20px;
+}
+.user_pass_td{
+    border-right:solid 1px #ccc;
+}
+.google-app-td{
+    padding-left:10px;
+    width:300px;
+}
+#loginBoxGoogle{
+    margin-top:15px;
+}
+#loginBoxGoogle div.help_txt{
+    font-size:11px;
+}
+h2.stratos-Signin{
+    color:#0499cc;
+    font-size:22px;
+    line-height:30px;
+}
+.google-app-td img{
+    cursor:pointer;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/css/tenant.css
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/css/tenant.css b/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/css/tenant.css
new file mode 100644
index 0000000..2f06cc5
--- /dev/null
+++ b/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/css/tenant.css
@@ -0,0 +1,62 @@
+/*css editor styles */
+.csseditor-top-line{
+    background-color:black;
+    height:5px;
+}
+.csseditor-leftbox{
+    background-color:#9a9a9a;
+    padding-left:5px;
+    padding-right:5px;
+    padding-bottom:5px;
+    padding-top:15px;
+   height:380px;
+}
+.csseditor-leftbox-top{
+    color:#ffffff;
+    font-size:18px;
+    height:30px;
+}
+.csseditor-textbox{
+    background-color:#dfe7ed;
+    border:solid 1px #ffffff;
+    width:100%;
+}
+.csseditor-rightbox{
+    background-color:#c9c9c9;
+    border:solid 1px #ffffff;
+    height:400px;
+}
+.csseditor-rightbox-title{
+    background-color:#9a9a9a;
+    height:25px;
+    color:#ffffff;
+    padding-left:10px;
+    padding-top:5px;
+}
+.csseditor-searchbox{
+    padding-left:10px;
+    padding-top:10px;
+}
+#flickr_results{
+    height:300px;
+    overflow-y:auto;
+    overflow-x:hidden;
+    margin-left:5px;
+    margin-right:5px;
+    border:solid 1px #ffffff;
+}
+.imageList{
+}
+.imageList li {
+    padding-top: 3px !important;
+    padding-left: 5px !important;
+    background-color: #e1e9ec;
+    border: solid 1px #b5bdc1;
+}
+
+.imageList li a {
+    background-image: url(../images/images.gif);
+    background-repeat: no-repeat;
+    padding-left: 20px;
+    text-indent: 50px;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/docs/images/sign-in-no-domain.png
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/docs/images/sign-in-no-domain.png b/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/docs/images/sign-in-no-domain.png
new file mode 100644
index 0000000..2d5408c
Binary files /dev/null and b/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/docs/images/sign-in-no-domain.png differ

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/docs/images/sign-in-with-domain.png
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/docs/images/sign-in-with-domain.png b/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/docs/images/sign-in-with-domain.png
new file mode 100644
index 0000000..764ce0f
Binary files /dev/null and b/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/docs/images/sign-in-with-domain.png differ

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ffe2e466/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/docs/userguide.html
----------------------------------------------------------------------
diff --git a/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/docs/userguide.html b/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/docs/userguide.html
new file mode 100644
index 0000000..7818a8c
--- /dev/null
+++ b/products/stratos-controller/modules/login/src/main/resources/web/tenant-login/docs/userguide.html
@@ -0,0 +1,114 @@
+<!--
+  ~ 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.
+  -->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>WSO2 Stratos Services Sign In - User Guide</title>
+  <link href="../../admin/css/documentation.css" rel="stylesheet" type="text/css" media="all" />
+</head>
+
+<body>
+<h1>WSO2 Stratos Services Sign In</h1>
+
+<p>
+You can use this form to sign in to the WSO2 Statos Admin Console. You can access this page from one of the following urls.
+</p>
+
+<p>
+<ol>
+    <li>The common login: <a href="https://stratoslive.wso2.com">https://stratoslive.wso2.com</a></li>
+    <li>The domain name specific login: <a href="https://stratoslive.wso2.com/t/yourdomoain">https://stratoslive.wso2.com/t/yourdomoain</a>  (e.g. for the wso2.org domain: <a href="https://stratoslive.wso2.com/t/wso2.org">https://stratoslive.wso2.com/t/wso2.org</a>)</li>
+</ol>
+</p>
+
+<h2>1. The common login: When accessed through <a href="https://stratoslive.wso2.com">https://stratoslive.wso2.com<a/></h2>
+
+<p>
+<img src="images/sign-in-no-domain.png" alt="When accessed through https://stratoslive.wso2.com"/>
+</p>
+<p><strong>Figure1: Sign In Form When accessed through <a href="https://stratoslive.wso2.com">https://stratoslive.wso2.com</a></strong></p>
+
+<p>
+
+<table border="1px">
+    <thead style="background:#cccccc">
+        <td>
+            The Form Field
+        </td>
+        <td>
+            Description
+        </td>
+    </thead>
+    <tbody>
+        <tr>
+            <td>Username</td>
+            <td><p>For this field you need to enter the username in the following format.</p>
+                <pre>yourname@yourdomain</pre>
+                <p>E.g. foo@wso2.com</p>
+            </td>
+        </tr>
+        <tr>
+            <td>Password</td>
+            <td>The Password of your user account
+            </td>
+        </tr>
+    </tbody>
+</table>
+</p>
+
+
+<h2>2. The domain name specific login: When accessed through <a href="https://stratoslive.wso2.com/t/yourdomoain">https://stratoslive.wso2.com/t/yourdomoain</a></h2>
+
+<p>
+<img src="images/sign-in-with-domain.png" alt="When accessed through https://stratoslive.wso2.com/t/yourdomain"/>
+</p>
+<p><strong>Figure1: Sign In Form When accessed through <a href="https://stratoslive.wso2.com/t/yourdomoain">https://stratoslive.wso2.com/t/yourdomoain</a></strong></p>
+
+<p>
+
+<table border="1px">
+    <thead style="background:#cccccc">
+        <td>
+            The Form Field
+        </td>
+        <td>
+            Description
+        </td>
+    </thead>
+    <tbody>
+        <tr>
+            <td>Username</td>
+            <td><p>For this field you only need to enter the username as the domain name is already suggested for you. Note that derives the domain
+            name from the url. So in case you want to login to an account in a different domain you have to change the url of the correct domain specific
+            login and try entering the username and password.</p>
+            </td>
+        </tr>
+        <tr>
+            <td>Password</td>
+            <td>The Password of your user account
+            </td>
+        </tr>
+    </tbody>
+</table>
+</p>
+
+
+</body>
+
+</html>