You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by sa...@apache.org on 2013/07/02 11:23:19 UTC

[4/5] Refactoring org.wso2.carbon to org.apache.stratos

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/account_mgt.jsp
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/account_mgt.jsp b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/account_mgt.jsp
new file mode 100644
index 0000000..3c693a6
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/account_mgt.jsp
@@ -0,0 +1,526 @@
+<!--
+~ Copyright (c) 2005-2010, 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.
+-->
+<%@ page import="org.apache.stratos.account.mgt.AccountInfoBean" %>
+<%@ page import="org.wso2.carbon.account.mgt.ui.clients.AccountMgtClient" %>
+<%@ page import="org.wso2.carbon.account.mgt.ui.clients.UsagePlanClient" %>
+<%@ page import="org.wso2.carbon.stratos.common.constants.StratosConstants" %>
+<%@ page import="org.wso2.carbon.stratos.common.util.CommonUtil" %>
+<%@ page import="org.wso2.carbon.registry.core.exceptions.RegistryException" %>
+<%@ page import="org.wso2.carbon.utils.multitenancy.MultitenantConstants" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar" prefix="carbon" %>
+<link rel="stylesheet" type="text/css" href="../yui/assets/yui.css">
+<link rel="stylesheet" type="text/css" href="../yui/build/menu/assets/skins/sam/menu.css"/>
+<link rel="stylesheet" type="text/css" href="../yui/build/button/assets/skins/sam/button.css"/>
+<link rel="stylesheet" type="text/css"
+      href="../yui/build/container/assets/skins/sam/container.css"/>
+<link rel="stylesheet" type="text/css"
+      href="../yui/build/autocomplete/assets/skins/sam/autocomplete.css"/>
+<link rel="stylesheet" type="text/css" href="../yui/build/editor/assets/skins/sam/editor.css"/>
+<link rel="stylesheet" type="text/css" href="../account-mgt/css/account_mgt.css"/>
+<jsp:include page="../registry_common/registry_common-i18n-ajaxprocessor.jsp"/>
+<script type="text/javascript" src="../registry_common/js/registry_validation.js"></script>
+<script type="text/javascript" src="../registry_common/js/registry_common.js"></script>
+<script type="text/javascript" src="../ajax/js/prototype.js"></script>
+<script type="text/javascript" src="../account-mgt/js/account_mgt.js"></script>
+<carbon:jsi18n
+        resourceBundle="org.wso2.carbon.account.mgt.ui.i18n.JSResources"
+        request="<%=request%>"/>
+<fmt:bundle basename="org.wso2.carbon.account.mgt.ui.i18n.Resources">
+
+<%
+    if ("true".equals(session.getAttribute("domain-validation-failure"))) {
+        session.removeAttribute("domain-validation-failure");
+%>
+
+<script type="text/javascript">
+    jQuery(document).ready(function() {
+        CARBON.showWarningDialog(jsi18n["domain.validation.failed"]);
+    });
+</script>
+<%
+    }
+    if ("true".equals(session.getAttribute("domain-validation-success"))) {
+        session.removeAttribute("domain-validation-success");
+%>
+
+<script type="text/javascript">
+    jQuery(document).ready(function() {
+        CARBON.showWarningDialog(jsi18n["successfully.validated"]);
+    });
+</script>
+<%
+    }
+
+
+    if ("false".equals(session.getAttribute("temp-domain-available"))) {
+        session.removeAttribute("temp-domain-available");
+%>
+
+<script type="text/javascript">
+    jQuery(document).ready(function() {
+        CARBON.showWarningDialog(jsi18n["domain.unavailable"]);
+    });
+</script>
+<%
+    }
+%>
+<%
+
+    String contactEmail = "";
+    String firstname = "";
+    String lastname = "";
+    String tenantDomain = "";
+    String usagePlan = "";
+    boolean isDomainValidated;
+    boolean isEmailValidated = false;
+    AccountMgtClient client;
+    try {
+        client = new AccountMgtClient(config, session);
+        contactEmail = client.getContact();
+        AccountInfoBean accountInfoBean = client.getFullname();
+        firstname = accountInfoBean.getFirstname();
+        lastname = accountInfoBean.getLastname();
+        if (firstname == null) {
+            firstname = "";
+        }
+        if (lastname == null) {
+            lastname = "";
+        }
+        isDomainValidated = client.isDomainValidated();
+        isEmailValidated = client.isEmailValidated();
+
+
+        if ("true".equals(request.getParameter("isUpdate"))) {
+            usagePlan = request.getParameter("selectedUsagePlan");
+            if (org.wso2.carbon.account.mgt.ui.utils.Util.updateUsagePlan(request, config, session)) {
+%>
+<script type="text/javascript">
+    //        window.location.href="../admin/logout_action.jsp";
+    CARBON.showInfoDialog("Your usage plan has been updated.");
+</script>
+<%
+} else {
+%>
+<script type="text/javascript">
+    //        window.location.href="../admin/logout_action.jsp";
+    CARBON.showInfoDialog("Error occured while updating usage plan.");
+</script>
+<%
+        }
+    }
+    usagePlan = org.wso2.carbon.account.mgt.ui.utils.Util.getUsagePlanName(config, session);
+    if ("true".equals(request.getParameter("isDeactivated"))) {
+        client.deactivate();
+        tenantDomain = (String) session.getAttribute("tenantDomain");
+%>
+
+<script type="text/javascript">
+    //        window.location.href="../admin/logout_action.jsp";
+    CARBON.showInfoDialog("Your account has been deactivated.",
+                         function() {
+                             window.location.href = "../admin/logout_action.jsp"
+                         },
+                         function() {
+                             window.location.href = "../admin/logout_action.jsp"
+                         });
+</script>
+<%
+    }
+} catch (RegistryException e) {
+%>
+<div>Error in getting account management information.</div>
+<%
+        return;
+    }
+
+    String currentDomain = (String) session.getAttribute(MultitenantConstants.TENANT_DOMAIN);
+
+    if (session.getAttribute("submit-firstname") != null) {
+        firstname = (String) session.getAttribute("submit-firstname");
+        session.setAttribute("submit-firstname", null);
+    }
+    if (session.getAttribute("submit-lastname") != null) {
+        lastname = (String) session.getAttribute("submit-lastname");
+        session.setAttribute("submit-lastname", null);
+    }
+
+%>
+
+<carbon:breadcrumb label="resources"
+                   resourceBundle="org.wso2.carbon.account.mgt.ui.i18n.Resources"
+                   topPage="true" request="<%=request%>"/>
+<div id="middle">
+
+<div id="workArea">
+<h2><fmt:message key="account.mgt.title"/></h2>
+
+
+<table class="styledLeft">
+    <thead>
+    <tr>
+        <th><fmt:message key="contact.information"/></th>
+    </tr>
+    </thead>
+    <tbody>
+
+    <tr>
+        <td class="nopadding">
+            <form method="POST" action="update_contact_ajaxprocessor.jsp">
+                <table class="normal-nopadding" cellspacing="0">
+                    <tbody>
+                    <tr>
+                        <td width="200px"><fmt:message key="contact.email"/><span
+                                class="required">*</span></td>
+                        <td colspan="2">
+                            <input type="text" name="email" id="email" style="width:400px"
+                                   value="<%=contactEmail%>"/> <span id="busyContact">&nbsp;</span>
+                            <span style="visibility:hidden"
+                                  id="old-email"><%=isEmailValidated ? contactEmail : ""%></span>
+                        </td>
+                    </tr>
+                    <%
+                        if (isEmailValidated) {
+                    %>
+
+                    <tr>
+                        <td></td>
+                        <td colspan="2"><input onclick="updateContact()" type="button"
+                                               value="<fmt:message key="update.contact"/>"/></td>
+                    </tr>
+                    <%
+                    } else {
+                    %>
+                    <tr>
+                        <td colspan="3">
+                            <div class="not-validated"><img src="images/wrong.gif" alt="Validated"/>Your
+                                email is not validated.
+                                Please validate it from here.
+                            </div>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td></td>
+                        <td colspan="2"><input onclick="updateContact()" type="button"
+                                               value="<fmt:message key="validate.contact"/>"/></td>
+                    </tr>
+                    <%
+                        }
+                    %>
+
+                    <tr>
+                        <td colspan="3">
+                            <div class="table-spacer">&nbsp;</div>
+                        </td>
+                    </tr>
+                    </tbody>
+                </table>
+            </form>
+        </td>
+
+    </tr>
+
+    </tbody>
+</table>
+
+
+<table class="styledLeft">
+    <thead>
+    <tr>
+        <th><fmt:message key="admin.information"/></th>
+    </tr>
+    </thead>
+    <tbody>
+
+    <tr>
+        <td class="nopadding">
+            <form id="update_profile_form" action="update_profile_processor.jsp" method="POST">
+                <table class="normal-nopadding" cellspacing="0">
+                    <tbody>
+                    <tr>
+                        <td width="200px"><fmt:message key="firstname"/><span
+                                class="required">*</span></td>
+                        <td colspan="2">
+                            <input type="text" name="firstname" id="firstname" style="width:400px"
+                                   value="<%=firstname%>"/>
+                            <span style="visibility:hidden" id="old-firstname"><%=firstname%></span>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td width="200px"><fmt:message key="lastname"/><span
+                                class="required">*</span></td>
+                        <td colspan="2">
+                            <input type="text" name="lastname" id="lastname" style="width:400px"
+                                   value="<%=lastname%>"/>
+                            <span style="visibility:hidden" id="old-lastname"><%=lastname%></span>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td></td>
+                        <td colspan="2"><input onclick="updateProfile()" type="button"
+                                               value="<fmt:message key="update.profile"/>"/></td>
+                    </tr>
+                    <tr>
+                        <td colspan="3">
+                            <div class="table-spacer">&nbsp;</div>
+                        </td>
+                    </tr>
+                    </tbody>
+                </table>
+            </form>
+        </td>
+
+    </tr>
+
+    </tbody>
+</table>
+
+
+<table class="styledLeft">
+    <thead>
+    <tr>
+        <th><fmt:message key="validate.domain.title"/></th>
+    </tr>
+    </thead>
+    <tbody>
+
+    <tr>
+        <td class="nopadding">
+            <form onsubmit="return domainSelected();" id="validateDomainForm" method="POST"
+                  action="validate_domain_ajaxprocessor.jsp">
+                <table class="normal-nopadding" cellspacing="0">
+                    <tbody>
+                    <tr>
+                        <td width="200px"><fmt:message key="current.domain"/></td>
+                        <td colspan="2"><input readonly="true" type="text" name="domain" id="domain"
+                                               style="width:400px" value="<%=currentDomain%>"/>
+                        </td>
+                    </tr>
+
+                    <%
+                        if (isDomainValidated) {
+                    %>
+                    <tr>
+                        <td colspan="3">
+                            <div class="validated"><img src="images/right.gif" alt="Validated"/> The
+                                ownership of your domain is already validated.
+                            </div>
+                        </td>
+                    </tr>
+
+                    <%
+                    } else {
+                    %>
+                    <tr>
+                        <td colspan="3">
+                            <div class="not-validated"><img src="images/wrong.gif" alt="Validated"/>
+                                The ownership of your
+                                domain is not validated. You can validate it from here.
+                            </div>
+                        </td>
+                    </tr>
+
+                    <tr>
+                        <td></td>
+                        <td colspan="2"><input type="submit"
+                                               value="<fmt:message key="validate.domain"/>"/></td>
+                    </tr>
+                    <tr>
+                        <td colspan="3">
+                            <div class="table-spacer">&nbsp;</div>
+                        </td>
+                    </tr>
+
+                    <%
+                        }
+                    %>
+                    </tbody>
+                </table>
+            </form>
+        </td>
+    </tr>
+
+    </tbody>
+</table>
+
+
+<table class="styledLeft">
+    <thead>
+    <tr>
+        <th><fmt:message key="deactivate.account.title"/></th>
+    </tr>
+    </thead>
+    <tbody>
+
+
+    <tr>
+        <td class="nopadding">
+            <form method="POST" id="deactivate_form" action="account_mgt.jsp">
+                <input type="hidden" name="isDeactivated" value="true"/>
+                <table class="normal-nopadding" cellspacing="0">
+                    <tbody>
+                    <tr>
+                        <td colspan="3"><fmt:message key="deactivate.account.msg"/></td>
+                    </tr>
+                    <tr>
+                        <td width="200px"></td>
+                        <td colspan="2"><input onclick="return deactivate('<%=currentDomain%>');"
+                                               type="button"
+                                               value="<fmt:message key="deactivate.account.btn"/>"/>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td colspan="3">
+                            <div class="table-spacer">&nbsp;</div>
+                        </td>
+                    </tr>
+                    </tbody>
+                </table>
+            </form>
+        </td>
+    </tr>
+
+    </tbody>
+</table>
+
+
+<table class="styledLeft">
+    <thead>
+    <tr>
+        <th><fmt:message key="usage.plan.information"/>
+            <% if (usagePlan.length() > 10) {
+                String planName = usagePlan;
+            %>
+            - Your Current Usage Plan is : <%=planName%>
+            <%}%>
+        </th>
+    </tr>
+    </thead>
+    <tbody>
+
+<script type="text/javascript">
+<%
+    boolean chargeOnRegistration = CommonUtil.isChargedOnRegistration();
+%>
+
+function updatePlan(plan, existingPlan, regTenantDomain) {
+    var newPlan = plan.options[plan.selectedIndex].value;
+    if(newPlan==existingPlan){
+        CARBON.showInfoDialog("Please select the new plan before updating");
+    }else{
+        sessionAwareFunction(function() {
+        CARBON.showConfirmationDialog("Are you sure you want to update your UsagePlan ? "
+                                      , function() {
+
+
+
+
+
+            var submitForm = document.getElementById("usagePlanUpdate_form");
+            submitForm.submit();
+        });
+    }, "Session timed out. Please login again.");
+    }
+}
+</script>
+
+    <tr>
+        <td class="nopadding">
+            <form method="POST" id="usagePlanUpdate_form"
+            <% if (chargeOnRegistration){ %>
+            action="init_payment_ajaxprocessor.jsp"
+            <% } else { %>
+            action="account_mgt.jsp"
+            <% } %>
+            >
+                <input type="hidden" name="isUpdate" value="true"/>
+                <table class="normal-nopadding" cellspacing="0">
+                    <tbody>
+                    <td><fmt:message key="select.usage.plan.for.tenant"/></td>
+                    <td>
+                        <select name="selectedUsagePlan" id="selectedUsagePlan">
+                        </select>
+                        <a href="<%=CommonUtil.getStratosConfig().getUsagePlanURL()%>"
+                           target="_blank">
+                            <b>Pricing Info</b></a>
+                    </td>
+
+
+                    </tr>
+                    <tr>
+                        <td colspan="2"><fmt:message key="select.package.message"/>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td width="200px"></td>
+                        <td colspan="2"><input
+                                onclick="return updatePlan(document.getElementById('selectedUsagePlan'), '<%=usagePlan%>', '<%=currentDomain%>');"
+                                type="button"
+                                value="Update Plan"/>
+                        </td>
+                    </tr>
+                    </tbody>
+                </table>
+            </form>
+    </tbody>
+</table>
+</div>
+</div>
+</fmt:bundle>
+<script type="text/javascript">
+
+    jQuery(document).ready(
+                          function() {
+                              jQuery.ajax({
+                                  type: 'POST',
+                                  url: 'get_package_info_ajaxprocessor.jsp',
+                                  dataType: 'json',
+                                  data: 'plan=0',
+                                  async: false,
+                                  success: function(data) {
+                                      packageInfo = data;
+                                  },
+                                  error:function (xhr, ajaxOptions, thrownError) {
+                                      CARBON.showErrorDialog('Could not get package information.');
+                                  }
+                              });
+
+                              var charge;
+                              var name;
+                              for (var i = 0; i < packageInfo.length; i++) {
+                                  charge = packageInfo[i].subscriptionCharge;
+                                  name = packageInfo[i].name;
+                                  if (name == '<%=org.wso2.carbon.account.mgt.ui.utils.Util.getUsagePlanName(config, session)%>') {
+                                      option = document.createElement("option");
+                                      option.value = name;
+                                      option.selected = name;
+                                      option.innerHTML = name;
+                                      document.getElementById('selectedUsagePlan').appendChild(option);
+
+                                  }
+                                  else {
+                                      option = document.createElement("option");
+                                      option.value = name;
+                                      option.innerHTML = name
+                                      document.getElementById('selectedUsagePlan').appendChild(option);
+                                  }
+                              }
+                          }
+            );
+</script>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/css/account_mgt.css
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/css/account_mgt.css b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/css/account_mgt.css
new file mode 100644
index 0000000..9dd4170
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/css/account_mgt.css
@@ -0,0 +1,15 @@
+div.not-validated {
+    color: #f00;
+    padding: 15px 0px 10px 0px;
+}
+
+div.validated {
+    font-color: #058000;
+    padding: 15px 0px 10px 0px;
+}
+
+
+div.table-spacer {
+    margin: 5px;
+    clear:both;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/css/update_profile.css
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/css/update_profile.css b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/css/update_profile.css
new file mode 100644
index 0000000..c3878ae
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/css/update_profile.css
@@ -0,0 +1,29 @@
+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-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 { }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/deactivate_account_ajaxprocessor.jsp
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/deactivate_account_ajaxprocessor.jsp b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/deactivate_account_ajaxprocessor.jsp
new file mode 100644
index 0000000..fabc967
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/deactivate_account_ajaxprocessor.jsp
@@ -0,0 +1,38 @@
+<!--
+ ~ Copyright (c) 2005-2010, 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.
+ -->
+<%@ page import="org.wso2.carbon.registry.core.exceptions.RegistryException" %>
+<%@ page import="org.wso2.carbon.account.mgt.ui.clients.AccountMgtClient" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%
+AccountMgtClient client;
+try {
+    client = new AccountMgtClient(config, session);
+    client.deactivate();
+
+    // redirect to the carbon login page
+    %><script type="text/javascript">
+        CARBON.showInfoDialog("Your account has been deactivated.",
+                function() {window.location.href="../admin/logout_action.jsp"},
+                function() {window.location.href="../admin/logout_action.jsp"});
+    </script><%
+} catch (RegistryException e) {
+%>
+  <div>Error in deactivating the account.</div>
+<%
+}
+%>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/docs/aboutUsagePlans.html
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/docs/aboutUsagePlans.html b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/docs/aboutUsagePlans.html
new file mode 100644
index 0000000..791b867
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/docs/aboutUsagePlans.html
@@ -0,0 +1,104 @@
+<!--
+ ~ Copyright (c) 2005-2010, 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.
+ -->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Select Usage Plan For Tenant - User Guide</title>
+  <link href="../../admin/css/documentation.css" rel="stylesheet" type="text/css" media="all" />
+</head>
+
+<body>
+
+
+ <h1>Select Usage Plan For Tenant</h1>
+
+
+ <h2> <b> Usage Plans(Subscriptions)</b></h2>
+
+<p>
+    According to the usage plan that you selected you will get different volume of service and registry
+    bandwidths other services that available for tenants.By selecting right usage plan that suits
+    your requirements you can get maximum profit
+</p>
+
+
+<h2><b>Multitenancy Free</b></h2>
+<p>
+  This is the free usage plan.You will get limited amount of resources.This package is
+  best suite for evaluation and tests.
+</p>
+ <h2><b>Multitenancy Small</b></h2>
+<p>
+   This package is best suite for small business.
+</p>
+<h2><b>Multitenancy Medium</b></h2>
+<p>
+   This usage plan suites for medium scale business.You will get average amount of resources
+    with this package.
+</p>
+<h2><b>Multitenancy Large</b></h2>
+<p>
+   This is the premium usage plan.You will get maximum resources form this plan.
+   This is best suite to large scale business.
+</p>
+
+<p>
+
+   Usage Plan summery
+<table border="1">
+<tr>
+<td>Usage Plan Name</td>
+<td>Number Of Users</td>
+<td>Registry Bandwidth (Mb) </td>
+<td>Service BandWidth (Mb) </td>
+<td>Cost Per Month ($)</td>
+</tr>
+<tr>
+<td>Multitenancy Free</td>
+<td>5</td>
+<td>10</td>
+<td>10</td>
+<td>10</td>
+</tr>
+<tr>
+<td>Multitenancy Small</td>
+<td>10</td>
+<td>25</td>
+<td>25</td>
+<td>25</td>
+</tr>
+<tr>
+<td>Multitenancy Medium</td>
+<td>20</td>
+<td>100</td>
+<td>100</td>
+<td>100</td>
+</tr>
+<tr>
+<td>Multitenancy Large</td>
+<td>50</td>
+<td>200</td>
+<td>200</td>
+<td>200</td>
+</tr>
+</table> 
+<div><strong>Figure1: Usage Plan Summery Table</strong></div>
+</p>
+</body>
+
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/docs/images/account-mgt.png
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/docs/images/account-mgt.png b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/docs/images/account-mgt.png
new file mode 100644
index 0000000..f67777f
Binary files /dev/null and b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/docs/images/account-mgt.png differ

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/docs/userguide.html
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/docs/userguide.html b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/docs/userguide.html
new file mode 100644
index 0000000..fd04465
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/docs/userguide.html
@@ -0,0 +1,44 @@
+<!--
+ ~ Copyright (c) 2005-2010, 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.
+ -->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Stratos Account Managment- User Guide</title>
+  <link href="../../admin/css/documentation.css" rel="stylesheet" type="text/css" media="all" />
+</head>
+
+<body>
+<h1>Stratos Account Management</h1>
+
+<p>
+You can use this form to
+<ul>
+    <li>Update or validate the contact information</li>
+    <li>Deactivate the account</li>
+    <li>Validate the domain name ownership (If you have not already done it)</li>
+</ul>
+</p>
+
+<p>
+<img src="images/account-mgt.png" alt="Account Management Page"/>
+<div><strong>Figure1: Account Management Page</strong></div>
+</p>
+
+</body>
+
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/get_package_info_ajaxprocessor.jsp
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/get_package_info_ajaxprocessor.jsp b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/get_package_info_ajaxprocessor.jsp
new file mode 100644
index 0000000..8a52783
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/get_package_info_ajaxprocessor.jsp
@@ -0,0 +1,39 @@
+<%--
+~ Copyright (c) 2005-2010, 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.
+--%>
+<%@ page import="org.wso2.carbon.ui.CarbonUIUtil" %>
+<%@ page import="org.json.JSONArray" %>
+<%@ page import="org.wso2.carbon.account.mgt.ui.clients.PackageInfoServiceClient" %>
+<%@ page import="org.wso2.carbon.utils.ServerConstants" %>
+<%@ page import="org.apache.axis2.context.ConfigurationContext" %>
+<%@ page import="org.wso2.carbon.CarbonConstants" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar" prefix="carbon" %>
+
+<%
+
+    String backendServerUrl = CarbonUIUtil.getServerURL(config.getServletContext(), session);
+    String cookie = (String) session.getAttribute(ServerConstants.ADMIN_SERVICE_COOKIE);
+    ConfigurationContext configContext =
+            (ConfigurationContext) config.getServletContext().getAttribute(CarbonConstants.CONFIGURATION_CONTEXT);
+
+    PackageInfoServiceClient client = new PackageInfoServiceClient(cookie, backendServerUrl, configContext);
+    JSONArray packageInfoArray = client.getBillingPackagesJsonArray();
+
+    out.write(packageInfoArray.toString());
+%>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/account-mgt-icon.gif
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/account-mgt-icon.gif b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/account-mgt-icon.gif
new file mode 100644
index 0000000..7cd3939
Binary files /dev/null and b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/account-mgt-icon.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/ajax-loader.gif
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/ajax-loader.gif b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/ajax-loader.gif
new file mode 100644
index 0000000..f2a1bc0
Binary files /dev/null and b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/ajax-loader.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/right.gif
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/right.gif b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/right.gif
new file mode 100644
index 0000000..72a64c9
Binary files /dev/null and b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/right.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/wrong.gif
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/wrong.gif b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/wrong.gif
new file mode 100644
index 0000000..77e1f2c
Binary files /dev/null and b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/images/wrong.gif differ

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/init_payment_ajaxprocessor.jsp
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/init_payment_ajaxprocessor.jsp b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/init_payment_ajaxprocessor.jsp
new file mode 100644
index 0000000..088fb32
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/init_payment_ajaxprocessor.jsp
@@ -0,0 +1,99 @@
+<!--
+ ~ Copyright (c) 2005-2010, 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.
+ -->
+<%@ page import="org.apache.axis2.context.ConfigurationContext" %>
+<%@ page import="org.json.JSONArray"%>
+<%@ page import="org.wso2.carbon.CarbonConstants" %>
+<%@ page import="org.wso2.carbon.register.ui.clients.PackageInfoServiceClient" %>
+<%@ page import="org.wso2.carbon.stratos.common.util.CommonUtil" %>
+<%@ page import="org.wso2.carbon.ui.CarbonUIUtil" %>
+<%@ page import="org.wso2.carbon.utils.ServerConstants" %>
+<%@ page import="java.util.Collections" %>
+<%@ page import="java.util.Enumeration" %>
+<%@ page import="java.util.Iterator" %>
+<%@ page import="java.util.List" %>
+<%@ page import="java.util.Map" %>
+<%@ page import="org.json.JSONException" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar" prefix="carbon" %>
+<carbon:jsi18n
+		resourceBundle="org.wso2.carbon.register.ui.i18n.JSResources"
+		request="<%=request%>" />
+<script type="text/javascript" src="../registry_common/js/registry_validation.js"></script>
+<script type="text/javascript" src="../registry_common/js/registry_common.js"></script>
+<script type="text/javascript" src="../ajax/js/prototype.js"></script>
+<script type="text/javascript" src="../admin/js/jquery.js"></script>
+<script type="text/javascript" src="../admin/js/jquery.form.js"></script>
+<script type="text/javascript" src="../dialog/js/jqueryui/jquery-ui.min.js"></script>
+<%
+    String tenantDomain = (String) session.getAttribute("tenantDomain");
+    // The actual usage plan the tenant selects in select_usage_plan.jsp
+    String selectedUsagePlan = request.getParameter("selectedUsagePlan");
+    session.setAttribute("selectedUsagePlan", selectedUsagePlan);
+
+    String backendServerUrl = CarbonUIUtil.getServerURL(config.getServletContext(), session);
+    String cookie = (String) session.getAttribute(ServerConstants.ADMIN_SERVICE_COOKIE);
+    ConfigurationContext configContext =
+            (ConfigurationContext)config.getServletContext().getAttribute(CarbonConstants.CONFIGURATION_CONTEXT);
+
+    PackageInfoServiceClient client = new PackageInfoServiceClient(cookie, backendServerUrl,configContext);
+    JSONArray packageInfoArray = client.getBillingPackagesJsonArray();
+    String amount = "0";
+
+    for (int i = 0; i < packageInfoArray.length(); i++) {
+        try {
+            if (packageInfoArray.getJSONObject(i).getString("name").equals(selectedUsagePlan)) {
+                amount = packageInfoArray.getJSONObject(i).getString("subscriptionCharge");
+            }
+        } catch (JSONException e) {
+            //
+        }
+    }
+
+    String paypalUrl = CommonUtil.getStratosConfig().getPaypalUrl();
+    String adminConsoleURL = CarbonUIUtil.getAdminConsoleURL(request);
+    adminConsoleURL = adminConsoleURL.substring(0, adminConsoleURL.indexOf("carbon"));
+    String successUrl = adminConsoleURL + "carbon/payment/registration_payment.jsp";
+    String cancelUrl = adminConsoleURL + "carbon/account-mgt/account_mgt.jsp";
+%>
+
+<script type="text/javascript">
+
+
+        var successUrl = '<%=successUrl%>';
+        var cancelUrl = '<%=cancelUrl%>';
+        var amount = '<%=amount%>';
+        var tenantDomain = '<%=tenantDomain%>';
+        jQuery.ajax({
+            type: 'GET',
+            url: '../payment/setEC-ajaxprocessor.jsp',
+            data: 'successUrl=' + successUrl + '&cancelUrl=' + cancelUrl + '&amount=' + amount + '&tenantDomain=' + tenantDomain,
+            dataType: 'json',
+            async: false,
+            success: function(msg) {
+                var resp = msg;
+                if(resp.ack=='Success'){
+                    location.href = '<%=paypalUrl%>' + resp.token;
+                }else{
+                    location.href = cancelUrl;
+                }
+            },
+            error:function () {
+                location.href = cancelUrl;
+            }
+        });
+</script>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/js/account_mgt.js
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/js/account_mgt.js b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/js/account_mgt.js
new file mode 100644
index 0000000..c957312
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/js/account_mgt.js
@@ -0,0 +1,214 @@
+function deactivate(domain) {
+    sessionAwareFunction(function() {
+        CARBON.showConfirmationDialog("Are you sure you want to deactivate the domain: " +
+                                      domain + ".", function() {
+            var submitForm = document.getElementById("deactivate_form");
+            submitForm.submit();
+        });
+    }, "Session timed out. Please login again.");
+}
+
+function checkDomain(nname)
+{
+
+    var error = "";
+    error += validateEmpty(nname, "Domain");
+    if (error != "") {
+        return error;
+    }
+    //var arr = new Array(
+    //'.com','.net','.org','.biz','.coop','.info','.museum','.name',
+    //'.pro','.edu','.gov','.int','.mil','.ac','.ad','.ae','.af','.ag',
+    //'.ai','.al','.am','.an','.ao','.aq','.ar','.as','.at','.au','.aw',
+    //'.az','.ba','.bb','.bd','.be','.bf','.bg','.bh','.bi','.bj','.bm',
+    //'.bn','.bo','.br','.bs','.bt','.bv','.bw','.by','.bz','.ca','.cc',
+    //'.cd','.cf','.cg','.ch','.ci','.ck','.cl','.cm','.cn','.co','.cr',
+    //'.cu','.cv','.cx','.cy','.cz','.de','.dj','.dk','.dm','.do','.dz',
+    //'.ec','.ee','.eg','.eh','.er','.es','.et','.fi','.fj','.fk','.fm',
+    //'.fo','.fr','.ga','.gd','.ge','.gf','.gg','.gh','.gi','.gl','.gm',
+    //'.gn','.gp','.gq','.gr','.gs','.gt','.gu','.gv','.gy','.hk','.hm',
+    //'.hn','.hr','.ht','.hu','.id','.ie','.il','.im','.in','.io','.iq',
+    //'.ir','.is','.it','.je','.jm','.jo','.jp','.ke','.kg','.kh','.ki',
+    //'.km','.kn','.kp','.kr','.kw','.ky','.kz','.la','.lb','.lc','.li',
+    //'.lk','.lr','.ls','.lt','.lu','.lv','.ly','.ma','.mc','.md','.mg',
+    //'.mh','.mk','.ml','.mm','.mn','.mo','.mp','.mq','.mr','.ms','.mt',
+    //'.mu','.mv','.mw','.mx','.my','.mz','.na','.nc','.ne','.nf','.ng',
+    //'.ni','.nl','.no','.np','.nr','.nu','.nz','.om','.pa','.pe','.pf',
+    //'.pg','.ph','.pk','.pl','.pm','.pn','.pr','.ps','.pt','.pw','.py',
+    //'.qa','.re','.ro','.rw','.ru','.sa','.sb','.sc','.sd','.se','.sg',
+    //'.sh','.si','.sj','.sk','.sl','.sm','.sn','.so','.sr','.st','.sv',
+    //'.sy','.sz','.tc','.td','.tf','.tg','.th','.tj','.tk','.tm','.tn',
+    //'.to','.tp','.tr','.tt','.tv','.tw','.tz','.ua','.ug','.uk','.um',
+    //'.us','.uy','.uz','.va','.vc','.ve','.vg','.vi','.vn','.vu','.ws',
+    //'.wf','.ye','.yt','.yu','.za','.zm','.zw');
+
+    var mai = nname.value;
+
+    var val = true;
+    var dot = mai.lastIndexOf(".");
+    var dname = mai.substring(0, dot);
+    var ext = mai.substring(dot, mai.length);
+    //alert(ext);
+
+    if (ext.indexOf("-trial") >= 0 || ext.indexOf("-unverified") >= 0) {
+        // we are not allowing to create a domain with -trial or -unverified is in the extension
+        return "The domain name you entered is not valid. Please enter a valid domain name.";
+    }
+
+    if (ext.indexOf("/") >= 0 || ext.indexOf("\\") >= 0) {
+        return "The '/' and '\\' is not allowed in a domain name";
+    }
+
+    if (dot > 1 && dot < 57)
+    {
+        //	for(var i=0; i<arr.length; i++)
+        //	{
+        //	  if(ext == arr[i])
+        //	  {
+        //	 	val = true;
+        //		break;
+        //	  }
+        //	  else
+        //	  {
+        //	 	val = false;
+        //	  }
+        //	}
+        if (!val)
+        {
+            error = "Your domain extension " + ext + " is not correct";
+            return error;
+        }
+        else
+        {
+            for (var j = 0; j < dname.length; j++)
+            {
+                var dh = dname.charAt(j);
+                var hh = dh.charCodeAt(0);
+                if ((hh > 47 && hh < 59) || (hh > 64 && hh < 91) || (hh > 96 && hh < 123) || hh == 45 || hh == 46)
+                {
+                    if ((j == 0 || j == dname.length - 1) && hh == 45)
+                    {
+                        error = "Domain name should not begin and end with '-'";
+                        return error;
+                    }
+                }
+                else {
+                    error = "Your domain name should not have special characters";
+                    return error;
+                }
+            }
+        }
+    }
+    else
+    {
+        error = "Your Domain name is too short/long or you should have an extension to your domain.";
+        return error;
+    }
+
+    return error;
+}
+
+function clearDomainConfirmationMsg() {
+    var domain_confirmation_div = document.getElementById("domain-confirmation-msg");
+    domain_confirmation_div.innerHTML = "";
+}
+
+
+function domainSelected() {
+    var domain = document.getElementById('domainToValidate');
+
+    var reason = validateEmpty(domain, "Domain");
+    if (reason == "") {
+        reason += checkDomain(domain);
+    }
+
+    if (reason != "") {
+        CARBON.showWarningDialog(reason);
+        return false;
+    }
+    sessionAwareFunction(function() {
+        var validateDomainForm = document.getElementById('validateDomainForm');
+        validateDomainForm.submit();
+    }, "Session timed out. Please login again.");
+
+}
+
+function updateContact() {
+    var email = document.getElementById("email");
+    var oldEmail = document.getElementById("old-email");
+    var reason = "";
+    if (reason == "") {
+        reason += validateEmpty(email, "Email");
+    }
+    if (reason == "") {
+        reason += validateEmail(email);
+    }
+
+    if (reason == "" && email.value == oldEmail.innerHTML) {
+        reason += "You have not updated your email yet."
+    }
+
+    if (reason != "") {
+        CARBON.showWarningDialog(reason);
+        return;
+    }
+    // now call the updateContact.
+
+    sessionAwareFunction(function() {
+        debugger;
+        var busyContactPlaceHolder = document.getElementById("busyContact");
+        busyContactPlaceHolder.innerHTML = "<img src=\"images/ajax-loader.gif\"/>";
+
+        new Ajax.Request('../account-mgt/update_contact_ajaxprocessor.jsp',
+        {
+            method:'post',
+            parameters: {email: email.value},
+
+            onSuccess: function(transport) {
+                var returnValue = transport.responseText;
+                busyContactPlaceHolder.innerHTML = "";
+
+                if (returnValue.search(/----failed----/) == -1) {
+                    CARBON.showWarningDialog("We have sent an email to validate the contact details you just entered. Please follow " +
+                                             "the instructions in there to submit the updated contact details");
+                }
+                else {
+                    CARBON.showWarningDialog("Updating the contact information failed.");
+                }
+            },
+
+            onFailure: function(transport) {
+                busyContactPlaceHolder.innerHTML = "";
+                CARBON.showWarningDialog("Updating the contact information failed.");
+            }
+        });
+    }, "Session timed out. Please login again.");
+}
+
+
+function updateProfile() {
+    var update_profile_form = document.getElementById("update_profile_form");
+    var firstname = document.getElementById("firstname");
+    var oldFirstname = document.getElementById("old-firstname");
+    var lastname = document.getElementById("lastname");
+    var oldLastname = document.getElementById("old-lastname");
+
+    var reason = "";
+
+    if (reason == "") {
+        reason += validateEmpty(firstname, "First Name");
+    }
+    if (reason == "") {
+        reason += validateEmpty(lastname, "Last Name");
+
+        if ((reason == "" && firstname.value == oldFirstname.innerHTML) &&
+            (reason == "" && lastname.value == oldLastname.innerHTML)) {
+            reason += "You have not updated your firstname or last name yet.";
+        }
+    }
+    if (reason != "") {
+        CARBON.showWarningDialog(reason);
+        return;
+    }
+    update_profile_form.submit();
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_contact_ajaxprocessor.jsp
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_contact_ajaxprocessor.jsp b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_contact_ajaxprocessor.jsp
new file mode 100644
index 0000000..58a323b
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_contact_ajaxprocessor.jsp
@@ -0,0 +1,35 @@
+<!--
+ ~ Copyright (c) 2005-2010, 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.
+ -->
+<%@ page import="org.wso2.carbon.registry.core.exceptions.RegistryException" %>
+<%@ page import="org.wso2.carbon.account.mgt.ui.clients.AccountMgtClient" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%
+AccountMgtClient client;
+try {
+    String email = request.getParameter("email");
+    client = new AccountMgtClient(config, session);
+    client.updateContact(email);
+
+} catch (RegistryException e) {
+%>
+----failed----
+<%
+    return;
+}
+
+%>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_profile_processor.jsp
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_profile_processor.jsp b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_profile_processor.jsp
new file mode 100644
index 0000000..d0158c9
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_profile_processor.jsp
@@ -0,0 +1,62 @@
+<!--
+ ~ Copyright (c) 2005-2010, 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.
+ -->
+<%@ page import="org.wso2.carbon.registry.core.exceptions.RegistryException" %>
+<%@ page import="org.wso2.carbon.account.mgt.ui.clients.AccountMgtClient" %>
+<%@ page import="org.wso2.carbon.account.mgt.ui.utils.Util" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar" prefix="carbon" %>
+<carbon:jsi18n
+		resourceBundle="org.wso2.carbon.register.ui.i18n.JSResources"
+		request="<%=request%>" />
+<link href="css/update_profile.css" rel="stylesheet" type="text/css" media="all"/>
+
+
+<%
+    Boolean isUpdated;
+
+    try {
+    isUpdated = Util.updateFullname(request, config, session);
+    }
+    catch (Exception e) {
+    isUpdated  = false;
+    }
+
+%>
+<%        if (isUpdated) { %>
+
+    <div id="middle">
+
+       <h2>
+           Profile Successfully Updated.
+       </h2>
+
+
+   <%   }  else { %>
+
+    <div id="middle">
+
+       <h2>
+           Profile Update Failed
+       </h2>
+
+        <% } %>
+        <p>
+            Go to  <a href="../admin/index.jsp"> home page. </a>
+        </p>
+      </div>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_verifier.jsp
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_verifier.jsp b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_verifier.jsp
new file mode 100644
index 0000000..2b35fc3
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_verifier.jsp
@@ -0,0 +1,56 @@
+<!--
+ ~ Copyright (c) 2005-2010, 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.
+ -->
+<%@ page import="org.wso2.carbon.CarbonConstants" %>
+<%@ page import="org.wso2.carbon.account.mgt.ui.clients.AccountMgtClient" %>
+<%@ page import="org.wso2.carbon.account.mgt.ui.utils.Util" %>
+<%@ page import="org.wso2.carbon.registry.core.exceptions.RegistryException" %>
+<%@ page import="org.wso2.carbon.account.mgt.ui.clients.EmailValidationClient" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar" prefix="carbon" %>
+<carbon:jsi18n
+        resourceBundle="org.wso2.carbon.register.ui.i18n.JSResources"
+        request="<%=request%>" />
+<%
+    String data = (String)session.getAttribute("intermediate-data");
+        
+    Util.readIntermediateData(request, data);
+
+    EmailValidationClient client;
+    String email;
+    String domain;
+    try {
+        email = (String)request.getAttribute("email");
+        domain = (String)request.getAttribute("tenantDomain");
+        String confirmationKey = (String)request.getAttribute("confirmationKey");
+
+        client = new EmailValidationClient(config, session);
+        client.proceedUpdateContact(domain, email, confirmationKey);
+    } catch (RegistryException e) {
+    %>
+      <div>Error in validating the contact.</div>
+    <%
+        return;
+    }
+
+%>
+
+<div style="margin:20px">You have successfully validated your email address and the contact information associated with your WSO2
+    Cloud Services account is updated. Click <a href="../admin/index.jsp">here</a> to access WSO2 Cloud Manager.    
+</div>
+

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_verifier_redirector_ajaxprocessor.jsp
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_verifier_redirector_ajaxprocessor.jsp b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_verifier_redirector_ajaxprocessor.jsp
new file mode 100644
index 0000000..cb5beae
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/update_verifier_redirector_ajaxprocessor.jsp
@@ -0,0 +1,30 @@
+<!--
+ ~ Copyright (c) 2005-2010, 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.
+ -->
+<%@ page import="org.wso2.carbon.account.mgt.ui.utils.Util" %>
+<%@ page import="org.wso2.carbon.utils.multitenancy.MultitenantConstants" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%
+//this jsp is used just to redirect to the correct update verifier.
+
+String data = (String)session.getAttribute("intermediate-data");
+
+Util.readIntermediateData(request, data);
+String domain = (String)request.getAttribute("tenantDomain");
+String contextPath = "/" + MultitenantConstants.TENANT_AWARE_URL_PREFIX + "/" + domain;
+response.sendRedirect("../account-mgt/update_verifier.jsp");
+%>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/validate_domain_ajaxprocessor.jsp
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/validate_domain_ajaxprocessor.jsp b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/validate_domain_ajaxprocessor.jsp
new file mode 100644
index 0000000..71da4bd
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/validate_domain_ajaxprocessor.jsp
@@ -0,0 +1,29 @@
+<!--
+ ~ Copyright (c) 2005-2010, 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.
+ -->
+%@ page import="org.wso2.carbon.registry.core.RegistryConstants" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar" prefix="carbon" %>
+<%
+
+String domainToValidate = request.getParameter("domain");
+
+
+response.sendRedirect("../validate-domain/validate_domain_logged_in.jsp?domain=" + domainToValidate);
+
+%>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/validation_success_ajaxprocessor.jsp
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/validation_success_ajaxprocessor.jsp b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/validation_success_ajaxprocessor.jsp
new file mode 100644
index 0000000..15aec9b
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt.ui/2.1.0/src/main/resources/web/account-mgt/validation_success_ajaxprocessor.jsp
@@ -0,0 +1,49 @@
+<!--
+ ~ Copyright (c) 2005-2010, 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.
+ -->
+<%@ page import="org.wso2.carbon.account.mgt.ui.clients.AccountMgtClient" %>
+<%@ page import="org.wso2.carbon.registry.core.exceptions.RegistryException" %>
+<%@ page import="org.wso2.carbon.utils.multitenancy.MultitenantConstants" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%
+try {
+    String domainToRegister = (String)session.getAttribute("temp-domain-to-register");
+    String successKey = (String)session.getAttribute("validate-domain-success-key");
+    AccountMgtClient client = new AccountMgtClient(config, session);
+    if (client.finishedDomainValidation(domainToRegister, successKey)) {
+
+        //session.setAttribute(MultitenantConstants.TENANT_DOMAIN, domainToRegister);
+        session.setAttribute("domain-validation-success", "true");
+        // redirect to the login page with new domain name
+        response.sendRedirect("/t/" + domainToRegister + "/carbon/account-mgt/account_mgt.jsp");
+        return;
+    } else {
+        session.removeAttribute("temp-domain-to-register");
+        session.removeAttribute("validate-domain-success-key");
+
+        // now redirect to the account_mgt.js with the failure
+        session.setAttribute("domain-validation-failure", "true");
+        response.sendRedirect("../account-mgt/account_mgt.jsp");
+        return;
+    }
+} catch (RegistryException e) {
+%>
+  <div>Error in finishing the validation.</div>
+<%
+    return;
+}
+%>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt/2.1.0/pom.xml
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt/2.1.0/pom.xml b/components/stratos/account-mgt/org.apache.stratos.account.mgt/2.1.0/pom.xml
new file mode 100644
index 0000000..7c9020f
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt/2.1.0/pom.xml
@@ -0,0 +1,87 @@
+<!--
+# Copyright (c) 2008, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+#
+# Licensed 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.wso2.carbon</groupId>
+        <artifactId>account-mgt-parent</artifactId>
+        <version>2.1.0</version>
+<relativePath>../../pom.xml</relativePath>
+    </parent>
+
+<modelVersion>4.0.0</modelVersion>
+<artifactId>org.apache.stratos.account.mgt</artifactId>
+    <packaging>bundle</packaging>
+    <name>WSO2 Stratos - Account Management</name>
+    <build>
+
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-scr-plugin</artifactId>
+            </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>
+                        <Private-Package>
+                            org.apache.stratos.account.mgt.*,
+                        </Private-Package>
+                        <Import-Package>
+                            org.wso2.carbon.registry.core.*;version=1.0.1,
+                            javax.xml.namespace; version=0.0.0,
+                            javax.servlet;version="${imp.pkg.version.javax.servlet}",
+                            javax.servlet.http;version="${imp.pkg.version.javax.servlet}",
+                            *;resolution:=optional
+                        </Import-Package>
+                        <DynamicImport-Package>*</DynamicImport-Package>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.wso2.carbon</groupId>
+            <artifactId>org.wso2.carbon.registry.core</artifactId>
+        </dependency>
+        <dependency>
+           <groupId>org.wso2.carbon</groupId>
+            <artifactId>org.wso2.carbon.email.verification</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.wso2.carbon</groupId>
+            <artifactId>org.wso2.carbon.stratos.common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.wso2.carbon</groupId>
+            <artifactId>org.wso2.carbon.tenant.mgt</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.wso2.carbon</groupId>
+            <artifactId>atlassian-jira</artifactId>
+            <version>1.0.0.wso2v1</version>
+        </dependency>
+    </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt/2.1.0/src/main/java/org/apache/stratos/account/mgt/beans/AccountInfoBean.java
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt/2.1.0/src/main/java/org/apache/stratos/account/mgt/beans/AccountInfoBean.java b/components/stratos/account-mgt/org.apache.stratos.account.mgt/2.1.0/src/main/java/org/apache/stratos/account/mgt/beans/AccountInfoBean.java
new file mode 100644
index 0000000..6492bea
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt/2.1.0/src/main/java/org/apache/stratos/account/mgt/beans/AccountInfoBean.java
@@ -0,0 +1,40 @@
+/*
+ *  Copyright (c) 2005-2010, 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.apache.stratos.account.mgt.beans;
+
+public class AccountInfoBean {
+    private String firstname;
+    private String lastname;
+
+    public String getFirstname() {
+        return firstname;
+    }
+
+    public void setFirstname(String firstname) {
+        this.firstname = firstname;
+    }
+
+    public String getLastname() {
+        return lastname;
+    }
+
+    public void setLastname(String lastname) {
+        this.lastname = lastname;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/335eb418/components/stratos/account-mgt/org.apache.stratos.account.mgt/2.1.0/src/main/java/org/apache/stratos/account/mgt/internal/AccountMgtServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/stratos/account-mgt/org.apache.stratos.account.mgt/2.1.0/src/main/java/org/apache/stratos/account/mgt/internal/AccountMgtServiceComponent.java b/components/stratos/account-mgt/org.apache.stratos.account.mgt/2.1.0/src/main/java/org/apache/stratos/account/mgt/internal/AccountMgtServiceComponent.java
new file mode 100644
index 0000000..49c1c22
--- /dev/null
+++ b/components/stratos/account-mgt/org.apache.stratos.account.mgt/2.1.0/src/main/java/org/apache/stratos/account/mgt/internal/AccountMgtServiceComponent.java
@@ -0,0 +1,139 @@
+/*
+*  Copyright (c) 2005-2010, 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.apache.stratos.account.mgt.internal;
+
+import org.wso2.carbon.email.verification.util.EmailVerifcationSubscriber;
+import org.wso2.carbon.registry.core.service.RegistryService;
+import org.wso2.carbon.stratos.common.TenantBillingService;
+import org.wso2.carbon.stratos.common.listeners.TenantMgtListener;
+import org.wso2.carbon.user.core.service.RealmService;
+import org.wso2.carbon.utils.ConfigurationContextService;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.account.mgt.util.Util;
+
+import org.osgi.service.component.ComponentContext;
+
+/**
+ * @scr.component name="org.apache.stratos.account.mgt" immediate="true"
+ * @scr.reference name="registry.service"
+ *                interface="org.wso2.carbon.registry.core.service.RegistryService"
+ *                cardinality="1..1" policy="dynamic" bind="setRegistryService"
+ *                unbind="unsetRegistryService"
+ * @scr.reference name="user.realmservice.default"
+ *                interface="org.wso2.carbon.user.core.service.RealmService"
+ *                cardinality="1..1" policy="dynamic" bind="setRealmService"
+ *                unbind="unsetRealmService"
+ * @scr.reference name="config.context.service"
+ *                interface="org.wso2.carbon.utils.ConfigurationContextService"
+ *                cardinality="1..1" policy="dynamic"
+ *                bind="setConfigurationContextService"
+ *                unbind="unsetConfigurationContextService"
+ * @scr.reference name="emailverification.service" interface=
+ *                "org.wso2.carbon.email.verification.util.EmailVerifcationSubscriber"
+ *                cardinality="1..1" policy="dynamic"
+ *                bind="setEmailVerificationService"
+ *                unbind="unsetEmailVerificationService"
+ * @scr.reference name="org.wso2.carbon.tenant.mgt.listener.service"
+ *                interface="org.wso2.carbon.stratos.common.listeners.TenantMgtListener"
+ *                cardinality="0..n" policy="dynamic"
+ *                bind="setTenantMgtListenerService"
+ *                unbind="unsetTenantMgtListenerService"
+ * @scr.reference name="default.tenant.billing.service"
+ *                interface="org.wso2.carbon.stratos.common.TenantBillingService"
+ *                cardinality="1..1" policy="dynamic"
+ *                bind="setTenantBillingService"
+ *                unbind="unsetTenantBillingService"
+ */
+public class AccountMgtServiceComponent {
+    private static Log log = LogFactory.getLog(AccountMgtServiceComponent.class);
+    private static ConfigurationContextService configContextService = null;
+    private static TenantBillingService billingService = null;
+    
+    protected void activate(ComponentContext context) {
+        try {
+            Util.loadEmailVerificationConfig();
+            log.debug("******* Stratos account management bundle is activated ******* ");
+        } catch (Exception e) {
+            log.error("******* Stratos account management bundle failed activating ****", e);
+        }
+    }
+
+    protected void deactivate(ComponentContext context) {
+        log.debug("******* Stratos account managment bundle is deactivated ******* ");
+    }
+
+    protected void setRegistryService(RegistryService registryService) {
+        Util.setRegistryService(registryService);
+    }
+
+    protected void unsetRegistryService(RegistryService registryService) {
+        Util.setRegistryService(null);
+    }
+
+    protected void setRealmService(RealmService realmService) {
+        Util.setRealmService(realmService);
+    }
+
+    protected void unsetRealmService(RealmService realmService) {
+        Util.setRealmService(null);
+    }
+
+    protected void setConfigurationContextService(ConfigurationContextService contextService) {
+        if (log.isDebugEnabled()) {
+            log.debug("Setting the ConfigurationContext");
+        }
+        configContextService = contextService;
+    }
+
+    protected void unsetConfigurationContextService(ConfigurationContextService contextService) {
+        if (log.isDebugEnabled()) {
+            log.debug("Unsetting the ConfigurationContext");
+        }
+    }
+
+    protected void setEmailVerificationService(EmailVerifcationSubscriber emailService) {
+        Util.setEmailVerificationService(emailService);
+    }
+
+    protected void unsetEmailVerificationService(EmailVerifcationSubscriber emailService) {
+        Util.setEmailVerificationService(null);
+    }
+
+    protected void setTenantMgtListenerService(TenantMgtListener tenantMgtListener) {
+        Util.addTenantMgtListenerService(tenantMgtListener);
+    }
+
+    protected void unsetTenantMgtListenerService(TenantMgtListener tenantMgtListener) {
+        Util.removeTenantMgtListenerService(tenantMgtListener);
+    }
+    
+    protected void setTenantBillingService(TenantBillingService tenantBillingService) {
+        billingService = tenantBillingService;
+    }
+    
+    protected void unsetTenantBillingService(TenantBillingService tenantBilling) {
+        setTenantBillingService(null);
+    }
+    
+    public static TenantBillingService getBillingService() {
+        return billingService;
+    }
+
+}