You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by is...@apache.org on 2013/08/06 10:53:54 UTC

[2/2] git commit: Initial revision of ec2-demo-setup: borrowed generously from wso2 stratos2 ec2 demo installation and updated accordingly

Initial revision of ec2-demo-setup: borrowed generously from wso2 stratos2 ec2 demo installation and updated accordingly

Signed-off-by: Isuru Perera <is...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/6e03f564
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/6e03f564
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/6e03f564

Branch: refs/heads/master
Commit: 6e03f564cc34d8a2720c3b4633f7015f35bad936
Parents: 1614982
Author: Imesh Gunaratne <im...@wso2.com>
Authored: Tue Aug 6 12:49:39 2013 +0530
Committer: Isuru Perera <is...@apache.org>
Committed: Tue Aug 6 14:23:12 2013 +0530

----------------------------------------------------------------------
 tools/ec2-demo-setup/README                     |   20 +
 tools/ec2-demo-setup/clean.sh                   |   68 +
 tools/ec2-demo-setup/config.sh                  |  301 +++++
 tools/ec2-demo-setup/start_servers.sh           |   85 ++
 .../ec2-demo-setup/tempconfigs/agent.properties |   23 +
 .../tempconfigs/cartridge-config.properties     |   36 +
 .../tempconfigs/cloud-controller.xml            |   84 ++
 .../tempconfigs/features-dashboard.xml          |  807 +++++++++++
 .../tempconfigs/gitblit.properties              | 1277 ++++++++++++++++++
 tools/ec2-demo-setup/tempconfigs/hosts          |    9 +
 tools/ec2-demo-setup/tempconfigs/hosts.erb      |   19 +
 tools/ec2-demo-setup/tempconfigs/mysql.xml      |   35 +
 tools/ec2-demo-setup/tempconfigs/nodes.pp       |  465 +++++++
 tools/ec2-demo-setup/tempconfigs/php.xml        |   33 +
 .../tempconfigs/s2reponotifier.groovy           |    4 +
 tools/ec2-demo-setup/tempconfigs/tomcat.xml     |   31 +
 tools/ec2-demo-setup/unpack-packages.sh         |   29 +
 17 files changed, 3326 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e03f564/tools/ec2-demo-setup/README
----------------------------------------------------------------------
diff --git a/tools/ec2-demo-setup/README b/tools/ec2-demo-setup/README
new file mode 100644
index 0000000..99bb859
--- /dev/null
+++ b/tools/ec2-demo-setup/README
@@ -0,0 +1,20 @@
+Apache Stratos - Amazon EC2 Demo
+=================================
+
+This folder contains scripts for installing Apache Stratos on an Amazon EC2 instance.
+
+Installation
+=============
+
+1. Build Apache Stratos from source:
+   git clone https://git-wip-us.apache.org/repos/asf/incubator-stratos.git
+   cd incubator-stratos
+   mvn clean install
+2. Copy cloud controller, elb, agent, cli and stratos controller packages to a sub folder called 'dist'.
+3. Run unpack-packages.sh to extract the products to current folder.
+4. Download MySql Java connector from http://dev.mysql.com/downloads and copy the jar file to repository/components/lib folder of cloud controller, stratos controller and elb.
+5.  Run config.sh to start the installation. If the configuration fail due to some reason, correct the problem, run clean.sh and then run config.sh again.
+
+
+Thanks for using Apache Stratos
+Apache Stratos Team

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e03f564/tools/ec2-demo-setup/clean.sh
----------------------------------------------------------------------
diff --git a/tools/ec2-demo-setup/clean.sh b/tools/ec2-demo-setup/clean.sh
new file mode 100755
index 0000000..9ff9765
--- /dev/null
+++ b/tools/ec2-demo-setup/clean.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+# ----------------------------------------------------------------------------
+#  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.
+# ----------------------------------------------------------------------------
+#  Clean up script for Apache Stratos
+# ----------------------------------------------------------------------------
+
+# Make sure the user is not running as root.
+if [ "$UID" == "0" ]; then
+echo ; echo "  You must not run $0 as root." ; echo 
+exit 69
+fi
+
+echo "Terminating all Java processes.. "
+killall java
+sleep 1;
+
+echo "Cleaning up databases... "
+mysqladmin -f -uroot -pg drop s2_foundation
+mysqladmin -f -uroot -pg drop userstore
+mysqladmin -f -uroot -pg drop billing
+mysql -uroot -pg </opt/resources/s2foundation_schema.sql
+mysql -uroot -pg </opt/resources/userstore.sql
+mysql -uroot -pg </opt/resources/metering_mysql.sql
+mysql -uroot -pg </opt/resources/billing-mysql.sql
+sleep 1;
+
+echo "Cleaning log files... "
+rm -rf /opt/apache-stratos-elb-3.0.0-SNAPSHOT/repository/logs/*
+rm -rf /opt/apache-stratos-cc-3.0.0-SNAPSHOT/repository/logs/*
+rm -rf /opt/apache-stratos-agent-3.0.0-SNAPSHOT/repository/logs/*
+rm -rf /opt/apache-stratos-sc-3.0.0-SNAPSHOT/repository/logs/*
+
+echo "Cleaning S2 Agent's registrants... "
+rm -rf /opt/apache-stratos-agent-3.0.0-SNAPSHOT/registrants/*
+
+echo "Removing zookeeper directory... "
+rm -rf /opt/apache-stratos-cc-3.0.0-SNAPSHOT/repository/data/*
+
+echo "Cleaning topology file... "
+rm -rf /opt/apache-stratos-cc-3.0.0-SNAPSHOT/repository/conf/service-topology.conf*
+
+echo "Cleaning service definition files... "
+rm -rf /opt/apache-stratos-cc-3.0.0-SNAPSHOT/repository/deployment/server/services/*
+
+echo "Cleaning cartridge definition files..."
+rm -rf /opt/apache-stratos-cc-3.0.0-SNAPSHOT/repository/deployment/server/cartridges/*
+
+echo "Cleaning Cloud Controller's registry... "
+rm -rf /opt/apache-stratos-cc-3.0.0-SNAPSHOT/repository/database/*
+cp /opt/resources/WSO2CARBON_DB.h2.db /opt/apache-stratos-cc-3.0.0-SNAPSHOT/repository/database/
+
+

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e03f564/tools/ec2-demo-setup/config.sh
----------------------------------------------------------------------
diff --git a/tools/ec2-demo-setup/config.sh b/tools/ec2-demo-setup/config.sh
new file mode 100755
index 0000000..fc8f4f9
--- /dev/null
+++ b/tools/ec2-demo-setup/config.sh
@@ -0,0 +1,301 @@
+#!/bin/bash
+# ----------------------------------------------------------------------------
+#  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.
+# ----------------------------------------------------------------------------
+#  Server configuration script for Apache Stratos
+# ----------------------------------------------------------------------------
+
+export LOG=/var/log/stratos.log
+export TEMP_CONFIG_DIR=/opt/tempconfigs
+CARTRIDGE_DEFINITIONS=/opt/apache-stratos-cc-3.0.0-SNAPSHOT/repository/deployment/server/cartridges
+SERVICE_DEFINITIONS=/opt/apache-stratos-cc-3.0.0-SNAPSHOT/repository/deployment/server/services
+PAYLOADS=/opt/apache-stratos-cc-3.0.0-SNAPSHOT/repository/resources/payload
+SC_CONF_MT=/opt/apache-stratos-sc-3.0.0-SNAPSHOT/repository/conf/multitenancy
+
+# Make sure the user is running as root.
+if [ "$UID" -ne "0" ]; then
+echo ; echo "  You must be root to run $0.  (Try running 'sudo bash' first.)" ; echo 
+exit 69
+fi
+
+if [ -e "$LOG" ]; then
+rm $LOG
+fi
+
+# following is helpful if you've mistakenly added data in user-data and want to recover.
+read -p "Please confirm that you want to be prompted, irrespective of whether the data is available in the user-data? [y/n]" answer
+if [[ $answer = n ]] ; then
+
+echo "Trying to find values via user-data.." >> $LOG
+wget http://169.254.169.254/latest/user-data -O /opt/user-data.txt >> $LOG
+userData=`cat /opt/user-data.txt`
+echo "Extracted user-data: $userData" >> $LOG
+
+#assign values obtained through user-data
+for i in {1..8}
+do
+entry=`echo $userData  | cut -d',' -f$i | sed 's/,//g'`
+key=`echo $entry  | cut -d'=' -f1 | sed 's/=//g'`
+value=`echo $entry  | cut -d'=' -f2 | sed 's/=//g'`
+if [[ "$key" == *EC2_KEY_PATH* ]] ; then EC2_KEY_PATH=$value; 
+elif [[ "$key" == *ACCESS_KEY* ]] ; then ACCESS_KEY=$value; 
+elif [[ "$key" == *SECRET_KEY* ]] ; then SECRET_KEY=$value; 
+elif [[ "$key" == *OWNER_ID* ]] ; then OWNER_ID=$value; 
+elif [[ "$key" == *AVAILABILITY_ZONE* ]] ; then AVAILABILITY_ZONE=$value; 
+elif [[ "$key" == *SECURITY_GROUP* ]] ; then SECURITY_GROUP=$value; 
+elif [[ "$key" == *KEY_PAIR_NAME* ]] ; then KEY_PAIR_NAME=$value; 
+elif [[ "$key" == *DOMAIN* ]] ; then DOMAIN=$value; 
+fi
+done
+fi
+
+# Getting EC2 hostname
+wget http://169.254.169.254/latest/meta-data/public-hostname -O /opt/public-hostname
+s2_hostname=`cat /opt/public-hostname`
+
+#prompt for the values that are not retrieved via user-data
+if [[ -z $EC2_KEY_PATH ]]; then
+echo -n "Please copy your EC2 public key and enter full path to it (eg: /home/ubuntu/EC2S2KEY.pem):"
+read EC2_KEY_PATH
+if [ ! -e "$EC2_KEY_PATH" ]; then
+echo "EC2 key file ($EC2_KEY_PATH) is not found. We cannot proceed."
+exit 69
+fi
+fi
+if [[ -z $ACCESS_KEY ]]; then
+echo -n "Access Key of EC2 account (eg: Q0IAJDWGFM842UHQP27L) :"
+read ACCESS_KEY
+fi
+if [[ -z $SECRET_KEY ]]; then
+echo -n "Secret key of EC2 account (eg: DSKidmKS620mMWMBK5DED983HJSELA) :"
+read SECRET_KEY
+fi
+if [[ -z $OWNER_ID ]]; then
+echo -n "Owner id of EC2 account (eg: 927235126122165) :"
+read OWNER_ID
+fi
+if [[ -z $AVAILABILITY_ZONE ]]; then
+echo -n "Availability zone (default value: us-east-1c) :"
+read AVAILABILITY_ZONE
+fi
+if [[ -z $SECURITY_GROUP ]]; then
+echo -n "Name of the EC2 security group (eg: s2demo) :"
+read SECURITY_GROUP
+fi
+if [[ -z $KEY_PAIR_NAME ]]; then
+echo -n "Name of the key pair (eg: EC2S2KEY) :"
+read KEY_PAIR_NAME
+fi
+if [[ -z $DOMAIN ]]; then
+echo -n "Domain name for Stratos (default value: stratos.apache.org) :"
+read DOMAIN
+fi
+
+if  [ -z "$DOMAIN" ]; then
+DOMAIN="stratos.apache.org"
+fi
+
+if  [ -z "$AVAILABILITY_ZONE" ]; then
+AVAILABILITY_ZONE="us-east-1c"
+echo "Default Availability Zone $AVAILABILITY_ZONE" >> $LOG
+fi
+
+if [ ! -e "$EC2_KEY_PATH" ]; then
+echo "EC2 key file ($EC2_KEY_PATH) is not found. We cannot proceed."
+exit 69
+fi
+
+ip=`facter ipaddress`
+echo "Setting private ip addresses $ip" >> $LOG
+
+echo "Setting up cloud controller values" >> $LOG
+
+cp $TEMP_CONFIG_DIR/cloud-controller.xml $TEMP_CONFIG_DIR/cloud-controller.xml.tmp
+sed -i "s/ACCESSKEY/$ACCESS_KEY/g" $TEMP_CONFIG_DIR/cloud-controller.xml.tmp
+sed -i "s#SECRETKEY#$SECRET_KEY#g" $TEMP_CONFIG_DIR/cloud-controller.xml.tmp
+sed -i "s/OWNERID/$OWNER_ID/g" $TEMP_CONFIG_DIR/cloud-controller.xml.tmp
+sed -i "s/AVAILABILITYZONE/$AVAILABILITY_ZONE/g" $TEMP_CONFIG_DIR/cloud-controller.xml.tmp
+sed -i "s/SECURITYGROUP/$SECURITY_GROUP/g" $TEMP_CONFIG_DIR/cloud-controller.xml.tmp
+sed -i "s/KEYPAIR/$KEY_PAIR_NAME/g" $TEMP_CONFIG_DIR/cloud-controller.xml.tmp
+mv $TEMP_CONFIG_DIR/cloud-controller.xml.tmp /opt/apache-stratos-cc-3.0.0-SNAPSHOT/repository/conf/cloud-controller.xml
+chown ubuntu:ubuntu /opt/apache-stratos-cc-3.0.0-SNAPSHOT/repository/conf/cloud-controller.xml
+
+rm -rf $CARTRIDGE_DEFINITIONS/*
+
+echo "Setting up domain in cartridge xml" >> $LOG
+cp $TEMP_CONFIG_DIR/mysql.xml $TEMP_CONFIG_DIR/mysql.xml.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/mysql.xml.tmp
+mv $TEMP_CONFIG_DIR/mysql.xml.tmp $CARTRIDGE_DEFINITIONS/mysql.xml
+chown ubuntu:ubuntu $CARTRIDGE_DEFINITIONS/mysql.xml
+
+cp $TEMP_CONFIG_DIR/php.xml $TEMP_CONFIG_DIR/php.xml.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/php.xml.tmp
+mv $TEMP_CONFIG_DIR/php.xml.tmp $CARTRIDGE_DEFINITIONS/php.xml
+chown ubuntu:ubuntu $CARTRIDGE_DEFINITIONS/php.xml
+
+cp $TEMP_CONFIG_DIR/tomcat.xml $TEMP_CONFIG_DIR/tomcat.xml.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/tomcat.xml.tmp
+mv $TEMP_CONFIG_DIR/tomcat.xml.tmp $CARTRIDGE_DEFINITIONS/tomcat.xml
+chown ubuntu:ubuntu $CARTRIDGE_DEFINITIONS/tomcat.xml
+
+cp $TEMP_CONFIG_DIR/as_multitenant_cartridge.xml $TEMP_CONFIG_DIR/as_multitenant_cartridge.xml.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/as_multitenant_cartridge.xml.tmp
+mv $TEMP_CONFIG_DIR/as_multitenant_cartridge.xml.tmp $CARTRIDGE_DEFINITIONS/as_multitenant_cartridge.xml
+chown ubuntu:ubuntu $CARTRIDGE_DEFINITIONS/as_multitenant_cartridge.xml
+
+cp $TEMP_CONFIG_DIR/as_privatejet_cartridge.xml $TEMP_CONFIG_DIR/as_privatejet_cartridge.xml.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/as_privatejet_cartridge.xml.tmp
+mv $TEMP_CONFIG_DIR/as_privatejet_cartridge.xml.tmp $CARTRIDGE_DEFINITIONS/as_privatejet_cartridge.xml
+chown ubuntu:ubuntu $CARTRIDGE_DEFINITIONS/as_privatejet_cartridge.xml
+
+cp $TEMP_CONFIG_DIR/esb_multitenant_cartridge.xml $TEMP_CONFIG_DIR/esb_multitenant_cartridge.xml.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/esb_multitenant_cartridge.xml.tmp
+mv $TEMP_CONFIG_DIR/esb_multitenant_cartridge.xml.tmp $CARTRIDGE_DEFINITIONS/esb_multitenant_cartridge.xml.back
+chown ubuntu:ubuntu $CARTRIDGE_DEFINITIONS/esb_multitenant_cartridge.xml.back
+
+cp $TEMP_CONFIG_DIR/esb_privatejet_cartridge.xml $TEMP_CONFIG_DIR/esb_privatejet_cartridge.xml.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/esb_privatejet_cartridge.xml.tmp
+mv $TEMP_CONFIG_DIR/esb_privatejet_cartridge.xml.tmp $CARTRIDGE_DEFINITIONS/esb_privatejet_cartridge.xml.back
+chown ubuntu:ubuntu $CARTRIDGE_DEFINITIONS/esb_privatejet_cartridge.xml.back
+
+cp $TEMP_CONFIG_DIR/bps_multitenant_cartridge.xml $TEMP_CONFIG_DIR/bps_multitenant_cartridge.xml.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/bps_multitenant_cartridge.xml.tmp
+mv $TEMP_CONFIG_DIR/bps_multitenant_cartridge.xml.tmp $CARTRIDGE_DEFINITIONS/bps_multitenant_cartridge.xml.back
+chown ubuntu:ubuntu $CARTRIDGE_DEFINITIONS/bps_multitenant_cartridge.xml.back
+
+cp $TEMP_CONFIG_DIR/bps_privatejet_cartridge.xml $TEMP_CONFIG_DIR/bps_privatejet_cartridge.xml.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/bps_privatejet_cartridge.xml.tmp
+mv $TEMP_CONFIG_DIR/bps_privatejet_cartridge.xml.tmp $CARTRIDGE_DEFINITIONS/bps_privatejet_cartridge.xml.back
+chown ubuntu:ubuntu $CARTRIDGE_DEFINITIONS/bps_privatejet_cartridge.xml.back
+
+cp $TEMP_CONFIG_DIR/hosts $TEMP_CONFIG_DIR/hosts.tmp
+echo "$ip   s2demo.s2.apache.org puppetmaster" >> $TEMP_CONFIG_DIR/hosts.tmp
+echo "$ip   cc.apache.org" >> $TEMP_CONFIG_DIR/hosts.tmp
+echo "$ip   elb.apache.org" >> $TEMP_CONFIG_DIR/hosts.tmp
+echo "$ip   sc.apache.org" >> $TEMP_CONFIG_DIR/hosts.tmp
+
+mv $TEMP_CONFIG_DIR/hosts.tmp /etc/hosts
+
+cp $TEMP_CONFIG_DIR/hosts.erb $TEMP_CONFIG_DIR/hosts.erb.tmp
+cp $TEMP_CONFIG_DIR/cartridge-config.properties $TEMP_CONFIG_DIR/cartridge-config.properties.tmp
+cp $TEMP_CONFIG_DIR/agent.properties $TEMP_CONFIG_DIR/agent.properties.tmp
+cp $TEMP_CONFIG_DIR/launch-params-as $TEMP_CONFIG_DIR/launch-params-as.tmp
+cp $TEMP_CONFIG_DIR/launch-params-esb $TEMP_CONFIG_DIR/launch-params-esb.tmp
+cp $TEMP_CONFIG_DIR/launch-params-bps $TEMP_CONFIG_DIR/launch-params-bps.tmp
+
+
+sed -i "s/s2_ip/$ip/g" $TEMP_CONFIG_DIR/hosts.erb.tmp
+sed -i "s/s2_ip/$ip/g" $TEMP_CONFIG_DIR/cartridge-config.properties.tmp
+sed -i "s@EC2KEYPATH@$EC2_KEY_PATH@g" $TEMP_CONFIG_DIR/cartridge-config.properties.tmp
+sed -i "s/s2_hostname/$s2_hostname/g" $TEMP_CONFIG_DIR/cartridge-config.properties.tmp
+sed -i "s/s2_ip/$ip/g" $TEMP_CONFIG_DIR/agent.properties.tmp
+sed -i "s/s2_ip/$ip/g" $TEMP_CONFIG_DIR/launch-params-as.tmp
+sed -i "s/s2_ip/$ip/g" $TEMP_CONFIG_DIR/launch-params-esb.tmp
+sed -i "s/s2_ip/$ip/g" $TEMP_CONFIG_DIR/launch-params-bps.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/launch-params-as.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/launch-params-bps.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/launch-params-esb.tmp
+
+rm -rf $SERVICE_DEFINITIONS/*
+
+cp $TEMP_CONFIG_DIR/s2reponotifier.groovy $TEMP_CONFIG_DIR/s2reponotifier.groovy.tmp
+sed -i "s/s2_hostname/$s2_hostname/g" $TEMP_CONFIG_DIR/s2reponotifier.groovy.tmp
+mv $TEMP_CONFIG_DIR/s2reponotifier.groovy.tmp /opt/GitBlit/data/groovy/s2reponotifier.groovy
+
+
+cp $TEMP_CONFIG_DIR/appserver_service.xml $TEMP_CONFIG_DIR/appserver_service.xml.tmp
+cp $TEMP_CONFIG_DIR/bps_service.xml $TEMP_CONFIG_DIR/bps_service.xml.tmp
+cp $TEMP_CONFIG_DIR/esb_service.xml $TEMP_CONFIG_DIR/esb_service.xml.tmp
+
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/appserver_service.xml.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/bps_service.xml.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/esb_service.xml.tmp
+
+mv $TEMP_CONFIG_DIR/appserver_service.xml.tmp $SERVICE_DEFINITIONS/appserver_service.xml
+chown ubuntu:ubuntu $SERVICE_DEFINITIONS/appserver_service.xml
+
+mv $TEMP_CONFIG_DIR/bps_service.xml.tmp $SERVICE_DEFINITIONS/bps_service.xml.back
+chown ubuntu:ubuntu $SERVICE_DEFINITIONS/bps_service.xml.back
+
+mv $TEMP_CONFIG_DIR/esb_service.xml.tmp $SERVICE_DEFINITIONS/esb_service.xml.back
+chown ubuntu:ubuntu $SERVICE_DEFINITIONS/esb_service.xml.back
+
+cp $TEMP_CONFIG_DIR/nodes.pp $TEMP_CONFIG_DIR/nodes.pp.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/nodes.pp.tmp
+
+#make dirs if not exist
+dir=$PAYLOADS
+if [ ! -d "$dir" ]; then
+mkdir $dir
+fi
+
+dir=$PAYLOADS/as
+if [ ! -d "$dir" ]; then
+mkdir $dir
+fi
+
+dir=$PAYLOADS/bps
+if [ ! -d "$dir" ]; then
+mkdir $dir
+fi
+
+dir=$PAYLOADS/esb
+if [ ! -d "$dir" ]; then
+mkdir $dir
+fi
+
+mv $TEMP_CONFIG_DIR/hosts.erb.tmp /mnt/puppet/stratos2/templates/hosts.erb
+mv $TEMP_CONFIG_DIR/cartridge-config.properties.tmp /opt/apache-stratos-sc-3.0.0-SNAPSHOT/repository/conf/cartridge-config.properties
+chown ubuntu:ubuntu /opt/apache-stratos-sc-3.0.0-SNAPSHOT/repository/conf/cartridge-config.properties
+mv $TEMP_CONFIG_DIR/agent.properties.tmp /opt/apache-stratos-agent-3.0.0-SNAPSHOT/repository/conf/agent.properties
+chown ubuntu:ubuntu /opt/apache-stratos-agent-3.0.0-SNAPSHOT/repository/conf/agent.properties
+
+mv $TEMP_CONFIG_DIR/launch-params-as.tmp $PAYLOADS/as/launch-params
+chown ubuntu:ubuntu $PAYLOADS/as/launch-params
+mv $TEMP_CONFIG_DIR/launch-params-esb.tmp $PAYLOADS/esb/launch-params
+chown ubuntu:ubuntu $PAYLOADS/esb/launch-params
+mv $TEMP_CONFIG_DIR/launch-params-bps.tmp $PAYLOADS/bps/launch-params
+chown ubuntu:ubuntu $PAYLOADS/bps/launch-params
+
+mv $TEMP_CONFIG_DIR/nodes.pp.tmp /mnt/puppet/stratos2/manifests/nodes.pp
+
+echo "Creating payload zip files.." >> $LOG
+cd $PAYLOADS/as
+zip -r as-default.zip launch-params
+chown ubuntu:ubuntu as-default.zip
+
+cd $PAYLOADS/esb
+zip -r esb-default.zip launch-params
+chown ubuntu:ubuntu esb-default.zip
+
+cd $PAYLOADS/bps
+zip -r bps-default.zip launch-params
+chown ubuntu:ubuntu bps-default.zip
+
+echo "Payloads created .. Done" >> $LOG
+
+echo "Setting up domain in features dashboard" >> $LOG
+cp $TEMP_CONFIG_DIR/features-dashboard.xml $TEMP_CONFIG_DIR/features-dashboard.xml.tmp
+sed -i "s/S2DOMAIN/$DOMAIN/g" $TEMP_CONFIG_DIR/features-dashboard.xml.tmp
+mv $TEMP_CONFIG_DIR/features-dashboard.xml.tmp $SC_CONF_MT/features-dashboard.xml
+chown ubuntu:ubuntu $SC_CONF_MT/features-dashboard.xml
+
+echo "You have successfully configured Apache Stratos!!"
+
+su - ubuntu -c /opt/start_servers.sh
+

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e03f564/tools/ec2-demo-setup/start_servers.sh
----------------------------------------------------------------------
diff --git a/tools/ec2-demo-setup/start_servers.sh b/tools/ec2-demo-setup/start_servers.sh
new file mode 100755
index 0000000..4d5b814
--- /dev/null
+++ b/tools/ec2-demo-setup/start_servers.sh
@@ -0,0 +1,85 @@
+#!/bin/bash
+# ----------------------------------------------------------------------------
+#  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.
+# ----------------------------------------------------------------------------
+#  Server start-up script for Apache Stratos
+# ----------------------------------------------------------------------------
+
+SLEEP=60
+LOG=stratos-server.log
+sc_path=/opt/apache-stratos-sc-3.0.0-SNAPSHOT
+cc_path=/opt/apache-stratos-cc-3.0.0-SNAPSHOT
+elb_path=/opt/apache-stratos-elb-3.0.0-SNAPSHOT
+agent_path=/opt/apache-stratos-agent-3.0.0-SNAPSHOT
+gitblit_path=/opt/GitBlit
+
+start_servers() {
+
+    echo ${cc_path} >> $LOG
+
+    echo "Starting CC server ..." | tee -a $LOG
+    nohup ${cc_path}/bin/stratos.sh -DapplyPatches &
+    #echo "CC server started" | tee -a $LOG
+    sleep 120
+
+    echo ${sc_path} >> $LOG
+
+    echo "Starting SC server ..." | tee -a $LOG
+    nohup ${sc_path}/bin/stratos.sh -DapplyPatches &
+    #echo "SC server started" | tee -a $LOG
+    sleep $SLEEP
+
+
+    echo ${elb_path} >> $LOG
+
+    echo "Starting ELB server ..." | tee -a $LOG
+    nohup ${elb_path}/bin/stratos.sh -DapplyPatches &
+    #echo "ELB server started" | tee -a $LOG
+    sleep $SLEEP
+
+    echo ${agent_path} >> $LOG
+
+    echo "Starting Agent server ..." | tee -a $LOG
+    nohup ${agent_path}/bin/stratos.sh -DapplyPatches &
+    #echo "Agent server started" | tee -a $LOG
+    sleep $SLEEP
+
+    echo "Starting internal Git Server ..." | tee -a $LOG
+    cd ${gitblit_path}
+    git config --global --bool --add http.sslVerify false
+    nohup java -jar gitblit.jar --baseFolder data &
+    #echo "GitBlit server started" | tee -a $LOG
+    sleep $SLEEP
+
+
+    echo "Stratos 2.0 servers started up successfully!"
+
+
+}
+
+
+while true; do
+
+read -p "Make sure you have read the configuration guide and have setup properly, press [y] to continue, [n] to exit.   "  yn
+    case $yn in
+        [Yy]* ) start_servers;
+		 break;;
+        [Nn]* ) echo "Exiting..."; break;;
+        * ) echo "Please answer [y] or [n].";;
+    esac
+done

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e03f564/tools/ec2-demo-setup/tempconfigs/agent.properties
----------------------------------------------------------------------
diff --git a/tools/ec2-demo-setup/tempconfigs/agent.properties b/tools/ec2-demo-setup/tempconfigs/agent.properties
new file mode 100755
index 0000000..9b06ba3
--- /dev/null
+++ b/tools/ec2-demo-setup/tempconfigs/agent.properties
@@ -0,0 +1,23 @@
+loadBalancerDomain=wso2.carbon.lb.domain
+
+# Registrant health check interval in seconds
+registrant.heathCheckInterval=10
+registrant.healthCheckThreadPoolSize=2000
+
+# Clustering parameters of Cartridge agent member
+clustering.membershipScheme=wka
+clustering.maxRetries=5
+clustering.localMemberHost=s2_ip
+#clustering.localMemberBindPort=4026
+clustering.localMemberPort=4025
+
+# ELB members
+members.1.host=s2_ip
+members.1.port=4000
+
+# TRustrore
+wso2.carbon.truststore=/opt/apache-stratos-sc-3.0.0-SNAPSHOT/repository/resources/security/wso2carbon.jks
+
+# Instance State Notification Service 
+adc.host=s2_ip
+adc.port=9445

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e03f564/tools/ec2-demo-setup/tempconfigs/cartridge-config.properties
----------------------------------------------------------------------
diff --git a/tools/ec2-demo-setup/tempconfigs/cartridge-config.properties b/tools/ec2-demo-setup/tempconfigs/cartridge-config.properties
new file mode 100644
index 0000000..cfa35f4
--- /dev/null
+++ b/tools/ec2-demo-setup/tempconfigs/cartridge-config.properties
@@ -0,0 +1,36 @@
+sc.ip=s2_ip
+autoscalerService.url=https://cc.apache.org:9444/services/CloudControllerService/
+autoscaler.time.out=190000
+cartridge.agent.epr=https://s2_ip:9447/services/CartridgeAgentService
+git.host.name=s2_hostname
+git.host.ip=s2_ip
+git.repo.notification.url=https://sc.apache.org:9445/services/RepoNotificationService/
+identity.server.url=https://sc.apache.org:9447/services/RepoNotificationService/
+
+adc.jdbc.url=jdbc:mysql://sc.apache.org:3306/s2_foundation
+adc.jdbc.username=root
+adc.jdbc.password=g
+adc.jdbc.driver=com.mysql.jdbc.Driver
+
+feature.externalrepo.validation.enabled=true
+feature.internalrepo.enabled=true
+feature.multitenant.multiplesubscription.enabled=false
+
+internal.repo.username=admin
+internal.repo.password=admin
+
+mb.server.ip=cc.apache.org:5673
+
+append.script=SCRIPT_PATH/add_entry_zone_file.sh
+remove.script=SCRIPT_PATH/remove_entry_zone_file.sh
+bind.file.path=/etc/bind/db.STRATOS_DOMAIN
+elb.ip=s2_ip
+
+bam.ip=s2_ip
+bam.port=7714
+
+max.attempts=1000
+
+cartridge.key=EC2KEYPATH
+
+repository.info.epr=https://s2_ip:9445/services/RepositoryInformationService

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e03f564/tools/ec2-demo-setup/tempconfigs/cloud-controller.xml
----------------------------------------------------------------------
diff --git a/tools/ec2-demo-setup/tempconfigs/cloud-controller.xml b/tools/ec2-demo-setup/tempconfigs/cloud-controller.xml
new file mode 100755
index 0000000..e5d245b
--- /dev/null
+++ b/tools/ec2-demo-setup/tempconfigs/cloud-controller.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+  ~ Copyright 2005-2011 WSO2, Inc. (http://wso2.com)
+  ~
+  ~ 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.
+  -->
+  
+<cloudController xmlns:svns="http://org.wso2.securevault/configuration">
+
+	<svns:secureVault
+		provider="org.wso2.securevault.secret.handler.SecretManagerSecretCallbackHandler" />
+
+    <dataPublisher enable="true">
+		<!-- BAM Server Info - default values are 'admin' and 'admin' 
+			 Optional element. -->
+		<bamServer>
+            <!-- BAM server URL should be specified in carbon.xml -->
+			<adminUserName>admin</adminUserName>
+			<adminPassword svns:secretAlias="cloud.controller.bam.server.admin.password">admin</adminPassword>
+		</bamServer>
+		<!-- Default cron expression is '1 * * * * ? *' meaning 'first second of every minute'.
+			 Optional element. -->
+		<cron>1 * * * * ? *</cron>
+		<!-- Cassandra cluster related info -->
+		<!--cassandraInfo>
+			<connectionUrl>localhost:9160</connectionUrl>
+			<userName>admin</userName>
+			<password svns:secretAlias="cloud.controller.cassandra.server.password">admin</password>
+		</cassandraInfo-->
+	</dataPublisher>
+
+    <topologySync enable="true">
+		<!-- MB server info -->
+		<mbServerUrl>cc.apache.org:5673</mbServerUrl>
+		<cron>1 * * * * ? *</cron>
+	</topologySync>	
+
+	<!-- Specify the properties that are common to an IaaS here. This element 
+		is not necessary [0..1]. But you can use this section to avoid specifying 
+		same property over and over again. -->
+	<iaasProviders>
+               <iaasProvider type="ec2" name="ec2 specific details">
+                        <className>org.apache.stratos.cloud.controller.iaases.AWSEC2Iaas</className>
+                        <provider>aws-ec2</provider>
+                        <identity svns:secretAlias="elastic.scaler.ec2.identity">ACCESSKEY</identity>
+                        <credential svns:secretAlias="elastic.scaler.ec2.credential">SECRETKEY</credential>
+                        <scaleUpOrder>1</scaleUpOrder>
+                        <scaleDownOrder>2</scaleDownOrder>
+			<maxInstanceLimit>4</maxInstanceLimit>
+                        <property name="jclouds.ec2.ami-query" value="owner-id=OWNERID;state=available;image-type=machine"/>
+                        <property name="availabilityZone" value="AVAILABILITYZONE"/>
+                        <property name="securityGroups" value="SECURITYGROUP"/>
+                        <property name="keyPair" value="KEYPAIR"/>
+			<property name="autoAssignIp" value="true" />
+                        <imageId>ami-d4841cbd</imageId>
+                </iaasProvider>
+
+<!--		<iaasProvider type="openstack" name="openstack specific details">
+            <className>org.wso2.carbon.stratos.cloud.controller.iaases.OpenstackNovaIaas</className>
+			<provider>openstack-nova</provider>
+			<identity svns:secretAlias="cloud.controller.openstack.identity">demo:demo</identity>
+			<credential svns:secretAlias="cloud.controller.openstack.credential">openstack</credential>
+			<property name="jclouds.endpoint" value="http://192.168.16.20:5000/" />
+            <property name="jclouds.openstack-nova.auto-create-floating-ips" value="false"/>
+			<property name="jclouds.api-version" value="2.0/" />
+			<scaleUpOrder>2</scaleUpOrder>
+			<scaleDownOrder>3</scaleDownOrder>
+			<property name="X" value="x" />
+			<property name="Y" value="y" />
+			<imageId>nova/dab37f0e-cf6f-4812-86fc-733acf22d5e6</imageId>
+		</iaasProvider> -->
+	</iaasProviders>
+</cloudController>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e03f564/tools/ec2-demo-setup/tempconfigs/features-dashboard.xml
----------------------------------------------------------------------
diff --git a/tools/ec2-demo-setup/tempconfigs/features-dashboard.xml b/tools/ec2-demo-setup/tempconfigs/features-dashboard.xml
new file mode 100755
index 0000000..d1125e8
--- /dev/null
+++ b/tools/ec2-demo-setup/tempconfigs/features-dashboard.xml
@@ -0,0 +1,807 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<data>
+	<service name="Cloud Services" link="https://S2DOMAIN:9445"
+		key="manager">
+		<story title="Billing">
+			<story-content>Billing is the process where the cloud computing
+				service subscribers are charged
+				based on the metered data. Billing
+				usually happens on a monthly basis.
+				Billing uses
+				pricing rates defined
+				against usage plans and compute the invoice against
+				the usage
+				data.
+			</story-content>
+			<story-links>
+				<link url="/carbon/tenant-billing/past_invoice.jsp">Billing...</link>
+				<link url="/carbon/tenant-billing/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Metering">
+			<story-content>Metering measures levels of resource utilization, such
+				as network bandwidth usage and
+				data storage volume, consumed by the
+				cloud services subscribers, aka
+				tenants.
+				Resource utilization's
+				(bandwidth and storage usage) are measured on the fly
+				and the
+				measured data is stored for summarizing and analyzing.
+			</story-content>
+			<story-links>
+				<link url="/carbon/tenant-usage/tenant_usage.jsp">Go to Metering....</link>
+				<link url="/carbon/tenant-usage/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Account Management">
+			<story-content>Account management allows a tenant to update and
+				validate contact information,
+				update the usage plan, validate the
+				account and even de-activate the
+				account .</story-content>
+			<story-links>
+				<link url="/carbon/account-mgt/account_mgt.jsp">Manage account...</link>
+				<link url="/carbon/account-mgt/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Users and Roles">
+			<story-content>You can add users and define your own roles for a
+				tenant. The permission model is
+				role based. So a tenant admin can
+				define what actions a role can perform
+				by
+				configuring permissions for
+				that role.</story-content>
+			<story-links>
+				<link url="/carbon/userstore/index.jsp">Manage users/roles...</link>
+				<link url="/carbon/userstore/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="MT-Logging">
+			<story-content>Flexible logging support with integration to
+				enterprise logging systems. This facilitate to monitor your system
+				and application logs through a log viewer.</story-content>
+			<story-links>
+				<link url="/carbon/log-view/index.jsp">Go to Log Viewer....</link>
+				<link url="/carbon/log-view/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+<!--
+		<story title="Usage Metering and Throttling">
+			<story-content>&lt;a
+				href="http://wso2.org/library/articles/2011/09/usage-metering-throttling-cloud-computing"&gt;&lt;img
+				src="../../../../features-dashboard/dashboards/images/usage_metering_and_throttling.jpg"
+				alt=""/&gt;</story-content>
+				<story-links>
+					<link url=""></link>
+					<link url=""></link>
+				</story-links>
+		</story>
+		<story title="How WSO2 StratosLive meets Security Challenges in Cloud">
+			<story-content> &lt;a
+				href="http://wso2.org/library/articles/2011/08/wso2-stratoslive-meets-security-challenges-cloud"&gt;&lt;img
+				src="../../../../features-dashboard/dashboards/images/tenant_isolation.png"
+				alt=""/&gt;&lt;/a&gt; </story-content>
+		</story>
+-->
+	</service>
+	<service name="Stratos Controller" link="https://S2DOMAIN:9445"
+		key="sc">
+		<story title="Multi-Tenant Cartridges">
+			<story-content>Stratos Cartridges, hosting WSO2 multi-tenant middleware 
+				services delivers multi-tenancy within each Cartridge instance 
+				where teams may define multiple tenants per Cartridge.
+			</story-content>
+			<story-links>
+				<link url="/carbon/cartridge-mgt/available_cartridges.jsp?item=available_multitenant_cartridges">Available Multi-Tenant Cartridges</link>
+			</story-links>
+		</story>
+		<story title="Single-Tenant Cartridges">
+			<story-content>Stratos Cartridges provide process-level isolation and 
+				instance-level dedicated tenancy with single-tenant containers and frameworks.
+			</story-content>
+			<story-links>
+				<link url="/carbon/cartridge-mgt/available_cartridges.jsp?item=available_singletenant_cartridges">Available Single-Tenant Cartridges</link>
+			</story-links>
+		</story>
+		<story title="Subscribed Cartridges">
+			<story-content>The tenant user can see all details of the Subscribed Cartridges such as
+				the status and the number of running instances at the moment.
+			</story-content>
+			<story-links>
+				<link url="/carbon/cartridge-mgt/subscribed_cartridges.jsp">Subscribed Cartridges</link>
+			</story-links>
+		</story>
+	</service>
+<!--
+	<service name="Enterprise Service Bus" link="https://esb.cloud.wso2.com"
+		key="esb">
+		<story title="Proxy Service">
+			<story-content> Proxy services facilitate location transparency and
+				provides the means for the
+				integration between various other
+				services, on different formats
+			</story-content>
+			<story-links>
+				<link url="/carbon/proxyservices/templates.jsp">Got to services...</link>
+				<link url="/carbon/proxyservices/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Sequence">
+			<story-content>Sequence is a collection of mediators attached to
+				perform a given mediation flow in an
+				integration.
+			</story-content>
+			<story-links>
+				<link url="/carbon/sequences/list_sequences.jsp">Go to Web Applications...</link>
+				<link url="/carbon/sequences/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Endpoint">
+			<story-content>Endpoints represent the third party services or other
+				endpoints the ESB is talking to,
+				this configuration allows you to
+				record a set of meta data about the
+				external endpoint
+				apart from it's
+				EPR
+			</story-content>
+			<story-links>
+				<link url="/carbon/endpoints/index.jsp">Go to Message Tracing...</link>
+				<link url="/carbon/endpoints/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Scheduled Tasks">
+			<story-content>Job scheduling facility in the ESB with quartz
+				scheduler, helping several tasks to be
+				initiated and scheduled by the
+				ESB.</story-content>
+			<story-links>
+				<link url="/carbon/task/index.jsp">Go to WSDL2Java Tool..</link>
+				<link url="/carbon/task/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Store &amp; Forward">
+			<story-content>Message Stores and Processors can be used to persist
+				messages to queues and then process
+				preserving SLAs.</story-content>
+			<story-links>
+				<link url="/carbon/message_processor/index.jsp">Go to Java2WSDL Tool...</link>
+				<link url="/carbon/message_processor/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Priority Execution">
+			<story-content>Ability to categorize mediation flows with a priority
+				allowing certain messages or
+				mediation paths to get a high priority
+				with compared to other messages or
+				paths.</story-content>
+			<story-links>
+				<link url="/carbon/executors/list_executors.jsp">Go to Java2WSDL Tool...</link>
+				<link url="/carbon/executors/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+	</service>
+	<service name="Application Services" link="https://appserver.cloud.wso2.com"
+		key="as">
+		<story title="Service Hosting">
+			<story-content>Different types of Web Services such as Axis2
+				Services, JAXWS Services, Jar Services
+				or Spring Services can be
+				deployed in Application Server. All
+				configurations such as
+				QoS can be
+				easily configured here.</story-content>
+			<story-links>
+				<link url="/carbon/service-mgt/index.jsp">Got to services...</link>
+				<link url="/carbon/service-mgt/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Web Applications">
+			<story-content>Web Application hosting features in AppServer
+				supports
+				deployment of Tomcat
+				compliant Webapps. Deployed Webapps can be
+				easily managed using the Webapp
+				management facilities available in
+				the management console.
+			</story-content>
+			<story-links>
+				<link url="/carbon/webapp-mgt/upload.jsp">Go to Web Applications...</link>
+				<link url="/carbon/webapp-mgt/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Message Tracing">
+			<story-content>Trace the request and responses to your service.
+				Message Tracing is a vital
+				debugging tool when you have clients from
+				heterogeneous platforms.
+			</story-content>
+			<story-links>
+				<link url="/carbon/tracer/index.jsp">Go to Message Tracing...</link>
+				<link url="/carbon/tracer/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="WSDL2Java Tool">
+			<story-content>Use WSDL2Java tool in Web Application Server to
+				convert Web Service WSDL to a set of
+				Java objects.</story-content>
+			<story-links>
+				<link url="/carbon/wsdl2code/index.jsp">Go to WSDL2Java Tool..</link>
+				<link url="/carbon/wsdl2code/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Java2WSDL Tool">
+			<story-content>Use Java2WSDL tool in Web Application Server make it
+				easy to develop a new web service.</story-content>
+			<story-links>
+				<link url="/carbon/java2wsdl/index.jsp">Go to Java2WSDL Tool...</link>
+				<link url="/carbon/java2wsdl/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+	</service>
+	<service name="Data Services" link="https://dss.cloud.wso2.com"
+		key="dss">
+		<story title="Data Service Hosting">
+			<story-content>Data Web Services can be deployed in Data Services
+				Server. All configurations such as
+				QoS can be easily configured here.
+			</story-content>
+			<story-links>
+				<link url="/carbon/service-mgt/index.jsp">Got to services...</link>
+				<link url="/carbon/service-mgt/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Data as a Service">
+			<story-content>Create your databases on the cloud, and acess those as
+				you would do with regular
+				databases.</story-content>
+			<story-links>
+				<link url="/carbon/ds/scriptAddSource.jsp">Go to data sources...</link>
+				<link url="/carbon/ds/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Service Testing">
+			<story-content>Tryit tool can be used as a simple Web Service client
+				which can be used to try your
+				services within AppServer itself.
+			</story-content>
+			<story-links>
+				<link url="/carbon/tryit/index.jsp">Go
+					to Service Testing...</link>
+				<link url="/carbon/tryit/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Message Tracing">
+			<story-content>Trace the request and responses to your service.
+				Message Tracing is a vital
+				debugging tool when you have clients from
+				heterogeneous platforms.
+			</story-content>
+			<story-links>
+				<link url="/carbon/tracer/index.jsp">Go to Message
+					Tracing...</link>
+				<link url="/carbon/tracer/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="DB Explorer">
+			<story-content>Explore your databases using the explorer tool on
+				the cloud.</story-content>
+			<story-links>
+				<link url="/carbon/adminconsole/databases.jsp">Go to DB
+					Explorer Tool...</link>
+				<link url="/carbon/adminconsole/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Relational Storage Solutions on Cloud">
+			<story-content>&lt;a
+				href="http://wso2.org/library/articles/2011/09/wso2-unveils-its-relational-storage-solutions-wso2-stratoslive"&gt;&lt;img
+				src="../../../../features-dashboard/dashboards/images/configure_db.png"
+				alt=""/&gt;</story-content>
+			<story-links>
+				<link
+					url="http://wso2.org/library/articles/2011/09/wso2-unveils-its-relational-storage-solutions-wso2-stratoslive">Read
+					online...</link>
+			</story-links>
+		</story>
+	</service>
+	<service name="Governance Services" link="https://governance.cloud.wso2.com"
+		key="greg">
+		<story title="Service">
+			<story-content>Service is the basic entity of your SOA platform. You
+				can manage service metadata and
+				the service lifecycle as well as
+				maintain multiple versions of a given
+				service, and much
+				more.
+			</story-content>
+			<story-links>
+				<link url="/carbon/services/services.jsp">Got to services...</link>
+				<link url="/carbon/services/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="WSDL">
+			<story-content>WSDL defines the interface of a web service. You can
+				store, validate and manage WSDLs
+				with ease, keeping track of
+				dependencies and associations such as
+				services, schema and
+				policies.
+			</story-content>
+			<story-links>
+				<link url="/carbon/wsdl/wsdl.jsp">Go to WSDL</link>
+				<link url="/carbon/wsdl/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Schema">
+			<story-content>XML Schema defines data types in a WSDL. As in the
+				case of WSDLs, you can keep
+				associations of schema which helps in the
+				impact analysis process, when
+				maintaining the
+				data models associated
+				with your SOA.</story-content>
+			<story-links>
+				<link url="/carbon/schema/schema.jsp">Go to Schema...</link>
+				<link url="/carbon/schema/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Policy">
+			<story-content>Policies help standardize SOA behaviour. You can keep
+				track of the policies bound to a
+				service. It also supports policy
+				enforcement to control how SOA behaves as
+				desired by
+				both IT and
+				business personnel.</story-content>
+			<story-links>
+				<link url="/carbon/policy/policy.jsp">Go to Policy..</link>
+				<link url="/carbon/policy/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Search">
+			<story-content>The repository can store any arbitrary type of
+				resource. You can search for resources by
+				name, author, time created
+				or updated. You also can search for resources
+				by media type.
+			</story-content>
+			<story-links>
+				<link url="/carbon/search/advancedSearch.jsp">Go to Search...</link>
+				<link url="/carbon/search/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Activities">
+			<story-content>An activity log provide an invaluable insight to what
+				operations took place on the
+				repository. You can browse activities
+				while filtering them by date range, user
+				name, or
+				activity type.
+			</story-content>
+			<story-links>
+				<link url="/carbon/activities/activity.jsp">Go to Activities...</link>
+				<link url="/carbon/activities/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Notifications">
+			<story-content>The registry generates events when changes are made to
+				a particular resource or
+				collection. You can subscribe to these
+				events via e-mail, or forward them to a
+				web
+				service via SOAP or REST.
+			</story-content>
+			<story-links>
+				<link url="/carbon/notifications/notifications.jsp">Go to Notifications...</link>
+				<link url="/carbon/notifications/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Extensions">
+			<story-content>While we address most governance and registry related
+				scenarios out-of-the-box, you also
+				can upload your own extensions
+				that is capable of extending the basic
+				functionality of
+				the product
+			</story-content>
+			<story-links>
+				<link url="/carbon/extensions/add_extensions.jsp">Go to Activities...</link>
+				<link url="/carbon/extensions/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+	</service>
+	<service name="Identity Services" link="https://governance.cloud.wso2.com"
+		key="is">
+		<story title="User Profile">
+			<story-content>Update your user profile or add multiple user
+				profiles.The value from your profile will
+				be used to populate your
+				Information card and OpenID profiles.
+			</story-content>
+			<story-links>
+				<link url="/carbon/userprofile/index.jsp">Got to User Profile...</link>
+				<link url="/carbon/userprofile/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="OpenID">
+			<story-content>This OpenID can be used with any OpenID relying party
+				which trusts your domain for
+				login.</story-content>
+			<story-links>
+				<link url="/carbon/identity-provider/index.jsp">Go to OpenID...</link>
+				<link url="/carbon/identity-provider/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Information Card">
+			<story-content>This card can be used with any identity selector that
+				supports Microsoft CardSpace
+				specifications and will allow you to
+				login to web applications that support
+				information
+				card logins.
+			</story-content>
+			<story-links>
+				<link url="/carbon/identity-provider/index.jsp">Go to Information Card...</link>
+				<link url="/carbon/identity-provider/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="SAML 2.0 Single Sign-On">
+			<story-content>Use WSO2 Identity Server for Single Sign-on
+				configuration. Service Providers can be
+				added and removed.
+			</story-content>
+			<story-links>
+				<link url="/carbon/sso-saml/manage_service_providers.jsp">Go to SAML 2.0 Single Sign-On..</link>
+				<link url="/carbon/sso-saml/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Multifactor Authentication">
+			<story-content>Use WSO2 Identity Server to Enable XMPP based
+				multi-factor authentication.</story-content>
+			<story-links>
+				<link url="/carbon/multi-factor/xmpp-config.jsp">Go to Multifactor Authentication...</link>
+				<link url="/carbon/multi-factor/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Users and Roles">
+			<story-content>WSO2 Identity Server enables you to manage users and
+				roles in your system.</story-content>
+			<story-links>
+				<link url="/carbon/userstore/index.jsp">Go to Users and Roles...</link>
+				<link url="/carbon/userstore/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Relying Parties">
+			<story-content>Manage your Relying Parties with WSO2 Identity Server.
+			</story-content>
+			<story-links>
+				<link url="/carbon/identity-trusted-relying-parties/add-trusted-rp.jsp">Go to Relying Parties...</link>
+				<link url="/carbon/identity-trusted-relying-parties/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Key Stores">
+			<story-content>Manage your Key Stores with WSO2 Identity Server
+			</story-content>
+			<story-links>
+				<link url="/carbon/keystoremgt/keystore-mgt.jsp">Go to Activities...</link>
+				<link url="/carbon/keystoremgt/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+	</service>
+	<service name="Business Activity Monitor" link="https://bam.cloud.wso2.com"
+		key="bam">
+		<story title="Real Time Mediation Monitoring">
+			<story-content>Monitor proxy services, endpoints and sequences and
+				their operations in real time. The
+				results gathered from the
+				real-time monitoring are presented in a clear and
+				easy-to-view
+				format.</story-content>
+			<story-links>
+				<link url="/carbon/service-mgt/index.jsp">Got to services...</link>
+				<link url="/carbon/service-mgt/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Mediation Analysis">
+			<story-content>Analyze the historical mediation trends over time with
+				the help of visualization
+				framework.</story-content>
+			<story-links>
+				<link url="/carbon/webapp-mgt/upload.jsp">Go to Web Applications...</link>
+				<link url="/carbon/webapp-mgt/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Summary Generation">
+			<story-content>Generate a summarised view of collected statistics and
+				write gadgets to display these
+				summarised data.</story-content>
+			<story-links>
+				<link url="/carbon/tracer/index.jsp">Go to Message Tracing...</link>
+				<link url="/carbon/tracer/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Service Invocation Analysis">
+			<story-content>rite gadgets to consume service statistics and present
+				to end user. Dashboard
+				support
+				Google Gadget specification.
+			</story-content>
+			<story-links>
+				<link url="/carbon/wsdl2code/index.jsp">Go to WSDL2Java Tool..</link>
+				<link url="/carbon/wsdl2code/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Dashboard">
+			<story-content>Monitor and correlate related business activities
+				across multiple server instances.
+				These activities can be used to
+				track and verify the smooth execution of
+				business.</story-content>
+			<story-links>
+				<link url="/carbon/java2wsdl/index.jsp">Go to Java2WSDL Tool...</link>
+				<link url="/carbon/java2wsdl/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Activity Correlation &amp; Monitoring">
+			<story-content>Monitor and correlate related business activities
+				across multiple server instances.
+				These activities can be used to
+				track and verify the smooth execution of
+				business.</story-content>
+			<story-links>
+				<link url="/carbon/java2wsdl/index.jsp">Go to Java2WSDL Tool...</link>
+				<link url="/carbon/java2wsdl/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Message Collection &amp; Archival">
+			<story-content>Collect messages coming into your SOA, analyze and
+				archive for future retrieval.</story-content>
+			<story-links>
+				<link url="/carbon/java2wsdl/index.jsp">Go to Java2WSDL Tool...</link>
+				<link url="/carbon/java2wsdl/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+	</service>
+	<service name="Business Process Services" link="https://bps.cloud.wso2.com"
+		key="bps">
+		<story title="WS-BPEL 2.0 &amp; BPELWS 1.1">
+			<story-content>WSO2 BPS supports both WS-BPEL 2.0 and BPEL4WS 1.1
+				standards. It also includes WSO2 BPS
+				specific extensions to enhance
+				the features provide by WS-BPEL.
+			</story-content>
+			<story-links>
+				<link url="">Got to Business Process Services...</link>
+				<link url="/carbon/admin/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Instance Data Cleanup">
+			<story-content>Allows multiple levels of instance data cleanup which
+				are accumulated during process
+				instance lifetime. XPath extensions,
+				Iteratable ForEach, Flexible Assigns,
+				XQuery 1.0 support and various
+				other extensions to BPEL language.</story-content>
+			<story-links>
+				<link url="">Go to OpenID...</link>
+				<link url="/carbon/admin/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="BPEL Extensions">
+			<story-content>Hot update BPEL processes and allows you to maintain
+				multiple versions of processes.</story-content>
+			<story-links>
+				<link url="">Go to Information Card...</link>
+				<link url="/carbon/admin/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+	</service>
+	<service name="Business Rule Server" link="https://brs.cloud.wso2.com"
+		key="brs">
+		<story title="Service Hosting Support">
+			<story-content>Service Hosting feature in Business Rules Server
+				enables deployment of Rule Services.</story-content>
+			<story-links>
+				<link url="/carbon/service-mgt/index.jsp">Got to Business Process Services...</link>
+				<link url="/carbon/service-mgt/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Rule service creation support">
+			<story-content>Support for creating rule services with drools or
+				using rule services created with other
+				IDEs.</story-content>
+			<story-links>
+				<link url="/carbon/ruleservices/rule_service_wizard_step1.jsp">Go to Rule service creation...</link>
+				<link url="/carbon/ruleservices/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Registry as a Rule Repository">
+			<story-content>Registry as a Rule Repository.</story-content>
+			<story-links>
+				<link url="/carbon/resources/resource.jsp">Go to Registry Rule Repository..</link>
+				<link url="/carbon/resources/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Service testing">
+			<story-content>Tryit tool can be used as a simple Web Service client
+				which can be used to try your
+				services within AppServer itself.
+			</story-content>
+			<story-links>
+				<link url="/carbon/tryit/index.jsp">Go
+					to Service Testing...</link>
+				<link url="/carbon/tryit/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+	</service>
+	<service name="Cloud Gateway" link="https://cg.stratoslive.wso2.com"
+		key="cg">
+		<story title="Cloud Service">
+			<story-content>Publish a service or data residing behind a firewall
+				in a secure and controlled manner as a Cloud Service.
+			</story-content>
+			<story-links>
+				<link url="/carbon/service-mgt/index.jsp">Go to Cloud Services...</link>
+				<link url="/carbon/service-mgt/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+	</service>
+	<service name="Complex Event Processing Services" link="https://cep.cloud.wso2.com"
+		key="cep">
+		<story title="Bring CEP to SOA">
+			<story-content>Bring CEP to SOA by processing XML events and produce
+				results as XML events.</story-content>
+			<story-links>
+				<link url="/carbon/CEP/cep_queries.jsp">Go to CEP buckets list...</link>
+				<link url="/carbon/CEP/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Registry Storage">
+			<story-content>Ability to define different event streams, queries and
+				out put streams and store them in
+				the registry as a bucket.
+			</story-content>
+			<story-links>
+				<link url="/carbon/resources/resource.jsp">Go to Registry Storage...</link>
+				<link url="/carbon/messagebox/docs/userguide.html">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Esper and Fusion">
+			<story-content>Support Esper and fusion back end runtimes..
+			</story-content>
+			<story-links>
+				<link url="">Go to Esper and Fusion..</link>
+				<link url="">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Filter data from the XML event">
+			<story-content>Ability to filter data from the XML event using xpath
+				and format the result as an XML
+				event.
+			</story-content>
+			<story-links>
+				<link url="">Go
+					to Filter data...</link>
+				<link url="">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Support different types of brokers">
+			<story-content>Support different types of brokers WS-Event, JMS to
+				receive publish events.
+			</story-content>
+			<story-links>
+				<link url="">Go
+					to brokers...</link>
+				<link url="">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Storing broker configurations">
+			<story-content>Define and store such different broker configurations.
+			</story-content>
+			<story-links>
+				<link url="">Go
+					to brokers...</link>
+				<link url="">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Administrative Console support">
+			<story-content>Administrative Console to create buckets, add
+				subscriptions etc..
+			</story-content>
+			<story-links>
+				<link url="">Go
+					to Administrative Console ...</link>
+				<link url="">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Specify CEP queries">
+			<story-content>Ability to specify CEP queries inline or pick from the
+				registry.
+			</story-content>
+			<story-links>
+				<link url="">Go
+					to CEP queries ...</link>
+				<link url="">Read more (docs)...</link>
+			</story-links>
+		</story>
+	</service>
+	<service name="Message Broker Services" link="https://mb.cloud.wso2.com"
+		key="mb">
+		<story title="Publish/Subscribe to Topics">
+			<story-content>WS-Eventing to publish/subscribe to topics using web
+				service standards.</story-content>
+			<story-links>
+				<link url="">Go to topics...</link>
+				<link url="">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="AMQP">
+			<story-content>MS support thorough AMQP to publish/subscribe to
+				topics and Queues.</story-content>
+			<story-links>
+				<link url="">Go to AMQP...</link>
+				<link url="">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Topic Authorization">
+			<story-content>MS support thorough AMQP to publish/subscribe to
+				topics and Queues.</story-content>
+			<story-links>
+				<link url="">Go to Topic Authorization...</link>
+				<link url="">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Manage topics and queues permissions">
+			<story-content>Administrative console support to manage topics and
+				queues permissions.</story-content>
+			<story-links>
+				<link url="">Go to Manage topics and queues permissions...</link>
+				<link url="">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="SQS support">
+			<story-content>SQS support to store retrieve messages using a web
+				service API.</story-content>
+			<story-links>
+				<link url="">Go to SQS ...</link>
+				<link url="">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="User based authorization for queues">
+			<story-content>User based authorization for queues.</story-content>
+			<story-links>
+				<link url="">Go to User based authorization ...</link>
+				<link url="">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Manage message boxes">
+			<story-content>Administrative console support to manage message boxes
+				and store/retrieve messages.</story-content>
+			<story-links>
+				<link url="">Go to message boxes...</link>
+				<link url="">Read more (docs)...</link>
+			</story-links>
+		</story>
+		<story title="Message box as event sink">
+			<story-content>Ability to use a message box as the event sink for a
+				subscription.</story-content>
+			<story-links>
+				<link url="">Go to event sink support...</link>
+				<link url="">Read more (docs)...</link>
+			</story-links>
+		</story>
+	</service>
+        <service name="Storage Server Services" link="https://ss.cloud.wso2.com" key="ss">
+		<story title="Storage Server Data">
+			<story-content>Storage Server</story-content>
+			<story-links>
+				<link url="">Go to topics...</link>
+				<link url="">Read more (docs)...</link>
+			</story-links>
+		</story>
+	</service>
+-->
+</data>
+