Repository: incubator-stratos Updated Branches: refs/heads/master c5a0142e8 -> 1ff07c620
implement the capability to add multiple subscription domain mappings Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/1ff07c62 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/1ff07c62 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/1ff07c62 Branch: refs/heads/master Commit: 1ff07c620d9fd5ec8d8fa28830fdc1e5d7bfcb78 Parents: c5a0142 Author: Nirmal Fernando <[email protected]> Authored: Thu May 8 06:19:49 2014 +0530 Committer: Nirmal Fernando <[email protected]> Committed: Thu May 8 06:19:49 2014 +0530 ---------------------------------------------------------------------- .../bean/SubscriptionDomainRequest.java | 25 ++++---------- .../subscription/domain/SubscriptionDomain.java | 29 ----------------- .../domain/SubscriptionDomainBean.java | 29 +++++++++++++++++ .../bean/util/converter/PojoConverter.java | 30 +++++++++++++++++ .../stratos/rest/endpoint/mock/MockContext.java | 34 ++++++++++++-------- .../rest/endpoint/mock/StratosTestAdmin.java | 21 ++++++------ .../rest/endpoint/services/ServiceUtils.java | 24 +++++++++----- .../rest/endpoint/services/StratosAdmin.java | 19 +++++------ .../stratos-test/WEB-INF/schemas/schema.xsd | 10 ++++-- .../webapp/stratos/WEB-INF/schemas/schema.xsd | 10 ++++-- 10 files changed, 138 insertions(+), 93 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1ff07c62/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/SubscriptionDomainRequest.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/SubscriptionDomainRequest.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/SubscriptionDomainRequest.java index 3d3fb4c..6e0d6ae 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/SubscriptionDomainRequest.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/SubscriptionDomainRequest.java @@ -19,30 +19,17 @@ package org.apache.stratos.rest.endpoint.bean; -import javax.xml.bind.annotation.XmlRootElement; import java.util.List; +import javax.xml.bind.annotation.XmlRootElement; + +import org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean; + /** * Defines subscription domain post request. */ -@XmlRootElement(name = "subscriptionDomainRequest") +@XmlRootElement public class SubscriptionDomainRequest { - private String domainName; - private String applicationContext; - - public String getDomainName() { - return domainName; - } - - public String getApplicationContext() { - return applicationContext; - } - - public void setDomainName(String domainName) { - this.domainName = domainName; - } + public List<SubscriptionDomainBean> domains; - public void setApplicationContext(String applicationContext) { - this.applicationContext = applicationContext; - } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1ff07c62/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/subscription/domain/SubscriptionDomain.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/subscription/domain/SubscriptionDomain.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/subscription/domain/SubscriptionDomain.java deleted file mode 100644 index 8542339..0000000 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/subscription/domain/SubscriptionDomain.java +++ /dev/null @@ -1,29 +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.apache.stratos.rest.endpoint.bean.subscription.domain; - -import javax.xml.bind.annotation.XmlRootElement; - -@XmlRootElement -public class SubscriptionDomain { - public String domainName; - public String applicationContext; - -} http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1ff07c62/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/subscription/domain/SubscriptionDomainBean.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/subscription/domain/SubscriptionDomainBean.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/subscription/domain/SubscriptionDomainBean.java new file mode 100644 index 0000000..1b053bf --- /dev/null +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/subscription/domain/SubscriptionDomainBean.java @@ -0,0 +1,29 @@ +/* + * 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.apache.stratos.rest.endpoint.bean.subscription.domain; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name = "domains") +public class SubscriptionDomainBean { + public String domainName; + public String applicationContext; + +} http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1ff07c62/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java index 3db3b24..50cbbb6 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java @@ -21,12 +21,14 @@ package org.apache.stratos.rest.endpoint.bean.util.converter; import org.apache.stratos.cloud.controller.stub.pojo.*; import org.apache.stratos.manager.deploy.service.Service; +import org.apache.stratos.manager.subscription.SubscriptionDomain; import org.apache.stratos.messaging.domain.topology.Cluster; import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition; import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.PartitionGroup; import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.*; import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.*; +import org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean; import org.apache.stratos.rest.endpoint.bean.topology.Member; import java.util.ArrayList; @@ -403,6 +405,34 @@ public class PojoConverter { return partitionBeans; } + + public static List<SubscriptionDomainBean> populateSubscriptionDomainPojos(List<SubscriptionDomain> subscriptionDomains) { + + List<SubscriptionDomainBean> subscriptionDomainBeans = new ArrayList<SubscriptionDomainBean>(); + + if (subscriptionDomains == null) { + return subscriptionDomainBeans; + } + + for (SubscriptionDomain subscriptionDomain : subscriptionDomains) { + subscriptionDomainBeans.add(populateSubscriptionDomainPojo(subscriptionDomain)); + } + + return subscriptionDomainBeans; + } + + public static SubscriptionDomainBean populateSubscriptionDomainPojo(SubscriptionDomain subscriptionDomain) { + + SubscriptionDomainBean subscriptionDomainBean = new SubscriptionDomainBean(); + + if (subscriptionDomain == null) { + return subscriptionDomainBean; + } + subscriptionDomainBean.domainName = subscriptionDomain.getDomainName(); + subscriptionDomainBean.applicationContext = subscriptionDomain.getApplicationContext(); + + return subscriptionDomainBean; + } private static List<PropertyBean> getPropertyBeans (Properties properties) { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1ff07c62/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java index 5cadb9a..a20dd8f 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java @@ -21,16 +21,19 @@ package org.apache.stratos.rest.endpoint.mock; import org.apache.stratos.common.beans.TenantInfoBean; import org.apache.stratos.manager.dto.Cartridge; import org.apache.stratos.manager.dto.SubscriptionInfo; +import org.apache.stratos.manager.subscription.SubscriptionDomain; import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean; import org.apache.stratos.rest.endpoint.bean.StratosAdminResponse; +import org.apache.stratos.rest.endpoint.bean.SubscriptionDomainRequest; import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition; import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.PartitionGroup; import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy; import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean; -import org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomain; +import org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean; import org.apache.stratos.rest.endpoint.bean.topology.Cluster; +import org.apache.stratos.rest.endpoint.bean.util.converter.PojoConverter; import org.apache.stratos.rest.endpoint.exception.RestAPIException; import java.util.*; @@ -392,7 +395,7 @@ public class MockContext { return deploymentPolicyMap.values().toArray(new DeploymentPolicy[0]); } - public StratosAdminResponse addSubscriptionDomain(int tenantId, String alias, String domainName, String applicationContext) { + public StratosAdminResponse addSubscriptionDomains(int tenantId, String alias, SubscriptionDomainRequest request) { // populate new alias List<String> aliasList; if(tenantIdToAliasesMap.containsKey(tenantId)) { @@ -410,33 +413,36 @@ public class MockContext { } else { list = new ArrayList<SubscriptionDomain>(); } - SubscriptionDomain subscriptionDomain = new SubscriptionDomain(); - subscriptionDomain.domainName = domainName; - subscriptionDomain.applicationContext = applicationContext; - list.add(subscriptionDomain); + for (org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean bean : request.domains) { + + SubscriptionDomain subscriptionDomain = new SubscriptionDomain(bean.domainName, bean.applicationContext); + list.add(subscriptionDomain); + } + subscriptionAliasToDomainMap.put(alias, list); StratosAdminResponse stratosAdminResponse = new StratosAdminResponse(); - stratosAdminResponse.setMessage("Successfully added subscription domain: "+domainName); + stratosAdminResponse.setMessage("Successfully added subscription domain/s."); return stratosAdminResponse; } - public List<SubscriptionDomain> getSubscriptionDomains(int tenantId, String alias) { + public List<SubscriptionDomainBean> getSubscriptionDomains(int tenantId, String alias) { List<String> tenantAliases = tenantIdToAliasesMap.get(tenantId); if(tenantAliases != null && tenantAliases.contains(alias)) { - return subscriptionAliasToDomainMap.get(alias); + return PojoConverter.populateSubscriptionDomainPojos(subscriptionAliasToDomainMap.get(alias)); } - return new ArrayList<SubscriptionDomain>(); + return new ArrayList<SubscriptionDomainBean>(); } - public SubscriptionDomain getSubscriptionDomain(int tenantId, String cartridgeType, + public SubscriptionDomainBean getSubscriptionDomain(int tenantId, String cartridgeType, String subscriptionAlias, String domainName) throws RestAPIException { List<String> tenantAliases = tenantIdToAliasesMap.get(tenantId); if(tenantAliases != null && tenantAliases.contains(subscriptionAlias)) { for (SubscriptionDomain subscriptionDomain : subscriptionAliasToDomainMap.get(subscriptionAlias)) { - if(subscriptionDomain.domainName.equals(domainName)) { - return subscriptionDomain; + if(subscriptionDomain.getDomainName().equals(domainName)) { + + return PojoConverter.populateSubscriptionDomainPojo(subscriptionDomain); } } } @@ -456,7 +462,7 @@ public class MockContext { for (Iterator<SubscriptionDomain> iterator = subscriptionAliasToDomainMap.get(subscriptionAlias).iterator(); iterator .hasNext();) { SubscriptionDomain subscriptionDomain = (SubscriptionDomain) iterator.next(); - if (subscriptionDomain.domainName.equals(domainName)) { + if (subscriptionDomain.getDomainName().equals(domainName)) { iterator.remove(); stratosAdminResponse.setMessage("Successfully removed the subscription domain: "+domainName); } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1ff07c62/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java index 3f16039..34793b2 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java @@ -25,6 +25,7 @@ import org.apache.stratos.common.beans.TenantInfoBean; import org.apache.stratos.manager.dto.Cartridge; import org.apache.stratos.manager.dto.SubscriptionInfo; import org.apache.stratos.manager.exception.ADCException; +import org.apache.stratos.manager.subscription.SubscriptionDomain; import org.apache.stratos.rest.endpoint.Utils; import org.apache.stratos.rest.endpoint.annotation.AuthorizationAction; import org.apache.stratos.rest.endpoint.annotation.SuperTenantService; @@ -37,7 +38,7 @@ import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.Autosca import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean; -import org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomain; +import org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean; import org.apache.stratos.rest.endpoint.bean.topology.Cluster; import org.apache.stratos.rest.endpoint.exception.RestAPIException; import org.apache.stratos.rest.endpoint.services.ServiceUtils; @@ -478,38 +479,38 @@ public class StratosTestAdmin { } @POST - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/") + @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public StratosAdminResponse addSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType, + public StratosAdminResponse addSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType, @PathParam("subscriptionAlias") String subscriptionAlias, SubscriptionDomainRequest request) throws RestAPIException { - return MockContext.getInstance().addSubscriptionDomain(2, subscriptionAlias, request.getDomainName(), request.getApplicationContext()); + return MockContext.getInstance().addSubscriptionDomains(2, subscriptionAlias, request); } @GET - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/") + @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public SubscriptionDomain[] getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType, + public SubscriptionDomainBean[] getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType, @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException { - return MockContext.getInstance().getSubscriptionDomains(2, subscriptionAlias).toArray(new SubscriptionDomain[0]); + return MockContext.getInstance().getSubscriptionDomains(2, subscriptionAlias).toArray(new SubscriptionDomainBean[0]); } @GET - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/{domainName}") + @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName}") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public SubscriptionDomain getSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType, + public SubscriptionDomainBean getSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType, @PathParam("subscriptionAlias") String subscriptionAlias, @PathParam("domainName") String domainName) throws RestAPIException { return MockContext.getInstance().getSubscriptionDomain(2, cartridgeType, subscriptionAlias, domainName); } @DELETE - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/{domainName}") + @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName}") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") public StratosAdminResponse removeSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType, http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1ff07c62/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java index f7b70f6..b602ec6 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java @@ -55,12 +55,14 @@ import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; import org.apache.stratos.messaging.util.Constants; import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean; import org.apache.stratos.rest.endpoint.bean.StratosAdminResponse; +import org.apache.stratos.rest.endpoint.bean.SubscriptionDomainRequest; import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition; import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.PartitionGroup; import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean; import org.apache.stratos.rest.endpoint.bean.repositoryNotificationInfoBean.Payload; +import org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean; import org.apache.stratos.rest.endpoint.bean.util.converter.PojoConverter; import org.apache.stratos.rest.endpoint.exception.RestAPIException; @@ -1188,11 +1190,17 @@ public class ServiceUtils { return stratosAdminResponse; } - public static StratosAdminResponse addSubscriptionDomain(ConfigurationContext configurationContext, String cartridgeType, - String subscriptionAlias, String domainName, String applicationContext) throws RestAPIException { + public static StratosAdminResponse addSubscriptionDomains(ConfigurationContext configurationContext, String cartridgeType, + String subscriptionAlias, + SubscriptionDomainRequest request) + throws RestAPIException { try { int tenantId = ApplicationManagementUtil.getTenantId(configurationContext); - cartridgeSubsciptionManager.addSubscriptionDomain(tenantId, subscriptionAlias, domainName, applicationContext); + for (org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean subscriptionDomain : request.domains) { + + cartridgeSubsciptionManager.addSubscriptionDomain(tenantId, subscriptionAlias, + subscriptionDomain.domainName, subscriptionDomain.applicationContext); + } } catch (Exception e) { log.error(e.getMessage(), e); throw new RestAPIException(e.getMessage(), e); @@ -1203,24 +1211,24 @@ public class ServiceUtils { return stratosAdminResponse; } - public static List<SubscriptionDomain> getSubscriptionDomains(ConfigurationContext configurationContext, String cartridgeType, + public static List<SubscriptionDomainBean> getSubscriptionDomains(ConfigurationContext configurationContext, String cartridgeType, String subscriptionAlias) throws RestAPIException { try { int tenantId = ApplicationManagementUtil.getTenantId(configurationContext); - return cartridgeSubsciptionManager.getSubscriptionDomains(tenantId, subscriptionAlias); + return PojoConverter.populateSubscriptionDomainPojos(cartridgeSubsciptionManager.getSubscriptionDomains(tenantId, subscriptionAlias)); } catch (Exception e) { log.error(e.getMessage(), e); throw new RestAPIException(e.getMessage(), e); } } - public static SubscriptionDomain getSubscriptionDomain(ConfigurationContext configurationContext, String cartridgeType, + public static SubscriptionDomainBean getSubscriptionDomain(ConfigurationContext configurationContext, String cartridgeType, String subscriptionAlias, String domain) throws RestAPIException { try { int tenantId = ApplicationManagementUtil .getTenantId(configurationContext); - SubscriptionDomain subscriptionDomain = cartridgeSubsciptionManager.getSubscriptionDomain(tenantId, - subscriptionAlias, domain); + SubscriptionDomainBean subscriptionDomain = PojoConverter.populateSubscriptionDomainPojo(cartridgeSubsciptionManager.getSubscriptionDomain(tenantId, + subscriptionAlias, domain)); if (subscriptionDomain == null) { String message = "Could not find a subscription [domain] "+domain+ " for Cartridge [type] " http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1ff07c62/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 5b39030..b766ffa 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 @@ -42,6 +42,7 @@ import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.Deploy import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean; import org.apache.stratos.rest.endpoint.bean.repositoryNotificationInfoBean.Payload; +import org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean; import org.apache.stratos.rest.endpoint.bean.topology.Cluster; import org.apache.stratos.rest.endpoint.exception.RestAPIException; import org.apache.stratos.tenant.mgt.core.TenantPersistor; @@ -1021,38 +1022,38 @@ public class StratosAdmin extends AbstractAdmin { } @POST - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/") + @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public StratosAdminResponse addSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType, + public StratosAdminResponse addSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType, @PathParam("subscriptionAlias") String subscriptionAlias, SubscriptionDomainRequest request) throws RestAPIException { - return ServiceUtils.addSubscriptionDomain(getConfigContext(), cartridgeType, subscriptionAlias, request.getDomainName(), request.getApplicationContext()); + return ServiceUtils.addSubscriptionDomains(getConfigContext(), cartridgeType, subscriptionAlias, request); } @GET - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/") + @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public SubscriptionDomain[] getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType, + public SubscriptionDomainBean[] getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType, @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException { - return ServiceUtils.getSubscriptionDomains(getConfigContext(), cartridgeType, subscriptionAlias).toArray(new SubscriptionDomain[0]); + return ServiceUtils.getSubscriptionDomains(getConfigContext(), cartridgeType, subscriptionAlias).toArray(new SubscriptionDomainBean[0]); } @GET - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/{domainName}") + @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName}") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public SubscriptionDomain getSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType, + public SubscriptionDomainBean getSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType, @PathParam("subscriptionAlias") String subscriptionAlias, @PathParam("domainName") String domainName) throws RestAPIException { return ServiceUtils.getSubscriptionDomain(getConfigContext(), cartridgeType, subscriptionAlias, domainName); } @DELETE - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/{domainName}") + @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName}") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") public StratosAdminResponse removeSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType, http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1ff07c62/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 fe09947..e6fd796 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 @@ -205,12 +205,18 @@ <xs:element name="subscriptionDomainRequest"> <xs:complexType> <xs:sequence> - <xs:element name="domainName" type="xs:string" minOccurs="1" maxOccurs="1" nillable="false"/> - <xs:element name="applicationContext" minOccurs="0" maxOccurs="1" nillable="true"/> + <xs:element name="domains" type="subscriptionDomain" minOccurs="1" maxOccurs="unbounded" nillable="false"/> </xs:sequence> </xs:complexType> </xs:element> + <xs:complexType name="subscriptionDomain"> + <xs:all> + <xs:element name="domainName" type="xs:string" minOccurs="1" maxOccurs="1" nillable="false"/> + <xs:element name="applicationContext" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true"/> + </xs:all> + </xs:complexType> + <xs:complexType name="thresholdValues"> <xs:all> <xs:element name="average" type="xs:int" minOccurs="1" maxOccurs="1"/> http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1ff07c62/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 1a4947d..f59bf28 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 @@ -205,12 +205,18 @@ <xs:element name="subscriptionDomainRequest"> <xs:complexType> <xs:sequence> - <xs:element name="domainName" type="xs:string" minOccurs="1" maxOccurs="1" nillable="false"/> - <xs:element name="applicationContext" minOccurs="0" maxOccurs="1" nillable="true"/> + <xs:element name="domains" type="subscriptionDomain" minOccurs="1" maxOccurs="unbounded" nillable="false"/> </xs:sequence> </xs:complexType> </xs:element> + <xs:complexType name="subscriptionDomain"> + <xs:all> + <xs:element name="domainName" type="xs:string" minOccurs="1" maxOccurs="1" nillable="false"/> + <xs:element name="applicationContext" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true"/> + </xs:all> + </xs:complexType> + <xs:complexType name="thresholdValues"> <xs:all> <xs:element name="average" type="xs:int" minOccurs="1" maxOccurs="1"/>
