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>