You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ud...@apache.org on 2014/12/18 07:38:27 UTC

[25/50] [abbrv] stratos git commit: Fixing JSON de-serialization issue in GET /applications method

Fixing JSON de-serialization issue in GET /applications method


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

Branch: refs/heads/master
Commit: dce73b03fb9f14f457b801d8aba4ccd3c31f26bd
Parents: 1283987
Author: Imesh Gunaratne <im...@apache.org>
Authored: Wed Dec 17 10:21:12 2014 +0530
Committer: Udara Liyanage <ud...@wso2.com>
Committed: Thu Dec 18 12:06:58 2014 +0530

----------------------------------------------------------------------
 components/org.apache.stratos.cli/pom.xml       |  5 ++
 .../java/org/apache/stratos/cli/RestClient.java |  3 +-
 .../stratos/cli/RestCommandLineService.java     | 37 +++++----
 .../application/beans/CartridgeDefinition.java  |  3 -
 .../endpoint/util/converter/PojoConverter.java  | 83 ++++++++------------
 .../src/main/webapp/api/WEB-INF/cxf-servlet.xml |  1 +
 6 files changed, 59 insertions(+), 73 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/dce73b03/components/org.apache.stratos.cli/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/pom.xml b/components/org.apache.stratos.cli/pom.xml
index a83c997..60467eb 100644
--- a/components/org.apache.stratos.cli/pom.xml
+++ b/components/org.apache.stratos.cli/pom.xml
@@ -110,6 +110,11 @@
 			<artifactId>httpclient</artifactId>
 			<version>4.3.3</version>
 		</dependency>
+		<dependency>
+			<groupId>org.apache.stratos</groupId>
+			<artifactId>org.apache.stratos.manager</artifactId>
+			<version>4.1.0-SNAPSHOT</version>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>

http://git-wip-us.apache.org/repos/asf/stratos/blob/dce73b03/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestClient.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestClient.java
index 2cd4289..b2df173 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestClient.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestClient.java
@@ -211,7 +211,8 @@ public class RestClient implements GenericRestClient {
         }
     }
 
-    public Object getEntity(String serviceEndpoint, Class responseJsonClass, String identifierPlaceHolder, String identifier, String entityName) {
+    public Object getEntity(String serviceEndpoint, Class responseJsonClass, String identifierPlaceHolder,
+                            String identifier, String entityName) {
         try {
             return executeGet(serviceEndpoint.replace(identifierPlaceHolder, identifier), responseJsonClass);
         } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/dce73b03/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java
index 6ee2696..bb015bc 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java
@@ -33,21 +33,17 @@ import org.apache.stratos.cli.exception.ExceptionMapper;
 import org.apache.stratos.cli.utils.CliConstants;
 import org.apache.stratos.cli.utils.CliUtils;
 import org.apache.stratos.cli.utils.RowMapper;
-import org.apache.stratos.common.beans.ApplicationBean;
 import org.apache.stratos.common.beans.GroupBean;
 import org.apache.stratos.common.beans.TenantInfoBean;
 import org.apache.stratos.common.beans.UserInfoBean;
-import org.apache.stratos.common.beans.autoscaler.partition.Partition;
 import org.apache.stratos.common.beans.autoscaler.policy.autoscale.AutoscalePolicy;
 import org.apache.stratos.common.beans.autoscaler.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.common.beans.cartridge.definition.CartridgeDefinitionBean;
 import org.apache.stratos.common.beans.cartridge.definition.IaasProviderBean;
-import org.apache.stratos.common.beans.cartridge.definition.PortMappingBean;
 import org.apache.stratos.common.beans.kubernetes.KubernetesGroup;
 import org.apache.stratos.common.beans.kubernetes.KubernetesHost;
 import org.apache.stratos.common.beans.topology.Cluster;
-import org.apache.stratos.common.beans.topology.Member;
-import org.apache.stratos.manager.dto.Cartridge;
+import org.apache.stratos.manager.composite.application.beans.ApplicationDefinition;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -654,9 +650,9 @@ public class RestCommandLineService {
     // This method helps to list applications
     public void listApplications() throws CommandException {
         try {
-            Type listType = new TypeToken<ArrayList<ApplicationBean>>() {
+            Type listType = new TypeToken<ArrayList<ApplicationDefinition>>() {
             }.getType();
-            List<ApplicationBean> list = (List<ApplicationBean>) restClient.listEntity(ENDPOINT_LIST_APPLICATION,
+            List<ApplicationDefinition> list = (List<ApplicationDefinition>) restClient.listEntity(ENDPOINT_LIST_APPLICATION,
                     listType, "applications");
 
             if ((list == null) || (list.size() == 0)) {
@@ -664,19 +660,22 @@ public class RestCommandLineService {
                 return;
             }
 
-            RowMapper<ApplicationBean> rowMapper = new RowMapper<ApplicationBean>() {
-                public String[] getData(ApplicationBean definition) {
-                    String[] data = new String[1];
-                    data[0] = definition.getId();
+            RowMapper<ApplicationDefinition> rowMapper = new RowMapper<ApplicationDefinition>() {
+                public String[] getData(ApplicationDefinition applicationDefinition) {
+                    String[] data = new String[4];
+                    data[0] = applicationDefinition.getApplicationId();
+                    data[1] = applicationDefinition.getName();
+                    data[2] = applicationDefinition.getAlias();
+                    data[3] = applicationDefinition.getStatus();
                     return data;
                 }
             };
 
-            ApplicationBean[] array = new ApplicationBean[list.size()];
+            ApplicationDefinition[] array = new ApplicationDefinition[list.size()];
             array = list.toArray(array);
 
             System.out.println("Applications found:");
-            CliUtils.printTable(array, rowMapper, "Application ID");
+            CliUtils.printTable(array, rowMapper, "Application ID", "Name", "Alias", "Status");
         } catch (Exception e) {
             String message = "Error in listing applications";
             System.out.println(message);
@@ -937,19 +936,19 @@ public class RestCommandLineService {
     // This method helps to describe applications
     public void describeApplication (String applicationID) {
         try {
-            Type listType = new TypeToken<ArrayList<ApplicationBean>>() {
+            Type listType = new TypeToken<ApplicationDefinition>() {
             }.getType();
-            List<ApplicationBean> applications = (List<ApplicationBean>) restClient
-                    .listEntity(ENDPOINT_GET_APPLICATION.replace("{appId}", applicationID),
-                            listType, "applications");
+            ApplicationDefinition application = (ApplicationDefinition) restClient
+                    .getEntity(ENDPOINT_GET_APPLICATION, ApplicationDefinition.class, "{appId}", applicationID,
+                            "application");
 
-            if (applications == null) {
+            if (application == null) {
                 System.out.println("Application not found: " + applicationID);
                 return;
             }
 
             System.out.println("Application: " + applicationID);
-            System.out.println(getGson().toJson(applications));
+            System.out.println(getGson().toJson(application));
         } catch (Exception e) {
             String message = "Error in describing application: " + applicationID;
             System.out.println(message);

http://git-wip-us.apache.org/repos/asf/stratos/blob/dce73b03/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/beans/CartridgeDefinition.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/beans/CartridgeDefinition.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/beans/CartridgeDefinition.java
index c79f7ed..8339d65 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/beans/CartridgeDefinition.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/beans/CartridgeDefinition.java
@@ -28,11 +28,8 @@ public class CartridgeDefinition implements Serializable {
     private static final long serialVersionUID = 8968224678298479827L;
 
 	private String type;
-	
 	private int cartridgeMin;
-	
 	private int cartridgeMax;
-	
 	private SubscribableInfo subscribableInfo;
 
 	public String getType() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/dce73b03/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java
index ab4a03c..f95636b 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java
@@ -19,66 +19,23 @@
 
 package org.apache.stratos.rest.endpoint.util.converter;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.List;
-
 import org.apache.commons.lang.StringUtils;
 import org.apache.stratos.autoscaler.stub.deployment.partition.ChildLevelNetworkPartition;
 import org.apache.stratos.autoscaler.stub.deployment.partition.ChildLevelPartition;
 import org.apache.stratos.autoscaler.stub.deployment.policy.ChildPolicy;
-import org.apache.stratos.autoscaler.stub.pojo.ApplicationContext;
-import org.apache.stratos.autoscaler.stub.pojo.CartridgeContext;
-import org.apache.stratos.autoscaler.stub.pojo.DependencyContext;
-import org.apache.stratos.autoscaler.stub.pojo.GroupContext;
-import org.apache.stratos.autoscaler.stub.pojo.SubscribableInfoContext;
-import org.apache.stratos.cloud.controller.stub.domain.CartridgeConfig;
-import org.apache.stratos.cloud.controller.stub.domain.Container;
-import org.apache.stratos.cloud.controller.stub.domain.FloatingNetwork;
-import org.apache.stratos.cloud.controller.stub.domain.FloatingNetworks;
-import org.apache.stratos.cloud.controller.stub.domain.IaasConfig;
-import org.apache.stratos.cloud.controller.stub.domain.LoadbalancerConfig;
-import org.apache.stratos.cloud.controller.stub.domain.NetworkInterface;
-import org.apache.stratos.cloud.controller.stub.domain.NetworkInterfaces;
-import org.apache.stratos.cloud.controller.stub.domain.Persistence;
-import org.apache.stratos.cloud.controller.stub.domain.PortMapping;
+import org.apache.stratos.autoscaler.stub.pojo.*;
+import org.apache.stratos.cloud.controller.stub.domain.*;
 import org.apache.stratos.cloud.controller.stub.domain.ServiceGroup;
-import org.apache.stratos.cloud.controller.stub.domain.Volume;
 import org.apache.stratos.common.Properties;
 import org.apache.stratos.common.Property;
-import org.apache.stratos.manager.composite.application.beans.*;
-import org.apache.stratos.manager.deploy.service.Service;
-import org.apache.stratos.manager.grouping.definitions.DependencyDefinitions;
-import org.apache.stratos.manager.grouping.definitions.ServiceGroupDefinition;
-import org.apache.stratos.manager.subscription.SubscriptionDomain;
-import org.apache.stratos.messaging.domain.applications.Application;
-import org.apache.stratos.messaging.domain.applications.Group;
-import org.apache.stratos.messaging.domain.instance.ApplicationInstance;
-import org.apache.stratos.messaging.domain.instance.ClusterInstance;
-import org.apache.stratos.messaging.domain.instance.GroupInstance;
-import org.apache.stratos.messaging.domain.topology.Cluster;
 import org.apache.stratos.common.beans.ApplicationBean;
 import org.apache.stratos.common.beans.GroupBean;
 import org.apache.stratos.common.beans.autoscaler.partition.ApplicationLevelNetworkPartition;
 import org.apache.stratos.common.beans.autoscaler.partition.Partition;
-import org.apache.stratos.common.beans.autoscaler.policy.autoscale.AutoscalePolicy;
-import org.apache.stratos.common.beans.autoscaler.policy.autoscale.LoadAverageThresholds;
-import org.apache.stratos.common.beans.autoscaler.policy.autoscale.LoadThresholds;
-import org.apache.stratos.common.beans.autoscaler.policy.autoscale.MemoryConsumptionThresholds;
-import org.apache.stratos.common.beans.autoscaler.policy.autoscale.RequestsInFlightThresholds;
+import org.apache.stratos.common.beans.autoscaler.policy.autoscale.*;
 import org.apache.stratos.common.beans.autoscaler.policy.deployment.DeploymentPolicy;
-import org.apache.stratos.common.beans.cartridge.definition.CartridgeDefinitionBean;
-import org.apache.stratos.common.beans.cartridge.definition.ContainerBean;
-import org.apache.stratos.common.beans.cartridge.definition.FloatingNetworkBean;
-import org.apache.stratos.common.beans.cartridge.definition.IaasProviderBean;
-import org.apache.stratos.common.beans.cartridge.definition.LoadBalancerBean;
-import org.apache.stratos.common.beans.cartridge.definition.NetworkInterfaceBean;
-import org.apache.stratos.common.beans.cartridge.definition.PersistenceBean;
-import org.apache.stratos.common.beans.cartridge.definition.PortMappingBean;
+import org.apache.stratos.common.beans.cartridge.definition.*;
 import org.apache.stratos.common.beans.cartridge.definition.PropertyBean;
-import org.apache.stratos.common.beans.cartridge.definition.ServiceDefinitionBean;
-import org.apache.stratos.common.beans.cartridge.definition.VolumeBean;
 import org.apache.stratos.common.beans.kubernetes.KubernetesGroup;
 import org.apache.stratos.common.beans.kubernetes.KubernetesHost;
 import org.apache.stratos.common.beans.kubernetes.KubernetesMaster;
@@ -86,6 +43,23 @@ import org.apache.stratos.common.beans.kubernetes.PortRange;
 import org.apache.stratos.common.beans.subscription.domain.SubscriptionDomainBean;
 import org.apache.stratos.common.beans.topology.Instance;
 import org.apache.stratos.common.beans.topology.Member;
+import org.apache.stratos.common.util.CommonUtil;
+import org.apache.stratos.manager.composite.application.beans.*;
+import org.apache.stratos.manager.deploy.service.Service;
+import org.apache.stratos.manager.grouping.definitions.DependencyDefinitions;
+import org.apache.stratos.manager.grouping.definitions.ServiceGroupDefinition;
+import org.apache.stratos.manager.subscription.SubscriptionDomain;
+import org.apache.stratos.messaging.domain.applications.Application;
+import org.apache.stratos.messaging.domain.applications.Group;
+import org.apache.stratos.messaging.domain.instance.ApplicationInstance;
+import org.apache.stratos.messaging.domain.instance.ClusterInstance;
+import org.apache.stratos.messaging.domain.instance.GroupInstance;
+import org.apache.stratos.messaging.domain.topology.Cluster;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Enumeration;
+import java.util.List;
 
 public class PojoConverter {
 
@@ -136,7 +110,9 @@ public class PojoConverter {
         }
 
         if (cartridgeDefinitionBean.getExportingProperties() != null) {
-            cartridgeConfig.setExportingProperties(cartridgeDefinitionBean.getExportingProperties());
+            List<String> propertiesList = cartridgeDefinitionBean.getExportingProperties();
+            String[] propertiesArray = propertiesList.toArray(new String[propertiesList.size()]);
+            cartridgeConfig.setExportingProperties(propertiesArray);
         }
 
         if (cartridgeDefinitionBean.getContainer() != null) {
@@ -1092,7 +1068,12 @@ public class PojoConverter {
         return applicationContext;
     }
 
-    public static ApplicationDefinition convertApplicationContextToApplicationDefinition(ApplicationContext applicationContext) {
+    public static ApplicationDefinition convertApplicationContextToApplicationDefinition(
+            ApplicationContext applicationContext) {
+        if(applicationContext == null) {
+            return null;
+        }
+
         ApplicationDefinition applicationDefinition = new ApplicationDefinition();
         applicationDefinition.setApplicationId(applicationContext.getApplicationId());
         applicationDefinition.setName(applicationContext.getName());
@@ -1186,7 +1167,9 @@ public class PojoConverter {
         SubscribableInfo subscribableInfo = new SubscribableInfo();
         subscribableInfo.setAlias(subscribableInfoContext.getAlias());
         subscribableInfo.setAutoscalingPolicy(subscribableInfoContext.getAutoscalingPolicy());
-        subscribableInfo.setDependencyAliases(subscribableInfoContext.getDependencyAliases());
+        if(!CommonUtil.isEmptyArray(subscribableInfoContext.getDependencyAliases())) {
+            subscribableInfo.setDependencyAliases(subscribableInfoContext.getDependencyAliases());
+        }
         subscribableInfo.setDeploymentPolicy(subscribableInfoContext.getDeploymentPolicy());
         subscribableInfo.setMinMembers(subscribableInfoContext.getMinMembers());
         subscribableInfo.setMaxMembers(subscribableInfoContext.getMaxMembers());

http://git-wip-us.apache.org/repos/asf/stratos/blob/dce73b03/components/org.apache.stratos.rest.endpoint/src/main/webapp/api/WEB-INF/cxf-servlet.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/webapp/api/WEB-INF/cxf-servlet.xml b/components/org.apache.stratos.rest.endpoint/src/main/webapp/api/WEB-INF/cxf-servlet.xml
index 002f034..7543f7c 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/webapp/api/WEB-INF/cxf-servlet.xml
+++ b/components/org.apache.stratos.rest.endpoint/src/main/webapp/api/WEB-INF/cxf-servlet.xml
@@ -128,6 +128,7 @@
                 <value>networkPartition</value>
                 <value>partitions</value>
                 <value>instances</value>
+                <value>dependencyAliases</value>
             </list>
         </property>
     </bean>