From e98674f9b95b89c3a37f1c1157e12d9c0347d32f Mon Sep 17 00:00:00 2001 From: inoshperera Date: Fri, 10 May 2019 07:57:39 +0530 Subject: [PATCH 01/28] init commit for MacOS --- .../jaxrs/api/impl/CertificateManagementAdminServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/src/main/java/org/wso2/carbon/certificate/mgt/cert/jaxrs/api/impl/CertificateManagementAdminServiceImpl.java b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/src/main/java/org/wso2/carbon/certificate/mgt/cert/jaxrs/api/impl/CertificateManagementAdminServiceImpl.java index 5957b1b8cf..c1cb5c7197 100644 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/src/main/java/org/wso2/carbon/certificate/mgt/cert/jaxrs/api/impl/CertificateManagementAdminServiceImpl.java +++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/src/main/java/org/wso2/carbon/certificate/mgt/cert/jaxrs/api/impl/CertificateManagementAdminServiceImpl.java @@ -242,6 +242,7 @@ public class CertificateManagementAdminServiceImpl implements CertificateManagem String challengeToken = certMgtService.extractChallengeToken(cert); if (challengeToken != null) { + challengeToken = challengeToken.replace("\u0004&\u0013$",""); challengeToken = challengeToken.substring(challengeToken.indexOf("(") + 1).trim(); SCEPManager scepManager = CertificateMgtAPIUtils.getSCEPManagerService(); From 2da0a6aa1921bbf9f52119bd834ffec2b8e254c3 Mon Sep 17 00:00:00 2001 From: Saad Sahibjan Date: Mon, 20 May 2019 11:54:13 +0530 Subject: [PATCH 02/28] Fix macos enrollment error due to invalid challenge token --- .../api/impl/CertificateManagementAdminServiceImpl.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/src/main/java/org/wso2/carbon/certificate/mgt/cert/jaxrs/api/impl/CertificateManagementAdminServiceImpl.java b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/src/main/java/org/wso2/carbon/certificate/mgt/cert/jaxrs/api/impl/CertificateManagementAdminServiceImpl.java index c1cb5c7197..697aadc1a8 100644 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/src/main/java/org/wso2/carbon/certificate/mgt/cert/jaxrs/api/impl/CertificateManagementAdminServiceImpl.java +++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/src/main/java/org/wso2/carbon/certificate/mgt/cert/jaxrs/api/impl/CertificateManagementAdminServiceImpl.java @@ -49,6 +49,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; @Path("/admin/certificates") public class CertificateManagementAdminServiceImpl implements CertificateManagementAdminService { @@ -242,7 +244,11 @@ public class CertificateManagementAdminServiceImpl implements CertificateManagem String challengeToken = certMgtService.extractChallengeToken(cert); if (challengeToken != null) { - challengeToken = challengeToken.replace("\u0004&\u0013$",""); + Pattern regexPattern = Pattern.compile("[a-zA-Z0-9][a-zA-Z0-9-]+$"); + Matcher regexMatcher = regexPattern.matcher(challengeToken); + if (regexMatcher.find()) { + challengeToken = regexMatcher.group(); + } challengeToken = challengeToken.substring(challengeToken.indexOf("(") + 1).trim(); SCEPManager scepManager = CertificateMgtAPIUtils.getSCEPManagerService(); From 4a7f9bb7ce6246a278d6e7e59742c287f6396555 Mon Sep 17 00:00:00 2001 From: Pahansith Date: Wed, 22 May 2019 14:26:45 +0530 Subject: [PATCH 03/28] Fix user creation password auto generation --- .../mgt/jaxrs/service/impl/UserManagementServiceImpl.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java index 329c559903..8bcb3d934b 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java @@ -143,7 +143,13 @@ public class UserManagementServiceImpl implements UserManagementService { "was refused.").build()).build(); } - String initialUserPassword = this.generateInitialUserPassword(); + String initialUserPassword; + if (userInfo.getPassword() != null) { + initialUserPassword = userInfo.getPassword(); + } else { + initialUserPassword = this.generateInitialUserPassword(); + } + Map defaultUserClaims = this.buildDefaultUserClaims(userInfo.getFirstname(), userInfo.getLastname(), userInfo.getEmailAddress()); From 920a66a1659f5fbe8f7c614aad47cc7dc47abb5d Mon Sep 17 00:00:00 2001 From: Pahansith Gunathilake Date: Mon, 27 May 2019 06:21:14 +0000 Subject: [PATCH 04/28] Fix user creation password auto generation --- .../mgt/jaxrs/service/impl/UserManagementServiceImpl.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java index 329c559903..8bcb3d934b 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java @@ -143,7 +143,13 @@ public class UserManagementServiceImpl implements UserManagementService { "was refused.").build()).build(); } - String initialUserPassword = this.generateInitialUserPassword(); + String initialUserPassword; + if (userInfo.getPassword() != null) { + initialUserPassword = userInfo.getPassword(); + } else { + initialUserPassword = this.generateInitialUserPassword(); + } + Map defaultUserClaims = this.buildDefaultUserClaims(userInfo.getFirstname(), userInfo.getLastname(), userInfo.getEmailAddress()); From a5e471c0738713b9be9fa785a0b7d22840feed18 Mon Sep 17 00:00:00 2001 From: Pahansith Gunathilake Date: Mon, 27 May 2019 06:22:12 +0000 Subject: [PATCH 05/28] Fix drop down color issue --- .../app/units/uuf.unit.theme/public/css/theme-wso2.css | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/css/theme-wso2.css b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/css/theme-wso2.css index 5dfa7a7c55..cbff8ffd9c 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/css/theme-wso2.css +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/css/theme-wso2.css @@ -2969,8 +2969,8 @@ tbody.collapse.in { .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { text-decoration: none; - color: #262626; - background-color: #f5f5f5; + color: #ffffff; + background-color: #008CC4; } .dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { @@ -3426,6 +3426,7 @@ tbody.collapse.in { } .nav .open > a, .nav .open > a:hover, .nav .open > a:focus { background-color: #eeeeee; + color: #008cc4; border-color: #004675; } .nav .nav-divider { From b863d2fa5e8bbce31783354e160b62593415503c Mon Sep 17 00:00:00 2001 From: Asanka Kumara Date: Mon, 27 May 2019 06:25:21 +0000 Subject: [PATCH 06/28] Get Device By ID API --- .gitignore | 1 + .../service/api/DeviceManagementService.java | 245 +++++++++++----- .../impl/DeviceManagementServiceImpl.java | 97 ++++++- .../service/impl/DeviceAgentServiceTest.java | 22 +- .../impl/DeviceManagementServiceImplTest.java | 144 +++++++++- .../carbon/device/mgt/core/dao/DeviceDAO.java | 41 +++ .../core/dao/impl/AbstractDeviceDAOImpl.java | 268 ++++++++++++------ .../DeviceManagementProviderService.java | 41 +++ .../DeviceManagementProviderServiceImpl.java | 105 +++++++ .../DeviceManagementProviderServiceTest.java | 101 +++++-- .../service/impl/DeviceAgentServiceTest.java | 22 +- 11 files changed, 878 insertions(+), 209 deletions(-) diff --git a/.gitignore b/.gitignore index 379d4a33ff..fe21460b43 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ target *.ipr .idea *.ids +.editorconfig # Mac crap .DS_Store diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceManagementService.java index ab50ccc8ab..db0902ee36 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceManagementService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceManagementService.java @@ -16,6 +16,24 @@ * under the License. * */ +/* + * Copyright (c) 2019, Entgra (pvt) Ltd. (http://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 org.wso2.carbon.device.mgt.jaxrs.service.api; import io.swagger.annotations.Api; @@ -143,11 +161,11 @@ import java.util.List; permissions = {"/device-mgt/devices/owning-device/view"} ), @Scope( - name = "Change device status.", - description = "Change device status.", - key = "perm:devices:change-status", - permissions = {"/device-mgt/devices/change-status"} - ), + name = "Change device status.", + description = "Change device status.", + key = "perm:devices:change-status", + permissions = {"/device-mgt/devices/change-status"} + ), } ) @Path("/devices") @@ -165,10 +183,10 @@ public interface DeviceManagementService { notes = "Provides details of all the devices enrolled with WSO2 IoT Server.", tags = "Device Management", extensions = { - @Extension(properties = { - @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:view") - }) - } + @Extension(properties = { + @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:view") + }) + } ) @ApiResponses(value = { @ApiResponse(code = 200, message = "OK. \n Successfully fetched the list of devices.", @@ -212,14 +230,14 @@ public interface DeviceManagementService { value = "The device name. For example, Nexus devices can have names, suhc as shamu, bullhead or angler.", required = false) @Size(max = 45) - String name, + String name, @ApiParam( name = "type", value = "The device type, such as ios, android, or windows.", required = false) @QueryParam("type") @Size(max = 45) - String type, + String type, @ApiParam( name = "user", value = "The username of the owner of the device.", @@ -248,14 +266,14 @@ public interface DeviceManagementService { required = false) @QueryParam("ownership") @Size(max = 45) - String ownership, + String ownership, @ApiParam( name = "status", value = "Provide the device status details, such as active or inactive.", required = false) @QueryParam("status") @Size(max = 45) - String status, + String status, @ApiParam( name = "groupId", value = "Id of the group which device belongs", @@ -269,7 +287,7 @@ public interface DeviceManagementService { "Example: Mon, 05 Jan 2014 15:10:00 +0200", required = false) @QueryParam("since") - String since, + String since, @ApiParam( name = "If-Modified-Since", value = "Checks if the requested variant was modified, since the specified date-time.\n" + @@ -277,7 +295,7 @@ public interface DeviceManagementService { "Example: Mon, 05 Jan 2014 15:10:00 +0200", required = false) @HeaderParam("If-Modified-Since") - String timestamp, + String timestamp, @ApiParam( name = "requireDeviceInfo", value = "Boolean flag indicating whether to include device-info (location, application list etc) \n" + @@ -291,14 +309,14 @@ public interface DeviceManagementService { required = false, defaultValue = "0") @QueryParam("offset") - int offset, + int offset, @ApiParam( name = "limit", value = "Provide how many device details you require from the starting pagination index/offset.", required = false, defaultValue = "5") @QueryParam("limit") - int limit); + int limit); @GET @ApiOperation( @@ -323,16 +341,16 @@ public interface DeviceManagementService { @ResponseHeader( name = "ETag", description = "Entity Tag of the response resource.\n" + - "Used by caches, or in conditional requests."), + "Used by caches, or in conditional requests."), @ResponseHeader( name = "Last-Modified", description = "Date and time the resource was last modified.\n" + - "Used by caches, or in conditional requests."), + "Used by caches, or in conditional requests."), }), @ApiResponse( code = 304, message = "Not Modified. \n Empty body because the client already has the latest version of " + - "the requested resource.\n"), + "the requested resource.\n"), @ApiResponse( code = 400, message = "The incoming request has more than one selection criteria defined via the query parameters.", @@ -383,9 +401,9 @@ public interface DeviceManagementService { "the owner.", tags = "Device Management", extensions = { - @Extension(properties = { - @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:details") - }) + @Extension(properties = { + @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:details") + }) } ) @ApiResponses( @@ -446,16 +464,92 @@ public interface DeviceManagementService { required = false) @QueryParam("owner") @Size(max = 100) - String owner, + String owner, @ApiParam( - name = "If-Modified-Since", - value = "Checks if the requested variant was modified, since the specified date-time. \n" + - "Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z. \n" + - "Example: Mon, 05 Jan 2014 15:10:00 +0200", - required = false) + name = "If-Modified-Since", + value = "Checks if the requested variant was modified, since the specified date-time. \n" + + "Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z. \n" + + "Example: Mon, 05 Jan 2014 15:10:00 +0200", + required = false) @HeaderParam("If-Modified-Since") String ifModifiedSince); + @GET + @Path("/type/any/id/{id}") + @ApiOperation( + produces = MediaType.APPLICATION_JSON, + httpMethod = "GET", + value = "Getting Details of a Device", + notes = "Get the details of a device by specifying the device identifier.", + tags = "Device Management", + extensions = { + @Extension(properties = { + @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:details") + }) + } + ) + @ApiResponses( + value = { + @ApiResponse( + code = 200, + message = "OK. \n Successfully fetched the details of the device.", + response = Device.class, + responseHeaders = { + @ResponseHeader( + name = "Content-Type", + description = "The content type of the body"), + @ResponseHeader( + name = "ETag", + description = "Entity Tag of the response resource.\n" + + "Used by caches, or in conditional requests."), + @ResponseHeader( + name = "Last-Modified", + description = "Date and time the resource was last modified.\n" + + "Used by caches, or in conditional requests."), + }), + @ApiResponse( + code = 304, + message = "Not Modified. Empty body because the client already has the latest version" + + " of the requested resource.\n"), + @ApiResponse( + code = 400, + message = "Bad Request. \n Invalid request or validation error.", + response = ErrorResponse.class), + @ApiResponse( + code = 404, + message = "Not Found. \n A device with the specified device type and id was not found.", + response = ErrorResponse.class), + @ApiResponse( + code = 500, + message = "Internal Server Error. \n " + + "Server error occurred while retrieving the device details.", + response = ErrorResponse.class) + }) + Response getDeviceByID( + @ApiParam( + name = "id", + value = "The device identifier of the device you want ot get details.", + required = true) + @PathParam("id") + @Size(max = 45) + String id, + @ApiParam( + name = "If-Modified-Since", + value = "Checks if the requested variant was modified, since the specified date-time.\n" + + "Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z\n" + + "Example: Mon, 05 Jan 2014 15:10:00 +0200", + required = false) + @HeaderParam("If-Modified-Since") + String timestamp, + @ApiParam( + name = "requireDeviceInfo", + value = "Boolean flag indicating whether to include device-info \n" + + "(location, application list etc) to the device object.", + required = false) + @QueryParam("requireDeviceInfo") + boolean requireDeviceInfo); + + @PUT @Path("/{type}/{id}") @ApiOperation( @@ -587,7 +681,6 @@ public interface DeviceManagementService { String ifModifiedSince); - @GET @Path("/{type}/{id}/info") @ApiOperation( @@ -646,14 +739,14 @@ public interface DeviceManagementService { required = true) @PathParam("type") @Size(max = 45) - String type, + String type, @ApiParam( name = "id", value = "The device identifier of the device you want ot get details.", required = true) @PathParam("id") @Size(max = 45) - String id, + String id, @ApiParam( name = "If-Modified-Since", value = "Checks if the requested variant was modified, since the specified date-time. \n" + @@ -661,7 +754,7 @@ public interface DeviceManagementService { "Example: Mon, 05 Jan 2014 15:10:00 +0200", required = false) @HeaderParam("If-Modified-Since") - String ifModifiedSince); + String ifModifiedSince); //device rename request would looks like follows //POST devices/type/virtual_firealarm/id/us06ww93auzp/rename @@ -820,10 +913,10 @@ public interface DeviceManagementService { " such as iOS, Android or Windows.", tags = "Device Management", extensions = { - @Extension(properties = { - @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:features") - }) - } + @Extension(properties = { + @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:features") + }) + } ) @ApiResponses( value = { @@ -880,7 +973,7 @@ public interface DeviceManagementService { required = true) @PathParam("type") @Size(max = 45) - String type, + String type, @ApiParam( name = "id", value = "The device identifier of the device.\n" + @@ -888,7 +981,7 @@ public interface DeviceManagementService { required = true) @PathParam("id") @Size(max = 45) - String id, + String id, @ApiParam( name = "If-Modified-Since", value = "Checks if the requested variant was modified, since the specified date-time. \n" + @@ -896,7 +989,7 @@ public interface DeviceManagementService { "Example: Mon, 05 Jan 2014 15:10:00 +0200", required = false) @HeaderParam("If-Modified-Since") - String ifModifiedSince); + String ifModifiedSince); @POST @Path("/search-devices") @@ -908,9 +1001,9 @@ public interface DeviceManagementService { notes = "Search for devices by filtering the search result through the specified search terms.", tags = "Device Management", extensions = { - @Extension(properties = { - @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:search") - }) + @Extension(properties = { + @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:search") + }) } ) @ApiResponses( @@ -962,19 +1055,19 @@ public interface DeviceManagementService { required = false, defaultValue = "0") @QueryParam("offset") - int offset, + int offset, @ApiParam( name = "limit", value = "Provide how many activity details you require from the starting pagination index/offset.", required = false, defaultValue = "5") @QueryParam("limit") - int limit, + int limit, @ApiParam( name = "searchContext", value = "The properties to advanced search devices.", required = true) - SearchContext searchContext); + SearchContext searchContext); @GET @Path("/{type}/{id}/applications") @@ -985,11 +1078,11 @@ public interface DeviceManagementService { notes = "Get the list of applications subscribed to by a device.", tags = "Device Management", extensions = { - @Extension(properties = { - @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:applications") - }) + @Extension(properties = { + @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:applications") + }) - } + } ) @ApiResponses( value = { @@ -1046,14 +1139,14 @@ public interface DeviceManagementService { required = true) @PathParam("type") @Size(max = 45) - String type, + String type, @ApiParam( name = "id", value = "The device identifier of the device.", required = true) @PathParam("id") @Size(max = 45) - String id, + String id, @ApiParam( name = "If-Modified-Since", value = "Checks if the requested variant was modified, since the specified date-time. \n" + @@ -1061,21 +1154,21 @@ public interface DeviceManagementService { "Example: Mon, 05 Jan 2014 15:10:00 +0200", required = false) @HeaderParam("If-Modified-Since") - String ifModifiedSince, + String ifModifiedSince, @ApiParam( name = "offset", value = "The starting pagination index for the complete list of qualified items.", required = false, defaultValue = "0") @QueryParam("offset") - int offset, + int offset, @ApiParam( name = "limit", value = "Provide how many application details you require from the starting pagination index/offset.", required = false, defaultValue = "5") @QueryParam("limit") - int limit); + int limit); @GET @@ -1087,10 +1180,10 @@ public interface DeviceManagementService { notes = "Get the details of operations carried out on a selected device.", tags = "Device Management", extensions = { - @Extension(properties = { - @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:operations") - }) - } + @Extension(properties = { + @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:operations") + }) + } ) @ApiResponses( value = { @@ -1147,7 +1240,7 @@ public interface DeviceManagementService { required = true) @PathParam("type") @Size(max = 45) - String type, + String type, @ApiParam( name = "id", value = "The device identifier of the device you wish to get details.\n" + @@ -1155,7 +1248,7 @@ public interface DeviceManagementService { required = true) @PathParam("id") @Size(max = 45) - String id, + String id, @ApiParam( name = "If-Modified-Since", value = "Checks if the requested variant was modified, since the specified date-time. \n" + @@ -1163,21 +1256,21 @@ public interface DeviceManagementService { "Example: Mon, 05 Jan 2014 15:10:00 +0200", required = false) @HeaderParam("If-Modified-Since") - String ifModifiedSince, + String ifModifiedSince, @ApiParam( name = "offset", value = "The starting pagination index for the complete list of qualified items.", required = false, defaultValue = "0") @QueryParam("offset") - int offset, + int offset, @ApiParam( name = "limit", value = "Provide how many activity details you require from the starting pagination index/offset.", required = false, defaultValue = "5") @QueryParam("limit") - int limit, + int limit, @ApiParam( name = "owner", value = "Provides the owner of the required device.", @@ -1197,10 +1290,10 @@ public interface DeviceManagementService { "the device ownership type, the user role or name and finally, the policy that matches these filters will be enforced on the device.", tags = "Device Management", extensions = { - @Extension(properties = { - @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:effective-policy") - }) - } + @Extension(properties = { + @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:effective-policy") + }) + } ) @ApiResponses( value = { @@ -1257,14 +1350,14 @@ public interface DeviceManagementService { required = true) @PathParam("type") @Size(max = 45) - String type, + String type, @ApiParam( name = "id", value = "The device ID.", required = true) @PathParam("id") @Size(max = 45) - String id, + String id, @ApiParam( name = "If-Modified-Since", value = "Checks if the requested variant was modified, since the specified date-time. \n" + @@ -1272,7 +1365,7 @@ public interface DeviceManagementService { "Example: Mon, 05 Jan 2014 15:10:00 +0200", required = false) @HeaderParam("If-Modified-Since") - String ifModifiedSince); + String ifModifiedSince); @GET @@ -1285,9 +1378,9 @@ public interface DeviceManagementService { "The server checks if the settings in the device comply with the policy that is enforced on the device using this REST API.", tags = "Device Management", extensions = { - @Extension(properties = { - @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:compliance-data") - }) + @Extension(properties = { + @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:compliance-data") + }) } ) @ApiResponses( @@ -1313,14 +1406,14 @@ public interface DeviceManagementService { required = true) @PathParam("type") @Size(max = 45) - String type, + String type, @ApiParam( name = "id", value = "Device Identifier", required = true) @PathParam("id") @Size(max = 45) - String id); + String id); @PUT @Path("/{type}/{id}/changestatus") diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImpl.java index 5c69f0bd4d..b679323f97 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImpl.java @@ -16,6 +16,24 @@ * under the License. * */ +/* + * Copyright (c) 2019, Entgra (pvt) Ltd. (http://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 org.wso2.carbon.device.mgt.jaxrs.service.impl; import org.apache.commons.lang.StringUtils; @@ -447,6 +465,77 @@ public class DeviceManagementServiceImpl implements DeviceManagementService { return Response.status(Response.Status.OK).entity(device).build(); } + @GET + @Path("/type/any/id/{id}") + @Override + public Response getDeviceByID( + @PathParam("id") @Size(max = 45) String id, + @HeaderParam("If-Modified-Since") String ifModifiedSince, + @QueryParam("requireDeviceInfo") boolean requireDeviceInfo) { + Device device; + try { + RequestValidationUtil.validateDeviceIdentifier("any", id); + DeviceManagementProviderService dms = DeviceMgtAPIUtils.getDeviceManagementService(); + DeviceAccessAuthorizationService deviceAccessAuthorizationService = + DeviceMgtAPIUtils.getDeviceAccessAuthorizationService(); + + // this is the user who initiates the request + String authorizedUser = CarbonContext.getThreadLocalCarbonContext().getUsername(); + + Date sinceDate = null; + if (ifModifiedSince != null && !ifModifiedSince.isEmpty()) { + SimpleDateFormat format = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z"); + try { + sinceDate = format.parse(ifModifiedSince); + } catch (ParseException e) { + String message = "Error occurred while parse the since date.Invalid date string is provided in " + + "'If-Modified-Since' header"; + log.error(message, e); + return Response.status(Response.Status.BAD_REQUEST).entity( + new ErrorResponse.ErrorResponseBuilder().setMessage("Invalid date " + + "string is provided in 'If-Modified-Since' header").build()).build(); + } + } + if (sinceDate != null) { + device = dms.getDevice(id, sinceDate, requireDeviceInfo); + if (device == null) { + String message = "No device is modified after the timestamp provided in 'If-Modified-Since' header"; + log.error(message); + return Response.status(Response.Status.NOT_MODIFIED).entity("No device is modified " + + "after the timestamp provided in 'If-Modified-Since' header").build(); + } + } else { + device = dms.getDevice(id, requireDeviceInfo); + } + if (device == null) { + String message = "Device does not exist with id '" + id + "'"; + log.error(message); + return Response.status(Response.Status.NOT_FOUND).entity( + new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage(message).build()).build(); + } + DeviceIdentifier deviceIdentifier = new DeviceIdentifier(id, device.getType()); + // check whether the user is authorized + if (!deviceAccessAuthorizationService.isUserAuthorized(deviceIdentifier, authorizedUser)) { + String message = "User '" + authorizedUser + "' is not authorized to retrieve the given " + + "device id '" + id + "'"; + log.error(message); + return Response.status(Response.Status.UNAUTHORIZED).entity( + new ErrorResponse.ErrorResponseBuilder().setCode(401l).setMessage(message).build()).build(); + } + } catch (DeviceManagementException e) { + String message = "Error occurred while fetching the device information."; + log.error(message, e); + return Response.serverError().entity( + new ErrorResponse.ErrorResponseBuilder().setMessage(message).build()).build(); + } catch (DeviceAccessAuthorizationException e) { + String message = "Error occurred while checking the device authorization."; + log.error(message, e); + return Response.serverError().entity( + new ErrorResponse.ErrorResponseBuilder().setMessage(message).build()).build(); + } + return Response.status(Response.Status.OK).entity(device).build(); + } + @GET @Path("/{type}/{id}/location") @Override @@ -491,7 +580,7 @@ public class DeviceManagementServiceImpl implements DeviceManagementService { deviceInfo = informationManager.getDeviceInfo(deviceIdentifier); } catch (DeviceDetailsMgtException e) { - String msg = "Error occurred while getting the device information of id : " + id + " type : " + type ; + String msg = "Error occurred while getting the device information of id : " + id + " type : " + type; log.error(msg, e); return Response.serverError().entity( new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build(); @@ -681,8 +770,8 @@ public class DeviceManagementServiceImpl implements DeviceManagementService { /** * Change device status. * - * @param type Device type - * @param id Device id + * @param type Device type + * @param id Device id * @param newsStatus Device new status * @return {@link Response} object */ @@ -766,7 +855,7 @@ public class DeviceManagementServiceImpl implements DeviceManagementService { String date = new SimpleDateFormat(DATE_FORMAT_NOW).format(new Date()); operation.setCreatedTimeStamp(date); Activity activity = DeviceMgtAPIUtils.getDeviceManagementService().addOperation(type, operation, - deviceIdentifiers); + deviceIdentifiers); return Response.status(Response.Status.CREATED).entity(activity).build(); } else { String message = "Only Command and Config operation is supported through this api"; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceAgentServiceTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceAgentServiceTest.java index 44c23440d9..c66851e35d 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceAgentServiceTest.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceAgentServiceTest.java @@ -154,9 +154,9 @@ public class DeviceAgentServiceTest { public void testEnrollExistingDevice() throws DeviceManagementException { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceManagementService")) .toReturn(this.deviceManagementProviderService); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(demoDevice); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(demoDevice); Device device = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(device); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(device); Response response = this.deviceAgentService.enrollDevice(device); Assert.assertNotNull(response, "Response should not be null"); Assert.assertEquals(response.getStatus(), Response.Status.BAD_REQUEST.getStatusCode(), @@ -173,7 +173,7 @@ public class DeviceAgentServiceTest { EnrolmentInfo enrolmentInfo = demoDevice.getEnrolmentInfo(); enrolmentInfo.setStatus(EnrolmentInfo.Status.INACTIVE); demoDevice.setEnrolmentInfo(enrolmentInfo); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(demoDevice); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(demoDevice); Response response = this.deviceAgentService.enrollDevice(demoDevice); Assert.assertNotNull(response, "Response should not be null"); Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode(), @@ -191,7 +191,7 @@ public class DeviceAgentServiceTest { EnrolmentInfo enrolmentInfo = device.getEnrolmentInfo(); enrolmentInfo.setStatus(EnrolmentInfo.Status.INACTIVE); device.setEnrolmentInfo(enrolmentInfo); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(device); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(device); Mockito.when(this.deviceManagementProviderService.enrollDevice(Mockito.any())) .thenThrow(new DeviceManagementException()); Response response = this.deviceAgentService.enrollDevice(device); @@ -240,7 +240,7 @@ public class DeviceAgentServiceTest { public void testUpdateDeviceWithDeviceManagementException() throws DeviceManagementException { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceManagementService")) .toReturn(this.deviceManagementProviderService); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenThrow(new + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenThrow(new DeviceManagementException()); Device testDevice = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); Response response = deviceAgentService.updateDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER, testDevice); @@ -264,7 +264,7 @@ public class DeviceAgentServiceTest { public void testUpdateDeviceWithNonExistingDevice() throws DeviceManagementException { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceManagementService")) .toReturn(this.deviceManagementProviderService); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(null); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(null); Device testDevice = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); Response response = deviceAgentService.updateDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER, testDevice); Assert.assertNotNull(response, "Response should not be null"); @@ -281,7 +281,7 @@ public class DeviceAgentServiceTest { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceAccessAuthorizationService")).toReturn(this.deviceAccessAuthorizationService); Device testDevice = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(testDevice); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(testDevice); Mockito.when(this.deviceAccessAuthorizationService.isUserAuthorized(Mockito.any(DeviceIdentifier.class))) .thenThrow(new DeviceAccessAuthorizationException()); Response response = deviceAgentService.updateDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER, testDevice); @@ -300,7 +300,7 @@ public class DeviceAgentServiceTest { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceAccessAuthorizationService")).toReturn(this.deviceAccessAuthorizationService); Device testDevice = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(testDevice); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(testDevice); Mockito.when(this.deviceAccessAuthorizationService.isUserAuthorized(Mockito.any(DeviceIdentifier.class))) .thenReturn(false); Response response = deviceAgentService.updateDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER, testDevice); @@ -321,7 +321,7 @@ public class DeviceAgentServiceTest { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getAuthenticatedUser")).toReturn(AUTHENTICATED_USER); Device testDevice = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(testDevice); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(testDevice); Mockito.when(this.deviceAccessAuthorizationService.isUserAuthorized(Mockito.any(DeviceIdentifier.class))) .thenReturn(true); Mockito.when(this.deviceManagementProviderService.modifyEnrollment(Mockito.any())).thenReturn(false); @@ -343,7 +343,7 @@ public class DeviceAgentServiceTest { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getAuthenticatedUser")).toReturn(AUTHENTICATED_USER); Device testDevice = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(testDevice); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(testDevice); Mockito.when(this.deviceAccessAuthorizationService.isUserAuthorized(Mockito.any(DeviceIdentifier.class))) .thenReturn(true); Mockito.when(this.deviceManagementProviderService.modifyEnrollment(Mockito.any())) @@ -365,7 +365,7 @@ public class DeviceAgentServiceTest { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getAuthenticatedUser")).toReturn(AUTHENTICATED_USER); Device testDevice = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(testDevice); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(testDevice); Mockito.when(this.deviceAccessAuthorizationService.isUserAuthorized(Mockito.any(DeviceIdentifier.class))) .thenReturn(true); Mockito.when(this.deviceManagementProviderService.modifyEnrollment(Mockito.any())).thenReturn((true)); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImplTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImplTest.java index 27e84c7fc9..fc26189f40 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImplTest.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImplTest.java @@ -1,19 +1,37 @@ /* - * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * - * WSO2 Inc. 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 + * WSO2 Inc. 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. + * 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. + * + */ +/* + * Copyright (c) 2019, Entgra (pvt) Ltd. (http://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 org.wso2.carbon.device.mgt.jaxrs.service.impl; @@ -52,13 +70,17 @@ import org.wso2.carbon.device.mgt.core.search.mgt.SearchMgtException; import org.wso2.carbon.device.mgt.core.search.mgt.impl.SearchManagerServiceImpl; import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService; import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderServiceImpl; +import org.wso2.carbon.device.mgt.jaxrs.service.api.DeviceAgentService; import org.wso2.carbon.device.mgt.jaxrs.service.api.DeviceManagementService; +import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.DeviceMgtAPITestHelper; import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils; import org.wso2.carbon.policy.mgt.common.PolicyManagementException; import org.wso2.carbon.policy.mgt.core.PolicyManagerService; import org.wso2.carbon.utils.multitenancy.MultitenantUtils; +import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.Calendar; import java.util.Date; import java.util.UUID; import javax.ws.rs.core.Response; @@ -75,6 +97,7 @@ import static org.mockito.MockitoAnnotations.initMocks; public class DeviceManagementServiceImplTest { private static final Log log = LogFactory.getLog(DeviceManagementServiceImplTest.class); + private static final String TEST_DEVICE_IDENTIFIER = "TEST_DEVICE_IDENTIFIER"; private static final String TEST_DEVICE_TYPE = "TEST-DEVICE-TYPE"; private static final String TEST_DEVICE_NAME = "TEST-DEVICE"; private static final String DEFAULT_USERNAME = "admin"; @@ -86,6 +109,7 @@ public class DeviceManagementServiceImplTest { private DeviceManagementService deviceManagementService; private DeviceAccessAuthorizationService deviceAccessAuthorizationService; private DeviceManagementProviderService deviceManagementProviderService; + private static Device demoDevice; @ObjectFactory public IObjectFactory getObjectFactory() { @@ -100,6 +124,7 @@ public class DeviceManagementServiceImplTest { .mock(DeviceManagementProviderServiceImpl.class, Mockito.RETURNS_MOCKS); this.deviceManagementService = new DeviceManagementServiceImpl(); this.deviceAccessAuthorizationService = Mockito.mock(DeviceAccessAuthorizationServiceImpl.class); + demoDevice = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); } @Test(description = "Testing if the device is enrolled when the device is enrolled.") @@ -181,6 +206,103 @@ public class DeviceManagementServiceImplTest { Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode()); } + @Test(description = "Testing get devices by identifier with correct request.") + public void testGetDeviceByID() throws DeviceAccessAuthorizationException { + String ifModifiedSince = new SimpleDateFormat(DEFAULT_DATE_FORMAT).format(new Date()); + PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceManagementService")) + .toReturn(this.deviceManagementProviderService); + PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getAuthenticatedUser")) + .toReturn(DEFAULT_USERNAME); + CarbonContext carbonContext = Mockito.mock(CarbonContext.class, Mockito.RETURNS_MOCKS); + DeviceAccessAuthorizationService deviceAccessAuthorizationService = + Mockito.mock(DeviceAccessAuthorizationService.class, Mockito.RETURNS_MOCKS); + PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, + "getDeviceAccessAuthorizationService")) + .toReturn(deviceAccessAuthorizationService); + PowerMockito.stub(PowerMockito.method(CarbonContext.class, "getThreadLocalCarbonContext")) + .toReturn(carbonContext); + Mockito.when(carbonContext.getTenantId()).thenReturn(-1234); + Mockito.when(carbonContext.getUsername()).thenReturn(DEFAULT_USERNAME); + Mockito.when(deviceAccessAuthorizationService.isUserAuthorized(Mockito.any(DeviceIdentifier.class), + Mockito.anyString())).thenReturn(true); + + Response response = this.deviceManagementService + .getDeviceByID(TEST_DEVICE_IDENTIFIER, ifModifiedSince,true); + Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode()); + response = this.deviceManagementService + .getDeviceByID(TEST_DEVICE_IDENTIFIER, null,true); + Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode()); + + } + + @Test(description = "Testing get devices by identifier when unauthorized user.") + public void testGetDeviceByIDWithErroneousUnauthorizedException() + throws DeviceAccessAuthorizationException { + String ifModifiedSince = new SimpleDateFormat(DEFAULT_DATE_FORMAT).format(new Date()); + PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceManagementService")) + .toReturn(this.deviceManagementProviderService); + PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getAuthenticatedUser")) + .toReturn(DEFAULT_USERNAME); + CarbonContext carbonContext = Mockito.mock(CarbonContext.class, Mockito.RETURNS_MOCKS); + DeviceAccessAuthorizationService deviceAccessAuthorizationService = + Mockito.mock(DeviceAccessAuthorizationService.class, Mockito.RETURNS_MOCKS); + PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, + "getDeviceAccessAuthorizationService")) + .toReturn(deviceAccessAuthorizationService); + PowerMockito.stub(PowerMockito.method(CarbonContext.class, "getThreadLocalCarbonContext")) + .toReturn(carbonContext); + Mockito.when(carbonContext.getTenantId()).thenReturn(-1234); + Mockito.when(carbonContext.getUsername()).thenReturn(DEFAULT_USERNAME); + Mockito.when(deviceAccessAuthorizationService.isDeviceAdminUser()).thenReturn(false); + + Response response = this.deviceManagementService + .getDeviceByID(TEST_DEVICE_IDENTIFIER, ifModifiedSince,true); + Assert.assertEquals(response.getStatus(), Response.Status.UNAUTHORIZED.getStatusCode()); + + } + + @Test(description = "Testing get device when DeviceAccessAuthorizationService is not available", + expectedExceptions = ExceptionInInitializerError.class) + public void testGetDeviceByIDWithErroneousDeviceAccessAuthorizationService() + throws DeviceAccessAuthorizationException { + String ifModifiedSince = new SimpleDateFormat(DEFAULT_DATE_FORMAT).format(new Date()); + PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceManagementService")) + .toReturn(this.deviceManagementProviderService); + PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getAuthenticatedUser")) + .toReturn(DEFAULT_USERNAME); + CarbonContext carbonContext = Mockito.mock(CarbonContext.class, Mockito.RETURNS_MOCKS); + PowerMockito.stub(PowerMockito.method(CarbonContext.class, "getThreadLocalCarbonContext")) + .toReturn(carbonContext); + Mockito.when(carbonContext.getTenantId()).thenReturn(-1234); + Mockito.when(carbonContext.getUsername()).thenReturn(DEFAULT_USERNAME); + Mockito.when(deviceAccessAuthorizationService.isDeviceAdminUser()).thenReturn(true); + + this.deviceManagementService.getDeviceByID(TEST_DEVICE_IDENTIFIER, ifModifiedSince,true); + + } + + @Test(description = "Testing get device when DeviceManagementProviderService is not available", + expectedExceptions = NoClassDefFoundError.class) + public void testGetDeviceByIDWithErroneousDeviceManagementProviderService() + throws DeviceAccessAuthorizationException { + String ifModifiedSince = new SimpleDateFormat(DEFAULT_DATE_FORMAT).format(new Date()); + PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getAuthenticatedUser")) + .toReturn(DEFAULT_USERNAME); + CarbonContext carbonContext = Mockito.mock(CarbonContext.class, Mockito.RETURNS_MOCKS); + DeviceAccessAuthorizationService deviceAccessAuthorizationService = + Mockito.mock(DeviceAccessAuthorizationService.class, Mockito.RETURNS_MOCKS); + PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, + "getDeviceAccessAuthorizationService")) + .toReturn(deviceAccessAuthorizationService); + PowerMockito.stub(PowerMockito.method(CarbonContext.class, "getThreadLocalCarbonContext")) + .toReturn(carbonContext); + Mockito.when(carbonContext.getTenantId()).thenReturn(-1234); + Mockito.when(carbonContext.getUsername()).thenReturn(DEFAULT_USERNAME); + Mockito.when(deviceAccessAuthorizationService.isDeviceAdminUser()).thenReturn(true); + + this.deviceManagementService.getDeviceByID(TEST_DEVICE_IDENTIFIER, ifModifiedSince,true); + } + @Test(description = "Testing get devices when DeviceAccessAuthorizationService is not available") public void testGetDevicesWithErroneousDeviceAccessAuthorizationService() { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceManagementService")) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java index 93a254d2c7..bdb7557ae4 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java @@ -15,6 +15,23 @@ * specific language governing permissions and limitations * under the License. */ +/* + * Copyright (c) 2019, Entgra (pvt) Ltd. (http://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 org.wso2.carbon.device.mgt.core.dao; @@ -128,6 +145,17 @@ public interface DeviceDAO { */ Device getDevice(DeviceIdentifier deviceIdentifier, int tenantId) throws DeviceManagementDAOException; + + /** + * This method is used to retrieve a device of a given device-identifier and tenant-id. + * + * @param deviceIdentifier device id. + * @param tenantId tenant id. + * @return returns the device object. + * @throws DeviceManagementDAOException + */ + Device getDevice(String deviceIdentifier, int tenantId) throws DeviceManagementDAOException; + /** * This method is used to retrieve a device of a given device-identifier and owner and tenant-id. * @@ -152,6 +180,19 @@ public interface DeviceDAO { Device getDevice(DeviceIdentifier deviceIdentifier, Date ifModifiedSince, int tenantId) throws DeviceManagementDAOException; + /** + * This method is used to retrieve a device of a given device-identifier and tenant-id which modified + * later than the ifModifiedSince param. + * + * @param deviceIdentifier device id. + * @param ifModifiedSince last modified time. + * @param tenantId tenant id. + * @return returns the device object. + * @throws DeviceManagementDAOException + */ + Device getDevice(String deviceIdentifier, Date ifModifiedSince, int tenantId) throws + DeviceManagementDAOException; + /** * This method is used to retrieve a device of a given device-identifier and owner and tenant-id which modified * later than the ifModifiedSince param. diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/AbstractDeviceDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/AbstractDeviceDAOImpl.java index 1e8a01e244..30cd6d4dcd 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/AbstractDeviceDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/AbstractDeviceDAOImpl.java @@ -1,19 +1,37 @@ /* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * - * WSO2 Inc. 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 + * WSO2 Inc. 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 + * 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. + * 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. + * + */ +/* + * Copyright (c) 2019, Entgra (pvt) Ltd. (http://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 org.wso2.carbon.device.mgt.core.dao.impl; @@ -55,7 +73,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { String sql = "INSERT INTO DM_DEVICE(DESCRIPTION, NAME, DEVICE_TYPE_ID, DEVICE_IDENTIFICATION, " + "LAST_UPDATED_TIMESTAMP, TENANT_ID) " + "VALUES (?, ?, ?, ?, ?, ?)"; - stmt = conn.prepareStatement(sql, new String[] {"id"}); + stmt = conn.prepareStatement(sql, new String[]{"id"}); stmt.setString(1, device.getDescription()); stmt.setString(2, device.getName()); stmt.setInt(3, typeId); @@ -87,7 +105,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { String sql = "UPDATE DM_DEVICE SET NAME = ?, DESCRIPTION = ?, LAST_UPDATED_TIMESTAMP = ? " + "WHERE DEVICE_TYPE_ID = (SELECT ID FROM DM_DEVICE_TYPE WHERE NAME = ? AND (PROVIDER_TENANT_ID = ? OR SHARED_WITH_ALL_TENANTS = ?)) " + "AND DEVICE_IDENTIFICATION = ? AND TENANT_ID = ?"; - stmt = conn.prepareStatement(sql, new String[] {"id"}); + stmt = conn.prepareStatement(sql, new String[]{"id"}); stmt.setString(1, device.getName()); stmt.setString(2, device.getDescription()); stmt.setTimestamp(3, new Timestamp(new Date().getTime())); @@ -145,6 +163,53 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { return device; } + @Override + public Device getDevice(String deviceIdentifier, int tenantId) throws DeviceManagementDAOException { + Connection conn; + PreparedStatement stmt = null; + ResultSet rs = null; + Device device = null; + try { + conn = this.getConnection(); + String sql = "SELECT " + + "d1.ID AS DEVICE_ID, d1.DESCRIPTION, d1.NAME AS DEVICE_NAME, d1.DEVICE_TYPE, " + + "d1.DEVICE_IDENTIFICATION, e.OWNER, e.OWNERSHIP, e.STATUS, e.DATE_OF_LAST_UPDATE, " + + "e.DATE_OF_ENROLMENT, e.ID AS ENROLMENT_ID " + + "FROM " + + "DM_ENROLMENT e," + + " (SELECT d.ID, d.DESCRIPTION, d.NAME, t.NAME AS DEVICE_TYPE, d.DEVICE_IDENTIFICATION " + + "FROM " + + "DM_DEVICE d, DM_DEVICE_TYPE t " + + "WHERE " + + "t.ID = d.DEVICE_TYPE_ID AND d.DEVICE_IDENTIFICATION = ? AND d.TENANT_ID = ?) d1 " + + "WHERE " + + "d1.ID = e.DEVICE_ID " + + "AND TENANT_ID = ? " + + "ORDER BY e.DATE_OF_LAST_UPDATE DESC, e.STATUS ASC"; + // Status adeed as an orderby clause to fix a bug : when an existing device is + // re-enrolled, earlier enrollment is marked as removed and a new enrollment is added. + // However, both enrollments share the same time stamp. When retrieving the device + // due to same timestamp, enrollment information is incorrect, intermittently. Hence + // status also should be taken into consideration when ordering. This should not present a + // problem for other status transitions, as there would be an intermediary removed + // state in between. + stmt = conn.prepareStatement(sql); + stmt.setString(1, deviceIdentifier); + stmt.setInt(2, tenantId); + stmt.setInt(3, tenantId); + rs = stmt.executeQuery(); + if (rs.next()) { + device = DeviceManagementDAOUtil.loadMatchingDevice(rs, false); + } + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while listing device " + + "'" + deviceIdentifier + "'", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + return device; + } + @Override public Device getDevice(DeviceIdentifier deviceIdentifier, String owner, int tenantId) throws DeviceManagementDAOException { @@ -181,7 +246,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { @Override public Device getDevice(DeviceIdentifier deviceIdentifier, Date since, int tenantId) - throws DeviceManagementDAOException { + throws DeviceManagementDAOException { Connection conn; PreparedStatement stmt = null; ResultSet rs = null; @@ -189,11 +254,11 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { try { conn = this.getConnection(); String sql = "SELECT d1.ID AS DEVICE_ID, d1.DESCRIPTION, d1.NAME AS DEVICE_NAME, d1.DEVICE_TYPE, " + - "d1.DEVICE_IDENTIFICATION, e.OWNER, e.OWNERSHIP, e.STATUS, e.DATE_OF_LAST_UPDATE, " + - "e.DATE_OF_ENROLMENT, e.ID AS ENROLMENT_ID FROM DM_ENROLMENT e, (SELECT d.ID, d.DESCRIPTION, d.NAME, " + - "t.NAME AS DEVICE_TYPE, d.DEVICE_IDENTIFICATION FROM DM_DEVICE d, DM_DEVICE_TYPE t, DM_DEVICE_DETAIL dt " + - "WHERE t.NAME = ? AND t.ID = d.DEVICE_TYPE_ID AND d.DEVICE_IDENTIFICATION = ? AND d.TENANT_ID = ? AND dt.DEVICE_ID = d.ID " + - "AND dt.UPDATE_TIMESTAMP > ?) d1 WHERE d1.ID = e.DEVICE_ID AND TENANT_ID = ? ORDER BY e.DATE_OF_LAST_UPDATE DESC" ; + "d1.DEVICE_IDENTIFICATION, e.OWNER, e.OWNERSHIP, e.STATUS, e.DATE_OF_LAST_UPDATE, " + + "e.DATE_OF_ENROLMENT, e.ID AS ENROLMENT_ID FROM DM_ENROLMENT e, (SELECT d.ID, d.DESCRIPTION, d.NAME, " + + "t.NAME AS DEVICE_TYPE, d.DEVICE_IDENTIFICATION FROM DM_DEVICE d, DM_DEVICE_TYPE t, DM_DEVICE_DETAIL dt " + + "WHERE t.NAME = ? AND t.ID = d.DEVICE_TYPE_ID AND d.DEVICE_IDENTIFICATION = ? AND d.TENANT_ID = ? AND dt.DEVICE_ID = d.ID " + + "AND dt.UPDATE_TIMESTAMP > ?) d1 WHERE d1.ID = e.DEVICE_ID AND TENANT_ID = ? ORDER BY e.DATE_OF_LAST_UPDATE DESC"; stmt = conn.prepareStatement(sql); int paramIdx = 1; stmt.setString(paramIdx++, deviceIdentifier.getType()); @@ -207,7 +272,52 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { } } catch (SQLException e) { throw new DeviceManagementDAOException("Error occurred while listing device for type " + - "'" + deviceIdentifier.getType() + "'", e); + "'" + deviceIdentifier.getType() + "'", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + return device; + } + + @Override + public Device getDevice(String deviceIdentifier, Date since, int tenantId) + throws DeviceManagementDAOException { + Connection conn; + PreparedStatement stmt = null; + ResultSet rs = null; + Device device = null; + try { + conn = this.getConnection(); + String sql = "SELECT d1.ID AS DEVICE_ID, d1.DESCRIPTION, d1.NAME AS DEVICE_NAME, d1.DEVICE_TYPE, " + + "d1.DEVICE_IDENTIFICATION, e.OWNER, e.OWNERSHIP, e.STATUS, e.DATE_OF_LAST_UPDATE, " + + "e.DATE_OF_ENROLMENT, e.ID AS ENROLMENT_ID " + + "FROM" + + " DM_ENROLMENT e, " + + "(SELECT d.ID, d.DESCRIPTION, d.NAME, " + + "t.NAME AS DEVICE_TYPE, d.DEVICE_IDENTIFICATION " + + "FROM" + + " DM_DEVICE d, DM_DEVICE_TYPE t," + + " DM_DEVICE_DETAIL dt " + + "WHERE " + + "t.ID = d.DEVICE_TYPE_ID AND d.DEVICE_IDENTIFICATION = ? AND d.TENANT_ID = ? AND" + + " dt.DEVICE_ID = d.ID AND dt.UPDATE_TIMESTAMP > ?) d1 " + + "WHERE" + + " d1.ID = e.DEVICE_ID AND TENANT_ID = ? " + + "ORDER BY " + + "e.DATE_OF_LAST_UPDATE DESC"; + stmt = conn.prepareStatement(sql); + int paramIdx = 1; + stmt.setString(paramIdx++, deviceIdentifier); + stmt.setInt(paramIdx++, tenantId); + stmt.setLong(paramIdx++, since.getTime()); + stmt.setInt(paramIdx, tenantId); + rs = stmt.executeQuery(); + if (rs.next()) { + device = DeviceManagementDAOUtil.loadMatchingDevice(rs, false); + } + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while listing device for id " + + "'" + deviceIdentifier + "'", e); } finally { DeviceManagementDAOUtil.cleanupResources(stmt, rs); } @@ -228,7 +338,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { "e.DATE_OF_ENROLMENT, e.ID AS ENROLMENT_ID FROM DM_ENROLMENT e, (SELECT d.ID, d.DESCRIPTION, d.NAME, " + "t.NAME AS DEVICE_TYPE, d.DEVICE_IDENTIFICATION FROM DM_DEVICE d, DM_DEVICE_TYPE t, DM_DEVICE_DETAIL dt " + "WHERE t.NAME = ? AND t.ID = d.DEVICE_TYPE_ID AND d.DEVICE_IDENTIFICATION = ? AND d.TENANT_ID = ? AND dt.DEVICE_ID = d.ID " + - "AND dt.UPDATE_TIMESTAMP > ?) d1 WHERE d1.ID = e.DEVICE_ID AND TENANT_ID = ? AND e.OWNER = ?" ; + "AND dt.UPDATE_TIMESTAMP > ?) d1 WHERE d1.ID = e.DEVICE_ID AND TENANT_ID = ? AND e.OWNER = ?"; stmt = conn.prepareStatement(sql); stmt.setString(1, deviceIdentifier.getType()); stmt.setString(2, deviceIdentifier.getId()); @@ -250,8 +360,8 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { } @Override - public Device getDevice(DeviceIdentifier deviceIdentifier, EnrolmentInfo.Status status, int tenantId) throws - DeviceManagementDAOException { + public Device getDevice(DeviceIdentifier deviceIdentifier, EnrolmentInfo.Status status, int tenantId) + throws DeviceManagementDAOException { Connection conn; PreparedStatement stmt = null; ResultSet rs = null; @@ -259,11 +369,11 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { try { conn = this.getConnection(); String sql = "SELECT d1.ID AS DEVICE_ID, d1.DESCRIPTION, d1.NAME AS DEVICE_NAME, d1.DEVICE_TYPE, " + - "d1.DEVICE_IDENTIFICATION, e.OWNER, e.OWNERSHIP, e.STATUS, e.DATE_OF_LAST_UPDATE, " + - "e.DATE_OF_ENROLMENT, e.ID AS ENROLMENT_ID FROM DM_ENROLMENT e, (SELECT d.ID, d.DESCRIPTION, d.NAME, " + - "t.NAME AS DEVICE_TYPE, d.DEVICE_IDENTIFICATION FROM DM_DEVICE d, DM_DEVICE_TYPE t WHERE " + - "t.NAME = ? AND t.ID = d.DEVICE_TYPE_ID AND d.DEVICE_IDENTIFICATION = ? AND d.TENANT_ID = ?) d1 WHERE d1.ID = e.DEVICE_ID " + - "AND TENANT_ID = ? AND e.STATUS = ? ORDER BY e.DATE_OF_LAST_UPDATE DESC"; + "d1.DEVICE_IDENTIFICATION, e.OWNER, e.OWNERSHIP, e.STATUS, e.DATE_OF_LAST_UPDATE, " + + "e.DATE_OF_ENROLMENT, e.ID AS ENROLMENT_ID FROM DM_ENROLMENT e, (SELECT d.ID, d.DESCRIPTION, d.NAME, " + + "t.NAME AS DEVICE_TYPE, d.DEVICE_IDENTIFICATION FROM DM_DEVICE d, DM_DEVICE_TYPE t WHERE " + + "t.NAME = ? AND t.ID = d.DEVICE_TYPE_ID AND d.DEVICE_IDENTIFICATION = ? AND d.TENANT_ID = ?) d1 WHERE d1.ID = e.DEVICE_ID " + + "AND TENANT_ID = ? AND e.STATUS = ? ORDER BY e.DATE_OF_LAST_UPDATE DESC"; stmt = conn.prepareStatement(sql); stmt.setString(1, deviceIdentifier.getType()); stmt.setString(2, deviceIdentifier.getId()); @@ -276,7 +386,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { } } catch (SQLException e) { throw new DeviceManagementDAOException("Error occurred while listing devices for type " + - "'" + deviceIdentifier.getType() + "'", e); + "'" + deviceIdentifier.getType() + "'", e); } finally { DeviceManagementDAOUtil.cleanupResources(stmt, rs); } @@ -293,13 +403,13 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { try { conn = this.getConnection(); String sql = "SELECT d1.ID AS DEVICE_ID, d1.DESCRIPTION, d1.NAME AS DEVICE_NAME, d1.DEVICE_TYPE, e.TENANT_ID, " + - "d1.DEVICE_IDENTIFICATION, e.OWNER, e.OWNERSHIP, e.STATUS, e.DATE_OF_LAST_UPDATE, " + - "e.DATE_OF_ENROLMENT, e.ID AS ENROLMENT_ID FROM DM_ENROLMENT e, (SELECT d.ID, d.DESCRIPTION, d.NAME, " + - "t.NAME AS DEVICE_TYPE, d.DEVICE_IDENTIFICATION FROM DM_DEVICE d, DM_DEVICE_TYPE t WHERE " + - "t.NAME = ? AND t.ID = d.DEVICE_TYPE_ID AND d.DEVICE_IDENTIFICATION = ? ) d1 WHERE d1.ID = e.DEVICE_ID ORDER BY e.DATE_OF_LAST_UPDATE DESC"; - stmt = conn.prepareStatement(sql); - stmt.setString(1, deviceIdentifier.getType()); - stmt.setString(2, deviceIdentifier.getId()); + "d1.DEVICE_IDENTIFICATION, e.OWNER, e.OWNERSHIP, e.STATUS, e.DATE_OF_LAST_UPDATE, " + + "e.DATE_OF_ENROLMENT, e.ID AS ENROLMENT_ID FROM DM_ENROLMENT e, (SELECT d.ID, d.DESCRIPTION, d.NAME, " + + "t.NAME AS DEVICE_TYPE, d.DEVICE_IDENTIFICATION FROM DM_DEVICE d, DM_DEVICE_TYPE t WHERE " + + "t.NAME = ? AND t.ID = d.DEVICE_TYPE_ID AND d.DEVICE_IDENTIFICATION = ? ) d1 WHERE d1.ID = e.DEVICE_ID ORDER BY e.DATE_OF_LAST_UPDATE DESC"; + stmt = conn.prepareStatement(sql); + stmt.setString(1, deviceIdentifier.getType()); + stmt.setString(2, deviceIdentifier.getId()); rs = stmt.executeQuery(); if (rs.next()) { device = DeviceManagementDAOUtil.loadDevice(rs); @@ -323,11 +433,11 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { try { conn = this.getConnection(); String sql = "SELECT d1.ID AS DEVICE_ID, d1.DESCRIPTION, d1.NAME AS DEVICE_NAME, d1.DEVICE_TYPE, " + - "d1.DEVICE_IDENTIFICATION, e.OWNER, e.OWNERSHIP, e.STATUS, e.DATE_OF_LAST_UPDATE, " + - "e.DATE_OF_ENROLMENT, e.ID AS ENROLMENT_ID FROM DM_ENROLMENT e, (SELECT d.ID, d.DESCRIPTION, d.NAME, " + - "t.NAME AS DEVICE_TYPE, d.DEVICE_IDENTIFICATION FROM DM_DEVICE d, DM_DEVICE_TYPE t WHERE " + - "d.ID = ? AND t.ID = d.DEVICE_TYPE_ID AND d.TENANT_ID = ?) d1 WHERE d1.ID = e.DEVICE_ID " + - "AND TENANT_ID = ? ORDER BY e.DATE_OF_LAST_UPDATE DESC"; + "d1.DEVICE_IDENTIFICATION, e.OWNER, e.OWNERSHIP, e.STATUS, e.DATE_OF_LAST_UPDATE, " + + "e.DATE_OF_ENROLMENT, e.ID AS ENROLMENT_ID FROM DM_ENROLMENT e, (SELECT d.ID, d.DESCRIPTION, d.NAME, " + + "t.NAME AS DEVICE_TYPE, d.DEVICE_IDENTIFICATION FROM DM_DEVICE d, DM_DEVICE_TYPE t WHERE " + + "d.ID = ? AND t.ID = d.DEVICE_TYPE_ID AND d.TENANT_ID = ?) d1 WHERE d1.ID = e.DEVICE_ID " + + "AND TENANT_ID = ? ORDER BY e.DATE_OF_LAST_UPDATE DESC"; stmt = conn.prepareStatement(sql); stmt.setInt(1, deviceId); stmt.setInt(2, tenantId); @@ -338,7 +448,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { } } catch (SQLException e) { throw new DeviceManagementDAOException("Error occurred while retrieving device for id " + - "'" + deviceId + "'", e); + "'" + deviceId + "'", e); } finally { DeviceManagementDAOUtil.cleanupResources(stmt, rs); } @@ -421,11 +531,11 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { try { conn = this.getConnection(); String sql = "SELECT e1.OWNER, e1.OWNERSHIP, e1.ENROLMENT_ID, e1.DEVICE_ID, e1.STATUS, e1.DATE_OF_LAST_UPDATE," + - " e1.DATE_OF_ENROLMENT, d.DESCRIPTION, d.NAME AS DEVICE_NAME, d.DEVICE_IDENTIFICATION, t.NAME " + - "AS DEVICE_TYPE FROM DM_DEVICE d, (SELECT e.OWNER, e.OWNERSHIP, e.ID AS ENROLMENT_ID, " + - "e.DEVICE_ID, e.STATUS, e.DATE_OF_LAST_UPDATE, e.DATE_OF_ENROLMENT FROM DM_ENROLMENT e WHERE " + - "e.TENANT_ID = ? AND LOWER(e.OWNER) = LOWER(?) ORDER BY e.DATE_OF_LAST_UPDATE DESC) e1, DM_DEVICE_TYPE t WHERE d.ID = e1.DEVICE_ID " + - "AND t.ID = d.DEVICE_TYPE_ID"; + " e1.DATE_OF_ENROLMENT, d.DESCRIPTION, d.NAME AS DEVICE_NAME, d.DEVICE_IDENTIFICATION, t.NAME " + + "AS DEVICE_TYPE FROM DM_DEVICE d, (SELECT e.OWNER, e.OWNERSHIP, e.ID AS ENROLMENT_ID, " + + "e.DEVICE_ID, e.STATUS, e.DATE_OF_LAST_UPDATE, e.DATE_OF_ENROLMENT FROM DM_ENROLMENT e WHERE " + + "e.TENANT_ID = ? AND LOWER(e.OWNER) = LOWER(?) ORDER BY e.DATE_OF_LAST_UPDATE DESC) e1, DM_DEVICE_TYPE t WHERE d.ID = e1.DEVICE_ID " + + "AND t.ID = d.DEVICE_TYPE_ID"; stmt = conn.prepareStatement(sql); stmt.setInt(1, tenantId); stmt.setString(2, username); @@ -497,8 +607,8 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { try { conn = this.getConnection(); String sql = "SELECT COUNT(d1.DEVICE_ID) AS DEVICE_COUNT FROM DM_ENROLMENT e, (SELECT d.ID AS DEVICE_ID FROM " + - "DM_DEVICE d, DM_DEVICE_TYPE t WHERE d.DEVICE_TYPE_ID = t.ID AND d.TENANT_ID = ?) d1 WHERE " + - "d1.DEVICE_ID = e.DEVICE_ID AND LOWER(e.OWNER) = LOWER(?) AND TENANT_ID = ?"; + "DM_DEVICE d, DM_DEVICE_TYPE t WHERE d.DEVICE_TYPE_ID = t.ID AND d.TENANT_ID = ?) d1 WHERE " + + "d1.DEVICE_ID = e.DEVICE_ID AND LOWER(e.OWNER) = LOWER(?) AND TENANT_ID = ?"; stmt = conn.prepareStatement(sql); stmt.setInt(1, tenantId); stmt.setString(2, username); @@ -580,7 +690,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { @Override public boolean setEnrolmentStatusInBulk(String deviceType, String status, - int tenantId, List devices) throws DeviceManagementDAOException { + int tenantId, List devices) throws DeviceManagementDAOException { Connection conn; PreparedStatement stmt = null; try { @@ -625,8 +735,8 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { try { conn = this.getConnection(); String sql = "SELECT COUNT(d1.DEVICE_ID) AS DEVICE_COUNT FROM DM_ENROLMENT e, (SELECT d.ID AS DEVICE_ID FROM " + - "DM_DEVICE d, DM_DEVICE_TYPE t WHERE d.DEVICE_TYPE_ID = t.ID AND d.TENANT_ID = ?) d1 WHERE " + - "d1.DEVICE_ID = e.DEVICE_ID AND TENANT_ID = ?"; + "DM_DEVICE d, DM_DEVICE_TYPE t WHERE d.DEVICE_TYPE_ID = t.ID AND d.TENANT_ID = ?) d1 WHERE " + + "d1.DEVICE_ID = e.DEVICE_ID AND TENANT_ID = ?"; stmt = conn.prepareStatement(sql); stmt.setInt(1, tenantId); stmt.setInt(2, tenantId); @@ -665,7 +775,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { try { conn = this.getConnection(); String sql = "SELECT COUNT(d1.ID) AS DEVICE_COUNT FROM DM_ENROLMENT e, (SELECT d.ID, d.NAME, d.DEVICE_IDENTIFICATION, " + - "t.NAME AS DEVICE_TYPE FROM DM_DEVICE d, DM_DEVICE_TYPE t"; + "t.NAME AS DEVICE_TYPE FROM DM_DEVICE d, DM_DEVICE_TYPE t"; //Add query for last updated timestamp if (since != null) { @@ -739,7 +849,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { } } catch (SQLException e) { throw new DeviceManagementDAOException("Error occurred while retrieving information of all " + - "registered devices", e); + "registered devices", e); } finally { DeviceManagementDAOUtil.cleanupResources(stmt, rs); } @@ -755,8 +865,8 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { try { conn = this.getConnection(); String sql = "SELECT COUNT(d1.ID) AS DEVICE_COUNT FROM DM_ENROLMENT e, (SELECT d.ID FROM DM_DEVICE d, " + - "DM_DEVICE_TYPE t WHERE DEVICE_TYPE_ID = t.ID AND t.NAME = ? " + - "AND d.TENANT_ID = ?) d1 WHERE d1.ID = e.DEVICE_ID AND TENANT_ID = ?"; + "DM_DEVICE_TYPE t WHERE DEVICE_TYPE_ID = t.ID AND t.NAME = ? " + + "AND d.TENANT_ID = ?) d1 WHERE d1.ID = e.DEVICE_ID AND TENANT_ID = ?"; stmt = conn.prepareStatement(sql); stmt.setString(1, type); stmt.setInt(2, tenantId); @@ -781,8 +891,8 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { try { conn = this.getConnection(); String sql = "SELECT COUNT(e1.DEVICE_ID) AS DEVICE_COUNT FROM DM_DEVICE d, (SELECT e.DEVICE_ID " + - "FROM DM_ENROLMENT e WHERE e.TENANT_ID = ? AND LOWER(e.OWNER) = LOWER(?)) " + - "e1, DM_DEVICE_TYPE t WHERE d.ID = e1.DEVICE_ID AND t.ID = d.DEVICE_TYPE_ID"; + "FROM DM_ENROLMENT e WHERE e.TENANT_ID = ? AND LOWER(e.OWNER) = LOWER(?)) " + + "e1, DM_DEVICE_TYPE t WHERE d.ID = e1.DEVICE_ID AND t.ID = d.DEVICE_TYPE_ID"; stmt = conn.prepareStatement(sql); stmt.setInt(1, tenantId); stmt.setString(2, username); @@ -793,7 +903,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { } } catch (SQLException e) { throw new DeviceManagementDAOException("Error occurred while fetching the list of devices belongs to '" + - username + "'", e); + username + "'", e); } finally { DeviceManagementDAOUtil.cleanupResources(stmt, null); } @@ -808,8 +918,8 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { try { conn = this.getConnection(); String sql = "SELECT COUNT(d1.ID) AS DEVICE_COUNT FROM DM_ENROLMENT e, (SELECT d.ID FROM DM_DEVICE d, " + - "DM_DEVICE_TYPE t WHERE d.DEVICE_TYPE_ID = t.ID AND d.NAME LIKE ? AND d.TENANT_ID = ?) d1 " + - "WHERE d1.ID = e.DEVICE_ID AND TENANT_ID = ?"; + "DM_DEVICE_TYPE t WHERE d.DEVICE_TYPE_ID = t.ID AND d.NAME LIKE ? AND d.TENANT_ID = ?) d1 " + + "WHERE d1.ID = e.DEVICE_ID AND TENANT_ID = ?"; stmt = conn.prepareStatement(sql); stmt.setString(1, deviceName + "%"); stmt.setInt(2, tenantId); @@ -821,7 +931,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { } } catch (SQLException e) { throw new DeviceManagementDAOException("Error occurred while fetching the device count that matches " + - "'" + deviceName + "'", e); + "'" + deviceName + "'", e); } finally { DeviceManagementDAOUtil.cleanupResources(stmt, null); } @@ -836,8 +946,8 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { try { conn = this.getConnection(); String sql = "SELECT COUNT(d.ID) AS DEVICE_COUNT FROM (SELECT e.DEVICE_ID FROM DM_ENROLMENT e WHERE " + - "TENANT_ID = ? AND OWNERSHIP = ?) e, DM_DEVICE d, " + - "DM_DEVICE_TYPE t WHERE d.ID = e.DEVICE_ID AND d.DEVICE_TYPE_ID = t.ID AND d.TENANT_ID = ?"; + "TENANT_ID = ? AND OWNERSHIP = ?) e, DM_DEVICE d, " + + "DM_DEVICE_TYPE t WHERE d.ID = e.DEVICE_ID AND d.DEVICE_TYPE_ID = t.ID AND d.TENANT_ID = ?"; stmt = conn.prepareStatement(sql); stmt.setInt(1, tenantId); stmt.setString(2, ownerShip); @@ -849,7 +959,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { } } catch (SQLException e) { throw new DeviceManagementDAOException("Error occurred while fetching the list of devices that matches to ownership " + - "'" + ownerShip + "'", e); + "'" + ownerShip + "'", e); } finally { DeviceManagementDAOUtil.cleanupResources(stmt, null); } @@ -923,7 +1033,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { conn = this.getConnection(); String sql = "INSERT INTO DM_ENROLMENT(DEVICE_ID, OWNER, OWNERSHIP, STATUS,DATE_OF_ENROLMENT, " + "DATE_OF_LAST_UPDATE, TENANT_ID) VALUES(?, ?, ?, ?, ?, ?, ?)"; - stmt = conn.prepareStatement(sql, new String[] {"id"}); + stmt = conn.prepareStatement(sql, new String[]{"id"}); stmt.setInt(1, device.getId()); stmt.setString(2, device.getEnrolmentInfo().getOwner()); stmt.setString(3, device.getEnrolmentInfo().getOwnership().toString()); @@ -1044,10 +1154,10 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { try { conn = this.getConnection(); String sql = "SELECT ID AS ENROLMENT_ID, DEVICE_ID, OWNER, OWNERSHIP, STATUS, DATE_OF_ENROLMENT, " + - "DATE_OF_LAST_UPDATE, TENANT_ID FROM DM_ENROLMENT WHERE DEVICE_ID = (SELECT d.ID " + - "FROM DM_DEVICE d, DM_DEVICE_TYPE t WHERE d.DEVICE_TYPE_ID = t.ID " + - "AND d.DEVICE_IDENTIFICATION = ? AND t.NAME = ? AND d.TENANT_ID = ?) " + - "AND TENANT_ID = ? AND STATUS in ('ACTIVE','UNREACHABLE','INACTIVE')"; + "DATE_OF_LAST_UPDATE, TENANT_ID FROM DM_ENROLMENT WHERE DEVICE_ID = (SELECT d.ID " + + "FROM DM_DEVICE d, DM_DEVICE_TYPE t WHERE d.DEVICE_TYPE_ID = t.ID " + + "AND d.DEVICE_IDENTIFICATION = ? AND t.NAME = ? AND d.TENANT_ID = ?) " + + "AND TENANT_ID = ? AND STATUS in ('ACTIVE','UNREACHABLE','INACTIVE')"; stmt = conn.prepareStatement(sql); stmt.setString(1, deviceId.getId()); stmt.setString(2, deviceId.getType()); @@ -1060,8 +1170,8 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { return enrolmentInfo; } catch (SQLException e) { throw new DeviceManagementDAOException("Error occurred while retrieving the enrolment " + - "information of device '" + deviceId.getId() + "' of type : " - + deviceId.getType(), e); + "information of device '" + deviceId.getId() + "' of type : " + + deviceId.getType(), e); } finally { DeviceManagementDAOUtil.cleanupResources(stmt, rs); } @@ -1130,7 +1240,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { * * @param timestamp Timestamp in long, after which the devices have been updated. * @param tenantId Tenant id of the currently logged in user. - * @return A collection of devices that have been updated after the provided timestamp + * @return A collection of devices that have been updated after the provided timestamp * @throws DeviceManagementDAOException */ public List getDevices(long timestamp, int tenantId) throws DeviceManagementDAOException { @@ -1194,7 +1304,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { List geoClusters = new ArrayList<>(); try { conn = this.getConnection(); - String sql ="SELECT AVG(DEVICE_LOCATION.LATITUDE) AS LATITUDE,AVG(DEVICE_LOCATION.LONGITUDE) AS LONGITUDE," + + String sql = "SELECT AVG(DEVICE_LOCATION.LATITUDE) AS LATITUDE,AVG(DEVICE_LOCATION.LONGITUDE) AS LONGITUDE," + " MIN(DEVICE_LOCATION.LATITUDE) AS MIN_LATITUDE, MAX(DEVICE_LOCATION.LATITUDE) AS MAX_LATITUDE," + " MIN(DEVICE_LOCATION.LONGITUDE) AS MIN_LONGITUDE," + " MAX(DEVICE_LOCATION.LONGITUDE) AS MAX_LONGITUDE," + @@ -1217,7 +1327,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { stmt.setDouble(3, northEast.getLatitude()); stmt.setDouble(4, southWest.getLongitude()); stmt.setDouble(5, northEast.getLongitude()); - stmt.setDouble(6,tenantId); + stmt.setDouble(6, tenantId); if (deviceType != null && !deviceType.isEmpty()) { stmt.setString(7, deviceType); } @@ -1230,13 +1340,13 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { double min_longitude = rs.getDouble("MIN_LONGITUDE"); double max_longitude = rs.getDouble("MAX_LONGITUDE"); String device_identification = rs.getString("DEVICE_IDENTIFICATION"); - String device_type=rs.getString("TYPE"); + String device_type = rs.getString("TYPE"); String last_seen = rs.getString("LAST_UPDATED_TIMESTAMP"); long count = rs.getLong("COUNT"); String geohashPrefix = rs.getString("GEOHASH_PREFIX"); geoClusters.add(new GeoCluster(new GeoCoordinate(latitude, longitude), - new GeoCoordinate(min_latitude,min_longitude), new GeoCoordinate(max_latitude,max_longitude), - count, geohashPrefix,device_identification,device_type,last_seen)); + new GeoCoordinate(min_latitude, min_longitude), new GeoCoordinate(max_latitude, max_longitude), + count, geohashPrefix, device_identification, device_type, last_seen)); } } catch (SQLException e) { throw new DeviceManagementDAOException("Error occurred while retrieving information of " + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java index 3fa92a1aed..186b253de4 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java @@ -15,6 +15,24 @@ * specific language governing permissions and limitations * under the License. */ +/* + * Copyright (c) 2019, Entgra (pvt) Ltd. (http://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 org.wso2.carbon.device.mgt.core.service; import org.wso2.carbon.device.mgt.common.Device; @@ -189,6 +207,17 @@ public interface DeviceManagementProviderService { */ Device getDevice(DeviceIdentifier deviceId, boolean requireDeviceInfo) throws DeviceManagementException; + /** + * Returns the device of specified id. + * + * @param deviceId device Id + * @param requireDeviceInfo - A boolean indicating whether the device-info (location, app-info etc) is also required + * along with the device data. + * @return Device returns null when device is not available. + * @throws DeviceManagementException + */ + Device getDevice(String deviceId, boolean requireDeviceInfo) throws DeviceManagementException; + /** * Returns the device of specified id owned by user with given username. * @@ -224,6 +253,18 @@ public interface DeviceManagementProviderService { */ Device getDevice(DeviceIdentifier deviceId, Date since, boolean requireDeviceInfo) throws DeviceManagementException; + /** + * Returns the device of specified id. + * + * @param deviceId device Id + * @param since - Date value where the resource was last modified + * @param requireDeviceInfo - A boolean indicating whether the device-info (location, app-info etc) is also required + * along with the device data. + * @return Device returns null when device is not available. + * @throws DeviceManagementException + */ + Device getDevice(String deviceId, Date since, boolean requireDeviceInfo) throws DeviceManagementException; + /** * Returns the device of specified id and owned by user with given username. * diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java index ecb7463be2..a890487f4c 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java @@ -15,6 +15,23 @@ * specific language governing permissions and limitations * under the License. */ +/* + * Copyright (c) 2019, Entgra (pvt) Ltd. (http://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 org.wso2.carbon.device.mgt.core.service; import org.apache.commons.lang.StringUtils; @@ -813,6 +830,53 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv return device; } + @Override + public Device getDevice(String deviceId, boolean requireDeviceInfo) throws DeviceManagementException { + if (deviceId == null) { + String message = "Received null device identifier for method getDevice"; + log.error(message); + throw new DeviceManagementException(message); + } + if (log.isDebugEnabled()) { + log.debug("Get device by device id :" + deviceId + " '" + + "' and requiredDeviceInfo: " + requireDeviceInfo); + } + int tenantId = this.getTenantId(); + Device device; + try { + DeviceManagementDAOFactory.openConnection(); + device = deviceDAO.getDevice(deviceId, tenantId); + if (device == null) { + String message = "No device is found upon the id '" + + deviceId + "'"; + if (log.isDebugEnabled()) { + log.debug(message); + } + return null; + } + DeviceIdentifier deviceIdentifier = new DeviceIdentifier(deviceId, device.getType()); + this.addDeviceToCache(deviceIdentifier, device); + } catch (DeviceManagementDAOException e) { + String message = "Error occurred while obtaining the device for '" + deviceId + "'"; + log.error(message, e); + throw new DeviceManagementException(message, e); + } catch (SQLException e) { + String message = "Error occurred while opening a connection to the data source"; + log.error(message); + throw new DeviceManagementException(message, e); + } catch (Exception e) { + String message = "Error occurred in getDevice: " + deviceId; + log.error(message, e); + throw new DeviceManagementException(message, e); + } finally { + DeviceManagementDAOFactory.closeConnection(); + } + if (requireDeviceInfo) { + device = this.getAllDeviceInfo(device); + } + return device; + } + @Override public Device getDevice(DeviceIdentifier deviceId, String owner, boolean requireDeviceInfo) throws DeviceManagementException { @@ -1072,6 +1136,47 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv return device; } + @Override + public Device getDevice(String deviceId, Date since, boolean requireDeviceInfo) throws DeviceManagementException { + if (deviceId == null || since == null) { + String message = "Received incomplete data for getDevice"; + log.error(message); + throw new DeviceManagementException(message); + } + if (log.isDebugEnabled()) { + log.debug("Get device since '" + since.toString() + "' with identifier: " + deviceId + ""); + } + Device device; + try { + DeviceManagementDAOFactory.openConnection(); + device = deviceDAO.getDevice(deviceId, since, this.getTenantId()); + if (device == null) { + if (log.isDebugEnabled()) { + log.debug("No device is found upon the id '" + deviceId + "'"); + } + return null; + } + } catch (DeviceManagementDAOException e) { + String message = "Error occurred while obtaining the device for id '" + deviceId + "'"; + log.error(message, e); + throw new DeviceManagementException(message, e); + } catch (SQLException e) { + String message = "Error occurred while opening a connection to the data source"; + log.error(message, e); + throw new DeviceManagementException(message, e); + } catch (Exception e) { + String message = "Error occurred in getDevice for device: " + deviceId; + log.error(message, e); + throw new DeviceManagementException(message, e); + } finally { + DeviceManagementDAOFactory.closeConnection(); + } + if (requireDeviceInfo) { + device = this.getAllDeviceInfo(device); + } + return device; + } + @Override public Device getDevice(DeviceIdentifier deviceId, String owner, Date since, boolean requireDeviceInfo) throws DeviceManagementException { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceTest.java index ffff69c6a5..98328cab30 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceTest.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceTest.java @@ -1,18 +1,39 @@ /* -* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. -* -* Licensed 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. -*/ + * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. 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. + * + */ +/* + * Copyright (c) 2019, Entgra (pvt) Ltd. (http://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 org.wso2.carbon.device.mgt.core.service; import org.apache.commons.logging.Log; @@ -72,6 +93,7 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes private static final String ALTERNATE_DEVICE_ID = "1128"; private DeviceManagementProviderService providerService; private static final String DEVICE_TYPE = "RANDOM_DEVICE_TYPE"; + private static final String DEVICE_OWNER = "admin"; private DeviceDetailsDAO deviceDetailsDAO = DeviceManagementDAOFactory.getDeviceDetailsDAO(); DeviceManagementProviderService deviceMgtService; @@ -352,7 +374,6 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes Assert.assertTrue(device.getDeviceIdentifier().equalsIgnoreCase(DEVICE_ID)); } - @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}) public void testGetDeviceWithInfo() throws DeviceManagementException { Device device = deviceMgtService.getDevice(new DeviceIdentifier(DEVICE_ID, DEVICE_TYPE) @@ -362,6 +383,52 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes } } + @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}) + public void testGetDeviceByID() throws DeviceManagementException { + Device device = deviceMgtService.getDevice(DEVICE_ID, true); + if (!isMock()) { + Assert.assertTrue(device.getDeviceIdentifier().equalsIgnoreCase(DEVICE_ID)); + } + } + + @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}, expectedExceptions = + DeviceManagementException.class) + public void testGetDeviceByIDWithNullID() throws DeviceManagementException { + deviceMgtService.getDevice((String) null, true); + } + + @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}) + public void testGetDeviceByIDAndSinceDate() throws DeviceManagementException, DeviceDetailsMgtDAOException + , TransactionManagementException { + Device initialDevice = deviceMgtService.getDevice(new DeviceIdentifier(DEVICE_ID, + DEVICE_TYPE)); + addDeviceInformation(initialDevice); + Device device = deviceMgtService.getDevice(DEVICE_ID, yesterday(), true); + if (!isMock()) { + Assert.assertTrue(device != null); + } + } + + @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}, expectedExceptions = + DeviceManagementException.class) + public void testGetDeviceByIDAndSinceDateWithNullID() throws DeviceManagementException, DeviceDetailsMgtDAOException + , TransactionManagementException { + Device initialDevice = deviceMgtService.getDevice(new DeviceIdentifier(DEVICE_ID, + DEVICE_TYPE)); + addDeviceInformation(initialDevice); + deviceMgtService.getDevice((String)null, yesterday(), true); + } + + @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}, expectedExceptions = + DeviceManagementException.class) + public void testGetDeviceByIDAndSinceDateWithNullDate() throws DeviceManagementException, + DeviceDetailsMgtDAOException, TransactionManagementException { + Device initialDevice = deviceMgtService.getDevice(new DeviceIdentifier(DEVICE_ID, + DEVICE_TYPE)); + addDeviceInformation(initialDevice); + deviceMgtService.getDevice(DEVICE_ID, (Date)null, true); + } + @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}) public void testGetDeviceTypeWithProps() throws DeviceManagementException, NoSuchFieldException, IllegalAccessException { @@ -437,7 +504,7 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}, expectedExceptions = DeviceManagementException.class) public void testDeviceByOwnerWithNullDeviceID() throws DeviceManagementException { - deviceMgtService.getDevice(null, "admin", true); + deviceMgtService.getDevice((DeviceIdentifier) null, "admin", true); } @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}) @@ -498,7 +565,7 @@ public class DeviceManagementProviderServiceTest extends BaseDeviceManagementTes @Test(dependsOnMethods = {"testSuccessfulDeviceEnrollment"}, expectedExceptions = DeviceManagementException.class) public void testDeviceByDateWithNullDeviceID() throws DeviceManagementException { - deviceMgtService.getDevice(null, yesterday()); + deviceMgtService.getDevice((DeviceIdentifier) null, yesterday()); } private void addDeviceInformation(Device initialDevice) throws TransactionManagementException, DeviceDetailsMgtDAOException { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceAgentServiceTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceAgentServiceTest.java index 05bd490a85..cd11cb9d33 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceAgentServiceTest.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceAgentServiceTest.java @@ -155,9 +155,9 @@ public class DeviceAgentServiceTest { public void testEnrollExistingDevice() throws DeviceManagementException { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceManagementService")) .toReturn(this.deviceManagementProviderService); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(demoDevice); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(demoDevice); Device device = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(device); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(device); Response response = this.deviceAgentService.enrollDevice(device); Assert.assertNotNull(response, "Response should not be null"); Assert.assertEquals(response.getStatus(), Response.Status.BAD_REQUEST.getStatusCode(), @@ -174,7 +174,7 @@ public class DeviceAgentServiceTest { EnrolmentInfo enrolmentInfo = demoDevice.getEnrolmentInfo(); enrolmentInfo.setStatus(EnrolmentInfo.Status.INACTIVE); demoDevice.setEnrolmentInfo(enrolmentInfo); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(demoDevice); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(demoDevice); Response response = this.deviceAgentService.enrollDevice(demoDevice); Assert.assertNotNull(response, "Response should not be null"); Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode(), @@ -192,7 +192,7 @@ public class DeviceAgentServiceTest { EnrolmentInfo enrolmentInfo = device.getEnrolmentInfo(); enrolmentInfo.setStatus(EnrolmentInfo.Status.INACTIVE); device.setEnrolmentInfo(enrolmentInfo); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(device); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(device); Mockito.when(this.deviceManagementProviderService.enrollDevice(Mockito.any())) .thenThrow(new DeviceManagementException()); Response response = this.deviceAgentService.enrollDevice(device); @@ -241,7 +241,7 @@ public class DeviceAgentServiceTest { public void testUpdateDeviceWithDeviceManagementException() throws DeviceManagementException { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceManagementService")) .toReturn(this.deviceManagementProviderService); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenThrow(new + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenThrow(new DeviceManagementException()); Device testDevice = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); Response response = deviceAgentService.updateDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER, testDevice); @@ -265,7 +265,7 @@ public class DeviceAgentServiceTest { public void testUpdateDeviceWithNonExistingDevice() throws DeviceManagementException { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceManagementService")) .toReturn(this.deviceManagementProviderService); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(null); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(null); Device testDevice = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); Response response = deviceAgentService.updateDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER, testDevice); Assert.assertNotNull(response, "Response should not be null"); @@ -282,7 +282,7 @@ public class DeviceAgentServiceTest { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceAccessAuthorizationService")).toReturn(this.deviceAccessAuthorizationService); Device testDevice = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(testDevice); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(testDevice); Mockito.when(this.deviceAccessAuthorizationService.isUserAuthorized(Mockito.any(DeviceIdentifier.class))) .thenThrow(new DeviceAccessAuthorizationException()); Response response = deviceAgentService.updateDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER, testDevice); @@ -301,7 +301,7 @@ public class DeviceAgentServiceTest { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceAccessAuthorizationService")).toReturn(this.deviceAccessAuthorizationService); Device testDevice = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(testDevice); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(testDevice); Mockito.when(this.deviceAccessAuthorizationService.isUserAuthorized(Mockito.any(DeviceIdentifier.class))) .thenReturn(false); Response response = deviceAgentService.updateDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER, testDevice); @@ -322,7 +322,7 @@ public class DeviceAgentServiceTest { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getAuthenticatedUser")).toReturn(AUTHENTICATED_USER); Device testDevice = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(testDevice); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(testDevice); Mockito.when(this.deviceAccessAuthorizationService.isUserAuthorized(Mockito.any(DeviceIdentifier.class))) .thenReturn(true); Mockito.when(this.deviceManagementProviderService.modifyEnrollment(Mockito.any())).thenReturn(false); @@ -344,7 +344,7 @@ public class DeviceAgentServiceTest { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getAuthenticatedUser")).toReturn(AUTHENTICATED_USER); Device testDevice = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(testDevice); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(testDevice); Mockito.when(this.deviceAccessAuthorizationService.isUserAuthorized(Mockito.any(DeviceIdentifier.class))) .thenReturn(true); Mockito.when(this.deviceManagementProviderService.modifyEnrollment(Mockito.any())) @@ -366,7 +366,7 @@ public class DeviceAgentServiceTest { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getAuthenticatedUser")).toReturn(AUTHENTICATED_USER); Device testDevice = DeviceMgtAPITestHelper.generateDummyDevice(TEST_DEVICE_TYPE, TEST_DEVICE_IDENTIFIER); - Mockito.when(this.deviceManagementProviderService.getDevice(Mockito.any())).thenReturn(testDevice); + Mockito.when(this.deviceManagementProviderService.getDevice((DeviceIdentifier) Mockito.any())).thenReturn(testDevice); Mockito.when(this.deviceAccessAuthorizationService.isUserAuthorized(Mockito.any(DeviceIdentifier.class))) .thenReturn(true); Mockito.when(this.deviceManagementProviderService.modifyEnrollment(Mockito.any())).thenReturn((true)); From 1fc16f95728595d8033cb0d9f5724e146a523fa9 Mon Sep 17 00:00:00 2001 From: Pahansith Gunathilake Date: Tue, 28 May 2019 05:18:05 +0000 Subject: [PATCH 07/28] Fix windows device inactive after sync --- .../device/mgt/core/operation/mgt/OperationManagerImpl.java | 2 +- .../mgt/core/service/DeviceManagementProviderServiceImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/OperationManagerImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/OperationManagerImpl.java index d2fb72b90e..3a9db4f4c0 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/OperationManagerImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/OperationManagerImpl.java @@ -1132,7 +1132,7 @@ public class OperationManagerImpl implements OperationManager { DeviceManagementDAOFactory.beginTransaction(); int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId(); String user = this.getUser(); - updateStatus = enrollmentDAO.setStatus(enrolmentId, user, status, tenantId); + updateStatus = enrollmentDAO.setStatus(enrolmentId, status, tenantId); DeviceManagementDAOFactory.commitTransaction(); } catch (DeviceManagementDAOException e) { DeviceManagementDAOFactory.rollbackTransaction(); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java index a890487f4c..b65b75d2ea 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java @@ -1423,7 +1423,7 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv EnrolmentInfo enrolmentInfo = device.getEnrolmentInfo(); DeviceManagementDAOFactory.beginTransaction(); if (enrolmentInfo != null) { - success = enrollmentDAO.setStatus(enrolmentInfo.getId(), currentOwner, status, tenantId); + success = enrollmentDAO.setStatus(enrolmentInfo.getId(), status, tenantId); } DeviceManagementDAOFactory.commitTransaction(); this.removeDeviceFromCache(deviceId); From a28589878290bbadcd55b739390d41a7cc0de175 Mon Sep 17 00:00:00 2001 From: Madawa Soysa Date: Thu, 30 May 2019 06:31:11 +0000 Subject: [PATCH 08/28] Modify the Feature Specification Structure and Modify {deviceType}/features API Related to entgra/product-iots#37 --- .../api/DeviceTypeManagementService.java | 55 +-- .../impl/DeviceTypeManagementServiceImpl.java | 69 ++-- .../impl/DeviceTypeManagementServiceTest.java | 14 +- .../carbon/device/mgt/common/Feature.java | 108 +++++- .../device/mgt/common/FeatureManager.java | 21 + .../device/type/template/config/Feature.java | 67 +++- .../device/type/template/config/Features.java | 18 +- .../device/type/template/config/Filter.java | 76 ++++ .../type/template/config/FormParameters.java | 43 ++- .../type/template/config/Operation.java | 199 +++------- .../template/config/OperationMetadata.java | 120 ++++++ .../device/type/template/config/Params.java | 78 ++++ .../type/template/config/QueryParameters.java | 48 ++- .../type/template/config/UIParameter.java | 134 +++++++ .../type/template/config/UIParameters.java | 48 +++ .../ConfigurationBasedFeatureManager.java | 126 +++++- .../test/resources/device-types/android.xml | 364 ++++++++++++++---- .../resources/device-types/android_sense.xml | 6 +- .../test/resources/device-types/arduino.xml | 16 +- .../device-types/defective-devicetype2.xml | 16 +- .../device-types/defective-devicetype3.xml | 16 +- .../resources/device-types/raspberrypi.xml | 16 +- .../test/resources/device-types/sample.xml | 23 +- .../modules/business-controllers/operation.js | 105 +++-- .../app/pages/cdmf.page.devices/devices.hbs | 77 +++- .../app/pages/cdmf.page.devices/devices.js | 2 + .../cdmf.page.devices/public/js/listing.js | 133 +++++++ .../public/js/dataTables.extended.js | 4 +- .../dataTables.extended.serversidepaging.js | 4 +- .../lib/theme-wso2_1.0/js/theme-wso2.js | 2 +- 30 files changed, 1579 insertions(+), 429 deletions(-) create mode 100644 components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Filter.java create mode 100644 components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/OperationMetadata.java create mode 100644 components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Params.java create mode 100644 components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/UIParameter.java create mode 100644 components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/UIParameters.java diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceTypeManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceTypeManagementService.java index 1b59cfe4fd..132f2c7f5a 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceTypeManagementService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceTypeManagementService.java @@ -14,40 +14,41 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. + */ + +/* + * Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved. * - * - * Copyright (c) 2019, Entgra (pvt) Ltd. (http://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 + * 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. + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. */ + package org.wso2.carbon.device.mgt.jaxrs.service.api; -import io.swagger.annotations.SwaggerDefinition; -import io.swagger.annotations.Info; -import io.swagger.annotations.ExtensionProperty; -import io.swagger.annotations.Extension; -import io.swagger.annotations.Tag; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; +import io.swagger.annotations.Extension; +import io.swagger.annotations.ExtensionProperty; +import io.swagger.annotations.Info; import io.swagger.annotations.ResponseHeader; +import io.swagger.annotations.SwaggerDefinition; +import io.swagger.annotations.Tag; import org.wso2.carbon.apimgt.annotations.api.Scope; import org.wso2.carbon.apimgt.annotations.api.Scopes; -import org.wso2.carbon.device.mgt.common.Feature; import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration; import org.wso2.carbon.device.mgt.core.dto.DeviceType; import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceTypeList; @@ -61,9 +62,9 @@ import javax.ws.rs.HeaderParam; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import java.util.List; @SwaggerDefinition( info = @Info( @@ -279,8 +280,18 @@ public interface DeviceTypeManagementService { value = "The device type name, such as ios, android, windows or fire-alarm.", required = true) @PathParam("type") - @Size(max = 45) - String type, + @Size(max = 45) String type, + @ApiParam( + name = "featureType", + value = "Type of the feature, such as operation or policy" + ) + @QueryParam("featureType") + String featureType, + @ApiParam( + name = "hidden", + value = "true for hidden operations and false for non hidden operations" + ) + String hidden, @ApiParam( name = "If-Modified-Since", value = "Checks if the requested variant was modified, since the specified date-time.\n" + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceTypeManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceTypeManagementServiceImpl.java index e9129c4c6e..4f58769ebf 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceTypeManagementServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceTypeManagementServiceImpl.java @@ -14,27 +14,28 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. + */ + +/* + * Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved. * - * - * Copyright (c) 2019, Entgra (pvt) Ltd. (http://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 + * 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. - * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. */ package org.wso2.carbon.device.mgt.jaxrs.service.impl; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.device.mgt.common.DeviceManagementException; @@ -55,6 +56,7 @@ import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.Path; import javax.ws.rs.PathParam; +import javax.ws.rs.QueryParam; import javax.ws.rs.core.Response; import java.util.ArrayList; import java.util.List; @@ -107,27 +109,42 @@ public class DeviceTypeManagementServiceImpl implements DeviceTypeManagementServ @Override @Path("/{type}/features") public Response getFeatures(@PathParam("type") @Size(max = 45) String type, + @QueryParam("featureType") String featureType, + @QueryParam("hidden") String hidden, @HeaderParam("If-Modified-Since") String ifModifiedSince) { - List features = new ArrayList<>(); + List features; DeviceManagementProviderService dms; try { - dms = DeviceMgtAPIUtils.getDeviceManagementService(); - FeatureManager fm; - try { - fm = dms.getFeatureManager(type); - } catch (DeviceTypeNotFoundException e) { - return Response.status(Response.Status.NOT_FOUND).entity( - new ErrorResponse.ErrorResponseBuilder() - .setMessage("No device type found with name '" + type + "'").build()).build(); + if (StringUtils.isEmpty(type)) { + return Response.status(Response.Status.BAD_REQUEST).entity( + new ErrorResponse.ErrorResponseBuilder().setMessage("Type cannot be empty.").build()).build(); } - if (fm != null) { - features = fm.getFeatures(); + dms = DeviceMgtAPIUtils.getDeviceManagementService(); + FeatureManager fm = dms.getFeatureManager(type); + + if (fm == null) { + return Response.status(Response.Status.NOT_FOUND).entity( + new ErrorResponse.ErrorResponseBuilder().setMessage("No feature manager is " + + "registered with the given type '" + type + "'").build()).build(); + } + + if (StringUtils.isEmpty(hidden)) { + features = fm.getFeatures(featureType); + } else { + features = fm.getFeatures(featureType, Boolean.valueOf(hidden)); } } catch (DeviceManagementException e) { - String msg = "Error occurred while retrieving the list of features of '" + type + "' device type"; + String msg = "Error occurred while retrieving the list of [" + type + "] features with params " + + "{featureType: " + featureType + ", hidden: " + hidden + "}"; log.error(msg, e); return Response.serverError().entity( new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build(); + } catch (DeviceTypeNotFoundException e) { + String msg = "No device type found with name '" + type + "'"; + log.error(msg, e); + return Response.status(Response.Status.NOT_FOUND).entity( + new ErrorResponse.ErrorResponseBuilder() + .setMessage(msg).build()).build(); } return Response.status(Response.Status.OK).entity(features).build(); } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceTypeManagementServiceTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceTypeManagementServiceTest.java index fa320b5b5f..f50f8cd812 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceTypeManagementServiceTest.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceTypeManagementServiceTest.java @@ -113,7 +113,7 @@ public class DeviceTypeManagementServiceTest { public void testGetDeviceTypeFeatures() throws Exception { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceManagementService")) .toReturn(this.deviceManagementProviderService); - Response response = this.deviceTypeManagementService.getFeatures(TEST_DEVICE_TYPE, MODIFIED_SINCE); + Response response = this.deviceTypeManagementService.getFeatures(TEST_DEVICE_TYPE, null, "false", MODIFIED_SINCE); Assert.assertNotNull(response, "The response object is null."); Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode(), "The response status should be 200."); @@ -126,8 +126,9 @@ public class DeviceTypeManagementServiceTest { FeatureManager featureManager = Mockito.mock(FeatureManager.class); Mockito.when(this.deviceManagementProviderService.getFeatureManager(Mockito.anyString())).thenReturn (featureManager); - Mockito.when((featureManager).getFeatures()).thenThrow(new DeviceManagementException()); - Response response = this.deviceTypeManagementService.getFeatures(TEST_DEVICE_TYPE, MODIFIED_SINCE); + Mockito.when((featureManager).getFeatures(Mockito.anyString())).thenThrow(new DeviceManagementException()); + Mockito.when((featureManager).getFeatures(Mockito.anyString(), Mockito.anyBoolean())).thenThrow(new DeviceManagementException()); + Response response = this.deviceTypeManagementService.getFeatures(TEST_DEVICE_TYPE, null, "false", MODIFIED_SINCE); Assert.assertNotNull(response, "The response object is null."); Assert.assertEquals(response.getStatus(), Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), "The response status should be 500."); @@ -140,11 +141,10 @@ public class DeviceTypeManagementServiceTest { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceManagementService")) .toReturn(this.deviceManagementProviderService); Mockito.when(this.deviceManagementProviderService.getFeatureManager(Mockito.anyString())).thenReturn(null); - Response response = this.deviceTypeManagementService.getFeatures(TEST_DEVICE_TYPE, MODIFIED_SINCE); + Response response = this.deviceTypeManagementService.getFeatures(TEST_DEVICE_TYPE, null, "false", MODIFIED_SINCE); Assert.assertNotNull(response, "The response object is null."); - Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode(), - "The response status should be 200."); - Assert.assertEquals(response.getEntity().toString(), "[]", "The response should be []."); + Assert.assertEquals(response.getStatus(), Response.Status.NOT_FOUND.getStatusCode(), + "The response status should be 404."); Mockito.reset(deviceManagementProviderService); } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/Feature.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/Feature.java index cea193877e..0947202898 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/Feature.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/Feature.java @@ -15,32 +15,92 @@ * specific language governing permissions and limitations * under the License. */ + +/* + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.common; +import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import java.io.Serializable; import java.util.List; import io.swagger.annotations.*; -@ApiModel(value = "Feature", description = "This class carries all information related to a devices enrollment" + - " status.") +@ApiModel( + value = "Feature", + description = "This class carries all information related to a device feature." +) public class Feature implements Serializable { - @ApiModelProperty(name = "id", value = "Feature Id.", required = true ) + @ApiModelProperty( + name = "id", + value = "Feature Id.", + required = true + ) private int id; - @ApiModelProperty(name = "code", value = "The code of the feature. For example the code to lock a device" + - " is DEVICE_LOCK.", required = true ) + + @ApiModelProperty( + name = "code", + value = "The code of the feature. For example the code to lock a device is DEVICE_LOCK.", + required = true + ) private String code; - @ApiModelProperty(name = "name", value = "A name that describes a feature.", required = true ) + + @ApiModelProperty( + name = "name", + value = "A name that describes a feature.", + required = true + ) private String name; - @ApiModelProperty(name = "description", value = "Provides a description of the features..", required = true ) + + @ApiModelProperty( + name = "description", + value = "Provides a description of the features.", + required = true + ) private String description; - @ApiModelProperty(name = "deviceType", value = "Provide the device type for the respective feature. " + - "Features allow you to perform operations on any device type, " + - "such as android, iOS or windows..", required = true ) + + @ApiModelProperty( + name = "type", + value = "Type of the feature.", + required = true + ) + private String type; + + @ApiModelProperty( + name = "hidden", + value = "If the feature is hidden from the UI." + ) + private boolean hidden; + + @ApiModelProperty( + name = "deviceType", + value = "Provide the device type for the respective feature. Features allow you to perform operations " + + "on any device type, such as android, iOS or windows.", + required = true + ) private String deviceType; - @ApiModelProperty(name = "metadataEntries", value = "Properties related to features.", required = true ) + @ApiModelProperty( + name = "metadataEntries", + value = "Properties related to features.", + required = true + ) private List metadataEntries; @XmlElement @@ -96,9 +156,27 @@ public class Feature implements Serializable { this.description = description; } + @XmlAttribute + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public boolean isHidden() { + return hidden; + } + + public void setHidden(boolean hidden) { + this.hidden = hidden; + } + public static class MetadataEntry implements Serializable { private int id; + private String name; private Object value; public int getId() { @@ -109,6 +187,14 @@ public class Feature implements Serializable { this.id = id; } + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + public Object getValue() { return value; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/FeatureManager.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/FeatureManager.java index 884311e935..e86cdb77e4 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/FeatureManager.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/FeatureManager.java @@ -14,7 +14,24 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. + */ + +/* + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.common; @@ -30,6 +47,10 @@ public interface FeatureManager { List getFeatures() throws DeviceManagementException; + List getFeatures(String type) throws DeviceManagementException; + + List getFeatures(String type, boolean isHidden) throws DeviceManagementException; + boolean removeFeature(String name) throws DeviceManagementException; boolean addSupportedFeaturesToDB() throws DeviceManagementException; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Feature.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Feature.java index 800c4ff71f..b564845194 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Feature.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Feature.java @@ -14,8 +14,26 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. - * */ + +/* + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.extensions.device.type.template.config; import javax.xml.bind.annotation.XmlAccessType; @@ -33,41 +51,46 @@ import java.util.List; *

The following schema fragment specifies the expected content contained within this class. * *

- * <complexType name="Feature">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="Name" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="Description" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="Operation" type="{}Operation"/>
- *       </sequence>
- *       <attribute name="code" type="{http://www.w3.org/2001/XMLSchema}string" />
- *     </restriction>
- *   </complexContent>
- * </complexType>
+ * 
+ *   
+ *     
+ *       
+ *       
+ *       
+ *     
+ *     
+ *     
+ *   
+ * 
  * 
- * - * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Feature", propOrder = { "name", "description", - "operation", "metaData" + "operation", + "metaData" }) public class Feature { @XmlElement(name = "Name", required = true) protected String name; + @XmlElement(name = "Description", required = true) protected String description; - @XmlElement(name = "Operation", required = true) + + @XmlElement(name = "Operation") protected Operation operation; + + @XmlAttribute(name = "type", required = true) + protected String type; + @XmlAttribute(name = "code") protected String code; + @XmlElementWrapper(name = "MetaData") @XmlElement(name = "Property", required = true) - protected List metaData; + private List metaData; /** * Gets the value of the name property. @@ -172,4 +195,12 @@ public class Feature { public void setMetaData(List metaData) { this.metaData = metaData; } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Features.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Features.java index 1904cac3ed..bd2fec5cae 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Features.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Features.java @@ -32,15 +32,15 @@ import java.util.List; *

The following schema fragment specifies the expected content contained within this class. * *

- * <complexType name="Features">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="Feature" type="{}Feature"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
+ * 
+ *   
+ *     
+ *       
+ *         
+ *       
+ *     
+ *   
+ * 
  * 
* * diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Filter.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Filter.java new file mode 100644 index 0000000000..5262a1ae34 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Filter.java @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.extensions.device.type.template.config; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; + +/** + * Java class for filter complex type. + * + * The following schema fragment specifies the expected content contained within this class. + * + *
+ * 
+ *   
+ *     
+ *       
+ *       
+ *       
+ *     
+ *   
+ * 
+ * 
+ */ +@XmlAccessorType(XmlAccessType.FIELD) +public class Filter { + @XmlElement(name = "property", required = true) + private String property; + + @XmlElement(name = "value", required = true) + private String value; + + @XmlElement(name = "description", required = true) + private String description; + + public String getProperty() { + return property; + } + + public void setProperty(String property) { + this.property = property; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/FormParameters.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/FormParameters.java index 3cacabb3e4..d0bd140672 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/FormParameters.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/FormParameters.java @@ -14,7 +14,24 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. + */ + +/* + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.extensions.device.type.template.config; @@ -27,26 +44,24 @@ import java.util.List; /** - *

Java class for FormParameters complex type. + *

Java class for fromParams complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

- * <complexType name="FormParameters">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="Parameter" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
+ * 
+ *   
+ *     
+ *       
+ *         
+ *       
+ *     
+ *   
+ * 
  * 
- * - * */ @XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "FormParameters", propOrder = { +@XmlType(name = "formParams", propOrder = { "parameter" }) public class FormParameters { @@ -56,7 +71,7 @@ public class FormParameters { public List getParameter() { if (parameter == null) { - parameter = new ArrayList(); + parameter = new ArrayList<>(); } return this.parameter; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Operation.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Operation.java index 06fe5cf1be..74366da00c 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Operation.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Operation.java @@ -14,8 +14,26 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. - * */ + +/* + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.extensions.device.type.template.config; import javax.xml.bind.annotation.XmlAccessType; @@ -26,164 +44,71 @@ import javax.xml.bind.annotation.XmlType; /** - *

Java class for Operation complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * + * Java class for Operation complex type. + * + * The following schema fragment specifies the expected content contained within this class. + * *

- * <complexType name="Operation">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="QueryParameters" type="{}QueryParameters"/>
- *         <element name="FormParameters" type="{}FormParameters"/>
- *       </sequence>
- *       <attribute name="context" type="{http://www.w3.org/2001/XMLSchema}string" />
- *       <attribute name="method" type="{http://www.w3.org/2001/XMLSchema}string" />
- *       <attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
- *     </restriction>
- *   </complexContent>
- * </complexType>
+ *   
+ *     
+ *       
+ *         
+ *         
+ *       
+ *       
+ *       
+ *     
+ *   
  * 
- * - * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Operation", propOrder = { - "queryParameters", - "formParameters" + "params", + "metadata" }) public class Operation { - @XmlElement(name = "QueryParameters") - protected QueryParameters queryParameters; - @XmlElement(name = "FormParameters") - protected FormParameters formParameters; - @XmlAttribute(name = "context") - protected String context; - @XmlAttribute(name = "method") - protected String method; - @XmlAttribute(name = "type") - protected String type; + @XmlElement(name = "params") + private Params params; - /** - * Gets the value of the Content Type property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getType() { - return type; + @XmlElement(name = "metadata", required = true) + private OperationMetadata metadata; + + @XmlAttribute(name = "hidden", required = true) + private boolean hidden; + + @XmlAttribute(name = "icon") + private String icon; + + public Params getParams() { + return params; } - /** - * Sets the value of the Content Type property. - * - * @param type - * allowed object is - * {@link String } - * - */ - public void setType(String type) { - this.type = type; + public void setParams(Params params) { + this.params = params; } - /** - * Gets the value of the queryParameters property. - * - * @return - * possible object is - * {@link QueryParameters } - * - */ - public QueryParameters getQueryParameters() { - return queryParameters; + public OperationMetadata getMetadata() { + return metadata; } - /** - * Sets the value of the queryParameters property. - * - * @param value - * allowed object is - * {@link QueryParameters } - * - */ - public void setQueryParameters(QueryParameters value) { - this.queryParameters = value; + public void setMetadata(OperationMetadata metadata) { + this.metadata = metadata; } - /** - * Gets the value of the formParameters property. - * - * @return - * possible object is - * {@link FormParameters } - * - */ - public FormParameters getFormParameters() { - return formParameters; + public String getIcon() { + return icon; } - /** - * Sets the value of the formParameters property. - * - * @param value - * allowed object is - * {@link FormParameters } - * - */ - public void setFormParameters(FormParameters value) { - this.formParameters = value; + public void setIcon(String icon) { + this.icon = icon; } - /** - * Gets the value of the context property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getContext() { - return context; + public boolean isHidden() { + return hidden; } - /** - * Sets the value of the context property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setContext(String value) { - this.context = value; + public void setHidden(boolean hidden) { + this.hidden = hidden; } - - /** - * Gets the value of the method property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMethod() { - return method; - } - - /** - * Sets the value of the method property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMethod(String value) { - this.method = value; - } - } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/OperationMetadata.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/OperationMetadata.java new file mode 100644 index 0000000000..81a4139d8e --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/OperationMetadata.java @@ -0,0 +1,120 @@ +/* + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.extensions.device.type.template.config; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElementWrapper; +import javax.xml.bind.annotation.XmlType; +import java.util.List; + +/** + * Java class for metadata complex type. + * + * The following schema fragment specifies the expected content contained within this class. + * + *
+ * 
+ *   
+ *     
+ *       
+ *       
+ *       
+ *       
+ *       
+ *         
+ *           
+ *             
+ *             
+ *             
+ *           
+ *         
+ *       
+ *     
+ *   
+ * 
+ * 
+ */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "metadata", propOrder = { + "uri", + "method", + "contentType", + "permission", + "filterList" +}) +public class OperationMetadata { + + @XmlElement(name = "uri", required = true) + private String uri; + + @XmlElement(name = "method", required = true) + private String method; + + @XmlElement(name = "contentType") + private String contentType; + + @XmlElement(name = "permission") + private String permission; + + @XmlElementWrapper(name = "filters") + @XmlElement(name = "filter") + private List filterList; + + public String getUri() { + return uri; + } + + public void setUri(String uri) { + this.uri = uri; + } + + public String getMethod() { + return method; + } + + public void setMethod(String method) { + this.method = method; + } + + public String getContentType() { + return contentType; + } + + public void setContentType(String contentType) { + this.contentType = contentType; + } + + public String getPermission() { + return permission; + } + + public void setPermission(String permission) { + this.permission = permission; + } + + public List getFilterList() { + return filterList; + } + + public void setFilters(List filterList) { + this.filterList = filterList; + } +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Params.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Params.java new file mode 100644 index 0000000000..ad9f5b97bc --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/Params.java @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.extensions.device.type.template.config; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + +/** + * Java class for params complex type. + * + * The following schema fragment specifies the expected content contained within this class. + * + *
+ *  
+ *    
+ *      
+ *        
+ *        
+ *        
+ *      
+ *    
+ * 
+ */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "params") +public class Params { + + @XmlElement(name = "queryParams") + private QueryParameters queryParameters; + + @XmlElement(name = "formParams") + private FormParameters formParameters; + + @XmlElement(name = "uiParams") + private UIParameters uiParameters; + + public QueryParameters getQueryParameters() { + return queryParameters; + } + + public void setQueryParameters(QueryParameters queryParameters) { + this.queryParameters = queryParameters; + } + + public FormParameters getFormParameters() { + return formParameters; + } + + public void setFormParameters(FormParameters formParameters) { + this.formParameters = formParameters; + } + + public UIParameters getUiParameters() { + return uiParameters; + } + + public void setUiParameters(UIParameters uiParameters) { + this.uiParameters = uiParameters; + } +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/QueryParameters.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/QueryParameters.java index e79826134e..69c8fd15af 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/QueryParameters.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/QueryParameters.java @@ -14,8 +14,26 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. - * */ + +/* + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.extensions.device.type.template.config; import javax.xml.bind.annotation.XmlAccessType; @@ -27,26 +45,24 @@ import java.util.List; /** - *

Java class for QueryParameters complex type. + * Java class for queryParams complex type. * - *

The following schema fragment specifies the expected content contained within this class. + * The following schema fragment specifies the expected content contained within this class. * *

- * <complexType name="QueryParameters">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="Parameter" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
+ * 
+ *   
+ *     
+ *       
+ *         
+ *       
+ *     
+ *   
+ * 
  * 
- * - * */ @XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "QueryParameters", propOrder = { +@XmlType(name = "queryParams", propOrder = { "parameter" }) public class QueryParameters { @@ -56,7 +72,7 @@ public class QueryParameters { public List getParameter() { if (parameter == null) { - parameter = new ArrayList(); + parameter = new ArrayList<>(); } return this.parameter; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/UIParameter.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/UIParameter.java new file mode 100644 index 0000000000..91db1932b3 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/UIParameter.java @@ -0,0 +1,134 @@ +/* + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.extensions.device.type.template.config; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElementWrapper; +import java.util.List; + +/** + * Java class for uiParams complex type. + * + * The following schema fragment specifies the expected content contained within this class. + * + *
+ * 
+ *   
+ *     
+ *       
+ *       
+ *       
+ *       
+ *         
+ *           
+ *             
+ *           
+ *         
+ *       
+ *     
+ *     
+ *   
+ * 
+ * 
+ * + */ +@XmlAccessorType(XmlAccessType.FIELD) +public class UIParameter { + + @XmlElement(name = "id", required = true) + protected String id; + + @XmlAttribute(name = "optional", required = true) + private boolean optional; + + @XmlElement(name = "type", required = true) + protected String type; + + @XmlElement(name = "name") + protected String name; + + @XmlElement(name = "label") + private String label; + + @XmlElement(name = "helper") + private String helper; + + @XmlElementWrapper(name = "values") + @XmlElement(name = "value") + protected List value; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getHelper() { + return helper; + } + + public void setHelper(String helper) { + this.helper = helper; + } + + public List getValue() { + return value; + } + + public void setValue(List value) { + this.value = value; + } + + public boolean isOptional() { + return optional; + } + + public void setOptional(boolean optional) { + this.optional = optional; + } +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/UIParameters.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/UIParameters.java new file mode 100644 index 0000000000..35ad1689e7 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/UIParameters.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.extensions.device.type.template.config; + +import javax.xml.bind.annotation.XmlElement; +import java.util.List; + +/** + * Java class for uiParams complex type. + * + * The following schema fragment specifies the expected content contained within this class. + * + *
+ * 
+ *   
+ *     
+ *       
+ *     
+ *   
+ * 
+ * 
+ * + */ +public class UIParameters { + + @XmlElement(name = "uiParam") + private List uiParams; + + public List getUiParameterList() { + return this.uiParams; + } +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/feature/ConfigurationBasedFeatureManager.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/feature/ConfigurationBasedFeatureManager.java index 091123ab7d..a213773eb9 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/feature/ConfigurationBasedFeatureManager.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/feature/ConfigurationBasedFeatureManager.java @@ -16,12 +16,35 @@ * under the License. * */ + +/* + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.extensions.device.type.template.feature; +import org.apache.commons.lang.StringUtils; import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.Feature; import org.wso2.carbon.device.mgt.common.FeatureManager; import org.wso2.carbon.device.mgt.extensions.device.type.template.config.Operation; +import org.wso2.carbon.device.mgt.extensions.device.type.template.config.OperationMetadata; +import org.wso2.carbon.device.mgt.extensions.device.type.template.config.Params; +import org.wso2.carbon.device.mgt.extensions.device.type.template.config.UIParameter; import java.util.ArrayList; import java.util.HashMap; @@ -37,10 +60,15 @@ public class ConfigurationBasedFeatureManager implements FeatureManager { private List features = new ArrayList<>(); private static final String METHOD = "method"; private static final String URI = "uri"; + private static final String OPERATION_META = "operationMeta"; private static final String CONTENT_TYPE = "contentType"; + private static final String PERMISSION = "permission"; + private static final String ICON = "icon"; + private static final String FILTERS = "filters"; private static final String PATH_PARAMS = "pathParams"; private static final String QUERY_PARAMS = "queryParams"; private static final String FORM_PARAMS = "formParams"; + private static final String UI_PARAMS = "uiParams"; private static final Pattern PATH_PARAM_REGEX = Pattern.compile("\\{(.*?)\\}"); public ConfigurationBasedFeatureManager( @@ -50,6 +78,7 @@ public class ConfigurationBasedFeatureManager implements FeatureManager { deviceFeature.setCode(feature.getCode()); deviceFeature.setName(feature.getName()); deviceFeature.setDescription(feature.getDescription()); + deviceFeature.setType(feature.getType()); Operation operation = feature.getOperation(); List metadataEntries = null; if (feature.getMetaData() != null) { @@ -64,31 +93,53 @@ public class ConfigurationBasedFeatureManager implements FeatureManager { } } if (operation != null) { - Map apiParams = new HashMap<>(); - apiParams.put(METHOD, operation.getMethod().toUpperCase()); - apiParams.put(URI, operation.getContext()); - apiParams.put(CONTENT_TYPE, operation.getType()); + deviceFeature.setHidden(operation.isHidden()); + Map operationMeta = new HashMap<>(); + OperationMetadata metadata = operation.getMetadata(); + List pathParams = new ArrayList<>(); - List queryParams = new ArrayList<>(); - List formParams = new ArrayList<>(); - setPathParams(operation.getContext(), pathParams); - apiParams.put(PATH_PARAMS, pathParams); - if (operation.getQueryParameters() != null) { - queryParams = operation.getQueryParameters().getParameter(); + + if (metadata != null) { + operationMeta.put(METHOD, metadata.getMethod().toUpperCase()); + operationMeta.put(URI, metadata.getUri()); + if (StringUtils.isNotEmpty(metadata.getContentType())) { + operationMeta.put(CONTENT_TYPE, metadata.getContentType()); + } + if (StringUtils.isNotEmpty(metadata.getPermission())) { + operationMeta.put(PERMISSION, metadata.getPermission()); + } + if (metadata.getFilterList() != null && metadata.getFilterList().size() > 0) { + operationMeta.put(FILTERS, metadata.getFilterList()); + } + operationMeta.put(ICON, operation.getIcon()); + setPathParams(metadata.getUri(), pathParams); } - apiParams.put(QUERY_PARAMS, queryParams); - if (operation.getFormParameters() != null) { - formParams = operation.getFormParameters().getParameter(); + operationMeta.put(PATH_PARAMS, pathParams); + + Params params = operation.getParams(); + if (params != null) { + List queryParams = params.getQueryParameters() != null ? + params.getQueryParameters().getParameter() : new ArrayList<>(); + List formParams = params.getFormParameters() != null ? + params.getFormParameters().getParameter() : new ArrayList<>(); + List uiParams = params.getUiParameters() != null ? + params.getUiParameters().getUiParameterList() : new ArrayList<>(); + operationMeta.put(QUERY_PARAMS, queryParams); + operationMeta.put(UI_PARAMS, uiParams); + operationMeta.put(FORM_PARAMS, formParams); } - apiParams.put(FORM_PARAMS, formParams); + if (metadataEntries == null) { metadataEntries = new ArrayList<>(); } Feature.MetadataEntry metadataEntry = new Feature.MetadataEntry(); - metadataEntry.setId(-1); - metadataEntry.setValue(apiParams); + metadataEntry.setId(0); + metadataEntry.setName(OPERATION_META); + metadataEntry.setValue(operationMeta); metadataEntries.add(metadataEntry); deviceFeature.setMetadataEntries(metadataEntries); + } else { + deviceFeature.setHidden(true); } this.features.add(deviceFeature); } @@ -120,6 +171,49 @@ public class ConfigurationBasedFeatureManager implements FeatureManager { return features; } + @Override + public List getFeatures(String type) throws DeviceManagementException { + if (StringUtils.isEmpty(type)) { + return this.getFeatures(); + } + + if (features == null) { + return null; + } else { + List filteredFeatures = new ArrayList<>(); + for (Feature feature : this.getFeatures()) { + if (type.equals(feature.getType())) { + filteredFeatures.add(feature); + } + } + return filteredFeatures; + } + } + + @Override + public List getFeatures(String type, boolean isHidden) throws DeviceManagementException { + if (features == null) { + return null; + } else { + List filteredFeatures = new ArrayList<>(); + if (StringUtils.isEmpty(type)) { + for (Feature feature : this.getFeatures()) { + if (isHidden == feature.isHidden()) { + filteredFeatures.add(feature); + } + } + return filteredFeatures; + } else { + for (Feature feature : this.getFeatures()) { + if (isHidden == feature.isHidden() && type.equals(feature.getType())) { + filteredFeatures.add(feature); + } + } + return filteredFeatures; + } + } + } + @Override public boolean removeFeature(String name) throws DeviceManagementException { return false; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/android.xml b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/android.xml index 0320698ff4..3a9ce13404 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/android.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/android.xml @@ -92,256 +92,474 @@ - + Ring Ring the device - + - - test - - + Device Lock Lock the device - + - + Location Request coordinates of device location - + - + Clear Password - Clear current password - + Clear current password (This functionality is only working with profile owners from Android 7.0 API 24 onwards.) + - + Reboot Reboot the device - + - + Upgrade Firmware Upgrade Firmware - + - + Mute Enable mute in the device - + - + Message Send message - + - + Change Lock-code - Change current lock code - + Change current lock code (This functionality is only working with profile owners from Android 7.0 API 24 onwards.) + - + + File Transfer + Transfer file to the device + + + Enterprise Wipe Remove enterprise applications - + - + Wipe Data Factory reset the device - + - + Wifi Setting up wifi configuration - + + Global Proxy + Setting up a network-independent global HTTP proxy on a device. + + Camera Enable or disable camera - + Email Configure email settings - + Device info Request device information - + Application List Request list of current installed applications - + Install App Install App - + Uninstall App Uninstall App - + Blacklist app Blacklist applications - + Encrypt Storage Encrypt storage - + Password Policy Set passcode policy - + Configure VPN Configure VPN settings - + Disallow user to change volume Allow or disallow user to change volume" - + Disallow bluetooth configuration Allow or disallow bluetooth configuration - + Disallow user to change cell broadcast configurations Allow or disallow user to change cell broadcast configurations - + Disallow user to change user credentials Allow or disallow user to change user credentials - + Disallow user to change mobile networks configurations Allow or disallow user to change mobile networks configurations - + Disallow user to change tethering configurations Allow or disallow user to change tethering configurations - + Disallow user to change VPN configurations Allow or disallow user to change VPN configurations - + Disallow user to change WIFI configurations Allow or disallow user to change WIFI configurations - + Disallow user to change app control Allow or disallow user to change app control - + Disallow window creation Allow or disallow window creation - + Disallow user to change app control configurations Allow or disallow user to change app control configurations - + Disallow cross profile copy paste Allow or disallow cross profile copy paste - + Disallow debugging features Allow or disallow debugging features - + Disallow factory reset Allow or disallow factory reset - + Disallow add user Allow or disallow add user - + Disallow install apps Allow or disallow install apps - + Disallow install unknown sources Allow or disallow install unknown sources - + Disallow modify account Allow or disallow modify account - + Disallow mount physical media Allow or disallow mount physical media - + Disallow network reset Allow or disallow network reset - + Disallow outgoing beam Allow or disallow outgoing beam - + Disallow outgoing calls Allow or disallow outgoing calls - + Disallow remove users Allow or disallow remove users - + Disallow safe boot Allow or disallow safe boot - + Disallow share location Allow or disallow share location - + Disallow sms Allow or disallow sms - + Disallow uninstall app Allow or disallow uninstall app - + Disallow unmute mic Allow or disallow unmute mic - + Disallow usb file transfer Allow or disallow usb file transfer - + Disallow parent profile app linking Allow or disallow parent profile app linking - + Disallow ensure verify apps Allow or disallow ensure verify apps - + Disallow auto timing Allow or disallow auto timing - + Remove device owner Remove device owner - + Fetch device logcat Fetch device logcat - + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/android_sense.xml b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/android_sense.xml index fbc58a1115..a5a15b5d1c 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/android_sense.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/android_sense.xml @@ -19,15 +19,15 @@ --> - + Add Keywords Send keywords to the device - + Add Threshold Send Threshold to the device - + Remove words Remove Threshold from the device diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/arduino.xml b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/arduino.xml index 5b1ed2d468..ad72eadb6c 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/arduino.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/arduino.xml @@ -19,13 +19,19 @@ --> - + Control Bulb Control Bulb on Arduino Uno - - - state - + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/defective-devicetype2.xml b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/defective-devicetype2.xml index 0f1baff1c3..258663057f 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/defective-devicetype2.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/defective-devicetype2.xml @@ -21,13 +21,19 @@ - + Control Bulb Control Bulb on Arduino Uno - - - state - + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/defective-devicetype3.xml b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/defective-devicetype3.xml index 063ac8bd53..56f8f2bb56 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/defective-devicetype3.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/defective-devicetype3.xml @@ -27,13 +27,19 @@ - + Control Bulb Control Bulb on Arduino Uno - - - state - + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/raspberrypi.xml b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/raspberrypi.xml index 5115fafd8e..49c3a49539 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/raspberrypi.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/raspberrypi.xml @@ -19,13 +19,19 @@ --> - + Control Bulb Control Bulb on Raspberrypi - - - state - + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/sample.xml b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/sample.xml index 96e6fecc46..2943982aeb 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/sample.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/device-types/sample.xml @@ -31,16 +31,23 @@ - + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/operation.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/operation.js index 1d18e05fe9..be04dda8f8 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/operation.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/business-controllers/operation.js @@ -16,6 +16,24 @@ * under the License. */ +/* + * Copyright (c) 2019, 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. + */ + var operationModule = function () { var log = new Log("/app/modules/business-controllers/operation.js"); var utility = require('/app/modules/utility.js').utility; @@ -38,8 +56,9 @@ var operationModule = function () { } privateMethods.getOperationsFromFeatures = function (deviceType, operationType) { - var url = devicemgtProps["httpsURL"] + devicemgtProps["backendRestEndpoints"]["deviceMgt"] + "/device-types/" + deviceType + "/features"; - var featuresList = serviceInvokers.XMLHttp.get(url, function (responsePayload) { + var url = devicemgtProps["httpsURL"] + devicemgtProps["backendRestEndpoints"]["deviceMgt"] + "/device-types/" + + deviceType + "/features?featureType=" + operationType + "&hidden=false"; + return serviceInvokers.XMLHttp.get(url, function (responsePayload) { var features = JSON.parse(responsePayload.responseText); var featureList = []; var feature; @@ -51,20 +70,40 @@ var operationModule = function () { feature["contentType"] = features[i].contentType; feature["deviceType"] = deviceType; feature["params"] = []; - var featuresEntry = utility.getDeviceTypeConfig(deviceType)["deviceType"]["features"]; - if (featuresEntry) { - var featureEntry = featuresEntry[features[i].code]; - if (featureEntry) { - var permissionEntry = featureEntry["permission"]; - if (permissionEntry) { - feature["permission"] = permissionEntry - } - } - } var metaData = features[i].metadataEntries; if (metaData) { for (var j = 0; j < metaData.length; j++) { - feature["params"].push(metaData[j].value); + if (metaData[j].name === "operationMeta") { + var operationMeta = metaData[j].value; + var params = {}; + params["method"] = operationMeta.method; + params["pathParams"] = operationMeta.pathParams; + params["queryParams"] = operationMeta.queryParams; + params["formParams"] = operationMeta.formParams ? operationMeta.formParams : []; + params["uri"] = operationMeta.uri; + params["contentType"] = operationMeta.contentType; + feature["params"].push(params); + feature["permission"] = operationMeta.permission; + if (operationMeta.icon) { + //Check if icon is a path or font + if (operationMeta.icon.indexOf("path:") === 0) { + feature["icon"] = operationMeta.icon.replace("path:", ""); + } else { + feature["iconFont"] = operationMeta.icon; + } + } + if (operationMeta.uiParams && operationMeta.uiParams.length > 0) { + feature["uiParams"] = operationMeta.uiParams; + } + if (operationMeta.filters) { + feature["filters"] = operationMeta.filters; + } + if (operationMeta.ownershipDescription) { + feature["ownershipDescription"] = operationMeta.ownershipDescription; + } + continue; + } + feature["metadata"].push(metaData[j].value); } featureList.push(feature); } @@ -76,39 +115,27 @@ var operationModule = function () { return response; } ); - return featuresList; }; publicMethods.getControlOperations = function (device) { var deviceType = device.type; var operations = privateMethods.getOperationsFromFeatures(deviceType, "operation"); - var features = utility.getDeviceTypeConfig(deviceType).deviceType.features; for (var op in operations) { - var iconIdentifier = operations[op].operation; - if (features && features[iconIdentifier]) { - var icon = features[iconIdentifier].icon; - //TODO: need improve this check to get feature availability from agent side - var filter = features[iconIdentifier].filter; - if (device && filter && filter.property && device[filter.property] !== filter.value) { - operations[op]["isDisabled"] = true; - operations[op]["disabledText"] = filter.text; - } else { - operations[op]["isDisabled"] = false; + if (operations.hasOwnProperty(op)) { + operations[op]["isDisabled"] = false; + if (device && operations[op].filters && operations[op].filters.length > 0) { + var filters = operations[op].filters; + for (var filter in filters) { + if (filters.hasOwnProperty(filter)) { + if (device[filters[filter].property] !== filters[filter].value) { + operations[op]["isDisabled"] = true; + operations[op]["disabledText"] = operations[op]["disabledText"] ? + operations[op]["disabledText"] + ", " + filters[filter].description : + filters[filter].description; + } + } + } } - if (icon) { - operations[op]["iconFont"] = icon; - } else if (iconPath) { - var iconPath = utility.getOperationIcon(deviceType, iconIdentifier); - operations[op]["icon"] = iconPath; - } - var formParams = features[iconIdentifier].formParams; - if (formParams) { - operations[op]["uiParams"] = formParams; - } - // var icon = utility.getOperationIcon(deviceType, iconIdentifier); - // if (icon) { - // log.error("icon found : " + icon ); - // operations[op]["icon"] = icon; } } return operations; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.hbs b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.hbs index 0ff41a245b..cb067c464c 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.hbs +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.hbs @@ -15,6 +15,24 @@ specific language governing permissions and limitations under the License. }} + +{{! + Copyright (c) 2019, 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. +}} {{unit "cdmf.unit.ui.title" pageTitle="Device Management"}} {{unit "cdmf.unit.data-tables-extended"}} @@ -181,7 +199,7 @@ + + +
+ + @@ -508,7 +544,6 @@ -
- +
+ +
+
+ +
@@ -588,7 +655,7 @@ {{#zone "bottomJs"}} + data-portal-url="{{portalUrl}}" data-user-domain="{{userDomain}}" data-api-context="{{apiContext}}" type="text/x-handlebars-template"> {{js "js/listing.js"}} {{/zone}} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.js index a04b0ab8ac..8976f9f185 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/devices.js @@ -96,9 +96,11 @@ function onRequest(context) { var mdmProps = require("/app/modules/conf-reader/main.js")["conf"]; var serverUrl = mdmProps["httpsURL"]; var portalUrl = mdmProps["portalURL"]; + var backendRestEndpoints = mdmProps["backendRestEndpoints"]; var userDomain = context.user.domain; viewModel.serverUrl = serverUrl; viewModel.portalUrl = portalUrl; viewModel.userDomain = userDomain; + viewModel.apiContext = backendRestEndpoints["deviceMgt"]; return viewModel; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/public/js/listing.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/public/js/listing.js index c80e877b68..fbba497e09 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/public/js/listing.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.devices/public/js/listing.js @@ -16,6 +16,24 @@ * under the License. */ +/* + * Copyright (c) 2019, 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. + */ + /** * Following function would execute * when a user clicks on the list item @@ -952,6 +970,121 @@ function attachDeviceEvents() { hidePopup(); }); }); + + /** + * Following click function would execute when a user clicks on "Add Operation" link + * on Device Management page in device mgt Console. + */ + $('a.add-operation-link').click(function () { + var operationsRow = $("#device-type-operations-bar"); + if (!operationsRow.hasClass("hidden")) { + operationsRow.addClass("hidden"); + $("#device-type-operations").html(""); + return; + } + var deviceIdentifiers = getSelectedDevices(); + if (deviceIdentifiers.length === 0) { + $(modalPopupContent).html($('#no-device-selected').html()); + $("a#no-device-selected-link").click(function () { + hidePopup(); + }); + showPopup(); + return; + } + + var selectedDeviceType = deviceIdentifiers[0].type; + var deviceList = ""; + var count = 1; + deviceIdentifiers.forEach(function (deviceIdentifier) { + if (selectedDeviceType !== deviceIdentifier.type) { + ++count; + } + deviceList = !deviceList ? deviceIdentifier.id : deviceList + "," + deviceIdentifier.id; + }); + + // If multiple devices of multiple device types selected + if (count > 1) { + $(modalPopupContent).html($('#multiple-device-types-selected').html()); + $("a#multiple-device-types-selected-link").click(function () { + hidePopup(); + }); + showPopup(); + return; + } + var apiContext = $("#device-listing").data("api-context"); + var serviceURL = apiContext + "/device-types/" + selectedDeviceType + "/features?featureType=operation" + + "&hidden=false"; + invokerUtil.get(serviceURL, function (data) { + showOperationBar(JSON.parse(data), selectedDeviceType, deviceList); + }); + }); +} + +function showOperationBar(features, deviceType, deviceList) { + var featureList = []; + var feature; + for (var i = 0; i < features.length; i++) { + feature = {}; + feature.operation = features[i].code; + feature.name = features[i].name; + feature.description = features[i].description; + feature.deviceType = deviceType; + feature.params = []; + var metaData = features[i].metadataEntries; + if (metaData) { + for (var j = 0; j < metaData.length; j++) { + if (metaData[j].name === "operationMeta") { + var operationMeta = metaData[j].value; + var params = {}; + params.method = operationMeta.method; + params.pathParams = operationMeta.pathParams; + params.queryParams = operationMeta.queryParams; + params.formParams = operationMeta.formParams ? operationMeta.formParams : []; + params.uri = operationMeta.uri; + params.contentType = operationMeta.contentType; + feature.params.push(params); + feature.permission = operationMeta.permission; + if (operationMeta.icon) { + if (operationMeta.icon.indexOf("path:") === 0) { + feature.icon = operationMeta.icon.replace("path:", ""); + } else { + feature.iconFont = operationMeta.icon; + } + } + if (operationMeta.uiParams && operationMeta.uiParams.length > 0) { + feature.uiParams = operationMeta.uiParams; + } + continue; + } + feature.metadata.push(metaData[j].value); + } + featureList.push(feature); + } + } + + if (featureList.length > 0) { + var baseUnitPath = context + "/public/cdmf.unit.device.type." + deviceType + ".operation-bar"; + var operationBarScriptSrc = baseUnitPath + "/js/operation-bar.js"; + var operationBarTemplateSrc = baseUnitPath + "/templates/operation-bar.hbs"; + var operationBarCacheKey = deviceType + "-operation-bar"; + + $.template(operationBarCacheKey, operationBarTemplateSrc, function (template) { + var content = template({"controlOperations": featureList, "devices" : deviceList}); + $("#device-type-operations").html(content); + var operationRow = $("#device-type-operations-bar"); + var script = document.createElement("script"); + script.type = "text/javascript"; + script.src = operationBarScriptSrc; + operationRow.prepend(script); + operationRow.removeClass("hidden"); + }); + } else { + $(modalPopupContent).html($('#no-features-available').html()); + $("a#no-features-available-selected-link").click(function () { + hidePopup(); + }); + showPopup(); + } } function removeDevices(deviceIdentifiers) { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.js index e39e54a930..4d4f7499ec 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.js @@ -291,7 +291,7 @@ $.fn.datatables_extended = function (settings) { thisTable = $(this).closest('.dataTables_wrapper').find('.dataTable').dataTable(); if ($(button).html() == 'Select All') { $(button).html('Deselect All'); - $('.bulk-action-row').removeClass('hidden'); + $('.bulk-action-row:not(.sub-action)').removeClass('hidden'); thisTable.api().rows().every(function () { $(this.node()).addClass(rowSelectedClass); }); @@ -312,7 +312,7 @@ $.fn.datatables_extended = function (settings) { var rowSelectedClass = 'DTTT_selected selected'; $(this).toggleClass(rowSelectedClass); if ($('.table-selectable .DTTT_selected').length > 0) { - $('.bulk-action-row').removeClass('hidden'); + $('.bulk-action-row:not(.sub-action)').removeClass('hidden'); } else { $('.bulk-action-row').addClass('hidden'); } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.serversidepaging.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.serversidepaging.js index 4eb499f9f5..aff3ea3942 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.serversidepaging.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.data-tables-extended/public/js/dataTables.extended.serversidepaging.js @@ -356,7 +356,7 @@ $.fn.datatables_extended_serverside_paging = function (settings, url, dataFilter if (!$(button).hasClass('disabled')) { if ($(button).html() == 'Select All') { $(button).html('Deselect All'); - $('.bulk-action-row').removeClass('hidden'); + $('.bulk-action-row:not(.sub-action)').removeClass('hidden'); thisTable.api().rows().every(function () { $(this.node()).addClass(rowSelectedClass); }); @@ -378,7 +378,7 @@ $.fn.datatables_extended_serverside_paging = function (settings, url, dataFilter var rowSelectedClass = 'DTTT_selected selected'; $(this).toggleClass(rowSelectedClass); if ($('.table-selectable .DTTT_selected').length > 0) { - $('.bulk-action-row').removeClass('hidden'); + $('.bulk-action-row:not(.sub-action)').removeClass('hidden'); } else { $('.bulk-action-row').addClass('hidden'); } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/theme-wso2_1.0/js/theme-wso2.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/theme-wso2_1.0/js/theme-wso2.js index aca2ccd3d0..325948e9dc 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/theme-wso2_1.0/js/theme-wso2.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/uuf-template-app/app/units/uuf.unit.theme/public/lib/theme-wso2_1.0/js/theme-wso2.js @@ -385,7 +385,7 @@ var responsiveTextRatio = 0.2, $('body').on('click', '[data-type=selectable]', function(){ $(this).toggleClass(ROW_SELECTED_CLASS); if ($('.table-selectable .DTTT_selected').length > 0) { - $('.bulk-action-row').removeClass('hidden'); + $('.bulk-action-row:not(.sub-action)').removeClass('hidden'); } else { $('.bulk-action-row').addClass('hidden'); } From 84df5dd4bf1e031ff4766e670fd7676a244f8708 Mon Sep 17 00:00:00 2001 From: Entgra Builder Date: Fri, 31 May 2019 14:13:39 +0000 Subject: [PATCH 09/28] [maven-release-plugin] prepare release v3.2.5 --- .../org.wso2.carbon.apimgt.annotations/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.application.extension/pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.handlers/pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.integration.client/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.webapp.publisher/pom.xml | 4 ++-- components/apimgt-extensions/pom.xml | 4 ++-- .../org.wso2.carbon.certificate.mgt.api/pom.xml | 2 +- .../org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml | 2 +- .../pom.xml | 2 +- .../org.wso2.carbon.certificate.mgt.core/pom.xml | 4 ++-- .../org.wso2.carbon.certificate.mgt.v09.api/pom.xml | 2 +- components/certificate-mgt/pom.xml | 4 ++-- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- components/device-mgt-extensions/pom.xml | 2 +- .../pom.xml | 2 +- .../org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.api/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.common/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.core/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.extensions/pom.xml | 2 +- components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.url.printer/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml | 2 +- components/device-mgt/pom.xml | 2 +- .../email-sender/org.wso2.carbon.email.sender.core/pom.xml | 2 +- components/email-sender/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.oauth.extensions/pom.xml | 4 ++-- .../pom.xml | 2 +- .../org.wso2.carbon.identity.jwt.client.extension/pom.xml | 2 +- components/identity-extensions/pom.xml | 2 +- .../org.wso2.carbon.complex.policy.decision.point/pom.xml | 4 ++-- .../org.wso2.carbon.policy.decision.point/pom.xml | 4 ++-- .../org.wso2.carbon.policy.information.point/pom.xml | 4 ++-- .../policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml | 4 ++-- .../policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml | 4 ++-- components/policy-mgt/pom.xml | 4 ++-- components/test-coverage/pom.xml | 2 +- .../org.wso2.carbon.webapp.authenticator.framework/pom.xml | 4 ++-- components/webapp-authenticator-framework/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.handler.server.feature/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml | 4 ++-- features/apimgt-extensions/pom.xml | 4 ++-- .../org.wso2.carbon.certificate.mgt.api.feature/pom.xml | 2 +- .../pom.xml | 2 +- .../org.wso2.carbon.certificate.mgt.server.feature/pom.xml | 4 ++-- features/certificate-mgt/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/device-mgt-extensions/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.analytics.feature/pom.xml | 4 ++-- .../org.wso2.carbon.device.mgt.api.feature/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.basics.feature/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.extensions.feature/pom.xml | 4 ++-- .../device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.server.feature/pom.xml | 4 ++-- .../org.wso2.carbon.device.mgt.ui.feature/pom.xml | 2 +- features/device-mgt/pom.xml | 2 +- .../org.wso2.carbon.email.sender.feature/pom.xml | 4 ++-- features/email-sender/pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/jwt-client/pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/oauth-extensions/pom.xml | 4 ++-- .../org.wso2.carbon.policy.mgt.server.feature/pom.xml | 4 ++-- features/policy-mgt/pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/webapp-authenticator-framework/pom.xml | 4 ++-- pom.xml | 6 +++--- 80 files changed, 126 insertions(+), 126 deletions(-) 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 1f726c3f2b..1ec446e024 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml @@ -22,13 +22,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.annotations - 3.2.5-SNAPSHOT + 3.2.5 bundle WSO2 Carbon - API Management Annotations WSO2 Carbon - API Management Custom Annotation Module 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 ba6b5e6e75..616b1557e9 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,12 +21,12 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 - 3.2.5-SNAPSHOT + 3.2.5 org.wso2.carbon.apimgt.application.extension.api war WSO2 Carbon - API Application Management API 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 007807a25a..7051125f2b 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,12 +22,12 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 - 3.2.5-SNAPSHOT + 3.2.5 org.wso2.carbon.apimgt.application.extension bundle WSO2 Carbon - API Application Management diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml index 503b3c4d9e..e536f98332 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml @@ -21,13 +21,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.handlers - 3.2.5-SNAPSHOT + 3.2.5 bundle WSO2 Carbon - API Security Handler Component WSO2 Carbon - API Management Security Handler Module diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml index 2c35fa03a8..52d4534e02 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml @@ -13,13 +13,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.integration.client - 3.2.5-SNAPSHOT + 3.2.5 bundle WSO2 Carbon - API Management Integration Client WSO2 Carbon - API Management Integration Client diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml index d45ff5ca1a..5ba3f5a712 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml @@ -13,13 +13,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.integration.generated.client - 3.2.5-SNAPSHOT + 3.2.5 bundle WSO2 Carbon - API Management Integration Generated Client WSO2 Carbon - API Management Integration Client 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 f2d741b79d..e7b966bd29 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,13 +22,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.webapp.publisher - 3.2.5-SNAPSHOT + 3.2.5 bundle WSO2 Carbon - API Management Webapp Publisher WSO2 Carbon - API Management Webapp Publisher diff --git a/components/apimgt-extensions/pom.xml b/components/apimgt-extensions/pom.xml index ecaebeea11..eb6ed17725 100644 --- a/components/apimgt-extensions/pom.xml +++ b/components/apimgt-extensions/pom.xml @@ -22,13 +22,13 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml 4.0.0 apimgt-extensions - 3.2.5-SNAPSHOT + 3.2.5 pom WSO2 Carbon - API Management Extensions Component http://wso2.org 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 cb66411260..7daae642a8 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 - 3.2.5-SNAPSHOT + 3.2.5 ../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 39436bde9c..bc99e1e2a7 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 - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml index 1616b820e3..8dfc8e029a 100644 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml +++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml @@ -24,7 +24,7 @@ certificate-mgt org.wso2.carbon.devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../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 4c0dfec5ef..cc86c79b01 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 @@ -21,13 +21,13 @@ org.wso2.carbon.devicemgt certificate-mgt - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.certificate.mgt.core - 3.2.5-SNAPSHOT + 3.2.5 bundle WSO2 Carbon - Certificate Management Core WSO2 Carbon - Certificate Management Core diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml index 383f64e320..93cfd15928 100644 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml +++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml @@ -24,7 +24,7 @@ certificate-mgt org.wso2.carbon.devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml diff --git a/components/certificate-mgt/pom.xml b/components/certificate-mgt/pom.xml index 661ac12be4..f6e56decf6 100644 --- a/components/certificate-mgt/pom.xml +++ b/components/certificate-mgt/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt certificate-mgt - 3.2.5-SNAPSHOT + 3.2.5 pom WSO2 Carbon - Certificate Management Component http://wso2.org 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 58daee9d78..21da547377 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 - 3.2.5-SNAPSHOT + 3.2.5 ../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 1df100837c..202efe2064 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 - 3.2.5-SNAPSHOT + 3.2.5 ../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 845a44dd00..383496bf77 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 - 3.2.5-SNAPSHOT + 3.2.5 ../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 6827c8cd9c..88fe462962 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 - 3.2.5-SNAPSHOT + 3.2.5 ../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 f61c712fb5..852df0cdeb 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 - 3.2.5-SNAPSHOT + 3.2.5 ../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 d5e08e6501..743680a4c4 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 - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml diff --git a/components/device-mgt-extensions/pom.xml b/components/device-mgt-extensions/pom.xml index c0e75b0e3b..6c3b492492 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 - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml index bfe96542ed..13a111dc93 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt device-mgt - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml index fd793bf2a0..6203930a8d 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml @@ -20,7 +20,7 @@ device-mgt org.wso2.carbon.devicemgt - 3.2.5-SNAPSHOT + 3.2.5 4.0.0 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 40b4e62cfb..fceae964ee 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 - 3.2.5-SNAPSHOT + 3.2.5 ../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 eb7b99a2a4..2b8bb43449 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 - 3.2.5-SNAPSHOT + 3.2.5 ../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 ebd02a89f7..1c944a1317 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 - 3.2.5-SNAPSHOT + 3.2.5 ../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 862e3d596b..b327b5ddc1 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 - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml index 7fdec2aefa..98ef575260 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml @@ -22,7 +22,7 @@ device-mgt org.wso2.carbon.devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../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 f4b47c1a73..a5b38c173d 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 - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml index 799efc3bf8..440bdda3cf 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml @@ -22,7 +22,7 @@ device-mgt org.wso2.carbon.devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml diff --git a/components/device-mgt/pom.xml b/components/device-mgt/pom.xml index a54d067f5e..fa2f50d2a2 100644 --- a/components/device-mgt/pom.xml +++ b/components/device-mgt/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml diff --git a/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml b/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml index b62e52c77a..faeaec467b 100644 --- a/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml +++ b/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt email-sender - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml diff --git a/components/email-sender/pom.xml b/components/email-sender/pom.xml index a214bdee0e..5399561d43 100644 --- a/components/email-sender/pom.xml +++ b/components/email-sender/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../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 b034fb6f95..d1a5b8959f 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,13 +22,13 @@ org.wso2.carbon.devicemgt identity-extensions - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.oauth.extensions - 3.2.5-SNAPSHOT + 3.2.5 bundle WSO2 Carbon - OAuth Extensions http://wso2.org diff --git a/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml b/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml index 4e3e14937f..3917b4aef4 100644 --- a/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml +++ b/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml @@ -21,7 +21,7 @@ identity-extensions org.wso2.carbon.devicemgt - 3.2.5-SNAPSHOT + 3.2.5 4.0.0 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 393eab4392..fde0716827 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 - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml diff --git a/components/identity-extensions/pom.xml b/components/identity-extensions/pom.xml index fb643bde49..2db5c2cd6b 100644 --- a/components/identity-extensions/pom.xml +++ b/components/identity-extensions/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml diff --git a/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml b/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml index dcd65f81ff..056578e991 100644 --- a/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml +++ b/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.complex.policy.decision.point - 3.2.5-SNAPSHOT + 3.2.5 bundle WSO2 Carbon - Policy Decision Point WSO2 Carbon - Policy Decision Point 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 908f16c61b..5d257faff5 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,14 +3,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.decision.point - 3.2.5-SNAPSHOT + 3.2.5 bundle WSO2 Carbon - Policy Decision Point WSO2 Carbon - Policy Decision Point 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 481cecdc9c..9f1407e08b 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 - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml @@ -11,7 +11,7 @@ 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.information.point - 3.2.5-SNAPSHOT + 3.2.5 bundle WSO2 Carbon - Policy Information Point WSO2 Carbon - Policy Information Point 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 4dc6e71631..ebd9039b64 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,14 +22,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.mgt.common - 3.2.5-SNAPSHOT + 3.2.5 bundle WSO2 Carbon - Policy Management Common WSO2 Carbon - Policy Management Common 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 0bf2dd3e29..b3b822d8e8 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,14 +22,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.mgt.core - 3.2.5-SNAPSHOT + 3.2.5 bundle WSO2 Carbon - Policy Management Core WSO2 Carbon - Policy Management Core diff --git a/components/policy-mgt/pom.xml b/components/policy-mgt/pom.xml index 12a0ef13c5..00baa9356f 100644 --- a/components/policy-mgt/pom.xml +++ b/components/policy-mgt/pom.xml @@ -23,13 +23,13 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml 4.0.0 policy-mgt - 3.2.5-SNAPSHOT + 3.2.5 pom WSO2 Carbon - Policy Management Component http://wso2.org diff --git a/components/test-coverage/pom.xml b/components/test-coverage/pom.xml index b1fd8426e9..2d3b2adf7d 100644 --- a/components/test-coverage/pom.xml +++ b/components/test-coverage/pom.xml @@ -21,7 +21,7 @@ carbon-devicemgt org.wso2.carbon.devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml 4.0.0 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 67f722d94e..8d5cfdd0a2 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,14 +21,14 @@ org.wso2.carbon.devicemgt webapp-authenticator-framework - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.webapp.authenticator.framework - 3.2.5-SNAPSHOT + 3.2.5 bundle WSO2 Carbon - Web Application Authenticator Framework Bundle WSO2 Carbon - Web Application Authenticator Framework Bundle diff --git a/components/webapp-authenticator-framework/pom.xml b/components/webapp-authenticator-framework/pom.xml index 05bef7fe41..734dcea725 100644 --- a/components/webapp-authenticator-framework/pom.xml +++ b/components/webapp-authenticator-framework/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt webapp-authenticator-framework - 3.2.5-SNAPSHOT + 3.2.5 pom WSO2 Carbon - Webapp Authenticator Framework http://wso2.org 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 2560e0f229..c6eb543b37 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,14 +21,14 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.application.extension.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - API Management Application Extension Feature http://wso2.org This feature contains an implementation of a api application registration, which takes care of subscription diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml index 32df7e6471..5599893e5a 100644 --- a/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml +++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.handler.server.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - Device Management - APIM handler Server Feature http://wso2.org This feature contains the handler for the api authentications diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml index 539f83a509..35b424384f 100644 --- a/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml +++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml @@ -21,13 +21,13 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.integration.client.feature - 3.2.5-SNAPSHOT + 3.2.5 pom WSO2 Carbon - APIM Integration Client Feature http://wso2.org 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 989a8bf2bd..7a046c6d9e 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,14 +21,14 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.webapp.publisher.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - API Management Webapp Publisher Feature http://wso2.org This feature contains an implementation of a Tomcat lifecycle listener, which takes care of publishing diff --git a/features/apimgt-extensions/pom.xml b/features/apimgt-extensions/pom.xml index e7b1aabaf9..68b7e32caf 100644 --- a/features/apimgt-extensions/pom.xml +++ b/features/apimgt-extensions/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.5-SNAPSHOT + 3.2.5 pom WSO2 Carbon - API Management Extensions Feature http://wso2.org 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 b4cbc9f40c..d750707247 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 - 3.2.5-SNAPSHOT + 3.2.5 ../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 1275431f50..d84eaa59be 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 - 3.2.5-SNAPSHOT + 3.2.5 ../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 789e0a086a..c7bd085d88 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,14 +22,14 @@ org.wso2.carbon.devicemgt certificate-mgt-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.certificate.mgt.server.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - Certificate Management Server Feature http://wso2.org This feature contains the core bundles required for back-end Certificate Management functionality diff --git a/features/certificate-mgt/pom.xml b/features/certificate-mgt/pom.xml index 37385a19dd..f086fd2c6b 100644 --- a/features/certificate-mgt/pom.xml +++ b/features/certificate-mgt/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt certificate-mgt-feature - 3.2.5-SNAPSHOT + 3.2.5 pom WSO2 Carbon - Certificate Management Feature http://wso2.org 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 31cbc563b5..b4d925b06a 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - Device Type Deployer Feature http://wso2.org WSO2 Carbon - Device Type Deployer Feature 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 7f583da593..364b582dcd 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - FCM Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - MQTT Based Push Notification Provider Feature 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 7180fe41c1..7fdcf37b6d 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - MQTT Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - MQTT Based Push Notification Provider Feature 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 69108c52c6..33d8b2ca38 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - MQTT Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - MQTT Based Push Notification Provider Feature 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 125edb16a5..27ab55b132 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - XMPP Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - XMPP Based Push Notification Provider Feature diff --git a/features/device-mgt-extensions/pom.xml b/features/device-mgt-extensions/pom.xml index cbf504932e..a7d9f23138 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 - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml index 7ab57b525e..87b81610df 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml +++ b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.analytics.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - Device Management Server Feature http://wso2.org This feature contains bundles related to device analytics data publisher and ws proxy 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 c6742d46ac..b9086c079f 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 - 3.2.5-SNAPSHOT + 3.2.5 ../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 530474529f..049ce72c08 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 - 3.2.5-SNAPSHOT + 3.2.5 ../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 a3b6acf944..9cf91ed39b 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,14 +4,14 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - Device Management Extensions Feature http://wso2.org This feature contains common extensions used by key device management functionalities 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 20b89ca954..bd7a74cc0d 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 - 3.2.5-SNAPSHOT + 3.2.5 ../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 ab1900950c..c098c9a3b3 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.server.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - Device Management Server Feature http://wso2.org This feature contains the core bundles required for Back-end Device Management functionality diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml index 22843f6cb4..b97af0ded9 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml +++ b/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml diff --git a/features/device-mgt/pom.xml b/features/device-mgt/pom.xml index a15b4187d2..2f03cba658 100644 --- a/features/device-mgt/pom.xml +++ b/features/device-mgt/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml diff --git a/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml b/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml index 97be9df71f..c1b55a64f1 100644 --- a/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml +++ b/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt email-sender-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.email.sender.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - Email Sender Feature http://wso2.org This feature contains the core bundles required for email sender related functionality diff --git a/features/email-sender/pom.xml b/features/email-sender/pom.xml index a10558e96d..06fd228b7f 100644 --- a/features/email-sender/pom.xml +++ b/features/email-sender/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt email-sender-feature - 3.2.5-SNAPSHOT + 3.2.5 pom WSO2 Carbon - Email Sender Feature http://wso2.org 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 3697089da4..02ba8db124 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,14 +23,14 @@ org.wso2.carbon.devicemgt jwt-client-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.identity.jwt.client.extension.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - JWT Client Feature http://wso2.org This feature contains jwt client implementation from which we can get a access token using the jwt diff --git a/features/jwt-client/pom.xml b/features/jwt-client/pom.xml index fe40aa0ed2..6fb38abe13 100644 --- a/features/jwt-client/pom.xml +++ b/features/jwt-client/pom.xml @@ -23,13 +23,13 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml 4.0.0 jwt-client-feature - 3.2.5-SNAPSHOT + 3.2.5 pom WSO2 Carbon - JWT Client Extension Feature http://wso2.org diff --git a/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml b/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml index 9fa5dfbfa0..d1d16d86e7 100644 --- a/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml +++ b/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml @@ -23,14 +23,14 @@ org.wso2.carbon.devicemgt oauth-extensions-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.oauth.extensions.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - Device Mgt OAuth Extensions Feature http://wso2.org This feature contains devicemgt related OAuth extensions diff --git a/features/oauth-extensions/pom.xml b/features/oauth-extensions/pom.xml index 2080b5e073..83439b43b4 100644 --- a/features/oauth-extensions/pom.xml +++ b/features/oauth-extensions/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt oauth-extensions-feature - 3.2.5-SNAPSHOT + 3.2.5 pom WSO2 Carbon - Device Management OAuth Extensions Feature http://wso2.org 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 6c25977214..18600ceb21 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,14 +23,14 @@ org.wso2.carbon.devicemgt policy-mgt-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.policy.mgt.server.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - Policy Management Server Feature http://wso2.org This feature contains the core bundles required for Back-end Device Management functionality diff --git a/features/policy-mgt/pom.xml b/features/policy-mgt/pom.xml index 894d3df5af..34b7445563 100644 --- a/features/policy-mgt/pom.xml +++ b/features/policy-mgt/pom.xml @@ -23,14 +23,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt policy-mgt-feature - 3.2.5-SNAPSHOT + 3.2.5 pom WSO2 Carbon - Policy Management Feature http://wso2.org 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 9a9ccec638..a5286fd598 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,14 +22,14 @@ org.wso2.carbon.devicemgt webapp-authenticator-framework-feature - 3.2.5-SNAPSHOT + 3.2.5 ../pom.xml 4.0.0 org.wso2.carbon.webapp.authenticator.framework.server.feature pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - Webapp Authenticator Framework Server Feature http://wso2.org This feature contains the core bundles required for Back-end Device Management functionality diff --git a/features/webapp-authenticator-framework/pom.xml b/features/webapp-authenticator-framework/pom.xml index ff10a668d3..a43a64a3d5 100644 --- a/features/webapp-authenticator-framework/pom.xml +++ b/features/webapp-authenticator-framework/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5-SNAPSHOT + 3.2.5 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt webapp-authenticator-framework-feature - 3.2.5-SNAPSHOT + 3.2.5 pom WSO2 Carbon - Webapp Authenticator Framework Feature http://wso2.org diff --git a/pom.xml b/pom.xml index 4ba1d0e215..1e9ad9fbfd 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt pom - 3.2.5-SNAPSHOT + 3.2.5 WSO2 Carbon - Device Management - Parent http://wso2.org WSO2 Connected Device Manager Components @@ -1671,7 +1671,7 @@ https://gitlab.com/entgra/carbon-device-mgt.git scm:git:https://gitlab.com/entgra/carbon-device-mgt.git scm:git:https://gitlab.com/entgra/carbon-device-mgt.git - HEAD + v3.2.5 @@ -1989,7 +1989,7 @@ 1.2.11.wso2v10 - 3.2.5-SNAPSHOT + 3.2.5 4.6.21 From 2d05e04a169c70ebbb119389c61630ff69403902 Mon Sep 17 00:00:00 2001 From: Entgra Builder Date: Fri, 31 May 2019 14:13:46 +0000 Subject: [PATCH 10/28] [maven-release-plugin] prepare for next development iteration --- .../org.wso2.carbon.apimgt.annotations/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.application.extension/pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.handlers/pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.integration.client/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.webapp.publisher/pom.xml | 4 ++-- components/apimgt-extensions/pom.xml | 4 ++-- .../org.wso2.carbon.certificate.mgt.api/pom.xml | 2 +- .../org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml | 2 +- .../pom.xml | 2 +- .../org.wso2.carbon.certificate.mgt.core/pom.xml | 4 ++-- .../org.wso2.carbon.certificate.mgt.v09.api/pom.xml | 2 +- components/certificate-mgt/pom.xml | 4 ++-- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- components/device-mgt-extensions/pom.xml | 2 +- .../pom.xml | 2 +- .../org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.api/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.common/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.core/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.extensions/pom.xml | 2 +- components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.url.printer/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml | 2 +- components/device-mgt/pom.xml | 2 +- .../email-sender/org.wso2.carbon.email.sender.core/pom.xml | 2 +- components/email-sender/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.oauth.extensions/pom.xml | 4 ++-- .../pom.xml | 2 +- .../org.wso2.carbon.identity.jwt.client.extension/pom.xml | 2 +- components/identity-extensions/pom.xml | 2 +- .../org.wso2.carbon.complex.policy.decision.point/pom.xml | 4 ++-- .../org.wso2.carbon.policy.decision.point/pom.xml | 4 ++-- .../org.wso2.carbon.policy.information.point/pom.xml | 4 ++-- .../policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml | 4 ++-- .../policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml | 4 ++-- components/policy-mgt/pom.xml | 4 ++-- components/test-coverage/pom.xml | 2 +- .../org.wso2.carbon.webapp.authenticator.framework/pom.xml | 4 ++-- components/webapp-authenticator-framework/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.handler.server.feature/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml | 4 ++-- features/apimgt-extensions/pom.xml | 4 ++-- .../org.wso2.carbon.certificate.mgt.api.feature/pom.xml | 2 +- .../pom.xml | 2 +- .../org.wso2.carbon.certificate.mgt.server.feature/pom.xml | 4 ++-- features/certificate-mgt/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/device-mgt-extensions/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.analytics.feature/pom.xml | 4 ++-- .../org.wso2.carbon.device.mgt.api.feature/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.basics.feature/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.extensions.feature/pom.xml | 4 ++-- .../device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.server.feature/pom.xml | 4 ++-- .../org.wso2.carbon.device.mgt.ui.feature/pom.xml | 2 +- features/device-mgt/pom.xml | 2 +- .../org.wso2.carbon.email.sender.feature/pom.xml | 4 ++-- features/email-sender/pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/jwt-client/pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/oauth-extensions/pom.xml | 4 ++-- .../org.wso2.carbon.policy.mgt.server.feature/pom.xml | 4 ++-- features/policy-mgt/pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/webapp-authenticator-framework/pom.xml | 4 ++-- pom.xml | 6 +++--- 80 files changed, 126 insertions(+), 126 deletions(-) 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 1ec446e024..64d60ecb12 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml @@ -22,13 +22,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.annotations - 3.2.5 + 3.2.6-SNAPSHOT bundle WSO2 Carbon - API Management Annotations WSO2 Carbon - API Management Custom Annotation Module 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 616b1557e9..f5faaf1fce 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,12 +21,12 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 - 3.2.5 + 3.2.6-SNAPSHOT org.wso2.carbon.apimgt.application.extension.api war WSO2 Carbon - API Application Management API 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 7051125f2b..32d26f06cf 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,12 +22,12 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 - 3.2.5 + 3.2.6-SNAPSHOT org.wso2.carbon.apimgt.application.extension bundle WSO2 Carbon - API Application Management diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml index e536f98332..26a0337eeb 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml @@ -21,13 +21,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.handlers - 3.2.5 + 3.2.6-SNAPSHOT bundle WSO2 Carbon - API Security Handler Component WSO2 Carbon - API Management Security Handler Module diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml index 52d4534e02..3cf50d3e3c 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml @@ -13,13 +13,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.integration.client - 3.2.5 + 3.2.6-SNAPSHOT bundle WSO2 Carbon - API Management Integration Client WSO2 Carbon - API Management Integration Client diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml index 5ba3f5a712..247540084b 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml @@ -13,13 +13,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.integration.generated.client - 3.2.5 + 3.2.6-SNAPSHOT bundle WSO2 Carbon - API Management Integration Generated Client WSO2 Carbon - API Management Integration Client 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 e7b966bd29..8ac8d7633d 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,13 +22,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.webapp.publisher - 3.2.5 + 3.2.6-SNAPSHOT bundle WSO2 Carbon - API Management Webapp Publisher WSO2 Carbon - API Management Webapp Publisher diff --git a/components/apimgt-extensions/pom.xml b/components/apimgt-extensions/pom.xml index eb6ed17725..39767f6057 100644 --- a/components/apimgt-extensions/pom.xml +++ b/components/apimgt-extensions/pom.xml @@ -22,13 +22,13 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml 4.0.0 apimgt-extensions - 3.2.5 + 3.2.6-SNAPSHOT pom WSO2 Carbon - API Management Extensions Component http://wso2.org 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 7daae642a8..c237ccdf5c 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 - 3.2.5 + 3.2.6-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 bc99e1e2a7..4b4fc36ba5 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 - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml index 8dfc8e029a..5783893e67 100644 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml +++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml @@ -24,7 +24,7 @@ certificate-mgt org.wso2.carbon.devicemgt - 3.2.5 + 3.2.6-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 cc86c79b01..51ea670dc9 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 @@ -21,13 +21,13 @@ org.wso2.carbon.devicemgt certificate-mgt - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.certificate.mgt.core - 3.2.5 + 3.2.6-SNAPSHOT bundle WSO2 Carbon - Certificate Management Core WSO2 Carbon - Certificate Management Core diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml index 93cfd15928..4bc7d15ad7 100644 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml +++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml @@ -24,7 +24,7 @@ certificate-mgt org.wso2.carbon.devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml diff --git a/components/certificate-mgt/pom.xml b/components/certificate-mgt/pom.xml index f6e56decf6..25d1a2afaa 100644 --- a/components/certificate-mgt/pom.xml +++ b/components/certificate-mgt/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt certificate-mgt - 3.2.5 + 3.2.6-SNAPSHOT pom WSO2 Carbon - Certificate Management Component http://wso2.org 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 21da547377..7d0cacf885 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 - 3.2.5 + 3.2.6-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 202efe2064..0fc2cd4650 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 - 3.2.5 + 3.2.6-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 383496bf77..ee5c94acef 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 - 3.2.5 + 3.2.6-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 88fe462962..1e725423fc 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 - 3.2.5 + 3.2.6-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 852df0cdeb..f34673930e 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 - 3.2.5 + 3.2.6-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 743680a4c4..7cab257931 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 - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml diff --git a/components/device-mgt-extensions/pom.xml b/components/device-mgt-extensions/pom.xml index 6c3b492492..2778bef6bd 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 - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml index 13a111dc93..8961ba8736 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt device-mgt - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml index 6203930a8d..63781f655e 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml @@ -20,7 +20,7 @@ device-mgt org.wso2.carbon.devicemgt - 3.2.5 + 3.2.6-SNAPSHOT 4.0.0 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 fceae964ee..a0361defd1 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 - 3.2.5 + 3.2.6-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 2b8bb43449..87cf5d983e 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 - 3.2.5 + 3.2.6-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 1c944a1317..c5c3f9cec7 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 - 3.2.5 + 3.2.6-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 b327b5ddc1..83bade2bb5 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 - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml index 98ef575260..5f05220f5d 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml @@ -22,7 +22,7 @@ device-mgt org.wso2.carbon.devicemgt - 3.2.5 + 3.2.6-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 a5b38c173d..6a39a3821d 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 - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml index 440bdda3cf..b46806e238 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml @@ -22,7 +22,7 @@ device-mgt org.wso2.carbon.devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml diff --git a/components/device-mgt/pom.xml b/components/device-mgt/pom.xml index fa2f50d2a2..bc49d28963 100644 --- a/components/device-mgt/pom.xml +++ b/components/device-mgt/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml diff --git a/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml b/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml index faeaec467b..7f2c968856 100644 --- a/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml +++ b/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt email-sender - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml diff --git a/components/email-sender/pom.xml b/components/email-sender/pom.xml index 5399561d43..8257c0611a 100644 --- a/components/email-sender/pom.xml +++ b/components/email-sender/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5 + 3.2.6-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 d1a5b8959f..fd88218c3e 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,13 +22,13 @@ org.wso2.carbon.devicemgt identity-extensions - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.oauth.extensions - 3.2.5 + 3.2.6-SNAPSHOT bundle WSO2 Carbon - OAuth Extensions http://wso2.org diff --git a/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml b/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml index 3917b4aef4..64227ae5a0 100644 --- a/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml +++ b/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml @@ -21,7 +21,7 @@ identity-extensions org.wso2.carbon.devicemgt - 3.2.5 + 3.2.6-SNAPSHOT 4.0.0 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 fde0716827..c77f32bde3 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 - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml diff --git a/components/identity-extensions/pom.xml b/components/identity-extensions/pom.xml index 2db5c2cd6b..1e89e48ce7 100644 --- a/components/identity-extensions/pom.xml +++ b/components/identity-extensions/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml diff --git a/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml b/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml index 056578e991..5a081c3b8f 100644 --- a/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml +++ b/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.complex.policy.decision.point - 3.2.5 + 3.2.6-SNAPSHOT bundle WSO2 Carbon - Policy Decision Point WSO2 Carbon - Policy Decision Point 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 5d257faff5..93da48f113 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,14 +3,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.decision.point - 3.2.5 + 3.2.6-SNAPSHOT bundle WSO2 Carbon - Policy Decision Point WSO2 Carbon - Policy Decision Point 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 9f1407e08b..c97b11230e 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 - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml @@ -11,7 +11,7 @@ 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.information.point - 3.2.5 + 3.2.6-SNAPSHOT bundle WSO2 Carbon - Policy Information Point WSO2 Carbon - Policy Information Point 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 ebd9039b64..477b86c034 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,14 +22,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.mgt.common - 3.2.5 + 3.2.6-SNAPSHOT bundle WSO2 Carbon - Policy Management Common WSO2 Carbon - Policy Management Common 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 b3b822d8e8..ad57042e08 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,14 +22,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.mgt.core - 3.2.5 + 3.2.6-SNAPSHOT bundle WSO2 Carbon - Policy Management Core WSO2 Carbon - Policy Management Core diff --git a/components/policy-mgt/pom.xml b/components/policy-mgt/pom.xml index 00baa9356f..abe39221d2 100644 --- a/components/policy-mgt/pom.xml +++ b/components/policy-mgt/pom.xml @@ -23,13 +23,13 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml 4.0.0 policy-mgt - 3.2.5 + 3.2.6-SNAPSHOT pom WSO2 Carbon - Policy Management Component http://wso2.org diff --git a/components/test-coverage/pom.xml b/components/test-coverage/pom.xml index 2d3b2adf7d..0597c9ed43 100644 --- a/components/test-coverage/pom.xml +++ b/components/test-coverage/pom.xml @@ -21,7 +21,7 @@ carbon-devicemgt org.wso2.carbon.devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml 4.0.0 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 8d5cfdd0a2..0e8d030d6f 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,14 +21,14 @@ org.wso2.carbon.devicemgt webapp-authenticator-framework - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.webapp.authenticator.framework - 3.2.5 + 3.2.6-SNAPSHOT bundle WSO2 Carbon - Web Application Authenticator Framework Bundle WSO2 Carbon - Web Application Authenticator Framework Bundle diff --git a/components/webapp-authenticator-framework/pom.xml b/components/webapp-authenticator-framework/pom.xml index 734dcea725..87434a11de 100644 --- a/components/webapp-authenticator-framework/pom.xml +++ b/components/webapp-authenticator-framework/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt webapp-authenticator-framework - 3.2.5 + 3.2.6-SNAPSHOT pom WSO2 Carbon - Webapp Authenticator Framework http://wso2.org 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 c6eb543b37..19d63cc08c 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,14 +21,14 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.application.extension.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - API Management Application Extension Feature http://wso2.org This feature contains an implementation of a api application registration, which takes care of subscription diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml index 5599893e5a..7f14a27592 100644 --- a/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml +++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.handler.server.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - Device Management - APIM handler Server Feature http://wso2.org This feature contains the handler for the api authentications diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml index 35b424384f..6ee4a17965 100644 --- a/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml +++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml @@ -21,13 +21,13 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.integration.client.feature - 3.2.5 + 3.2.6-SNAPSHOT pom WSO2 Carbon - APIM Integration Client Feature http://wso2.org 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 7a046c6d9e..36529a8fa2 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,14 +21,14 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.webapp.publisher.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - API Management Webapp Publisher Feature http://wso2.org This feature contains an implementation of a Tomcat lifecycle listener, which takes care of publishing diff --git a/features/apimgt-extensions/pom.xml b/features/apimgt-extensions/pom.xml index 68b7e32caf..3829bc334e 100644 --- a/features/apimgt-extensions/pom.xml +++ b/features/apimgt-extensions/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.5 + 3.2.6-SNAPSHOT pom WSO2 Carbon - API Management Extensions Feature http://wso2.org 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 d750707247..16a44f1286 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 - 3.2.5 + 3.2.6-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 d84eaa59be..3ddcda3b02 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 - 3.2.5 + 3.2.6-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 c7bd085d88..29b5aae2dd 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,14 +22,14 @@ org.wso2.carbon.devicemgt certificate-mgt-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.certificate.mgt.server.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - Certificate Management Server Feature http://wso2.org This feature contains the core bundles required for back-end Certificate Management functionality diff --git a/features/certificate-mgt/pom.xml b/features/certificate-mgt/pom.xml index f086fd2c6b..a98763f338 100644 --- a/features/certificate-mgt/pom.xml +++ b/features/certificate-mgt/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt certificate-mgt-feature - 3.2.5 + 3.2.6-SNAPSHOT pom WSO2 Carbon - Certificate Management Feature http://wso2.org 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 b4d925b06a..88ad171e74 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - Device Type Deployer Feature http://wso2.org WSO2 Carbon - Device Type Deployer Feature 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 364b582dcd..f4ecf1afb0 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - FCM Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - MQTT Based Push Notification Provider Feature 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 7fdcf37b6d..99d1130b47 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - MQTT Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - MQTT Based Push Notification Provider Feature 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 33d8b2ca38..f183bfbcc3 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - MQTT Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - MQTT Based Push Notification Provider Feature 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 27ab55b132..7ac97feb8b 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - XMPP Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - XMPP Based Push Notification Provider Feature diff --git a/features/device-mgt-extensions/pom.xml b/features/device-mgt-extensions/pom.xml index a7d9f23138..794f617a55 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 - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml index 87b81610df..1dffb89ce1 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml +++ b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.analytics.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - Device Management Server Feature http://wso2.org This feature contains bundles related to device analytics data publisher and ws proxy 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 b9086c079f..c5e0a57eff 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 - 3.2.5 + 3.2.6-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 049ce72c08..9807d7d4ee 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 - 3.2.5 + 3.2.6-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 9cf91ed39b..d685cab146 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,14 +4,14 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - Device Management Extensions Feature http://wso2.org This feature contains common extensions used by key device management functionalities 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 bd7a74cc0d..9a537f900d 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 - 3.2.5 + 3.2.6-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 c098c9a3b3..d3bdd812ad 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.server.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - Device Management Server Feature http://wso2.org This feature contains the core bundles required for Back-end Device Management functionality diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml index b97af0ded9..54206c6afa 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml +++ b/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml diff --git a/features/device-mgt/pom.xml b/features/device-mgt/pom.xml index 2f03cba658..46aa4e93b4 100644 --- a/features/device-mgt/pom.xml +++ b/features/device-mgt/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml diff --git a/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml b/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml index c1b55a64f1..af5fa838b2 100644 --- a/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml +++ b/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt email-sender-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.email.sender.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - Email Sender Feature http://wso2.org This feature contains the core bundles required for email sender related functionality diff --git a/features/email-sender/pom.xml b/features/email-sender/pom.xml index 06fd228b7f..25742cd57b 100644 --- a/features/email-sender/pom.xml +++ b/features/email-sender/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt email-sender-feature - 3.2.5 + 3.2.6-SNAPSHOT pom WSO2 Carbon - Email Sender Feature http://wso2.org 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 02ba8db124..c166630cb9 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,14 +23,14 @@ org.wso2.carbon.devicemgt jwt-client-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.identity.jwt.client.extension.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - JWT Client Feature http://wso2.org This feature contains jwt client implementation from which we can get a access token using the jwt diff --git a/features/jwt-client/pom.xml b/features/jwt-client/pom.xml index 6fb38abe13..eaeb4df3e6 100644 --- a/features/jwt-client/pom.xml +++ b/features/jwt-client/pom.xml @@ -23,13 +23,13 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml 4.0.0 jwt-client-feature - 3.2.5 + 3.2.6-SNAPSHOT pom WSO2 Carbon - JWT Client Extension Feature http://wso2.org diff --git a/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml b/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml index d1d16d86e7..aa51fbd5bc 100644 --- a/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml +++ b/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml @@ -23,14 +23,14 @@ org.wso2.carbon.devicemgt oauth-extensions-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.oauth.extensions.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - Device Mgt OAuth Extensions Feature http://wso2.org This feature contains devicemgt related OAuth extensions diff --git a/features/oauth-extensions/pom.xml b/features/oauth-extensions/pom.xml index 83439b43b4..6b706878d3 100644 --- a/features/oauth-extensions/pom.xml +++ b/features/oauth-extensions/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt oauth-extensions-feature - 3.2.5 + 3.2.6-SNAPSHOT pom WSO2 Carbon - Device Management OAuth Extensions Feature http://wso2.org 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 18600ceb21..0c6ad6c0dc 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,14 +23,14 @@ org.wso2.carbon.devicemgt policy-mgt-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.policy.mgt.server.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - Policy Management Server Feature http://wso2.org This feature contains the core bundles required for Back-end Device Management functionality diff --git a/features/policy-mgt/pom.xml b/features/policy-mgt/pom.xml index 34b7445563..0dd05a846b 100644 --- a/features/policy-mgt/pom.xml +++ b/features/policy-mgt/pom.xml @@ -23,14 +23,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt policy-mgt-feature - 3.2.5 + 3.2.6-SNAPSHOT pom WSO2 Carbon - Policy Management Feature http://wso2.org 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 a5286fd598..5578054340 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,14 +22,14 @@ org.wso2.carbon.devicemgt webapp-authenticator-framework-feature - 3.2.5 + 3.2.6-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.webapp.authenticator.framework.server.feature pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - Webapp Authenticator Framework Server Feature http://wso2.org This feature contains the core bundles required for Back-end Device Management functionality diff --git a/features/webapp-authenticator-framework/pom.xml b/features/webapp-authenticator-framework/pom.xml index a43a64a3d5..6864800151 100644 --- a/features/webapp-authenticator-framework/pom.xml +++ b/features/webapp-authenticator-framework/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.5 + 3.2.6-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt webapp-authenticator-framework-feature - 3.2.5 + 3.2.6-SNAPSHOT pom WSO2 Carbon - Webapp Authenticator Framework Feature http://wso2.org diff --git a/pom.xml b/pom.xml index 1e9ad9fbfd..a2b1f9b1b9 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt pom - 3.2.5 + 3.2.6-SNAPSHOT WSO2 Carbon - Device Management - Parent http://wso2.org WSO2 Connected Device Manager Components @@ -1671,7 +1671,7 @@ https://gitlab.com/entgra/carbon-device-mgt.git scm:git:https://gitlab.com/entgra/carbon-device-mgt.git scm:git:https://gitlab.com/entgra/carbon-device-mgt.git - v3.2.5 + HEAD @@ -1989,7 +1989,7 @@ 1.2.11.wso2v10 - 3.2.5 + 3.2.6-SNAPSHOT 4.6.21 From 301b6ad5c2f1d49c4d6fec47a215fa3222b826a5 Mon Sep 17 00:00:00 2001 From: inoshperera Date: Sat, 1 Jun 2019 16:57:28 +0530 Subject: [PATCH 11/28] Query error fix in operation profile --- .../core/operation/mgt/dao/impl/ProfileOperationDAOImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/dao/impl/ProfileOperationDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/dao/impl/ProfileOperationDAOImpl.java index 769537b47b..025c871efb 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/dao/impl/ProfileOperationDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/operation/mgt/dao/impl/ProfileOperationDAOImpl.java @@ -92,7 +92,8 @@ public class ProfileOperationDAOImpl extends GenericOperationDAOImpl { try { Connection conn = OperationManagementDAOFactory.getConnection(); String sql = "SELECT o.ID, po.ENABLED, po.OPERATION_DETAILS, o.CREATED_TIMESTAMP, o.OPERATION_CODE " + - "FROM DM_PROFILE_OPERATION po INNER JOIN DM_OPERATION o ON po.OPERATION_ID = O.ID WHERE po.OPERATION_ID=?"; + "FROM DM_PROFILE_OPERATION po INNER JOIN DM_OPERATION o ON po.OPERATION_ID = o.ID WHERE po" + + ".OPERATION_ID=?"; stmt = conn.prepareStatement(sql); stmt.setInt(1, id); From c1177a26b2796ac30117c0472100cde4a0614812 Mon Sep 17 00:00:00 2001 From: Saad Sahibjan Date: Sat, 1 Jun 2019 17:04:11 +0530 Subject: [PATCH 12/28] Handle server version operation in task manager --- .../core/task/impl/DeviceTaskManagerImpl.java | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java index 602e656f90..c4acc9c82e 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java @@ -14,6 +14,22 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. + * + * Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved. + * + * WSO2 Inc. 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. */ @@ -21,6 +37,7 @@ package org.wso2.carbon.device.mgt.core.task.impl; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.wso2.carbon.base.ServerConfiguration; import org.wso2.carbon.device.mgt.common.Device; import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.DeviceManagementException; @@ -31,6 +48,7 @@ import org.wso2.carbon.device.mgt.common.operation.mgt.Operation; import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException; import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder; import org.wso2.carbon.device.mgt.core.operation.mgt.CommandOperation; +import org.wso2.carbon.device.mgt.core.operation.mgt.ProfileOperation; import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService; import org.wso2.carbon.device.mgt.core.task.DeviceMgtTaskException; import org.wso2.carbon.device.mgt.core.task.DeviceTaskManager; @@ -100,9 +118,15 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager { .size()); } for (String str : operations) { - CommandOperation operation = new CommandOperation(); - operation.setEnabled(true); + Operation operation; + if ("SERVER_VERSION".equals(str)) { + operation = new ProfileOperation(); + operation.setPayLoad(ServerConfiguration.getInstance().getFirstProperty("Version")); + } else { + operation = new CommandOperation(); + } operation.setType(Operation.Type.COMMAND); + operation.setEnabled(true); operation.setCode(str); deviceManagementProviderService.addOperation(deviceType, operation, validDeviceIdentifiers); } From b68cc62bc7ea9a7f3f18d906ab63796e96795532 Mon Sep 17 00:00:00 2001 From: Saad Sahibjan Date: Mon, 3 Jun 2019 12:07:55 +0530 Subject: [PATCH 13/28] Handle StartupOperationConfig which runs only once after the server is started --- .../mgt/common/StartupOperationConfig.java | 33 ++++++++ .../common/spi/DeviceManagementService.java | 18 +++++ .../DeviceManagementProviderService.java | 5 ++ .../DeviceManagementProviderServiceImpl.java | 21 +++++ .../carbon/device/mgt/core/task/Utils.java | 39 ++++++++++ .../task/impl/DeviceDetailsRetrieverTask.java | 31 +++++++- .../core/task/impl/DeviceTaskManagerImpl.java | 76 ++++++++++++++++--- .../mgt/core/TestDeviceManagementService.java | 21 +++++ .../template/DeviceTypeManagerService.java | 34 +++++++++ .../config/DeviceTypeConfiguration.java | 39 ++++++++++ .../mock/TypeXDeviceManagementService.java | 23 ++++++ 11 files changed, 327 insertions(+), 13 deletions(-) create mode 100644 components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/StartupOperationConfig.java diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/StartupOperationConfig.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/StartupOperationConfig.java new file mode 100644 index 0000000000..e8be3713f0 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/StartupOperationConfig.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.common; + +import java.util.List; + +public class StartupOperationConfig { + + private List startupOperations; + + public List getStartupOperations() { + return startupOperations; + } + + public void setStartupOperations(List startupOperations) { + this.startupOperations = startupOperations; + } +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/spi/DeviceManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/spi/DeviceManagementService.java index b14a5ab920..a8c73e1c43 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/spi/DeviceManagementService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/spi/DeviceManagementService.java @@ -15,6 +15,22 @@ * specific language governing permissions and limitations * under the License. * + * + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.common.spi; @@ -49,6 +65,8 @@ public interface DeviceManagementService { InitialOperationConfig getInitialOperationConfig(); + StartupOperationConfig getStartupOperationConfig(); + PullNotificationSubscriber getPullNotificationSubscriber(); DeviceStatusTaskPluginConfig getDeviceStatusTaskPluginConfig(); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java index 186b253de4..c2c7ef4813 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java @@ -46,6 +46,7 @@ import org.wso2.carbon.device.mgt.common.MonitoringOperation; import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig; import org.wso2.carbon.device.mgt.common.PaginationRequest; import org.wso2.carbon.device.mgt.common.PaginationResult; +import org.wso2.carbon.device.mgt.common.StartupOperationConfig; import org.wso2.carbon.device.mgt.common.UserNotFoundException; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException; import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration; @@ -654,10 +655,14 @@ public interface DeviceManagementProviderService { List getMonitoringOperationList(String deviceType); + List getStartupOperations(String deviceType); + int getDeviceMonitoringFrequency(String deviceType); OperationMonitoringTaskConfig getDeviceMonitoringConfig(String deviceType); + StartupOperationConfig getStartupOperationConfig(String deviceType); + boolean isDeviceMonitoringEnabled(String deviceType); PolicyMonitoringManager getPolicyMonitoringManager(String deviceType); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java index b65b75d2ea..151352c7b1 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java @@ -65,6 +65,7 @@ import org.wso2.carbon.device.mgt.common.MonitoringOperation; import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig; import org.wso2.carbon.device.mgt.common.PaginationRequest; import org.wso2.carbon.device.mgt.common.PaginationResult; +import org.wso2.carbon.device.mgt.common.StartupOperationConfig; import org.wso2.carbon.device.mgt.common.TransactionManagementException; import org.wso2.carbon.device.mgt.common.UserNotFoundException; import org.wso2.carbon.device.mgt.common.app.mgt.Application; @@ -1733,6 +1734,19 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv return operationMonitoringTaskConfig.getMonitoringOperation(); } + @Override + public List getStartupOperations(String deviceType) { + int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); + + DeviceManagementService dms = pluginRepository.getDeviceManagementService(deviceType, tenantId); + + StartupOperationConfig startupOperationConfig = dms.getStartupOperationConfig(); + if (startupOperationConfig != null) { + return startupOperationConfig.getStartupOperations(); + } + return null; + } + @Override public int getDeviceMonitoringFrequency(String deviceType) { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); @@ -1748,6 +1762,13 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv return dms.getOperationMonitoringConfig(); } + @Override + public StartupOperationConfig getStartupOperationConfig(String deviceType) { + int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); + DeviceManagementService dms = pluginRepository.getDeviceManagementService(deviceType, tenantId); + return dms.getStartupOperationConfig(); + } + @Override public boolean isDeviceMonitoringEnabled(String deviceType) { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/Utils.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/Utils.java index 36b43b12c6..bf3db9c6b3 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/Utils.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/Utils.java @@ -14,6 +14,23 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. + * + * + * Copyright (c) 2019, 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. */ @@ -21,7 +38,9 @@ package org.wso2.carbon.device.mgt.core.task; import org.wso2.carbon.context.PrivilegedCarbonContext; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; public class Utils { @@ -46,5 +65,25 @@ public class Utils { } } + public static boolean getIsTenantedStartupConfig(Map> map, String deviceType) { + List deviceTypes; + int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); + if (map.containsKey(tenantId)) { + if (map.get(tenantId).contains(deviceType)) { + return false; + } else { + deviceTypes = map.get(tenantId); + deviceTypes.add(deviceType); + map.put(tenantId, deviceTypes); + return true; + } + } else { + deviceTypes = new ArrayList<>(); + deviceTypes.add(deviceType); + map.put(tenantId, deviceTypes); + return true; + } + } + } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceDetailsRetrieverTask.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceDetailsRetrieverTask.java index f411c3d9f8..a9fee81125 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceDetailsRetrieverTask.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceDetailsRetrieverTask.java @@ -14,6 +14,23 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. + * + * + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.core.task.impl; @@ -23,6 +40,7 @@ import org.apache.commons.logging.LogFactory; import org.wso2.carbon.context.PrivilegedCarbonContext; import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig; +import org.wso2.carbon.device.mgt.common.StartupOperationConfig; import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder; import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService; import org.wso2.carbon.device.mgt.core.task.DeviceMgtTaskException; @@ -56,17 +74,20 @@ public class DeviceDetailsRetrieverTask implements Task { .getDeviceManagementProvider(); OperationMonitoringTaskConfig operationMonitoringTaskConfig = deviceManagementProviderService .getDeviceMonitoringConfig(deviceType); + StartupOperationConfig startupOperationConfig = deviceManagementProviderService + .getStartupOperationConfig(deviceType); if (System.getProperty(IS_CLOUD) != null && Boolean.parseBoolean(System.getProperty(IS_CLOUD))) { executeForTenants = true; } if (executeForTenants) { - this.executeForAllTenants(operationMonitoringTaskConfig); + this.executeForAllTenants(operationMonitoringTaskConfig, startupOperationConfig); } else { if (log.isDebugEnabled()) { log.debug("Device details retrieving task started to run."); } - DeviceTaskManager deviceTaskManager = new DeviceTaskManagerImpl(deviceType, operationMonitoringTaskConfig); + DeviceTaskManager deviceTaskManager = new DeviceTaskManagerImpl(deviceType, operationMonitoringTaskConfig, + startupOperationConfig); //pass the configurations also from here, monitoring tasks try { if (deviceManagementProviderService.isDeviceMonitoringEnabled(deviceType)) { @@ -78,7 +99,8 @@ public class DeviceDetailsRetrieverTask implements Task { } } - private void executeForAllTenants(OperationMonitoringTaskConfig operationMonitoringTaskConfig) { + private void executeForAllTenants(OperationMonitoringTaskConfig operationMonitoringTaskConfig, + StartupOperationConfig startupOperationConfig) { if (log.isDebugEnabled()) { log.debug("Device details retrieving task started to run for all tenants."); @@ -98,7 +120,8 @@ public class DeviceDetailsRetrieverTask implements Task { PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(tenantDomain); PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(tenant); DeviceTaskManager deviceTaskManager = new DeviceTaskManagerImpl(deviceType, - operationMonitoringTaskConfig); + operationMonitoringTaskConfig, + startupOperationConfig); //pass the configurations also from here, monitoring tasks try { if (deviceManagementProviderService.isDeviceMonitoringEnabled(deviceType)) { diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java index c4acc9c82e..c677b30915 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/task/impl/DeviceTaskManagerImpl.java @@ -17,7 +17,7 @@ * * Copyright (c) 2019, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved. * - * WSO2 Inc. licenses this file to you under the Apache License, + * 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 @@ -44,6 +44,7 @@ import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.InvalidDeviceException; import org.wso2.carbon.device.mgt.common.MonitoringOperation; import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig; +import org.wso2.carbon.device.mgt.common.StartupOperationConfig; import org.wso2.carbon.device.mgt.common.operation.mgt.Operation; import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException; import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder; @@ -62,7 +63,17 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager { private static Log log = LogFactory.getLog(DeviceTaskManagerImpl.class); private String deviceType; static volatile Map>> map = new HashMap<>(); + private static volatile Map> startupConfigMap = new HashMap<>(); private OperationMonitoringTaskConfig operationMonitoringTaskConfig; + private StartupOperationConfig startupOperationConfig; + + public DeviceTaskManagerImpl(String deviceType, + OperationMonitoringTaskConfig operationMonitoringTaskConfig, + StartupOperationConfig startupOperationConfig) { + this.deviceType = deviceType; + this.operationMonitoringTaskConfig = operationMonitoringTaskConfig; + this.startupOperationConfig = startupOperationConfig; + } public DeviceTaskManagerImpl(String deviceType, OperationMonitoringTaskConfig operationMonitoringTaskConfig) { @@ -79,6 +90,13 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager { return operationMonitoringTaskConfig.getMonitoringOperation(); } + private List getStartupOperations() { + if (startupOperationConfig != null) { + return startupOperationConfig.getStartupOperations(); + } + return null; + } + @Override public int getTaskFrequency() throws DeviceMgtTaskException { return operationMonitoringTaskConfig.getFrequency(); @@ -104,6 +122,7 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager { List devices; List operations; List validDeviceIdentifiers; + List startupOperations; operations = this.getValidOperationNames(); //list operations for each device type devices = deviceManagementProviderService.getAllDevices(deviceType, false);//list devices for each type @@ -118,18 +137,17 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager { .size()); } for (String str : operations) { - Operation operation; - if ("SERVER_VERSION".equals(str)) { - operation = new ProfileOperation(); - operation.setPayLoad(ServerConfiguration.getInstance().getFirstProperty("Version")); - } else { - operation = new CommandOperation(); - } - operation.setType(Operation.Type.COMMAND); + CommandOperation operation = new CommandOperation(); operation.setEnabled(true); + operation.setType(Operation.Type.COMMAND); operation.setCode(str); deviceManagementProviderService.addOperation(deviceType, operation, validDeviceIdentifiers); } + startupOperations = getStartupOperations(); + if (startupOperations != null && !startupOperations.isEmpty()) { + addStartupOperations(startupOperations, validDeviceIdentifiers, + deviceManagementProviderService); + } } else { if (log.isDebugEnabled()) { log.debug("No operations are available."); @@ -177,6 +195,32 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager { return opNames; } + private void addStartupOperations(List startupOperations, List validDeviceIdentifiers + , DeviceManagementProviderService deviceManagementProviderService) throws DeviceMgtTaskException { + boolean isStartupConfig = Utils.getIsTenantedStartupConfig(startupConfigMap, deviceType); + if (isStartupConfig) { + try { + Operation operation; + for (String startupOp : startupOperations) { + if ("SERVER_VERSION".equals(startupOp)) { + operation = new ProfileOperation(); + operation.setPayLoad(ServerConfiguration.getInstance().getFirstProperty("Version")); + } else { + operation = new CommandOperation(); + } + operation.setType(Operation.Type.COMMAND); + operation.setEnabled(true); + operation.setCode(startupOp); + deviceManagementProviderService.addOperation(deviceType, operation, validDeviceIdentifiers); + } + } catch (InvalidDeviceException e) { + throw new DeviceMgtTaskException("Invalid DeviceIdentifiers found.", e); + } catch (OperationManagementException e) { + throw new DeviceMgtTaskException("Error occurred while adding the operations to devices", e); + } + } + } + private List getOperationListforTask() throws DeviceMgtTaskException { DeviceManagementProviderService deviceManagementProviderService = DeviceManagementDataHolder @@ -187,17 +231,31 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager { deviceType);//Get task list from each device type } + private List getStartupOperationListForTask() { + DeviceManagementProviderService deviceManagementProviderService = DeviceManagementDataHolder.getInstance() + .getDeviceManagementProvider(); + return deviceManagementProviderService.getStartupOperations(deviceType); + } + @Override public boolean isTaskOperation(String opName) { try { List monitoringOperations = this.getOperationListforTask(); + List startupOperations = this.getStartupOperationListForTask(); for (MonitoringOperation taop : monitoringOperations) { if (taop.getTaskName().equalsIgnoreCase(opName)) { return true; } } + if (startupOperations != null && !startupOperations.isEmpty()) { + for (String operation : startupOperations) { + if (opName.equalsIgnoreCase(operation)) { + return true; + } + } + } } catch (DeviceMgtTaskException e) { // ignoring the error, no need to throw, If error occurs, return value will be false. } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManagementService.java index d9449f6a49..9154afd0e3 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManagementService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/TestDeviceManagementService.java @@ -14,6 +14,22 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. + * + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.core; @@ -100,6 +116,11 @@ public class TestDeviceManagementService implements DeviceManagementService { return null; } + @Override + public StartupOperationConfig getStartupOperationConfig() { + return null; + } + @Override public PullNotificationSubscriber getPullNotificationSubscriber() { return null; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerService.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerService.java index ca245a1d00..755895a862 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/DeviceTypeManagerService.java @@ -15,6 +15,22 @@ * specific language governing permissions and limitations * under the License. * + * + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.extensions.device.type.template; @@ -27,6 +43,7 @@ import org.wso2.carbon.device.mgt.common.InitialOperationConfig; import org.wso2.carbon.device.mgt.common.MonitoringOperation; import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig; import org.wso2.carbon.device.mgt.common.ProvisioningConfig; +import org.wso2.carbon.device.mgt.common.StartupOperationConfig; import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry; import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration; @@ -70,6 +87,7 @@ public class DeviceTypeManagerService implements DeviceManagementService { private List monitoringOperations; private PolicyMonitoringManager policyMonitoringManager; private InitialOperationConfig initialOperationConfig; + private StartupOperationConfig startupOperationConfig; private PullNotificationSubscriber pullNotificationSubscriber; private DeviceStatusTaskPluginConfig deviceStatusTaskPluginConfig; private GeneralConfig generalConfig; @@ -87,6 +105,8 @@ public class DeviceTypeManagerService implements DeviceManagementService { this.setOperationMonitoringConfig(deviceTypeConfiguration); this.initialOperationConfig = new InitialOperationConfig(); this.setInitialOperationConfig(deviceTypeConfiguration); + this.startupOperationConfig = new StartupOperationConfig(); + this.setStartupOperationConfig(deviceTypeConfiguration); this.deviceStatusTaskPluginConfig = new DeviceStatusTaskPluginConfig(); this.setDeviceStatusTaskPluginConfig(deviceTypeConfiguration.getDeviceStatusTaskConfiguration()); this.setPolicyMonitoringManager(deviceTypeConfiguration.getPolicyMonitoring()); @@ -210,6 +230,11 @@ public class DeviceTypeManagerService implements DeviceManagementService { return initialOperationConfig; } + @Override + public StartupOperationConfig getStartupOperationConfig() { + return startupOperationConfig; + } + @Override public PullNotificationSubscriber getPullNotificationSubscriber() { return pullNotificationSubscriber; @@ -267,6 +292,15 @@ public class DeviceTypeManagerService implements DeviceManagementService { } } + private void setStartupOperationConfig(DeviceTypeConfiguration deviceTypeConfiguration) { + if (deviceTypeConfiguration.getOperations() != null) { + List startupOperations = deviceTypeConfiguration.getStartupOperations(); + if (startupOperations != null && !startupOperations.isEmpty()) { + startupOperationConfig.setStartupOperations(startupOperations); + } + } + } + private void setType(String type) { this.type = type; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/DeviceTypeConfiguration.java b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/DeviceTypeConfiguration.java index 46f442e89d..b1ba2d8fe8 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/DeviceTypeConfiguration.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/main/java/org/wso2/carbon/device/mgt/extensions/device/type/template/config/DeviceTypeConfiguration.java @@ -15,6 +15,22 @@ * specific language governing permissions and limitations * under the License. * + * + * Copyright (c) 2019, 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 org.wso2.carbon.device.mgt.extensions.device.type.template.config; @@ -86,6 +102,9 @@ public class DeviceTypeConfiguration { @XmlElementWrapper(name = "InitialOperationConfig") @XmlElement(name = "Operation", required = true) protected List operations; + @XmlElementWrapper(name = "StartupOperationConfig") + @XmlElement(name = "Operation", required = true) + protected List startupOperations; public List getOperations() { return operations; @@ -363,4 +382,24 @@ public class DeviceTypeConfiguration { public void setDeviceAuthorizationConfig(DeviceAuthorizationConfig value) { this.deviceAuthorizationConfig = value; } + + /** + * Gets the value of startup operation config + * + * @return possible object is + * {@link List} + */ + public List getStartupOperations() { + return startupOperations; + } + + /** + * Sets the value for startup operation config + * + * @param startupOperations possible object is + * {@link List} + */ + public void setStartupOperations(List startupOperations) { + this.startupOperations = startupOperations; + } } diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/test/java/org/wso2/carbon/policy/mgt/core/mock/TypeXDeviceManagementService.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/test/java/org/wso2/carbon/policy/mgt/core/mock/TypeXDeviceManagementService.java index 0f76246da6..c0297bff75 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/test/java/org/wso2/carbon/policy/mgt/core/mock/TypeXDeviceManagementService.java +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/test/java/org/wso2/carbon/policy/mgt/core/mock/TypeXDeviceManagementService.java @@ -14,6 +14,23 @@ * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. + * + * + * Copyright (c) 2019, 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 org.wso2.carbon.policy.mgt.core.mock; @@ -24,6 +41,7 @@ import org.wso2.carbon.device.mgt.common.InitialOperationConfig; import org.wso2.carbon.device.mgt.common.MonitoringOperation; import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig; import org.wso2.carbon.device.mgt.common.ProvisioningConfig; +import org.wso2.carbon.device.mgt.common.StartupOperationConfig; import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager; import org.wso2.carbon.device.mgt.common.general.GeneralConfig; import org.wso2.carbon.device.mgt.common.policy.mgt.PolicyMonitoringManager; @@ -88,6 +106,11 @@ public class TypeXDeviceManagementService implements DeviceManagementService { return null; } + @Override + public StartupOperationConfig getStartupOperationConfig() { + return null; + } + @Override public PullNotificationSubscriber getPullNotificationSubscriber() { return null; From be1bee9b9ada8b00d5c95389a935c69fc24c7544 Mon Sep 17 00:00:00 2001 From: Saad Sahibjan Date: Thu, 30 May 2019 18:21:28 +0530 Subject: [PATCH 14/28] Modify delete device API to have permanentDelete query parameter --- .../jaxrs/service/api/DeviceManagementService.java | 7 ++++++- .../service/impl/DeviceManagementServiceImpl.java | 14 +++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceManagementService.java index db0902ee36..96991ed2ce 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceManagementService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceManagementService.java @@ -899,7 +899,12 @@ public interface DeviceManagementService { required = true) @PathParam("device-id") @Size(max = 45) - String deviceId); + String deviceId, + @ApiParam( + name = "permanentDelete", + value = "Boolean flag indicating whether to permanently delete the device.", + required = false) + @QueryParam("permanentDelete") boolean permanentDelete); @GET @Path("/{type}/{id}/features") diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImpl.java index b679323f97..9175580ce9 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImpl.java @@ -323,7 +323,9 @@ public class DeviceManagementServiceImpl implements DeviceManagementService { @DELETE @Override @Path("/type/{device-type}/id/{device-id}") - public Response deleteDevice(@PathParam("device-type") String deviceType, @PathParam("device-id") String deviceId) { + public Response deleteDevice(@PathParam("device-type") String deviceType, + @PathParam("device-id") String deviceId, + @QueryParam("permanentDelete") boolean permanentDelete) { DeviceManagementProviderService deviceManagementProviderService = DeviceMgtAPIUtils.getDeviceManagementService(); try { @@ -333,13 +335,19 @@ public class DeviceManagementServiceImpl implements DeviceManagementService { return Response.status(Response.Status.NOT_FOUND).build(); } - boolean response = deviceManagementProviderService.disenrollDevice(deviceIdentifier); + boolean response; + + if (permanentDelete) { + response = deviceManagementProviderService.deleteDevice(deviceIdentifier); + } else { + response = deviceManagementProviderService.disenrollDevice(deviceIdentifier); + } return Response.status(Response.Status.OK).entity(response).build(); } catch (DeviceManagementException e) { String msg = "Error encountered while deleting device of type : " + deviceType + " and " + "ID : " + deviceId; - log.error(msg); + log.error(msg, e); return Response.status(Response.Status.BAD_REQUEST).entity( new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build() ).build(); From 48ae5c58e9cfbc9bf26fa6a0d80d3dc55df0d063 Mon Sep 17 00:00:00 2001 From: Saad Sahibjan Date: Thu, 30 May 2019 18:41:23 +0530 Subject: [PATCH 15/28] Add deleteDevice service and impl --- .../DeviceManagementProviderService.java | 2 + .../DeviceManagementProviderServiceImpl.java | 61 +++++++++++++++++++ 2 files changed, 63 insertions(+) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java index c2c7ef4813..43ac2c8567 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderService.java @@ -582,6 +582,8 @@ public interface DeviceManagementProviderService { boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException; + boolean deleteDevice(DeviceIdentifier deviceId) throws DeviceManagementException; + boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException; boolean isActive(DeviceIdentifier deviceId) throws DeviceManagementException; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java index 151352c7b1..621cc966e3 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java @@ -512,6 +512,67 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv return deviceManager.disenrollDevice(deviceId); } + @Override + public boolean deleteDevice(DeviceIdentifier deviceId) throws DeviceManagementException { + if (deviceId == null) { + String msg = "Required values are not set to permanently delete device"; + log.error(msg); + throw new DeviceManagementException(msg); + } + if (log.isDebugEnabled()) { + log.debug("Permanently deleting device: " + deviceId.getId() + " of type '" + deviceId.getType() + "'"); + } + DeviceManager deviceManager = this.getDeviceManager(deviceId.getType()); + if (deviceManager == null) { + if (log.isDebugEnabled()) { + log.debug("Device Manager associated with the device type '" + deviceId.getType() + "' is null. " + + "Therefore, not attempting method 'deleteDevice'"); + } + return false; + } + + int tenantId = this.getTenantId(); + + Device device = this.getDevice(deviceId, false); + if (device == null) { + if (log.isDebugEnabled()) { + log.debug("Device not found for id '" + deviceId.getId() + "'"); + } + return false; + } + + if (!device.getEnrolmentInfo().getStatus().equals(EnrolmentInfo.Status.REMOVED)) { + String msg = "Device " + deviceId.getId() + " of type " + deviceId.getType() + " is not dis-enrolled to " + + "permanently delete the device"; + log.error(msg); + throw new DeviceManagementException(msg); + } else { + try { + DeviceManagementDAOFactory.beginTransaction(); + deviceDAO.deleteDevice(deviceId, tenantId); + DeviceManagementDAOFactory.commitTransaction(); + this.removeDeviceFromCache(deviceId); + } catch (DeviceManagementDAOException e) { + DeviceManagementDAOFactory.rollbackTransaction(); + String msg = "Error occurred while permanently deleting '" + deviceId.getType() + + "' device with the identifier '" + deviceId.getId() + "'"; + log.error(msg, e); + throw new DeviceManagementException(msg, e); + } catch (TransactionManagementException e) { + String msg = "Error occurred while initiating transaction"; + log.error(msg, e); + throw new DeviceManagementException(msg, e); + } catch (Exception e) { + String msg = "Error occurred while permanently deleting device: " + deviceId.getId(); + log.error(msg, e); + throw new DeviceManagementException(msg, e); + } finally { + DeviceManagementDAOFactory.closeConnection(); + } + } + return true; + } + @Override public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException { Device device = this.getDevice(deviceId, false); From 52e971de7609e9fcb5bb76f79753d830bf07288a Mon Sep 17 00:00:00 2001 From: Saad Sahibjan Date: Thu, 30 May 2019 18:43:15 +0530 Subject: [PATCH 16/28] Add delete device dao related implementation --- .../carbon/device/mgt/core/dao/DeviceDAO.java | 8 + .../core/dao/impl/AbstractDeviceDAOImpl.java | 377 ++++++++++++++++++ 2 files changed, 385 insertions(+) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java index bdb7557ae4..b089477f06 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/DeviceDAO.java @@ -478,5 +478,13 @@ public interface DeviceDAO { * fails. */ List getDevicesByIdentifiers(List deviceIdentifiers, int tenantId) throws DeviceManagementDAOException; + + /** + * This method is used to permanently delete the device and its related details + * @param deviceIdentifier device id + * @param tenantId tenant id + * @throws DeviceManagementDAOException + */ + void deleteDevice(DeviceIdentifier deviceIdentifier, int tenantId) throws DeviceManagementDAOException; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/AbstractDeviceDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/AbstractDeviceDAOImpl.java index 30cd6d4dcd..aa07aba8b4 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/AbstractDeviceDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/AbstractDeviceDAOImpl.java @@ -36,6 +36,7 @@ package org.wso2.carbon.device.mgt.core.dao.impl; +import org.apache.commons.logging.LogFactory; import org.wso2.carbon.device.mgt.common.Device; import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.EnrolmentInfo; @@ -62,6 +63,8 @@ import java.util.StringJoiner; public abstract class AbstractDeviceDAOImpl implements DeviceDAO { + private static final org.apache.commons.logging.Log log = LogFactory.getLog(AbstractDeviceDAOImpl.class); + @Override public int addDevice(int typeId, Device device, int tenantId) throws DeviceManagementDAOException { Connection conn; @@ -1404,5 +1407,379 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO { e); } } + + public void deleteDevice(DeviceIdentifier deviceIdentifier, int tenantId) throws DeviceManagementDAOException { + Connection conn; + try { + conn = this.getConnection(); + int deviceId = getDeviceId(conn, deviceIdentifier, tenantId); + if (deviceId == -1) { + String msg = "Device " + deviceIdentifier.getId() + " of type " + deviceIdentifier.getType() + + " is not found"; + log.error(msg); + throw new DeviceManagementDAOException(msg); + } else { + int enrollmentId = getEnrollmentId(conn, deviceId, tenantId); + if (enrollmentId == -1) { + String msg = "Enrollment not found for the device " + deviceIdentifier.getId() + " of type " + + deviceIdentifier.getType(); + log.error(msg); + throw new DeviceManagementDAOException(msg); + } else { + removeDeviceDetail(conn, deviceId); + if (log.isDebugEnabled()) { + log.debug("Successfully removed device detail data"); + } + removeDeviceLocation(conn, deviceId); + if (log.isDebugEnabled()) { + log.debug("Successfully removed device location data"); + } + removeDeviceInfo(conn, deviceId); + if (log.isDebugEnabled()) { + log.debug("Successfully removed device info data"); + } + removeDeviceNotification(conn, deviceId); + if (log.isDebugEnabled()) { + log.debug("Successfully removed device notification data"); + } + removeDeviceApplicationMapping(conn, deviceId); + if (log.isDebugEnabled()) { + log.debug("Successfully removed device application mapping data"); + } + removeDevicePolicyApplied(conn, deviceId); + if (log.isDebugEnabled()) { + log.debug("Successfully removed device applied policy data"); + } + removeDevicePolicy(conn, deviceId); + if (log.isDebugEnabled()) { + log.debug("Successfully removed device policy data"); + } + removeEnrollmentDeviceDetail(conn, enrollmentId); + if (log.isDebugEnabled()) { + log.debug("Successfully removed enrollment device detail data"); + } + removeEnrollmentDeviceLocation(conn, enrollmentId); + if (log.isDebugEnabled()) { + log.debug("Successfully removed enrollment device location data"); + } + removeEnrollmentDeviceInfo(conn, enrollmentId); + if (log.isDebugEnabled()) { + log.debug("Successfully removed enrollment device info data"); + } + removeEnrollmentDeviceApplicationMapping(conn, enrollmentId); + if (log.isDebugEnabled()) { + log.debug("Successfully removed enrollment device application mapping data"); + } + removeDeviceOperationResponse(conn, enrollmentId); + if (log.isDebugEnabled()) { + log.debug("Successfully removed device operation response data"); + } + removeEnrollmentOperationMapping(conn, enrollmentId); + if (log.isDebugEnabled()) { + log.debug("Successfully removed enrollment operation mapping data"); + } + removeDeviceEnrollment(conn, deviceId); + if (log.isDebugEnabled()) { + log.debug("Successfully removed device enrollment data"); + } + removeDeviceGroupMapping(conn, deviceId); + if (log.isDebugEnabled()) { + log.debug("Successfully removed device group mapping data"); + } + removeDevice(conn, deviceId); + if (log.isDebugEnabled()) { + log.debug("Successfully permanently deleted the device"); + } + } + } + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while deleting the device", e); + } + } + private int getDeviceId(Connection conn, DeviceIdentifier deviceIdentifier, int tenantId) + throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + int deviceId = -1; + try { + String sql = "SELECT ID FROM DM_DEVICE WHERE DEVICE_IDENTIFICATION = ? AND TENANT_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setString(1, deviceIdentifier.getId()); + stmt.setInt(2, tenantId); + rs = stmt.executeQuery(); + if (rs.next()) { + deviceId = rs.getInt("ID"); + } + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while retrieving device id of the device", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + return deviceId; + } + + private int getEnrollmentId(Connection conn, int deviceId, int tenantId) throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + int enrollmentId = -1; + try { + String sql = "SELECT ID FROM DM_ENROLMENT WHERE DEVICE_ID = ? AND TENANT_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, deviceId); + stmt.setInt(2, tenantId); + rs = stmt.executeQuery(); + if (rs.next()) { + enrollmentId = rs.getInt("ID"); + } + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while retrieving enrollment id of the device", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + return enrollmentId; + } + + private void removeDeviceDetail(Connection conn, int deviceId) throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_DEVICE_DETAIL WHERE DEVICE_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, deviceId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing device detail", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } + + private void removeDeviceLocation(Connection conn, int deviceId) throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_DEVICE_LOCATION WHERE DEVICE_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, deviceId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing device location", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } + + private void removeDeviceInfo(Connection conn, int deviceId) throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_DEVICE_INFO WHERE DEVICE_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, deviceId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing device info", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } + + private void removeDeviceNotification(Connection conn, int deviceId) throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_NOTIFICATION WHERE DEVICE_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, deviceId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing device notification", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } + + private void removeDeviceApplicationMapping(Connection conn, int deviceId) throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_DEVICE_APPLICATION_MAPPING WHERE DEVICE_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, deviceId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing device application mapping", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } + + private void removeDevicePolicyApplied(Connection conn, int deviceId) throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_DEVICE_POLICY_APPLIED WHERE DEVICE_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, deviceId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing device policy applied", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } + + private void removeDevicePolicy(Connection conn, int deviceId) throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_DEVICE_POLICY WHERE DEVICE_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, deviceId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing device policy", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } + + private void removeEnrollmentDeviceDetail(Connection conn, int enrollmentId) throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_DEVICE_DETAIL WHERE ENROLMENT_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, enrollmentId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing enrollment device detail", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } + + private void removeEnrollmentDeviceLocation(Connection conn, int enrollmentId) throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_DEVICE_LOCATION WHERE ENROLMENT_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, enrollmentId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing enrollment device location", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } + + private void removeEnrollmentDeviceInfo(Connection conn, int enrollmentId) throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_DEVICE_INFO WHERE ENROLMENT_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, enrollmentId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing enrollment device info", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } + + private void removeEnrollmentDeviceApplicationMapping(Connection conn, int enrollmentId) + throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_DEVICE_APPLICATION_MAPPING WHERE ENROLMENT_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, enrollmentId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing enrollment device application " + + "mapping", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } + + private void removeDeviceOperationResponse(Connection conn, int enrollmentId) throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_DEVICE_OPERATION_RESPONSE WHERE ENROLMENT_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, enrollmentId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing device operation response", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } + + private void removeEnrollmentOperationMapping(Connection conn, int enrollmentId) + throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_ENROLMENT_OP_MAPPING WHERE ENROLMENT_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, enrollmentId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing enrollment operation mapping", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } + + private void removeDeviceEnrollment(Connection conn, int deviceId) throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_ENROLMENT WHERE DEVICE_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, deviceId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing device enrollment", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } + + private void removeDeviceGroupMapping(Connection conn, int deviceId) throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_DEVICE_GROUP_MAP WHERE DEVICE_ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, deviceId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing device group mapping", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } + + private void removeDevice(Connection conn, int deviceId) throws DeviceManagementDAOException { + PreparedStatement stmt = null; + ResultSet rs = null; + try { + String sql = "DELETE FROM DM_DEVICE WHERE ID = ?"; + stmt = conn.prepareStatement(sql); + stmt.setInt(1, deviceId); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new DeviceManagementDAOException("Error occurred while removing device", e); + } finally { + DeviceManagementDAOUtil.cleanupResources(stmt, rs); + } + } } From 1f001b09f17bf5680838029e8b1578326a9c10ec Mon Sep 17 00:00:00 2001 From: Saad Sahibjan Date: Fri, 31 May 2019 12:09:40 +0530 Subject: [PATCH 17/28] Fix tests related to deleteDevice API --- .../service/impl/DeviceManagementServiceImplTest.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImplTest.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImplTest.java index fc26189f40..6b923ba775 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImplTest.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/test/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DeviceManagementServiceImplTest.java @@ -481,7 +481,8 @@ public class DeviceManagementServiceImplTest { public void testDeleteDevice() { PowerMockito.stub(PowerMockito.method(DeviceMgtAPIUtils.class, "getDeviceManagementService")) .toReturn(this.deviceManagementProviderService); - Response response = this.deviceManagementService.deleteDevice(TEST_DEVICE_TYPE, UUID.randomUUID().toString()); + Response response = this.deviceManagementService.deleteDevice(TEST_DEVICE_TYPE, UUID.randomUUID().toString() + , false); Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode()); } @@ -491,7 +492,8 @@ public class DeviceManagementServiceImplTest { .toReturn(this.deviceManagementProviderService); Mockito.when(this.deviceManagementProviderService .getDevice(Mockito.any(DeviceIdentifier.class), Mockito.anyBoolean())).thenReturn(null); - Response response = this.deviceManagementService.deleteDevice(TEST_DEVICE_TYPE, UUID.randomUUID().toString()); + Response response = this.deviceManagementService.deleteDevice(TEST_DEVICE_TYPE, UUID.randomUUID().toString() + , false); Assert.assertEquals(response.getStatus(), Response.Status.NOT_FOUND.getStatusCode()); Mockito.reset(this.deviceManagementProviderService); } @@ -502,7 +504,8 @@ public class DeviceManagementServiceImplTest { .toReturn(this.deviceManagementProviderService); Mockito.when(this.deviceManagementProviderService.disenrollDevice(Mockito.any(DeviceIdentifier.class))) .thenThrow(new DeviceManagementException()); - Response response = this.deviceManagementService.deleteDevice(TEST_DEVICE_TYPE, UUID.randomUUID().toString()); + Response response = this.deviceManagementService.deleteDevice(TEST_DEVICE_TYPE, UUID.randomUUID().toString() + , false); Assert.assertEquals(response.getStatus(), Response.Status.BAD_REQUEST.getStatusCode()); Mockito.reset(this.deviceManagementProviderService); } From c71b1f9314d1813d125e4c11b0814ec945d6f860 Mon Sep 17 00:00:00 2001 From: Entgra Builder Date: Mon, 3 Jun 2019 15:43:05 +0000 Subject: [PATCH 18/28] [maven-release-plugin] prepare release v3.2.6 --- .../org.wso2.carbon.apimgt.annotations/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.application.extension/pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.handlers/pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.integration.client/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.webapp.publisher/pom.xml | 4 ++-- components/apimgt-extensions/pom.xml | 4 ++-- .../org.wso2.carbon.certificate.mgt.api/pom.xml | 2 +- .../org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml | 2 +- .../pom.xml | 2 +- .../org.wso2.carbon.certificate.mgt.core/pom.xml | 4 ++-- .../org.wso2.carbon.certificate.mgt.v09.api/pom.xml | 2 +- components/certificate-mgt/pom.xml | 4 ++-- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- components/device-mgt-extensions/pom.xml | 2 +- .../pom.xml | 2 +- .../org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.api/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.common/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.core/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.extensions/pom.xml | 2 +- components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.url.printer/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml | 2 +- components/device-mgt/pom.xml | 2 +- .../email-sender/org.wso2.carbon.email.sender.core/pom.xml | 2 +- components/email-sender/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.oauth.extensions/pom.xml | 4 ++-- .../pom.xml | 2 +- .../org.wso2.carbon.identity.jwt.client.extension/pom.xml | 2 +- components/identity-extensions/pom.xml | 2 +- .../org.wso2.carbon.complex.policy.decision.point/pom.xml | 4 ++-- .../org.wso2.carbon.policy.decision.point/pom.xml | 4 ++-- .../org.wso2.carbon.policy.information.point/pom.xml | 4 ++-- .../policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml | 4 ++-- .../policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml | 4 ++-- components/policy-mgt/pom.xml | 4 ++-- components/test-coverage/pom.xml | 2 +- .../org.wso2.carbon.webapp.authenticator.framework/pom.xml | 4 ++-- components/webapp-authenticator-framework/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.handler.server.feature/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml | 4 ++-- features/apimgt-extensions/pom.xml | 4 ++-- .../org.wso2.carbon.certificate.mgt.api.feature/pom.xml | 2 +- .../pom.xml | 2 +- .../org.wso2.carbon.certificate.mgt.server.feature/pom.xml | 4 ++-- features/certificate-mgt/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/device-mgt-extensions/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.analytics.feature/pom.xml | 4 ++-- .../org.wso2.carbon.device.mgt.api.feature/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.basics.feature/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.extensions.feature/pom.xml | 4 ++-- .../device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.server.feature/pom.xml | 4 ++-- .../org.wso2.carbon.device.mgt.ui.feature/pom.xml | 2 +- features/device-mgt/pom.xml | 2 +- .../org.wso2.carbon.email.sender.feature/pom.xml | 4 ++-- features/email-sender/pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/jwt-client/pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/oauth-extensions/pom.xml | 4 ++-- .../org.wso2.carbon.policy.mgt.server.feature/pom.xml | 4 ++-- features/policy-mgt/pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/webapp-authenticator-framework/pom.xml | 4 ++-- pom.xml | 6 +++--- 80 files changed, 126 insertions(+), 126 deletions(-) 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 64d60ecb12..3eea6e28b8 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml @@ -22,13 +22,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.annotations - 3.2.6-SNAPSHOT + 3.2.6 bundle WSO2 Carbon - API Management Annotations WSO2 Carbon - API Management Custom Annotation Module 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 f5faaf1fce..0a2b164ddd 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,12 +21,12 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 - 3.2.6-SNAPSHOT + 3.2.6 org.wso2.carbon.apimgt.application.extension.api war WSO2 Carbon - API Application Management API 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 32d26f06cf..63112ae11c 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,12 +22,12 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 - 3.2.6-SNAPSHOT + 3.2.6 org.wso2.carbon.apimgt.application.extension bundle WSO2 Carbon - API Application Management diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml index 26a0337eeb..107991854a 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml @@ -21,13 +21,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.handlers - 3.2.6-SNAPSHOT + 3.2.6 bundle WSO2 Carbon - API Security Handler Component WSO2 Carbon - API Management Security Handler Module diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml index 3cf50d3e3c..be305848a9 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml @@ -13,13 +13,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.integration.client - 3.2.6-SNAPSHOT + 3.2.6 bundle WSO2 Carbon - API Management Integration Client WSO2 Carbon - API Management Integration Client diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml index 247540084b..0854e82deb 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml @@ -13,13 +13,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.integration.generated.client - 3.2.6-SNAPSHOT + 3.2.6 bundle WSO2 Carbon - API Management Integration Generated Client WSO2 Carbon - API Management Integration Client 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 8ac8d7633d..2b28ab9d60 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,13 +22,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.webapp.publisher - 3.2.6-SNAPSHOT + 3.2.6 bundle WSO2 Carbon - API Management Webapp Publisher WSO2 Carbon - API Management Webapp Publisher diff --git a/components/apimgt-extensions/pom.xml b/components/apimgt-extensions/pom.xml index 39767f6057..424173b55e 100644 --- a/components/apimgt-extensions/pom.xml +++ b/components/apimgt-extensions/pom.xml @@ -22,13 +22,13 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml 4.0.0 apimgt-extensions - 3.2.6-SNAPSHOT + 3.2.6 pom WSO2 Carbon - API Management Extensions Component http://wso2.org 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 c237ccdf5c..7856fccd61 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 - 3.2.6-SNAPSHOT + 3.2.6 ../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 4b4fc36ba5..6584c744a6 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 - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml index 5783893e67..acabbf9ce5 100644 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml +++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml @@ -24,7 +24,7 @@ certificate-mgt org.wso2.carbon.devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../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 51ea670dc9..c9f354070a 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 @@ -21,13 +21,13 @@ org.wso2.carbon.devicemgt certificate-mgt - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.certificate.mgt.core - 3.2.6-SNAPSHOT + 3.2.6 bundle WSO2 Carbon - Certificate Management Core WSO2 Carbon - Certificate Management Core diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml index 4bc7d15ad7..6ba95e1ff2 100644 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml +++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml @@ -24,7 +24,7 @@ certificate-mgt org.wso2.carbon.devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml diff --git a/components/certificate-mgt/pom.xml b/components/certificate-mgt/pom.xml index 25d1a2afaa..eb764f9857 100644 --- a/components/certificate-mgt/pom.xml +++ b/components/certificate-mgt/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt certificate-mgt - 3.2.6-SNAPSHOT + 3.2.6 pom WSO2 Carbon - Certificate Management Component http://wso2.org 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 7d0cacf885..d55acab55a 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 - 3.2.6-SNAPSHOT + 3.2.6 ../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 0fc2cd4650..e27ebb6a98 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 - 3.2.6-SNAPSHOT + 3.2.6 ../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 ee5c94acef..08357e0747 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 - 3.2.6-SNAPSHOT + 3.2.6 ../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 1e725423fc..b7f3ba5097 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 - 3.2.6-SNAPSHOT + 3.2.6 ../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 f34673930e..f719d68bbf 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 - 3.2.6-SNAPSHOT + 3.2.6 ../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 7cab257931..79b90036d2 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 - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml diff --git a/components/device-mgt-extensions/pom.xml b/components/device-mgt-extensions/pom.xml index 2778bef6bd..f16d2bfc6a 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 - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml index 8961ba8736..53ce5e9a6f 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt device-mgt - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml index 63781f655e..f4612309c7 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml @@ -20,7 +20,7 @@ device-mgt org.wso2.carbon.devicemgt - 3.2.6-SNAPSHOT + 3.2.6 4.0.0 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 a0361defd1..fde6d26128 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 - 3.2.6-SNAPSHOT + 3.2.6 ../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 87cf5d983e..db02a038eb 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 - 3.2.6-SNAPSHOT + 3.2.6 ../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 c5c3f9cec7..57018975a5 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 - 3.2.6-SNAPSHOT + 3.2.6 ../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 83bade2bb5..70a5fb74a7 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 - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml index 5f05220f5d..cd0d247c34 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml @@ -22,7 +22,7 @@ device-mgt org.wso2.carbon.devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../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 6a39a3821d..eaaa5c9fb2 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 - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml index b46806e238..bc4ec796ec 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml @@ -22,7 +22,7 @@ device-mgt org.wso2.carbon.devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml diff --git a/components/device-mgt/pom.xml b/components/device-mgt/pom.xml index bc49d28963..a9325cae94 100644 --- a/components/device-mgt/pom.xml +++ b/components/device-mgt/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml diff --git a/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml b/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml index 7f2c968856..7edb0af3bc 100644 --- a/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml +++ b/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt email-sender - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml diff --git a/components/email-sender/pom.xml b/components/email-sender/pom.xml index 8257c0611a..f8cfef9708 100644 --- a/components/email-sender/pom.xml +++ b/components/email-sender/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../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 fd88218c3e..da7f3b1c29 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,13 +22,13 @@ org.wso2.carbon.devicemgt identity-extensions - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.oauth.extensions - 3.2.6-SNAPSHOT + 3.2.6 bundle WSO2 Carbon - OAuth Extensions http://wso2.org diff --git a/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml b/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml index 64227ae5a0..e7b23513ec 100644 --- a/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml +++ b/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml @@ -21,7 +21,7 @@ identity-extensions org.wso2.carbon.devicemgt - 3.2.6-SNAPSHOT + 3.2.6 4.0.0 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 c77f32bde3..33fe13820b 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 - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml diff --git a/components/identity-extensions/pom.xml b/components/identity-extensions/pom.xml index 1e89e48ce7..bbbf6373ef 100644 --- a/components/identity-extensions/pom.xml +++ b/components/identity-extensions/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml diff --git a/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml b/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml index 5a081c3b8f..3a5be4d0e4 100644 --- a/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml +++ b/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.complex.policy.decision.point - 3.2.6-SNAPSHOT + 3.2.6 bundle WSO2 Carbon - Policy Decision Point WSO2 Carbon - Policy Decision Point 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 93da48f113..833fe19a36 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,14 +3,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.decision.point - 3.2.6-SNAPSHOT + 3.2.6 bundle WSO2 Carbon - Policy Decision Point WSO2 Carbon - Policy Decision Point 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 c97b11230e..9bf7e56c07 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 - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml @@ -11,7 +11,7 @@ 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.information.point - 3.2.6-SNAPSHOT + 3.2.6 bundle WSO2 Carbon - Policy Information Point WSO2 Carbon - Policy Information Point 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 477b86c034..2ca0a58ed4 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,14 +22,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.mgt.common - 3.2.6-SNAPSHOT + 3.2.6 bundle WSO2 Carbon - Policy Management Common WSO2 Carbon - Policy Management Common 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 ad57042e08..0d9f382f7e 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,14 +22,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.mgt.core - 3.2.6-SNAPSHOT + 3.2.6 bundle WSO2 Carbon - Policy Management Core WSO2 Carbon - Policy Management Core diff --git a/components/policy-mgt/pom.xml b/components/policy-mgt/pom.xml index abe39221d2..3f68c09751 100644 --- a/components/policy-mgt/pom.xml +++ b/components/policy-mgt/pom.xml @@ -23,13 +23,13 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml 4.0.0 policy-mgt - 3.2.6-SNAPSHOT + 3.2.6 pom WSO2 Carbon - Policy Management Component http://wso2.org diff --git a/components/test-coverage/pom.xml b/components/test-coverage/pom.xml index 0597c9ed43..ffb26abae9 100644 --- a/components/test-coverage/pom.xml +++ b/components/test-coverage/pom.xml @@ -21,7 +21,7 @@ carbon-devicemgt org.wso2.carbon.devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml 4.0.0 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 0e8d030d6f..3928897c96 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,14 +21,14 @@ org.wso2.carbon.devicemgt webapp-authenticator-framework - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.webapp.authenticator.framework - 3.2.6-SNAPSHOT + 3.2.6 bundle WSO2 Carbon - Web Application Authenticator Framework Bundle WSO2 Carbon - Web Application Authenticator Framework Bundle diff --git a/components/webapp-authenticator-framework/pom.xml b/components/webapp-authenticator-framework/pom.xml index 87434a11de..641988d432 100644 --- a/components/webapp-authenticator-framework/pom.xml +++ b/components/webapp-authenticator-framework/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt webapp-authenticator-framework - 3.2.6-SNAPSHOT + 3.2.6 pom WSO2 Carbon - Webapp Authenticator Framework http://wso2.org 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 19d63cc08c..859d42cc7b 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,14 +21,14 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.application.extension.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - API Management Application Extension Feature http://wso2.org This feature contains an implementation of a api application registration, which takes care of subscription diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml index 7f14a27592..89340f6dad 100644 --- a/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml +++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.handler.server.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - Device Management - APIM handler Server Feature http://wso2.org This feature contains the handler for the api authentications diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml index 6ee4a17965..49d1ac0341 100644 --- a/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml +++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml @@ -21,13 +21,13 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.integration.client.feature - 3.2.6-SNAPSHOT + 3.2.6 pom WSO2 Carbon - APIM Integration Client Feature http://wso2.org 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 36529a8fa2..a7ecaeff08 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,14 +21,14 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.apimgt.webapp.publisher.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - API Management Webapp Publisher Feature http://wso2.org This feature contains an implementation of a Tomcat lifecycle listener, which takes care of publishing diff --git a/features/apimgt-extensions/pom.xml b/features/apimgt-extensions/pom.xml index 3829bc334e..5464be8266 100644 --- a/features/apimgt-extensions/pom.xml +++ b/features/apimgt-extensions/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.6-SNAPSHOT + 3.2.6 pom WSO2 Carbon - API Management Extensions Feature http://wso2.org 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 16a44f1286..64ed7b9ea6 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 - 3.2.6-SNAPSHOT + 3.2.6 ../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 3ddcda3b02..157d0b7705 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 - 3.2.6-SNAPSHOT + 3.2.6 ../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 29b5aae2dd..e8cc74866d 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,14 +22,14 @@ org.wso2.carbon.devicemgt certificate-mgt-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.certificate.mgt.server.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - Certificate Management Server Feature http://wso2.org This feature contains the core bundles required for back-end Certificate Management functionality diff --git a/features/certificate-mgt/pom.xml b/features/certificate-mgt/pom.xml index a98763f338..3650e241dd 100644 --- a/features/certificate-mgt/pom.xml +++ b/features/certificate-mgt/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt certificate-mgt-feature - 3.2.6-SNAPSHOT + 3.2.6 pom WSO2 Carbon - Certificate Management Feature http://wso2.org 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 88ad171e74..9d3cf49ceb 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - Device Type Deployer Feature http://wso2.org WSO2 Carbon - Device Type Deployer Feature 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 f4ecf1afb0..5e4f18c982 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - FCM Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - MQTT Based Push Notification Provider Feature 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 99d1130b47..69230d5c79 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - MQTT Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - MQTT Based Push Notification Provider Feature 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 f183bfbcc3..2268aa4f8e 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - MQTT Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - MQTT Based Push Notification Provider Feature 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 7ac97feb8b..9229f09490 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - XMPP Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - XMPP Based Push Notification Provider Feature diff --git a/features/device-mgt-extensions/pom.xml b/features/device-mgt-extensions/pom.xml index 794f617a55..720a2157a0 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 - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml index 1dffb89ce1..890abcba1a 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml +++ b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.analytics.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - Device Management Server Feature http://wso2.org This feature contains bundles related to device analytics data publisher and ws proxy 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 c5e0a57eff..a77038f522 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 - 3.2.6-SNAPSHOT + 3.2.6 ../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 9807d7d4ee..8feb81f2e1 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 - 3.2.6-SNAPSHOT + 3.2.6 ../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 d685cab146..c32b8776ea 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,14 +4,14 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - Device Management Extensions Feature http://wso2.org This feature contains common extensions used by key device management functionalities 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 9a537f900d..3d80992764 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 - 3.2.6-SNAPSHOT + 3.2.6 ../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 d3bdd812ad..bcc0cb1868 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.server.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - Device Management Server Feature http://wso2.org This feature contains the core bundles required for Back-end Device Management functionality diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml index 54206c6afa..c7a14cc314 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml +++ b/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml diff --git a/features/device-mgt/pom.xml b/features/device-mgt/pom.xml index 46aa4e93b4..5c27d2207d 100644 --- a/features/device-mgt/pom.xml +++ b/features/device-mgt/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml diff --git a/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml b/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml index af5fa838b2..055a1ab896 100644 --- a/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml +++ b/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt email-sender-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.email.sender.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - Email Sender Feature http://wso2.org This feature contains the core bundles required for email sender related functionality diff --git a/features/email-sender/pom.xml b/features/email-sender/pom.xml index 25742cd57b..dc1b84acdf 100644 --- a/features/email-sender/pom.xml +++ b/features/email-sender/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt email-sender-feature - 3.2.6-SNAPSHOT + 3.2.6 pom WSO2 Carbon - Email Sender Feature http://wso2.org 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 c166630cb9..271a3abe63 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,14 +23,14 @@ org.wso2.carbon.devicemgt jwt-client-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.identity.jwt.client.extension.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - JWT Client Feature http://wso2.org This feature contains jwt client implementation from which we can get a access token using the jwt diff --git a/features/jwt-client/pom.xml b/features/jwt-client/pom.xml index eaeb4df3e6..2e1ca299d3 100644 --- a/features/jwt-client/pom.xml +++ b/features/jwt-client/pom.xml @@ -23,13 +23,13 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml 4.0.0 jwt-client-feature - 3.2.6-SNAPSHOT + 3.2.6 pom WSO2 Carbon - JWT Client Extension Feature http://wso2.org diff --git a/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml b/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml index aa51fbd5bc..54811596b7 100644 --- a/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml +++ b/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml @@ -23,14 +23,14 @@ org.wso2.carbon.devicemgt oauth-extensions-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.oauth.extensions.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - Device Mgt OAuth Extensions Feature http://wso2.org This feature contains devicemgt related OAuth extensions diff --git a/features/oauth-extensions/pom.xml b/features/oauth-extensions/pom.xml index 6b706878d3..1a6ba1d3e6 100644 --- a/features/oauth-extensions/pom.xml +++ b/features/oauth-extensions/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt oauth-extensions-feature - 3.2.6-SNAPSHOT + 3.2.6 pom WSO2 Carbon - Device Management OAuth Extensions Feature http://wso2.org 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 0c6ad6c0dc..69ca32d92e 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,14 +23,14 @@ org.wso2.carbon.devicemgt policy-mgt-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.policy.mgt.server.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - Policy Management Server Feature http://wso2.org This feature contains the core bundles required for Back-end Device Management functionality diff --git a/features/policy-mgt/pom.xml b/features/policy-mgt/pom.xml index 0dd05a846b..103c28ab33 100644 --- a/features/policy-mgt/pom.xml +++ b/features/policy-mgt/pom.xml @@ -23,14 +23,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt policy-mgt-feature - 3.2.6-SNAPSHOT + 3.2.6 pom WSO2 Carbon - Policy Management Feature http://wso2.org 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 5578054340..42991c8aa1 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,14 +22,14 @@ org.wso2.carbon.devicemgt webapp-authenticator-framework-feature - 3.2.6-SNAPSHOT + 3.2.6 ../pom.xml 4.0.0 org.wso2.carbon.webapp.authenticator.framework.server.feature pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - Webapp Authenticator Framework Server Feature http://wso2.org This feature contains the core bundles required for Back-end Device Management functionality diff --git a/features/webapp-authenticator-framework/pom.xml b/features/webapp-authenticator-framework/pom.xml index 6864800151..27699202dc 100644 --- a/features/webapp-authenticator-framework/pom.xml +++ b/features/webapp-authenticator-framework/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6-SNAPSHOT + 3.2.6 ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt webapp-authenticator-framework-feature - 3.2.6-SNAPSHOT + 3.2.6 pom WSO2 Carbon - Webapp Authenticator Framework Feature http://wso2.org diff --git a/pom.xml b/pom.xml index a2b1f9b1b9..18dc573c20 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt pom - 3.2.6-SNAPSHOT + 3.2.6 WSO2 Carbon - Device Management - Parent http://wso2.org WSO2 Connected Device Manager Components @@ -1671,7 +1671,7 @@ https://gitlab.com/entgra/carbon-device-mgt.git scm:git:https://gitlab.com/entgra/carbon-device-mgt.git scm:git:https://gitlab.com/entgra/carbon-device-mgt.git - HEAD + v3.2.6 @@ -1989,7 +1989,7 @@ 1.2.11.wso2v10 - 3.2.6-SNAPSHOT + 3.2.6 4.6.21 From 5a6789e33664d8cc567203e3ca726ec067e1e549 Mon Sep 17 00:00:00 2001 From: Entgra Builder Date: Mon, 3 Jun 2019 15:43:13 +0000 Subject: [PATCH 19/28] [maven-release-plugin] prepare for next development iteration --- .../org.wso2.carbon.apimgt.annotations/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.application.extension/pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.handlers/pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.integration.client/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.webapp.publisher/pom.xml | 4 ++-- components/apimgt-extensions/pom.xml | 4 ++-- .../org.wso2.carbon.certificate.mgt.api/pom.xml | 2 +- .../org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml | 2 +- .../pom.xml | 2 +- .../org.wso2.carbon.certificate.mgt.core/pom.xml | 4 ++-- .../org.wso2.carbon.certificate.mgt.v09.api/pom.xml | 2 +- components/certificate-mgt/pom.xml | 4 ++-- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- components/device-mgt-extensions/pom.xml | 2 +- .../pom.xml | 2 +- .../org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.api/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.common/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.core/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.extensions/pom.xml | 2 +- components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.url.printer/pom.xml | 2 +- .../device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml | 2 +- components/device-mgt/pom.xml | 2 +- .../email-sender/org.wso2.carbon.email.sender.core/pom.xml | 2 +- components/email-sender/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.oauth.extensions/pom.xml | 4 ++-- .../pom.xml | 2 +- .../org.wso2.carbon.identity.jwt.client.extension/pom.xml | 2 +- components/identity-extensions/pom.xml | 2 +- .../org.wso2.carbon.complex.policy.decision.point/pom.xml | 4 ++-- .../org.wso2.carbon.policy.decision.point/pom.xml | 4 ++-- .../org.wso2.carbon.policy.information.point/pom.xml | 4 ++-- .../policy-mgt/org.wso2.carbon.policy.mgt.common/pom.xml | 4 ++-- .../policy-mgt/org.wso2.carbon.policy.mgt.core/pom.xml | 4 ++-- components/policy-mgt/pom.xml | 4 ++-- components/test-coverage/pom.xml | 2 +- .../org.wso2.carbon.webapp.authenticator.framework/pom.xml | 4 ++-- components/webapp-authenticator-framework/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.handler.server.feature/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../org.wso2.carbon.apimgt.webapp.publisher.feature/pom.xml | 4 ++-- features/apimgt-extensions/pom.xml | 4 ++-- .../org.wso2.carbon.certificate.mgt.api.feature/pom.xml | 2 +- .../pom.xml | 2 +- .../org.wso2.carbon.certificate.mgt.server.feature/pom.xml | 4 ++-- features/certificate-mgt/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/device-mgt-extensions/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.analytics.feature/pom.xml | 4 ++-- .../org.wso2.carbon.device.mgt.api.feature/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.basics.feature/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.extensions.feature/pom.xml | 4 ++-- .../device-mgt/org.wso2.carbon.device.mgt.feature/pom.xml | 2 +- .../org.wso2.carbon.device.mgt.server.feature/pom.xml | 4 ++-- .../org.wso2.carbon.device.mgt.ui.feature/pom.xml | 2 +- features/device-mgt/pom.xml | 2 +- .../org.wso2.carbon.email.sender.feature/pom.xml | 4 ++-- features/email-sender/pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/jwt-client/pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/oauth-extensions/pom.xml | 4 ++-- .../org.wso2.carbon.policy.mgt.server.feature/pom.xml | 4 ++-- features/policy-mgt/pom.xml | 4 ++-- .../pom.xml | 4 ++-- features/webapp-authenticator-framework/pom.xml | 4 ++-- pom.xml | 6 +++--- 80 files changed, 126 insertions(+), 126 deletions(-) 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 3eea6e28b8..1fa0ea7543 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml @@ -22,13 +22,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.annotations - 3.2.6 + 3.2.7-SNAPSHOT bundle WSO2 Carbon - API Management Annotations WSO2 Carbon - API Management Custom Annotation Module 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 0a2b164ddd..18eb04e9da 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,12 +21,12 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 - 3.2.6 + 3.2.7-SNAPSHOT org.wso2.carbon.apimgt.application.extension.api war WSO2 Carbon - API Application Management API 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 63112ae11c..ad8dbd0cbb 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,12 +22,12 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 - 3.2.6 + 3.2.7-SNAPSHOT org.wso2.carbon.apimgt.application.extension bundle WSO2 Carbon - API Application Management diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml index 107991854a..5af8f8a3d2 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml @@ -21,13 +21,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.handlers - 3.2.6 + 3.2.7-SNAPSHOT bundle WSO2 Carbon - API Security Handler Component WSO2 Carbon - API Management Security Handler Module diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml index be305848a9..07359793a8 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/pom.xml @@ -13,13 +13,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.integration.client - 3.2.6 + 3.2.7-SNAPSHOT bundle WSO2 Carbon - API Management Integration Client WSO2 Carbon - API Management Integration Client diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml index 0854e82deb..58e4ec1cc3 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.generated.client/pom.xml @@ -13,13 +13,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.integration.generated.client - 3.2.6 + 3.2.7-SNAPSHOT bundle WSO2 Carbon - API Management Integration Generated Client WSO2 Carbon - API Management Integration Client 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 2b28ab9d60..6b4df465de 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,13 +22,13 @@ apimgt-extensions org.wso2.carbon.devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.webapp.publisher - 3.2.6 + 3.2.7-SNAPSHOT bundle WSO2 Carbon - API Management Webapp Publisher WSO2 Carbon - API Management Webapp Publisher diff --git a/components/apimgt-extensions/pom.xml b/components/apimgt-extensions/pom.xml index 424173b55e..723f9e0326 100644 --- a/components/apimgt-extensions/pom.xml +++ b/components/apimgt-extensions/pom.xml @@ -22,13 +22,13 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml 4.0.0 apimgt-extensions - 3.2.6 + 3.2.7-SNAPSHOT pom WSO2 Carbon - API Management Extensions Component http://wso2.org 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 7856fccd61..a47b5a2d6b 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 - 3.2.6 + 3.2.7-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 6584c744a6..5a75dcf08b 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 - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml index acabbf9ce5..4aa6f8d114 100644 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml +++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.v09.api/pom.xml @@ -24,7 +24,7 @@ certificate-mgt org.wso2.carbon.devicemgt - 3.2.6 + 3.2.7-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 c9f354070a..3e0b196ca9 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 @@ -21,13 +21,13 @@ org.wso2.carbon.devicemgt certificate-mgt - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.certificate.mgt.core - 3.2.6 + 3.2.7-SNAPSHOT bundle WSO2 Carbon - Certificate Management Core WSO2 Carbon - Certificate Management Core diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml index 6ba95e1ff2..3d273e477c 100644 --- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml +++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.v09.api/pom.xml @@ -24,7 +24,7 @@ certificate-mgt org.wso2.carbon.devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml diff --git a/components/certificate-mgt/pom.xml b/components/certificate-mgt/pom.xml index eb764f9857..28b4e29b60 100644 --- a/components/certificate-mgt/pom.xml +++ b/components/certificate-mgt/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt certificate-mgt - 3.2.6 + 3.2.7-SNAPSHOT pom WSO2 Carbon - Certificate Management Component http://wso2.org 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 d55acab55a..77677a89c9 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 - 3.2.6 + 3.2.7-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 e27ebb6a98..04450cd561 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 - 3.2.6 + 3.2.7-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 08357e0747..86e14bdc9f 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 - 3.2.6 + 3.2.7-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 b7f3ba5097..4e287a95ff 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 - 3.2.6 + 3.2.7-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 f719d68bbf..3b542f6a9b 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 - 3.2.6 + 3.2.7-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 79b90036d2..afd98109ef 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 - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml diff --git a/components/device-mgt-extensions/pom.xml b/components/device-mgt-extensions/pom.xml index f16d2bfc6a..930601b9a2 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 - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml index 53ce5e9a6f..6c6ac9970a 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt device-mgt - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml index f4612309c7..de6356c6f1 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.wsproxy/pom.xml @@ -20,7 +20,7 @@ device-mgt org.wso2.carbon.devicemgt - 3.2.6 + 3.2.7-SNAPSHOT 4.0.0 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 fde6d26128..dd84da29ef 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 - 3.2.6 + 3.2.7-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 db02a038eb..0334ddb93e 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 - 3.2.6 + 3.2.7-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 57018975a5..0f025c0946 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 - 3.2.6 + 3.2.7-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 70a5fb74a7..cedc97c271 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 - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml index cd0d247c34..fb22f36fee 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/pom.xml @@ -22,7 +22,7 @@ device-mgt org.wso2.carbon.devicemgt - 3.2.6 + 3.2.7-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 eaaa5c9fb2..b0cb87131c 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 - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml index bc4ec796ec..62ed533e8a 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.v09.api/pom.xml @@ -22,7 +22,7 @@ device-mgt org.wso2.carbon.devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml diff --git a/components/device-mgt/pom.xml b/components/device-mgt/pom.xml index a9325cae94..6207ae8cfc 100644 --- a/components/device-mgt/pom.xml +++ b/components/device-mgt/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml diff --git a/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml b/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml index 7edb0af3bc..be5a530f73 100644 --- a/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml +++ b/components/email-sender/org.wso2.carbon.email.sender.core/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt email-sender - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml diff --git a/components/email-sender/pom.xml b/components/email-sender/pom.xml index f8cfef9708..a69ce39916 100644 --- a/components/email-sender/pom.xml +++ b/components/email-sender/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6 + 3.2.7-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 da7f3b1c29..d22be87106 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,13 +22,13 @@ org.wso2.carbon.devicemgt identity-extensions - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.oauth.extensions - 3.2.6 + 3.2.7-SNAPSHOT bundle WSO2 Carbon - OAuth Extensions http://wso2.org diff --git a/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml b/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml index e7b23513ec..c2eac834b1 100644 --- a/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml +++ b/components/identity-extensions/org.wso2.carbon.identity.authenticator.backend.oauth/pom.xml @@ -21,7 +21,7 @@ identity-extensions org.wso2.carbon.devicemgt - 3.2.6 + 3.2.7-SNAPSHOT 4.0.0 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 33fe13820b..e1af3d5565 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 - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml diff --git a/components/identity-extensions/pom.xml b/components/identity-extensions/pom.xml index bbbf6373ef..353bf1aba3 100644 --- a/components/identity-extensions/pom.xml +++ b/components/identity-extensions/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml diff --git a/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml b/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml index 3a5be4d0e4..98f0fd707b 100644 --- a/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml +++ b/components/policy-mgt/org.wso2.carbon.complex.policy.decision.point/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.complex.policy.decision.point - 3.2.6 + 3.2.7-SNAPSHOT bundle WSO2 Carbon - Policy Decision Point WSO2 Carbon - Policy Decision Point 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 833fe19a36..81d1fdf53c 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,14 +3,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.decision.point - 3.2.6 + 3.2.7-SNAPSHOT bundle WSO2 Carbon - Policy Decision Point WSO2 Carbon - Policy Decision Point 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 9bf7e56c07..e4d411ba87 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 - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml @@ -11,7 +11,7 @@ 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.information.point - 3.2.6 + 3.2.7-SNAPSHOT bundle WSO2 Carbon - Policy Information Point WSO2 Carbon - Policy Information Point 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 2ca0a58ed4..06b8e2abbe 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,14 +22,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.mgt.common - 3.2.6 + 3.2.7-SNAPSHOT bundle WSO2 Carbon - Policy Management Common WSO2 Carbon - Policy Management Common 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 0d9f382f7e..233f24eecb 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,14 +22,14 @@ org.wso2.carbon.devicemgt policy-mgt - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.policy.mgt.core - 3.2.6 + 3.2.7-SNAPSHOT bundle WSO2 Carbon - Policy Management Core WSO2 Carbon - Policy Management Core diff --git a/components/policy-mgt/pom.xml b/components/policy-mgt/pom.xml index 3f68c09751..d8975fff62 100644 --- a/components/policy-mgt/pom.xml +++ b/components/policy-mgt/pom.xml @@ -23,13 +23,13 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml 4.0.0 policy-mgt - 3.2.6 + 3.2.7-SNAPSHOT pom WSO2 Carbon - Policy Management Component http://wso2.org diff --git a/components/test-coverage/pom.xml b/components/test-coverage/pom.xml index ffb26abae9..9bf463b2ec 100644 --- a/components/test-coverage/pom.xml +++ b/components/test-coverage/pom.xml @@ -21,7 +21,7 @@ carbon-devicemgt org.wso2.carbon.devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml 4.0.0 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 3928897c96..1817b8293b 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,14 +21,14 @@ org.wso2.carbon.devicemgt webapp-authenticator-framework - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.devicemgt org.wso2.carbon.webapp.authenticator.framework - 3.2.6 + 3.2.7-SNAPSHOT bundle WSO2 Carbon - Web Application Authenticator Framework Bundle WSO2 Carbon - Web Application Authenticator Framework Bundle diff --git a/components/webapp-authenticator-framework/pom.xml b/components/webapp-authenticator-framework/pom.xml index 641988d432..074c9756a5 100644 --- a/components/webapp-authenticator-framework/pom.xml +++ b/components/webapp-authenticator-framework/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt webapp-authenticator-framework - 3.2.6 + 3.2.7-SNAPSHOT pom WSO2 Carbon - Webapp Authenticator Framework http://wso2.org 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 859d42cc7b..8bf6a41e4c 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,14 +21,14 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.application.extension.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - API Management Application Extension Feature http://wso2.org This feature contains an implementation of a api application registration, which takes care of subscription diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml index 89340f6dad..220398d2de 100644 --- a/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml +++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.handler.server.feature/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.handler.server.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - Device Management - APIM handler Server Feature http://wso2.org This feature contains the handler for the api authentications diff --git a/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml b/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml index 49d1ac0341..0ca7cac7ff 100644 --- a/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml +++ b/features/apimgt-extensions/org.wso2.carbon.apimgt.integration.client.feature/pom.xml @@ -21,13 +21,13 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.integration.client.feature - 3.2.6 + 3.2.7-SNAPSHOT pom WSO2 Carbon - APIM Integration Client Feature http://wso2.org 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 a7ecaeff08..9b057d4e59 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,14 +21,14 @@ org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.apimgt.webapp.publisher.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - API Management Webapp Publisher Feature http://wso2.org This feature contains an implementation of a Tomcat lifecycle listener, which takes care of publishing diff --git a/features/apimgt-extensions/pom.xml b/features/apimgt-extensions/pom.xml index 5464be8266..bab31ded4a 100644 --- a/features/apimgt-extensions/pom.xml +++ b/features/apimgt-extensions/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt apimgt-extensions-feature - 3.2.6 + 3.2.7-SNAPSHOT pom WSO2 Carbon - API Management Extensions Feature http://wso2.org 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 64ed7b9ea6..cb7c950204 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 - 3.2.6 + 3.2.7-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 157d0b7705..eedce0b685 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 - 3.2.6 + 3.2.7-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 e8cc74866d..baf101b5cd 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,14 +22,14 @@ org.wso2.carbon.devicemgt certificate-mgt-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.certificate.mgt.server.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - Certificate Management Server Feature http://wso2.org This feature contains the core bundles required for back-end Certificate Management functionality diff --git a/features/certificate-mgt/pom.xml b/features/certificate-mgt/pom.xml index 3650e241dd..2b5924f92d 100644 --- a/features/certificate-mgt/pom.xml +++ b/features/certificate-mgt/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt certificate-mgt-feature - 3.2.6 + 3.2.7-SNAPSHOT pom WSO2 Carbon - Certificate Management Feature http://wso2.org 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 9d3cf49ceb..4d190fef72 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - Device Type Deployer Feature http://wso2.org WSO2 Carbon - Device Type Deployer Feature 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 5e4f18c982..fcf69b1db6 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - FCM Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - MQTT Based Push Notification Provider Feature 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 69230d5c79..b208a7c308 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - MQTT Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - MQTT Based Push Notification Provider Feature 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 2268aa4f8e..b6502c8ccd 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - MQTT Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - MQTT Based Push Notification Provider Feature 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 9229f09490..28944feb1c 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-extensions-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - XMPP Based Push Notification Provider Feature http://wso2.org WSO2 Carbon - XMPP Based Push Notification Provider Feature diff --git a/features/device-mgt-extensions/pom.xml b/features/device-mgt-extensions/pom.xml index 720a2157a0..520114e0f3 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 - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml index 890abcba1a..aecea6ff57 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml +++ b/features/device-mgt/org.wso2.carbon.device.mgt.analytics.feature/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.analytics.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - Device Management Server Feature http://wso2.org This feature contains bundles related to device analytics data publisher and ws proxy 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 a77038f522..f9adebc8b2 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 - 3.2.6 + 3.2.7-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 8feb81f2e1..c80dc67907 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 - 3.2.6 + 3.2.7-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 c32b8776ea..f83c1fe036 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,14 +4,14 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.extensions.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - Device Management Extensions Feature http://wso2.org This feature contains common extensions used by key device management functionalities 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 3d80992764..c044249fc6 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 - 3.2.6 + 3.2.7-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 bcc0cb1868..59cde68bda 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,14 +22,14 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.server.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - Device Management Server Feature http://wso2.org This feature contains the core bundles required for Back-end Device Management functionality diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml b/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml index c7a14cc314..871a4f4799 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml +++ b/features/device-mgt/org.wso2.carbon.device.mgt.ui.feature/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt device-mgt-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml diff --git a/features/device-mgt/pom.xml b/features/device-mgt/pom.xml index 5c27d2207d..3b77b3b6a9 100644 --- a/features/device-mgt/pom.xml +++ b/features/device-mgt/pom.xml @@ -22,7 +22,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml diff --git a/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml b/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml index 055a1ab896..92415332fe 100644 --- a/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml +++ b/features/email-sender/org.wso2.carbon.email.sender.feature/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt email-sender-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.email.sender.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - Email Sender Feature http://wso2.org This feature contains the core bundles required for email sender related functionality diff --git a/features/email-sender/pom.xml b/features/email-sender/pom.xml index dc1b84acdf..53fa11814e 100644 --- a/features/email-sender/pom.xml +++ b/features/email-sender/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt email-sender-feature - 3.2.6 + 3.2.7-SNAPSHOT pom WSO2 Carbon - Email Sender Feature http://wso2.org 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 271a3abe63..25a5e651f6 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,14 +23,14 @@ org.wso2.carbon.devicemgt jwt-client-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.identity.jwt.client.extension.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - JWT Client Feature http://wso2.org This feature contains jwt client implementation from which we can get a access token using the jwt diff --git a/features/jwt-client/pom.xml b/features/jwt-client/pom.xml index 2e1ca299d3..a48dddeb9e 100644 --- a/features/jwt-client/pom.xml +++ b/features/jwt-client/pom.xml @@ -23,13 +23,13 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml 4.0.0 jwt-client-feature - 3.2.6 + 3.2.7-SNAPSHOT pom WSO2 Carbon - JWT Client Extension Feature http://wso2.org diff --git a/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml b/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml index 54811596b7..8411900330 100644 --- a/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml +++ b/features/oauth-extensions/org.wso2.carbon.device.mgt.oauth.extensions.feature/pom.xml @@ -23,14 +23,14 @@ org.wso2.carbon.devicemgt oauth-extensions-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.device.mgt.oauth.extensions.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - Device Mgt OAuth Extensions Feature http://wso2.org This feature contains devicemgt related OAuth extensions diff --git a/features/oauth-extensions/pom.xml b/features/oauth-extensions/pom.xml index 1a6ba1d3e6..7d03dc8a4f 100644 --- a/features/oauth-extensions/pom.xml +++ b/features/oauth-extensions/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt oauth-extensions-feature - 3.2.6 + 3.2.7-SNAPSHOT pom WSO2 Carbon - Device Management OAuth Extensions Feature http://wso2.org 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 69ca32d92e..6e6ce6c810 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,14 +23,14 @@ org.wso2.carbon.devicemgt policy-mgt-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.policy.mgt.server.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - Policy Management Server Feature http://wso2.org This feature contains the core bundles required for Back-end Device Management functionality diff --git a/features/policy-mgt/pom.xml b/features/policy-mgt/pom.xml index 103c28ab33..3a43d684c4 100644 --- a/features/policy-mgt/pom.xml +++ b/features/policy-mgt/pom.xml @@ -23,14 +23,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt policy-mgt-feature - 3.2.6 + 3.2.7-SNAPSHOT pom WSO2 Carbon - Policy Management Feature http://wso2.org 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 42991c8aa1..ba04cef262 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,14 +22,14 @@ org.wso2.carbon.devicemgt webapp-authenticator-framework-feature - 3.2.6 + 3.2.7-SNAPSHOT ../pom.xml 4.0.0 org.wso2.carbon.webapp.authenticator.framework.server.feature pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - Webapp Authenticator Framework Server Feature http://wso2.org This feature contains the core bundles required for Back-end Device Management functionality diff --git a/features/webapp-authenticator-framework/pom.xml b/features/webapp-authenticator-framework/pom.xml index 27699202dc..fe9aa0cf0c 100644 --- a/features/webapp-authenticator-framework/pom.xml +++ b/features/webapp-authenticator-framework/pom.xml @@ -22,14 +22,14 @@ org.wso2.carbon.devicemgt carbon-devicemgt - 3.2.6 + 3.2.7-SNAPSHOT ../../pom.xml 4.0.0 org.wso2.carbon.devicemgt webapp-authenticator-framework-feature - 3.2.6 + 3.2.7-SNAPSHOT pom WSO2 Carbon - Webapp Authenticator Framework Feature http://wso2.org diff --git a/pom.xml b/pom.xml index 18dc573c20..a787a76753 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ org.wso2.carbon.devicemgt carbon-devicemgt pom - 3.2.6 + 3.2.7-SNAPSHOT WSO2 Carbon - Device Management - Parent http://wso2.org WSO2 Connected Device Manager Components @@ -1671,7 +1671,7 @@ https://gitlab.com/entgra/carbon-device-mgt.git scm:git:https://gitlab.com/entgra/carbon-device-mgt.git scm:git:https://gitlab.com/entgra/carbon-device-mgt.git - v3.2.6 + HEAD @@ -1989,7 +1989,7 @@ 1.2.11.wso2v10 - 3.2.6 + 3.2.7-SNAPSHOT 4.6.21 From 650f02bf0341226f04527c63b990e81577e2276d Mon Sep 17 00:00:00 2001 From: Milan Perera Date: Sat, 8 Jun 2019 10:01:49 +0530 Subject: [PATCH 20/28] Add user created date and modified date --- .../device/mgt/jaxrs/beans/BasicUserInfo.java | 20 ++++++++++++++++++ .../impl/UserManagementServiceImpl.java | 21 ++++++++++++------- .../device/mgt/jaxrs/util/Constants.java | 2 ++ 3 files changed, 35 insertions(+), 8 deletions(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/BasicUserInfo.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/BasicUserInfo.java index d7c82a9edc..07e58252ca 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/BasicUserInfo.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/BasicUserInfo.java @@ -32,6 +32,10 @@ public class BasicUserInfo { private String lastname; @ApiModelProperty(name = "emailAddress", value = "The email address of the user.", required = true ) private String emailAddress; + @ApiModelProperty(name = "createdDate", value = "User creation date." ) + private String createdDate; + @ApiModelProperty(name = "modifiedDate", value = "User modifiedDate date." ) + private String modifiedDate; public String getUsername() { return username; @@ -65,4 +69,20 @@ public class BasicUserInfo { this.emailAddress = emailAddress; } + public String getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(String createdDate) { + this.createdDate = createdDate; + } + + public String getModifiedDate() { + return modifiedDate; + } + + public void setModifiedDate(String modifiedDate) { + this.modifiedDate = modifiedDate; + } + } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java index 8bcb3d934b..090563af7b 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/UserManagementServiceImpl.java @@ -94,6 +94,7 @@ import java.net.URISyntaxException; import java.security.SecureRandom; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.Instant; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; @@ -152,7 +153,7 @@ public class UserManagementServiceImpl implements UserManagementService { Map defaultUserClaims = this.buildDefaultUserClaims(userInfo.getFirstname(), userInfo.getLastname(), - userInfo.getEmailAddress()); + userInfo.getEmailAddress(), true); // calling addUser method of carbon user api List tmpRoles = new ArrayList<>(); String[] userInfoRoles = userInfo.getRoles(); @@ -279,7 +280,7 @@ public class UserManagementServiceImpl implements UserManagementService { Map defaultUserClaims = this.buildDefaultUserClaims(userInfo.getFirstname(), userInfo.getLastname(), - userInfo.getEmailAddress()); + userInfo.getEmailAddress(), false); if (StringUtils.isNotEmpty(userInfo.getPassword())) { // Decoding Base64 encoded password userStoreManager.updateCredentialByAdmin(username, @@ -427,11 +428,7 @@ public class UserManagementServiceImpl implements UserManagementService { userList = new ArrayList<>(users.length); BasicUserInfo user; for (String username : users) { - user = new BasicUserInfo(); - user.setUsername(username); - user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS)); - user.setFirstname(getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME)); - user.setLastname(getClaimValue(username, Constants.USER_CLAIM_LAST_NAME)); + user = getBasicUserInfo(username); userList.add(user); } @@ -899,11 +896,17 @@ public class UserManagementServiceImpl implements UserManagementService { } } - private Map buildDefaultUserClaims(String firstName, String lastName, String emailAddress) { + private Map buildDefaultUserClaims(String firstName, String lastName, String emailAddress, + boolean isFresh) { Map defaultUserClaims = new HashMap<>(); defaultUserClaims.put(Constants.USER_CLAIM_FIRST_NAME, firstName); defaultUserClaims.put(Constants.USER_CLAIM_LAST_NAME, lastName); defaultUserClaims.put(Constants.USER_CLAIM_EMAIL_ADDRESS, emailAddress); + if (isFresh) { + defaultUserClaims.put(Constants.USER_CLAIM_CREATED, String.valueOf(Instant.now().getEpochSecond())); + } else { + defaultUserClaims.put(Constants.USER_CLAIM_MODIFIED, String.valueOf(Instant.now().getEpochSecond())); + } if (log.isDebugEnabled()) { log.debug("Default claim map is created for new user: " + defaultUserClaims.toString()); } @@ -936,6 +939,8 @@ public class UserManagementServiceImpl implements UserManagementService { userInfo.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS)); userInfo.setFirstname(getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME)); userInfo.setLastname(getClaimValue(username, Constants.USER_CLAIM_LAST_NAME)); + userInfo.setCreatedDate(getClaimValue(username, Constants.USER_CLAIM_CREATED)); + userInfo.setModifiedDate(getClaimValue(username, Constants.USER_CLAIM_MODIFIED)); return userInfo; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/Constants.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/Constants.java index 4525cdd38d..29a9e5da25 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/Constants.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/Constants.java @@ -26,6 +26,8 @@ public class Constants { public static final String USER_CLAIM_EMAIL_ADDRESS = "http://wso2.org/claims/emailaddress"; public static final String USER_CLAIM_FIRST_NAME = "http://wso2.org/claims/givenname"; public static final String USER_CLAIM_LAST_NAME = "http://wso2.org/claims/lastname"; + public static final String USER_CLAIM_CREATED = "http://wso2.org/claims/created"; + public static final String USER_CLAIM_MODIFIED = "http://wso2.org/claims/modified"; public static final String PRIMARY_USER_STORE = "PRIMARY"; public static final String DEFAULT_STREAM_VERSION = "1.0.0"; public static final String SCOPE = "scope"; From e26b50742be3f8f33dfef9c9e5e3ab3ee19cf5ba Mon Sep 17 00:00:00 2001 From: Saad Sahibjan Date: Thu, 13 Jun 2019 13:28:06 +0530 Subject: [PATCH 21/28] Increase length of VALUE_FIELD column in DM_DEVICE_INFO table --- .../src/test/resources/sql/h2.sql | 2 +- .../src/test/resources/sql-files/h2.sql | 2 +- .../src/test/resources/sql/CreateH2TestDB.sql | 2 +- .../src/main/resources/dbscripts/cdm/h2.sql | 2 +- .../src/main/resources/dbscripts/cdm/mssql.sql | 2 +- .../src/main/resources/dbscripts/cdm/mysql.sql | 2 +- .../src/main/resources/dbscripts/cdm/oracle.sql | 2 +- .../src/main/resources/dbscripts/cdm/postgresql.sql | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/sql/h2.sql b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/sql/h2.sql index 232123d86f..6a7ff48814 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/sql/h2.sql +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/sql/h2.sql @@ -416,7 +416,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_INFO ( DEVICE_ID INT NULL, ENROLMENT_ID INT NOT NULL, KEY_FIELD VARCHAR(45) NULL, - VALUE_FIELD VARCHAR(100) NULL, + VALUE_FIELD VARCHAR(1000) NULL, PRIMARY KEY (ID), CONSTRAINT DM_DEVICE_INFO_DEVICE FOREIGN KEY (DEVICE_ID) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/sql-files/h2.sql b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/sql-files/h2.sql index e2d3356c69..c6a935cfc4 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/sql-files/h2.sql +++ b/components/device-mgt/org.wso2.carbon.device.mgt.extensions/src/test/resources/sql-files/h2.sql @@ -400,7 +400,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_INFO ( ID INTEGER AUTO_INCREMENT NOT NULL, DEVICE_ID INT NULL, KEY_FIELD VARCHAR(45) NULL, - VALUE_FIELD VARCHAR(100) NULL, + VALUE_FIELD VARCHAR(1000) NULL, PRIMARY KEY (ID), CONSTRAINT DM_DEVICE_INFO_DEVICE FOREIGN KEY (DEVICE_ID) diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/test/resources/sql/CreateH2TestDB.sql b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/test/resources/sql/CreateH2TestDB.sql index 289ac3ec3e..e236efe7ff 100644 --- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/test/resources/sql/CreateH2TestDB.sql +++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/test/resources/sql/CreateH2TestDB.sql @@ -467,7 +467,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_INFO ( DEVICE_ID INT NULL, ENROLMENT_ID INT NOT NULL, KEY_FIELD VARCHAR(45) NULL, - VALUE_FIELD VARCHAR(500) NULL, + VALUE_FIELD VARCHAR(1000) NULL, PRIMARY KEY (ID), CONSTRAINT DM_DEVICE_INFO_DEVICE FOREIGN KEY (DEVICE_ID) diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/h2.sql b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/h2.sql index 6e4989721a..abfdcad952 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/h2.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/h2.sql @@ -413,7 +413,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_INFO ( DEVICE_ID INT NULL, ENROLMENT_ID INT NOT NULL, KEY_FIELD VARCHAR(45) NULL, - VALUE_FIELD VARCHAR(500) NULL, + VALUE_FIELD VARCHAR(1000) NULL, PRIMARY KEY (ID), CONSTRAINT DM_DEVICE_INFO_DEVICE FOREIGN KEY (DEVICE_ID) diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mssql.sql b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mssql.sql index 8d6bb0fb7d..0cb27a0ebc 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mssql.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mssql.sql @@ -457,7 +457,7 @@ CREATE TABLE DM_DEVICE_INFO ( DEVICE_ID INTEGER NULL, ENROLMENT_ID INTEGER NOT NULL, KEY_FIELD VARCHAR(45) NULL, - VALUE_FIELD VARCHAR(500) NULL, + VALUE_FIELD VARCHAR(1000) NULL, PRIMARY KEY (ID), INDEX DM_DEVICE_INFO_DEVICE_idx (DEVICE_ID ASC), INDEX DM_DEVICE_INFO_DEVICE_ENROLLMENT_idx (ENROLMENT_ID ASC) diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mysql.sql b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mysql.sql index 0ff005b6b9..65a5d235b4 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mysql.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mysql.sql @@ -472,7 +472,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_INFO ( DEVICE_ID INT NULL, ENROLMENT_ID INT NOT NULL, KEY_FIELD VARCHAR(45) NULL, - VALUE_FIELD VARCHAR(500) NULL, + VALUE_FIELD VARCHAR(1000) NULL, PRIMARY KEY (ID), INDEX DM_DEVICE_INFO_DEVICE_idx (DEVICE_ID ASC), INDEX DM_DEVICE_INFO_DEVICE_ENROLLMENT_idx (ENROLMENT_ID ASC), diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/oracle.sql b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/oracle.sql index 9ebdcf5615..2382fe2b47 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/oracle.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/oracle.sql @@ -791,7 +791,7 @@ CREATE TABLE DM_DEVICE_INFO ( DEVICE_ID NUMBER(10) NOT NULL, ENROLMENT_ID NUMBER(10) NOT NULL, KEY_FIELD VARCHAR2(45) NULL, - VALUE_FIELD VARCHAR2(500) NULL, + VALUE_FIELD VARCHAR2(1000) NULL, PRIMARY KEY (ID), CONSTRAINT DM_DEVICE_INFO_DEVICE FOREIGN KEY (DEVICE_ID) diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/postgresql.sql b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/postgresql.sql index 4ef06be29c..26e7800a8f 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/postgresql.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/postgresql.sql @@ -417,7 +417,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_INFO ( DEVICE_ID INT NOT NULL, ENROLMENT_ID INT NOT NULL, KEY_FIELD VARCHAR(45) NULL, - VALUE_FIELD VARCHAR(500) NULL, + VALUE_FIELD VARCHAR(1000) NULL, CONSTRAINT DM_DEVICE_INFO_DEVICE FOREIGN KEY (DEVICE_ID) REFERENCES DM_DEVICE (ID) From b30ea9a3f385514db8e8e7b44e4d93fe34e5f244 Mon Sep 17 00:00:00 2001 From: charitha Date: Mon, 17 Jun 2019 09:36:54 +0530 Subject: [PATCH 22/28] Fix https://gitlab.com/entgra/product-iots/issues/109 --- .../src/main/resources/dbscripts/cdm/h2.sql | 4 ++-- .../src/main/resources/dbscripts/cdm/mssql.sql | 4 ++-- .../src/main/resources/dbscripts/cdm/mysql.sql | 4 ++-- .../src/main/resources/dbscripts/cdm/oracle.sql | 4 ++-- .../src/main/resources/dbscripts/cdm/postgresql.sql | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/h2.sql b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/h2.sql index abfdcad952..736e6a1adb 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/h2.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/h2.sql @@ -12,7 +12,7 @@ CREATE TABLE IF NOT EXISTS DM_GROUP ( ID INTEGER AUTO_INCREMENT NOT NULL, GROUP_NAME VARCHAR(100) DEFAULT NULL, DESCRIPTION TEXT DEFAULT NULL, - OWNER VARCHAR(45) DEFAULT NULL, + OWNER VARCHAR(255) DEFAULT NULL, TENANT_ID INTEGER DEFAULT 0, PRIMARY KEY (ID) ); @@ -110,7 +110,7 @@ CREATE TABLE IF NOT EXISTS DM_PROFILE_OPERATION ( CREATE TABLE IF NOT EXISTS DM_ENROLMENT ( ID INTEGER AUTO_INCREMENT NOT NULL, DEVICE_ID INTEGER NOT NULL, - OWNER VARCHAR(50) NOT NULL, + OWNER VARCHAR(255) NOT NULL, OWNERSHIP VARCHAR(45) DEFAULT NULL, STATUS VARCHAR(50) NULL, DATE_OF_ENROLMENT TIMESTAMP DEFAULT NULL, diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mssql.sql b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mssql.sql index 0cb27a0ebc..30e680a4c8 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mssql.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mssql.sql @@ -20,7 +20,7 @@ IF NOT EXISTS(SELECT * ID INTEGER IDENTITY (1, 1) NOT NULL, GROUP_NAME VARCHAR(100) DEFAULT NULL, DESCRIPTION VARCHAR(MAX) DEFAULT NULL, - OWNER VARCHAR(45) DEFAULT NULL, + OWNER VARCHAR(255) DEFAULT NULL, TENANT_ID INTEGER DEFAULT 0, PRIMARY KEY (ID) ); @@ -140,7 +140,7 @@ IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[D CREATE TABLE DM_ENROLMENT ( ID INTEGER IDENTITY(1,1) NOT NULL, DEVICE_ID INTEGER NOT NULL, - OWNER VARCHAR(50) NOT NULL, + OWNER VARCHAR(255) NOT NULL, OWNERSHIP VARCHAR(45) DEFAULT NULL, STATUS VARCHAR(50) NULL, DATE_OF_ENROLMENT DATETIME2 DEFAULT NULL, diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mysql.sql b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mysql.sql index 65a5d235b4..b8ef339105 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mysql.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/mysql.sql @@ -16,7 +16,7 @@ CREATE TABLE IF NOT EXISTS DM_GROUP ( ID INTEGER AUTO_INCREMENT NOT NULL, GROUP_NAME VARCHAR(100) DEFAULT NULL, DESCRIPTION TEXT DEFAULT NULL, - OWNER VARCHAR(45) DEFAULT NULL, + OWNER VARCHAR(255) DEFAULT NULL, TENANT_ID INTEGER DEFAULT 0, PRIMARY KEY (ID) ) @@ -125,7 +125,7 @@ CREATE TABLE IF NOT EXISTS DM_PROFILE_OPERATION ( CREATE TABLE IF NOT EXISTS DM_ENROLMENT ( ID INTEGER AUTO_INCREMENT NOT NULL, DEVICE_ID INTEGER NOT NULL, - OWNER VARCHAR(50) NOT NULL, + OWNER VARCHAR(255) NOT NULL, OWNERSHIP VARCHAR(45) DEFAULT NULL, STATUS VARCHAR(50) NULL, DATE_OF_ENROLMENT TIMESTAMP NULL DEFAULT NULL, diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/oracle.sql b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/oracle.sql index 2382fe2b47..77b51da66a 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/oracle.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/oracle.sql @@ -27,7 +27,7 @@ CREATE TABLE DM_GROUP ( ID NUMBER(10) NOT NULL, DESCRIPTION CLOB DEFAULT NULL, GROUP_NAME VARCHAR2(100) DEFAULT NULL, - OWNER VARCHAR2(45) DEFAULT NULL, + OWNER VARCHAR2(255) DEFAULT NULL, TENANT_ID NUMBER(10) DEFAULT 0, CONSTRAINT PK_DM_GROUP PRIMARY KEY (ID) ) @@ -201,7 +201,7 @@ CREATE TABLE DM_PROFILE_OPERATION ( CREATE TABLE DM_ENROLMENT ( ID NUMBER(10) NOT NULL, DEVICE_ID NUMBER(10) NOT NULL, - OWNER VARCHAR2(50) NOT NULL, + OWNER VARCHAR2(255) NOT NULL, OWNERSHIP VARCHAR2(45) DEFAULT NULL, STATUS VARCHAR2(50) NULL, DATE_OF_ENROLMENT TIMESTAMP(0) DEFAULT NULL, diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/postgresql.sql b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/postgresql.sql index 26e7800a8f..f1a05feabd 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/postgresql.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.basics.feature/src/main/resources/dbscripts/cdm/postgresql.sql @@ -12,7 +12,7 @@ CREATE TABLE IF NOT EXISTS DM_GROUP ( ID BIGSERIAL NOT NULL PRIMARY KEY, GROUP_NAME VARCHAR(100) DEFAULT NULL, DESCRIPTION TEXT DEFAULT NULL, - OWNER VARCHAR(45) DEFAULT NULL, + OWNER VARCHAR(255) DEFAULT NULL, TENANT_ID INTEGER DEFAULT 0 ); @@ -108,7 +108,7 @@ CREATE TABLE IF NOT EXISTS DM_PROFILE_OPERATION ( CREATE TABLE IF NOT EXISTS DM_ENROLMENT ( ID BIGSERIAL NOT NULL PRIMARY KEY, DEVICE_ID INTEGER NOT NULL, - OWNER VARCHAR(50) NOT NULL, + OWNER VARCHAR(255) NOT NULL, OWNERSHIP VARCHAR(45) DEFAULT NULL, STATUS VARCHAR(50) NULL, DATE_OF_ENROLMENT TIMESTAMP NULL DEFAULT NULL, From c0e301845eff5132718b341e568a4a6bf1a805ea Mon Sep 17 00:00:00 2001 From: Saad Sahibjan Date: Thu, 6 Jun 2019 22:12:06 +0530 Subject: [PATCH 23/28] Android enterpise app install payload creation --- .../carbon/device/mgt/core/util/MDMAndroidOperationUtil.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/MDMAndroidOperationUtil.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/MDMAndroidOperationUtil.java index cce871d009..a276aaff98 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/MDMAndroidOperationUtil.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/MDMAndroidOperationUtil.java @@ -50,7 +50,9 @@ public class MDMAndroidOperationUtil { case ENTERPRISE: EnterpriseApplication enterpriseApplication = new EnterpriseApplication(); enterpriseApplication.setType(application.getType().toString()); - enterpriseApplication.setUrl(application.getLocation()); + //TODO: replace needs to be removed after doing the proper config update in application-mgt.xml + enterpriseApplication.setUrl(application.getLocation().replace("https://localhost:9443", + "http://192.168.8.6:9763")); operation.setPayLoad(enterpriseApplication.toJSON()); break; case PUBLIC: From f372ba2018843c6024237a8945308125f95d2f75 Mon Sep 17 00:00:00 2001 From: Saad Sahibjan Date: Fri, 7 Jun 2019 11:18:07 +0530 Subject: [PATCH 24/28] Modify setting app type --- .../carbon/device/mgt/core/util/MDMAndroidOperationUtil.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/MDMAndroidOperationUtil.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/MDMAndroidOperationUtil.java index a276aaff98..cce871d009 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/MDMAndroidOperationUtil.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/util/MDMAndroidOperationUtil.java @@ -50,9 +50,7 @@ public class MDMAndroidOperationUtil { case ENTERPRISE: EnterpriseApplication enterpriseApplication = new EnterpriseApplication(); enterpriseApplication.setType(application.getType().toString()); - //TODO: replace needs to be removed after doing the proper config update in application-mgt.xml - enterpriseApplication.setUrl(application.getLocation().replace("https://localhost:9443", - "http://192.168.8.6:9763")); + enterpriseApplication.setUrl(application.getLocation()); operation.setPayLoad(enterpriseApplication.toJSON()); break; case PUBLIC: From 93a5fe87e7a51017605f5d67aab1e1e93bec6cd6 Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe Date: Fri, 7 Jun 2019 06:45:01 +0000 Subject: [PATCH 25/28] Improve app subscription functionality Further integrate app management component with device mgt --- .../src/pages/dashboard/apps/Apps-old.js | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/apps/Apps-old.js diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/apps/Apps-old.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/apps/Apps-old.js new file mode 100644 index 0000000000..e24f40a6ea --- /dev/null +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/apps/Apps-old.js @@ -0,0 +1,60 @@ +import React from "react"; +import "antd/dist/antd.css"; +import {PageHeader, Typography,Input, Button, Row, Col} from "antd"; +import AppList from "../../../components/apps/AppList"; +import ReleaseModal from "../../../components/apps/ReleaseModal"; + +const Search = Input.Search; + +const routes = [ + { + path: 'index', + breadcrumbName: 'Publisher', + }, + { + path: 'first', + breadcrumbName: 'Dashboard', + }, + { + path: 'second', + breadcrumbName: 'Apps', + }, +]; + + +class Apps extends React.Component { + routes; + constructor(props) { + super(props); + this.routes = props.routes; + + } + + render() { + return ( +
+ +
+ + + console.log(value)} + style={{ width: 200}} + /> + + + + + +
+ +
+ + ); + } +} + +export default Apps; From b88b4a4a848a97c978ee1b76bc35a54e4833d544 Mon Sep 17 00:00:00 2001 From: lasanthaDLPDS Date: Fri, 7 Jun 2019 13:09:58 +0530 Subject: [PATCH 26/28] Improve app installation --- .../application/mgt/core/impl/ApplicationManagerImpl.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java index 0282768a8d..2bfa6a5159 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java @@ -2489,8 +2489,7 @@ public class ApplicationManagerImpl implements ApplicationManager { log.error(msg); throw new BadRequestException(msg); } - } - if (param instanceof WebAppReleaseWrapper) { + } else if (param instanceof WebAppReleaseWrapper) { WebAppReleaseWrapper webAppReleaseWrapper = (WebAppReleaseWrapper) param; UrlValidator urlValidator = new UrlValidator(); if (StringUtils.isEmpty(webAppReleaseWrapper.getVersion())) { From 4aa42aed6ff646533d3127c8f83fe050cab1da21 Mon Sep 17 00:00:00 2001 From: lasanthaDLPDS Date: Sat, 8 Jun 2019 23:28:21 +0530 Subject: [PATCH 27/28] Improve app release adding method --- .../mgt/common/services/ApplicationManager.java | 2 +- .../mgt/core/impl/ApplicationManagerImpl.java | 12 ++++++++++-- .../impl/ApplicationManagementPublisherAPIImpl.java | 11 ++++++----- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/services/ApplicationManager.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/services/ApplicationManager.java index ffc0620581..e40d28e89c 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/services/ApplicationManager.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/services/ApplicationManager.java @@ -192,7 +192,7 @@ public interface ApplicationManager { * @param applicationReleaseWrapper ApplicatonRelease that need to be be created. * @return the unique id of the application release, if the application release succeeded else -1 */ - ApplicationRelease createRelease(int applicationId, ApplicationReleaseWrapper applicationReleaseWrapper, + ApplicationRelease createEntAppRelease(int applicationId, ApplicationReleaseWrapper applicationReleaseWrapper, ApplicationArtifact applicationArtifact) throws ApplicationManagementException; /*** diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java index 2bfa6a5159..6b223428d0 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java @@ -740,16 +740,24 @@ public class ApplicationManagerImpl implements ApplicationManager { } @Override - public ApplicationRelease createRelease(int applicationId, ApplicationReleaseWrapper applicationReleaseWrapper, + public ApplicationRelease createEntAppRelease(int applicationId, ApplicationReleaseWrapper applicationReleaseWrapper, ApplicationArtifact applicationArtifact) throws ApplicationManagementException { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); ApplicationRelease applicationRelease; if (log.isDebugEnabled()) { - log.debug("ApplicationDTO release request is received for the application id: " + applicationId); + log.debug("Application release creating request is received for the application id: " + applicationId); } ApplicationDTO applicationDTO = getApplication(applicationId); try { + if (!ApplicationType.ENTERPRISE.toString().equals(applicationDTO.getType())) { + String msg = + "It is possible to add new application release for " + ApplicationType.ENTERPRISE.toString() + + " app type. But you are requesting to add new application release for " + + applicationDTO.getType() + " app type."; + log.error(msg); + throw new BadRequestException(msg); + } ApplicationReleaseDTO applicationReleaseDTO = uploadReleaseArtifacts(applicationReleaseWrapper, applicationDTO, applicationArtifact); ConnectionManagerUtil.beginDBTransaction(); diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.api/src/main/java/org/wso2/carbon/device/application/mgt/publisher/api/services/impl/ApplicationManagementPublisherAPIImpl.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.api/src/main/java/org/wso2/carbon/device/application/mgt/publisher/api/services/impl/ApplicationManagementPublisherAPIImpl.java index 8ef252d4de..a9c639b2ad 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.api/src/main/java/org/wso2/carbon/device/application/mgt/publisher/api/services/impl/ApplicationManagementPublisherAPIImpl.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.api/src/main/java/org/wso2/carbon/device/application/mgt/publisher/api/services/impl/ApplicationManagementPublisherAPIImpl.java @@ -143,6 +143,7 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem @PathParam("uuid") String uuid) { ApplicationManager applicationManager = APIUtil.getApplicationManager(); try { + //todo return application ApplicationRelease applicationRelease = applicationManager.getApplicationReleaseByUUID(uuid); if (applicationRelease == null){ String msg = "Application release is in the end state of the application lifecycle flow."; @@ -186,7 +187,7 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem applicationManager.validateBinaryArtifact(binaryFile); applicationManager.validateImageArtifacts(iconFile, bannerFile, attachmentList); - // Created new application entry + // Created new Ent App Application application = applicationManager.createApplication(applicationWrapper, constructApplicationArtifact(binaryFile, iconFile, bannerFile, attachmentList)); if (application != null) { @@ -224,7 +225,7 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem applicationManager.validateReleaseCreatingRequest(webAppWrapper.getWebAppReleaseWrappers().get(0)); applicationManager.validateImageArtifacts(iconFile, bannerFile, attachmentList); - // Created new application entry + // Created new Web App Application application = applicationManager.createWebClip(webAppWrapper, constructApplicationArtifact(null, iconFile, bannerFile, attachmentList)); if (application != null) { @@ -262,7 +263,7 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem applicationManager.validateReleaseCreatingRequest(publicAppWrapper.getPublicAppReleaseWrappers().get(0)); applicationManager.validateImageArtifacts(iconFile, bannerFile, attachmentList); - // Created new application entry + // Created new Public App Application application = applicationManager.createPublicApp(publicAppWrapper, constructApplicationArtifact(null, iconFile, bannerFile, attachmentList)); if (application != null) { @@ -302,8 +303,8 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem applicationManager.validateBinaryArtifact(binaryFile); applicationManager.validateImageArtifacts(iconFile, bannerFile, attachmentList); - // Created new application release - ApplicationRelease release = applicationManager.createRelease(appId, applicationReleaseWrapper, + // Created new Ent App release + ApplicationRelease release = applicationManager.createEntAppRelease(appId, applicationReleaseWrapper, constructApplicationArtifact(binaryFile, iconFile, bannerFile, attachmentList)); if (release != null) { return Response.status(Response.Status.CREATED).entity(release).build(); From a0f28ce96973dae3de433592e3d72c9bd4a70006 Mon Sep 17 00:00:00 2001 From: lasanthaDLPDS Date: Sun, 9 Jun 2019 23:40:25 +0530 Subject: [PATCH 28/28] Improve APPM review management --- .../application/mgt/common/dto/ReviewDTO.java | 10 + .../mgt/common/services/ReviewManager.java | 21 +- .../application/mgt/core/dao/ReviewDAO.java | 21 +- .../core/dao/impl/review/ReviewDAOImpl.java | 241 +++++++-- .../GenericSubscriptionDAOImpl.java | 2 +- .../mgt/core/impl/ApplicationManagerImpl.java | 10 +- .../mgt/core/impl/ReviewManagerImpl.java | 505 ++++++++++++------ .../core/impl/SubscriptionManagerImpl.java | 4 +- .../application/mgt/core/util/APIUtil.java | 4 +- .../application/mgt/core/util/DAOUtil.java | 2 + .../api/services/ReviewManagementAPI.java | 155 +++++- .../impl/ReviewManagementAPIImpl.java | 91 +++- .../api/services/ReviewManagementAPITest.java | 18 +- .../dbscripts/cdm/application-mgt/h2.sql | 1 + 14 files changed, 846 insertions(+), 239 deletions(-) diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/dto/ReviewDTO.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/dto/ReviewDTO.java index 64cc3a11d2..42f410a26f 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/dto/ReviewDTO.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/dto/ReviewDTO.java @@ -28,6 +28,8 @@ public class ReviewDTO { private int rating; private int rootParentId; private int immediateParentId; + private String releaseUuid; + private String releaseVersion; public int getId() { return id; @@ -84,4 +86,12 @@ public class ReviewDTO { public int getImmediateParentId() { return immediateParentId; } public void setImmediateParentId(int immediateParentId) { this.immediateParentId = immediateParentId; } + + public String getReleaseUuid() { return releaseUuid; } + + public void setReleaseUuid(String releaseUuid) { this.releaseUuid = releaseUuid; } + + public String getReleaseVersion() { return releaseVersion; } + + public void setReleaseVersion(String releaseVersion) { this.releaseVersion = releaseVersion; } } diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/services/ReviewManager.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/services/ReviewManager.java index 306b424494..a51899205f 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/services/ReviewManager.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/services/ReviewManager.java @@ -39,7 +39,7 @@ public interface ReviewManager { * @return {@link Review} Added review * @throws ReviewManagementException Exceptions of the reviewTmp management. */ - boolean addReview(ReviewWrapper reviewWrapper, String uuid) + boolean addReview(ReviewWrapper reviewWrapper, String uuid, boolean allowMultipleReviews) throws ReviewManagementException, ApplicationManagementException; boolean addReplyComment(ReviewWrapper reviewWrapper, String uuid, int parentReviewId) @@ -53,14 +53,19 @@ public interface ReviewManager { * @return {@link PaginationResult} pagination result with starting offSet and limit * @throws ReviewManagementException Exceptions of the comment management. */ - PaginationResult getAllReviews(PaginationRequest request, String uuid) + PaginationResult getAllReleaseReviews(PaginationRequest request, String uuid) throws ReviewManagementException, ApplicationManagementException; + PaginationResult getAllAppReviews(PaginationRequest request, String uuid) throws ReviewManagementException, + ApplicationManagementException; + + PaginationResult getAllAppReviewsOfUser(PaginationRequest request, String uuid) throws ReviewManagementException, + ApplicationManagementException; + /** * To delete review using review id. * * @param uuid UUID of the application release - * @return If review is successfully deleted return true, otherwise returns false * @throws ReviewManagementException Exceptions of the comment management */ void deleteReview(String uuid, int reviewId, boolean isPriviledgedUser) @@ -70,19 +75,21 @@ public interface ReviewManager { * To update a reviewTmp. * * @param reviewId id of the reviewTmp - * @param uuid UUID of the application release * @return {@link Review}updated review * @throws ReviewManagementException Exceptions of the reviewTmp management */ - boolean updateReview(ReviewWrapper updatingReview, int reviewId, String uuid, boolean isPriviledgedUser) + boolean updateReview(ReviewWrapper updatingReview, int reviewId, String uuid, boolean isPrivilegedUser) throws ReviewManagementException, ApplicationManagementException; /** * To get the overall rating for a application release * - * @param appReleaseUuuid UUID of the application release. + * @param appReleaseUuid UUID of the application release. * @return {@link Review}updated review * @throws ReviewManagementException Exceptions of the review management */ - Rating getRating(String appReleaseUuuid) throws ReviewManagementException, ApplicationManagementException; + Rating getAppReleaseRating(String appReleaseUuid) throws ReviewManagementException, ApplicationManagementException; + + Rating getAppRating(String appReleaseUuid) throws ReviewManagementException, ApplicationManagementException; + } \ No newline at end of file diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/ReviewDAO.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/ReviewDAO.java index 855f3bc516..2a508b8e31 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/ReviewDAO.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/ReviewDAO.java @@ -48,13 +48,13 @@ import java.util.List; /** * To verify whether user has already commented for the application release or not. * - * @param appReleaseId ID of the application release. + * @param appReleaseIds List of the application release IDs. * @param username username of the logged in user. * @param tenantId tenantId of the commented application. * @return If review exists, review returns * @throws ReviewManagementDAOException Exceptions of the review management DAO. */ - boolean haveUerReviewed(int appReleaseId, String username, int tenantId) throws ReviewManagementDAOException; + boolean hasUerReviewedApp(List appReleaseIds, String username, int tenantId) throws ReviewManagementDAOException; /** * To update already added comment. @@ -65,7 +65,8 @@ import java.util.List; * @return row count if updating is succeed otherwise 0 * @throws ReviewManagementDAOException Exceptions of the reviewTmp management. */ - int updateReview(ReviewDTO reviewDTO, int reviewId, int tenantId) throws ReviewManagementDAOException; + int updateReview(ReviewDTO reviewDTO, int reviewId, boolean isActiveReview, int tenantId) + throws ReviewManagementDAOException; /** @@ -89,9 +90,15 @@ import java.util.List; * @return {@link List}List of all reviews for the application release * @throws ReviewManagementDAOException Review management DAO exception **/ - List getAllReviews(int releaseId, PaginationRequest request, int tenantId) + List getAllActiveReleaseReviews(int releaseId, PaginationRequest request, int tenantId) throws ReviewManagementDAOException; + List getAllActiveAppReviews(List releaseIds, PaginationRequest request, int tenantId) + throws ReviewManagementDAOException; + + List getAllActiveAppReviewsOfUser(List releaseIds, PaginationRequest request, String username, + int tenantId) throws ReviewManagementDAOException; + List getReplyComments(int parentId, int tenantId) throws ReviewManagementDAOException; @@ -102,7 +109,10 @@ import java.util.List; * @return {@link List}List of comments * @throws ReviewManagementDAOException Exceptions of the review management DAO. */ - List getAllRatingValues(String uuid, int tenantId) throws ReviewManagementDAOException; + List getAllAppReleaseRatingValues(String uuid, int tenantId) throws ReviewManagementDAOException; + + List getAllAppRatingValues(List uuids, int tenantId) throws ReviewManagementDAOException; + /** * To get count of comments by application details. @@ -121,7 +131,6 @@ import java.util.List; /** * To delete review using review id and uuid of the application release. * - * @param username username of the review owner * @param reviewId id of the review * @return If review is successfully deleted return 1, otherwise returns 0. * @throws ReviewManagementDAOException Review management DAO exception. diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/impl/review/ReviewDAOImpl.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/impl/review/ReviewDAOImpl.java index d8b457ada4..a06ddfd9c8 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/impl/review/ReviewDAOImpl.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/impl/review/ReviewDAOImpl.java @@ -40,6 +40,7 @@ import java.sql.Timestamp; import java.util.ArrayList; import java.util.Calendar; import java.util.List; +import java.util.StringJoiner; /** * This handles ReviewDAO related operations. @@ -98,28 +99,29 @@ public class ReviewDAOImpl extends AbstractDAOImpl implements ReviewDAO { } @Override - public boolean haveUerReviewed(int appReleaseId, String username, int tenantId) throws ReviewManagementDAOException { + public boolean hasUerReviewedApp(List appReleaseIds, String username, int tenantId) + throws ReviewManagementDAOException { if (log.isDebugEnabled()) { log.debug("Request received in DAO Layer to check whether user have already reviewed or not for the " - + "application release. Commenting user: " + username + " and tenant-id: " + tenantId); + + "application. Commenting user: " + username + " and tenant-id: " + tenantId); } Connection conn; - sql = "SELECT " - + "rv.ID " - + "FROM AP_APP_REVIEW rv " - + "WHERE " - + "rv.AP_APP_RELEASE_ID = ? AND " - + "rv.USERNAME = ? AND " - + "rv.TENANT_ID = ?"; + int index = 1; try { conn = this.getDBConnection(); - try (PreparedStatement statement = conn.prepareStatement(sql)) { - statement.setInt(1, appReleaseId); - statement.setString(2, username); - statement.setInt(3, tenantId); - try (ResultSet rs = statement.executeQuery()) { + StringJoiner joiner = new StringJoiner(",", + "SELECT rv.ID FROM AP_APP_REVIEW " + "WHERE rv.AP_APP_RELEASE_ID IN (", + ") AND rv.USERNAME = ? AND rv.TENANT_ID = ?"); + appReleaseIds.stream().map(ignored -> "?").forEach(joiner::add); + String query = joiner.toString(); + try (PreparedStatement ps = conn.prepareStatement(query)) { + for (Integer deviceId : appReleaseIds) { + ps.setObject(index++, deviceId); + } + ps.setInt(index++, tenantId); + ps.setInt(index, tenantId); + try (ResultSet rs = ps.executeQuery()) { return rs.next(); - } } } catch (SQLException e) { @@ -132,7 +134,7 @@ public class ReviewDAOImpl extends AbstractDAOImpl implements ReviewDAO { } @Override - public int updateReview(ReviewDTO reviewDTO, int reviewId, int tenantId) + public int updateReview(ReviewDTO reviewDTO, int reviewId, boolean isActiveReview, int tenantId) throws ReviewManagementDAOException { if (log.isDebugEnabled()) { @@ -146,7 +148,8 @@ public class ReviewDAOImpl extends AbstractDAOImpl implements ReviewDAO { + "SET " + "COMMENT = ?, " + "RATING = ?, " - + "MODIFIED_AT = ? " + + "MODIFIED_AT = ?, " + + "ACTIVE_REVIEW = ? " + "WHERE ID = ? AND " + "TENANT_ID = ?"; try { @@ -158,8 +161,9 @@ public class ReviewDAOImpl extends AbstractDAOImpl implements ReviewDAO { statement.setString(1, reviewDTO.getContent()); statement.setInt(2, reviewDTO.getRating()); statement.setTimestamp(3, timestamp); - statement.setInt(4, reviewId); - statement.setInt(5, tenantId); + statement.setBoolean(4, isActiveReview); + statement.setInt(5, reviewId); + statement.setInt(6, tenantId); return statement.executeUpdate(); } catch (SQLException e) { throw new ReviewManagementDAOException("Error occurred while executing reviewTmp updating query"); @@ -182,16 +186,19 @@ public class ReviewDAOImpl extends AbstractDAOImpl implements ReviewDAO { try { conn = this.getDBConnection(); sql = "SELECT " - + "ID, " - + "COMMENT," - + "ROOT_PARENT_ID," - + "IMMEDIATE_PARENT_ID, " - + "CREATED_AT, " - + "MODIFIED_AT, " - + "RATING, " - + "USERNAME " - + "FROM AP_APP_REVIEW " - + "WHERE ID = ?"; + + "AP_APP_REVIEW.ID AS ID, " + + "AP_APP_REVIEW.COMMENT AS COMMENT, " + + "AP_APP_REVIEW.ROOT_PARENT_ID AS ROOT_PARENT_ID, " + + "AP_APP_REVIEW.IMMEDIATE_PARENT_ID AS IMMEDIATE_PARENT_ID, " + + "AP_APP_REVIEW.CREATED_AT AS CREATED_AT, " + + "AP_APP_REVIEW.MODIFIED_AT AS MODIFIED_AT, " + + "AP_APP_REVIEW.RATING AS RATING, " + + "AP_APP_REVIEW.USERNAME AS USERNAME, " + + "AP_APP_RELEASE.UUID AS UUID, " + + "AP_APP_RELEASE.VERSION AS VERSION " + + "FROM AP_APP_REVIEW INNER JOIN AP_APP_RELEASE ON " + + "AP_APP_REVIEW.AP_APP_RELEASE_ID = AP_APP_RELEASE.ID " + + "WHERE AP_APP_REVIEW.ID = ?"; statement = conn.prepareStatement(sql); statement.setInt(1, reviewId); rs = statement.executeQuery(); @@ -251,14 +258,14 @@ public class ReviewDAOImpl extends AbstractDAOImpl implements ReviewDAO { @Override - public List getAllReviews(int releaseId, PaginationRequest request, int tenantId) + public List getAllActiveReleaseReviews(int releaseId, PaginationRequest request, int tenantId) throws ReviewManagementDAOException { if (log.isDebugEnabled()) { log.debug("Getting comment of the application release (" + releaseId + ") from the database"); } Connection conn; - List reviewDTOs = new ArrayList<>(); + List reviewDTOs; try { conn = this.getDBConnection(); sql = "SELECT " @@ -270,10 +277,13 @@ public class ReviewDAOImpl extends AbstractDAOImpl implements ReviewDAO { + "AP_APP_REVIEW.ROOT_PARENT_ID AS ROOT_PARENT_ID, " + "AP_APP_REVIEW.IMMEDIATE_PARENT_ID AS IMMEDIATE_PARENT_ID, " + "AP_APP_REVIEW.RATING AS RATING " - + "FROM AP_APP_REVIEW " - + "WHERE " - + "AP_APP_REVIEW.AP_APP_RELEASE_ID = ? AND " + + "AP_APP_RELEASE.UUID AS UUID, " + + "AP_APP_RELEASE.VERSION AS VERSION " + + "FROM AP_APP_REVIEW INNER JOIN AP_APP_RELEASE ON " + + "AP_APP_REVIEW.AP_APP_RELEASE_ID = AP_APP_RELEASE.ID " + + "WHERE AP_APP_REVIEW.AP_APP_RELEASE_ID = ? AND " + "AP_APP_REVIEW.ROOT_PARENT_ID = ? AND " + + "AP_APP_REVIEW.ACTIVE_REVIEW = true " + "AP_APP_REVIEW.TENANT_ID = ? " + "LIMIT ? OFFSET ?"; try (PreparedStatement statement = conn.prepareStatement(sql)) { @@ -294,6 +304,120 @@ public class ReviewDAOImpl extends AbstractDAOImpl implements ReviewDAO { } return reviewDTOs; } + @Override + public List getAllActiveAppReviews(List releaseIds, PaginationRequest request, int tenantId) + throws ReviewManagementDAOException { + + if (log.isDebugEnabled()) { + log.debug("Getting reviews of the application from the database."); + } + Connection conn; + List reviewDTOs; + int index = 1; + + try { + conn = this.getDBConnection(); + StringJoiner joiner = new StringJoiner(",", + "SELECT " + + "AP_APP_REVIEW.ID AS ID, " + + "AP_APP_REVIEW.COMMENT AS COMMENT, " + + "AP_APP_REVIEW.CREATED_AT AS CREATED_AT, " + + "AP_APP_REVIEW.MODIFIED_AT AS MODIFIED_AT, " + + "AP_APP_REVIEW.USERNAME AS USERNAME, " + + "AP_APP_REVIEW.ROOT_PARENT_ID AS ROOT_PARENT_ID, " + + "AP_APP_REVIEW.IMMEDIATE_PARENT_ID AS IMMEDIATE_PARENT_ID, " + + "AP_APP_REVIEW.RATING AS RATING, " + + "AP_APP_RELEASE.UUID AS UUID, " + + "AP_APP_RELEASE.VERSION AS VERSION " + + "FROM AP_APP_REVIEW INNER JOIN AP_APP_RELEASE ON " + + "AP_APP_REVIEW.AP_APP_RELEASE_ID = AP_APP_RELEASE.ID " + + "WHERE AP_APP_REVIEW.AP_APP_RELEASE_ID (", + ") AND AP_APP_REVIEW.ROOT_PARENT_ID = ? AND " + + "AP_APP_REVIEW.ACTIVE_REVIEW = true AND " + + "AP_APP_REVIEW.TENANT_ID = ? " + + "LIMIT ? OFFSET ?"); + releaseIds.stream().map(ignored -> "?").forEach(joiner::add); + String query = joiner.toString(); + try (PreparedStatement ps = conn.prepareStatement(query)) { + for (Integer releaseId : releaseIds) { + ps.setObject(index++, releaseId); + } + ps.setInt(index++, Constants.REVIEW_PARENT_ID); + ps.setInt(index++, tenantId); + ps.setInt(index++, request.getLimit()); + ps.setInt(index, request.getOffSet()); + try (ResultSet rs = ps.executeQuery()) { + reviewDTOs = DAOUtil.loadReviews(rs); + } + } + } + catch (DBConnectionException e) { + throw new ReviewManagementDAOException( + "Error occurred while obtaining the DB connection when verifying application existence.", e); + } catch (SQLException e) { + throw new ReviewManagementDAOException("DB connection error occurred while getting all reviews.", e); + } return reviewDTOs; + } + + @Override + public List getAllActiveAppReviewsOfUser(List releaseIds, PaginationRequest request, + String username, int tenantId) + throws ReviewManagementDAOException { + + if (log.isDebugEnabled()) { + log.debug("Getting reviews of the application for given user from the database."); + } + Connection conn; + List reviewDTOs; + int index = 1; + + try { + conn = this.getDBConnection(); + StringJoiner joiner = new StringJoiner(",", + "SELECT " + + "AP_APP_REVIEW.ID AS ID, " + + "AP_APP_REVIEW.COMMENT AS COMMENT, " + + "AP_APP_REVIEW.CREATED_AT AS CREATED_AT, " + + "AP_APP_REVIEW.MODIFIED_AT AS MODIFIED_AT, " + + "AP_APP_REVIEW.USERNAME AS USERNAME, " + + "AP_APP_REVIEW.ROOT_PARENT_ID AS ROOT_PARENT_ID, " + + "AP_APP_REVIEW.IMMEDIATE_PARENT_ID AS IMMEDIATE_PARENT_ID, " + + "AP_APP_REVIEW.RATING AS RATING, " + + "AP_APP_RELEASE.UUID AS UUID, " + + "AP_APP_RELEASE.VERSION AS VERSION " + + "FROM AP_APP_REVIEW INNER JOIN AP_APP_RELEASE ON " + + "AP_APP_REVIEW.AP_APP_RELEASE_ID = AP_APP_RELEASE.ID " + + "WHERE AP_APP_REVIEW.AP_APP_RELEASE_ID (", + ") AND AP_APP_REVIEW.ROOT_PARENT_ID = ? AND " + + "AP_APP_REVIEW.ACTIVE_REVIEW = true AND " + + "AP_APP_REVIEW.USERNAME = ? AND " + + "AP_APP_REVIEW.TENANT_ID = ? " + + "LIMIT ? OFFSET ?"); + releaseIds.stream().map(ignored -> "?").forEach(joiner::add); + String query = joiner.toString(); + try (PreparedStatement ps = conn.prepareStatement(query)) { + for (Integer releaseId : releaseIds) { + ps.setObject(index++, releaseId); + } + ps.setInt(index++, Constants.REVIEW_PARENT_ID); + ps.setString(index++, username); + ps.setInt(index++, tenantId); + ps.setInt(index++, request.getLimit()); + ps.setInt(index, request.getOffSet()); + try (ResultSet rs = ps.executeQuery()) { + reviewDTOs = DAOUtil.loadReviews(rs); + } + } + } + catch (DBConnectionException e) { + throw new ReviewManagementDAOException( + "Error occurred while obtaining the DB connection when application review of user: " + username , e); + } catch (SQLException e) { + throw new ReviewManagementDAOException("DB connection error occurred while getting application reviews of " + + "user:" + username, e); + } return reviewDTOs; + } + @Override public List getReplyComments(int parentId, int tenantId) throws ReviewManagementDAOException { @@ -312,8 +436,11 @@ public class ReviewDAOImpl extends AbstractDAOImpl implements ReviewDAO { + "AP_APP_REVIEW.USERNAME AS USERNAME, " + "AP_APP_REVIEW.ROOT_PARENT_ID AS ROOT_PARENT_ID, " + "AP_APP_REVIEW.IMMEDIATE_PARENT_ID AS IMMEDIATE_PARENT_ID, " - + "AP_APP_REVIEW.RATING AS RATING " - + "FROM AP_APP_REVIEW " + + "AP_APP_REVIEW.RATING AS RATING, " + + "AP_APP_RELEASE.UUID AS UUID, " + + "AP_APP_RELEASE.VERSION AS VERSION " + + "FROM AP_APP_REVIEW INNER JOIN AP_APP_RELEASE ON " + + "AP_APP_REVIEW.AP_APP_RELEASE_ID = AP_APP_RELEASE.ID " + "WHERE " + "AP_APP_REVIEW.ROOT_PARENT_ID = ? AND " + "AP_APP_REVIEW.TENANT_ID = ?"; @@ -334,7 +461,7 @@ public class ReviewDAOImpl extends AbstractDAOImpl implements ReviewDAO { } @Override - public List getAllRatingValues(String uuid, int tenantId) throws ReviewManagementDAOException { + public List getAllAppReleaseRatingValues(String uuid, int tenantId) throws ReviewManagementDAOException { if (log.isDebugEnabled()) { log.debug("Getting comment of the application release (" + uuid + ") from the database"); @@ -347,7 +474,7 @@ public class ReviewDAOImpl extends AbstractDAOImpl implements ReviewDAO { conn = this.getDBConnection(); sql = "SELECT AP_APP_REVIEW.RATING AS RATING FROM AP_APP_REVIEW, AP_APP_RELEASE WHERE " + "AP_APP_REVIEW.AP_APP_RELEASE_ID=AP_APP_RELEASE.ID AND AP_APP_RELEASE.UUID =? AND " - + "AP_APP_REVIEW.TENANT_ID = AP_APP_RELEASE.TENANT_ID AND AP_APP_REVIEW.TENANT_ID = ?;"; + + "AP_APP_REVIEW.TENANT_ID = AP_APP_RELEASE.TENANT_ID AND AP_APP_REVIEW.TENANT_ID = ?"; statement = conn.prepareStatement(sql); statement.setString(1, uuid); statement.setInt(2, tenantId); @@ -369,6 +496,44 @@ public class ReviewDAOImpl extends AbstractDAOImpl implements ReviewDAO { return reviews; } + @Override + public List getAllAppRatingValues(List uuids, int tenantId) throws ReviewManagementDAOException { + + if (log.isDebugEnabled()) { + log.debug("Getting rating values of the application from the database"); + } + Connection conn; + List reviews = new ArrayList<>(); + try { + int index = 1; + conn = this.getDBConnection(); + StringJoiner joiner = new StringJoiner(",", + "SELECT AP_APP_REVIEW.RATING AS RATING FROM AP_APP_REVIEW INNER JOIN AP_APP_RELEASE ON " + + "AP_APP_REVIEW.AP_APP_RELEASE_ID = AP_APP_RELEASE.ID WHERE AP_APP_RELEASE.UUID IN (", + ") AND AP_APP_REVIEW.ACTIVE_REVIEW = true AND AP_APP_REVIEW.TENANT_ID = ?"); + uuids.stream().map(ignored -> "?").forEach(joiner::add); + String query = joiner.toString(); + try (PreparedStatement ps = conn.prepareStatement(query)) { + for (String uuid : uuids) { + ps.setObject(index++, uuid); + } + ps.setInt(index++, tenantId); + ps.setInt(index, tenantId); + try (ResultSet rs = ps.executeQuery()) { + while (rs.next()) { + reviews.add(rs.getInt("RATING")); + } } + } + } catch (SQLException e) { + throw new ReviewManagementDAOException( + "Error occured while getting all rating values for the application.", e); + } catch (DBConnectionException e) { + throw new ReviewManagementDAOException( + "Error occured while getting DB connection to retrieve all rating values for the application.", e); + } + return reviews; + } + @Override public int getReviewCount(String uuid) throws ReviewManagementDAOException { diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/impl/subscription/GenericSubscriptionDAOImpl.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/impl/subscription/GenericSubscriptionDAOImpl.java index cb23fac1ea..26984eeea0 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/impl/subscription/GenericSubscriptionDAOImpl.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/impl/subscription/GenericSubscriptionDAOImpl.java @@ -144,7 +144,7 @@ public class GenericSubscriptionDAOImpl extends AbstractDAOImpl implements Subsc + "OPERATION_ID, " + "AP_DEVICE_SUBSCRIPTION_ID, " + "TENANT_ID) " - + "VALUES (?, ?, ?, ?, ?)"; + + "VALUES (?, ?, ?)"; conn = this.getDBConnection(); try (PreparedStatement stmt = conn.prepareStatement(sql)) { for (Integer subId : deviceSubscriptionIds) { diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java index 6b223428d0..eb4bbf8260 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java @@ -1924,6 +1924,14 @@ public class ApplicationManagerImpl implements ApplicationManager { } try { ConnectionManagerUtil.beginDBTransaction(); + if (applicationDAO.getTagForTagName(newTagName, tenantId) != null){ + String msg = + "You are trying to modify tag name into existing tag. Therefore you can't modify tag name from " + + oldTagName + " to new tag name " + newTagName; + log.error(msg); + throw new BadRequestException(msg); + + } TagDTO tag = applicationDAO.getTagForTagName(oldTagName, tenantId); if (tag == null){ String msg = "Couldn't found a tag for tag name " + oldTagName + "."; @@ -2129,7 +2137,7 @@ public class ApplicationManagerImpl implements ApplicationManager { if (!StringUtils.isEmpty(appType)) { boolean isValidAppType = false; for (ApplicationType applicationType : ApplicationType.values()) { - if (applicationType.toString().equals(appType)) { + if (applicationType.toString().equalsIgnoreCase(appType)) { isValidAppType = true; break; } diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ReviewManagerImpl.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ReviewManagerImpl.java index f7eb2d2408..b550f6a64e 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ReviewManagerImpl.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ReviewManagerImpl.java @@ -24,6 +24,7 @@ import org.wso2.carbon.device.application.mgt.common.Rating; import org.wso2.carbon.device.application.mgt.common.ReviewNode; import org.wso2.carbon.device.application.mgt.common.PaginationRequest; import org.wso2.carbon.device.application.mgt.common.PaginationResult; +import org.wso2.carbon.device.application.mgt.common.dto.ApplicationDTO; import org.wso2.carbon.device.application.mgt.common.dto.ApplicationReleaseDTO; import org.wso2.carbon.device.application.mgt.common.dto.ReviewDTO; import org.wso2.carbon.device.application.mgt.common.exception.ApplicationManagementException; @@ -49,6 +50,7 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.TreeMap; +import java.util.stream.Collectors; import java.util.stream.IntStream; /** @@ -72,7 +74,7 @@ public class ReviewManagerImpl implements ReviewManager { } @Override - public boolean addReview(ReviewWrapper reviewWrapper, String uuid) + public boolean addReview(ReviewWrapper reviewWrapper, String uuid,boolean allowMultipleReviews) throws ReviewManagementException, ApplicationManagementException { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername(); @@ -82,37 +84,47 @@ public class ReviewManagerImpl implements ReviewManager { log.error(msg); throw new BadRequestException(msg); } - if (reviewWrapper.getRating() < 0) { + if (reviewWrapper.getRating() <= 0) { String msg = "You are trying to add invalid rating value as rating. Therefore please verify the request " + "payload."; log.error(msg); - throw new ForbiddenException(msg); + throw new BadRequestException(msg); } try { ConnectionManagerUtil.beginDBTransaction(); - ApplicationReleaseDTO applicationReleaseDTO = this.applicationReleaseDAO.getReleaseByUUID(uuid, tenantId); - if (applicationReleaseDTO == null) { - String msg = "Couldn't find application release for the application UUID: " + uuid; + ApplicationDTO applicationDTO = this.applicationDAO.getApplicationByUUID(uuid, tenantId); + if (applicationDTO == null) { + String msg = "Couldn't find an application which has the application release of UUID: " + uuid; log.error(msg); throw new NotFoundException(msg); } - if (this.reviewDAO.haveUerReviewed(applicationReleaseDTO.getId(), username, tenantId)) { + List applicationReleaseIds = new ArrayList<>(); + int associatedAppReleaseId = -1; + for (ApplicationReleaseDTO applicationReleaseDTO : applicationDTO.getApplicationReleaseDTOs()) { + if (applicationReleaseDTO.getUuid().equals(uuid)){ + associatedAppReleaseId = applicationReleaseDTO.getId(); + } + Integer id = applicationReleaseDTO.getId(); + applicationReleaseIds.add(id); + } + if (!allowMultipleReviews && this.reviewDAO.hasUerReviewedApp(applicationReleaseIds, username, tenantId)) { String msg = - "User " + username + " has already reviewed the application release which has UUID: " + uuid - + ". Hence you can't add another review for same application release. But you can update " - + "the review that you have already added for ths application release."; + "User " + username + " has already reviewed the application of app release which has UUID: " + + uuid + ". Hence you can't add another review for same application. But if you have " + + "added review for same app release you can update the review that you have already " + + "added for ths application."; log.error(msg); throw new ForbiddenException(msg); } - Runnable task = () -> calculateRating(reviewWrapper.getRating(), -12345, uuid, tenantId); - new Thread(task).start(); - ReviewDTO reviewDTO = reviewWrapperToDO(reviewWrapper); + ReviewDTO reviewDTO = reviewWrapperToDTO(reviewWrapper); reviewDTO.setUsername(username); reviewDTO.setRootParentId(-1); reviewDTO.setImmediateParentId(-1); - if (this.reviewDAO.addReview(reviewDTO, applicationReleaseDTO.getId(), tenantId)) { + if (this.reviewDAO.addReview(reviewDTO, associatedAppReleaseId, tenantId)) { ConnectionManagerUtil.commitDBTransaction(); + Runnable task = () -> calculateRating(reviewWrapper.getRating(), -12345, uuid, tenantId); + new Thread(task).start(); return true; } ConnectionManagerUtil.rollbackDBTransaction(); @@ -153,45 +165,52 @@ public class ReviewManagerImpl implements ReviewManager { log.error(msg); throw new BadRequestException(msg); } + + ReviewDTO parentReview = getReview(parentReviewId); + if (parentReview == null) { + String msg = "Couldn't find an review which has review ID: " + parentReviewId + + " for application release which has UUID: " + uuid; + log.error(msg); + throw new NotFoundException(msg); + } + if (!parentReview.getReleaseUuid().equals(uuid)) { + String msg = + "Bad Request. You are trying to add reply comment for application release which has UUID: " + uuid + + "," + " but parent review is associated with application release which has UUID: " + + parentReview.getReleaseUuid() + ". Hence can't proceed this request further."; + log.error(msg); + throw new BadRequestException(msg); + } + + ReviewDTO replyComment = reviewWrapperToDTO(reviewWrapper); + replyComment.setUsername(username); + replyComment.setRating(0); + replyComment.setImmediateParentId(parentReview.getId()); + if (parentReview.getRootParentId() == -1) { + replyComment.setRootParentId(parentReview.getId()); + } else { + replyComment.setRootParentId(parentReview.getRootParentId()); + } + try { ConnectionManagerUtil.beginDBTransaction(); ApplicationReleaseDTO applicationReleaseDTO = this.applicationReleaseDAO.getReleaseByUUID(uuid, tenantId); - if (applicationReleaseDTO == null) { - String msg = "Couldn't find application release for the application UUID: " + uuid; - log.error(msg); - throw new NotFoundException(msg); - } - ReviewDTO parentReview = this.reviewDAO.getReview(applicationReleaseDTO.getId(), parentReviewId); - if (parentReview == null) { - String msg = "Couldn't find an review which has review ID: " + parentReviewId - + " for application release which has UUID: " + uuid; - log.error(msg); - throw new NotFoundException(msg); - } - ReviewDTO replyComment = reviewWrapperToDO(reviewWrapper); - replyComment.setUsername(username); - replyComment.setRating(0); - replyComment.setImmediateParentId(parentReview.getId()); - if (parentReview.getRootParentId() == -1) { - replyComment.setRootParentId(parentReview.getId()); - } else { - replyComment.setRootParentId(parentReview.getRootParentId()); - } if (this.reviewDAO.addReview(replyComment, applicationReleaseDTO.getId(), tenantId)) { ConnectionManagerUtil.commitDBTransaction(); return true; } + ConnectionManagerUtil.rollbackDBTransaction(); return false; } catch (DBConnectionException e) { throw new ReviewManagementException( - "DB Connection error occurs ,Review for application release with UUID: " + uuid + " is failed", - e); + "DB Connection error occurs ,Review for application release with UUID: " + uuid + " is failed", e); } catch (TransactionManagementException e) { String msg = "DB transaction error occurred when adding reply comment for comment which has comment id: " + parentReviewId; log.error(msg); throw new ReviewManagementException(msg, e); } catch (ApplicationManagementDAOException e) { + ConnectionManagerUtil.rollbackDBTransaction(); throw new ReviewManagementException( "Error occured while verifying whether application release is exists or not.", e); } finally { @@ -199,7 +218,7 @@ public class ReviewManagerImpl implements ReviewManager { } } - private ReviewDTO reviewWrapperToDO(ReviewWrapper reviewWrapper){ + private ReviewDTO reviewWrapperToDTO(ReviewWrapper reviewWrapper){ ReviewDTO reviewDTO = new ReviewDTO(); reviewDTO.setContent(reviewWrapper.getContent()); reviewDTO.setRating(reviewWrapper.getRating()); @@ -229,50 +248,77 @@ public class ReviewManagerImpl implements ReviewManager { return review; } + private ReviewDTO getReview(int reviewId) throws ReviewManagementException { + try { + ConnectionManagerUtil.openDBConnection(); + return this.reviewDAO.getReview(reviewId); + } catch (DBConnectionException e) { + String msg = "DB Connection error occurs updating reviewTmp with reviewTmp id " + reviewId + "."; + log.error(msg); + throw new ReviewManagementException(msg, e); + } finally { + ConnectionManagerUtil.closeDBConnection(); + } + } + @Override - public boolean updateReview(ReviewWrapper updatingReview, int reviewId, String uuid, boolean isPriviledgedUser) - throws ReviewManagementException, ApplicationManagementException { + public boolean updateReview(ReviewWrapper updatingReview, int reviewId, String uuid, + boolean isPrivilegedUser) throws ReviewManagementException, ApplicationManagementException { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername(); - if (log.isDebugEnabled()) { - log.debug("Review updating request is received for the reviewTmp id " + reviewId); + ReviewDTO reviewDTO = getReview(reviewId); + if (reviewDTO == null) { + String msg = "Couldn't found a review for review ID: " + reviewId; + log.error(msg); + throw new NotFoundException(msg); + } + if (!isPrivilegedUser && !username.equals(reviewDTO.getUsername())) { + String msg = "You are trying to update a review which is created by " + reviewDTO.getUsername() + + ". Hence you are not permitted to update the review."; + log.error(msg); + throw new ForbiddenException(msg); } - try { - ConnectionManagerUtil.beginDBTransaction(); - ApplicationReleaseDTO applicationReleaseDTO = this.applicationReleaseDAO.getReleaseByUUID(uuid, tenantId); - if (applicationReleaseDTO == null) { - String msg = "Couldn't found an application release for UUID: " + uuid; - log.error(msg); - throw new NotFoundException(msg); - } - ReviewDTO reviewDTO = this.reviewDAO.getReview(applicationReleaseDTO.getId(), reviewId); - if (reviewDTO == null) { - String msg = - "Couldn't found a review for application release which has UUID: " + uuid + " and review ID: " - + reviewId; - log.error(msg); - throw new NotFoundException(msg); - } - if (!isPriviledgedUser && !username.equals(reviewDTO.getUsername())) { - String msg = "You are trying to update a review which is created by " + reviewDTO.getUsername() - + ". Hence you are not permitted to update the review."; - log.error(msg); - throw new ForbiddenException(msg); - } - - if (reviewDTO.getRootParentId() == -1 && reviewDTO.getImmediateParentId() == -1 - && updatingReview.getRating() > 0 && updatingReview.getRating() != reviewDTO.getRating()) { - Runnable task = () -> calculateRating(updatingReview.getRating(), reviewDTO.getRating(), uuid, - tenantId); + boolean isActiveReview = true; + //Handle Review + if (reviewDTO.getRootParentId() == -1 && reviewDTO.getImmediateParentId() == -1) { + if (!reviewDTO.getReleaseUuid().equals(uuid)) { + isActiveReview = false; + if (!addReview(updatingReview, uuid, true)) { + String msg = "Review Updating Status: New review adding is failed."; + log.error(msg); + throw new ReviewManagementException(msg); + } + } else if (updatingReview.getRating() > 0 && updatingReview.getRating() != reviewDTO.getRating()) { + Runnable task = () -> ReviewManagerImpl.this + .calculateRating(updatingReview.getRating(), reviewDTO.getRating(), uuid, tenantId); new Thread(task).start(); reviewDTO.setRating(updatingReview.getRating()); + reviewDTO.setContent(updatingReview.getContent()); + } + } else { + if (!reviewDTO.getReleaseUuid().equals(uuid)) { + String msg = "You are trying to update reply comment, but associated application release UUID and " + + "requested app release UUID are mismatched."; + throw new BadRequestException(msg); } reviewDTO.setContent(updatingReview.getContent()); - if (this.reviewDAO.updateReview(reviewDTO, reviewId, tenantId) == 1){ + } + return updateReviewInDB(reviewDTO, uuid, reviewId, isActiveReview, tenantId); + } + + private boolean updateReviewInDB(ReviewDTO reviewDTO, String uuid, int reviewId, boolean isActiveReview, + int tenantId) throws ReviewManagementException, ApplicationManagementException { + try { + ConnectionManagerUtil.beginDBTransaction(); + if (this.reviewDAO.updateReview(reviewDTO, reviewId, isActiveReview, tenantId) == 1) { + if (!isActiveReview) { + updateAppRating(uuid, tenantId); + } ConnectionManagerUtil.commitDBTransaction(); return true; } + ConnectionManagerUtil.rollbackDBTransaction(); return false; } catch (ReviewManagementDAOException e) { ConnectionManagerUtil.rollbackDBTransaction(); @@ -283,10 +329,6 @@ public class ReviewManagerImpl implements ReviewManager { String msg = "DB Connection error occurs updating reviewTmp with reviewTmp id " + reviewId + "."; log.error(msg); throw new ReviewManagementException(msg, e); - } catch (ApplicationManagementDAOException e) { - String msg = "Error occured when getting application release data for application release UUID: " + uuid; - log.error(msg); - throw new ApplicationManagementException(msg, e); } catch (TransactionManagementException e) { String msg = "DB transaction error occurred when updating comment which has comment id: " + reviewId; log.error(msg); @@ -297,13 +339,11 @@ public class ReviewManagerImpl implements ReviewManager { } @Override - public PaginationResult getAllReviews(PaginationRequest request, String uuid) + public PaginationResult getAllReleaseReviews(PaginationRequest request, String uuid) throws ReviewManagementException, ApplicationManagementException { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); - PaginationResult paginationResult = new PaginationResult(); - TreeMap> reviewTree = new TreeMap<>(); if (log.isDebugEnabled()) { - log.debug("Get all reviewTmps of the application release uuid: " + uuid); + log.debug("Get all release reviews of the application release uuid: " + uuid); } try { ConnectionManagerUtil.openDBConnection(); @@ -313,29 +353,9 @@ public class ReviewManagerImpl implements ReviewManager { log.error(msg); throw new NotFoundException(msg); } - List reviewDTOs= this.reviewDAO.getAllReviews(releaseDTO.getId(), request, tenantId); - for (ReviewDTO reviewDTO : reviewDTOs){ - ReviewNode rootNode = new ReviewNode<>(reviewDTO); - reviewTree.put(reviewDTO.getId(), rootNode); - List replyComments = this.reviewDAO.getReplyComments(reviewDTO.getId(), tenantId); - replyComments.sort(Comparator.comparing(ReviewDTO::getId)); - for (ReviewDTO reply : replyComments){ - reviewTree.put(reply.getRootParentId(), - findAndSetChild(reviewTree.get(reply.getRootParentId()), reply)); - } - } - int numOfReviews = reviewTree.size(); - List results = new ArrayList<>(); - - for (ReviewNode reviewNode : reviewTree.values()){ - results.add(constructReviewResponse(null, reviewNode)); - } - paginationResult.setData(new ArrayList<>(results)); - paginationResult.setRecordsFiltered(numOfReviews); - paginationResult.setRecordsTotal(numOfReviews); - return paginationResult; + return getReviewTree(this.reviewDAO.getAllActiveReleaseReviews(releaseDTO.getId(), request, tenantId)); } catch (ReviewManagementDAOException e) { - throw new ReviewManagementException("Error occured while getting all reviewTmps for application uuid: " + uuid, + throw new ReviewManagementException("Error occured while getting all reviews for application uuid: " + uuid, e); } catch (DBConnectionException e) { throw new ReviewManagementException("Error occured while getting the DB connection.", e); @@ -348,6 +368,120 @@ public class ReviewManagerImpl implements ReviewManager { } } + @Override + public PaginationResult getAllAppReviews(PaginationRequest request, String uuid) + throws ReviewManagementException, ApplicationManagementException { + int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); + if (log.isDebugEnabled()) { + log.debug("Get all reviews of the application release uuid: " + uuid); + } + List applicationReleaseIds = getAppReleaseIdsByUUID(uuid, tenantId); + try { + ConnectionManagerUtil.openDBConnection(); + return getReviewTree(this.reviewDAO.getAllActiveAppReviews(applicationReleaseIds, request, tenantId)); + } catch (ReviewManagementDAOException e) { + String msg = "Error occured while getting all reviews for application which has an " + + "application release of uuid: " + uuid; + log.error(msg); + throw new ReviewManagementException(msg, e); + } catch (DBConnectionException e) { + String msg = "Error occured while getting the DB connection to get app app reviews."; + log.error(msg); + throw new ReviewManagementException(msg, e); + } finally { + ConnectionManagerUtil.closeDBConnection(); + } + } + + @Override + public PaginationResult getAllAppReviewsOfUser(PaginationRequest request, String uuid) + throws ReviewManagementException, ApplicationManagementException { + int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); + String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername(); + if (log.isDebugEnabled()) { + log.debug("Get all reviews of the application release uuid: " + uuid); + } + List applicationReleaseIds = getAppReleaseIdsByUUID(uuid, tenantId); + try { + ConnectionManagerUtil.openDBConnection(); + List reviewDtos = this.reviewDAO + .getAllActiveAppReviewsOfUser(applicationReleaseIds, request, username, tenantId); + if (!reviewDtos.isEmpty() && reviewDtos.size() > 1) { + String msg = "User " + username + " can't have more than active application review for application which" + + " has application release of UUID: " + uuid; + log.error(msg); + throw new ApplicationManagementException(msg); + } + return getReviewTree(reviewDtos); + } catch (ReviewManagementDAOException e) { + throw new ReviewManagementException("Error occured while getting all reviews for application which has an " + + "application release of uuid: " + uuid, + e); + } catch (DBConnectionException e) { + throw new ReviewManagementException("Error occured while getting the DB connection.", e); + } finally { + ConnectionManagerUtil.closeDBConnection(); + } + } + + private List getAppReleaseIdsByUUID(String uuid, int tenantId) + throws ReviewManagementException, ApplicationManagementException { + try { + ConnectionManagerUtil.openDBConnection(); + ApplicationDTO applicationDTO = this.applicationDAO.getApplicationByUUID(uuid, tenantId); + if (applicationDTO == null) { + String msg = "Couldn't find an application which has the application release of UUID: " + uuid; + log.error(msg); + throw new NotFoundException(msg); + } + return applicationDTO.getApplicationReleaseDTOs().stream().map(ApplicationReleaseDTO::getId) + .collect(Collectors.toList()); + } catch (DBConnectionException e) { + String msg = "Error occured while getting the DB connection to get application which has application release" + + " of UUID: " + uuid; + log.error(msg); + throw new ReviewManagementException(msg, e); + } catch (ApplicationManagementDAOException e) { + String msg = "Error occurred while getting application release details for application which has an " + + "application release of UUID " + uuid; + log.error(msg); + throw new ApplicationManagementException(msg, e); + } finally { + ConnectionManagerUtil.closeDBConnection(); + } + } + + private PaginationResult getReviewTree(List reviewDTOs) throws ReviewManagementException { + TreeMap> reviewTree = new TreeMap<>(); + PaginationResult paginationResult = new PaginationResult(); + int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); + try { + for (ReviewDTO reviewDTO : reviewDTOs) { + ReviewNode rootNode = new ReviewNode<>(reviewDTO); + reviewTree.put(reviewDTO.getId(), rootNode); + List replyComments = this.reviewDAO.getReplyComments(reviewDTO.getId(), tenantId); + replyComments.sort(Comparator.comparing(ReviewDTO::getId)); + for (ReviewDTO reply : replyComments) { + reviewTree.put(reply.getRootParentId(), + findAndSetChild(reviewTree.get(reply.getRootParentId()), reply)); + } + } + int numOfReviews = reviewTree.size(); + List results = new ArrayList<>(); + + for (ReviewNode reviewNode : reviewTree.values()) { + results.add(constructReviewResponse(null, reviewNode)); + } + paginationResult.setData(new ArrayList<>(results)); + paginationResult.setRecordsFiltered(numOfReviews); + paginationResult.setRecordsTotal(numOfReviews); + return paginationResult; + } catch (ReviewManagementDAOException e) { + throw new ReviewManagementException("Error occured while getting all reply comments for given review list", + e); + } + } + private ReviewNode findAndSetChild(ReviewNode node, ReviewDTO reviewDTO) { if (node.getData().getId() == reviewDTO.getImmediateParentId()){ ReviewNode childNode = new ReviewNode<>(reviewDTO); @@ -406,19 +540,18 @@ public class ReviewManagerImpl implements ReviewManager { String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername(); try { ConnectionManagerUtil.beginDBTransaction(); - ApplicationReleaseDTO applicationReleaseDTO = this.applicationReleaseDAO.getReleaseByUUID(uuid, tenantId); - if (applicationReleaseDTO == null) { - String msg = "Couldn't found an application release for UUID: " + uuid - + " to delete review which has review ID: " + reviewId; - log.error(msg); - throw new NotFoundException(msg); - } - ReviewDTO existingReview = this.reviewDAO.getReview(applicationReleaseDTO.getId(), reviewId); + ReviewDTO existingReview = this.reviewDAO.getReview(reviewId); if (existingReview == null) { String msg = "Cannot delete a non-existing review for the application with review id" + reviewId; log.error(msg); throw new NotFoundException(msg); } + if (!existingReview.getReleaseUuid().equals(uuid)){ + String msg = "You are trying to delete a review which is not associated with application release which " + + "has UUID: " + uuid; + log.error(msg); + throw new ForbiddenException(msg); + } if (!isPriviledgedUser && !username.equals(existingReview.getUsername())) { String msg = "You are trying to delete a comment that is owned by you. Hence you are not permitted to " + "delete the review"; @@ -433,7 +566,7 @@ public class ReviewManagerImpl implements ReviewManager { Runnable task = () -> calculateRating(0, existingReview.getRating(), uuid, tenantId); new Thread(task).start(); } else { - ReviewDTO rootReview = this.reviewDAO.getReview(existingReview.getRootParentId()); + ReviewDTO rootReview = this.reviewDAO.getReview(existingReview.getRootParentId(), tenantId); List replyComments = this.reviewDAO.getReplyComments(rootReview.getId(), tenantId); ReviewNode reviewNode = new ReviewNode<>(rootReview); @@ -460,8 +593,76 @@ public class ReviewManagerImpl implements ReviewManager { String msg = "Error occurred when handleing transaction to delete application reviews."; log.error(msg); throw new ReviewManagementException(msg, e); + } finally { + ConnectionManagerUtil.closeDBConnection(); + } + } + + @Override + public Rating getAppReleaseRating(String appReleaseUuid) throws ReviewManagementException, ApplicationManagementException { + int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); + try { + ConnectionManagerUtil.openDBConnection(); + Rating rating = this.applicationReleaseDAO.getRating(appReleaseUuid, tenantId); + if (rating == null) { + throw new NotFoundException( + "Couldn't find rating for application release UUID: " + appReleaseUuid + + ". Please check the existence of the application release"); + } + + List ratingValues = this.reviewDAO.getAllAppReleaseRatingValues(appReleaseUuid, tenantId); + rating.setRatingVariety(constructRatingVariety(ratingValues)); + return rating; } catch (ApplicationManagementDAOException e) { - String msg = "Error Occurred when getting application release data for application release UUID: " + uuid; + throw new ReviewManagementException( + "Error occured while getting the rating value of the application release uuid: " + appReleaseUuid, + e); + } catch (DBConnectionException e) { + throw new ReviewManagementException( + "DB Connection error occured while getting the rating value of the application release uuid: " + + appReleaseUuid, e); + } catch (ReviewManagementDAOException e) { + throw new ReviewManagementException( + "Error occured while getting all rating values for the application release UUID: " + + appReleaseUuid, e); + } finally { + ConnectionManagerUtil.closeDBConnection(); + } + } + + @Override + public Rating getAppRating(String appReleaseUuid) throws ReviewManagementException, ApplicationManagementException { + int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); + try { + ConnectionManagerUtil.openDBConnection(); + ApplicationDTO applicationDTO = this.applicationDAO.getApplicationByUUID(appReleaseUuid, tenantId); + if (applicationDTO == null) { + String msg = "Couldn't found an application for application release UUID: " + appReleaseUuid; + log.error(msg); + throw new NotFoundException(msg); + } + + List uuids = applicationDTO.getApplicationReleaseDTOs().stream().map(ApplicationReleaseDTO::getUuid) + .collect(Collectors.toList()); + List ratingValues = this.reviewDAO.getAllAppRatingValues(uuids, tenantId); + + Rating rating = new Rating(); + rating.setRatingValue(applicationDTO.getAppRating()); + rating.setNoOfUsers(ratingValues.size()); + rating.setRatingVariety(constructRatingVariety(ratingValues)); + return rating; + } catch (DBConnectionException e) { + String msg = "DB Connection error occured while getting app rating of the application which has application " + + "release for uuid: " + appReleaseUuid; + log.error(msg); + throw new ReviewManagementException(msg, e); + }catch (ApplicationManagementDAOException e) { + String msg = "Error occured while getting the application DTO for the application release uuid: " + appReleaseUuid; + log.error(msg); + throw new ReviewManagementException(msg, e); + } catch (ReviewManagementDAOException e) { + String msg ="Error occured while getting all rating values of application which has the application release " + + "for UUID: " + appReleaseUuid; log.error(msg); throw new ReviewManagementException(msg, e); } finally { @@ -469,48 +670,18 @@ public class ReviewManagerImpl implements ReviewManager { } } - @Override public Rating getRating(String appReleaseUuuid) throws ReviewManagementException, ApplicationManagementException { - int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); - try { - ConnectionManagerUtil.openDBConnection(); - Rating rating = this.applicationReleaseDAO.getRating(appReleaseUuuid, tenantId); - if (rating == null) { - throw new NotFoundException( - "Couldn't find rating for application release UUID: " + appReleaseUuuid - + ". Please check the existence of the application release"); + private TreeMap constructRatingVariety(List ratingValues) { + TreeMap ratingVariety = new TreeMap<>(); + ratingValues.forEach(ratingVal -> { + if (ratingVariety.containsKey(ratingVal)) { + ratingVariety.replace(ratingVal, ratingVariety.get(ratingVal) + 1); + } else { + ratingVariety.put(ratingVal, 1); } - - List ratingValues = this.reviewDAO.getAllRatingValues(appReleaseUuuid, tenantId); - TreeMap ratingVariety = new TreeMap<>(); - ratingValues.forEach(ratingVal -> { - if (ratingVariety.containsKey(ratingVal)) { - ratingVariety.replace(ratingVal, ratingVariety.get(ratingVal) + 1); - } else { - ratingVariety.put(ratingVal, 1); - } - }); - IntStream.rangeClosed(1, Constants.MAX_RATING).filter(i -> !ratingVariety.containsKey(i)) - .forEach(i -> ratingVariety.put(i, 0)); - - rating.setRatingVariety(ratingVariety); - return rating; - } catch (ApplicationManagementDAOException e) { - ConnectionManagerUtil.rollbackDBTransaction(); - throw new ReviewManagementException( - "Error occured while getting the rating value of the application release uuid: " + appReleaseUuuid, - e); - } catch (DBConnectionException e) { - ConnectionManagerUtil.rollbackDBTransaction(); - throw new ReviewManagementException( - "DB Connection error occured while getting the rating value of the application release uuid: " - + appReleaseUuuid, e); - } catch (ReviewManagementDAOException e) { - throw new ReviewManagementException( - "Error occured while getting all rating values for the application release UUID: " - + appReleaseUuuid, e); - } finally { - ConnectionManagerUtil.closeDBConnection(); - } + }); + IntStream.rangeClosed(1, Constants.MAX_RATING).filter(i -> !ratingVariety.containsKey(i)) + .forEach(i -> ratingVariety.put(i, 0)); + return ratingVariety; } private void calculateRating(int newRatingVal, int oldRatingVal, String uuid, int tenantId) { @@ -544,14 +715,7 @@ public class ReviewManagerImpl implements ReviewManager { } this.applicationReleaseDAO.updateRatingValue(uuid, updatedRating, numOfUsers); - - List releaseRatings = this.applicationReleaseDAO.getReleaseRatings(uuid, tenantId); - double appAverageRatingValue = 0.0; - double sumOfRatings = releaseRatings.stream().mapToDouble(rt -> rt).sum(); - if (sumOfRatings != 0.0) { - appAverageRatingValue = sumOfRatings / releaseRatings.size(); - } - this.applicationDAO.updateApplicationRating(uuid, appAverageRatingValue, tenantId); + updateAppRating(uuid, tenantId); ConnectionManagerUtil.commitDBTransaction(); } } catch (ApplicationManagementDAOException e) { @@ -564,8 +728,31 @@ public class ReviewManagerImpl implements ReviewManager { log.error( "Transaction error occured while updated the rating value of the application release UUID: " + uuid + " can not get.", e); + } catch (ApplicationManagementException e) { + ConnectionManagerUtil.rollbackDBTransaction(); + log.error("Error occured while updating app rating value which has application release for UUID: " + uuid, + e); } finally { ConnectionManagerUtil.closeDBConnection(); } } + + private void updateAppRating(String uuid, int tenantId) throws ApplicationManagementException { + try { + ApplicationDTO applicationDTO = this.applicationDAO.getApplicationByUUID(uuid, tenantId); + List uuids = applicationDTO.getApplicationReleaseDTOs().stream().map(ApplicationReleaseDTO::getUuid) + .collect(Collectors.toList()); + List appRatings = this.reviewDAO.getAllAppRatingValues(uuids, tenantId); + double appAverageRatingValue = appRatings.stream().mapToDouble(x -> x).average().orElse(Double.NaN); + this.applicationDAO.updateApplicationRating(uuid, appAverageRatingValue, tenantId); + } catch (ApplicationManagementDAOException e) { + String msg = "Error occurred when getting application data or updating application rating value."; + log.error(msg); + throw new ApplicationManagementException(msg, e); + } catch (ReviewManagementDAOException e) { + String msg = "Error occurred when getting application rating values"; + log.error(msg, e); + throw new ApplicationManagementException(msg, e); + } + } } diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/SubscriptionManagerImpl.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/SubscriptionManagerImpl.java index dc7a80be1a..119550c4f0 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/SubscriptionManagerImpl.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/SubscriptionManagerImpl.java @@ -388,7 +388,7 @@ public class SubscriptionManagerImpl implements SubscriptionManager { ConnectionManagerUtil.commitDBTransaction(); } catch (ApplicationManagementDAOException e) { ConnectionManagerUtil.rollbackDBTransaction(); - String msg = "Error occurred when adding subscription data for application release UUID: " + String msg = "Error occurred when adding subscription data for application release ID: " + applicationReleaseId; log.error(msg); throw new ApplicationManagementException(msg, e); @@ -398,7 +398,7 @@ public class SubscriptionManagerImpl implements SubscriptionManager { throw new ApplicationManagementException(msg, e); } catch (TransactionManagementException e) { String msg = - "SQL Error occurred when adding new device subscription to application release which has UUID: " + "SQL Error occurred when adding new device subscription to application release which has ID: " + applicationReleaseId; log.error(msg); throw new ApplicationManagementException(msg, e); diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/util/APIUtil.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/util/APIUtil.java index 73226f5818..d53fb5d2d8 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/util/APIUtil.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/util/APIUtil.java @@ -190,13 +190,13 @@ public class APIUtil { try { deviceTypes = DAOUtil.getDeviceManagementService().getDeviceTypes(); - if(deviceTypeAttr instanceof String){ + if (deviceTypeAttr instanceof String) { for (DeviceType dt : deviceTypes) { if (dt.getName().equals(deviceTypeAttr)) { return dt; } } - } else if (deviceTypeAttr instanceof Integer){ + } else if (deviceTypeAttr instanceof Integer) { for (DeviceType dt : deviceTypes) { if (dt.getId() == (Integer) deviceTypeAttr) { return dt; diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/util/DAOUtil.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/util/DAOUtil.java index 8c4137b281..a9de4b1922 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/util/DAOUtil.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/util/DAOUtil.java @@ -234,6 +234,8 @@ public class DAOUtil { reviewDTO.setImmediateParentId(rs.getInt("IMMEDIATE_PARENT_ID")); reviewDTO.setUsername(rs.getString("USERNAME")); reviewDTO.setRating(rs.getInt("RATING")); + reviewDTO.setReleaseUuid(rs.getString("UUID")); + reviewDTO.setReleaseVersion(rs.getString("VERSION")); reviewDTOs.add(reviewDTO); } return reviewDTOs; diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/main/java/org/wso2/carbon/device/application/mgt/store/api/services/ReviewManagementAPI.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/main/java/org/wso2/carbon/device/application/mgt/store/api/services/ReviewManagementAPI.java index 29ba58fb3e..e840e02a6d 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/main/java/org/wso2/carbon/device/application/mgt/store/api/services/ReviewManagementAPI.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/main/java/org/wso2/carbon/device/application/mgt/store/api/services/ReviewManagementAPI.java @@ -92,13 +92,13 @@ public interface ReviewManagementAPI { String SCOPE = "scope"; @GET - @Path("/{uuid}") + @Path("/release/{uuid}") @Produces(MediaType.APPLICATION_JSON) @ApiOperation( produces = MediaType.APPLICATION_JSON, httpMethod = "GET", - value = "get reviews", - notes = "Get all reviews", + value = "get app release reviews", + notes = "Get all app release reviews", tags = "Store Management", extensions = { @Extension(properties = { @@ -111,7 +111,7 @@ public interface ReviewManagementAPI { value = { @ApiResponse( code = 200, - message = "OK. \n Successfully retrieved reviews.", + message = "OK. \n Successfully retrieved app release reviews.", response = PaginationResult.class, responseContainer = "PaginationResult"), @ApiResponse( @@ -123,7 +123,7 @@ public interface ReviewManagementAPI { response = ErrorResponse.class) }) - Response getAllReviews( + Response getAllReleaseReviews( @ApiParam( name="uuid", value="uuid of the application release.", @@ -140,6 +140,106 @@ public interface ReviewManagementAPI { defaultValue = "20") @QueryParam("limit") int limit); + @GET + @Path("/app/user/{uuid}") + @Produces(MediaType.APPLICATION_JSON) + @ApiOperation( + produces = MediaType.APPLICATION_JSON, + httpMethod = "GET", + value = "get app reviews", + notes = "Get all app reviews", + tags = "Store Management", + extensions = { + @Extension(properties = { + @ExtensionProperty(name = SCOPE, value = "perm:app:review:view") + }) + } + ) + + @ApiResponses( + value = { + @ApiResponse( + code = 200, + message = "OK. \n Successfully retrieved app reviews.", + response = PaginationResult.class, + responseContainer = "PaginationResult"), + @ApiResponse( + code = 404, + message = "Not Found. \n Not found an application release associated with requested " + + "UUID."), + @ApiResponse( + code = 500, + message = "Internal Server Error. \n Error occurred while getting the review list.", + response = ErrorResponse.class) + }) + + Response getUserReviews( + @ApiParam( + name="uuid", + value="uuid of the application release.", + required = true) + @PathParam("uuid") String uuid, + @ApiParam( + name="offset", + value="Starting review number.", + defaultValue = "0") + @QueryParam("offSet") int offSet, + @ApiParam( + name="limit", + value = "Limit of paginated reviews", + defaultValue = "20") + @QueryParam("limit") int limit); + + @GET + @Path("/app/{uuid}") + @Produces(MediaType.APPLICATION_JSON) + @ApiOperation( + produces = MediaType.APPLICATION_JSON, + httpMethod = "GET", + value = "get app reviews", + notes = "Get all app reviews", + tags = "Store Management", + extensions = { + @Extension(properties = { + @ExtensionProperty(name = SCOPE, value = "perm:app:review:view") + }) + } + ) + + @ApiResponses( + value = { + @ApiResponse( + code = 200, + message = "OK. \n Successfully retrieved app reviews.", + response = PaginationResult.class, + responseContainer = "PaginationResult"), + @ApiResponse( + code = 404, + message = "Not Found. \n Not found an application release associated with requested " + + "UUID."), + @ApiResponse( + code = 500, + message = "Internal Server Error. \n Error occurred while getting the review list.", + response = ErrorResponse.class) + }) + + Response getAllAppReviews( + @ApiParam( + name="uuid", + value="uuid of the application release.", + required = true) + @PathParam("uuid") String uuid, + @ApiParam( + name="offset", + value="Starting review number.", + defaultValue = "0") + @QueryParam("offSet") int offSet, + @ApiParam( + name="limit", + value = "Limit of paginated reviews", + defaultValue = "20") + @QueryParam("limit") int limit); + @POST @Path("/{uuid}") @Produces(MediaType.APPLICATION_JSON) @@ -342,7 +442,7 @@ public interface ReviewManagementAPI { @PathParam("reviewId") int reviewId); @GET - @Path("/{uuid}/rating") + @Path("/{uuid}/release-rating") @Produces(MediaType.APPLICATION_JSON) @ApiOperation( produces = MediaType.APPLICATION_JSON, @@ -374,11 +474,52 @@ public interface ReviewManagementAPI { response = ErrorResponse.class) }) - Response getRating( + Response getAppReleaseRating( @ApiParam( name = "uuid", value = "uuid of the application release", required = true) @PathParam("uuid") String uuid); + + @GET + @Path("/{uuid}/app-rating") + @Produces(MediaType.APPLICATION_JSON) + @ApiOperation( + produces = MediaType.APPLICATION_JSON, + httpMethod = "GET", + value = "get app ratings", + notes = "Get all app ratings", + tags = "Store Management", + extensions = { + @Extension(properties = { + @ExtensionProperty(name = SCOPE, value = "perm:app:review:view") + }) + } + ) + + @ApiResponses( + value = { + @ApiResponse( + code = 200, + message = "OK. \n Successfully retrieved ratings.", + response = List.class, + responseContainer = "List"), + @ApiResponse( + code = 404, + message = "Not Found. \n No Application found which has application release of UUID.", + response = ErrorResponse.class), + @ApiResponse( + code = 500, + message = "Internal Server Error. \n Error occurred while getting ratings", + response = ErrorResponse.class) + }) + + Response getAppRating( + @ApiParam( + name = "uuid", + value = "uuid of the application release", + required = true) + @PathParam("uuid") + String uuid); } diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/main/java/org/wso2/carbon/device/application/mgt/store/api/services/impl/ReviewManagementAPIImpl.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/main/java/org/wso2/carbon/device/application/mgt/store/api/services/impl/ReviewManagementAPIImpl.java index 931de5cd02..b35c00efd5 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/main/java/org/wso2/carbon/device/application/mgt/store/api/services/impl/ReviewManagementAPIImpl.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/main/java/org/wso2/carbon/device/application/mgt/store/api/services/impl/ReviewManagementAPIImpl.java @@ -55,15 +55,15 @@ public class ReviewManagementAPIImpl implements ReviewManagementAPI { @Override @GET - @Path("/{uuid}") - public Response getAllReviews( + @Path("/release/{uuid}") + public Response getAllReleaseReviews( @PathParam("uuid") String uuid, @DefaultValue("0") @QueryParam("offset") int offSet, @DefaultValue("20") @QueryParam("limit") int limit) { ReviewManager reviewManager = APIUtil.getReviewManager(); PaginationRequest request = new PaginationRequest(offSet, limit); try { - PaginationResult paginationResult = reviewManager.getAllReviews(request, uuid); + PaginationResult paginationResult = reviewManager.getAllReleaseReviews(request, uuid); return Response.status(Response.Status.OK).entity(paginationResult).build(); } catch (NotFoundException e) { String msg = "Couldn't find an application release for UUID: " + uuid; @@ -80,6 +80,62 @@ public class ReviewManagementAPIImpl implements ReviewManagementAPI { } } + @Override + @GET + @Path("/app/user/{uuid}") + public Response getUserReviews( + @PathParam("uuid") String uuid, + @DefaultValue("0") @QueryParam("offset") int offSet, + @DefaultValue("20") @QueryParam("limit") int limit) { + ReviewManager reviewManager = APIUtil.getReviewManager(); + PaginationRequest request = new PaginationRequest(offSet, limit); + try { + PaginationResult paginationResult = reviewManager.getAllAppReviewsOfUser(request, uuid); + return Response.status(Response.Status.OK).entity(paginationResult).build(); + } catch (NotFoundException e) { + String msg = "Couldn't find an application which has application release of UUID: " + uuid; + log.error(msg, e); + return Response.status(Response.Status.NOT_FOUND).entity(msg).build(); + } catch (ReviewManagementException e) { + String msg = "Error occurred while retrieving reviews for application which has application release for " + + "UUID: " + uuid; + log.error(msg, e); + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); + } catch (ApplicationManagementException e) { + String msg = "Error occurred while retrieving application release details for application UUID: " + uuid; + log.error(msg, e); + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); + } + } + + @Override + @GET + @Path("/app/{uuid}") + public Response getAllAppReviews( + @PathParam("uuid") String uuid, + @DefaultValue("0") @QueryParam("offset") int offSet, + @DefaultValue("20") @QueryParam("limit") int limit) { + ReviewManager reviewManager = APIUtil.getReviewManager(); + PaginationRequest request = new PaginationRequest(offSet, limit); + try { + PaginationResult paginationResult = reviewManager.getAllAppReviews(request, uuid); + return Response.status(Response.Status.OK).entity(paginationResult).build(); + } catch (NotFoundException e) { + String msg = "Couldn't find an application which has application release of UUID: " + uuid; + log.error(msg, e); + return Response.status(Response.Status.NOT_FOUND).entity(msg).build(); + } catch (ReviewManagementException e) { + String msg = "Error occurred while retrieving reviews for application which has application release for " + + "UUID: " + uuid; + log.error(msg, e); + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); + } catch (ApplicationManagementException e) { + String msg = "Error occurred while retrieving application release details for application UUID: " + uuid; + log.error(msg, e); + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); + } + } + @Override @POST @Consumes("application/json") @@ -89,7 +145,7 @@ public class ReviewManagementAPIImpl implements ReviewManagementAPI { @PathParam("uuid") String uuid) { ReviewManager reviewManager = APIUtil.getReviewManager(); try { - boolean isReviewCreated = reviewManager.addReview(reviewWrapper, uuid); + boolean isReviewCreated = reviewManager.addReview(reviewWrapper, uuid, false); if (isReviewCreated) { return Response.status(Response.Status.CREATED).entity(reviewWrapper).build(); } else { @@ -227,13 +283,13 @@ public class ReviewManagementAPIImpl implements ReviewManagementAPI { @Override @GET - @Path("/{uuid}/rating") - public Response getRating( + @Path("/{uuid}/release-rating") + public Response getAppReleaseRating( @PathParam("uuid") String uuid) { ReviewManager reviewManager = APIUtil.getReviewManager(); Rating rating; try { - rating = reviewManager.getRating(uuid); + rating = reviewManager.getAppReleaseRating(uuid); } catch (NotFoundException e) { String msg = "Couldn't found an application release for UUID: " + uuid; log.error(msg, e); @@ -246,4 +302,25 @@ public class ReviewManagementAPIImpl implements ReviewManagementAPI { return Response.status(Response.Status.OK).entity(rating).build(); } + @Override + @GET + @Path("/{uuid}/app-rating") + public Response getAppRating( + @PathParam("uuid") String uuid) { + ReviewManager reviewManager = APIUtil.getReviewManager(); + Rating rating; + try { + rating = reviewManager.getAppRating(uuid); + } catch (NotFoundException e) { + String msg = "Couldn't found an application for application release UUID: " + uuid; + log.error(msg, e); + return Response.status(Response.Status.NOT_FOUND).entity(msg).build(); + } catch (ReviewManagementException | ApplicationManagementException e) { + String msg = "Error occured while getting review data for application release UUID: " + uuid; + log.error(msg, e); + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); + } + return Response.status(Response.Status.OK).entity(rating).build(); + } + } \ No newline at end of file diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/test/java/org/wso2/carbon/device/application/mgt/store/api/services/ReviewManagementAPITest.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/test/java/org/wso2/carbon/device/application/mgt/store/api/services/ReviewManagementAPITest.java index 2fefff1675..da19f226e8 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/test/java/org/wso2/carbon/device/application/mgt/store/api/services/ReviewManagementAPITest.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/test/java/org/wso2/carbon/device/application/mgt/store/api/services/ReviewManagementAPITest.java @@ -58,7 +58,7 @@ import org.wso2.carbon.device.application.mgt.core.util.APIUtil; // @Test // public void testGetAllCommentsWithValidDetails() throws Exception { // PowerMockito.stub(PowerMockito.method(APIUtil.class, "getReviewManager")).toReturn(this.reviewManager); -// Response response = this.commentManagementAPI.getAllReviews("a", 1, 2); +// Response response = this.commentManagementAPI.getAllReleaseReviews("a", 1, 2); // Assert.assertNotNull(response, "The response object is null."); // Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode(), // "The response status should be 200."); @@ -69,8 +69,8 @@ import org.wso2.carbon.device.application.mgt.core.util.APIUtil; // public void testGetAllCommentsInternalError() throws Exception { // PowerMockito.stub(PowerMockito.method(APIUtil.class, "getReviewManager")).toReturn(this.reviewManager); // Mockito.doThrow(new ReviewManagementException()).when(this.reviewManager) -// .getAllReviews(Mockito.any(), Mockito.anyString()); -// Response response = this.commentManagementAPI.getAllReviews("a", 1, 4); +// .getAllReleaseReviews(Mockito.any(), Mockito.anyString()); +// Response response = this.commentManagementAPI.getAllReleaseReviews("a", 1, 4); // Assert.assertNotNull(response, "The response object is null."); // Assert.assertEquals(response.getStatus(), Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), // "The response status should be 500."); @@ -80,7 +80,7 @@ import org.wso2.carbon.device.application.mgt.core.util.APIUtil; // @Test // public void testGetAllCommentsNotFoundError() throws Exception { // PowerMockito.stub(PowerMockito.method(APIUtil.class, "getReviewManager")).toReturn(this.reviewManager); -// Response response = this.commentManagementAPI.getAllReviews(null, 1, 3); +// Response response = this.commentManagementAPI.getAllReleaseReviews(null, 1, 3); // Assert.assertNotNull(response, "The response object is null."); // Assert.assertEquals(response.getStatus(), Response.Status.NOT_FOUND.getStatusCode(), // "The response status should be 404."); @@ -192,7 +192,7 @@ import org.wso2.carbon.device.application.mgt.core.util.APIUtil; // @Test // public void testGetStars() throws Exception { // PowerMockito.stub(PowerMockito.method(APIUtil.class, "getReviewManager")).toReturn(this.reviewManager); -// Response response = this.commentManagementAPI.getRating("a"); +// Response response = this.commentManagementAPI.getAppReleaseRating("a"); // Assert.assertNotNull(response, "The response object is null."); // Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode(), // "The response status should be 200."); @@ -202,9 +202,9 @@ import org.wso2.carbon.device.application.mgt.core.util.APIUtil; // @Test // public void testGetStarsCommentError() throws Exception { // PowerMockito.stub(PowerMockito.method(APIUtil.class, "getReviewManager")).toReturn(this.reviewManager); -// Mockito.when(this.commentManagementAPI.getRating(Mockito.anyString())) +// Mockito.when(this.commentManagementAPI.getAppReleaseRating(Mockito.anyString())) // .thenThrow(new ReviewManagementException()); -// Response response = this.commentManagementAPI.getRating("a"); +// Response response = this.commentManagementAPI.getAppReleaseRating("a"); // Assert.assertNotNull(response, "The response object is null."); // Assert.assertEquals(response.getStatus(), Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), // "The response status should be 500."); @@ -214,9 +214,9 @@ import org.wso2.carbon.device.application.mgt.core.util.APIUtil; // @Test // public void testGetStarsApplicationError() throws Exception { // PowerMockito.stub(PowerMockito.method(APIUtil.class, "getReviewManager")).toReturn(this.reviewManager); -// Mockito.when(this.commentManagementAPI.getRating(Mockito.anyString())) +// Mockito.when(this.commentManagementAPI.getAppReleaseRating(Mockito.anyString())) // .thenThrow(new ApplicationManagementException()); -// Response response = this.commentManagementAPI.getRating("a"); +// Response response = this.commentManagementAPI.getAppReleaseRating("a"); // Assert.assertNotNull(response, "The response object is null."); // Assert.assertEquals(response.getStatus(), Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), // "The response status should be 500."); diff --git a/features/application-mgt/org.wso2.carbon.device.application.mgt.server.feature/src/main/resources/dbscripts/cdm/application-mgt/h2.sql b/features/application-mgt/org.wso2.carbon.device.application.mgt.server.feature/src/main/resources/dbscripts/cdm/application-mgt/h2.sql index e0d12e9289..180aa9fcd9 100644 --- a/features/application-mgt/org.wso2.carbon.device.application.mgt.server.feature/src/main/resources/dbscripts/cdm/application-mgt/h2.sql +++ b/features/application-mgt/org.wso2.carbon.device.application.mgt.server.feature/src/main/resources/dbscripts/cdm/application-mgt/h2.sql @@ -61,6 +61,7 @@ CREATE TABLE IF NOT EXISTS AP_APP_REVIEW( MODIFIED_AT TIMESTAMP NOT NULL, RATING INTEGER NULL, USERNAME VARCHAR(45) NOT NULL, + ACTIVE_REVIEW BOOLEAN NOT NULL DEFAULT TRUE, AP_APP_RELEASE_ID INTEGER NOT NULL, PRIMARY KEY (ID), CONSTRAINT fk_AP_APP_COMMENT_AP_APP_RELEASE1