Hi Devs, I was working on refining the cartridge classes in cloud controller. The plan is to merge CartridgeConfig and CartridgeInfo classes into Cartridge class in the cloud controller.
Since we cannot use Java Collection or complex data types when returning data from Axis2 POJO Web Service Objects and WSDL doesn't allow Java Collection data structures, all the following list attributes are turned into arrays of objects. - private List<PortMapping> portMappings; - private List<AppType> appTypeMappings; - private List<IaasProvider> iaases; - private List<String> deploymentDirs; Also the Cartridge class consists 2 Map attributes as listed below. - private Map<String, String> properties; properties will be turned from Map attribute to private org.apache.stratos.common.Properties properties; - private Map<String, IaasProvider> partitionToIaasProvider; partitionToIaasProvider is moved into the CloudControllerContext class as /** * Key - cartridge id (cartridge type is used as an unique identifier) * Value - Inner Key - partition id * Value - Inner Value - Corresponding IaasProvider. */ private Map<String, Map<String, IaasProvider>> partitionToIaasProviderByCartridge; Also there is limitation from Axis2(axis2_1.6.1.wso2v10) in using Enumerations, therefore the data type of loadBalancingIPType has be changed from LoadBalancingIPType enumerations to a String. Since the Cartridge consists information of list of IaasProvider, wsdl is exposing some jcloud dependencies which are used in the IaasProvider. - import org.jclouds.compute.ComputeService; - import org.jclouds.compute.domain.Template; Currently working on making the dependency of jclouds loosely coupled in the IaasProvider. Thank you, Vishanth -- *Vishanth Balasubramaniam* Software Engineer WSO2 Inc.; http://wso2.com lean.enterprise.middleware mobile: *+94771737718* about me: *http://about.me/vishanth <http://about.me/vishanth>*