From 6c96d228ae381ee71695d57703acc50bec8e2a3d Mon Sep 17 00:00:00 2001 From: ayyoob Date: Thu, 9 Feb 2017 03:02:56 +0530 Subject: [PATCH 1/4] added subscription fix --- .../APIManagementProviderServiceImpl.java | 28 +++++++++++-------- .../store/api/SubscriptionindividualApi.java | 17 +++++++++++ 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java index af471ebd6e..50bcc5ad0f 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java @@ -87,6 +87,10 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe throw new APIManagerException ( "Api application creation failed for " + applicationName + " to the user " + username); } + + SubscriptionList subscriptionList = storeClient.getSubscriptions().subscriptionsGet + (null, application.getApplicationId(), "", 0, 100, CONTENT_TYPE, null); + List needToSubscribe = new ArrayList<>(); // subscribe to apis. if (tags != null && tags.length > 0) { for (String tag: tags) { @@ -100,32 +104,32 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe if (apiList.getList() != null && apiList.getList().size() > 0) { for (APIInfo apiInfo : apiList.getList()) { - Subscription subscription = new Subscription(); - //fix for APIMANAGER-5566 admin-AT-tenant1.com-Tenant1API1-1.0.0 - String id = apiInfo.getProvider().replace("@", "-AT-") - + "-" + apiInfo.getName()+ "-" + apiInfo.getVersion(); - subscription.setApiIdentifier(id); - subscription.setApplicationId(application.getApplicationId()); - subscription.tier(ApiApplicationConstants.DEFAULT_TIER); - SubscriptionList subscriptionList = storeClient.getSubscriptions().subscriptionsGet - (id, application.getApplicationId(), "", 0, 100, CONTENT_TYPE, null); boolean subscriptionExist = false; if (subscriptionList.getList() != null && subscriptionList.getList().size() > 0) { for (Subscription subs : subscriptionList.getList()) { - if (subs.getApiIdentifier().equals(id) && subs.getApplicationId().equals( - application.getApplicationId())) { + if (subs.getApiIdentifier().equals(apiInfo.getId())) { subscriptionExist = true; break; } } } if (!subscriptionExist) { - storeClient.getIndividualSubscription().subscriptionsPost(subscription, CONTENT_TYPE); + Subscription subscription = new Subscription(); + //fix for APIMANAGER-5566 admin-AT-tenant1.com-Tenant1API1-1.0.0 + String id = apiInfo.getProvider().replace("@", "-AT-") + + "-" + apiInfo.getName()+ "-" + apiInfo.getVersion(); + subscription.setApiIdentifier(id); + subscription.setApplicationId(application.getApplicationId()); + subscription.tier(ApiApplicationConstants.DEFAULT_TIER); + needToSubscribe.add(subscription); } } } } } + if (!needToSubscribe.isEmpty()) { + storeClient.getIndividualSubscription().subscriptionsPost(needToSubscribe, CONTENT_TYPE); + } //end of subscription List applicationKeys = application.getKeys(); diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/src/main/java/org/wso2/carbon/apimgt/integration/client/store/api/SubscriptionindividualApi.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/src/main/java/org/wso2/carbon/apimgt/integration/client/store/api/SubscriptionindividualApi.java index adf57708a4..02e24ebe62 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/src/main/java/org/wso2/carbon/apimgt/integration/client/store/api/SubscriptionindividualApi.java +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/src/main/java/org/wso2/carbon/apimgt/integration/client/store/api/SubscriptionindividualApi.java @@ -22,6 +22,8 @@ import feign.Param; import feign.RequestLine; import org.wso2.carbon.apimgt.integration.client.store.model.Subscription; +import java.util.List; + @javax.annotation.Generated(value = "class io.swagger.codegen.languages.JavaClientCodegen", date = "2017-01-24T00:03:54.991+05:30") public interface SubscriptionindividualApi { @@ -42,6 +44,21 @@ public interface SubscriptionindividualApi { }) Subscription subscriptionsPost(Subscription body, @Param("contentType") String contentType); + /** + * Add new subscriptions + * Add new subscriptions + * @param body Subscription objects that should to be added (required) + * @param contentType Media type of the entity in the body. Default is JSON. (required) + * @return Subscription + */ + @RequestLine("POST /subscriptions/multiple") + @Headers({ + "Content-type: application/json", + "Accept: application/json", + "Content-Type: {contentType}" + }) + List subscriptionsPost(List body, @Param("contentType") String contentType); + /** * Remove subscription * Remove subscription From 67ae4c7c6849a1a00ef719bf807d5e6d05ff8bef Mon Sep 17 00:00:00 2001 From: ayyoob Date: Thu, 9 Feb 2017 09:11:22 +0530 Subject: [PATCH 2/4] fixed api subscription issue --- .../extension/APIManagementProviderServiceImpl.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java index 50bcc5ad0f..4dd85b2532 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java @@ -104,10 +104,12 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe if (apiList.getList() != null && apiList.getList().size() > 0) { for (APIInfo apiInfo : apiList.getList()) { + String id = apiInfo.getProvider().replace("@", "-AT-") + + "-" + apiInfo.getName()+ "-" + apiInfo.getVersion(); boolean subscriptionExist = false; if (subscriptionList.getList() != null && subscriptionList.getList().size() > 0) { for (Subscription subs : subscriptionList.getList()) { - if (subs.getApiIdentifier().equals(apiInfo.getId())) { + if (subs.getApiIdentifier().equals(id)) { subscriptionExist = true; break; } @@ -116,8 +118,7 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe if (!subscriptionExist) { Subscription subscription = new Subscription(); //fix for APIMANAGER-5566 admin-AT-tenant1.com-Tenant1API1-1.0.0 - String id = apiInfo.getProvider().replace("@", "-AT-") - + "-" + apiInfo.getName()+ "-" + apiInfo.getVersion(); + subscription.setApiIdentifier(id); subscription.setApplicationId(application.getApplicationId()); subscription.tier(ApiApplicationConstants.DEFAULT_TIER); From dac7d3c1eedfe6e2f13ff1372e4a6620158e85b4 Mon Sep 17 00:00:00 2001 From: ayyoob Date: Thu, 9 Feb 2017 09:59:06 +0530 Subject: [PATCH 3/4] made device management to be default tag --- .../api/ApiApplicationRegistrationServiceImpl.java | 2 +- .../apimgt/application/extension/api/util/APIUtil.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/src/main/java/org/wso2/carbon/apimgt/application/extension/api/ApiApplicationRegistrationServiceImpl.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/src/main/java/org/wso2/carbon/apimgt/application/extension/api/ApiApplicationRegistrationServiceImpl.java index 425c9a1141..b2f46dc09e 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/src/main/java/org/wso2/carbon/apimgt/application/extension/api/ApiApplicationRegistrationServiceImpl.java +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/src/main/java/org/wso2/carbon/apimgt/application/extension/api/ApiApplicationRegistrationServiceImpl.java @@ -63,7 +63,7 @@ public class ApiApplicationRegistrationServiceImpl implements ApiApplicationRegi PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(username); APIManagementProviderService apiManagementProviderService = APIUtil.getAPIManagementProviderService(); ApiApplicationKey apiApplicationKey = apiManagementProviderService.generateAndRetrieveApplicationKeys( - applicationName, APIUtil.getAllowedApisTags().toArray(new String[APIUtil.getAllowedApisTags().size()]), + applicationName, APIUtil.getDefaultTags(), ApiApplicationConstants.DEFAULT_TOKEN_TYPE, username, false, ApiApplicationConstants.DEFAULT_VALIDITY_PERIOD); return Response.status(Response.Status.CREATED).entity(apiApplicationKey.toString()).build(); diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/src/main/java/org/wso2/carbon/apimgt/application/extension/api/util/APIUtil.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/src/main/java/org/wso2/carbon/apimgt/application/extension/api/util/APIUtil.java index cdce160c54..8b888a010d 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/src/main/java/org/wso2/carbon/apimgt/application/extension/api/util/APIUtil.java +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/src/main/java/org/wso2/carbon/apimgt/application/extension/api/util/APIUtil.java @@ -31,6 +31,7 @@ import org.wso2.carbon.registry.core.exceptions.RegistryException; import org.wso2.carbon.registry.core.service.RegistryService; import org.wso2.carbon.user.core.service.RealmService; +import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; @@ -95,8 +96,13 @@ public class APIUtil { return deviceManagementProviderService; } + public static String[] getDefaultTags() throws DeviceManagementException { + String[] allowedApisTags = new String[1]; + allowedApisTags[0] = DEFAULT_CDMF_API_TAG; + return allowedApisTags; + } + public static List getAllowedApisTags() throws DeviceManagementException { - //Todo get allowed cdmf service tags from config. List allowedApisTags = getDeviceManagementProviderService().getAvailableDeviceTypes(); allowedApisTags.add(DEFAULT_CDMF_API_TAG); allowedApisTags.add(DEFAULT_CERT_API_TAG); From fbae181f07c64ff444a6725218943b04837af5d9 Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Tue, 14 Feb 2017 14:46:17 +0530 Subject: [PATCH 4/4] Fixing footer getting cluttered on /devicemgt/devices/search page --- .../devicemgt/app/pages/cdmf.page.device.search/search.hbs | 1 + 1 file changed, 1 insertion(+) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.device.search/search.hbs b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.device.search/search.hbs index 0bb38a9492..036384d843 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.device.search/search.hbs +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.device.search/search.hbs @@ -152,6 +152,7 @@ + {{/zone}} {{#zone "bottomJs"}}