http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.cloud.controller/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/pom.xml 
b/components/org.apache.stratos.cloud.controller/pom.xml
index 4f2919b..ec808d1 100644
--- a/components/org.apache.stratos.cloud.controller/pom.xml
+++ b/components/org.apache.stratos.cloud.controller/pom.xml
@@ -17,12 +17,13 @@
   #  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";>
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
 
     <parent>
-       <groupId>org.apache.stratos</groupId>
-       <artifactId>stratos-components-parent</artifactId>
-       <version>4.1.0-SNAPSHOT</version>
+        <groupId>org.apache.stratos</groupId>
+        <artifactId>stratos-components-parent</artifactId>
+        <version>4.1.0-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
@@ -54,8 +55,8 @@
                             org.apache.stratos.cloud.controller.topology.*,
                             org.apache.stratos.cloud.controller.iaases.*,
                             org.apache.stratos.cloud.controller.pojo.*,
-                           org.apache.stratos.cloud.controller.deployers.*,
-                           org.apache.stratos.cloud.controller.exception.*,
+                            org.apache.stratos.cloud.controller.deployers.*,
+                            org.apache.stratos.cloud.controller.exception.*,
                         </Export-Package>
                         <Private-Package>
                             !org.apache.stratos.cloud.controller.interfaces.*,
@@ -69,18 +70,18 @@
                             org.apache.stratos.cloud.controller.*,
                         </Private-Package>
                         <Import-Package>
-                                 !org.apache.commons.logging,
+                            !org.apache.commons.logging,
                             org.apache.commons.logging; version=0.0.0,
                             org.apache.commons.io.*,
                             org.wso2.carbon.utils.*,
                             
<!--org.jclouds.compute*;version="${jclouds.version}";resolution:=optional,
-                            org.jclouds*;version="${jclouds.version}",-->   
+                            org.jclouds*;version="${jclouds.version}",-->
                             *; resolution:=optional
                         </Import-Package>
                         <DynamicImport-Package>*</DynamicImport-Package>
-                        
+
                         <Axis2Deployer>CloudControllerDeployer</Axis2Deployer>
-                        
+
                     </instructions>
                 </configuration>
             </plugin>
@@ -91,171 +92,186 @@
         <dependency>
             <groupId>org.wso2.carbon</groupId>
             <artifactId>org.wso2.carbon.core</artifactId>
-           </dependency>
+        </dependency>
         <dependency>
             <groupId>org.wso2.carbon</groupId>
             <artifactId>org.wso2.carbon.utils</artifactId>
-           </dependency>
+        </dependency>
         <dependency>
             <groupId>org.apache.stratos</groupId>
             <artifactId>org.apache.stratos.messaging</artifactId>
             <version>${project.version}</version>
         </dependency>
-               <dependency>
-         <groupId>org.reflections</groupId>
-         <artifactId>reflections</artifactId>
-         <version>0.9.9-RC1</version>
-     </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>17.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.jcraft</groupId>
+            <artifactId>jsch.agentproxy.jsch</artifactId>
+            <version>0.0.7</version>
+        </dependency>
+        <dependency>
+            <groupId>com.jcraft</groupId>
+            <artifactId>jsch.agentproxy.core</artifactId>
+            <version>0.0.7</version>
+        </dependency>
+        <dependency>
+            <groupId>com.jcraft</groupId>
+            <artifactId>jsch.agentproxy.connector-factory</artifactId>
+            <version>0.0.7</version>
+        </dependency>
+        <dependency>
+            <groupId>org.reflections</groupId>
+            <artifactId>reflections</artifactId>
+            <version>0.9.9-RC1</version>
+        </dependency>
 
 
-<dependency>
-    <groupId>org.wso2.carbon</groupId>
-    <artifactId>org.wso2.carbon.securevault</artifactId>
-    <version>${wso2carbon.version}</version>
-</dependency>
-<dependency>
-    <groupId>org.hectorclient.wso2</groupId>
-    <artifactId>hector-core</artifactId>
-    <version>1.1.0.wso2v1</version>
-    <exclusions>
-        <exclusion>
-            <groupId>com.google.guava.wso2</groupId>
-            <artifactId>guava</artifactId>
-        </exclusion>
-    </exclusions>
-       
-</dependency>
-       <dependency>
-           <groupId>com.google.guava</groupId>
-           <artifactId>guava</artifactId>
-           <version>14.0.1</version>
-       </dependency>
-<dependency>
-        <groupId>org.wso2.andes.wso2</groupId>
-        <artifactId>andes-client</artifactId>
-        <version>0.13.wso2v3</version>
-    </dependency>
-<dependency>
-        <groupId>org.apache.geronimo.specs.wso2</groupId>
-        <artifactId>geronimo-jms_1.1_spec</artifactId>
-        <version>${orbit.version.geronimo-jms_1.1_spec}</version>
-    </dependency>
+        <dependency>
+            <groupId>org.wso2.carbon</groupId>
+            <artifactId>org.wso2.carbon.securevault</artifactId>
+            <version>${wso2carbon.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.hectorclient.wso2</groupId>
+            <artifactId>hector-core</artifactId>
+            <version>1.1.0.wso2v1</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.google.guava.wso2</groupId>
+                    <artifactId>guava</artifactId>
+                </exclusion>
+            </exclusions>
 
-<dependency>
-    <groupId>org.wso2.carbon</groupId>
-    <artifactId>org.wso2.carbon.analytics.hive.stub</artifactId>
-       <version>4.2.0</version>
-</dependency>
+        </dependency>
+        <dependency>
+            <groupId>org.wso2.andes.wso2</groupId>
+            <artifactId>andes-client</artifactId>
+            <version>0.13.wso2v3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs.wso2</groupId>
+            <artifactId>geronimo-jms_1.1_spec</artifactId>
+            <version>${orbit.version.geronimo-jms_1.1_spec}</version>
+        </dependency>
 
-               <!-- jclouds dependencies -->
-               <dependency>
-                       <groupId>org.apache.jclouds</groupId>
-                       <artifactId>jclouds-core</artifactId>
-                       <version>${jclouds.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.jclouds</groupId>
-                       <artifactId>jclouds-compute</artifactId>
-                       <version>${jclouds.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.jclouds.driver</groupId>
-                       <artifactId>jclouds-bouncycastle</artifactId>
-                       <version>${jclouds.version}</version>
-                       <exclusions>
-                               <exclusion>
-                                       <groupId>org.bouncycastle</groupId>
-                                       <artifactId>bcprov-jdk16</artifactId>
-                               </exclusion>
-                       </exclusions>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.jclouds.driver</groupId>
-                       <artifactId>jclouds-sshj</artifactId>
-                       <version>${jclouds.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.jclouds.driver</groupId>
-                       <artifactId>jclouds-log4j</artifactId>
-                       <version>${jclouds.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.jclouds.driver</groupId>
-                       <artifactId>jclouds-enterprise</artifactId>
-                       <version>${jclouds.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.stratos</groupId>
-                       <artifactId>ec2</artifactId>
-                       <version>1.7.1-stratos</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.stratos</groupId>
-                       <artifactId>aws-ec2</artifactId>
-                       <version>1.7.1-stratos</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.stratos</groupId>
-                       <artifactId>openstack-nova</artifactId>
-                       <version>1.7.1-stratos</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.jclouds.api</groupId>
-                       <artifactId>openstack-keystone</artifactId>
-                       <version>${jclouds.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.jclouds</groupId>
-                       <artifactId>jclouds-scriptbuilder</artifactId>
-                       <version>${jclouds.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.stratos</groupId>
-                       <artifactId>vcloud</artifactId>
-                       <version>1.7.1-stratos</version>
-               </dependency>
+        <dependency>
+            <groupId>org.wso2.carbon</groupId>
+            <artifactId>org.wso2.carbon.analytics.hive.stub</artifactId>
+            <version>4.2.0</version>
+        </dependency>
 
-         <dependency>
-             <groupId>com.jamesmurty.utils.wso2</groupId>
-             <artifactId>java-xmlbuilder</artifactId>
-             <version>0.4.wso2v1</version>
-         </dependency>
-         <dependency>
-           <groupId>com.google.code.gson</groupId>
-           <artifactId>gson</artifactId>
-           <version>${gson2.version}</version>
-         </dependency>
-         <dependency>
-           <groupId>com.google.guice.wso2</groupId>
-           <artifactId>guice</artifactId>
-           <version>${google.guice.wso2.version}</version>
-         </dependency>
-         <dependency>
-           <groupId>com.google.guice.assistedinject.wso2</groupId>
-           <artifactId>guice-assistedinject</artifactId>
-           <version>${com.google.guice.assistedinject.wso2.version}</version>
-         </dependency>
-         <dependency>
-           <groupId>com.sun.jersey</groupId>
-           <artifactId>jersey-core</artifactId>
-           <version>${sun.jersey.version}</version>
-         </dependency>
-         <dependency>
-          <groupId>net.oauth.core</groupId>
-          <artifactId>oauth</artifactId>
-          <version>20100527</version>
-         </dependency>
-         <dependency>
-           <groupId>commons-io.wso2</groupId>
-           <artifactId>commons-io</artifactId>
-           <version>2.0.0.wso2v1</version>
-         </dependency>
-         <dependency>
-           <groupId>rhino.wso2</groupId>
-           <artifactId>js</artifactId>
-           <version>1.7.0.R1-wso2v3</version>
-         </dependency>
-         <dependency>
+        <!-- jclouds dependencies -->
+        <dependency>
+            <groupId>org.apache.jclouds</groupId>
+            <artifactId>jclouds-core</artifactId>
+            <version>${jclouds.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jclouds</groupId>
+            <artifactId>jclouds-compute</artifactId>
+            <version>${jclouds.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jclouds.driver</groupId>
+            <artifactId>jclouds-bouncycastle</artifactId>
+            <version>${jclouds.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.bouncycastle</groupId>
+                    <artifactId>bcprov-jdk16</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jclouds.driver</groupId>
+            <artifactId>jclouds-sshj</artifactId>
+            <version>${jclouds.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jclouds.driver</groupId>
+            <artifactId>jclouds-log4j</artifactId>
+            <version>${jclouds.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jclouds.driver</groupId>
+            <artifactId>jclouds-enterprise</artifactId>
+            <version>${jclouds.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.stratos</groupId>
+            <artifactId>ec2</artifactId>
+            <version>1.8.0-stratos</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.stratos</groupId>
+            <artifactId>aws-ec2</artifactId>
+            <version>1.8.0-stratos</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.stratos</groupId>
+            <artifactId>openstack-nova</artifactId>
+            <version>1.8.0-stratos</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jclouds.api</groupId>
+            <artifactId>openstack-keystone</artifactId>
+            <version>${jclouds.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jclouds</groupId>
+            <artifactId>jclouds-scriptbuilder</artifactId>
+            <version>${jclouds.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.stratos</groupId>
+            <artifactId>vcloud</artifactId>
+            <version>1.8.0-stratos</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.jamesmurty.utils.wso2</groupId>
+            <artifactId>java-xmlbuilder</artifactId>
+            <version>0.4.wso2v1</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>${gson2.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guice.wso2</groupId>
+            <artifactId>guice</artifactId>
+            <version>${google.guice.wso2.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guice.assistedinject.wso2</groupId>
+            <artifactId>guice-assistedinject</artifactId>
+            <version>${com.google.guice.assistedinject.wso2.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.jersey</groupId>
+            <artifactId>jersey-core</artifactId>
+            <version>${sun.jersey.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>net.oauth.core</groupId>
+            <artifactId>oauth</artifactId>
+            <version>20100527</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-io.wso2</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.0.0.wso2v1</version>
+        </dependency>
+        <dependency>
+            <groupId>rhino.wso2</groupId>
+            <artifactId>js</artifactId>
+            <version>1.7.0.R1-wso2v3</version>
+        </dependency>
+        <dependency>
             <groupId>org.wso2.carbon</groupId>
             <artifactId>org.wso2.carbon.databridge.agent.thrift</artifactId>
             <version>4.2.0</version>

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java
index 722b4b2..1c953a8 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java
@@ -18,6 +18,7 @@
  */
 package org.apache.stratos.cloud.controller.iaases;
 
+import com.google.common.base.Optional;
 import com.google.common.base.Predicate;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
@@ -44,10 +45,8 @@ import org.jclouds.compute.domain.NodeMetadataBuilder;
 import org.jclouds.compute.domain.Template;
 import org.jclouds.compute.domain.TemplateBuilder;
 import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.ec2.options.CreateSnapshotOptions;
 import org.jclouds.openstack.nova.v2_0.NovaApi;
 import org.jclouds.openstack.nova.v2_0.NovaApiMetadata;
-import org.jclouds.openstack.nova.v2_0.NovaAsyncApi;
 import org.jclouds.openstack.nova.v2_0.compute.options.NovaTemplateOptions;
 import org.jclouds.openstack.nova.v2_0.domain.FloatingIP;
 import org.jclouds.openstack.nova.v2_0.domain.HostAggregate;
@@ -55,16 +54,14 @@ import org.jclouds.openstack.nova.v2_0.domain.KeyPair;
 import org.jclouds.openstack.nova.v2_0.domain.Network;
 import org.jclouds.openstack.nova.v2_0.domain.Volume;
 import org.jclouds.openstack.nova.v2_0.domain.VolumeAttachment;
-import org.jclouds.openstack.nova.v2_0.domain.VolumeSnapshot;
 import org.jclouds.openstack.nova.v2_0.domain.zonescoped.AvailabilityZone;
-import org.jclouds.openstack.nova.v2_0.extensions.AvailabilityZoneAPI;
+import org.jclouds.openstack.nova.v2_0.extensions.AvailabilityZoneApi;
 import org.jclouds.openstack.nova.v2_0.extensions.FloatingIPApi;
 import org.jclouds.openstack.nova.v2_0.extensions.HostAggregateApi;
 import org.jclouds.openstack.nova.v2_0.extensions.KeyPairApi;
 import org.jclouds.openstack.nova.v2_0.extensions.VolumeApi;
 import org.jclouds.openstack.nova.v2_0.extensions.VolumeAttachmentApi;
 import org.jclouds.openstack.nova.v2_0.options.CreateVolumeOptions;
-import org.jclouds.openstack.nova.v2_0.options.CreateVolumeSnapshotOptions;
 import org.jclouds.rest.RestContext;
 
 import java.util.ArrayList;
@@ -202,8 +199,8 @@ public class OpenstackNovaIaas extends Iaas {
 
                ComputeServiceContext context = iaasInfo.getComputeService()
                                .getContext();
-               RestContext<NovaApi, NovaAsyncApi> nova = context.unwrap();
-               KeyPairApi api = 
nova.getApi().getKeyPairExtensionForZone(region).get();
+        NovaApi novaApi = context.unwrapApi(NovaApi.class);
+               KeyPairApi api = 
novaApi.getKeyPairExtensionForZone(region).get();
 
                KeyPair keyPair = api.createWithPublicKey(keyPairName, 
publicKey);
 
@@ -231,8 +228,8 @@ public class OpenstackNovaIaas extends Iaas {
 
                String region = 
ComputeServiceBuilderUtil.extractRegion(iaasInfo);
 
-               RestContext<NovaApi, NovaAsyncApi> nova = context.unwrap();
-               FloatingIPApi floatingIp = 
nova.getApi().getFloatingIPExtensionForZone(
+        NovaApi novaApi = context.unwrapApi(NovaApi.class);
+               FloatingIPApi floatingIp = 
novaApi.getFloatingIPExtensionForZone(
                                region).get();
 
                String ip = null;
@@ -314,11 +311,10 @@ public class OpenstackNovaIaas extends Iaas {
                ComputeServiceContext context = iaasInfo.getComputeService()
                                .getContext();
 
-               NovaApi novaClient = 
context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
                String region = 
ComputeServiceBuilderUtil.extractRegion(iaasInfo);
 
-               FloatingIPApi floatingIp = 
novaClient.getFloatingIPExtensionForZone(
-                               region).get();
+               FloatingIPApi floatingIp = 
context.unwrapApi(NovaApi.class).getFloatingIPExtensionForZone(
+                region).get();
 
                if(log.isDebugEnabled()) {
                        
log.debug("OpenstackNovaIaas:associatePredefinedAddress:floatingip:" + 
floatingIp);
@@ -406,9 +402,8 @@ public class OpenstackNovaIaas extends Iaas {
 
                String region = 
ComputeServiceBuilderUtil.extractRegion(iaasInfo);
 
-               RestContext<NovaApi, NovaAsyncApi> nova = context.unwrap();
-               FloatingIPApi floatingIPApi = nova.getApi()
-                               .getFloatingIPExtensionForZone(region).get();
+        NovaApi novaApi = context.unwrapApi(NovaApi.class);
+               FloatingIPApi floatingIPApi = 
novaApi.getFloatingIPExtensionForZone(region).get();
 
                for (FloatingIP floatingIP : floatingIPApi.list()) {
                        if (floatingIP.getIp().equals(ip)) {
@@ -442,8 +437,8 @@ public class OpenstackNovaIaas extends Iaas {
         }
         
         ComputeServiceContext context = 
iaasInfo.getComputeService().getContext();
-        RestContext<NovaApi, NovaAsyncApi> nova = context.unwrap();
-        Set<String> zones = nova.getApi().getConfiguredZones();
+        NovaApi novaApi = context.unwrapApi(NovaApi.class);
+        Set<String> zones = novaApi.getConfiguredZones();
         for (String configuredZone : zones) {
             if (region.equalsIgnoreCase(configuredZone)) {
                 if (log.isDebugEnabled()) {
@@ -470,9 +465,9 @@ public class OpenstackNovaIaas extends Iaas {
             throw new InvalidZoneException(msg);
         }
         ComputeServiceContext context = 
iaasInfo.getComputeService().getContext();
-        RestContext<NovaApi, NovaAsyncApi> nova = context.unwrap();
-        AvailabilityZoneAPI zoneApi = 
nova.getApi().getAvailabilityZoneApi(region);
-        for (AvailabilityZone z : zoneApi.list()) {
+        NovaApi novaApi = context.unwrapApi(NovaApi.class);
+        Optional<? extends AvailabilityZoneApi> availabilityZoneApi = 
novaApi.getAvailabilityZoneApi(region);
+        for (AvailabilityZone z : availabilityZoneApi.get().list()) {
                        
                if (zone.equalsIgnoreCase(z.getName())) {
                        if (log.isDebugEnabled()) {
@@ -498,8 +493,8 @@ public class OpenstackNovaIaas extends Iaas {
             throw new InvalidHostException(msg);
         }
         ComputeServiceContext context = 
iaasInfo.getComputeService().getContext();
-        RestContext<NovaApi, NovaAsyncApi> nova = context.unwrap();
-        HostAggregateApi hostApi = 
nova.getApi().getHostAggregateExtensionForZone(zone).get();
+        NovaApi novaApi = context.unwrapApi(NovaApi.class);
+        HostAggregateApi hostApi = 
novaApi.getHostAggregateExtensionForZone(zone).get();
         for (HostAggregate hostAggregate : hostApi.list()) {
             for (String configuredHost : hostAggregate.getHosts()) {
                 if (host.equalsIgnoreCase(configuredHost)) {
@@ -532,9 +527,9 @@ public class OpenstackNovaIaas extends Iaas {
             return null;
         }
         ComputeServiceContext context = 
iaasInfo.getComputeService().getContext();
-        
-        RestContext<NovaApi, NovaAsyncApi> nova = context.unwrap();
-        VolumeApi volumeApi = 
nova.getApi().getVolumeExtensionForZone(region).get();
+
+        NovaApi novaApi = context.unwrapApi(NovaApi.class);
+        VolumeApi volumeApi = novaApi.getVolumeExtensionForZone(region).get();
         Volume volume;
         if(StringUtils.isEmpty(snapshotId)){
                if(log.isDebugEnabled()){
@@ -581,9 +576,8 @@ public class OpenstackNovaIaas extends Iaas {
         IaasProvider iaasInfo = getIaasProvider();
         String region = ComputeServiceBuilderUtil.extractRegion(iaasInfo);
         ComputeServiceContext context = 
iaasInfo.getComputeService().getContext();;
-        RestContext<NovaApi, NovaAsyncApi> nova = context.unwrap();
-        VolumeApi volumeApi = 
nova.getApi().getVolumeExtensionForZone(region).get();
-        VolumeAttachmentApi volumeAttachmentApi = 
nova.getApi().getVolumeAttachmentExtensionForZone(region).get();
+        NovaApi novaApi = context.unwrapApi(NovaApi.class);
+        VolumeApi volumeApi = novaApi.getVolumeExtensionForZone(region).get();
         Volume.Status volumeStatus = this.getVolumeStatus(volumeApi, volumeId);
 
         while(volumeStatus != expectedStatus){
@@ -633,9 +627,9 @@ public class OpenstackNovaIaas extends Iaas {
             return null;
         }
 
-        RestContext<NovaApi, NovaAsyncApi> nova = context.unwrap();
-        VolumeApi volumeApi = 
nova.getApi().getVolumeExtensionForZone(region).get();
-        VolumeAttachmentApi volumeAttachmentApi = 
nova.getApi().getVolumeAttachmentExtensionForZone(region).get();
+        NovaApi novaApi = context.unwrapApi(NovaApi.class);
+        VolumeApi volumeApi = novaApi.getVolumeExtensionForZone(region).get();
+        VolumeAttachmentApi volumeAttachmentApi = 
novaApi.getVolumeAttachmentExtensionForZone(region).get();
 
         Volume.Status volumeStatus = this.getVolumeStatus(volumeApi, volumeId);
 
@@ -702,8 +696,8 @@ public class OpenstackNovaIaas extends Iaas {
             log.debug(String.format("Starting to detach volume %s from the 
instance %s", volumeId, instanceId));
         }
 
-               RestContext<NovaApi, NovaAsyncApi> nova = context.unwrap();
-        VolumeAttachmentApi api = 
nova.getApi().getVolumeAttachmentExtensionForZone(region).get();
+        NovaApi novaApi = context.unwrapApi(NovaApi.class);
+        VolumeAttachmentApi api = 
novaApi.getVolumeAttachmentExtensionForZone(region).get();
         if (api.detachVolumeFromServer(volumeId, instanceId)) {
                log.info(String.format("Detachment of Volume [id]: %s from 
instance [id]: %s was successful. [region] : %s of Iaas : %s", volumeId, 
instanceId, region, iaasInfo));
         }else{
@@ -725,9 +719,9 @@ public class OpenstackNovaIaas extends Iaas {
                        log.fatal(String.format("Cannot delete the volume [id]: 
%s of the [region] : %s of Iaas : %s", volumeId, region, iaasInfo));
                        return;
                }
-               
-               RestContext<NovaApi, NovaAsyncApi> nova = context.unwrap();
-               VolumeApi api = 
nova.getApi().getVolumeExtensionForZone(region).get();
+
+        NovaApi novaApi = context.unwrapApi(NovaApi.class);
+               VolumeApi api = novaApi.getVolumeExtensionForZone(region).get();
         if (api.delete(volumeId)) {
                log.info(String.format("Deletion of Volume [id]: %s was 
successful. [region] : %s of Iaas : %s", volumeId, region, iaasInfo));
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.manager.console/console/cartridge_info.jag
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/cartridge_info.jag 
b/components/org.apache.stratos.manager.console/console/cartridge_info.jag
index 653e31a..3b45af6 100644
--- a/components/org.apache.stratos.manager.console/console/cartridge_info.jag
+++ b/components/org.apache.stratos.manager.console/console/cartridge_info.jag
@@ -23,11 +23,15 @@ var caramel = require('caramel');
 var error = [];
 var utils = require('/util/utility.jag');
 var process = require('process');
- var log = new Log('utility.cartridgeInfo');
+var log = new Log('utility.cartridgeInfo');
 var alias = request.getParameter("alias");
 var lbCluster = {};
 var cartridgeInfo = utils.consoleAppUtil.getCartridgeInfo(alias);
 
+if(cartridgeInfo == null || cartridgeInfo == undefined || cartridgeInfo == ""){
+    cartridgeInfo = {};
+}
+
 if(cartridgeInfo.Error != undefined){
     error.push(cartridgeInfo.Error);
 }else{
@@ -43,11 +47,17 @@ if(cartridgeInfo.Error != undefined){
     }
     */
     lbCluster = utils.consoleAppUtil.getLBClusterInfo();
-            if(lbCluster.Error != undefined){
-                error.push(lbCluster.Error);
+    if(lbCluster == null || lbCluster == undefined || lbCluster == ""){
+        lbCluster = {};
     }
-
+    if(lbCluster.Error != undefined){
+        error.push(lbCluster.Error);
+    }
+    
     var clusterInfo = 
utils.consoleAppUtil.getClusterInfoWithAlias(cartridgeInfo.cartridge.cartridgeType,
 alias);
+    if(clusterInfo == null || clusterInfo == undefined || clusterInfo == ""){
+        clusterInfo = {};
+    }
     if(clusterInfo.Error != undefined){
         error.push(clusterInfo.Error);
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.manager.console/console/cartridge_info_sg.jag
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/cartridge_info_sg.jag 
b/components/org.apache.stratos.manager.console/console/cartridge_info_sg.jag
index 0d1c521..7c874f3 100644
--- 
a/components/org.apache.stratos.manager.console/console/cartridge_info_sg.jag
+++ 
b/components/org.apache.stratos.manager.console/console/cartridge_info_sg.jag
@@ -27,6 +27,10 @@ var process = require('process');
 var serviceGroup = request.getParameter("serviceGroup");
 //Get all alias for a service group
 var cartridges = utils.consoleAppUtil.getCartridgeServiceGroup(serviceGroup);
+
+if(cartridges == null || cartridges == undefined || cartridges == ""){
+    cartridges = {};
+}
 cartridges=cartridges.cartridge;
 
 if(cartridges.Error != undefined){
@@ -41,24 +45,31 @@ if(cartridges.Error != undefined){
         var alias = cartridges[i].cartridgeAlias;
         var lbCluster = {};
 
-           lbCluster = utils.consoleAppUtil.getLBClusterInfo();
-           if(lbCluster.Error != undefined){
-                error.push(lbCluster.Error);
-            }else{
-                //cartridges[i].lbClusterinfo = 
{member:[{memberIp:"foo"},{}]};//lbCluster.cluster;
-                //cartridges[i].lbClusterinfo = lbCluster.cluster[0];
-                cartridges[i].lbclusterinfo = lbCluster.cluster[0];
-            }
+        lbCluster = utils.consoleAppUtil.getLBClusterInfo();
+        if(lbCluster == null || lbCluster == undefined || lbCluster == ""){
+            lbCluster = {};
+        }
+        if(lbCluster.Error != undefined){
+            error.push(lbCluster.Error);
+        }else{
+            //cartridges[i].lbClusterinfo = 
{member:[{memberIp:"foo"},{}]};//lbCluster.cluster;
+            //cartridges[i].lbClusterinfo = lbCluster.cluster[0];
+            cartridges[i].lbclusterinfo = lbCluster.cluster[0];
+        }
+        
         //Getting the clusterInfo and putting it to the relevant cartridge json
         var clusterInfo = 
utils.consoleAppUtil.getClusterInfoWithAlias(cartridgeInfo.cartridgeType, 
alias);
+        if(clusterInfo == null || clusterInfo == undefined || clusterInfo == 
""){
+           clusterInfo = {};
+        }
         if(clusterInfo.Error != undefined){
             error.push(clusterInfo.Error);
         }else{
             cartridges[i].clusterInfo = clusterInfo.cluster[0];
         }
-
     }
 }
+
 var bamInfo 
={bamip:process.getProperty('bam.ip'),bamport:process.getProperty('bam.port')};
 caramel.render({
     cartridges:cartridges,

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.manager.console/console/cartridges.jag
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/cartridges.jag 
b/components/org.apache.stratos.manager.console/console/cartridges.jag
index 3060bc1..3403427 100644
--- a/components/org.apache.stratos.manager.console/console/cartridges.jag
+++ b/components/org.apache.stratos.manager.console/console/cartridges.jag
@@ -24,9 +24,14 @@ var error = [];
 var utils = require('/util/utility.jag');
 var process = require('process');
 var availableCartridges = utils.consoleAppUtil.getCartridges();
+
+if(availableCartridges == null || availableCartridges == undefined || 
availableCartridges == ""){
+   availableCartridges = {};
+}
 if(availableCartridges.Error != undefined){
     error.push(availableCartridges.Error);
 }
+
 var bamInfo 
={bamip:process.getProperty('bam.ip'),bamport:process.getProperty('bam.port')};
 caramel.render({
     cartridges:availableCartridges,

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.manager.console/console/configure_stratos.jag
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/configure_stratos.jag 
b/components/org.apache.stratos.manager.console/console/configure_stratos.jag
index 6e8435f..8718bbc 100644
--- 
a/components/org.apache.stratos.manager.console/console/configure_stratos.jag
+++ 
b/components/org.apache.stratos.manager.console/console/configure_stratos.jag
@@ -39,22 +39,29 @@ var config_status = utils.consoleAppUtil.getConfigStatus();
 
 if(wizard.step == 1){
     var step_data =  utils.consoleAppUtil.getPartitions();
+    if(step_data == null || step_data == undefined || step_data == ""){
+        step_data = {};
+    }
     if(step_data.Error != undefined){
         error.push(step_data.Error);
     }else{
         step_data = step_data.partition;
     }
-
 }else if(wizard.step == 2){
     step_data =  utils.consoleAppUtil.getPolicyAutoScale();
+    if(step_data == null || step_data == undefined || step_data == ""){
+        step_data = {};
+    }
     if(step_data.Error != undefined){
         error.push(step_data.Error);
     }else{
         step_data = step_data.autoscalePolicy;
     }
-
 }else if(wizard.step == 3){
     step_data =  utils.consoleAppUtil.getPolicyDeployment();
+    if(step_data == null || step_data == undefined || step_data == ""){
+        step_data = {};
+    }
     if(step_data.Error != undefined){
         error.push(step_data.Error);
     }else{
@@ -62,6 +69,9 @@ if(wizard.step == 1){
     }
 }else if(wizard.step == 4){
     step_data =  utils.consoleAppUtil.getLbCartridges();
+    if(step_data == null || step_data == undefined || step_data == ""){
+        step_data = {};
+    }
     if(step_data.Error != undefined){
         error.push(step_data.Error);
     }else{
@@ -69,25 +79,32 @@ if(wizard.step == 1){
     }
 }else if(wizard.step == 5){
     step_data =  utils.consoleAppUtil.getCartridges();
+    if(step_data == null || step_data == undefined || step_data == ""){
+        step_data = {};
+    }
     if(step_data.Error != undefined){
         error.push(step_data.Error);
     }else{
         step_data = step_data.cartridge;
-        for(var i=0;i<step_data.length;i++) {
-            if(step_data[i].loadBalancer == true ) {
-                step_data.splice(i,1);
-                i = i - 1;
-            }
-        }
+           for(var i=0;i<step_data.length;i++) {
+               if(step_data[i].loadBalancer == true ) {
+                   step_data.splice(i,1);
+                   i = i - 1;
+               }
+           }
     }
 }else if(wizard.step == 6){
     step_data = utils.consoleAppUtil.getServices();
+    if(step_data == null || step_data == undefined || step_data == ""){
+        step_data = {};
+    }
     if(step_data.Error != undefined){
         error.push(step_data.Error);
     }else{
         step_data = step_data.serviceDefinitionBean;
     }
 }
+
 caramel.render({
     step_data:step_data,
     wizard:wizard,

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.manager.console/console/configure_stratos_wizard.jag
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/configure_stratos_wizard.jag
 
b/components/org.apache.stratos.manager.console/console/configure_stratos_wizard.jag
index ac7f802..314b1a7 100644
--- 
a/components/org.apache.stratos.manager.console/console/configure_stratos_wizard.jag
+++ 
b/components/org.apache.stratos.manager.console/console/configure_stratos_wizard.jag
@@ -35,16 +35,21 @@ var wizard = {
 
 var utils = require('/util/utility.jag');
 
-
 if(wizard.step == 1){
     var step_data =  utils.consoleAppUtil.getPartitions();
+    if(step_data == null || step_data == undefined || step_data == ""){
+        step_data = {};
+    }
     if(step_data.Error != undefined){
         error.push(step_data.Error);
-    }else{
+    }else{ 
         step_data = step_data.partition;
-    }
+    }   
 }else if(wizard.step == 2){
     step_data =  utils.consoleAppUtil.getPolicyAutoScale();
+    if(step_data == null || step_data == undefined || step_data == ""){
+        step_data = {};
+    }
     if(step_data.Error != undefined){
         error.push(step_data.Error);
     }else{
@@ -52,6 +57,9 @@ if(wizard.step == 1){
     }
 }else if(wizard.step == 3){
     step_data =  utils.consoleAppUtil.getPolicyDeployment();
+    if(step_data == null || step_data == undefined || step_data == ""){
+        step_data = {};
+    }
     if(step_data.Error != undefined){
         error.push(step_data.Error);
     }else{
@@ -59,32 +67,42 @@ if(wizard.step == 1){
     }
 }else if(wizard.step == 4){
     step_data =  utils.consoleAppUtil.getLbCartridges();
+    if(step_data == null || step_data == undefined || step_data == ""){
+        step_data = {};
+    }
     if(step_data.Error != undefined){
         error.push(step_data.Error);
     }else{
         step_data = step_data.cartridge;
     }
-}else if(wizard.step == 5){
+ }else if(wizard.step == 5){
     step_data =  utils.consoleAppUtil.getCartridges();
+    if(step_data == null || step_data == undefined || step_data == ""){
+        step_data = {};
+    }
     if(step_data.Error != undefined){
         error.push(step_data.Error);
     }else{
         step_data = step_data.cartridge;
-        for(var i=0;i<step_data.length;i++) {
-            if(step_data[i].loadBalancer == true ) {
-                step_data.splice(i,1);
-                i = i - 1;
-            }
-        }
+           for(var i=0;i<step_data.length;i++) {
+               if(step_data[i].loadBalancer == true ) {
+                   step_data.splice(i,1);
+                   i = i - 1;
+               }
+          }
     }
 }else if(wizard.step == 6){
     step_data = utils.consoleAppUtil.getServices();
+    if(step_data == null || step_data == undefined || step_data == ""){
+        step_data = {};
+    }
     if(step_data.Error != undefined){
         error.push(step_data.Error);
     }else{
         step_data = step_data.serviceDefinitionBean;
     }
 }
+
 var bamInfo 
={bamip:process.getProperty('bam.ip'),bamport:process.getProperty('bam.port')};
 caramel.render({
     step_data:step_data,

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.manager.console/console/index.jag
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager.console/console/index.jag 
b/components/org.apache.stratos.manager.console/console/index.jag
index e99bcd1..368bade 100644
--- a/components/org.apache.stratos.manager.console/console/index.jag
+++ b/components/org.apache.stratos.manager.console/console/index.jag
@@ -27,6 +27,10 @@ var process = require('process');
 
 var subscribedCartridges =  utils.consoleAppUtil.getSubscribedCartridges();
 
+if(subscribedCartridges == null || subscribedCartridges == undefined || 
subscribedCartridges == ""){
+    subscribedCartridges = {};
+}
+
 var errorInSession = session.get("errorinbackend");
 if(errorInSession != undefined) {
    session.remove("errorinbackend");
@@ -34,7 +38,7 @@ if(errorInSession != undefined) {
 }
 
 if(subscribedCartridges.Error != undefined){
-    error.push(subscribedCartridges.Error);
+   error.push(subscribedCartridges.Error);
 }
 
 var bamInfo 
={bamip:process.getProperty('bam.ip'),bamport:process.getProperty('bam.port')};

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.manager.console/console/subscribe_cartridge.jag
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/subscribe_cartridge.jag 
b/components/org.apache.stratos.manager.console/console/subscribe_cartridge.jag
index c73208b..b0b06c2 100644
--- 
a/components/org.apache.stratos.manager.console/console/subscribe_cartridge.jag
+++ 
b/components/org.apache.stratos.manager.console/console/subscribe_cartridge.jag
@@ -30,13 +30,31 @@ var deploymentPolicies = 
utils.consoleAppUtil.getApplicableDeploymentPolicies(ty
 var mtServiceInfo = utils.consoleAppUtil.getServiceInfo(type);
 var cartridge = utils.consoleAppUtil.getSingleTenantCartridgeInfo(type);
 
+if(autoScalePolicies == null || autoScalePolicies == undefined || 
autoScalePolicies == ""){
+    autoScalePolicies = {};
+}
 if(autoScalePolicies.Error != undefined ){
     error.push(autoScalePolicies.Error);
-}if(deploymentPolicies.Error != undefined ){
+}
+
+if(deploymentPolicies == null || deploymentPolicies == undefined || 
deploymentPolicies == ""){
+    deploymentPolicies = {};
+}
+if(deploymentPolicies.Error != undefined ){
     error.push(deploymentPolicies.Error);
-}if(cartridge.Error != undefined ){
+}
+
+if(cartridge == null || cartridge == undefined || cartridge == ""){
+    cartridge = {};
+}
+if(cartridge.Error != undefined ){
     error.push(cartridge.Error);
-}if(mtServiceInfo.Error != undefined ){
+}
+
+if(mtServiceInfo == null || mtServiceInfo == undefined || mtServiceInfo == ""){
+    mtServiceInfo = {};
+}
+if(mtServiceInfo.Error != undefined ){
     error.push(mtServiceInfo.Error);
 }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.manager.console/console/tenant_management.jag
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/tenant_management.jag 
b/components/org.apache.stratos.manager.console/console/tenant_management.jag
index f805717..df20752 100644
--- 
a/components/org.apache.stratos.manager.console/console/tenant_management.jag
+++ 
b/components/org.apache.stratos.manager.console/console/tenant_management.jag
@@ -25,9 +25,14 @@ var error = [];
 var utils = require('/util/utility.jag');
 var process = require('process');
 var tenants =  utils.consoleAppUtil.getTenants();
+
+if(tenants == null || tenants == undefined || tenants == ""){
+    tenants = {};
+}
 if(tenants.Error != undefined){
     error.push(tenants.Error);
 }
+
 var bamInfo 
={bamip:process.getProperty('bam.ip'),bamport:process.getProperty('bam.port')};
 caramel.render({
     tenants:tenants,

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/configure_stratos.js
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/configure_stratos.js
 
b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/configure_stratos.js
index 46aab9f..d258013 100755
--- 
a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/configure_stratos.js
+++ 
b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/configure_stratos.js
@@ -89,8 +89,10 @@ var render = function (theme, data, meta, require) {
     session.remove("get-status");
     session.remove("deploy-status");
 
-    for(var i=0;i<step_data.length;i++){
-        step_data[i].json_string = stringify(step_data[i]);
+    if(step_data != null && step_data != undefined){
+      for(var i=0;i<step_data.length;i++){
+          step_data[i].json_string = stringify(step_data[i]);
+      }
     }
     var log = new Log();
     theme('index', {

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/configure_stratos_wizard.js
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/configure_stratos_wizard.js
 
b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/configure_stratos_wizard.js
index 2c2d4c6..804c6df 100755
--- 
a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/configure_stratos_wizard.js
+++ 
b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/configure_stratos_wizard.js
@@ -87,9 +87,13 @@ var render = function (theme, data, meta, require) {
     }else{
         title = 'Configure Stratos Wizard Finished';
     }
-    for(var i=0;i<step_data.length;i++){
-        step_data[i].json_string = stringify(step_data[i]);
+    
+    if(step_data != null && step_data != undefined){
+      for(var i=0;i<step_data.length;i++){
+          step_data[i].json_string = stringify(step_data[i]);
+      }
     }
+
     theme('index', {
         body: [
             {

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/index.js
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/index.js
 
b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/index.js
index 47aaf53..fa6e688 100755
--- 
a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/index.js
+++ 
b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/index.js
@@ -23,6 +23,9 @@ var render = function (theme, data, meta, require) {
       // Re-create the data structure of the cartridges.
     var log = new Log();
     if(data.error.length == 0 ){
+        if(data.mycartridges == null || data.mycartridges == undefined || 
data.mycartridges == ""){
+          data.mycartridges = {};
+        }
         var cartridges= data.mycartridges.cartridge,cartridges_new =[];
         session.remove("get-status");
         session.remove("deploy-status");

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/subscribe_cartridge.js
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/subscribe_cartridge.js
 
b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/subscribe_cartridge.js
index 92ec3f3..04270a5 100755
--- 
a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/subscribe_cartridge.js
+++ 
b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/subscribe_cartridge.js
@@ -25,14 +25,26 @@ var render = function (theme, data, meta, require) {
         if(cartridge == undefined){
             cartridge = data.cartridge;
         }
+        var mtServiceInfo = {}
+        if(data.mtServiceInfo != null || data.mtServiceInfo != undefined && 
data.mtServiceInfo != ""){
+            mtServiceInfo = data.mtServiceInfo.serviceDefinitionBean;
+        }
+        var autoScalePolicies = {}
+        if(data.autoScalePolicies != null && data.autoScalePolicies != 
undefined && data.autoScalePolicies != ""){
+            autoScalePolicies = data.autoScalePolicies.autoscalePolicy;
+        }
+        var deploymentPolicies = {}
+        if(data.deploymentPolicies != null && data.deploymentPolicies != 
undefined && data.deploymentPolicies != ""){
+            deploymentPolicies = data.deploymentPolicies.deploymentPolicy;     
+        } 
         theme('index', {
             body: [
                 {
                     partial: 'subscribe_cartridge',
                     context: {
-                        
autoScalePolicies:data.autoScalePolicies.autoscalePolicy,
-                        
deploymentPolicies:data.deploymentPolicies.deploymentPolicy,
-                        mtServiceInfo:data.mtServiceInfo.serviceDefinitionBean,
+                        autoScalePolicies:autoScalePolicies,
+                        deploymentPolicies:deploymentPolicies,
+                        mtServiceInfo:mtServiceInfo,
                         cartridge:cartridge,
                         
cartridgeType:meta.request.getParameter('cartridgeType'),
                         serviceGroup:meta.request.getParameter('serviceGroup')

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/tenant_management.js
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/tenant_management.js
 
b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/tenant_management.js
index 7be977a..34d2017 100755
--- 
a/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/tenant_management.js
+++ 
b/components/org.apache.stratos.manager.console/console/themes/theme1/renderers/tenant_management.js
@@ -84,12 +84,8 @@ var render = function (theme, data, meta, require) {
                             name: 'Subscribe to Cartridge',
                             class_name: 'btn-important'
                         },
-<<<<<<< HEAD
-                        has_help:false,
-=======
                         bamInfo:data.bamInfo,
-                        has_help: true,
->>>>>>> 400
+                        has_help: false,
                         help: 'Create cartridges like PHP, Python, Ruby etc.. 
Or create data cartridges with mySql, PostgreSQL. Directly install applications 
like Drupal, Wordpress etc..'
                     }
                 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.manager.console/console/util/utility.jag
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/util/utility.jag 
b/components/org.apache.stratos.manager.console/console/util/utility.jag
index 3cd93eb..083b330 100644
--- a/components/org.apache.stratos.manager.console/console/util/utility.jag
+++ b/components/org.apache.stratos.manager.console/console/util/utility.jag
@@ -98,150 +98,150 @@ consoleAppUtil = new function(){
     var log = new Log('utility.consoleAppUtil');
 
     this.getAvailableSingleTenantCartridges = function(){
-        return this.sendReceive("GET","/cartridge/list",{}).data;
+        return this.sendReceive("GET","/cartridge/list",{});
     };
 
     this.getAvailableMultiTenantCartridges = function(){
-        return this.sendReceive("GET","/cartridge/tenanted/list",{}).data;
+        return this.sendReceive("GET","/cartridge/tenanted/list",{});
     };
 
     this.getSubscribedCartridges = function(){
-        return this.sendReceive("GET","/cartridge/list/subscribed",{}).data;
+        return this.sendReceive("GET","/cartridge/list/subscribed",{});
     }
 
     this.getTenants = function(){
-        return this.sendReceive("GET","/tenant/list",{}).data;
+        return this.sendReceive("GET","/tenant/list",{});
     };
 
     this.getServices = function(){
-        return this.sendReceive("GET","/service",{}).data;
+        return this.sendReceive("GET","/service",{});
     };
 
     this.deployCartridgeDefinition = function(cartridgeDefinition){
-        return 
this.send("POST","/cartridge/definition",cartridgeDefinition).data;
+        return this.send("POST","/cartridge/definition",cartridgeDefinition);
     };
 
     this.deployServiceDefinition = function(serviceDefinition){
-        return this.send("POST","/service/definition",serviceDefinition).data;
+        return this.send("POST","/service/definition",serviceDefinition);
     };
 
     this.deployLbDefinition = function(lbDefinition){
-        return this.send("POST","/cartridge/definition",lbDefinition).data;
+        return this.send("POST","/cartridge/definition",lbDefinition);
     };
 
     this.activateTenant = function(tenantDomain){
-            return this.send("POST","/tenant/activate/" + 
tenantDomain,{}).data;
+            return this.send("POST","/tenant/activate/" + tenantDomain,{});
             };
 
     this.deactivateTenant = function(tenantDomain){
-        return this.send("POST","/tenant/deactivate/" + tenantDomain,{}).data;
+        return this.send("POST","/tenant/deactivate/" + tenantDomain,{});
     };
 
     this.deleteTenant = function(tenantDomain){
-        return this.send("DELETE","/tenant/" + tenantDomain,{}).data;
+        return this.send("DELETE","/tenant/" + tenantDomain,{});
     };
 
     this.checkAvailability = function(tenantDomain){
-        return this.send("POST","/tenant/availability/" + 
tenantDomain,{}).data;
+        return this.send("POST","/tenant/availability/" + tenantDomain,{});
     };
 
     this.deployPartitionDefinition = function(partitionDefinition){
-        return 
this.send("POST","/policy/deployment/partition",partitionDefinition).data;
+        return 
this.send("POST","/policy/deployment/partition",partitionDefinition);
     };
 
     this.deployDeploymentPolicyDefinition = function(policyDefinition){
-        return this.send("POST","/policy/deployment",policyDefinition).data;
+        return this.send("POST","/policy/deployment",policyDefinition);
     };
 
     this.deployAutoscalePolicyDefinition = function(policyDefinition){
-        return this.send("POST","/policy/autoscale",policyDefinition).data;
+        return this.send("POST","/policy/autoscale",policyDefinition);
     };
 
 
     this.subscribeToCartridge = function(cartridgeBeanInfo){
-        return this.sendReceive("POST","/cartridge/subscribe", 
cartridgeBeanInfo).data;
+        return this.sendReceive("POST","/cartridge/subscribe", 
cartridgeBeanInfo);
     };
 
     this.addTenant = function(tenantInfoBean){
-        return this.sendReceive("POST","/tenant",tenantInfoBean).data;
+        return this.sendReceive("POST","/tenant",tenantInfoBean);
     };
 
     this.syncRepo = function(alias){
-        return this.send("POST","/cartridge/sync",alias).data;
+        return this.send("POST","/cartridge/sync",alias);
     };
 
     this.getAutoScalePolicies = function(){
-        return this.sendReceive("GET","/policy/autoscale",{}).data;
+        return this.sendReceive("GET","/policy/autoscale",{});
     };
 
     this.getDeploymentPolicies = function(){
-        return this.sendReceive("GET","/policy/deployment",{}).data;
+        return this.sendReceive("GET","/policy/deployment",{});
     };
 
     this.getApplicableDeploymentPolicies = function(cartridgeType){
-     return this.sendReceive("GET","/" + cartridgeType + 
"/policy/deployment/",{}).data;
+     return this.sendReceive("GET","/" + cartridgeType + 
"/policy/deployment/",{});
    };
 
     this.getPartitions = function(){
-        return this.sendReceive("GET","/partition",{}).data;
+        return this.sendReceive("GET","/partition",{});
     };
 
     this.getSingleTenantCartridgeInfo = function(cartridgeType){
-        return this.sendReceive("GET","/cartridge/available/info/" + 
cartridgeType,{}).data;
+        return this.sendReceive("GET","/cartridge/available/info/" + 
cartridgeType,{});
     };
 
     this.getServiceInfo = function(cartridgeType){
-        return this.sendReceive("GET","/service/" + cartridgeType,{}).data;
+        return this.sendReceive("GET","/service/" + cartridgeType,{});
     };
 
     this.getPolicyAutoScale = function(){
-        return this.sendReceive("GET","/policy/autoscale",{}).data;
+        return this.sendReceive("GET","/policy/autoscale",{});
     };
 
     this.getPolicyDeployment = function(){
-        return this.sendReceive("GET","/policy/deployment",{}).data;
+        return this.sendReceive("GET","/policy/deployment",{});
     };
     this.unsubscribeCartridge = function(alias){
-        return this.send("POST","/cartridge/unsubscribe",alias).data;
+        return this.send("POST","/cartridge/unsubscribe",alias);
     };
     this.getCartridges = function(){
-        return this.sendReceive("GET","/cartridge/available/list",{}).data;
+        return this.sendReceive("GET","/cartridge/available/list",{});
     };
 
     this.getLbCartridges = function(){
-        return this.sendReceive("GET","/cartridge/lb",{}).data;
+        return this.sendReceive("GET","/cartridge/lb",{});
     };
 
     this.getClusterInfo = function(clusterId){
-        return this.sendReceive("GET","/cluster/clusterId/" + 
clusterId,{}).data;
+        return this.sendReceive("GET","/cluster/clusterId/" + clusterId,{});
     };
 
     this.getLBClusterInfo = function(){
-        return this.sendReceive("GET","/cluster/lb",{}).data;
+        return this.sendReceive("GET","/cluster/lb",{});
     };
 
     this.getClusterInfoWithAlias = function(cartridgeType, alias){
-        return this.sendReceive("GET","/cluster/" + cartridgeType + "/" + 
alias,{}).data;
+        return this.sendReceive("GET","/cluster/" + cartridgeType + "/" + 
alias,{});
     };
     this.getCartridgeInfo = function(alias){
-        return this.sendReceive("GET","/cartridge/info/"+alias,{}).data;
+        return this.sendReceive("GET","/cartridge/info/"+alias,{});
     };
     this.getCartridgeServiceGroup = function(serviceGroup){
-        return 
this.sendReceive("GET","/cartridge/list/subscribed/group/"+serviceGroup,{}).data;
+        return 
this.sendReceive("GET","/cartridge/list/subscribed/group/"+serviceGroup,{});
     };
     this.validateCaptcha = function(captchaText){
-        return this.sendReceive("POST","/captcha",captchaText).data;
+        return this.sendReceive("POST","/captcha",captchaText);
     };
     this.getCaptcha = function(){
         return this.sendReceiveImage("Get","/simpleImg",{});
     };
     this.undeployCartridge = function(cartridgeType){
-        return 
this.sendReceive("DELETE","/cartridge/definition/"+cartridgeType,{}).data;
+        return 
this.sendReceive("DELETE","/cartridge/definition/"+cartridgeType,{});
     };
     this.getConfigStatus = function(){
         var configStatus = {};
         var error;
-        var par_res = this.sendReceive("GET","/partition",{}).data;
+        var par_res = this.sendReceive("GET","/partition",{});
         var get_status = session.get("get-status");
         if(par_res.Error != undefined){
             error = par_res.Error;
@@ -251,7 +251,7 @@ consoleAppUtil = new function(){
                 if(par_res.partition.length == 0){
                     configStatus.first_use = true;
                 }else{
-                    var car_res = 
this.sendReceive("GET","/cartridge/available/list",{}).data;
+                    var car_res = 
this.sendReceive("GET","/cartridge/available/list",{});
                     if(car_res.Error != undefined){
                         error=car_res.Error;
                         configStatus.first_use = false;
@@ -301,33 +301,43 @@ consoleAppUtil = new function(){
         // getting the access token from the session.
         var endpoint = backendServerURL + urlPostFix;
         var headers = this.getRequestHeaders(config.ssoConfiguration.enabled);
-        var type = "json"; // response format
         var response;
         switch (httpMethod){
             case  "GET":
-                response = get(endpoint,{},headers,type);
+                response = get(endpoint,{},headers);
                 break;
             case   "POST":
-                response = post(endpoint,stringify(data),headers,type);
+                response = post(endpoint,stringify(data),headers);
                 break;
             case    "PUT":
-                response = put(endpoint,stringify(data),headers,type);
+                response = put(endpoint,stringify(data),headers);
                 break;
             case    "DELETE":
-                response = del(endpoint,stringify(data),headers,type);
+                response = del(endpoint,stringify(data),headers);
                 break;
             default :
                 log.error("Error in the programme flow.");
         }
-        log.debug("-----------------------:" + stringify(response));
-        if(response.data.Error) {
-            session.put("get-status", response.data.Error.errorMessage);
-        } else {
-            session.put("get-status", "succeeded");
+        
+        if (response.xhr.status >= 200 && response.xhr.status < 300) { //if 
success
+           session.put("get-status", "succeeded");
+        } else if (response.xhr.status >= 400 && response.xhr.status < 500) { 
//if client error
+           if(response.data != null && response.data != undefined) {
+               session.put("get-status", 
parse(response.data).Error.errorMessage);
+           }
+        } else if (response.xhr.status >= 500 && response.xhr.status < 600) { 
//if server error
+           if(response.data != null && response.data != undefined) {
+               session.put("get-status", response.data); return;
+           }
         }
 
-        log.debug("--------------------:    +  " + urlPostFix + "      "+ 
session.get("get-status"));
-        return response;
+        log.debug("sent is: " + stringify(response));
+
+        if (response.data != null && response.data != undefined) {
+            return parse(response.data);
+        } else {
+            return response.data;
+        }
     };
 
     // refactor sendRecive and send method. duplicate code...
@@ -365,33 +375,43 @@ consoleAppUtil = new function(){
         // getting the access token from the session.
         var endpoint = backendServerURL + urlPostFix;
         var headers = this.getRequestHeaders(config.ssoConfiguration.enabled);
-        var type = "json"; // response format
         var response;
         switch (httpMethod){
             case  "GET":
-                response = get(endpoint,{},headers, 'json');
+                response = get(endpoint,{},headers);
                 break;
             case   "POST":
-                response = post(endpoint,data,headers, 'json');
+                response = post(endpoint,data,headers);
                 break;
             case    "PUT":
-                response = put(endpoint,data,headers, 'json');
+                response = put(endpoint,data,headers);
                 break;
             case    "DELETE":
-                response = del(endpoint,data,headers, 'json');
+                response = del(endpoint,data,headers);
                 break;
             default :
                 log.error("Error in the programme flow.");
         }
 
-        if (response.data.Error) {
-            session.put("deploy-status", response.data.Error.errorMessage);
-        } else {
-            session.put("deploy-status", "succeeded");
+        if (response.xhr.status >= 200 && response.xhr.status < 300) { //if 
success
+           session.put("deploy-status", "succeeded");
+        } else if (response.xhr.status >= 400 && response.xhr.status < 500) { 
//if client error
+           if(response.data != null && response.data != undefined) {
+               session.put("deploy-status", 
parse(response.data).Error.errorMessage);
+           }
+        } else if (response.xhr.status >= 500 && response.xhr.status < 600) { 
//if server error
+           if(response.data != null && response.data != undefined) {         
+               session.put("deploy-status", response.data); return;            
 
+           }
         }
+        
         log.debug("sent is: " + stringify(response));
 
-        return response;
+        if (response.data != null && response.data != undefined) {
+            return parse(response.data);
+        } else {
+            return response.data;
+        }
     };
 
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
index 2759ad4..5c86c50 100644
--- 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
+++ 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
@@ -516,7 +516,8 @@ public class StratosAdmin extends AbstractAdmin {
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     public Response getAvailableLbCartridges() throws RestAPIException {
-        return 
Response.ok().entity(ServiceUtils.getAvailableLbCartridges(false, 
getConfigContext())).build();
+       List<Cartridge> lbCartridges = 
ServiceUtils.getAvailableLbCartridges(false, getConfigContext());
+        return Response.ok().entity(lbCartridges.isEmpty() ? new Cartridge[0] 
: lbCartridges.toArray(new Cartridge[lbCartridges.size()])).build();
     }
 
     @GET

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.rest.endpoint/src/main/webapp/stratos-test/WEB-INF/schemas/schema.xsd
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/webapp/stratos-test/WEB-INF/schemas/schema.xsd
 
b/components/org.apache.stratos.rest.endpoint/src/main/webapp/stratos-test/WEB-INF/schemas/schema.xsd
index e6fd796..768aeb9 100644
--- 
a/components/org.apache.stratos.rest.endpoint/src/main/webapp/stratos-test/WEB-INF/schemas/schema.xsd
+++ 
b/components/org.apache.stratos.rest.endpoint/src/main/webapp/stratos-test/WEB-INF/schemas/schema.xsd
@@ -88,7 +88,7 @@
                 <xs:element name="host" type="xs:string" minOccurs="1" 
maxOccurs="1" nillable="false"/>
                 <xs:element name="displayName" type="xs:string" minOccurs="1" 
maxOccurs="1" nillable="false"/>
                 <xs:element name="description" type="xs:string" minOccurs="1" 
maxOccurs="1" nillable="false"/>
-                <xs:element name="version" type="xs:float" minOccurs="1" 
maxOccurs="1" nillable="false"/>
+                <xs:element name="version" type="xs:string" minOccurs="1" 
maxOccurs="1" nillable="false"/>
                 <xs:element name="defaultAutoscalingPolicy" type="xs:string" 
minOccurs="0" maxOccurs="1" nillable="false"/>
                 <xs:element name="multiTenant" type="xs:boolean" minOccurs="1" 
maxOccurs="1" nillable="false"/>
                 <xs:element name="portMapping" minOccurs="1" 
maxOccurs="unbounded">
@@ -219,11 +219,8 @@
 
     <xs:complexType name="thresholdValues">
         <xs:all>
-            <xs:element name="average" type="xs:int" minOccurs="1" 
maxOccurs="1"/>
-            <xs:element name="gradient" type="xs:float" minOccurs="0" 
maxOccurs="1"/>
-            <xs:element name="secondDerivative" type="xs:float" minOccurs="0" 
maxOccurs="1"/>
-            <xs:element name="scaleDownMarginOfGradient" type="xs:float" 
minOccurs="0" maxOccurs="1"/>
-            <xs:element name="scaleDownMarginOfSecondDerivative" 
type="xs:float" minOccurs="0" maxOccurs="1"/>
+            <xs:element name="upperLimit" type="xs:float" minOccurs="1" 
maxOccurs="1"/>
+            <xs:element name="lowerLimit" type="xs:float" minOccurs="1" 
maxOccurs="1"/>
         </xs:all>
     </xs:complexType>
 </xs:schema>

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/components/org.apache.stratos.rest.endpoint/src/main/webapp/stratos/WEB-INF/schemas/schema.xsd
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/webapp/stratos/WEB-INF/schemas/schema.xsd
 
b/components/org.apache.stratos.rest.endpoint/src/main/webapp/stratos/WEB-INF/schemas/schema.xsd
index f59bf28..0de935f 100644
--- 
a/components/org.apache.stratos.rest.endpoint/src/main/webapp/stratos/WEB-INF/schemas/schema.xsd
+++ 
b/components/org.apache.stratos.rest.endpoint/src/main/webapp/stratos/WEB-INF/schemas/schema.xsd
@@ -88,7 +88,7 @@
                 <xs:element name="host" type="xs:string" minOccurs="1" 
maxOccurs="1" nillable="false"/>
                 <xs:element name="displayName" type="xs:string" minOccurs="1" 
maxOccurs="1" nillable="false"/>
                 <xs:element name="description" type="xs:string" minOccurs="1" 
maxOccurs="1" nillable="false"/>
-                <xs:element name="version" type="xs:float" minOccurs="1" 
maxOccurs="1" nillable="false"/>
+                <xs:element name="version" type="xs:string" minOccurs="1" 
maxOccurs="1" nillable="false"/>
                 <xs:element name="defaultAutoscalingPolicy" type="xs:string" 
minOccurs="0" maxOccurs="1" nillable="false"/>
                 <xs:element name="multiTenant" type="xs:boolean" minOccurs="1" 
maxOccurs="1" nillable="false"/>
                 <xs:element name="portMapping" minOccurs="1" 
maxOccurs="unbounded">
@@ -219,11 +219,8 @@
 
     <xs:complexType name="thresholdValues">
         <xs:all>
-            <xs:element name="average" type="xs:int" minOccurs="1" 
maxOccurs="1"/>
-            <xs:element name="gradient" type="xs:float" minOccurs="0" 
maxOccurs="1"/>
-            <xs:element name="secondDerivative" type="xs:float" minOccurs="0" 
maxOccurs="1"/>
-            <xs:element name="scaleDownMarginOfGradient" type="xs:float" 
minOccurs="0" maxOccurs="1"/>
-            <xs:element name="scaleDownMarginOfSecondDerivative" 
type="xs:float" minOccurs="0" maxOccurs="1"/>
+            <xs:element name="upperLimit" type="xs:float" minOccurs="1" 
maxOccurs="1"/>
+            <xs:element name="lowerLimit" type="xs:float" minOccurs="1" 
maxOccurs="1"/>            
         </xs:all>
     </xs:complexType>
 </xs:schema>

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.7.1-stratos/README.md
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/README.md 
b/dependencies/jclouds/apis/docker/1.7.1-stratos/README.md
deleted file mode 100644
index 3ce8cf0..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/README.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# Docker as a local cloud provider
-jclouds-docker is a local cloud provider modelled on 
[docker](http://www.docker.io). Similar to other jclouds supported
-providers, it supports the same portable abstractions offered by jclouds.
-
-##Setup
-
-Please follow these steps to configure your workstation for jclouds-docker:
-
-- install the latest Docker release (please visit 
http://www.docker.io/gettingstarted/)
-
-If you are on OS X, please consider 
[boot2docker](http://docs.docker.io/en/latest/installation/mac/) as simplified
-way to install docker locally.
-
-#How it works
-
-
-                                               ---------------   -------------
-                                              |   Image(s)    | |   Node(s)   |
-                                              ---------------   -------------
-     ---------    docker remote api           
----------------------------------------
-    | jclouds | ---------------------------> |              DOCKER_HOST        
      |
-     ---------                               
----------------------------------------
-
-##Components
-
-- jclouds \- acts as a java client to access to docker features
-- DOCKER_HOST \- hosts Docker API, NB: jclouds-docker assumes that the latest 
Docker is installed
-- Image \- it is a docker image that can be started.
-- Node \- is a docker container
-
-## Assumptions
-
-- jclouds-docker assumes that the images specified using the template are 
ssh'able.
-- jclouds-docker will mount ${user.home} to /root of the container
-
---------------
-
-#Notes:
-- jclouds-docker is still at alpha stage please report any issues you find at 
[jclouds issues](https://github.com/jclouds/jclouds/issues?state=open)
-- jclouds-docker has been tested on Mac OSX, it might work on Linux iff vbox 
is running and set up correctly. However, it will not currently run on Windows.
-
---------------
-
-#Troubleshooting
-As jclouds docker support is quite new, issues may occasionally arise. Please 
follow these steps to get things going again:
-
-1. Remove all containers
-
-      `$ docker ps -a -q | xargs docker stop | xargs docker rm`
-2. remove all the images
-
-    `$ docker images -q | xargs docker rmi`

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.7.1-stratos/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/docker/1.7.1-stratos/pom.xml 
b/dependencies/jclouds/apis/docker/1.7.1-stratos/pom.xml
deleted file mode 100644
index 0fb9b96..0000000
--- a/dependencies/jclouds/apis/docker/1.7.1-stratos/pom.xml
+++ /dev/null
@@ -1,145 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-        http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache.jclouds.labs</groupId>
-    <artifactId>jclouds-labs</artifactId>
-    <version>1.7.1</version>
-  </parent>
-
-  <!-- TODO: when out of labs, switch to org.jclouds.provider -->
-  <groupId>org.apache.stratos</groupId>
-  <artifactId>docker</artifactId>
-  <name>jclouds docker API</name>
-  <version>1.7.1-stratos</version>
-  <description>ComputeService binding to the Docker API</description>
-  <packaging>bundle</packaging>
-
-  <properties>
-    <jclouds.version>1.7.1</jclouds.version>
-    <test.docker.endpoint>https://localhost:4243</test.docker.endpoint>
-    <test.docker.api-version>1.10</test.docker.api-version>
-    <test.docker.identity>FIXME</test.docker.identity>
-    <test.docker.credential>FIXME</test.docker.credential>
-    
<jclouds.osgi.export>org.jclouds.docker*;version="${project.version}"</jclouds.osgi.export>
-    <jclouds.osgi.import>
-      org.jclouds.compute.internal;version="${jclouds.version}",
-      org.jclouds.rest.internal;version="${jclouds.version}",
-      org.jclouds*;version="${jclouds.version}",
-      *
-    </jclouds.osgi.import>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.jclouds</groupId>
-      <artifactId>jclouds-core</artifactId>
-      <version>${jclouds.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.jclouds</groupId>
-      <artifactId>jclouds-compute</artifactId>
-      <version>${jclouds.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-compress</artifactId>
-      <version>1.5</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.jclouds.driver</groupId>
-      <artifactId>jclouds-sshj</artifactId>
-      <version>${jclouds.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.jclouds</groupId>
-      <artifactId>jclouds-core</artifactId>
-      <version>${jclouds.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.jclouds</groupId>
-      <artifactId>jclouds-compute</artifactId>
-      <version>${jclouds.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.jclouds.driver</groupId>
-      <artifactId>jclouds-slf4j</artifactId>
-      <version>${jclouds.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ch.qos.logback</groupId>
-      <artifactId>logback-classic</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.squareup.okhttp</groupId>
-      <artifactId>mockwebserver</artifactId>
-      <scope>test</scope>
-      <exclusions>
-        <!-- Already provided by jclouds-sshj -->
-        <exclusion>
-          <groupId>org.bouncycastle</groupId>
-          <artifactId>bcprov-jdk15on</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-  </dependencies>
-
-  <profiles>
-    <profile>
-      <id>live</id>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-surefire-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>integration</id>
-                <phase>integration-test</phase>
-                <goals>
-                  <goal>test</goal>
-                </goals>
-                <configuration>
-                  <systemPropertyVariables>
-                    
<test.docker.endpoint>${test.docker.endpoint}</test.docker.endpoint>
-                    
<test.docker.api-version>${test.docker.api-version}</test.docker.api-version>
-                    
<test.docker.credential>${test.docker.identity}</test.docker.credential>
-                    
<test.docker.credential>${test.docker.credential}</test.docker.credential>
-                  </systemPropertyVariables>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-
-</project>

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/DockerApi.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/DockerApi.java
 
b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/DockerApi.java
deleted file mode 100644
index 9fe6135..0000000
--- 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/DockerApi.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker;
-
-import org.jclouds.docker.compute.features.RemoteApi;
-import org.jclouds.rest.annotations.Delegate;
-
-import java.io.Closeable;
-
-/**
- * Provides synchronous access to Docker Remote API.
- *
- * @author Andrea Turli
- * @see <a 
href="http://docs.docker.io/en/latest/api/docker_remote_api_v1.8/#docker-remote-api-v1-8";></a>
- */
-public interface DockerApi extends Closeable {
-
-   /**
-    * Provides synchronous access to Docker Remote API features.
-    */
-   @Delegate
-   RemoteApi getRemoteApi();
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/DockerApiMetadata.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/DockerApiMetadata.java
 
b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/DockerApiMetadata.java
deleted file mode 100644
index c627d82..0000000
--- 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/DockerApiMetadata.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker;
-
-import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE;
-import static org.jclouds.reflect.Reflection2.typeToken;
-import java.net.URI;
-import java.util.Properties;
-
-import org.jclouds.Constants;
-import org.jclouds.apis.ApiMetadata;
-import org.jclouds.compute.ComputeServiceContext;
-import org.jclouds.compute.config.ComputeServiceProperties;
-import org.jclouds.docker.compute.config.DockerComputeServiceContextModule;
-import org.jclouds.docker.config.DockerHttpApiModule;
-import org.jclouds.docker.config.DockerParserModule;
-import org.jclouds.rest.internal.BaseHttpApiMetadata;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Module;
-
-/**
- * Implementation of {@link BaseHttpApiMetadata} for the Docker API
- *
- * @author Andrea Turli
- */
-public class DockerApiMetadata extends BaseHttpApiMetadata<DockerApi> {
-
-   @Override
-   public Builder toBuilder() {
-      return new Builder().fromApiMetadata(this);
-   }
-
-   public DockerApiMetadata() {
-      this(new Builder());
-   }
-
-   protected DockerApiMetadata(Builder builder) {
-      super(builder);
-   }
-
-   public static Properties defaultProperties() {
-      Properties properties = BaseHttpApiMetadata.defaultProperties();
-      properties.setProperty(Constants.PROPERTY_MAX_RETRIES, "15");
-      properties.setProperty("jclouds.ssh.retry-auth", "true");
-      properties.setProperty(Constants.PROPERTY_CONNECTION_TIMEOUT, 
"1200000"); // 15 minutes
-      properties.setProperty(ComputeServiceProperties.IMAGE_LOGIN_USER, 
"root:password");
-      properties.setProperty(TEMPLATE, 
"osFamily=UBUNTU,os64Bit=true,osVersionMatches=1[012].[01][04]");
-      return properties;
-   }
-
-   public static class Builder extends BaseHttpApiMetadata.Builder<DockerApi, 
Builder> {
-
-      protected Builder() {
-         super(DockerApi.class);
-         id("docker")
-                 .name("Docker API")
-                 .identityName("user")
-                 .credentialName("password")
-                 
.documentation(URI.create("http://docs.docker.io/en/latest/api/docker_remote_api/";))
-                 .version("1.10")
-                 .defaultEndpoint("http://127.0.0.1:4243";)
-                 .defaultProperties(DockerApiMetadata.defaultProperties())
-                 .view(typeToken(ComputeServiceContext.class))
-                 .defaultModules(ImmutableSet.<Class<? extends Module>>of(
-                         DockerHttpApiModule.class,
-                         DockerParserModule.class,
-                         DockerComputeServiceContextModule.class));
-      }
-
-      @Override
-      public DockerApiMetadata build() {
-         return new DockerApiMetadata(this);
-      }
-
-      @Override
-      protected Builder self() {
-         return this;
-      }
-
-      @Override
-      public Builder fromApiMetadata(ApiMetadata in) {
-         return this;
-      }
-   }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/binders/BindInputStreamToRequest.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/binders/BindInputStreamToRequest.java
 
b/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/binders/BindInputStreamToRequest.java
deleted file mode 100644
index ea485d2..0000000
--- 
a/dependencies/jclouds/apis/docker/1.7.1-stratos/src/main/java/org/jclouds/docker/binders/BindInputStreamToRequest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.docker.binders;
-
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-
-import javax.annotation.Resource;
-import javax.inject.Named;
-import javax.inject.Singleton;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.docker.compute.features.internal.Archives;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.io.Payload;
-import org.jclouds.io.Payloads;
-import org.jclouds.logging.Logger;
-import org.jclouds.rest.Binder;
-
-import com.google.common.base.Throwables;
-import com.google.common.io.Files;
-
-/**
- * @author Andrea Turli
- */
-@Singleton
-public class BindInputStreamToRequest implements Binder {
-
-   @Resource
-   @Named(ComputeServiceConstants.COMPUTE_LOGGER)
-   protected Logger logger = Logger.NULL;
-
-   @SuppressWarnings("unchecked")
-   @Override
-   public <R extends HttpRequest> R bindToRequest(R request, Object input) {
-      checkArgument(checkNotNull(input, "input") instanceof File, "this binder 
is only valid for File!");
-      checkNotNull(request, "request");
-
-      File dockerFile = (File) input;
-      File tmpDir = Files.createTempDir();
-      final File targetFile = new File(tmpDir + File.separator + "Dockerfile");
-      try {
-         Files.copy(dockerFile, targetFile);
-         File archive = Archives.tar(tmpDir, File.createTempFile("archive", 
".tar"));
-         FileInputStream data = new FileInputStream(archive);
-         Payload payload = Payloads.newInputStreamPayload(data);
-         
payload.getContentMetadata().setContentLength(data.getChannel().size());
-         payload.getContentMetadata().setContentType(MediaType.TEXT_PLAIN);
-         request.setPayload(payload);
-      } catch (IOException e) {
-         logger.error(e, "Couldn't create a tarball for %s", targetFile);
-         throw Throwables.propagate(e);
-      }
-      return request;
-   }
-}

Reply via email to