diff --git a/components/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.api/pom.xml b/components/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.api/pom.xml
index b0bb0b1788..bbd9fb5d69 100644
--- a/components/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.api/pom.xml
+++ b/components/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.api/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
grafana-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.common/pom.xml b/components/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.common/pom.xml
index b48dfaad13..7093ac3349 100644
--- a/components/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.common/pom.xml
+++ b/components/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.common/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
grafana-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.core/pom.xml b/components/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.core/pom.xml
index dc7de95714..0a59c96a80 100644
--- a/components/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.core/pom.xml
+++ b/components/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.core/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
grafana-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/analytics-mgt/grafana-mgt/pom.xml b/components/analytics-mgt/grafana-mgt/pom.xml
index dec81b3aa5..0c607aa09c 100644
--- a/components/analytics-mgt/grafana-mgt/pom.xml
+++ b/components/analytics-mgt/grafana-mgt/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
analytics-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/analytics-mgt/pom.xml b/components/analytics-mgt/pom.xml
index 7722cd4868..9c6a1492cd 100644
--- a/components/analytics-mgt/pom.xml
+++ b/components/analytics-mgt/pom.xml
@@ -3,7 +3,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension/pom.xml
index c4dbc2d834..06542fee80 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension/pom.xml
@@ -20,7 +20,7 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
4.0.0
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/pom.xml
new file mode 100644
index 0000000000..2dca4947db
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/pom.xml
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+ apimgt-extensions
+ org.wso2.carbon.devicemgt
+ 5.0.26-SNAPSHOT
+ ../pom.xml
+
+
+ 4.0.0
+ io.entgra.device.mgt.core.apimgt.extension.rest.api
+ bundle
+ Entgra - Device Management Extension for APIM REST API
+ Entgra - Device Management Extension for APIM REST API
+ https://entgra.io
+
+
+
+ org.wso2.carbon
+ org.wso2.carbon.logging
+ provided
+
+
+ org.wso2.carbon
+ org.wso2.carbon.utils
+ provided
+
+
+ org.wso2.carbon
+ org.wso2.carbon.core
+ provided
+
+
+ org.eclipse.osgi
+ org.eclipse.osgi
+ provided
+
+
+ org.eclipse.osgi
+ org.eclipse.osgi.services
+ provided
+
+
+
+ org.json.wso2
+ json
+
+
+ com.google.code.gson
+ gson
+ provided
+
+
+ org.wso2.carbon.apimgt
+ org.wso2.carbon.apimgt.impl
+ provided
+
+
+ com.squareup.okhttp3
+ okhttp
+ compile
+
+
+
+
+
+
+ org.apache.felix
+ maven-scr-plugin
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ 5.1.7
+ true
+
+
+ ${project.artifactId}
+ ${project.artifactId}
+ ${carbon.device.mgt.version}
+ Publisher API Management Bundle
+
+ io.entgra.device.mgt.core.apimgt.extension.rest.api.internal
+
+
+ !io.entgra.device.mgt.core.apimgt.extension.rest.api.internal,
+ io.entgra.device.mgt.core.apimgt.extension.rest.api.*
+
+
+ org.osgi.framework.*;version="${imp.package.version.osgi.framework}",
+ org.osgi.service.*;version="${imp.package.version.osgi.service}",
+ org.wso2.carbon.core;version="4.6",
+ org.wso2.carbon.core.util;version="4.6",
+ org.apache.commons.ssl,
+ org.wso2.carbon.apimgt.api.model,
+ okhttp3.*,
+ org.wso2.carbon.apimgt.impl;version="${carbon.api.mgt.version.range}",
+ org.wso2.carbon.apimgt.impl.utils;version="${carbon.api.mgt.version.range}",
+ org.wso2.carbon.apimgt.impl.internal;version="${carbon.api.mgt.version.range}",
+ org.json
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+
+ ${basedir}/target/coverage-reports/jacoco-unit.exec
+
+
+
+ jacoco-initialize
+
+ prepare-agent
+
+
+
+ jacoco-site
+ test
+
+ report
+
+
+ ${basedir}/target/coverage-reports/jacoco-unit.exec
+ ${basedir}/target/coverage-reports/site
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/APIApplicationServices.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/APIApplicationServices.java
new file mode 100644
index 0000000000..51d7d20b17
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/APIApplicationServices.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.apimgt.extension.rest.api;
+
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.APIApplicationKey;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.AccessTokenInfo;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.APIServicesException;
+
+public interface APIApplicationServices {
+
+ APIApplicationKey createAndRetrieveApplicationCredentials() throws APIServicesException;
+
+ AccessTokenInfo generateAccessTokenFromRegisteredApplication(String clientId, String clientSecret) throws APIServicesException;
+
+ AccessTokenInfo generateAccessTokenFromRefreshToken(String refreshToken, String clientId, String clientSecret) throws APIServicesException;
+
+}
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/APIApplicationServicesImpl.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/APIApplicationServicesImpl.java
new file mode 100644
index 0000000000..68faf24b80
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/APIApplicationServicesImpl.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.apimgt.extension.rest.api;
+
+import com.google.gson.Gson;
+import org.json.JSONObject;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.util.HttpsTrustManagerUtils;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.APIApplicationKey;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.constants.Constants;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.AccessTokenInfo;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.APIServicesException;
+import okhttp3.MediaType;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+import okhttp3.RequestBody;
+import okhttp3.Credentials;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.apimgt.impl.APIManagerConfiguration;
+import org.wso2.carbon.apimgt.impl.internal.ServiceReferenceHolder;
+import java.io.IOException;
+
+public class APIApplicationServicesImpl implements APIApplicationServices {
+
+ private static final Log log = LogFactory.getLog(APIApplicationServicesImpl.class);
+ private static final OkHttpClient client = new OkHttpClient(HttpsTrustManagerUtils.getSSLClient().newBuilder());
+ private static final Gson gson = new Gson();
+ private static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
+ String msg = null;
+ APIManagerConfiguration config = ServiceReferenceHolder.getInstance().
+ getAPIManagerConfigurationService().getAPIManagerConfiguration();
+
+ @Override
+ public APIApplicationKey createAndRetrieveApplicationCredentials()
+ throws APIServicesException {
+
+ String applicationEndpoint = config.getFirstProperty(Constants.DCR_END_POINT);
+ String serverUser = config.getFirstProperty(Constants.SERVER_USER);
+ String serverPassword = config.getFirstProperty(Constants.SERVER_PASSWORD);
+
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("callbackUrl", Constants.EMPTY_STRING);
+ jsonObject.put("clientName", Constants.CLIENT_NAME);
+ jsonObject.put("grantType", Constants.GRANT_TYPE);
+ jsonObject.put("owner", serverUser);
+ jsonObject.put("saasApp", true);
+
+ RequestBody requestBody = RequestBody.Companion.create(jsonObject.toString(), JSON);
+ Request request = new Request.Builder()
+ .url(applicationEndpoint)
+ .addHeader(Constants.AUTHORIZATION_HEADER_NAME, Credentials.basic(serverUser, serverPassword))
+ .post(requestBody)
+ .build();
+ try {
+ Response response = client.newCall(request).execute();
+ return gson.fromJson(response.body().string(), APIApplicationKey.class);
+ } catch (IOException e) {
+ msg = "Error occurred while processing the response";
+ log.error(msg, e);
+ throw new APIServicesException(e);
+ }
+ }
+
+ @Override
+ public AccessTokenInfo generateAccessTokenFromRegisteredApplication(String consumerKey, String consumerSecret)
+ throws APIServicesException {
+
+ String userName = config.getFirstProperty(Constants.SERVER_USER);
+ String userPassword = config.getFirstProperty(Constants.SERVER_PASSWORD);
+
+ JSONObject params = new JSONObject();
+ params.put(Constants.GRANT_TYPE_PARAM_NAME, Constants.PASSWORD_GRANT_TYPE);
+ params.put(Constants.PASSWORD_GRANT_TYPE_USERNAME, userName);
+ params.put(Constants.PASSWORD_GRANT_TYPE_PASSWORD, userPassword);
+ params.put(Constants.SCOPE_PARAM_NAME, Constants.SCOPES);
+ return getToken(params, consumerKey, consumerSecret);
+ }
+
+ @Override
+ public AccessTokenInfo generateAccessTokenFromRefreshToken(String refreshToken, String consumerKey, String consumerSecret)
+ throws APIServicesException {
+
+ JSONObject params = new JSONObject();
+ params.put(Constants.GRANT_TYPE_PARAM_NAME, Constants.REFRESH_TOKEN_GRANT_TYPE);
+ params.put(Constants.REFRESH_TOKEN_GRANT_TYPE_PARAM_NAME, refreshToken);
+ params.put(Constants.SCOPE_PARAM_NAME, Constants.SCOPES);
+ return getToken(params, consumerKey, consumerSecret);
+ }
+
+ public AccessTokenInfo getToken(JSONObject nameValuePairs, String clientId, String clientSecret)
+ throws APIServicesException {
+
+ String tokenEndPoint = config.getFirstProperty(Constants.TOKE_END_POINT);
+
+ RequestBody requestBody = RequestBody.Companion.create(nameValuePairs.toString(), JSON);
+ Request request = new Request.Builder()
+ .url(tokenEndPoint)
+ .addHeader(Constants.AUTHORIZATION_HEADER_NAME, Credentials.basic(clientId, clientSecret))
+ .post(requestBody)
+ .build();
+
+ try {
+ Response response = client.newCall(request).execute();
+ return gson.fromJson(response.body().string(), AccessTokenInfo.class);
+ } catch (IOException e) {
+ msg = "Error occurred while processing the response";
+ log.error(msg, e);
+ throw new APIServicesException(e);
+ }
+ }
+}
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/PublisherRESTAPIServices.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/PublisherRESTAPIServices.java
new file mode 100644
index 0000000000..2ea0a51f34
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/PublisherRESTAPIServices.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.apimgt.extension.rest.api;
+
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.APIApplicationKey;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.AccessTokenInfo;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.APIServicesException;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.BadRequestException;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.UnexpectedResponseException;
+import org.json.JSONObject;
+import org.wso2.carbon.apimgt.api.model.Scope;
+
+public interface PublisherRESTAPIServices {
+
+ JSONObject getScopes(APIApplicationKey apiApplicationKey, AccessTokenInfo accessTokenInfo)
+ throws APIServicesException, BadRequestException, UnexpectedResponseException;
+
+ boolean isSharedScopeNameExists(APIApplicationKey apiApplicationKey, AccessTokenInfo accessTokenInfo, String key)
+ throws APIServicesException, BadRequestException, UnexpectedResponseException;
+
+ boolean updateSharedScope(APIApplicationKey apiApplicationKey, AccessTokenInfo accessTokenInfo, Scope scope)
+ throws APIServicesException, BadRequestException, UnexpectedResponseException;
+}
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/PublisherRESTAPIServicesImpl.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/PublisherRESTAPIServicesImpl.java
new file mode 100644
index 0000000000..819b91210d
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/PublisherRESTAPIServicesImpl.java
@@ -0,0 +1,178 @@
+/*
+ * Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.apimgt.extension.rest.api;
+
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.constants.Constants;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.APIApplicationKey;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.AccessTokenInfo;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.APIServicesException;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.BadRequestException;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.UnexpectedResponseException;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.util.HttpsTrustManagerUtils;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.util.ScopeUtils;
+import okhttp3.MediaType;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+import okhttp3.RequestBody;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.commons.ssl.Base64;
+import org.json.JSONObject;
+import org.wso2.carbon.apimgt.api.model.Scope;
+
+import java.io.IOException;
+
+public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
+ private static final Log log = LogFactory.getLog(PublisherRESTAPIServicesImpl.class);
+ private static final OkHttpClient client = new OkHttpClient(HttpsTrustManagerUtils.getSSLClient().newBuilder());
+ private static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
+ private static final String host = System.getProperty(Constants.IOT_CORE_HOST);
+ private static final String port = System.getProperty(Constants.IOT_CORE_HTTPS_PORT);
+
+ @Override
+ public JSONObject getScopes(APIApplicationKey apiApplicationKey, AccessTokenInfo accessTokenInfo)
+ throws APIServicesException, BadRequestException, UnexpectedResponseException {
+
+ String getAllScopesUrl = Constants.HTTPS_PROTOCOL + Constants.SCHEME_SEPARATOR + host + Constants.COLON
+ + port + Constants.GET_ALL_SCOPES;
+ Request request = new Request.Builder()
+ .url(getAllScopesUrl)
+ .addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ + accessTokenInfo.getAccess_token())
+ .get()
+ .build();
+
+ try {
+ Response response = client.newCall(request).execute();
+ if (HttpStatus.SC_OK == response.code()) {
+ JSONObject jsonObject = new JSONObject(response.body().string());
+ return jsonObject;
+ } else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
+ APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
+ AccessTokenInfo refreshedAccessToken = apiApplicationServices.
+ generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
+ apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
+ //TODO: max attempt count
+ return getScopes(apiApplicationKey, refreshedAccessToken);
+ } else if (HttpStatus.SC_BAD_REQUEST == response.code()) {
+ String msg = "Bad Request, Invalid request";
+ log.error(msg);
+ throw new BadRequestException(msg);
+ } else {
+ String msg = "Response : " + response.code() + response.body();
+ throw new UnexpectedResponseException(msg);
+ }
+ } catch (IOException e) {
+ String msg = "Error occurred while processing the response";
+ log.error(msg, e);
+ throw new APIServicesException(e);
+ }
+ }
+
+ @Override
+ public boolean isSharedScopeNameExists(APIApplicationKey apiApplicationKey, AccessTokenInfo accessTokenInfo, String key)
+ throws APIServicesException, BadRequestException, UnexpectedResponseException {
+
+ String keyValue = new String(Base64.encodeBase64((key).getBytes())).replace(Constants.QUERY_KEY_VALUE_SEPARATOR,
+ Constants.EMPTY_STRING);
+ String getScopeUrl = Constants.HTTPS_PROTOCOL + Constants.SCHEME_SEPARATOR + host + Constants.COLON
+ + port + Constants.GET_SCOPE + keyValue;
+
+ Request request = new Request.Builder()
+ .url(getScopeUrl)
+ .addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ + accessTokenInfo.getAccess_token())
+ .head()
+ .build();
+ try {
+ Response response = client.newCall(request).execute();
+ if (HttpStatus.SC_OK == response.code()) {
+ return true;
+ } else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
+ APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
+ AccessTokenInfo refreshedAccessToken = apiApplicationServices.
+ generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
+ apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
+ //TODO: max attempt count
+ return isSharedScopeNameExists(apiApplicationKey, refreshedAccessToken, key);
+ } else if (HttpStatus.SC_BAD_REQUEST == response.code()) {
+ String msg = "Bad Request, Invalid request";
+ log.error(msg);
+ throw new BadRequestException(msg);
+ } else {
+ String msg = "Response : " + response.code() + response.body();
+ throw new UnexpectedResponseException(msg);
+ }
+ } catch (IOException e) {
+ String msg = "Error occurred while processing the response";
+ log.error(msg, e);
+ throw new APIServicesException(e);
+ }
+ }
+
+ @Override
+ public boolean updateSharedScope(APIApplicationKey apiApplicationKey, AccessTokenInfo accessTokenInfo, Scope scope)
+ throws APIServicesException, BadRequestException, UnexpectedResponseException {
+
+ String updateScopeUrl = Constants.HTTPS_PROTOCOL + Constants.SCHEME_SEPARATOR + host
+ + Constants.COLON + port + Constants.GET_SCOPE + scope.getId();
+
+ ScopeUtils scopeUtil = new ScopeUtils();
+ scopeUtil.setKey(scope.getKey());
+ scopeUtil.setName(scope.getName());
+ scopeUtil.setDescription(scope.getDescription());
+ scopeUtil.setRoles(scope.getRoles());
+ String scopeString = scopeUtil.toJSON();
+
+ RequestBody requestBody = RequestBody.create(JSON, scopeString);
+ Request request = new Request.Builder()
+ .url(updateScopeUrl)
+ .addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ + accessTokenInfo.getAccess_token())
+ .put(requestBody)
+ .build();
+
+ try {
+ Response response = client.newCall(request).execute();
+ if (HttpStatus.SC_OK == response.code()) {
+ return true;
+ } else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
+ APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
+ AccessTokenInfo refreshedAccessToken = apiApplicationServices.
+ generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
+ apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
+ //TODO: max attempt count
+ return updateSharedScope(apiApplicationKey, refreshedAccessToken, scope);
+ } else if (HttpStatus.SC_BAD_REQUEST == response.code()) {
+ String msg = "Bad Request, Invalid scope object";
+ log.error(msg);
+ throw new BadRequestException(msg);
+ } else {
+ String msg = "Response : " + response.code() + response.body();
+ throw new UnexpectedResponseException(msg);
+ }
+ } catch (IOException e) {
+ String msg = "Error occurred while processing the response";
+ log.error(msg, e);
+ throw new APIServicesException(e);
+ }
+ }
+}
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/bean/RegistrationProfile.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/bean/RegistrationProfile.java
new file mode 100644
index 0000000000..455c4704d1
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/bean/RegistrationProfile.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.apimgt.extension.rest.api.bean;
+
+/**
+ * This class represents the data that are required to register
+ * the oauth application.
+ */
+public class RegistrationProfile {
+
+ private String callbackUrl;
+ private String clientName;
+ private String tokenScope;
+ private String owner;
+ private String grantType;
+ private String applicationType;
+ private boolean isSaasApp;
+
+ private static final String TAG = RegistrationProfile.class.getSimpleName();
+
+ public String getCallbackUrl() {
+ return callbackUrl;
+ }
+
+ public void setCallbackUrl(String callBackUrl) {
+ this.callbackUrl = callBackUrl;
+ }
+
+ public String getClientName() {
+ return clientName;
+ }
+
+ public void setClientName(String clientName) {
+ this.clientName = clientName;
+ }
+
+ public String getTokenScope() {
+ return tokenScope;
+ }
+
+ public void setTokenScope(String tokenScope) {
+ this.tokenScope = tokenScope;
+ }
+
+ public String getOwner() {
+ return owner;
+ }
+
+ public void setOwner(String owner) {
+ this.owner = owner;
+ }
+
+ public String getGrantType() {
+ return grantType;
+ }
+
+ public void setGrantType(String grantType) {
+ this.grantType = grantType;
+ }
+
+ public String getApplicationType() {
+ return applicationType;
+ }
+
+ public void setApplicationType(String applicationType) {
+ this.applicationType = applicationType;
+ }
+
+ public boolean isSaasApp() {
+ return isSaasApp;
+ }
+
+ public void setIsSaasApp(boolean isSaasApp) {
+ this.isSaasApp = isSaasApp;
+ }
+
+ public String toJSON() {
+ String jsonString =
+ "{\"callbackUrl\": \"" + callbackUrl + "\",\"clientName\": \"" + clientName +
+ "\", \"owner\": \"" + owner + "\"," + "\"grantType\": \"" + grantType +
+ "\", \"saasApp\" : " + isSaasApp + " }\n";
+ return jsonString;
+ }
+}
\ No newline at end of file
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/constants/Constants.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/constants/Constants.java
new file mode 100644
index 0000000000..e4dd49b381
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/constants/Constants.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.apimgt.extension.rest.api.constants;
+
+public final class Constants {
+
+ private Constants() {
+ }
+
+ public static final String EMPTY_STRING = "";
+ public static final String CLIENT_NAME = "rest_api_publisher_code";
+ public static final String SERVER_USER = "WorkflowConfigurations.ServerUser";
+ public static final String SERVER_PASSWORD = "WorkflowConfigurations.ServerPassword";
+ public static final String GRANT_TYPE = "client_credentials password refresh_token";
+ public static final String REFRESH_TOKEN_GRANT_TYPE_PARAM_NAME = "refresh_token";
+ public static final String OAUTH_EXPIRES_IN = "expires_in";
+ public static final String OAUTH_TOKEN_SCOPE = "scope";
+ public static final String OAUTH_TOKEN_TYPE = "token_type";
+ public static final String REFRESH_TOKEN_GRANT_TYPE = "refresh_token";
+ public static final String SCOPE_PARAM_NAME = "scope";
+ public static final String SCOPES = "apim:api_create apim:api_view apim:shared_scope_manage";
+ public static final String DCR_END_POINT = "WorkflowConfigurations.DCREndPoint";
+ public static final String TOKE_END_POINT = "WorkflowConfigurations.TokenEndPoint";
+ public static final String ADAPTER_CONF_KEEP_ALIVE = "keepAlive";
+ public static final int ADAPTER_CONF_DEFAULT_KEEP_ALIVE = 60000;
+ public static final String CLIENT_ID = "clientId";
+ public static final String CLIENT_SECRET = "clientSecret";
+
+ public static final String AUTHORIZATION_HEADER_NAME = "Authorization";
+ public static final String AUTHORIZATION_HEADER_VALUE_PREFIX = "Basic ";
+ public static final String AUTHORIZATION_HEADER_PREFIX_BEARER = "Bearer ";
+ public static final String HEADER_CONTENT_TYPE = "Content-Type";
+ public static final String APPLICATION_JSON = "application/json";
+ public static final String PASSWORD_GRANT_TYPE = "password";
+ public static final String PASSWORD_GRANT_TYPE_USERNAME = "username";
+ public static final String PASSWORD_GRANT_TYPE_PASSWORD = "password";
+ public static final String PASSWORD_GRANT_TYPE_SCOPES = "scopes";
+ public static final String ACCESS_TOKEN_GRANT_TYPE_PARAM_NAME = "access_token";
+ public static final String GRANT_TYPE_PARAM_NAME = "grant_type";
+ public static final String HTTPS_PROTOCOL = "https";
+ public static final String HTTP_PROTOCOL = "http";
+ public static final String SCHEME_SEPARATOR = "://";
+ public static final String COLON = ":";
+ public static final String QUERY_KEY_VALUE_SEPARATOR = "=";
+ public static final String IOT_CORE_HOST = "iot.core.host";
+ public static final String IOT_CORE_HTTPS_PORT = "iot.core.https.port";
+ public static final String GET_ALL_SCOPES = "/api/am/publisher/v2/scopes?limit=1000";
+ public static final String GET_SCOPE = "/api/am/publisher/v2/scopes/";
+}
+
+
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/dto/APIApplicationKey.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/dto/APIApplicationKey.java
new file mode 100644
index 0000000000..a4b4660bb8
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/dto/APIApplicationKey.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.apimgt.extension.rest.api.dto;
+
+/**
+ * This holds the consumer application information that return from the register application endpoint
+ */
+public class APIApplicationKey {
+ private String clientName;
+ private String clientId;
+ private String clientSecret;
+ private String callBackURL;
+ private String isSaasApplication;
+ private String appOwner;
+ private String jsonString;
+ private String jsonAppAttribute;
+ private String tokenType;
+
+ public APIApplicationKey(String clientId, String clientSecret) {
+ this.clientId = clientId;
+ this.clientSecret = clientSecret;
+ }
+
+ public String getClientId() {
+ return clientId;
+ }
+
+ public void setClientId(String clientId) {
+ this.clientId = clientId;
+ }
+
+ public String getClientSecret() {
+ return clientSecret;
+ }
+
+ public void setClientSecret(String clientSecret) {
+ this.clientSecret = clientSecret;
+ }
+
+ public String getClientName() {
+ return clientName;
+ }
+
+ public void setClientName(String clientName) {
+ this.clientName = clientName;
+ }
+
+
+ public String getCallBackURL() {
+ return callBackURL;
+ }
+
+ public void setCallBackURL(String callBackURL) {
+ this.callBackURL = callBackURL;
+ }
+
+ public String getIsSaasApplication() {
+ return isSaasApplication;
+ }
+
+ public void setIsSaasApplication(String isSaasApplication) {
+ this.isSaasApplication = isSaasApplication;
+ }
+
+ public String getAppOwner() {
+ return appOwner;
+ }
+
+ public void setAppOwner(String appOwner) {
+ this.appOwner = appOwner;
+ }
+
+ public String getJsonString() {
+ return jsonString;
+ }
+
+ public void setJsonString(String jsonString) {
+ this.jsonString = jsonString;
+ }
+
+ public String getJsonAppAttribute() {
+ return jsonAppAttribute;
+ }
+
+ public void setJsonAppAttribute(String jsonAppAttribute) {
+ this.jsonAppAttribute = jsonAppAttribute;
+ }
+
+ public String getTokenType() {
+ return tokenType;
+ }
+
+ public void setTokenType(String tokenType) {
+ this.tokenType = tokenType;
+ }
+
+}
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/dto/AccessTokenInfo.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/dto/AccessTokenInfo.java
new file mode 100644
index 0000000000..95bc2b34ba
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/dto/AccessTokenInfo.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.apimgt.extension.rest.api.dto;
+
+/**
+ * This holds the token information that return from the token endpoint.
+ */
+public class AccessTokenInfo {
+
+ private String token_type;
+ private long expires_in;
+ private String refresh_token;
+ private String access_token;
+ private String scope;
+
+ public String getToken_type() {
+ return token_type;
+ }
+
+ public void setToken_type(String token_type) {
+ this.token_type = token_type;
+ }
+
+ public long getExpires_in() {
+ return expires_in;
+ }
+
+ public void setExpires_in(long expires_in) {
+ this.expires_in = expires_in;
+ }
+
+ public String getRefresh_token() {
+ return refresh_token;
+ }
+
+ public void setRefresh_token(String refresh_token) {
+ this.refresh_token = refresh_token;
+ }
+
+ public String getAccess_token() {
+ return access_token;
+ }
+
+ public void setAccess_token(String access_token) {
+ this.access_token = access_token;
+ }
+
+ public String getScope() {
+ return scope;
+ }
+
+ public void setScope(String scope) {
+ this.scope = scope;
+ }
+}
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/exceptions/APIServicesException.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/exceptions/APIServicesException.java
new file mode 100644
index 0000000000..3b9c4cfc7d
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/exceptions/APIServicesException.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions;
+
+public class APIServicesException extends Exception {
+
+ public APIServicesException() {
+ super();
+ }
+
+ public APIServicesException(String message) {
+ super(message);
+ }
+
+ public APIServicesException(String message, Throwable cause) {
+ super(message);
+ }
+
+ public APIServicesException(Throwable cause) {
+ super(cause);
+ }
+}
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/exceptions/BadRequestException.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/exceptions/BadRequestException.java
new file mode 100644
index 0000000000..6aa9be1130
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/exceptions/BadRequestException.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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.
+ */
+
+/**
+ * Custom exception class for handling bad request exceptions.
+ */
+package io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions;
+
+public class BadRequestException extends Exception {
+
+ private static final long serialVersionUID = -2387103750774855056L;
+
+ public BadRequestException(String errorMessage) {
+ super(errorMessage);
+ }
+}
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/exceptions/UnexpectedResponseException.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/exceptions/UnexpectedResponseException.java
new file mode 100644
index 0000000000..898caba26e
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/exceptions/UnexpectedResponseException.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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.
+ */
+
+/**
+ * Custom exception class for handling unexpected server response exceptions.
+ */
+package io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions;
+
+public class UnexpectedResponseException extends Exception {
+
+ private static final long serialVersionUID = -2387103750774855056L;
+
+ public UnexpectedResponseException(String errorMessage) {
+ super(errorMessage);
+ }
+}
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/internal/PublisherRESTAPIDataHolder.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/internal/PublisherRESTAPIDataHolder.java
new file mode 100644
index 0000000000..18398af9d5
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/internal/PublisherRESTAPIDataHolder.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.apimgt.extension.rest.api.internal;
+
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.APIApplicationServices;
+import org.wso2.carbon.apimgt.impl.APIManagerConfigurationService;
+
+public class PublisherRESTAPIDataHolder {
+
+ private APIApplicationServices apiApplicationServices;
+ private APIManagerConfigurationService apiManagerConfigurationService;
+
+ private static PublisherRESTAPIDataHolder thisInstance = new PublisherRESTAPIDataHolder();
+
+ private PublisherRESTAPIDataHolder() {
+ }
+
+ static PublisherRESTAPIDataHolder getInstance() {
+ return thisInstance;
+ }
+
+ public APIApplicationServices getApiApplicationServices() {
+ return apiApplicationServices;
+ }
+
+ public void setApiApplicationServices(APIApplicationServices apiApplicationServices) {
+ this.apiApplicationServices = apiApplicationServices;
+ }
+
+ public void setAPIManagerConfiguration(APIManagerConfigurationService apiManagerConfigurationService) {
+ this.apiManagerConfigurationService = apiManagerConfigurationService;
+ }
+
+ public APIManagerConfigurationService getAPIManagerConfigurationService() {
+ if (apiManagerConfigurationService == null) {
+ throw new IllegalStateException("API Manager Configuration service is not initialized properly");
+ }
+ return apiManagerConfigurationService;
+ }
+
+}
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/internal/PublisherRESTAPIServiceComponent.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/internal/PublisherRESTAPIServiceComponent.java
new file mode 100644
index 0000000000..989a547729
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/internal/PublisherRESTAPIServiceComponent.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.apimgt.extension.rest.api.internal;
+
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.APIApplicationServices;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.APIApplicationServicesImpl;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.component.ComponentContext;
+import org.wso2.carbon.apimgt.impl.APIManagerConfigurationService;
+
+/**
+ * @scr.component name="internal.io.entgra.device.mgt.core.apimgt.extension.rest.api.PublisherRESTAPIServiceComponent"
+ * immediate="true"
+ * @scr.reference name="user.apimanagerconfigurationservice.default"
+ * interface="org.wso2.carbon.apimgt.impl.APIManagerConfigurationService"
+ * cardinality="1..1"
+ * policy="dynamic"
+ * bind="setAPIManagerConfigurationService"
+ * unbind="unsetAPIManagerConfigurationService"
+ */
+public class PublisherRESTAPIServiceComponent {
+
+ private static Log log = LogFactory.getLog(PublisherRESTAPIServiceComponent.class);
+
+ protected void activate(ComponentContext componentContext) {
+ if (log.isDebugEnabled()) {
+ log.debug("Initializing publisher API extension bundle");
+ }
+ try {
+ BundleContext bundleContext = componentContext.getBundleContext();
+
+ APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
+ bundleContext.registerService(APIApplicationServices.class.getName(), apiApplicationServices, null);
+ PublisherRESTAPIDataHolder.getInstance().setApiApplicationServices(apiApplicationServices);
+
+ if (log.isDebugEnabled()) {
+ log.debug("API Application bundle has been successfully initialized");
+ }
+ } catch (Exception e) {
+ log.error("Error occurred while initializing API Application bundle", e);
+ }
+ }
+
+ protected void deactivate(ComponentContext componentContext) {
+ //do nothing
+ }
+
+ protected void setAPIManagerConfigurationService(APIManagerConfigurationService apiManagerConfigurationService) {
+ if (log.isDebugEnabled()) {
+ log.debug("Setting API Manager Configuration Service");
+ }
+ PublisherRESTAPIDataHolder.getInstance().setAPIManagerConfiguration(apiManagerConfigurationService);
+ }
+
+ protected void unsetAPIManagerConfigurationService(APIManagerConfigurationService apiManagerConfigurationService) {
+ if (log.isDebugEnabled()) {
+ log.debug("Unsetting API Manager Configuration Service");
+ }
+ PublisherRESTAPIDataHolder.getInstance().setAPIManagerConfiguration(null);
+ }
+}
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/util/HttpsTrustManagerUtils.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/util/HttpsTrustManagerUtils.java
new file mode 100644
index 0000000000..b55857af37
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/util/HttpsTrustManagerUtils.java
@@ -0,0 +1,234 @@
+/*
+ * Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.apimgt.extension.rest.api.util;
+
+import okhttp3.ConnectionPool;
+import okhttp3.OkHttpClient;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.base.ServerConfiguration;
+
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+import javax.net.ssl.SSLSession;
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.TrustManagerFactory;
+import javax.net.ssl.HostnameVerifier;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.Proxy;
+import java.net.ProxySelector;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.net.URI;
+
+import java.security.KeyManagementException;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.UnrecoverableKeyException;
+import java.security.SecureRandom;
+import java.security.cert.CertificateException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+public class HttpsTrustManagerUtils {
+
+ private static final Log log = LogFactory.getLog(HttpsTrustManagerUtils.class);
+ private static final String KEY_STORE_TYPE = "JKS";
+ /**
+ * Default truststore type of the client
+ */
+ private static final String TRUST_STORE_TYPE = "JKS";
+ /**
+ * Default keymanager type of the client
+ */
+ private static final String KEY_MANAGER_TYPE = "SunX509"; //Default Key Manager Type
+ /**
+ * Default trustmanager type of the client
+ */
+ private static final String TRUST_MANAGER_TYPE = "SunX509"; //Default Trust Manager Type
+ private static final String SSLV3 = "SSLv3";
+ private static final String DEFAULT_HOST = "localhost";
+ private static final String DEFAULT_HOST_IP = "127.0.0.1";
+ private static final int TIMEOUT = 100;
+
+ public static OkHttpClient getSSLClient() {
+
+ boolean isIgnoreHostnameVerification = Boolean.parseBoolean(System.getProperty("org.wso2"
+ + ".ignoreHostnameVerification"));
+ OkHttpClient okHttpClient;
+ final String proxyHost = System.getProperty("http.proxyHost");
+ final String proxyPort = System.getProperty("http.proxyPort");
+ final String nonProxyHostsValue = System.getProperty("http.nonProxyHosts");
+
+ final ProxySelector proxySelector = new ProxySelector() {
+ @Override
+ public List select(URI uri) {
+ List proxyList = new ArrayList<>();
+ String host = uri.getHost();
+
+ if (!StringUtils.isEmpty(host)) {
+ if (host.startsWith(DEFAULT_HOST_IP) || host.startsWith(DEFAULT_HOST) || StringUtils
+ .isEmpty(nonProxyHostsValue) || StringUtils.contains(nonProxyHostsValue, host) ||
+ StringUtils.isEmpty(proxyHost) || StringUtils.isEmpty(proxyPort)) {
+ proxyList.add(Proxy.NO_PROXY);
+ } else {
+ proxyList.add(new Proxy(Proxy.Type.HTTP,
+ new InetSocketAddress(proxyHost, Integer.parseInt(proxyPort))));
+ }
+ } else {
+ log.error("Host is null. Host could not be empty or null");
+ }
+ return proxyList;
+ }
+
+ @Override
+ public void connectFailed(URI uri, SocketAddress sa, IOException ioe) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+ };
+
+ X509TrustManager trustAllCerts = new X509TrustManager() {
+ public java.security.cert.X509Certificate[] getAcceptedIssuers() {
+ return new java.security.cert.X509Certificate[0];
+ }
+
+ public void checkClientTrusted(
+ java.security.cert.X509Certificate[] certs, String authType) {
+ }
+
+ public void checkServerTrusted(
+ java.security.cert.X509Certificate[] certs, String authType) {
+ }
+ };
+
+ if (isIgnoreHostnameVerification) {
+ okHttpClient = new OkHttpClient.Builder()
+ .connectTimeout(TIMEOUT, TimeUnit.SECONDS)
+ .writeTimeout(TIMEOUT, TimeUnit.SECONDS)
+ .readTimeout(TIMEOUT, TimeUnit.SECONDS)
+ .connectionPool(new ConnectionPool(TIMEOUT, TIMEOUT, TimeUnit.SECONDS))
+ .sslSocketFactory(getSimpleTrustedSSLSocketFactory(), trustAllCerts)
+ .hostnameVerifier(new HostnameVerifier() {
+ @Override
+ public boolean verify(String s, SSLSession sslSession) {
+ return true;
+ }
+ }).proxySelector(proxySelector).build();
+ return okHttpClient;
+ } else {
+ SSLSocketFactory trustedSSLSocketFactory = getTrustedSSLSocketFactory();
+ okHttpClient = new OkHttpClient.Builder()
+ .connectTimeout(TIMEOUT, TimeUnit.SECONDS)
+ .writeTimeout(TIMEOUT, TimeUnit.SECONDS)
+ .readTimeout(TIMEOUT, TimeUnit.SECONDS)
+ .connectionPool(new ConnectionPool(TIMEOUT, TIMEOUT, TimeUnit.SECONDS))
+ .sslSocketFactory(trustedSSLSocketFactory)
+ .proxySelector(proxySelector).build();
+ return okHttpClient;
+ }
+ }
+
+ private static SSLSocketFactory getSimpleTrustedSSLSocketFactory() {
+ try {
+ TrustManager[] trustAllCerts = new TrustManager[]{
+ new X509TrustManager() {
+ public java.security.cert.X509Certificate[] getAcceptedIssuers() {
+ return null;
+ }
+
+ public void checkClientTrusted(
+ java.security.cert.X509Certificate[] certs, String authType) {
+ }
+
+ public void checkServerTrusted(
+ java.security.cert.X509Certificate[] certs, String authType) {
+ }
+ }
+ };
+ SSLContext sc = SSLContext.getInstance("SSL");
+ sc.init(null, trustAllCerts, new SecureRandom());
+ return sc.getSocketFactory();
+ } catch (KeyManagementException | NoSuchAlgorithmException e) {
+ log.error("Error while creating the SSL socket factory due to " + e.getMessage(), e);
+ return null;
+ }
+ }
+
+ private static SSLSocketFactory getTrustedSSLSocketFactory() {
+ try {
+ String keyStorePassword = ServerConfiguration.getInstance().getFirstProperty("Security.KeyStore.Password");
+ String keyStoreLocation = ServerConfiguration.getInstance().getFirstProperty("Security.KeyStore.Location");
+ String trustStorePassword = ServerConfiguration.getInstance().getFirstProperty(
+ "Security.TrustStore.Password");
+ String trustStoreLocation = ServerConfiguration.getInstance().getFirstProperty(
+ "Security.TrustStore.Location");
+ KeyStore keyStore = loadKeyStore(keyStoreLocation, keyStorePassword, KEY_STORE_TYPE);
+ KeyStore trustStore = loadTrustStore(trustStoreLocation, trustStorePassword);
+
+ return initSSLConnection(keyStore, keyStorePassword, trustStore);
+ } catch (KeyManagementException | NoSuchAlgorithmException | KeyStoreException
+ | CertificateException | IOException | UnrecoverableKeyException e) {
+ log.error("Error while creating the SSL socket factory due to " + e.getMessage(), e);
+ return null;
+ }
+ }
+
+ private static SSLSocketFactory initSSLConnection(KeyStore keyStore, String keyStorePassword, KeyStore trustStore)
+ throws NoSuchAlgorithmException, UnrecoverableKeyException, KeyStoreException, KeyManagementException {
+ KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KEY_MANAGER_TYPE);
+ keyManagerFactory.init(keyStore, keyStorePassword.toCharArray());
+ TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TRUST_MANAGER_TYPE);
+ trustManagerFactory.init(trustStore);
+
+ // Create and initialize SSLContext for HTTPS communication
+ SSLContext sslContext = SSLContext.getInstance(SSLV3);
+ sslContext.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), null);
+ SSLContext.setDefault(sslContext);
+ return sslContext.getSocketFactory();
+ }
+
+ private static KeyStore loadKeyStore(String keyStorePath, String ksPassword, String type)
+ throws KeyStoreException, IOException, CertificateException, NoSuchAlgorithmException {
+ InputStream fileInputStream = null;
+ try {
+ char[] keypassChar = ksPassword.toCharArray();
+ KeyStore keyStore = KeyStore.getInstance(type);
+ fileInputStream = new FileInputStream(keyStorePath);
+ keyStore.load(fileInputStream, keypassChar);
+ return keyStore;
+ } finally {
+ if (fileInputStream != null) {
+ fileInputStream.close();
+ }
+ }
+ }
+
+ private static KeyStore loadTrustStore(String trustStorePath, String tsPassword)
+ throws KeyStoreException, IOException, CertificateException, NoSuchAlgorithmException {
+ return loadKeyStore(trustStorePath, tsPassword, TRUST_STORE_TYPE);
+ }
+}
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/util/ScopeUtils.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/util/ScopeUtils.java
new file mode 100644
index 0000000000..18944c945c
--- /dev/null
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/src/main/java/io/entgra/device/mgt/core/apimgt/extension/rest/api/util/ScopeUtils.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.apimgt.extension.rest.api.util;
+
+/**
+ * This class represents the scope data.
+ */
+public class ScopeUtils {
+
+ private String key;
+ private String name;
+ private String roles;
+ private String description;
+
+ public String getKey() {
+ return key;
+ }
+
+ public void setKey(String key) {
+ this.key = key;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getRoles() {
+ return roles;
+ }
+
+ public void setRoles(String roles) {
+ this.roles = roles;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String toJSON() {
+ String jsonString = "{\n" +
+ " \"name\":\" " + key + "\",\n" +
+ " \"displayName\":\" " + name + "\",\n" +
+ " \"description\":\" " + description + " \",\n" +
+ " \"bindings\":[\n" +
+ " \" " + roles + " \"\n" +
+ " ]\n" +
+ "}";
+ return jsonString;
+ }
+}
\ No newline at end of file
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml
index 147df32e6a..cf494874fd 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml
@@ -22,7 +22,7 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
index eae69d7327..14350fa0c9 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
@@ -21,7 +21,7 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
index 9634e1ffe0..701bfc666a 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
@@ -22,7 +22,7 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.keymgt.extension.api/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.keymgt.extension.api/pom.xml
index 2716ef61de..752366b4c1 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.keymgt.extension.api/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.keymgt.extension.api/pom.xml
@@ -3,7 +3,7 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
4.0.0
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.keymgt.extension/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.keymgt.extension/pom.xml
index c5db4f8668..3c065db073 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.keymgt.extension/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.keymgt.extension/pom.xml
@@ -3,7 +3,7 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml
index 3289983dd2..21c7df3235 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml
@@ -22,7 +22,7 @@
apimgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
@@ -122,6 +122,15 @@
h2-database-engine
test
+
+ org.wso2.carbon.devicemgt
+ io.entgra.device.mgt.core.apimgt.extension.rest.api
+ provided
+
+
+ org.json.wso2
+ json
+
@@ -165,6 +174,9 @@
org.scannotation;version="1.0",
org.scannotation.archiveiterator;version="1.0",
org.w3c.dom,
+ io.entgra.device.mgt.core.apimgt.extension.rest.api,
+ io.entgra.device.mgt.core.apimgt.extension.rest.api.dto,
+ io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions,
org.wso2.carbon.apimgt.annotations.api,
org.wso2.carbon.apimgt.api,
org.wso2.carbon.apimgt.api.model,
@@ -187,7 +199,8 @@
org.wso2.carbon.utils;version="4.6",
org.wso2.carbon.utils.multitenancy;version="4.6",
org.wso2.carbon.apimgt.impl.definitions,
- org.apache.commons.lang
+ org.apache.commons.lang,
+ org.json
jsr311-api;scope=compile|runtime;inline=false
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIConfig.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIConfig.java
index b3b880b251..dd3efdeac8 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIConfig.java
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIConfig.java
@@ -28,17 +28,16 @@ import java.util.Set;
/**
* This bean class carries the properties used by some API that needs to be published within the underlying
* API-Management infrastructure.
- *
* A sample API configuration accepted by this particular bean class would look like what's shown below.
* e.g.
*
*
- * enrollment
- * admin
- * /enrol
- * 1.0.0
- * http://localhost:9763/
- * http,https
+ * enrollment
+ * admin
+ * /enrol
+ * 1.0.0
+ * http://localhost:9763/
+ * http,https
*
*/
@XmlRootElement(name = "API")
@@ -47,6 +46,9 @@ public class APIConfig {
private String name;
private String owner;
private String context;
+ private String apiDocumentationName;
+ private String apiDocumentationSummary;
+ private String apiDocumentationSourceFile;
private String endpoint;
private String version;
private String policy;
@@ -82,6 +84,33 @@ public class APIConfig {
this.name = name;
}
+ @XmlElement(name = "ApiDocumentationName", required = false)
+ public String getApiDocumentationName() {
+ return apiDocumentationName;
+ }
+
+ public void setApiDocumentationName(String apiDocumentationName) {
+ this.apiDocumentationName = apiDocumentationName;
+ }
+
+ @XmlElement(name = "ApiDocumentationSummary", required = false)
+ public String getApiDocumentationSummary() {
+ return apiDocumentationSummary;
+ }
+
+ public void setApiDocumentationSummary(String apiDocumentationSummary) {
+ this.apiDocumentationSummary = apiDocumentationSummary;
+ }
+
+ @XmlElement(name = "ApiDocumentationSourceFile", required = false)
+ public String getApiDocumentationSourceFile() {
+ return apiDocumentationSourceFile;
+ }
+
+ public void setApiDocumentationSourceFile(String apiDocumentationSourceFile) {
+ this.apiDocumentationSourceFile = apiDocumentationSourceFile;
+ }
+
@XmlElement(name = "Owner", required = true)
public String getOwner() {
return owner;
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherServiceImpl.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherServiceImpl.java
index 5135e439bd..0725998e7f 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherServiceImpl.java
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherServiceImpl.java
@@ -18,9 +18,22 @@
*/
package org.wso2.carbon.apimgt.webapp.publisher;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.APIApplicationServices;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.APIApplicationServicesImpl;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.PublisherRESTAPIServices;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.PublisherRESTAPIServicesImpl;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.APIApplicationKey;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.AccessTokenInfo;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.APIServicesException;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.BadRequestException;
+import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.UnexpectedResponseException;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.apimgt.api.model.Documentation;
+import org.wso2.carbon.apimgt.api.model.DocumentationType;
+import org.json.JSONArray;
+import org.json.JSONObject;
import org.wso2.carbon.apimgt.api.APIManagementException;
import org.wso2.carbon.apimgt.api.APIProvider;
import org.wso2.carbon.apimgt.api.FaultGatewaysException;
@@ -48,7 +61,6 @@ import org.wso2.carbon.user.core.tenant.Tenant;
import org.wso2.carbon.user.core.tenant.TenantSearchResult;
import org.wso2.carbon.utils.CarbonUtils;
import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
-import org.wso2.carbon.utils.multitenancy.MultitenantUtils;
import java.io.BufferedReader;
import java.io.File;
@@ -66,18 +78,19 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.Date;
/**
* This class represents the concrete implementation of the APIPublisherService that corresponds to providing all
* API publishing related operations.
*/
public class APIPublisherServiceImpl implements APIPublisherService {
+ public static final APIManagerFactory API_MANAGER_FACTORY = APIManagerFactory.getInstance();
private static final String UNLIMITED_TIER = "Unlimited";
private static final String WS_UNLIMITED_TIER = "AsyncUnlimited";
private static final String API_PUBLISH_ENVIRONMENT = "Default";
private static final String CREATED_STATUS = "CREATED";
private static final String PUBLISH_ACTION = "Publish";
- public static final APIManagerFactory API_MANAGER_FACTORY = APIManagerFactory.getInstance();
private static final Log log = LogFactory.getLog(APIPublisherServiceImpl.class);
@Override
@@ -293,7 +306,45 @@ public class APIPublisherServiceImpl implements APIPublisherService {
}
}
}
- } catch (FaultGatewaysException | APIManagementException e) {
+ if (apiConfig.getApiDocumentationSourceFile() != null) {
+ API api = getAPI(apiConfig, true);
+
+ String fileName =
+ CarbonUtils.getCarbonHome() + File.separator + "repository" +
+ File.separator + "resources" + File.separator + "api-docs" + File.separator +
+ apiConfig.getApiDocumentationSourceFile();
+
+ BufferedReader br = new BufferedReader(new FileReader(fileName));
+ StringBuilder stringBuilder = new StringBuilder();
+ String line = null;
+ String ls = System.lineSeparator();
+ while ((line = br.readLine()) != null) {
+ stringBuilder.append(line);
+ stringBuilder.append(ls);
+ }
+ stringBuilder.deleteCharAt(stringBuilder.length() - 1);
+ br.close();
+ String docContent = stringBuilder.toString();
+
+ Documentation apiDocumentation = new Documentation(DocumentationType.HOWTO, apiConfig.getApiDocumentationName());
+ apiDocumentation.setVisibility(Documentation.DocumentVisibility.API_LEVEL);
+ apiDocumentation.setSourceType(Documentation.DocumentSourceType.MARKDOWN);
+ apiDocumentation.setCreatedDate(new Date());
+ apiDocumentation.setLastUpdated(new Date());
+ apiDocumentation.setSummary(apiConfig.getApiDocumentationSummary());
+ apiDocumentation.setOtherTypeName(null);
+
+ try {
+ //Including below code lines inside the try block because 'getDocumentation' method returns an APIManagementException exception when it doesn't have any existing doc
+ Documentation existingDoc = apiProvider.getDocumentation(api.getId(), DocumentationType.HOWTO, apiConfig.getApiDocumentationName());
+ apiProvider.removeDocumentation(api.getId(), existingDoc.getId(), null);
+ } catch (APIManagementException e) {
+ log.info("There is no any existing api documentation.");
+ }
+ apiProvider.addDocumentation(api.getId(), apiDocumentation);
+ apiProvider.addDocumentationContent(api, apiConfig.getApiDocumentationName(), docContent);
+ }
+ } catch (FaultGatewaysException | APIManagementException | IOException e) {
String msg = "Error occurred while publishing api";
log.error(msg, e);
throw new APIManagerPublisherException(e);
@@ -316,18 +367,31 @@ public class APIPublisherServiceImpl implements APIPublisherService {
WebappPublisherConfig config = WebappPublisherConfig.getInstance();
List tenants = new ArrayList<>(Collections.singletonList(APIConstants.SUPER_TENANT_DOMAIN));
tenants.addAll(config.getTenants().getTenant());
+
+ APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
+ APIApplicationKey apiApplicationKey;
+ AccessTokenInfo accessTokenInfo;
+ try {
+ apiApplicationKey = apiApplicationServices.createAndRetrieveApplicationCredentials();
+ accessTokenInfo = apiApplicationServices.generateAccessTokenFromRegisteredApplication(
+ apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
+ } catch (APIServicesException e) {
+ String errorMsg = "Error while generating application";
+ log.error(errorMsg, e);
+ throw new APIManagerPublisherException(e);
+ }
+
try {
for (String tenantDomain : tenants) {
PrivilegedCarbonContext.startTenantFlow();
PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(tenantDomain, true);
- APIProvider apiProvider = API_MANAGER_FACTORY.getAPIProvider(MultitenantUtils.getTenantAwareUsername(
- PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm().getRealmConfiguration()
- .getAdminUserName()));
+ PublisherRESTAPIServices publisherRESTAPIServices = new PublisherRESTAPIServicesImpl();
+ JSONObject scopeObject = publisherRESTAPIServices.getScopes(apiApplicationKey, accessTokenInfo);
try {
String fileName =
CarbonUtils.getCarbonConfigDirPath() + File.separator + "etc"
- + File.separator + tenantDomain + ".csv";
+ + File.separator + tenantDomain + ".csv";
if (Files.exists(Paths.get(fileName))) {
BufferedReader br = new BufferedReader(new FileReader(fileName));
int lineNumber = 0;
@@ -368,8 +432,18 @@ public class APIPublisherServiceImpl implements APIPublisherService {
}
scope.setRoles(roleString);
- if (apiProvider.isSharedScopeNameExists(scope.getKey(), tenantDomain)) {
- apiProvider.updateSharedScope(scope, tenantDomain);
+ //Set scope id which related to the scope key
+ JSONArray scopeList = (JSONArray) scopeObject.get("list");
+ for (int i = 0; i < scopeList.length(); i++) {
+ JSONObject scopeObj = scopeList.getJSONObject(i);
+ if (scopeObj.getString("name").equals(scopeMapping[2] != null ?
+ StringUtils.trim(scopeMapping[2]) : StringUtils.EMPTY)) {
+ scope.setId(scopeObj.getString("id"));
+ }
+ }
+
+ if (publisherRESTAPIServices.isSharedScopeNameExists(apiApplicationKey, accessTokenInfo, scope.getKey())) {
+ publisherRESTAPIServices.updateSharedScope(apiApplicationKey, accessTokenInfo, scope);
} else {
// todo: come to this level means, that scope is removed from API, but haven't removed from the scope-role-permission-mappings list
if (log.isDebugEnabled()) {
@@ -380,18 +454,27 @@ public class APIPublisherServiceImpl implements APIPublisherService {
}
} catch (IOException | DirectoryIteratorException ex) {
log.error("failed to read scopes from file.", ex);
+ } catch (APIServicesException | BadRequestException e) {
+ String errorMsg = "Error while calling APIs";
+ log.error(errorMsg, e);
+ throw new APIManagerPublisherException(e);
}
}
- } catch (UserStoreException e) {
- String msg = "Error occurred while reading tenant admin username";
- log.error(msg, e);
+ }
+ catch (APIServicesException e) {
+ String errorMsg = "Error while processing Publisher REST API response";
+ log.error(errorMsg, e);
throw new APIManagerPublisherException(e);
- } catch (APIManagementException e) {
- String msg = "Error occurred while loading api provider";
- log.error(msg, e);
+ } catch (BadRequestException e) {
+ String errorMsg = "Error while calling Publisher REST APIs";
+ log.error(errorMsg, e);
+ throw new APIManagerPublisherException(e);
+ } catch (UnexpectedResponseException e) {
+ String errorMsg = "Unexpected response from the server";
+ log.error(errorMsg, e);
throw new APIManagerPublisherException(e);
- } finally {
+ }finally {
PrivilegedCarbonContext.endTenantFlow();
}
}
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherUtil.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherUtil.java
index b7ad837ed8..2b6a86fb06 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherUtil.java
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/APIPublisherUtil.java
@@ -64,7 +64,7 @@ public class APIPublisherUtil {
}
public static String getWsServerBaseUrl() {
- return getServerBaseUrl().replace("https","wss");
+ return getServerBaseUrl().replace("https", "wss");
}
public static String getApiEndpointUrl(String context) {
@@ -104,7 +104,32 @@ public class APIPublisherUtil {
}
apiConfig.setVersion(version);
+ String apiDocumentationName = apiDef.getApiDocumentationName();
+ if (apiDocumentationName == null || apiDocumentationName.isEmpty()) {
+ if (log.isDebugEnabled()) {
+ log.debug("'API Documentation not set in @SwaggerDefinition Annotation'");
+ }
+ } else {
+ apiConfig.setApiDocumentationName(apiDef.getApiDocumentationName());
+ }
+ String apiDocumentationSummary = apiDef.getApiDocumentationSummary();
+ if (apiDocumentationSummary == null || apiDocumentationSummary.isEmpty()) {
+ if (log.isDebugEnabled()) {
+ log.debug("'API Documentation summary not set in @SwaggerDefinition Annotation'");
+ }
+ } else {
+ apiConfig.setApiDocumentationSummary(apiDef.getApiDocumentationSummary());
+ }
+
+ String apiDocumentationSourceFile = apiDef.getApiDocumentationSourceFile();
+ if (apiDocumentationSourceFile == null || apiDocumentationSourceFile.isEmpty()) {
+ if (log.isDebugEnabled()) {
+ log.debug("'API Documentation source file not set in @SwaggerDefinition Annotation'");
+ }
+ } else {
+ apiConfig.setApiDocumentationSourceFile(apiDef.getApiDocumentationSourceFile());
+ }
String context = apiDef.getContext();
if (context == null || context.isEmpty()) {
if (log.isDebugEnabled()) {
@@ -302,20 +327,20 @@ public class APIPublisherUtil {
public static void setResourceAuthTypes(ServletContext servletContext, APIConfig apiConfig) {
List resourcesList = null;
String nonSecuredResources = servletContext.getInitParameter(NON_SECURED_RESOURCES);
- if(null != nonSecuredResources){
+ if (null != nonSecuredResources) {
resourcesList = Arrays.asList(nonSecuredResources.split(","));
}
Set templates = apiConfig.getUriTemplates();
- if(null != resourcesList) {
+ if (null != resourcesList) {
for (ApiUriTemplate template : templates) {
String fullPaath = "";
if (!template.getUriTemplate().equals(AnnotationProcessor.WILD_CARD)) {
fullPaath = apiConfig.getContext() + template.getUriTemplate();
}
- else{
+ else {
fullPaath = apiConfig.getContext();
}
- for(String context : resourcesList) {
+ for (String context : resourcesList) {
if (context.trim().equals(fullPaath)) {
template.setAuthType(AUTH_TYPE_NON_SECURED);
}
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/config/APIResourceConfiguration.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/config/APIResourceConfiguration.java
index 49b66e6db9..1fb2ab7880 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/config/APIResourceConfiguration.java
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/config/APIResourceConfiguration.java
@@ -25,60 +25,92 @@ import java.util.List;
@XmlRootElement(name = "ResourceConfiguration")
public class APIResourceConfiguration {
- private String name;
- private String context;
- private String version;
- private List resources;
- private String[] tags;
+ private String name;
+ private String context;
+ private String apiDocumentationName;
+ private String apiDocumentationSummary;
+ private String apiDocumentationSourceFile;
+ private String version;
+ private List resources;
+ private String[] tags;
private String endpointType;
private String inSequenceName;
private String inSequenceConfig;
private String asyncApiDefinition;
public List getResources() {
- return resources;
- }
-
- @XmlElement(name = "Resources", required = true)
- public void setResources(List resources) {
- this.resources = resources;
- }
-
- public String getContext() {
- return context;
- }
-
- @XmlElement(name = "Context", required = true)
- public void setContext(String context) {
- this.context = context;
- }
-
- public String getName() {
- return name;
- }
-
- @XmlElement(name = "Name")
- public void setName(String name) {
- this.name = name;
- }
-
- public String getVersion() {
- return version;
- }
-
- @XmlElement(name = "Version")
- public void setVersion(String version) {
- this.version = version;
- }
-
- public String[] getTags() {
- return tags;
- }
-
- @XmlElement(name = "Tags")
- public void setTags(String[] tags) {
- this.tags = tags;
- }
+ return resources;
+ }
+
+ @XmlElement(name = "Resources", required = true)
+ public void setResources(List resources) {
+ this.resources = resources;
+ }
+
+ public String getContext() {
+ return context;
+ }
+
+ @XmlElement(name = "Context", required = true)
+ public void setContext(String context) {
+ this.context = context;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ @XmlElement(name = "Name")
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getApiDocumentationName() {
+ return apiDocumentationName;
+ }
+
+ @XmlElement(name = "ApiDocumentation")
+
+
+ public void setApiDocumentationName(String apiDocumentationName) {
+ this.apiDocumentationName = apiDocumentationName;
+ }
+
+ public String getApiDocumentationSummary() {
+ return apiDocumentationSummary;
+ }
+
+ @XmlElement(name = "ApiDocumentationSummary")
+ public void setApiDocumentationSummary(String apiDocumentationSummary) {
+ this.apiDocumentationSummary = apiDocumentationSummary;
+ }
+
+ public String getApiDocumentationSourceFile() {
+ return apiDocumentationSourceFile;
+ }
+
+ @XmlElement(name = "ApiDocumentationSourceFile")
+ public void setApiDocumentationSourceFile(String apiDocumentationSourceFile) {
+ this.apiDocumentationSourceFile = apiDocumentationSourceFile;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ @XmlElement(name = "Version")
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public String[] getTags() {
+ return tags;
+ }
+
+ @XmlElement(name = "Tags")
+ public void setTags(String[] tags) {
+ this.tags = tags;
+ }
public String getEndpointType() {
return endpointType;
@@ -110,6 +142,7 @@ public class APIResourceConfiguration {
public String getAsyncApiDefinition() {
return asyncApiDefinition;
}
+
@XmlElement(name = "asyncApiDefinition")
public void setAsyncApiDefinition(String asyncApiDefinition) {
this.asyncApiDefinition = asyncApiDefinition;
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/lifecycle/util/AnnotationProcessor.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/lifecycle/util/AnnotationProcessor.java
index 6774aa29bd..f41c07967a 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/lifecycle/util/AnnotationProcessor.java
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/src/main/java/org/wso2/carbon/apimgt/webapp/publisher/lifecycle/util/AnnotationProcessor.java
@@ -53,7 +53,6 @@ import java.util.*;
public class AnnotationProcessor {
private static final Log log = LogFactory.getLog(AnnotationProcessor.class);
-
private static final String AUTH_TYPE = "Application & Application User";
private static final String STRING_ARR = "string_arr";
private static final String STRING = "string";
@@ -61,7 +60,6 @@ public class AnnotationProcessor {
private static final String PACKAGE_ORG_CODEHAUS = "org.codehaus";
private static final String PACKAGE_ORG_SPRINGFRAMEWORK = "org.springframework";
public static final String WILD_CARD = "/*";
-
private static final String SWAGGER_ANNOTATIONS_INFO = "info";
private static final String SWAGGER_ANNOTATIONS_TAGS = "tags";
private static final String SWAGGER_ANNOTATIONS_EXTENSIONS = "extensions";
@@ -73,6 +71,9 @@ public class AnnotationProcessor {
private static final String SWAGGER_ANNOTATIONS_PROPERTIES_ROLES = "roles";
private static final String SWAGGER_ANNOTATIONS_PROPERTIES_VERSION = "version";
private static final String SWAGGER_ANNOTATIONS_PROPERTIES_CONTEXT = "context";
+ private static final String SWAGGER_ANNOTATIONS_PROPERTIES_API_DOCUMENTATION_NAME = "apiDocumentationName";
+ private static final String SWAGGER_ANNOTATIONS_PROPERTIES_API_DOCUMENTATION_SUMMARY = "apiDocumentationSummary";
+ private static final String SWAGGER_ANNOTATIONS_PROPERTIES_API_DOCUMENTATION_SOURCE_FILE = "apiDocumentationSourceFile";
private static final String SWAGGER_ANNOTATIONS_PROPERTIES_ENDPOINT_TYPE = "endpointType";
private static final String SWAGGER_ANNOTATIONS_PROPERTIES_IN_SEQUENCE_NAME = "inSequenceName";
private static final String SWAGGER_ANNOTATIONS_PROPERTIES_IN_SEQUENCE_CONFIG = "inSequenceConfig";
@@ -112,26 +113,25 @@ public class AnnotationProcessor {
pathClazz = (Class) classLoader.loadClass(Path.class.getName());
consumesClass = (Class) classLoader.loadClass(Consumes.class.getName());
producesClass = (Class) classLoader.loadClass(Produces.class.getName());
- apiClazz= (Class)classLoader.loadClass((SwaggerDefinition.class.getName()));
- infoClass = (Class)classLoader
+ apiClazz = (Class) classLoader.loadClass((SwaggerDefinition.class.getName()));
+ infoClass = (Class) classLoader
.loadClass((io.swagger.annotations.Info.class.getName()));
- tagClass = (Class)classLoader
+ tagClass = (Class) classLoader
.loadClass((io.swagger.annotations.Tag.class.getName()));
- extensionClass = (Class)classLoader
+ extensionClass = (Class) classLoader
.loadClass((io.swagger.annotations.Extension.class.getName()));
- extensionPropertyClass = (Class)classLoader
+ extensionPropertyClass = (Class) classLoader
.loadClass(io.swagger.annotations.ExtensionProperty.class.getName());
scopeClass = (Class) classLoader
.loadClass(org.wso2.carbon.apimgt.annotations.api.Scope.class.getName());
scopesClass = (Class) classLoader
.loadClass(org.wso2.carbon.apimgt.annotations.api.Scopes.class.getName());
- apiOperation = (Class)classLoader
+ apiOperation = (Class) classLoader
.loadClass((ApiOperation.class.getName()));
} catch (ClassNotFoundException e) {
log.error("An error has occurred while loading classes ", e);
}
}
-
public Set scanStandardContext(String className) throws IOException {
ExtendedAnnotationDB db = new ExtendedAnnotationDB();
db.addIgnoredPackages(PACKAGE_ORG_APACHE);
@@ -166,7 +166,7 @@ public class AnnotationProcessor {
if (Scopes != null) {
apiScopes = processAPIScopes(Scopes);
}
- if(apiResourceConfig != null){
+ if (apiResourceConfig != null) {
String rootContext = servletContext.getContextPath();
pathClazzMethods = pathClazz.getMethods();
Annotation rootContectAnno = clazz.getAnnotation(pathClazz);
@@ -199,21 +199,21 @@ public class AnnotationProcessor {
" This API will not be published.";
log.error(msg, e1);
} catch (RuntimeException e) {
- log.error("Unexpected error has been occurred while publishing "+ className
- +"hence, this API will not be published.");
+ log.error("Unexpected error has been occurred while publishing " + className
+ + "hence, this API will not be published.");
throw new RuntimeException(e);
}
return apiResourceConfig;
}
});
- if(apiResourceConfiguration !=null)
+ if (apiResourceConfiguration != null)
apiResourceConfigs.add(apiResourceConfiguration);
}
}
return apiResourceConfigs;
}
- private Map processAPIScopes(Annotation annotation) throws Throwable {
+ private Map processAPIScopes(Annotation annotation) throws Throwable {
Map scopes = new HashMap<>();
InvocationHandler methodHandler = Proxy.getInvocationHandler(annotation);
@@ -225,7 +225,7 @@ public class AnnotationProcessor {
StringBuilder aggregatedPermissions;
String roles[];
StringBuilder aggregatedRoles;
- for(int i=0; i
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
@@ -40,6 +40,7 @@
org.wso2.carbon.apimgt.keymgt.extension
org.wso2.carbon.apimgt.keymgt.extension.api
io.entgra.device.mgt.core.apimgt.analytics.extension
+ io.entgra.device.mgt.core.apimgt.extension.rest.api
diff --git a/components/application-mgt/io.entgra.application.mgt.addons/pom.xml b/components/application-mgt/io.entgra.application.mgt.addons/pom.xml
index 95d6aaeeff..e871bd3179 100644
--- a/components/application-mgt/io.entgra.application.mgt.addons/pom.xml
+++ b/components/application-mgt/io.entgra.application.mgt.addons/pom.xml
@@ -20,7 +20,7 @@
application-mgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/application-mgt/io.entgra.application.mgt.api/pom.xml b/components/application-mgt/io.entgra.application.mgt.api/pom.xml
index 0b4be779e1..c330a1f02d 100644
--- a/components/application-mgt/io.entgra.application.mgt.api/pom.xml
+++ b/components/application-mgt/io.entgra.application.mgt.api/pom.xml
@@ -22,7 +22,7 @@
application-mgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/application-mgt/io.entgra.application.mgt.common/pom.xml b/components/application-mgt/io.entgra.application.mgt.common/pom.xml
index 35e4696bda..e64d926b80 100644
--- a/components/application-mgt/io.entgra.application.mgt.common/pom.xml
+++ b/components/application-mgt/io.entgra.application.mgt.common/pom.xml
@@ -21,7 +21,7 @@
org.wso2.carbon.devicemgt
application-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/application-mgt/io.entgra.application.mgt.core/pom.xml b/components/application-mgt/io.entgra.application.mgt.core/pom.xml
index 43ea757d71..f97e04615b 100644
--- a/components/application-mgt/io.entgra.application.mgt.core/pom.xml
+++ b/components/application-mgt/io.entgra.application.mgt.core/pom.xml
@@ -21,7 +21,7 @@
org.wso2.carbon.devicemgt
application-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/application-mgt/io.entgra.application.mgt.core/src/main/java/io/entgra/application/mgt/core/impl/ApplicationManagerImpl.java b/components/application-mgt/io.entgra.application.mgt.core/src/main/java/io/entgra/application/mgt/core/impl/ApplicationManagerImpl.java
index 98a50e427a..3861744c56 100644
--- a/components/application-mgt/io.entgra.application.mgt.core/src/main/java/io/entgra/application/mgt/core/impl/ApplicationManagerImpl.java
+++ b/components/application-mgt/io.entgra.application.mgt.core/src/main/java/io/entgra/application/mgt/core/impl/ApplicationManagerImpl.java
@@ -3244,7 +3244,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
AtomicReference applicationReleaseDTO = new AtomicReference<>(
applicationDTO.getApplicationReleaseDTOs().get(0));
validateAppReleaseUpdating(customAppReleaseWrapper, applicationDTO, applicationArtifact,
- ApplicationType.ENTERPRISE.toString());
+ ApplicationType.CUSTOM.toString());
applicationReleaseDTO.get().setPrice(customAppReleaseWrapper.getPrice());
applicationReleaseDTO.get()
.setIsSharedWithAllTenants(applicationReleaseDTO.get().getIsSharedWithAllTenants());
diff --git a/components/application-mgt/io.entgra.application.mgt.publisher.api/pom.xml b/components/application-mgt/io.entgra.application.mgt.publisher.api/pom.xml
index b10691e62c..d9cd4fa9c2 100644
--- a/components/application-mgt/io.entgra.application.mgt.publisher.api/pom.xml
+++ b/components/application-mgt/io.entgra.application.mgt.publisher.api/pom.xml
@@ -22,7 +22,7 @@
application-mgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/application-mgt/io.entgra.application.mgt.store.api/pom.xml b/components/application-mgt/io.entgra.application.mgt.store.api/pom.xml
index 1ca97cfc0e..ad89c630db 100644
--- a/components/application-mgt/io.entgra.application.mgt.store.api/pom.xml
+++ b/components/application-mgt/io.entgra.application.mgt.store.api/pom.xml
@@ -22,7 +22,7 @@
application-mgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/application-mgt/pom.xml b/components/application-mgt/pom.xml
index ef99d4dbf9..7d023cae47 100644
--- a/components/application-mgt/pom.xml
+++ b/components/application-mgt/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml
index 3794a69341..c1b8ff7781 100644
--- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml
+++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml
@@ -22,7 +22,7 @@
certificate-mgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml
index 05fd5a7ae6..f4b7ae80de 100644
--- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml
+++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml
@@ -22,7 +22,7 @@
certificate-mgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml
index daa86010f3..26b8367795 100644
--- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml
+++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml
@@ -38,7 +38,7 @@
org.wso2.carbon.devicemgt
certificate-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/certificate-mgt/pom.xml b/components/certificate-mgt/pom.xml
index 577a4ff1f4..c04f8724db 100644
--- a/components/certificate-mgt/pom.xml
+++ b/components/certificate-mgt/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.extensions.defaultrole.manager/pom.xml b/components/device-mgt-extensions/io.entgra.device.mgt.extensions.defaultrole.manager/pom.xml
index 5311acc66c..309fe87304 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.extensions.defaultrole.manager/pom.xml
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.extensions.defaultrole.manager/pom.xml
@@ -23,7 +23,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.extensions.logger/pom.xml b/components/device-mgt-extensions/io.entgra.device.mgt.extensions.logger/pom.xml
index 53ec6cf0e6..3d16f2498d 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.extensions.logger/pom.xml
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.extensions.logger/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/io.entgra.device.mgt.extensions.stateengine/pom.xml b/components/device-mgt-extensions/io.entgra.device.mgt.extensions.stateengine/pom.xml
index 224941c71d..4ff04b6f98 100644
--- a/components/device-mgt-extensions/io.entgra.device.mgt.extensions.stateengine/pom.xml
+++ b/components/device-mgt-extensions/io.entgra.device.mgt.extensions.stateengine/pom.xml
@@ -23,7 +23,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
index 2cc77447ed..ea3c6b5c5b 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml
index cd95a6fe39..62b123f3a2 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.pull.notification/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml
index fe857c4bcf..d9db07fdcd 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml
index a5c33e4a3a..4329d10014 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
index 3e9bf65388..c7ca107625 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
index d07439f4f4..2762460d3e 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensions
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt-extensions/pom.xml b/components/device-mgt-extensions/pom.xml
index 2f906d4fcd..04d6ae4544 100644
--- a/components/device-mgt-extensions/pom.xml
+++ b/components/device-mgt-extensions/pom.xml
@@ -22,7 +22,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/components/device-mgt/io.entgra.carbon.device.mgt.config.api/pom.xml b/components/device-mgt/io.entgra.carbon.device.mgt.config.api/pom.xml
index 356ab22c75..067b391697 100644
--- a/components/device-mgt/io.entgra.carbon.device.mgt.config.api/pom.xml
+++ b/components/device-mgt/io.entgra.carbon.device.mgt.config.api/pom.xml
@@ -22,7 +22,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml
index 7077d97672..8c126c159e 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml
@@ -22,7 +22,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml
index a93ef7f3ad..d66968ac06 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/pom.xml
@@ -21,7 +21,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml
index 1265503f18..28c260d13d 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
index 2a420a91ef..dd3c62ff6d 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/pom.xml
@@ -22,7 +22,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml
index a110b174ac..c3befb0221 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.url.printer/pom.xml
@@ -23,7 +23,7 @@
device-mgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/device-mgt/pom.xml b/components/device-mgt/pom.xml
index 251617c237..c3b618cb27 100644
--- a/components/device-mgt/pom.xml
+++ b/components/device-mgt/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/components/heartbeat-management/io.entgra.server.bootup.heartbeat.beacon/pom.xml b/components/heartbeat-management/io.entgra.server.bootup.heartbeat.beacon/pom.xml
index 08e4484825..9a60509c64 100644
--- a/components/heartbeat-management/io.entgra.server.bootup.heartbeat.beacon/pom.xml
+++ b/components/heartbeat-management/io.entgra.server.bootup.heartbeat.beacon/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
heartbeat-management
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/heartbeat-management/pom.xml b/components/heartbeat-management/pom.xml
index a35a88f848..1bd5534a05 100644
--- a/components/heartbeat-management/pom.xml
+++ b/components/heartbeat-management/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml b/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml
index 699a82cc62..aa248aceec 100644
--- a/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml
+++ b/components/identity-extensions/org.wso2.carbon.device.mgt.oauth.extensions/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
identity-extensions
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml b/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml
index 190eabc785..ba1e95d9c8 100644
--- a/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml
+++ b/components/identity-extensions/org.wso2.carbon.identity.jwt.client.extension/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
identity-extensions
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/identity-extensions/pom.xml b/components/identity-extensions/pom.xml
index a217060c94..d71a186726 100644
--- a/components/identity-extensions/pom.xml
+++ b/components/identity-extensions/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/components/logger/io.entgra.notification.logger/pom.xml b/components/logger/io.entgra.notification.logger/pom.xml
index 4cafda1771..c9e66cd940 100644
--- a/components/logger/io.entgra.notification.logger/pom.xml
+++ b/components/logger/io.entgra.notification.logger/pom.xml
@@ -23,7 +23,7 @@
org.wso2.carbon.devicemgt
logger
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
io.entgra.notification.logger
diff --git a/components/logger/pom.xml b/components/logger/pom.xml
index 6ca86be582..a2ade26cd9 100644
--- a/components/logger/pom.xml
+++ b/components/logger/pom.xml
@@ -22,7 +22,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml
index 82dc852bed..c02ae657b6 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.policy.decision.point/pom.xml
@@ -3,7 +3,7 @@
org.wso2.carbon.devicemgt
policy-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml
index 290b78bee6..a6da401285 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.policy.information.point/pom.xml
@@ -3,7 +3,7 @@
org.wso2.carbon.devicemgt
policy-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml
index 06d4ec3256..8b9f7dfb4b 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
policy-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml
index 715349438d..35e0255954 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml
+++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
policy-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/policy-mgt/pom.xml b/components/policy-mgt/pom.xml
index 6cdec66ca3..4260436547 100644
--- a/components/policy-mgt/pom.xml
+++ b/components/policy-mgt/pom.xml
@@ -23,7 +23,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/components/subtype-mgt/io.entgra.device.mgt.subtype.mgt/pom.xml b/components/subtype-mgt/io.entgra.device.mgt.subtype.mgt/pom.xml
index 70203fa428..d12824709e 100644
--- a/components/subtype-mgt/io.entgra.device.mgt.subtype.mgt/pom.xml
+++ b/components/subtype-mgt/io.entgra.device.mgt.subtype.mgt/pom.xml
@@ -16,12 +16,11 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-
+
org.wso2.carbon.devicemgt
subtype-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/subtype-mgt/pom.xml b/components/subtype-mgt/pom.xml
index 063cd9e767..d0d17deb97 100644
--- a/components/subtype-mgt/pom.xml
+++ b/components/subtype-mgt/pom.xml
@@ -16,12 +16,11 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-
+
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/components/task-mgt/pom.xml b/components/task-mgt/pom.xml
index 1d7fc8d2ef..4fccbc4256 100755
--- a/components/task-mgt/pom.xml
+++ b/components/task-mgt/pom.xml
@@ -21,7 +21,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/components/task-mgt/task-manager/io.entgra.task.mgt.common/pom.xml b/components/task-mgt/task-manager/io.entgra.task.mgt.common/pom.xml
index cc8bd84340..774fec0dff 100755
--- a/components/task-mgt/task-manager/io.entgra.task.mgt.common/pom.xml
+++ b/components/task-mgt/task-manager/io.entgra.task.mgt.common/pom.xml
@@ -20,7 +20,7 @@
task-manager
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/task-mgt/task-manager/io.entgra.task.mgt.core/pom.xml b/components/task-mgt/task-manager/io.entgra.task.mgt.core/pom.xml
index 897f9a612b..e7968bec5b 100755
--- a/components/task-mgt/task-manager/io.entgra.task.mgt.core/pom.xml
+++ b/components/task-mgt/task-manager/io.entgra.task.mgt.core/pom.xml
@@ -21,7 +21,7 @@
org.wso2.carbon.devicemgt
task-manager
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/task-mgt/task-manager/pom.xml b/components/task-mgt/task-manager/pom.xml
index 6edd1e33dc..7589285d15 100755
--- a/components/task-mgt/task-manager/pom.xml
+++ b/components/task-mgt/task-manager/pom.xml
@@ -21,7 +21,7 @@
org.wso2.carbon.devicemgt
task-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/task-mgt/task-watcher/io.entgra.task.mgt.watcher/pom.xml b/components/task-mgt/task-watcher/io.entgra.task.mgt.watcher/pom.xml
index 21fea0cd51..0011d8d690 100755
--- a/components/task-mgt/task-watcher/io.entgra.task.mgt.watcher/pom.xml
+++ b/components/task-mgt/task-watcher/io.entgra.task.mgt.watcher/pom.xml
@@ -21,7 +21,7 @@
org.wso2.carbon.devicemgt
task-watcher
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/task-mgt/task-watcher/pom.xml b/components/task-mgt/task-watcher/pom.xml
index 005dbeed26..96d2a1bc59 100755
--- a/components/task-mgt/task-watcher/pom.xml
+++ b/components/task-mgt/task-watcher/pom.xml
@@ -21,7 +21,7 @@
org.wso2.carbon.devicemgt
task-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/tenant-mgt/io.entgra.tenant.mgt.common/pom.xml b/components/tenant-mgt/io.entgra.tenant.mgt.common/pom.xml
index b69c2bb112..31fcb58a0a 100644
--- a/components/tenant-mgt/io.entgra.tenant.mgt.common/pom.xml
+++ b/components/tenant-mgt/io.entgra.tenant.mgt.common/pom.xml
@@ -16,13 +16,11 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-
+
tenant-mgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/tenant-mgt/io.entgra.tenant.mgt.core/pom.xml b/components/tenant-mgt/io.entgra.tenant.mgt.core/pom.xml
index a91e831ed5..698ddbf942 100644
--- a/components/tenant-mgt/io.entgra.tenant.mgt.core/pom.xml
+++ b/components/tenant-mgt/io.entgra.tenant.mgt.core/pom.xml
@@ -16,13 +16,11 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-
+
tenant-mgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/tenant-mgt/pom.xml b/components/tenant-mgt/pom.xml
index 7d13f340c8..537cac339a 100644
--- a/components/tenant-mgt/pom.xml
+++ b/components/tenant-mgt/pom.xml
@@ -16,13 +16,11 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-
+
carbon-devicemgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/components/transport-mgt/email-sender/org.wso2.carbon.email.sender.core/pom.xml b/components/transport-mgt/email-sender/org.wso2.carbon.email.sender.core/pom.xml
index 7bdf992249..9a86790e8e 100644
--- a/components/transport-mgt/email-sender/org.wso2.carbon.email.sender.core/pom.xml
+++ b/components/transport-mgt/email-sender/org.wso2.carbon.email.sender.core/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
email-sender
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/transport-mgt/email-sender/pom.xml b/components/transport-mgt/email-sender/pom.xml
index 35c8d36c06..57327359a0 100644
--- a/components/transport-mgt/email-sender/pom.xml
+++ b/components/transport-mgt/email-sender/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
transport-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/transport-mgt/pom.xml b/components/transport-mgt/pom.xml
index 69f1f2b02f..90a4b01e41 100644
--- a/components/transport-mgt/pom.xml
+++ b/components/transport-mgt/pom.xml
@@ -3,7 +3,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/components/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.api/pom.xml b/components/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.api/pom.xml
index 1bc860ed3d..4da59a95c7 100644
--- a/components/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.api/pom.xml
+++ b/components/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.api/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
sms-handler
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.common/pom.xml b/components/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.common/pom.xml
index 908957c988..6e1b971f02 100644
--- a/components/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.common/pom.xml
+++ b/components/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.common/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
sms-handler
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.core/pom.xml b/components/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.core/pom.xml
index 0a64c24297..5d35139a65 100644
--- a/components/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.core/pom.xml
+++ b/components/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.core/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
sms-handler
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/transport-mgt/sms-handler/pom.xml b/components/transport-mgt/sms-handler/pom.xml
index 60742becc6..a8f3a7deaa 100644
--- a/components/transport-mgt/sms-handler/pom.xml
+++ b/components/transport-mgt/sms-handler/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
transport-mgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/ui-request-interceptor/io.entgra.ui.request.interceptor/pom.xml b/components/ui-request-interceptor/io.entgra.ui.request.interceptor/pom.xml
index b4c89c0eaa..ae20780b3a 100644
--- a/components/ui-request-interceptor/io.entgra.ui.request.interceptor/pom.xml
+++ b/components/ui-request-interceptor/io.entgra.ui.request.interceptor/pom.xml
@@ -21,7 +21,7 @@
ui-request-interceptor
io.entgra.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
4.0.0
diff --git a/components/ui-request-interceptor/pom.xml b/components/ui-request-interceptor/pom.xml
index 692ea26977..bbd57a74df 100644
--- a/components/ui-request-interceptor/pom.xml
+++ b/components/ui-request-interceptor/pom.xml
@@ -21,7 +21,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml
index 8f23a1cb63..4d53524fe2 100644
--- a/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml
+++ b/components/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework/pom.xml
@@ -21,7 +21,7 @@
org.wso2.carbon.devicemgt
webapp-authenticator-framework
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/components/webapp-authenticator-framework/pom.xml b/components/webapp-authenticator-framework/pom.xml
index 266aa06eb6..adca7c3fad 100644
--- a/components/webapp-authenticator-framework/pom.xml
+++ b/components/webapp-authenticator-framework/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.api.feature/pom.xml b/features/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.api.feature/pom.xml
index 0f8eef6292..5acf349d6a 100644
--- a/features/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.api.feature/pom.xml
+++ b/features/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.api.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
grafana-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.server.feature/pom.xml b/features/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.server.feature/pom.xml
index f63f0dab76..044bb1fed5 100644
--- a/features/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.server.feature/pom.xml
+++ b/features/analytics-mgt/grafana-mgt/io.entgra.analytics.mgt.grafana.proxy.server.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
grafana-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/analytics-mgt/grafana-mgt/pom.xml b/features/analytics-mgt/grafana-mgt/pom.xml
index 198de84f7a..1c081eeb9d 100644
--- a/features/analytics-mgt/grafana-mgt/pom.xml
+++ b/features/analytics-mgt/grafana-mgt/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
analytics-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/analytics-mgt/pom.xml b/features/analytics-mgt/pom.xml
index 0782957fd1..475da067ab 100644
--- a/features/analytics-mgt/pom.xml
+++ b/features/analytics-mgt/pom.xml
@@ -3,7 +3,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension.feature/pom.xml b/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension.feature/pom.xml
index 6703c23a7d..0c98267809 100644
--- a/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension.feature/pom.xml
+++ b/features/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension.feature/pom.xml
@@ -20,7 +20,7 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml
index ab7dad3cd4..0854142aeb 100644
--- a/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.feature/pom.xml
@@ -21,7 +21,7 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.keymgt.extension.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.keymgt.extension.feature/pom.xml
index 5f7c41c612..e0ce7c83a5 100644
--- a/features/apimgt-extensions/org.wso2.carbon.apimgt.keymgt.extension.feature/pom.xml
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.keymgt.extension.feature/pom.xml
@@ -21,7 +21,7 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml
index 2fbefd8457..de2739b199 100644
--- a/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml
+++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml
@@ -21,7 +21,7 @@
org.wso2.carbon.devicemgt
apimgt-extensions-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
@@ -51,6 +51,10 @@
io.swagger
swagger-annotations
+
+ org.wso2.carbon.devicemgt
+ io.entgra.device.mgt.core.apimgt.extension.rest.api
+
@@ -143,6 +147,9 @@
io.swagger:swagger-annotations:${swagger.version}
+
+ org.wso2.carbon.devicemgt:io.entgra.device.mgt.core.apimgt.extension.rest.api:${carbon.device.mgt.version}
+
org.wso2.carbon.core.server:${carbon.kernel.version}
diff --git a/features/apimgt-extensions/pom.xml b/features/apimgt-extensions/pom.xml
index 950a6bb76d..73a5be82ca 100644
--- a/features/apimgt-extensions/pom.xml
+++ b/features/apimgt-extensions/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/application-mgt/io.entgra.application.mgt.api.feature/pom.xml b/features/application-mgt/io.entgra.application.mgt.api.feature/pom.xml
index b65017bbdb..a67320fd0c 100644
--- a/features/application-mgt/io.entgra.application.mgt.api.feature/pom.xml
+++ b/features/application-mgt/io.entgra.application.mgt.api.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
application-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/application-mgt/io.entgra.application.mgt.server.feature/pom.xml b/features/application-mgt/io.entgra.application.mgt.server.feature/pom.xml
index f1d0f4ae1c..3622decb74 100644
--- a/features/application-mgt/io.entgra.application.mgt.server.feature/pom.xml
+++ b/features/application-mgt/io.entgra.application.mgt.server.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
application-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/application-mgt/pom.xml b/features/application-mgt/pom.xml
index a8c8e7d1f0..6fd0c18f81 100644
--- a/features/application-mgt/pom.xml
+++ b/features/application-mgt/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml
index dd5b7736bc..cb1ed90b32 100644
--- a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml
+++ b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.api.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
certificate-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml
index 10bccb16ce..87f9245fc9 100644
--- a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml
+++ b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
certificate-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml
index d9cc05af65..a2aff59a52 100644
--- a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml
+++ b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
certificate-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/certificate-mgt/pom.xml b/features/certificate-mgt/pom.xml
index e8ab115dd7..ed646bb429 100644
--- a/features/certificate-mgt/pom.xml
+++ b/features/certificate-mgt/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/device-mgt-extensions/io.entgra.device.mgt.extensions.defaultrole.manager.feature/pom.xml b/features/device-mgt-extensions/io.entgra.device.mgt.extensions.defaultrole.manager.feature/pom.xml
index c5a49e8396..3e2ca09001 100644
--- a/features/device-mgt-extensions/io.entgra.device.mgt.extensions.defaultrole.manager.feature/pom.xml
+++ b/features/device-mgt-extensions/io.entgra.device.mgt.extensions.defaultrole.manager.feature/pom.xml
@@ -23,7 +23,7 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/io.entgra.device.mgt.extensions.logger.feature/pom.xml b/features/device-mgt-extensions/io.entgra.device.mgt.extensions.logger.feature/pom.xml
index 213f436a61..40bc14ec04 100644
--- a/features/device-mgt-extensions/io.entgra.device.mgt.extensions.logger.feature/pom.xml
+++ b/features/device-mgt-extensions/io.entgra.device.mgt.extensions.logger.feature/pom.xml
@@ -23,7 +23,7 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/io.entgra.device.mgt.extensions.stateengine.feature/pom.xml b/features/device-mgt-extensions/io.entgra.device.mgt.extensions.stateengine.feature/pom.xml
index ce45313eda..dbf4c755cf 100644
--- a/features/device-mgt-extensions/io.entgra.device.mgt.extensions.stateengine.feature/pom.xml
+++ b/features/device-mgt-extensions/io.entgra.device.mgt.extensions.stateengine.feature/pom.xml
@@ -23,7 +23,7 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml
index e236aa8914..6b8d03fef1 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
index 0f6a8c9df9..579ac3c50a 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
index 6cfddf491c..e461f8bf50 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
index 6ba02faac5..38206938c6 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
index 1a9beb136e..6c974cff3c 100644
--- a/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
+++ b/features/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-extensions-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt-extensions/pom.xml b/features/device-mgt-extensions/pom.xml
index bdfa204a19..366594b560 100644
--- a/features/device-mgt-extensions/pom.xml
+++ b/features/device-mgt-extensions/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml
index c16be537ad..cb58c5fdcc 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.api.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/pom.xml
index 7e4c7203c6..5685d175dd 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml
index 2128ddce78..c49b1e826a 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.extensions.feature/pom.xml
@@ -4,7 +4,7 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml
index 463215e173..273ec000ad 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml
index 63b3a3229c..5d70664b2e 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
device-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/device-mgt/pom.xml b/features/device-mgt/pom.xml
index 11f50bc7d7..2fc92261d4 100644
--- a/features/device-mgt/pom.xml
+++ b/features/device-mgt/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/heartbeat-management/io.entgra.server.heart.beat.feature/pom.xml b/features/heartbeat-management/io.entgra.server.heart.beat.feature/pom.xml
index 31a16abe9c..b131d4bf39 100644
--- a/features/heartbeat-management/io.entgra.server.heart.beat.feature/pom.xml
+++ b/features/heartbeat-management/io.entgra.server.heart.beat.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
heart-beat-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/heartbeat-management/pom.xml b/features/heartbeat-management/pom.xml
index 38eb878036..4131bc296b 100644
--- a/features/heartbeat-management/pom.xml
+++ b/features/heartbeat-management/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml b/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml
index 2425ea317f..03e9edae8f 100644
--- a/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml
+++ b/features/jwt-client/org.wso2.carbon.identity.jwt.client.extension.feature/pom.xml
@@ -23,7 +23,7 @@
org.wso2.carbon.devicemgt
jwt-client-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/jwt-client/pom.xml b/features/jwt-client/pom.xml
index 7dafdc7135..3b0d86025f 100644
--- a/features/jwt-client/pom.xml
+++ b/features/jwt-client/pom.xml
@@ -23,7 +23,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/logger/io.entgra.notification.logger.feature/pom.xml b/features/logger/io.entgra.notification.logger.feature/pom.xml
index d897352777..ece79e753d 100644
--- a/features/logger/io.entgra.notification.logger.feature/pom.xml
+++ b/features/logger/io.entgra.notification.logger.feature/pom.xml
@@ -23,7 +23,7 @@
org.wso2.carbon.devicemgt
logger-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/logger/pom.xml b/features/logger/pom.xml
index fbfdbc7656..a1d28091bd 100644
--- a/features/logger/pom.xml
+++ b/features/logger/pom.xml
@@ -23,7 +23,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml b/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml
index c08fc4052b..8b610a5398 100644
--- a/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml
+++ b/features/policy-mgt/org.wso2.carbon.policy.mgt.server.feature/pom.xml
@@ -23,7 +23,7 @@
org.wso2.carbon.devicemgt
policy-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/policy-mgt/pom.xml b/features/policy-mgt/pom.xml
index c36d7e0024..d6ec921b4d 100644
--- a/features/policy-mgt/pom.xml
+++ b/features/policy-mgt/pom.xml
@@ -23,7 +23,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/subtype-mgt/io.entgra.device.mgt.subtype.mgt.feature/pom.xml b/features/subtype-mgt/io.entgra.device.mgt.subtype.mgt.feature/pom.xml
index e6d23c6d08..fdf990a2be 100644
--- a/features/subtype-mgt/io.entgra.device.mgt.subtype.mgt.feature/pom.xml
+++ b/features/subtype-mgt/io.entgra.device.mgt.subtype.mgt.feature/pom.xml
@@ -17,13 +17,12 @@
~ under the License.
-->
-
+
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../../pom.xml
diff --git a/features/subtype-mgt/pom.xml b/features/subtype-mgt/pom.xml
index 96f3ae4aad..5a909a0050 100644
--- a/features/subtype-mgt/pom.xml
+++ b/features/subtype-mgt/pom.xml
@@ -17,13 +17,12 @@
~ under the License.
-->
-
+
carbon-devicemgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/task-mgt/io.entgra.task.mgt.feature/pom.xml b/features/task-mgt/io.entgra.task.mgt.feature/pom.xml
index 16bc2d5723..939aa5f28d 100755
--- a/features/task-mgt/io.entgra.task.mgt.feature/pom.xml
+++ b/features/task-mgt/io.entgra.task.mgt.feature/pom.xml
@@ -21,7 +21,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../../pom.xml
diff --git a/features/task-mgt/pom.xml b/features/task-mgt/pom.xml
index 3678b617ad..896842812a 100755
--- a/features/task-mgt/pom.xml
+++ b/features/task-mgt/pom.xml
@@ -21,7 +21,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/tenant-mgt/io.entgra.tenant.mgt.server.feature/pom.xml b/features/tenant-mgt/io.entgra.tenant.mgt.server.feature/pom.xml
index 87e3214a43..d1d8f7adf9 100644
--- a/features/tenant-mgt/io.entgra.tenant.mgt.server.feature/pom.xml
+++ b/features/tenant-mgt/io.entgra.tenant.mgt.server.feature/pom.xml
@@ -16,13 +16,11 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-
+
tenant-mgt-feature
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/tenant-mgt/pom.xml b/features/tenant-mgt/pom.xml
index 44befb4240..085da8ad9c 100644
--- a/features/tenant-mgt/pom.xml
+++ b/features/tenant-mgt/pom.xml
@@ -21,7 +21,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/transport-mgt/email-sender/org.wso2.carbon.email.sender.feature/pom.xml b/features/transport-mgt/email-sender/org.wso2.carbon.email.sender.feature/pom.xml
index b05bb2be06..12d37b8f93 100644
--- a/features/transport-mgt/email-sender/org.wso2.carbon.email.sender.feature/pom.xml
+++ b/features/transport-mgt/email-sender/org.wso2.carbon.email.sender.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
email-sender-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/transport-mgt/email-sender/pom.xml b/features/transport-mgt/email-sender/pom.xml
index 8e790a7122..833e4777d4 100644
--- a/features/transport-mgt/email-sender/pom.xml
+++ b/features/transport-mgt/email-sender/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
transport-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/transport-mgt/pom.xml b/features/transport-mgt/pom.xml
index c80b598894..764f136e61 100644
--- a/features/transport-mgt/pom.xml
+++ b/features/transport-mgt/pom.xml
@@ -3,7 +3,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.api.feature/pom.xml b/features/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.api.feature/pom.xml
index 512ca7a4c3..64b7b57cea 100644
--- a/features/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.api.feature/pom.xml
+++ b/features/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.api.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
sms-handler-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.server.feature/pom.xml b/features/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.server.feature/pom.xml
index 8d6c87d736..34f6d270e5 100644
--- a/features/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.server.feature/pom.xml
+++ b/features/transport-mgt/sms-handler/io.entgra.transport.mgt.sms.handler.server.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
sms-handler-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/transport-mgt/sms-handler/pom.xml b/features/transport-mgt/sms-handler/pom.xml
index e9039888d3..7d9c2d9281 100644
--- a/features/transport-mgt/sms-handler/pom.xml
+++ b/features/transport-mgt/sms-handler/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
transport-mgt-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/ui-request-interceptor/io.entgra.ui.request.interceptor.feature/pom.xml b/features/ui-request-interceptor/io.entgra.ui.request.interceptor.feature/pom.xml
index 1bd46be14b..5c77cd533a 100644
--- a/features/ui-request-interceptor/io.entgra.ui.request.interceptor.feature/pom.xml
+++ b/features/ui-request-interceptor/io.entgra.ui.request.interceptor.feature/pom.xml
@@ -21,7 +21,7 @@
ui-request-interceptor-feature
io.entgra.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
4.0.0
diff --git a/features/ui-request-interceptor/pom.xml b/features/ui-request-interceptor/pom.xml
index 8a01acd528..e8b191e153 100644
--- a/features/ui-request-interceptor/pom.xml
+++ b/features/ui-request-interceptor/pom.xml
@@ -21,7 +21,7 @@
carbon-devicemgt
org.wso2.carbon.devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml b/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml
index 218e08e58e..c9dc9f02a7 100644
--- a/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml
+++ b/features/webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework.server.feature/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
webapp-authenticator-framework-feature
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../pom.xml
diff --git a/features/webapp-authenticator-framework/pom.xml b/features/webapp-authenticator-framework/pom.xml
index bade36ba10..beeae3ee83 100644
--- a/features/webapp-authenticator-framework/pom.xml
+++ b/features/webapp-authenticator-framework/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
../../pom.xml
diff --git a/pom.xml b/pom.xml
index c835c9e7ba..5cc6847bdb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
org.wso2.carbon.devicemgt
carbon-devicemgt
pom
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
WSO2 Carbon - Device Management - Parent
http://wso2.org
WSO2 Connected Device Manager Components
@@ -238,6 +238,11 @@
org.wso2.carbon.apimgt.annotations
${carbon.device.mgt.version}
+
+ org.wso2.carbon.devicemgt
+ io.entgra.device.mgt.core.apimgt.extension.rest.api
+ ${carbon.device.mgt.version}
+
org.wso2.carbon.devicemgt
org.wso2.carbon.device.mgt.oauth.extensions
@@ -2130,7 +2135,7 @@
1.2.11.wso2v10
- 5.0.25-SNAPSHOT
+ 5.0.26-SNAPSHOT
4.7.35