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 f4d54e7492..835ed077f3 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
@@ -83,10 +83,6 @@
com.googlecode.json-simple.wso2
json-simple
-
- org.wso2.carbon
- org.wso2.carbon.user.api
-
org.wso2.carbon
org.wso2.carbon.utils
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/RoleWrapper.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/RoleInfo.java
similarity index 94%
rename from components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/RoleWrapper.java
rename to components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/RoleInfo.java
index c0856021e2..e62b5a4a3c 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/RoleWrapper.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/beans/RoleInfo.java
@@ -22,9 +22,9 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.wso2.carbon.user.mgt.common.UIPermissionNode;
-@ApiModel(value = "RoleWrapper", description = "Role details including permission and the users in the roles are " +
+@ApiModel(value = "RoleInfo", description = "Role details including permission and the users in the roles are " +
"wrapped here.")
-public class RoleWrapper {
+public class RoleInfo {
@ApiModelProperty(name = "roleName", value = "The name of the role.", required = true)
private String roleName;
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/ActivityInfoProviderService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/ActivityInfoProviderService.java
index d2ad14d1f1..5b457b1b15 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/ActivityInfoProviderService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/ActivityInfoProviderService.java
@@ -78,7 +78,7 @@ public interface ActivityInfoProviderService {
response = ErrorResponse.class),
@ApiResponse(
code = 401,
- message = ". \n Invalid request or validation error."),
+ message = "Unauthorized. \n Unauthorized request."),
@ApiResponse(
code = 404,
message = "Not Found. \n No activity is found under the provided id.",
@@ -88,7 +88,7 @@ public interface ActivityInfoProviderService {
message = "Not Acceptable.\n The requested media type is not supported"),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n Server error occurred while fetching activity data.",
+ message = "Internal Server Error. \n Server error occurred while fetching activity data.",
response = ErrorResponse.class)
})
@Permission(scope = "activity-view", roles = {"emm-user", "emm-admin"})
@@ -135,6 +135,9 @@ public interface ActivityInfoProviderService {
code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."),
+ @ApiResponse(
+ code = 401,
+ message = "Unauthorized. \n Unauthorized request."),
@ApiResponse(
code = 404,
message = "Not Found. \n No activities found.",
@@ -144,7 +147,7 @@ public interface ActivityInfoProviderService {
message = "Not Acceptable.\n The requested media type is not supported"),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n Server error occurred while fetching activity data.",
+ message = "Internal Server Error. \n Server error occurred while fetching activity data.",
response = ErrorResponse.class)
})
@Permission(scope = "activity-view", roles = {"emm-admin"})
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/ConfigurationManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/ConfigurationManagementService.java
index 168eda4740..bbeaf3cf0d 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/ConfigurationManagementService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/ConfigurationManagementService.java
@@ -47,7 +47,8 @@ public interface ConfigurationManagementService {
value = "Get the general platform configurations.",
notes = "Get the general platform level configuration details.",
tags = "Configuration Management")
- @ApiResponses(value = {
+ @ApiResponses(
+ value = {
@ApiResponse(
code = 200,
message = "OK. \n Successfully fetched general platform configuration.",
@@ -65,16 +66,18 @@ public interface ConfigurationManagementService {
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."),
- }),
+ }
+ ),
@ApiResponse(
code = 304,
- message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."),
+ message = "Not Modified. \n Empty body because the client has already the latest version of " +
+ "the requested resource."),
@ApiResponse(
code = 406,
message = "Not Acceptable.\n The requested media type is not supported"),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n Server error occurred while fetching the general " +
+ message = "Internal Server Error. \n Server error occurred while fetching the general " +
"platform configuration.",
response = ErrorResponse.class)
})
@@ -84,7 +87,8 @@ public interface ConfigurationManagementService {
name = "If-Modified-Since",
value = "Validates if the requested variant has not been modified since the time specified",
required = false)
- @HeaderParam("If-Modified-Since") String ifModifiedSince);
+ @HeaderParam("If-Modified-Since")
+ String ifModifiedSince);
@PUT
@ApiOperation(
@@ -94,14 +98,12 @@ public interface ConfigurationManagementService {
value = "Update General Platform Configurations.",
notes = "This resource is used to update the general platform configuration.",
tags = "Configuration Management")
- @ApiResponses(value = {
+ @ApiResponses(
+ value = {
@ApiResponse(
code = 200,
message = "OK. \n General platform configuration has been updated successfully",
responseHeaders = {
- @ResponseHeader(
- name = "Content-Location",
- description = "URL of the updated general platform configuration."),
@ResponseHeader(
name = "Content-Type",
description = "The content type of the body"),
@@ -121,7 +123,7 @@ public interface ConfigurationManagementService {
message = "Unsupported media type. \n The entity of the request was in a not supported format."),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
+ message = "Internal Server Error. \n " +
"Server error occurred while modifying general platform configuration.",
response = ErrorResponse.class)
})
@@ -130,6 +132,7 @@ public interface ConfigurationManagementService {
@ApiParam(
name = "configuration",
value = "The required properties to be updated in the platform configuration.",
- required = true) PlatformConfiguration configuration);
+ required = true)
+ PlatformConfiguration configuration);
}
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 474677f076..11d1672b89 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
@@ -87,7 +87,7 @@ public interface DeviceManagementService {
message = "Not Acceptable.\n The requested media type is not supported"),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n Server error occurred while fetching the device list.",
+ message = "Internal Server Error. \n Server error occurred while fetching the device list.",
response = ErrorResponse.class)
})
@Permission(scope = "device-list", roles = {"emm-admin"})
@@ -190,7 +190,7 @@ public interface DeviceManagementService {
response = ErrorResponse.class),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
+ message = "Internal Server Error. \n " +
"Server error occurred while retrieving information requested device.",
response = ErrorResponse.class)
})
@@ -270,7 +270,7 @@ public interface DeviceManagementService {
message = "Not Acceptable. \n The requested media type is not supported."),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
+ message = "Internal Server Error. \n " +
"Server error occurred while retrieving feature list of the device.",
response = ErrorResponse.class)
})
@@ -344,7 +344,7 @@ public interface DeviceManagementService {
message = "Unsupported media type. \n The entity of the request was in a not supported format."),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
+ message = "Internal Server Error. \n " +
"Server error occurred while enrolling the device.",
response = ErrorResponse.class)
})
@@ -423,9 +423,8 @@ public interface DeviceManagementService {
message = "Not Acceptable. \n The requested media type is not supported."),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
- "Server error occurred while retrieving installed application list of "
- + "the device.",
+ message = "Internal Server Error. \n " +
+ "Server error occurred while retrieving installed application list of the device.",
response = ErrorResponse.class)
})
@Permission(scope = "operation-view", roles = {"emm-admin"})
@@ -518,9 +517,8 @@ public interface DeviceManagementService {
message = "Not Acceptable. \n The requested media type is not supported."),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
- "Server error occurred while retrieving operation list scheduled for the "
- + "device.",
+ message = "Internal Server Error. \n " +
+ "Server error occurred while retrieving operation list scheduled for the device.",
response = ErrorResponse.class)
})
@Permission(scope = "operation-view", roles = {"emm-admin"})
@@ -614,9 +612,8 @@ public interface DeviceManagementService {
message = "Not Acceptable. \n The requested media type is not supported."),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
- "Server error occurred while retrieving the effective policy calculated "
- + "for the device.",
+ message = "Internal Server Error. \n " +
+ "Server error occurred while retrieving the effective policy calculated for the device.",
response = ErrorResponse.class)
}
)
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/NotificationManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/NotificationManagementService.java
index d547ddbcd3..5656bbf3b2 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/NotificationManagementService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/NotificationManagementService.java
@@ -86,7 +86,8 @@ public interface NotificationManagementService {
message = "Not Acceptable.\n The requested media type is not supported"),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n Server error occurred while fetching the notification list.",
+ message = "Internal Server Error. " +
+ "\n Server error occurred while fetching the notification list.",
response = ErrorResponse.class)
})
@Permission(scope = "device-notification-view", roles = {"emm-admin"})
@@ -116,4 +117,15 @@ public interface NotificationManagementService {
required = false)
@QueryParam("limit")
int limit);
+
+ @PUT
+ @Path("{id}/{status}")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "PUT",
+ value = "",
+ notes = "",
+ tags = "Device Notification Management")
+ Response updateNotificationStatus(
+ @PathParam("id") int id);
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/PolicyManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/PolicyManagementService.java
index e6965402f6..17ec195fbc 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/PolicyManagementService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/PolicyManagementService.java
@@ -73,7 +73,8 @@ public interface PolicyManagementService {
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests.")
- }),
+ }
+ ),
@ApiResponse(
code = 303,
message = "See Other. \n Source can be retrieved from the URL specified at the Location header.",
@@ -94,7 +95,7 @@ public interface PolicyManagementService {
message = "Unsupported media type. \n The entity of the request was in a not supported format."),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
+ message = "Internal Server Error. \n " +
"Server error occurred while adding a new policy.",
response = ErrorResponse.class)
})
@@ -134,7 +135,8 @@ public interface PolicyManagementService {
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."),
- }),
+ }
+ ),
@ApiResponse(
code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."),
@@ -147,7 +149,7 @@ public interface PolicyManagementService {
message = "Not Acceptable.\n The requested media type is not supported"),
@ApiResponse(
code = 500,
- message = ("Internal Server ErrorResponse. \n Server error occurred while fetching " +
+ message = ("Internal Server Error. \n Server error occurred while fetching " +
"policies."),
response = ErrorResponse.class)
})
@@ -199,21 +201,21 @@ public interface PolicyManagementService {
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."),
- }),
+ }
+ ),
@ApiResponse(
code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."),
@ApiResponse(
code = 404,
message = "Not Found. \n No policy is found with the given id.",
- response = ErrorResponse.class
- ),
+ response = ErrorResponse.class),
@ApiResponse(
code = 406,
message = "Not Acceptable.\n The requested media type is not supported"),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n Server error occurred while fetching the " +
+ message = "Internal Server Error. \n Server error occurred while fetching the " +
"policy.",
response = ErrorResponse.class)
})
@@ -261,7 +263,9 @@ public interface PolicyManagementService {
@ResponseHeader(
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
- "Used by caches, or in conditional requests.")}),
+ "Used by caches, or in conditional requests.")
+ }
+ ),
@ApiResponse(
code = 400,
message = "Bad Request. \n Invalid request or validation error.",
@@ -275,7 +279,7 @@ public interface PolicyManagementService {
message = "Unsupported media type. \n The entity of the request was in a not supported format."),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
+ message = "Internal Server Error. \n " +
"Server error occurred while updating the policy.",
response = ErrorResponse.class)
})
@@ -317,10 +321,11 @@ public interface PolicyManagementService {
response = ErrorResponse.class),
@ApiResponse(
code = 415,
- message = "Unsupported media type. \n The entity of the request was in a not supported format."),
+ message = "Unsupported media type. \n The entity of the request was in a not "
+ + "supported format."),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
+ message = "Internal Server Error. \n " +
"Server error occurred while bulk removing policies.",
response = ErrorResponse.class)
})
@@ -375,8 +380,8 @@ public interface PolicyManagementService {
produces = MediaType.APPLICATION_JSON,
httpMethod = "PUT",
value = "Deactivating policies.",
- notes = "Using the REST API command you are able to unpublish a policy in order to bring a policy that " +
- "is in the active state to the inactive state.",
+ notes = "Using the REST API command you are able to unpublish a policy in order to bring a "
+ + "policy that is in the active state to the inactive state.",
tags = "Device Policy Management")
@ApiResponses(
value = {
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/RoleManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/RoleManagementService.java
index f4533bb754..3c08c1b1fb 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/RoleManagementService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/RoleManagementService.java
@@ -21,10 +21,9 @@ package org.wso2.carbon.device.mgt.jaxrs.service.api;
import io.swagger.annotations.*;
import org.wso2.carbon.apimgt.annotations.api.API;
import org.wso2.carbon.apimgt.annotations.api.Permission;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
+import org.wso2.carbon.device.mgt.jaxrs.beans.RoleInfo;
import org.wso2.carbon.device.mgt.jaxrs.beans.RoleList;
-import org.wso2.carbon.device.mgt.jaxrs.beans.RoleWrapper;
import org.wso2.carbon.user.mgt.common.UIPermissionNode;
import javax.ws.rs.*;
@@ -70,16 +69,12 @@ public interface RoleManagementService {
@ApiResponse(
code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."),
- @ApiResponse(
- code = 404,
- message = "Not Found. \n Resource does not exist.",
- response = ErrorResponse.class),
@ApiResponse(
code = 406,
message = "Not Acceptable.\n The requested media type is not supported"),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n Server error occurred while fetching requested list of roles.",
+ message = "Internal Server Error. \n Server error occurred while fetching requested list of roles.",
response = ErrorResponse.class)
})
@Permission(scope = "roles-view", roles = {"emm-admin"})
@@ -153,11 +148,12 @@ public interface RoleManagementService {
response = ErrorResponse.class),
@ApiResponse(
code = 404,
- message = "Not Found. \n Resource does not exist.",
+ message = "Not Found. \n Role does not exist.",
response = ErrorResponse.class),
@ApiResponse(
code = 406,
- message = "Not Acceptable.\n The requested media type is not supported"),
+ message = "Not Acceptable.\n The requested media type is not supported",
+ response = ErrorResponse.class),
@ApiResponse(
code = 500,
message = "Internal Server ErrorResponse. \n Server error occurred while fetching the permission list of the requested role.",
@@ -183,14 +179,14 @@ public interface RoleManagementService {
httpMethod = "GET",
value = "Get details of a role.",
notes = "If you wish to get the details of a role in EMM, you can do so using this REST API.",
- response = RoleWrapper.class,
+ response = RoleInfo.class,
tags = "Role Management")
@ApiResponses(
value = {
@ApiResponse(
code = 200,
message = "OK. \n Successfully fetched the requested role.",
- response = RoleWrapper.class,
+ response = RoleInfo.class,
responseHeaders = {
@ResponseHeader(
name = "Content-Type",
@@ -214,14 +210,15 @@ public interface RoleManagementService {
response = ErrorResponse.class),
@ApiResponse(
code = 404,
- message = "Not Found. \n Resource does not exist.",
+ message = "Not Found. \n Role does not exist.",
response = ErrorResponse.class),
@ApiResponse(
code = 406,
- message = "Not Acceptable.\n The requested media type is not supported"),
+ message = "Not Acceptable.\n The requested media type is not supported",
+ response = ErrorResponse.class),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n Server error occurred while fetching the " +
+ message = "Internal Server Error. \n Server error occurred while fetching the " +
"requested role.",
response = ErrorResponse.class)
})
@@ -278,11 +275,11 @@ public interface RoleManagementService {
response = ErrorResponse.class),
@ApiResponse(
code = 415,
- message = "Unsupported media type. \n The entity of the request was in a not supported format."),
+ message = "Unsupported media type. \n The entity of the request was in a not supported format.",
+ response = ErrorResponse.class),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
- "Server error occurred while adding a new role.",
+ message = "Internal Server Error. \n Server error occurred while adding a new role.",
response = ErrorResponse.class)
})
@Permission(scope = "roles-modify", roles = {"emm-admin"})
@@ -290,7 +287,7 @@ public interface RoleManagementService {
@ApiParam(
name = "role",
value = "Details about the role to be added.",
- required = true) RoleWrapper role);
+ required = true) RoleInfo role);
@PUT
@Path("/{roleName}")
@@ -307,9 +304,6 @@ public interface RoleManagementService {
code = 200,
message = "OK. \n Role has been updated successfully",
responseHeaders = {
- @ResponseHeader(
- name = "Content-Location",
- description = "URL of the updated role."),
@ResponseHeader(
name = "Content-Type",
description = "Content type of the body"),
@@ -327,14 +321,15 @@ public interface RoleManagementService {
response = ErrorResponse.class),
@ApiResponse(
code = 404,
- message = "Not Found. \n Resource to be deleted does not exist."),
+ message = "Not Found. \n Role to be deleted does not exist.",
+ response = ErrorResponse.class),
@ApiResponse(
code = 415,
- message = "Unsupported media type. \n The entity of the request was in a not supported format."),
+ message = "Unsupported media type. \n The entity of the request was in a not supported format.",
+ response = ErrorResponse.class),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
- "Server error occurred while updating the role.",
+ message = "Internal Server Error. \n Server error occurred while updating the role.",
response = ErrorResponse.class)
})
@Permission(scope = "roles-modify", roles = {"emm-admin"})
@@ -347,7 +342,7 @@ public interface RoleManagementService {
@ApiParam(
name = "role",
value = "Details about the role to be added.",
- required = true) RoleWrapper role);
+ required = true) RoleInfo role);
@DELETE
@Path("/{roleName}")
@@ -367,11 +362,11 @@ public interface RoleManagementService {
response = ErrorResponse.class),
@ApiResponse(
code = 404,
- message = "Not Found. \n Resource to be deleted does not exist."),
+ message = "Not Found. \n Role to be deleted does not exist.",
+ response = ErrorResponse.class),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
- "Server error occurred while removing the role.",
+ message = "Internal Server Error. \n Server error occurred while removing the role.",
response = ErrorResponse.class)
})
@Permission(scope = "roles-modify", roles = {"emm-admin"})
@@ -402,9 +397,6 @@ public interface RoleManagementService {
code = 200,
message = "OK. \n User list of the role has been updated successfully",
responseHeaders = {
- @ResponseHeader(
- name = "Content-Location",
- description = "URL of the updated user list."),
@ResponseHeader(
name = "Content-Type",
description = "Content type of the body"),
@@ -422,13 +414,16 @@ public interface RoleManagementService {
response = ErrorResponse.class),
@ApiResponse(
code = 404,
- message = "Not Found. \n Resource to be deleted does not exist."),
+ message = "Not Found. \n Resource to be deleted does not exist.",
+ response = ErrorResponse.class),
@ApiResponse(
code = 415,
- message = "Unsupported media type. \n The entity of the request was in a not supported format."),
+ message = "Unsupported media type. \n The entity of the request was in a not " +
+ "supported format.",
+ response = ErrorResponse.class),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
+ message = "Internal Server Error. \n " +
"Server error occurred while updating the user list of the role.",
response = ErrorResponse.class)
})
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/UserManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/UserManagementService.java
index 29dff53c4f..25faccb5e1 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/UserManagementService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/UserManagementService.java
@@ -64,34 +64,29 @@ public interface UserManagementService {
name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests.")}),
- @ApiResponse(
- code = 303,
- message = "See Other. \n Source can be retrieved from the URL specified at the Location header.",
- responseHeaders = {
- @ResponseHeader(
- name = "Content-Location",
- description = "The Source URL of the document.")}),
@ApiResponse(
code = 400,
- message = "Bad Request. \n Invalid request or validation error."),
+ message = "Bad Request. \n Invalid request or validation error.",
+ response = ErrorResponse.class),
@ApiResponse(
code = 409,
- message = "Conflict. \n User already exist.",
+ message = "Conflict. \n User already exists.",
response = ErrorResponse.class),
@ApiResponse(
code = 415,
- message = "Unsupported media type. \n The entity of the request was in a not supported format."),
+ message = "Unsupported media type. \n The entity of the request was in a not " +
+ "supported format.",
+ response = ErrorResponse.class),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
- "Server error occurred while adding a new user.",
+ message = "Internal Server Error. \n Server error occurred while adding a new user.",
response = ErrorResponse.class)
})
@Permission(scope = "user-modify", roles = {"emm-admin"})
Response addUser(
@ApiParam(
name = "user",
- value = "User related details.",
+ value = "Information of the user to be added",
required = true) UserInfo user);
@GET
@@ -131,7 +126,8 @@ public interface UserManagementService {
response = ErrorResponse.class),
@ApiResponse(
code = 406,
- message = "Not Acceptable.\n The requested media type is not supported"),
+ message = "Not Acceptable.\n The requested media type is not supported",
+ response = ErrorResponse.class),
@ApiResponse(
code = 500,
message = "Internal Server ErrorResponse. \n Server error occurred while" +
@@ -166,9 +162,6 @@ public interface UserManagementService {
code = 200,
message = "OK. \n User has been updated successfully",
responseHeaders = {
- @ResponseHeader(
- name = "Content-Location",
- description = "URL of the updated user."),
@ResponseHeader(
name = "Content-Type",
description = "Content type of the body"),
@@ -182,17 +175,19 @@ public interface UserManagementService {
"Used by caches, or in conditional requests.")}),
@ApiResponse(
code = 400,
- message = "Bad Request. \n Invalid request or validation error."),
+ message = "Bad Request. \n Invalid request or validation error.",
+ response = ErrorResponse.class),
@ApiResponse(
code = 404,
message = "Not Found. \n Resource does not exist.",
response = ErrorResponse.class),
@ApiResponse(
code = 415,
- message = "Unsupported media type. \n The entity of the request was in a not supported format."),
+ message = "Unsupported media type. \n The entity of the request was in a not supported format.",
+ response = ErrorResponse.class),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
+ message = "Internal Server Error. \n " +
"Server error occurred while updating the user.",
response = ErrorResponse.class)
})
@@ -226,7 +221,7 @@ public interface UserManagementService {
response = ErrorResponse.class),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
+ message = "Internal Server Error. \n " +
"Server error occurred while removing the user.",
response = ErrorResponse.class
)
@@ -272,10 +267,11 @@ public interface UserManagementService {
response = ErrorResponse.class),
@ApiResponse(
code = 406,
- message = "Not Acceptable.\n The requested media type is not supported"),
+ message = "Not Acceptable.\n The requested media type is not supported",
+ response = ErrorResponse.class),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n Server error occurred while fetching the role list" +
+ message = "Internal Server Error. \n Server error occurred while fetching the role list" +
" assigned to the user.",
response = ErrorResponse.class)
})
@@ -296,7 +292,7 @@ public interface UserManagementService {
@ApiResponse(
code = 200,
message = "OK. \n Successfully fetched the requested role.",
- response = UserInfoList.class,
+ response = BasicUserInfoList.class,
responseHeaders = {
@ResponseHeader(
name = "Content-Type",
@@ -315,10 +311,11 @@ public interface UserManagementService {
message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource."),
@ApiResponse(
code = 406,
- message = "Not Acceptable.\n The requested media type is not supported"),
+ message = "Not Acceptable.\n The requested media type is not supported",
+ response = ErrorResponse.class),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n Server error occurred while fetching the user list.",
+ message = "Internal Server Error. \n Server error occurred while fetching the user list.",
response = ErrorResponse.class)
})
@Permission(scope = "user-view", roles = {"emm-admin"})
@@ -380,10 +377,11 @@ public interface UserManagementService {
message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."),
@ApiResponse(
code = 406,
- message = "Not Acceptable.\n The requested media type is not supported"),
+ message = "Not Acceptable.\n The requested media type is not supported",
+ response = ErrorResponse.class),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n Server error occurred while fetching the username " +
+ message = "Internal Server Error. \n Server error occurred while fetching the username " +
"list that matches the given filter.",
response = ErrorResponse.class)
})
@@ -429,13 +427,15 @@ public interface UserManagementService {
response = ErrorResponse.class),
@ApiResponse(
code = 404,
- message = "Not Found. \n Resource to be deleted does not exist."),
+ message = "Not Found. \n Resource to be deleted does not exist.",
+ response = ErrorResponse.class),
@ApiResponse(
code = 415,
- message = "Unsupported media type. \n The entity of the request was in a not supported format."),
+ message = "Unsupported media type. \n The entity of the request was in a not supported format.",
+ response = ErrorResponse.class),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
+ message = "Internal Server Error. \n " +
"Server error occurred while updating credentials of the user.",
response = ErrorResponse.class)
})
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/ApplicationManagementAdminService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/ApplicationManagementAdminService.java
index a1abf62db1..508820e7e4 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/ApplicationManagementAdminService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/ApplicationManagementAdminService.java
@@ -69,7 +69,7 @@ public interface ApplicationManagementAdminService {
message = "Unsupported media type. \n The entity of the request was in a not supported format."),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
+ message = "Internal Server Error. \n " +
"Server error occurred while bulk issuing application installation operations upon " +
"a given set of devices.",
response = ErrorResponse.class)
@@ -108,7 +108,7 @@ public interface ApplicationManagementAdminService {
message = "Unsupported media type. \n The entity of the request was in a not supported format."),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
+ message = "Internal Server Error. \n " +
"Server error occurred while bulk issuing application un-installation operations upon " +
"a given set of devices.",
response = ErrorResponse.class)
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java
index fde865b4af..7ae98c4d31 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java
@@ -81,7 +81,7 @@ public interface DeviceManagementAdminService {
message = "Not Acceptable.\n The requested media type is not supported"),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n Server error occurred while fetching the device list.",
+ message = "Internal Server Error. \n Server error occurred while fetching the device list.",
response = ErrorResponse.class)
})
@Permission(scope = "device-view", roles = {"emm-admin"})
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/UserManagementAdminService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/UserManagementAdminService.java
index 4468044223..51157551d2 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/UserManagementAdminService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/UserManagementAdminService.java
@@ -63,7 +63,7 @@ public interface UserManagementAdminService {
message = "Unsupported media type. \n The entity of the request was in a not supported format."),
@ApiResponse(
code = 500,
- message = "Internal Server ErrorResponse. \n " +
+ message = "Internal Server Error. \n " +
"Server error occurred while updating credentials of the user.",
response = ErrorResponse.class)
})
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/ActivityProviderServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/ActivityProviderServiceImpl.java
index 848b0749a7..444854e1e4 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/ActivityProviderServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/ActivityProviderServiceImpl.java
@@ -26,8 +26,7 @@ import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
import org.wso2.carbon.device.mgt.jaxrs.beans.ActivityList;
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
import org.wso2.carbon.device.mgt.jaxrs.service.api.ActivityInfoProviderService;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.*;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.NotFoundException;
+import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.RequestValidationUtil;
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
import javax.ws.rs.*;
@@ -58,17 +57,17 @@ public class ActivityProviderServiceImpl implements ActivityInfoProviderService
dmService = DeviceMgtAPIUtils.getDeviceManagementService();
activity = dmService.getOperationByActivityId(id);
if (activity == null) {
- throw new NotFoundException(new ErrorResponse.ErrorResponseBuilder().setCode(404l)
- .setMessage("No activity can be " +
- "found upon the provided activity id '" + id + "'").build());
+ return Response.status(404).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("No activity can be " +
+ "found upon the provided activity id '" + id + "'").build()).build();
}
+ return Response.status(Response.Status.OK).entity(activity).build();
} catch (OperationManagementException e) {
String msg = "ErrorResponse occurred while fetching the activity for the supplied id.";
log.error(msg, e);
- throw new UnexpectedServerErrorException(new ErrorResponse.ErrorResponseBuilder().setCode(500l)
- .setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
- return Response.status(Response.Status.OK).entity(activity).build();
}
@GET
@@ -77,19 +76,21 @@ public class ActivityProviderServiceImpl implements ActivityInfoProviderService
@QueryParam("limit") int limit,
@HeaderParam("If-Modified-Since") String ifModifiedSince) {
- long ifModifiedSinceTimestamp = 0;
- long sinceTimestamp = 0;
+ long ifModifiedSinceTimestamp;
+ long sinceTimestamp;
long timestamp = 0;
boolean isIfModifiedSinceSet = false;
boolean isSinceSet = false;
+
if (ifModifiedSince != null && !ifModifiedSince.isEmpty()) {
Date ifSinceDate;
SimpleDateFormat format = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
try {
ifSinceDate = format.parse(ifModifiedSince);
} catch (ParseException e) {
- throw new InputValidationException(new ErrorResponse.ErrorResponseBuilder().setCode(400l)
- .setMessage("Invalid date string is provided in 'If-Modified-Since' header").build());
+ return Response.status(400).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(
+ "Invalid date string is provided in 'If-Modified-Since' header").build()).build();
}
ifModifiedSinceTimestamp = ifSinceDate.getTime();
isIfModifiedSinceSet = true;
@@ -100,13 +101,15 @@ public class ActivityProviderServiceImpl implements ActivityInfoProviderService
try {
sinceDate = format.parse(since);
} catch (ParseException e) {
- throw new InputValidationException(new ErrorResponse.ErrorResponseBuilder().setCode(400l)
- .setMessage("Invalid date string is provided in 'since' filter").build());
+ return Response.status(400).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(
+ "Invalid date string is provided in 'since' filter").build()).build();
}
sinceTimestamp = sinceDate.getTime();
isSinceSet = true;
timestamp = sinceTimestamp / 1000;
}
+
List activities;
ActivityList activityList = new ActivityList();
DeviceManagementProviderService dmService;
@@ -117,24 +120,18 @@ public class ActivityProviderServiceImpl implements ActivityInfoProviderService
int count = dmService.getActivityCountUpdatedAfter(timestamp);
activityList.setCount(count);
if (activities == null || activities.size() == 0) {
- if (isIfModifiedSinceSet) {
- return Response.status(Response.Status.NOT_MODIFIED).entity(
- "No activities " + "after the time provided in 'If-Modified-Since' header")
- .build();
- } else if (isSinceSet) {
- return Response.status(Response.Status.NOT_MODIFIED).entity(
- "No activities " + "after the time provided in 'since' filter").build();
+ if (isIfModifiedSinceSet || isSinceSet) {
+ return Response.notModified().build();
}
- throw new NotFoundException(new ErrorResponse.ErrorResponseBuilder().setCode(404l)
- .setMessage("No activities " + "found.").build());
}
+ return Response.ok().entity(activityList).build();
} catch (OperationManagementException e) {
String msg
= "ErrorResponse occurred while fetching the activities updated after given time stamp.";
log.error(msg, e);
- throw new UnexpectedServerErrorException(new ErrorResponse.ErrorResponseBuilder().setCode(500l)
- .setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
- return Response.status(Response.Status.OK).entity(activityList).build();
}
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/ConfigurationServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/ConfigurationServiceImpl.java
index c10e82e762..0c082722fd 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/ConfigurationServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/ConfigurationServiceImpl.java
@@ -55,19 +55,19 @@ public class ConfigurationServiceImpl implements ConfigurationManagementService
ConfigurationEntry configurationEntry = new ConfigurationEntry();
configurationEntry.setContentType("text");
configurationEntry.setName("notifierFrequency");
- configurationEntry.setValue(PolicyManagerUtil.getMonitoringFequency());
+ configurationEntry.setValue(PolicyManagerUtil.getMonitoringFrequency());
List configList = config.getConfiguration();
if (configList == null) {
configList = new ArrayList<>();
configList.add(configurationEntry);
}
config.setConfiguration(configList);
- return Response.status(Response.Status.OK).entity(config).build();
+ return Response.ok().entity(config).build();
} catch (ConfigurationManagementException | PolicyManagementException e) {
- msg = "ErrorResponse occurred while retrieving the configurations.";
+ msg = "Error occurred while retrieving the general platform configuration";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
@@ -80,13 +80,15 @@ public class ConfigurationServiceImpl implements ConfigurationManagementService
MDMAppConstants.RegistryConstants.GENERAL_CONFIG_RESOURCE_PATH);
//Schedule the task service
DeviceMgtAPIUtils.scheduleTaskService(DeviceMgtAPIUtils.getNotifierFrequency(config));
- return Response.status(Response.Status.CREATED)
- .entity("Configuration has successfully been updated").build();
+
+ PlatformConfiguration updatedConfig = DeviceMgtAPIUtils.getPlatformConfigurationManagementService().
+ getConfiguration(MDMAppConstants.RegistryConstants.GENERAL_CONFIG_RESOURCE_PATH);
+ return Response.ok().entity(updatedConfig).build();
} catch (ConfigurationManagementException e) {
- String msg = "ErrorResponse occurred while updating the configuration.";
+ String msg = "Error occurred while updating the general platform configuration";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
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 62dca8864c..edac09a140 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
@@ -27,7 +27,6 @@ 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.common.search.SearchContext;
import org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagementProviderService;
-import org.wso2.carbon.device.mgt.core.dto.DeviceType;
import org.wso2.carbon.device.mgt.core.search.mgt.SearchManagerService;
import org.wso2.carbon.device.mgt.core.search.mgt.SearchMgtException;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
@@ -35,10 +34,7 @@ import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceList;
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
import org.wso2.carbon.device.mgt.jaxrs.beans.OperationList;
import org.wso2.carbon.device.mgt.jaxrs.service.api.DeviceManagementService;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.InputValidationException;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.NotFoundException;
import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.RequestValidationUtil;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.UnexpectedServerErrorException;
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
import org.wso2.carbon.policy.mgt.common.Policy;
import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
@@ -100,9 +96,9 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
try {
sinceDate = format.parse(ifModifiedSince);
} catch (ParseException e) {
- throw new InputValidationException(
- new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage("Invalid date " +
- "string is provided in 'If-Modified-Since' header").build());
+ return Response.status(Response.Status.BAD_REQUEST).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("Invalid date " +
+ "string is provided in 'If-Modified-Since' header").build()).build();
}
request.setSince(sinceDate);
result = dms.getAllDevices(request);
@@ -116,9 +112,9 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
try {
sinceDate = format.parse(since);
} catch (ParseException e) {
- throw new InputValidationException(
- new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage("Invalid date " +
- "string is provided in 'since' filter").build());
+ return Response.status(Response.Status.BAD_REQUEST).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("Invalid date " +
+ "string is provided in 'since' filter").build()).build();
}
request.setSince(sinceDate);
result = dms.getAllDevices(request);
@@ -140,8 +136,8 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
} catch (DeviceManagementException e) {
String msg = "Error occurred while fetching all enrolled devices";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
@@ -161,13 +157,13 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
} catch (DeviceManagementException e) {
String msg = "Error occurred while fetching the device information.";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
if (device == null) {
- throw new NotFoundException(
+ return Response.status(Response.Status.NOT_FOUND).entity(
new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("Requested device of type '" +
- type + "', which carries id '" + id + "' does not exist").build());
+ type + "', which carries id '" + id + "' does not exist").build()).build();
}
return Response.status(Response.Status.OK).entity(device).build();
}
@@ -187,17 +183,17 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
dms = DeviceMgtAPIUtils.getDeviceManagementService();
FeatureManager fm = dms.getFeatureManager(type);
if (fm == null) {
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("No feature manager is " +
- "registered with the given type '" + type + "'").build());
+ return Response.status(Response.Status.NOT_FOUND).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("No feature manager is " +
+ "registered with the given type '" + type + "'").build()).build();
}
features = fm.getFeatures();
} catch (DeviceManagementException e) {
String msg = "Error occurred while retrieving the list of features of '" + type + "' device, which " +
"carries the id '" + id + "'";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
return Response.status(Response.Status.OK).entity(features).build();
}
@@ -216,13 +212,9 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
} catch (SearchMgtException e) {
String msg = "Error occurred while searching for devices that matches the provided selection criteria";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
- if (devices == null || devices.size() == 0) {
- Response.status(Response.Status.OK).entity(deviceList);
- }
-
deviceList.setList(devices);
return Response.status(Response.Status.OK).entity(deviceList).build();
}
@@ -237,23 +229,21 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
@QueryParam("offset") int offset,
@QueryParam("limit") int limit) {
List applications;
+ //ApplicationList appList;
ApplicationManagementProviderService amc;
try {
RequestValidationUtil.validateDeviceIdentifier(type, id);
amc = DeviceMgtAPIUtils.getAppManagementService();
applications = amc.getApplicationListForDevice(new DeviceIdentifier(id, type));
- if (applications == null) {
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("It is likely that " +
- "no applications is found upon the provided type and id").build());
- }
+
+ //TODO: return app list
} catch (ApplicationManagementException e) {
String msg = "Error occurred while fetching the apps of the '" + type + "' device, which carries " +
"the id '" + id + "'";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
return Response.status(Response.Status.OK).entity(applications).build();
}
@@ -275,24 +265,18 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
RequestValidationUtil.validateDeviceIdentifier(type, id);
dms = DeviceMgtAPIUtils.getDeviceManagementService();
- result = dms.getOperations(new DeviceIdentifier(id, type),request);
- int resultCount = result.getRecordsTotal();
+ result = dms.getOperations(new DeviceIdentifier(id, type), request);
- if (resultCount == 0) {
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("It is likely that" +
- " no operation is found upon the provided type and id").build());
- }
+ operationsList.setList((List extends Operation>) result.getData());
+ operationsList.setCount(result.getRecordsTotal());
+ return Response.status(Response.Status.OK).entity(operationsList).build();
} catch (OperationManagementException e) {
String msg = "Error occurred while fetching the operations for the '" + type + "' device, which " +
"carries the id '" + id + "'";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
- operationsList.setList((List extends Operation>) result.getData());
- operationsList.setCount(result.getRecordsTotal());
- return Response.status(Response.Status.OK).entity(operationsList).build();
}
@GET
@@ -306,35 +290,15 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService();
Policy policy = policyManagementService.getAppliedPolicyToDevice(new DeviceIdentifier(id, type));
- if (policy == null) {
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("No policy has " +
- "been found for the '" + type + "' device, which carries the id '" + id + "'").build());
- }
+
return Response.status(Response.Status.OK).entity(policy).build();
} catch (PolicyManagementException e) {
String msg = "Error occurred while retrieving the current policy associated with the '" + type +
"' device, which carries the id '" + id + "'";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
- }
- }
-
- @GET
- @Path("/types")
- @Override
- public Response getDeviceTypes() {
- List deviceTypes;
- try {
- deviceTypes = DeviceMgtAPIUtils.getDeviceManagementService().getAvailableDeviceTypes();
- } catch (DeviceManagementException e) {
- String msg = "Error occurred while fetching the list of device types.";
- log.error(msg, e);
- throw new UnexpectedServerErrorException(new ErrorResponse.ErrorResponseBuilder().
- setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
- return Response.status(Response.Status.OK).entity(deviceTypes).build();
}
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/NotificationManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/NotificationManagementServiceImpl.java
index 7b510223e2..ec01db35cd 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/NotificationManagementServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/NotificationManagementServiceImpl.java
@@ -20,19 +20,15 @@ package org.wso2.carbon.device.mgt.jaxrs.service.impl;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.PaginationRequest;
import org.wso2.carbon.device.mgt.common.PaginationResult;
import org.wso2.carbon.device.mgt.common.notification.mgt.Notification;
import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementException;
-import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
-import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
-import org.wso2.carbon.device.mgt.jaxrs.NotificationContext;
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
import org.wso2.carbon.device.mgt.jaxrs.beans.NotificationList;
import org.wso2.carbon.device.mgt.jaxrs.service.api.NotificationManagementService;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.*;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.NotFoundException;
+import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.RequestValidationUtil;
+import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.UnexpectedServerErrorException;
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
import javax.ws.rs.*;
@@ -55,37 +51,53 @@ public class NotificationManagementServiceImpl implements NotificationManagement
@QueryParam("offset") int offset, @QueryParam("limit") int limit) {
PaginationRequest request = new PaginationRequest(offset, limit);
- PaginationResult result = null;
+ PaginationResult result;
NotificationList notificationList = new NotificationList();
- int resultCount = 0;
String msg;
try {
if (status != null) {
RequestValidationUtil.validateNotificationStatus(status);
result = DeviceMgtAPIUtils.getNotificationManagementService().getNotificationsByStatus(
- Notification.Status.valueOf(status),request);
- resultCount = result.getRecordsTotal();
+ Notification.Status.valueOf(status), request);
} else {
result = DeviceMgtAPIUtils.getNotificationManagementService().getAllNotifications(request);
}
-
- if (resultCount == 0) {
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("No notification is " +
- "available to be retrieved.").build());
- }
-
- notificationList.setNotifications((List) result.getData());
notificationList.setCount(result.getRecordsTotal());
+ notificationList.setNotifications((List) result.getData());
return Response.status(Response.Status.OK).entity(notificationList).build();
} catch (NotificationManagementException e) {
- msg = "Error occurred while retrieving notification info";
+ msg = "Error occurred while retrieving notification list";
+ log.error(msg, e);
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
+ }
+ }
+
+ @PUT
+ @Path("{id}/mark-checked")
+ public Response updateNotificationStatus(
+ @PathParam("id") int id) {
+ String msg;
+ Notification.Status status = Notification.Status.CHECKED;
+ Notification notification;
+ try {
+ DeviceMgtAPIUtils.getNotificationManagementService().updateNotificationStatus(id, status);
+ } catch (NotificationManagementException e) {
+ msg = "Error occurred while updating notification status.";
log.error(msg, e);
throw new UnexpectedServerErrorException(
new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
}
+ try {
+ notification = DeviceMgtAPIUtils.getNotificationManagementService().getNotification(id);
+ return Response.status(Response.Status.OK).entity(notification).build();
+ } catch (NotificationManagementException e) {
+ msg = "Notification updated successfully. But the retrial of the updated notification failed";
+ log.error(msg, e);
+ return Response.status(Response.Status.OK).build();
+ }
}
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/PolicyManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/PolicyManagementServiceImpl.java
index ca2a7a5096..455dc0f9ea 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/PolicyManagementServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/PolicyManagementServiceImpl.java
@@ -31,7 +31,6 @@ import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
import org.wso2.carbon.device.mgt.jaxrs.beans.PolicyWrapper;
import org.wso2.carbon.device.mgt.jaxrs.service.api.PolicyManagementService;
import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.*;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.NotFoundException;
import org.wso2.carbon.device.mgt.jaxrs.beans.PolicyList;
import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.FilteringUtil;
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
@@ -45,6 +44,8 @@ import org.wso2.carbon.device.mgt.jaxrs.beans.PriorityUpdatedPolicyWrapper;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
@@ -53,6 +54,7 @@ import java.util.List;
@Consumes(MediaType.APPLICATION_JSON)
public class PolicyManagementServiceImpl implements PolicyManagementService {
+ private static final String API_BASE_PATH = "/policies";
private static final Log log = LogFactory.getLog(PolicyManagementServiceImpl.class);
@POST
@@ -74,31 +76,38 @@ public class PolicyManagementServiceImpl implements PolicyManagementService {
String username = threadLocalCarbonContext.getUsername();
try {
if (!deviceAccessAuthorizationService.isUserAuthorized(deviceIdentifier, username)) {
- throw new UnauthorizedAccessException(
- new ErrorResponse.ErrorResponseBuilder().setCode(401l).setMessage
- ("Current logged in user is not authorized to add policies").build());
+ return Response.status(Response.Status.UNAUTHORIZED).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage
+ ("Current logged in user is not authorized to add policies").build()).build();
}
} catch (DeviceAccessAuthorizationException e) {
- String msg = "ErrorResponse occurred while checking if the current user is authorized to add a policy";
+ String msg = "Error occurred while checking if the current user is authorized to add a policy";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
PolicyAdministratorPoint pap = policyManagementService.getPAP();
- pap.addPolicy(policy);
- return Response.status(Response.Status.CREATED).entity("Policy has been added successfully").build();
+ Policy createdPolicy = pap.addPolicy(policy);
+
+ return Response.created(new URI(API_BASE_PATH + "/" + createdPolicy.getId())).entity(createdPolicy).build();
} catch (PolicyManagementException e) {
- String msg = "ErrorResponse occurred while adding policy";
+ String msg = "Error occurred while adding policy";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build()).build();
} catch (DeviceManagementException e) {
- String msg = "ErrorResponse occurred while retrieving device list.";
+ String msg = "Error occurred while retrieving device list.";
+ log.error(msg, e);
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build()).build();
+ } catch (URISyntaxException e) {
+ String msg = "Error occurred while composing the location URI, which represents information of the " +
+ "newly created policy";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
@@ -138,21 +147,14 @@ public class PolicyManagementServiceImpl implements PolicyManagementService {
try {
PolicyAdministratorPoint policyAdministratorPoint = policyManagementService.getPAP();
policies = policyAdministratorPoint.getPolicies();
- if (policies == null || policies.size() == 0) {
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("No policies found.").build());
- }
targetPolicies.setCount(policies.size());
filteredPolicies = FilteringUtil.getFilteredList(policies, offset, limit);
- if (filteredPolicies.size() == 0) {
- return Response.status(Response.Status.NOT_FOUND).entity("No policies found.").build();
- }
targetPolicies.setList(filteredPolicies);
} catch (PolicyManagementException e) {
- String msg = "ErrorResponse occurred while retrieving all available policies";
+ String msg = "Error occurred while retrieving all available policies";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
return Response.status(Response.Status.OK).entity(targetPolicies).build();
@@ -168,14 +170,15 @@ public class PolicyManagementServiceImpl implements PolicyManagementService {
PolicyAdministratorPoint policyAdministratorPoint = policyManagementService.getPAP();
policy = policyAdministratorPoint.getPolicy(id);
if (policy == null) {
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("No policy found.").build());
+ return Response.status(Response.Status.NOT_FOUND).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(
+ "No policy found with the id '" + id + "'").build()).build();
}
} catch (PolicyManagementException e) {
- String msg = "ErrorResponse occurred while retrieving policy corresponding to the id '" + id + "'";
+ String msg = "Error occurred while retrieving policy corresponding to the id '" + id + "'";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
return Response.status(Response.Status.OK).entity(policy).build();
}
@@ -190,22 +193,22 @@ public class PolicyManagementServiceImpl implements PolicyManagementService {
Policy policy = this.getPolicyFromWrapper(policyWrapper);
policy.setId(id);
PolicyAdministratorPoint pap = policyManagementService.getPAP();
- Policy exisitingPolicy = pap.getPolicy(id);
- if (exisitingPolicy == null) {
+ Policy existingPolicy = pap.getPolicy(id);
+ if (existingPolicy == null) {
return Response.status(Response.Status.NOT_FOUND).entity("Policy not found.").build();
}
pap.updatePolicy(policy);
return Response.status(Response.Status.OK).entity("Policy has successfully been updated.").build();
} catch (PolicyManagementException e) {
- String msg = "ErrorResponse occurred while updating the policy";
+ String msg = "Error occurred while updating the policy";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
} catch (DeviceManagementException e) {
- String msg = "ErrorResponse occurred while retrieving the device list.";
+ String msg = "Error occurred while retrieving the device list.";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
@@ -227,15 +230,15 @@ public class PolicyManagementServiceImpl implements PolicyManagementService {
} catch (PolicyManagementException e) {
String msg = "ErrorResponse occurred while removing policies";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
if (policyDeleted) {
return Response.status(Response.Status.OK).entity("Policies have been successfully deleted").build();
} else {
//TODO:Check of this logic is correct
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("Policy doesn't exist").build());
+ return Response.status(Response.Status.NOT_FOUND).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("Policy doesn't exist").build()).build();
}
}
@@ -256,18 +259,18 @@ public class PolicyManagementServiceImpl implements PolicyManagementService {
}
}
} catch (PolicyManagementException e) {
- String msg = "ErrorResponse occurred while activating policies";
+ String msg = "Error occurred while activating policies";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build()).build();
}
if (isPolicyActivated) {
return Response.status(Response.Status.OK).entity("Selected policies have been successfully activated")
.build();
} else {
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("Selected policies have " +
- "not been activated").build());
+ return Response.status(Response.Status.NOT_FOUND).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("Selected policies have " +
+ "not been activated").build()).build();
}
}
@@ -290,16 +293,16 @@ public class PolicyManagementServiceImpl implements PolicyManagementService {
} catch (PolicyManagementException e) {
String msg = "Exception in inactivating policies.";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
if (isPolicyDeActivated) {
return Response.status(Response.Status.OK).entity("Selected policies have been successfully " +
- "deactivated").build();
+ "deactivated").build();
} else {
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("Selected policies have " +
- "not been deactivated").build());
+ return Response.status(Response.Status.NOT_FOUND).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("Selected policies have " +
+ "not been deactivated").build()).build();
}
}
@@ -315,8 +318,8 @@ public class PolicyManagementServiceImpl implements PolicyManagementService {
} catch (PolicyManagementException e) {
String msg = "Exception in applying changes.";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build()).build();
}
return Response.status(Response.Status.OK).entity("Changes have been successfully updated.").build();
}
@@ -340,17 +343,17 @@ public class PolicyManagementServiceImpl implements PolicyManagementService {
} catch (PolicyManagementException e) {
String error = "Exception in updating policy priorities.";
log.error(error, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(error).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(error).build()).build();
}
if (policiesUpdated) {
return Response.status(Response.Status.OK).entity("Policy Priorities successfully "
+ "updated.").build();
} else {
- throw new NotFoundException(
+ return Response.status(Response.Status.NOT_FOUND).entity(
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage("Policy priorities did "
- + "not update. Bad Request.").build());
+ + "not update. Bad Request.").build()).build();
}
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/RoleManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/RoleManagementServiceImpl.java
index 599d4345be..4e788411e3 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/RoleManagementServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/RoleManagementServiceImpl.java
@@ -23,14 +23,12 @@ import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.CarbonConstants;
import org.wso2.carbon.base.MultitenantConstants;
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
-import org.wso2.carbon.device.mgt.jaxrs.service.api.RoleManagementService;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.*;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.NotFoundException;
+import org.wso2.carbon.device.mgt.jaxrs.beans.RoleInfo;
import org.wso2.carbon.device.mgt.jaxrs.beans.RoleList;
+import org.wso2.carbon.device.mgt.jaxrs.service.api.RoleManagementService;
import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.FilteringUtil;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.UnexpectedServerErrorException;
+import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.RequestValidationUtil;
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
-import org.wso2.carbon.device.mgt.jaxrs.beans.RoleWrapper;
import org.wso2.carbon.device.mgt.jaxrs.util.SetReferenceTransformer;
import org.wso2.carbon.user.api.*;
import org.wso2.carbon.user.mgt.UserRealmProxy;
@@ -40,6 +38,8 @@ import org.wso2.carbon.user.mgt.common.UserAdminException;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -49,6 +49,7 @@ import java.util.List;
@Consumes(MediaType.APPLICATION_JSON)
public class RoleManagementServiceImpl implements RoleManagementService {
+ private static final String API_BASE_PATH = "/roles";
private static final Log log = LogFactory.getLog(RoleManagementServiceImpl.class);
@GET
@@ -61,25 +62,20 @@ public class RoleManagementServiceImpl implements RoleManagementService {
List filteredRoles;
RoleList targetRoles = new RoleList();
try {
+ //Get the total role count that matches the given filter
filteredRoles = getRolesFromUserStore(filter);
- if (filteredRoles == null || filteredRoles.size() == 0) {
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("No roles found.").build());
- }
targetRoles.setCount(filteredRoles.size());
+
filteredRoles = FilteringUtil.getFilteredList(getRolesFromUserStore(filter), offset, limit);
- if (filteredRoles.size() == 0) {
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("No roles found").build());
- }
targetRoles.setList(filteredRoles);
+
+ return Response.ok().entity(targetRoles).build();
} catch (UserStoreException e) {
String msg = "Error occurred while retrieving roles from the underlying user stores";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
- return Response.status(Response.Status.OK).entity(targetRoles).build();
}
@GET
@@ -91,35 +87,39 @@ public class RoleManagementServiceImpl implements RoleManagementService {
RequestValidationUtil.validateRoleName(roleName);
try {
final UserRealm userRealm = DeviceMgtAPIUtils.getUserRealm();
- org.wso2.carbon.user.core.UserRealm userRealmCore = null;
- final UIPermissionNode rolePermissions;
- if (userRealm instanceof org.wso2.carbon.user.core.UserRealm) {
- userRealmCore = (org.wso2.carbon.user.core.UserRealm) userRealm;
+ if (!userRealm.getUserStoreManager().isExistingRole(roleName)) {
+ return Response.status(Response.Status.NOT_FOUND).entity(new ErrorResponse.ErrorResponseBuilder().setMessage(
+ "No role exists with the name '" + roleName + "'").build()).build();
}
- final UserRealmProxy userRealmProxy = new UserRealmProxy(userRealmCore);
- rolePermissions = this.getUIPermissionNode(roleName, userRealmProxy);
+
+ final UIPermissionNode rolePermissions = this.getUIPermissionNode(roleName, userRealm);
if (rolePermissions == null) {
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("No permissions found" +
- " for the role '" + roleName + "'").build());
+ if (log.isDebugEnabled()) {
+ log.debug("No permissions found for the role '" + roleName + "'");
+ }
}
return Response.status(Response.Status.OK).entity(rolePermissions).build();
} catch (UserAdminException e) {
String msg = "Error occurred while retrieving the permissions of role '" + roleName + "'";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
} catch (UserStoreException e) {
String msg = "Error occurred while retrieving the underlying user realm attached to the " +
"current logged in user";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
- private UIPermissionNode getUIPermissionNode(String roleName, UserRealmProxy userRealmProxy)
+ private UIPermissionNode getUIPermissionNode(String roleName, UserRealm userRealm)
throws UserAdminException {
+ org.wso2.carbon.user.core.UserRealm userRealmCore = null;
+ if (userRealm instanceof org.wso2.carbon.user.core.UserRealm) {
+ userRealmCore = (org.wso2.carbon.user.core.UserRealm) userRealm;
+ }
+ final UserRealmProxy userRealmProxy = new UserRealmProxy(userRealmCore);
final UIPermissionNode rolePermissions =
userRealmProxy.getRolePermissions(roleName, MultitenantConstants.SUPER_TENANT_ID);
UIPermissionNode[] deviceMgtPermissions = new UIPermissionNode[2];
@@ -144,42 +144,36 @@ public class RoleManagementServiceImpl implements RoleManagementService {
@Override
public Response getRole(@PathParam("roleName") String roleName,
@HeaderParam("If-Modified-Since") String ifModifiedSince) {
+ if (log.isDebugEnabled()) {
+ log.debug("Getting the list of user roles");
+ }
RequestValidationUtil.validateRoleName(roleName);
- RoleWrapper roleWrapper = new RoleWrapper();
+ RoleInfo roleInfo = new RoleInfo();
try {
final UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
final UserRealm userRealm = DeviceMgtAPIUtils.getUserRealm();
- org.wso2.carbon.user.core.UserRealm userRealmCore = null;
- if (userRealm instanceof org.wso2.carbon.user.core.UserRealm) {
- userRealmCore = (org.wso2.carbon.user.core.UserRealm) userRealm;
+ if (!userStoreManager.isExistingRole(roleName)) {
+ return Response.status(Response.Status.NOT_FOUND).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("No role exists with the name '" +
+ roleName + "'").build()).build();
}
+ roleInfo.setRoleName(roleName);
+ roleInfo.setUsers(userStoreManager.getUserListOfRole(roleName));
+ // Get the permission nodes and hand picking only device management and login perms
+ final UIPermissionNode rolePermissions = this.getUIPermissionNode(roleName, userRealm);
+ List permList = new ArrayList<>();
+ this.iteratePermissions(rolePermissions, permList);
+ roleInfo.setPermissionList(rolePermissions);
+ String[] permListAr = new String[permList.size()];
+ roleInfo.setPermissions(permList.toArray(permListAr));
- final UserRealmProxy userRealmProxy = new UserRealmProxy(userRealmCore);
- if (log.isDebugEnabled()) {
- log.debug("Getting the list of user roles");
- }
- if (userStoreManager.isExistingRole(roleName)) {
- roleWrapper.setRoleName(roleName);
- roleWrapper.setUsers(userStoreManager.getUserListOfRole(roleName));
- // Get the permission nodes and hand picking only device management and login perms
- final UIPermissionNode rolePermissions = getUIPermissionNode(roleName, userRealmProxy);
- List permList = new ArrayList<>();
- this.iteratePermissions(rolePermissions, permList);
- roleWrapper.setPermissionList(rolePermissions);
- String[] permListAr = new String[permList.size()];
- roleWrapper.setPermissions(permList.toArray(permListAr));
- } else {
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("Role name doesn't exist.")
- .build());
- }
+ return Response.status(Response.Status.OK).entity(roleInfo).build();
} catch (UserStoreException | UserAdminException e) {
String msg = "Error occurred while retrieving the user role '" + roleName + "'";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
- return Response.status(Response.Status.OK).entity(roleWrapper).build();
}
private List iteratePermissions(UIPermissionNode uiPermissionNode, List list) {
@@ -194,78 +188,97 @@ public class RoleManagementServiceImpl implements RoleManagementService {
@POST
@Override
- public Response addRole(RoleWrapper roleWrapper) {
- RequestValidationUtil.validateRoleDetails(roleWrapper);
- RequestValidationUtil.validateRoleName(roleWrapper.getRoleName());
+ public Response addRole(RoleInfo roleInfo) {
+ RequestValidationUtil.validateRoleDetails(roleInfo);
+ RequestValidationUtil.validateRoleName(roleInfo.getRoleName());
try {
UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
if (log.isDebugEnabled()) {
- log.debug("Persisting the role to user store");
+ log.debug("Persisting the role in the underlying user store");
}
Permission[] permissions = null;
- if (roleWrapper.getPermissions() != null && roleWrapper.getPermissions().length > 0) {
- permissions = new Permission[roleWrapper.getPermissions().length];
-
+ if (roleInfo.getPermissions() != null && roleInfo.getPermissions().length > 0) {
+ permissions = new Permission[roleInfo.getPermissions().length];
for (int i = 0; i < permissions.length; i++) {
- String permission = roleWrapper.getPermissions()[i];
+ String permission = roleInfo.getPermissions()[i];
permissions[i] = new Permission(permission, CarbonConstants.UI_PERMISSION_ACTION);
}
}
- userStoreManager.addRole(roleWrapper.getRoleName(), roleWrapper.getUsers(), permissions);
+ userStoreManager.addRole(roleInfo.getRoleName(), roleInfo.getUsers(), permissions);
+
+ //TODO fix what's returned in the entity
+ return Response.created(new URI(API_BASE_PATH + "/" + roleInfo.getRoleName())).entity(
+ "Role '" + roleInfo.getRoleName() + "' has " +
+ "successfully been added").build();
} catch (UserStoreException e) {
- String msg = "Error occurred while adding role '" + roleWrapper.getRoleName() + "'";
+ String msg = "Error occurred while adding role '" + roleInfo.getRoleName() + "'";
+ log.error(msg, e);
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
+ } catch (URISyntaxException e) {
+ String msg = "Error occurred while composing the URI at which the information of the newly created role " +
+ "can be retrieved";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
- return Response.status(Response.Status.OK).entity("Role '" + roleWrapper.getRoleName() + "' has " +
- "successfully been added").build();
}
@PUT
@Path("/{roleName}")
@Override
- public Response updateRole(@PathParam("roleName") String roleName, RoleWrapper roleWrapper) {
+ public Response updateRole(@PathParam("roleName") String roleName, RoleInfo roleInfo) {
RequestValidationUtil.validateRoleName(roleName);
- RequestValidationUtil.validateRoleDetails(roleWrapper);
- String newRoleName = roleWrapper.getRoleName();
+ RequestValidationUtil.validateRoleDetails(roleInfo);
try {
- final UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- final AuthorizationManager authorizationManager = DeviceMgtAPIUtils.getAuthorizationManager();
+ final UserRealm userRealm = DeviceMgtAPIUtils.getUserRealm();
+ final UserStoreManager userStoreManager = userRealm.getUserStoreManager();
+ if (!userStoreManager.isExistingRole(roleName)) {
+ return Response.status(Response.Status.NOT_FOUND).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("No role exists with the name '" +
+ roleName + "'").build()).build();
+ }
+
+ final AuthorizationManager authorizationManager = userRealm.getAuthorizationManager();
if (log.isDebugEnabled()) {
log.debug("Updating the role to user store");
}
+
+ String newRoleName = roleInfo.getRoleName();
if (newRoleName != null && !roleName.equals(newRoleName)) {
userStoreManager.updateRoleName(roleName, newRoleName);
}
- if (roleWrapper.getUsers() != null) {
+
+ if (roleInfo.getUsers() != null) {
SetReferenceTransformer transformer = new SetReferenceTransformer<>();
transformer.transform(Arrays.asList(userStoreManager.getUserListOfRole(newRoleName)),
- Arrays.asList(roleWrapper.getUsers()));
+ Arrays.asList(roleInfo.getUsers()));
final String[] usersToAdd = transformer.getObjectsToAdd().toArray(new String[transformer
.getObjectsToAdd().size()]);
final String[] usersToDelete = transformer.getObjectsToRemove().toArray(new String[transformer
.getObjectsToRemove().size()]);
userStoreManager.updateUserListOfRole(newRoleName, usersToDelete, usersToAdd);
}
- if (roleWrapper.getPermissions() != null) {
+
+ if (roleInfo.getPermissions() != null) {
// Delete all authorizations for the current role before authorizing the permission tree
authorizationManager.clearRoleAuthorization(roleName);
- if (roleWrapper.getPermissions().length > 0) {
- for (int i = 0; i < roleWrapper.getPermissions().length; i++) {
- String permission = roleWrapper.getPermissions()[i];
+ if (roleInfo.getPermissions().length > 0) {
+ for (int i = 0; i < roleInfo.getPermissions().length; i++) {
+ String permission = roleInfo.getPermissions()[i];
authorizationManager.authorizeRole(roleName, permission, CarbonConstants.UI_PERMISSION_ACTION);
}
}
}
+ //TODO: Need to send the updated role information in the entity back to the client
+ return Response.status(Response.Status.OK).entity("Role '" + roleInfo.getRoleName() + "' has " +
+ "successfully been updated").build();
} catch (UserStoreException e) {
String msg = "Error occurred while updating role '" + roleName + "'";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
- return Response.status(Response.Status.OK).entity("Role '" + roleWrapper.getRoleName() + "' has " +
- "successfully been updated").build();
}
@DELETE
@@ -274,22 +287,29 @@ public class RoleManagementServiceImpl implements RoleManagementService {
public Response deleteRole(@PathParam("roleName") String roleName) {
RequestValidationUtil.validateRoleName(roleName);
try {
- final UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- final AuthorizationManager authorizationManager = DeviceMgtAPIUtils.getAuthorizationManager();
+ final UserRealm userRealm = DeviceMgtAPIUtils.getUserRealm();
+ final UserStoreManager userStoreManager = userRealm.getUserStoreManager();
+ if (!userStoreManager.isExistingRole(roleName)) {
+ return Response.status(Response.Status.NOT_FOUND).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("No role exists with the name '" +
+ roleName + "'").build()).build();
+ }
+
+ final AuthorizationManager authorizationManager = userRealm.getAuthorizationManager();
if (log.isDebugEnabled()) {
log.debug("Deleting the role in user store");
}
userStoreManager.deleteRole(roleName);
// Delete all authorizations for the current role before deleting
authorizationManager.clearRoleAuthorization(roleName);
+
+ return Response.status(Response.Status.OK).build();
} catch (UserStoreException e) {
String msg = "Error occurred while deleting the role '" + roleName + "'";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
- return Response.status(Response.Status.OK).entity("Role '" + roleName + "' has " +
- "successfully been deleted").build();
}
@PUT
@@ -312,20 +332,21 @@ public class RoleManagementServiceImpl implements RoleManagementService {
.getObjectsToRemove().size()]);
userStoreManager.updateUserListOfRole(roleName, usersToDelete, usersToAdd);
+
+ return Response.status(Response.Status.OK).entity("Role '" + roleName + "' has " +
+ "successfully been updated with the user list").build();
} catch (UserStoreException e) {
String msg = "Error occurred while updating the users of the role '" + roleName + "'";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
- return Response.status(Response.Status.OK).entity("Role '" + roleName + "' has " +
- "successfully been updated with the user list").build();
}
private List getRolesFromUserStore(String filter) throws UserStoreException {
UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
String[] roles;
- boolean filterRolesByName = ((filter == null) || filter.isEmpty() ? false : true);
+ boolean filterRolesByName = (!((filter == null) || filter.isEmpty()));
if (log.isDebugEnabled()) {
log.debug("Getting the list of user roles");
}
@@ -334,10 +355,10 @@ public class RoleManagementServiceImpl implements RoleManagementService {
List filteredRoles = new ArrayList<>();
for (String role : roles) {
if (!(role.startsWith("Internal/") || role.startsWith("Authentication/") || role.startsWith("Application/"))) {
- if(!filterRolesByName) {
+ if (!filterRolesByName) {
filteredRoles.add(role);
- } else{
- if(role.contains(filter)){
+ } else {
+ if (role.contains(filter)) {
filteredRoles.add(role);
}
}
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 60b4388b1f..41524f8862 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
@@ -21,24 +21,19 @@ 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.context.CarbonContext;
-import org.wso2.carbon.device.mgt.common.DeviceManagementException;
-import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
-import org.wso2.carbon.device.mgt.core.service.EmailMetaInfo;
import org.wso2.carbon.device.mgt.jaxrs.beans.*;
import org.wso2.carbon.device.mgt.jaxrs.service.api.UserManagementService;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.*;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.NotFoundException;
import org.wso2.carbon.device.mgt.jaxrs.util.Constants;
import org.wso2.carbon.device.mgt.jaxrs.util.CredentialManagementResponseBuilder;
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
import org.wso2.carbon.user.api.UserStoreException;
import org.wso2.carbon.user.api.UserStoreManager;
-import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.util.*;
@Path("/users")
@@ -47,117 +42,59 @@ import java.util.*;
public class UserManagementServiceImpl implements UserManagementService {
private static final String ROLE_EVERYONE = "Internal/everyone";
+ private static final String API_BASE_PATH = "/users";
private static final Log log = LogFactory.getLog(UserManagementServiceImpl.class);
@POST
@Override
- public Response addUser(UserInfo userWrapper) {
+ public Response addUser(UserInfo userInfo) {
try {
UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- if (userStoreManager.isExistingUser(userWrapper.getUsername())) {
+ if (userStoreManager.isExistingUser(userInfo.getUsername())) {
// if user already exists
if (log.isDebugEnabled()) {
- log.debug("User by username: " + userWrapper.getUsername() +
+ log.debug("User by username: " + userInfo.getUsername() +
" already exists. Therefore, request made to add user was refused.");
}
// returning response with bad request state
- throw new ConflictException(
- new ErrorResponse.ErrorResponseBuilder().setCode(409l).setMessage("User by username: " +
- userWrapper.getUsername() + " already exists. Therefore, request made to add user " +
- "was refused.").build());
- } else {
- String initialUserPassword = this.generateInitialUserPassword();
- Map defaultUserClaims =
- this.buildDefaultUserClaims(userWrapper.getFirstname(), userWrapper.getLastname(),
- userWrapper.getEmailAddress());
- // calling addUser method of carbon user api
- userStoreManager.addUser(userWrapper.getUsername(), initialUserPassword,
- userWrapper.getRoles(), defaultUserClaims, null);
- // invite newly added user to enroll device
- this.inviteNewlyAddedUserToEnrollDevice(userWrapper.getUsername(), initialUserPassword);
- // Outputting debug message upon successful addition of user
- if (log.isDebugEnabled()) {
- log.debug("User '" + userWrapper.getUsername() + "' has successfully been added.");
- }
- // returning response with success state
- return Response.status(Response.Status.CREATED).entity("User by username: " + userWrapper.getUsername() +
- " was successfully added.").build();
+ return Response.status(Response.Status.CONFLICT).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("User by username: " +
+ userInfo.getUsername() + " already exists. Therefore, request made to add user " +
+ "was refused.").build()).build();
+ }
+
+ String initialUserPassword = this.generateInitialUserPassword();
+ Map defaultUserClaims =
+ this.buildDefaultUserClaims(userInfo.getFirstname(), userInfo.getLastname(),
+ userInfo.getEmailAddress());
+ // calling addUser method of carbon user api
+ userStoreManager.addUser(userInfo.getUsername(), initialUserPassword,
+ userInfo.getRoles(), defaultUserClaims, null);
+ // Outputting debug message upon successful addition of user
+ if (log.isDebugEnabled()) {
+ log.debug("User '" + userInfo.getUsername() + "' has successfully been added.");
+ }
+
+ BasicUserInfo createdUserInfo = this.getBasicUserInfo(userInfo.getUsername());
+ // Outputting debug message upon successful retrieval of user
+ if (log.isDebugEnabled()) {
+ log.debug("User by username: " + userInfo.getUsername() + " was found.");
}
+ return Response.created(new URI(API_BASE_PATH + "/" + userInfo.getUsername())).entity(
+ createdUserInfo).build();
} catch (UserStoreException e) {
- String msg = "Exception in trying to add user '" + userWrapper.getUsername() + "' to the user store";
+ String msg = "Error occurred while trying to add user '" + userInfo.getUsername() + "' to the " +
+ "underlying user management system";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
- } catch (DeviceManagementException e) {
- String msg = "ErrorResponse occurred while inviting user to enroll the device";
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
+ } catch (URISyntaxException e) {
+ String msg = "Error occurred while composing the location URI, which represents information of the " +
+ "newly created user '" + userInfo.getUsername() + "'";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
- }
- }
-
- private Map buildDefaultUserClaims(String firstname, String lastname, String emailAddress) {
- 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 (log.isDebugEnabled()) {
- log.debug("Default claim map is created for new user: " + defaultUserClaims.toString());
- }
- return defaultUserClaims;
- }
-
- private String generateInitialUserPassword() {
- int passwordLength = 6;
- //defining the pool of characters to be used for initial password generation
- String lowerCaseCharset = "abcdefghijklmnopqrstuvwxyz";
- String upperCaseCharset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- String numericCharset = "0123456789";
- Random randomGenerator = new Random();
- String totalCharset = lowerCaseCharset + upperCaseCharset + numericCharset;
- int totalCharsetLength = totalCharset.length();
- StringBuilder initialUserPassword = new StringBuilder();
- for (int i = 0; i < passwordLength; i++) {
- initialUserPassword
- .append(totalCharset.charAt(randomGenerator.nextInt(totalCharsetLength)));
- }
- if (log.isDebugEnabled()) {
- log.debug("Initial user password is created for new user: " + initialUserPassword);
- }
- return initialUserPassword.toString();
- }
-
- private void inviteNewlyAddedUserToEnrollDevice(String username,
- String password) throws DeviceManagementException, UserStoreException {
- if (log.isDebugEnabled()) {
- log.debug("Sending invitation mail to user by username: " + username);
- }
- String tenantDomain = CarbonContext.getThreadLocalCarbonContext().getTenantDomain();
- if (MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equalsIgnoreCase(tenantDomain)) {
- tenantDomain = "";
- }
- if (!username.contains("/")) {
- username = "/" + username;
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
- String[] usernameBits = username.split("/");
- DeviceManagementProviderService deviceManagementProviderService = DeviceMgtAPIUtils.getDeviceManagementService();
-
- Properties props = new Properties();
- props.setProperty("username", usernameBits[1]);
- props.setProperty("domain-name", tenantDomain);
- props.setProperty("first-name", getClaimValue(usernameBits[1], Constants.USER_CLAIM_FIRST_NAME));
- props.setProperty("password", password);
-
- String recipient = getClaimValue(usernameBits[1], Constants.USER_CLAIM_EMAIL_ADDRESS);
-
- EmailMetaInfo metaInfo = new EmailMetaInfo(recipient, props);
-
- deviceManagementProviderService.sendRegistrationEmail(metaInfo);
- }
-
- private String getClaimValue(String username, String claimUri) throws UserStoreException {
- UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- return userStoreManager.getUserClaimValue(username, claimUri, null);
}
@GET
@@ -167,91 +104,80 @@ public class UserManagementServiceImpl implements UserManagementService {
@HeaderParam("If-Modified-Since") String ifModifiedSince) {
try {
UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- if (userStoreManager.isExistingUser(username)) {
- BasicUserInfo 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));
- // Outputting debug message upon successful retrieval of user
- if (log.isDebugEnabled()) {
- log.debug("User by username: " + username + " was found.");
- }
- return Response.status(Response.Status.OK).entity(user).build();
- } else {
- // Outputting debug message upon trying to remove non-existing user
+ if (!userStoreManager.isExistingUser(username)) {
if (log.isDebugEnabled()) {
log.debug("User by username: " + username + " does not exist.");
}
- // returning response with bad request state
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("User doesn't exist.")
- .build());
+ return Response.status(Response.Status.NOT_FOUND).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(
+ "User doesn't exist.").build()).build();
}
+
+ BasicUserInfo user = this.getBasicUserInfo(username);
+ return Response.status(Response.Status.OK).entity(user).build();
} catch (UserStoreException e) {
- String msg = "ErrorResponse occurred while retrieving information of the user '" + username + "'";
+ String msg = "Error occurred while retrieving information of the user '" + username + "'";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
@PUT
@Path("/{username}")
@Override
- public Response updateUser(@PathParam("username") String username, UserInfo userWrapper) {
+ public Response updateUser(@PathParam("username") String username, UserInfo userInfo) {
try {
UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- if (userStoreManager.isExistingUser(userWrapper.getUsername())) {
- Map defaultUserClaims =
- this.buildDefaultUserClaims(userWrapper.getFirstname(), userWrapper.getLastname(),
- userWrapper.getEmailAddress());
- if (StringUtils.isNotEmpty(userWrapper.getPassword())) {
- // Decoding Base64 encoded password
- userStoreManager.updateCredentialByAdmin(userWrapper.getUsername(),
- userWrapper.getPassword());
- log.debug("User credential of username: " + userWrapper.getUsername() + " has been changed");
+ if (!userStoreManager.isExistingUser(userInfo.getUsername())) {
+ if (log.isDebugEnabled()) {
+ log.debug("User by username: " + userInfo.getUsername() +
+ " doesn't exists. Therefore, request made to update user was refused.");
}
- List currentRoles = this.getFilteredRoles(userStoreManager, userWrapper.getUsername());
- List newRoles = Arrays.asList(userWrapper.getRoles());
+ return Response.status(Response.Status.NOT_FOUND).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("User by username: " +
+ userInfo.getUsername() + " doesn't exist.").build()).build();
+ }
- List rolesToAdd = new ArrayList<>(newRoles);
- List rolesToDelete = new ArrayList<>();
+ Map defaultUserClaims =
+ this.buildDefaultUserClaims(userInfo.getFirstname(), userInfo.getLastname(),
+ userInfo.getEmailAddress());
+ if (StringUtils.isNotEmpty(userInfo.getPassword())) {
+ // Decoding Base64 encoded password
+ userStoreManager.updateCredentialByAdmin(userInfo.getUsername(),
+ userInfo.getPassword());
+ log.debug("User credential of username: " + userInfo.getUsername() + " has been changed");
+ }
+ List currentRoles = this.getFilteredRoles(userStoreManager, userInfo.getUsername());
+ List newRoles = Arrays.asList(userInfo.getRoles());
- for (String role : currentRoles) {
- if (newRoles.contains(role)) {
- rolesToAdd.remove(role);
- } else {
- rolesToDelete.add(role);
- }
- }
- rolesToDelete.remove(ROLE_EVERYONE);
- userStoreManager.updateRoleListOfUser(userWrapper.getUsername(),
- rolesToDelete.toArray(new String[rolesToDelete.size()]),
- rolesToAdd.toArray(new String[rolesToAdd.size()]));
- userStoreManager.setUserClaimValues(userWrapper.getUsername(), defaultUserClaims, null);
- // Outputting debug message upon successful addition of user
- if (log.isDebugEnabled()) {
- log.debug("User by username: " + userWrapper.getUsername() + " was successfully updated.");
- }
- // returning response with success state
- return Response.status(Response.Status.CREATED).entity("User by username '" + userWrapper.getUsername() +
- "' was successfully updated.").build();
- } else {
- if (log.isDebugEnabled()) {
- log.debug("User by username: " + userWrapper.getUsername() +
- " doesn't exists. Therefore, request made to update user was refused.");
+ List rolesToAdd = new ArrayList<>(newRoles);
+ List rolesToDelete = new ArrayList<>();
+
+ for (String role : currentRoles) {
+ if (newRoles.contains(role)) {
+ rolesToAdd.remove(role);
+ } else {
+ rolesToDelete.add(role);
}
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("User by username: " +
- userWrapper.getUsername() + " doesn't exists. Therefore, request made to update user" +
- " was refused.").build());
}
+ rolesToDelete.remove(ROLE_EVERYONE);
+ userStoreManager.updateRoleListOfUser(userInfo.getUsername(),
+ rolesToDelete.toArray(new String[rolesToDelete.size()]),
+ rolesToAdd.toArray(new String[rolesToAdd.size()]));
+ userStoreManager.setUserClaimValues(userInfo.getUsername(), defaultUserClaims, null);
+ // Outputting debug message upon successful addition of user
+ if (log.isDebugEnabled()) {
+ log.debug("User by username: " + userInfo.getUsername() + " was successfully updated.");
+ }
+
+ BasicUserInfo updatedUserInfo = this.getBasicUserInfo(username);
+ return Response.ok().entity(updatedUserInfo).build();
} catch (UserStoreException e) {
- String msg = "Exception in trying to update user by username: " + userWrapper.getUsername();
+ String msg = "Error occurred while trying to update user '" + userInfo.getUsername() + "'";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
@@ -277,31 +203,25 @@ public class UserManagementServiceImpl implements UserManagementService {
public Response removeUser(@PathParam("username") String username) {
try {
UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- if (userStoreManager.isExistingUser(username)) {
- // if user already exists, trying to remove user
- userStoreManager.deleteUser(username);
- // Outputting debug message upon successful removal of user
- if (log.isDebugEnabled()) {
- log.debug("User by username: " + username + " was successfully removed.");
- }
- // returning response with success state
- return Response.status(Response.Status.OK).entity("User by username: " + username +
- " was successfully removed.").build();
- } else {
- // Outputting debug message upon trying to remove non-existing user
+ if (!userStoreManager.isExistingUser(username)) {
if (log.isDebugEnabled()) {
log.debug("User by username: " + username + " does not exist for removal.");
}
- // returning response with bad request state
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("User by username: " +
- username + " does not exist for removal.").build());
+ return Response.status(Response.Status.NOT_FOUND).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("User '" +
+ username + "' does not exist for removal.").build()).build();
}
+
+ userStoreManager.deleteUser(username);
+ if (log.isDebugEnabled()) {
+ log.debug("User '" + username + "' was successfully removed.");
+ }
+ return Response.status(Response.Status.OK).build();
} catch (UserStoreException e) {
String msg = "Exception in trying to remove user by username: " + username;
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
@@ -311,24 +231,23 @@ public class UserManagementServiceImpl implements UserManagementService {
public Response getRolesOfUser(@PathParam("username") String username) {
try {
UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
- if (userStoreManager.isExistingUser(username)) {
- RoleList result = new RoleList();
- result.setList(getFilteredRoles(userStoreManager, username));
- return Response.status(Response.Status.OK).entity(result).build();
- } else {
- // Outputting debug message upon trying to remove non-existing user
+ if (!userStoreManager.isExistingUser(username)) {
if (log.isDebugEnabled()) {
log.debug("User by username: " + username + " does not exist for role retrieval.");
}
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("User by username: " + username +
- " does not exist for role retrieval.").build());
+ return Response.status(Response.Status.NOT_FOUND).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("User by username: " + username +
+ " does not exist for role retrieval.").build()).build();
}
+
+ RoleList result = new RoleList();
+ result.setList(getFilteredRoles(userStoreManager, username));
+ return Response.status(Response.Status.OK).entity(result).build();
} catch (UserStoreException e) {
- String msg = "Exception in trying to retrieve roles for user by username: " + username;
+ String msg = "Error occurred while trying to retrieve roles of the user '" + username + "'";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
@@ -342,7 +261,7 @@ public class UserManagementServiceImpl implements UserManagementService {
}
List userList, offsetList;
String appliedFilter = ((filter == null) || filter.isEmpty() ? "*" : filter);
- int appliedLimit = (limit <= 0) ? -1 : (limit + offset);
+ int appliedLimit = (limit <= 0) ? -1 : (limit + offset);
try {
UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
@@ -371,10 +290,10 @@ public class UserManagementServiceImpl implements UserManagementService {
return Response.status(Response.Status.OK).entity(result).build();
} catch (UserStoreException e) {
- String msg = "ErrorResponse occurred while retrieving the list of users.";
+ String msg = "Error occurred while retrieving the list of users.";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
@@ -407,8 +326,8 @@ public class UserManagementServiceImpl implements UserManagementService {
} catch (UserStoreException e) {
String msg = "Error occurred while retrieving the list of users using the filter : " + filter;
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
@@ -419,4 +338,49 @@ public class UserManagementServiceImpl implements UserManagementService {
return CredentialManagementResponseBuilder.buildChangePasswordResponse(username, credentials);
}
+ private Map buildDefaultUserClaims(String firstName, String lastName, String emailAddress) {
+ 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 (log.isDebugEnabled()) {
+ log.debug("Default claim map is created for new user: " + defaultUserClaims.toString());
+ }
+ return defaultUserClaims;
+ }
+
+ private String generateInitialUserPassword() {
+ int passwordLength = 6;
+ //defining the pool of characters to be used for initial password generation
+ String lowerCaseCharset = "abcdefghijklmnopqrstuvwxyz";
+ String upperCaseCharset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ String numericCharset = "0123456789";
+ Random randomGenerator = new Random();
+ String totalCharset = lowerCaseCharset + upperCaseCharset + numericCharset;
+ int totalCharsetLength = totalCharset.length();
+ StringBuilder initialUserPassword = new StringBuilder();
+ for (int i = 0; i < passwordLength; i++) {
+ initialUserPassword.append(
+ totalCharset.charAt(randomGenerator.nextInt(totalCharsetLength)));
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("Initial user password is created for new user: " + initialUserPassword);
+ }
+ return initialUserPassword.toString();
+ }
+
+ private BasicUserInfo getBasicUserInfo(String username) throws UserStoreException {
+ BasicUserInfo userInfo = new BasicUserInfo();
+ userInfo.setUsername(username);
+ 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));
+ return userInfo;
+ }
+
+ private String getClaimValue(String username, String claimUri) throws UserStoreException {
+ UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
+ return userStoreManager.getUserClaimValue(username, claimUri, null);
+ }
+
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/ApplicationManagementAdminServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/ApplicationManagementAdminServiceImpl.java
index 3aa0e8f3c9..59f32534c9 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/ApplicationManagementAdminServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/ApplicationManagementAdminServiceImpl.java
@@ -29,9 +29,7 @@ import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
import org.wso2.carbon.device.mgt.jaxrs.exception.UnknownApplicationTypeException;
import org.wso2.carbon.device.mgt.jaxrs.service.api.admin.ApplicationManagementAdminService;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.InputValidationException;
import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.RequestValidationUtil;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.UnexpectedServerErrorException;
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
import org.wso2.carbon.device.mgt.jaxrs.util.MDMAndroidOperationUtil;
import org.wso2.carbon.device.mgt.jaxrs.util.MDMIOSOperationUtil;
@@ -82,21 +80,22 @@ public class ApplicationManagementAdminServiceImpl implements ApplicationManagem
applicationWrapper.getDeviceIdentifiers().size() > 0) {
activity = appManagerConnector.installApplicationForDevices(operation, applicationWrapper.getDeviceIdentifiers());
} else {
- throw new InputValidationException(new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(
- "No application installation criteria i.e. user/role/device is given").build());
+ return Response.status(Response.Status.BAD_REQUEST).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(
+ "No application installation criteria i.e. user/role/device is given").build()).build();
}
}
return Response.status(Response.Status.ACCEPTED).entity(activity).build();
} catch (ApplicationManagementException e) {
- String msg = "ErrorResponse occurred while processing application installation request";
+ String msg = "Error occurred while processing application installation request";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
} catch (UnknownApplicationTypeException e) {
String msg = "The type of application requested to be installed is not supported";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
@@ -130,22 +129,22 @@ public class ApplicationManagementAdminServiceImpl implements ApplicationManagem
applicationWrapper.getDeviceIdentifiers().size() > 0) {
activity = appManagerConnector.installApplicationForDevices(operation, applicationWrapper.getDeviceIdentifiers());
} else {
- throw new InputValidationException(
- new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(
- "No application un-installation criteria i.e. user/role/device is given").build());
+ return Response.status(Response.Status.BAD_REQUEST).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(
+ "No application un-installation criteria i.e. user/role/device is given").build()).build();
}
}
return Response.status(Response.Status.ACCEPTED).entity(activity).build();
} catch (ApplicationManagementException e) {
- String msg = "ErrorResponse occurred while processing application un-installation request";
+ String msg = "Error occurred while processing application un-installation request";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
} catch (UnknownApplicationTypeException e) {
String msg = "The type of application requested to be un-installed is not supported";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/DeviceManagementAdminServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/DeviceManagementAdminServiceImpl.java
index 589127b211..4956583627 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/DeviceManagementAdminServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/DeviceManagementAdminServiceImpl.java
@@ -28,8 +28,6 @@ import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceList;
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
import org.wso2.carbon.device.mgt.jaxrs.service.api.admin.DeviceManagementAdminService;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.*;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.NotFoundException;
import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
import javax.ws.rs.*;
@@ -55,21 +53,16 @@ public class DeviceManagementAdminServiceImpl implements DeviceManagementAdminSe
try {
int currentTenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
if (MultitenantConstants.SUPER_TENANT_ID != currentTenantId) {
- throw new UnauthorizedAccessException(
- new ErrorResponse.ErrorResponseBuilder().setCode(401l).setMessage(
- "Current logged in user is not authorized to perform this operation").build());
+ return Response.status(Response.Status.UNAUTHORIZED).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(
+ "Current logged in user is not authorized to perform this operation").build()).build();
}
PrivilegedCarbonContext.startTenantFlow();
PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(tenantDomain);
PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(DeviceMgtAPIUtils.getTenantId(tenantDomain));
List devices = DeviceMgtAPIUtils.getDeviceManagementService().
- getDevicesByNameAndType(name, type, offset, limit);
- if (devices == null || devices.size() == 0) {
- throw new NotFoundException(
- new ErrorResponse.ErrorResponseBuilder().setCode(404l).setMessage("No device, which carries" +
- " the name '" + name + "', is currently enrolled in the system").build());
- }
+ getDevicesByNameAndType(name, type, offset, limit);
// setting up paginated result
DeviceList deviceList = new DeviceList();
@@ -80,8 +73,8 @@ public class DeviceManagementAdminServiceImpl implements DeviceManagementAdminSe
} catch (DeviceManagementException e) {
String msg = "Error occurred at server side while fetching device list.";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
} finally {
PrivilegedCarbonContext.endTenantFlow();
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/util/RequestValidationUtil.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/util/RequestValidationUtil.java
index f4defbdfad..5d0a585ca7 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/util/RequestValidationUtil.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/util/RequestValidationUtil.java
@@ -304,8 +304,8 @@ public class RequestValidationUtil {
}
}
- public static void validateRoleDetails(RoleWrapper roleWrapper) {
- if (roleWrapper == null) {
+ public static void validateRoleDetails(RoleInfo roleInfo) {
+ if (roleInfo == null) {
throw new InputValidationException(
new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage("Request body is incorrect or" +
" empty").build());
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/swagger/extension/SecurityDefinitionConfigurator.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/swagger/extension/SecurityDefinitionConfigurator.java
new file mode 100644
index 0000000000..2ad4b54aa5
--- /dev/null
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/swagger/extension/SecurityDefinitionConfigurator.java
@@ -0,0 +1,58 @@
+/*
+ * 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.
+ *
+ */
+package org.wso2.carbon.device.mgt.jaxrs.swagger.extension;
+
+import io.swagger.annotations.SwaggerDefinition;
+import io.swagger.jaxrs.Reader;
+import io.swagger.jaxrs.config.ReaderListener;
+import io.swagger.models.Swagger;
+import io.swagger.models.auth.OAuth2Definition;
+import io.swagger.models.auth.SecuritySchemeDefinition;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@SwaggerDefinition(
+ basePath = "/api/device-mgt/v1.0",
+ host = "localhost:9443"
+)
+public class SecurityDefinitionConfigurator implements ReaderListener {
+
+ public static final String TOKEN_AUTH_SCHEME = "tokenAuthScheme";
+
+ @Override
+ public void beforeScan(Reader reader, Swagger swagger) {
+
+ }
+
+ @Override
+ public void afterScan(Reader reader, Swagger swagger) {
+ OAuth2Definition tokenScheme = new OAuth2Definition();
+ tokenScheme.setType("oauth2");
+ tokenScheme.setFlow("password");
+ tokenScheme.setTokenUrl("https://" + swagger.getHost() + "/oauth/token");
+ tokenScheme.setAuthorizationUrl("https://" + swagger.getHost() + "/oauth/authorize");
+
+ Map schemes = new HashMap<>();
+ schemes.put(TOKEN_AUTH_SCHEME, tokenScheme);
+
+ swagger.setSecurityDefinitions(schemes);
+ }
+
+}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/CredentialManagementResponseBuilder.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/CredentialManagementResponseBuilder.java
index 6fe5706243..09371c3c5d 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/CredentialManagementResponseBuilder.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/util/CredentialManagementResponseBuilder.java
@@ -21,11 +21,9 @@ package org.wso2.carbon.device.mgt.jaxrs.util;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
-import org.wso2.carbon.device.mgt.jaxrs.beans.PasswordResetWrapper;
import org.wso2.carbon.device.mgt.jaxrs.beans.OldPasswordResetWrapper;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.InputValidationException;
+import org.wso2.carbon.device.mgt.jaxrs.beans.PasswordResetWrapper;
import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.RequestValidationUtil;
-import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.UnexpectedServerErrorException;
import org.wso2.carbon.user.api.UserStoreException;
import org.wso2.carbon.user.api.UserStoreManager;
@@ -44,7 +42,8 @@ public class CredentialManagementResponseBuilder {
/**
* Builds the response to change the password of a user
- * @param username - Username of the user.
+ *
+ * @param username - Username of the user.
* @param credentials - User credentials
* @return Response Object
*/
@@ -52,38 +51,39 @@ public class CredentialManagementResponseBuilder {
try {
UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
if (!userStoreManager.isExistingUser(username)) {
- throw new InputValidationException(
- new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage("No user found with the username "
- + username).build());
+ return Response.status(Response.Status.NOT_FOUND).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("No user found with the username '"
+ + username + "'").build()).build();
}
RequestValidationUtil.validateCredentials(credentials);
if (!validateCredential(credentials.getNewPassword())) {
String errorMsg = DeviceMgtAPIUtils.getRealmService().getBootstrapRealmConfiguration()
.getUserStoreProperty(PASSWORD_VALIDATION_ERROR_MSG_TAG);
- throw new InputValidationException(
- new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMsg).build());
+ return Response.status(Response.Status.BAD_REQUEST).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(errorMsg).build()).build();
}
userStoreManager.updateCredential(username, credentials.getNewPassword(),
- credentials.getOldPassword());
+ credentials.getOldPassword());
return Response.status(Response.Status.OK).entity("UserImpl password by username: " +
username + " was successfully changed.").build();
} catch (UserStoreException e) {
log.error(e.getMessage(), e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(e.getMessage()).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(e.getMessage()).build()).build();
} catch (UnsupportedEncodingException e) {
String msg = "Could not change the password of the user: " + username +
". The Character Encoding is not supported.";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
/**
* Builds the response to reset the password of a user
- * @param username - Username of the user.
+ *
+ * @param username - Username of the user.
* @param credentials - User credentials
* @return Response Object
*/
@@ -91,35 +91,35 @@ public class CredentialManagementResponseBuilder {
try {
UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager();
if (!userStoreManager.isExistingUser(username)) {
- throw new InputValidationException(
- new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage("No user found with the username "
- + username).build());
+ return Response.status(Response.Status.BAD_REQUEST).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("No user found with the username "
+ + username).build()).build();
}
if (credentials == null || credentials.getNewPassword() == null) {
- throw new InputValidationException(
- new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage("Password cannot be empty."
- + username).build());
+ return Response.status(Response.Status.BAD_REQUEST).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage("Password cannot be empty."
+ + username).build()).build();
}
if (!validateCredential(credentials.getNewPassword())) {
String errorMsg = DeviceMgtAPIUtils.getRealmService().getBootstrapRealmConfiguration()
.getUserStoreProperty(PASSWORD_VALIDATION_ERROR_MSG_TAG);
- throw new InputValidationException(
- new ErrorResponse.ErrorResponseBuilder().setCode(400l).setMessage(errorMsg).build());
+ return Response.status(Response.Status.BAD_REQUEST).entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(errorMsg).build()).build();
}
userStoreManager.updateCredentialByAdmin(username, credentials.getNewPassword());
return Response.status(Response.Status.OK).entity("UserImpl password by username: " +
username + " was successfully changed.").build();
} catch (UserStoreException e) {
- String msg = "ErrorResponse occurred while updating the credentials of user '" + username + "'";
+ String msg = "Error occurred while updating the credentials of user '" + username + "'";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
} catch (UnsupportedEncodingException e) {
String msg = "Could not change the password of the user: " + username +
". The Character Encoding is not supported.";
log.error(msg, e);
- throw new UnexpectedServerErrorException(
- new ErrorResponse.ErrorResponseBuilder().setCode(500l).setMessage(msg).build());
+ return Response.serverError().entity(
+ new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
}
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/app/mgt/Application.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/app/mgt/Application.java
index 1b17534dcf..82e3108149 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/app/mgt/Application.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/app/mgt/Application.java
@@ -49,8 +49,10 @@ public class Application implements Serializable {
private Properties appProperties;
@ApiModelProperty(name = "applicationIdentifier", value = "The application identifier", required = true)
private String applicationIdentifier;
- @ApiModelProperty(name = "memoryUsage", value = "AMount of memory used by the application", required = true)
+ @ApiModelProperty(name = "memoryUsage", value = "Amount of memory used by the application", required = true)
private int memoryUsage;
+ @ApiModelProperty(name = "isActive", value = "Is the application actively running", required = true)
+ private boolean isActive;
public String getType() {
@@ -166,4 +168,12 @@ public class Application implements Serializable {
this.appProperties = appProperties;
}
+
+ public boolean isActive() {
+ return isActive;
+ }
+
+ public void setActive(boolean active) {
+ isActive = active;
+ }
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/device/details/DeviceInfo.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/device/details/DeviceInfo.java
index cc8913c6b6..343add988e 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/device/details/DeviceInfo.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/device/details/DeviceInfo.java
@@ -57,6 +57,9 @@ public class DeviceInfo implements Serializable {
@ApiModelProperty(name = "osVersion", value = "Operating system version.", required = true)
private String osVersion;
+ @ApiModelProperty(name = "osBuildDate", value = "Operating system build date.", required = true)
+ private String osBuildDate;
+
@ApiModelProperty(name = "batteryLevel", value = "Battery level of the device.", required = true)
private Double batteryLevel;
@@ -201,6 +204,19 @@ public class DeviceInfo implements Serializable {
this.osVersion = osVersion;
}
+
+ public String getOsBuildDate() {
+ if (osBuildDate != null) {
+ return osBuildDate;
+ } else {
+ return "";
+ }
+ }
+
+ public void setOsBuildDate(String osBuildDate) {
+ this.osBuildDate = osBuildDate;
+ }
+
public Double getBatteryLevel() {
if (batteryLevel != null) {
return batteryLevel;
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/notification/mgt/NotificationManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/notification/mgt/NotificationManagementService.java
index c854e47279..cbf26cc4cf 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/notification/mgt/NotificationManagementService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.common/src/main/java/org/wso2/carbon/device/mgt/common/notification/mgt/NotificationManagementService.java
@@ -71,6 +71,8 @@ public interface NotificationManagementService {
*/
List getAllNotifications() throws NotificationManagementException;
+ Notification getNotification(int notificationId) throws NotificationManagementException;
+
PaginationResult getAllNotifications(PaginationRequest request) throws NotificationManagementException;
/**
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/ApplicationDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/ApplicationDAOImpl.java
index f6b320682b..a9312623ae 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/ApplicationDAOImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/impl/ApplicationDAOImpl.java
@@ -47,8 +47,8 @@ public class ApplicationDAOImpl implements ApplicationDAO {
try {
conn = this.getConnection();
stmt = conn.prepareStatement("INSERT INTO DM_APPLICATION (NAME, PLATFORM, CATEGORY, " +
- "VERSION, TYPE, LOCATION_URL, IMAGE_URL, TENANT_ID, APP_PROPERTIES, APP_IDENTIFIER, MEMORY_USAGE) " +
- "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
+ "VERSION, TYPE, LOCATION_URL, IMAGE_URL, TENANT_ID, APP_PROPERTIES, APP_IDENTIFIER, MEMORY_USAGE, IS_ACTIVE) " +
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
stmt.setString(1, application.getName());
stmt.setString(2, application.getPlatform());
@@ -66,6 +66,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
stmt.setString(10, application.getApplicationIdentifier());
stmt.setInt(11, application.getMemoryUsage());
+ stmt.setBoolean(12, application.isActive());
stmt.execute();
rs = stmt.getGeneratedKeys();
@@ -109,8 +110,8 @@ public class ApplicationDAOImpl implements ApplicationDAO {
try {
conn = this.getConnection();
stmt = conn.prepareStatement("INSERT INTO DM_APPLICATION (NAME, PLATFORM, CATEGORY, " +
- "VERSION, TYPE, LOCATION_URL, IMAGE_URL, TENANT_ID,APP_PROPERTIES, APP_IDENTIFIER, MEMORY_USAGE) " +
- "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", new String[]{"id"});
+ "VERSION, TYPE, LOCATION_URL, IMAGE_URL, TENANT_ID,APP_PROPERTIES, APP_IDENTIFIER, MEMORY_USAGE, IS_ACTIVE) " +
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", new String[]{"id"});
for (Application application : applications) {
@@ -131,6 +132,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
stmt.setString(10, application.getApplicationIdentifier());
stmt.setInt(11, application.getMemoryUsage());
+ stmt.setBoolean(12, application.isActive());
stmt.executeUpdate();
rs = stmt.getGeneratedKeys();
@@ -208,7 +210,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
try {
conn = this.getConnection();
stmt = conn.prepareStatement("SELECT ID, NAME, APP_IDENTIFIER, PLATFORM, CATEGORY, VERSION, TYPE, " +
- "LOCATION_URL, IMAGE_URL, APP_PROPERTIES, MEMORY_USAGE, TENANT_ID FROM DM_APPLICATION WHERE APP_IDENTIFIER = ? " +
+ "LOCATION_URL, IMAGE_URL, APP_PROPERTIES, MEMORY_USAGE, IS_ACTIVE, TENANT_ID FROM DM_APPLICATION WHERE APP_IDENTIFIER = ? " +
"AND TENANT_ID = ?");
stmt.setString(1, identifier);
stmt.setInt(2, tenantId);
@@ -240,7 +242,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
try {
conn = this.getConnection();
stmt = conn.prepareStatement("Select ID, NAME, APP_IDENTIFIER, PLATFORM, CATEGORY, VERSION, TYPE, " +
- "LOCATION_URL, IMAGE_URL, APP_PROPERTIES, MEMORY_USAGE, TENANT_ID From DM_APPLICATION app " +
+ "LOCATION_URL, IMAGE_URL, APP_PROPERTIES, MEMORY_USAGE, IS_ACTIVE, TENANT_ID From DM_APPLICATION app " +
"INNER JOIN " +
"(Select APPLICATION_ID From DM_DEVICE_APPLICATION_MAPPING WHERE DEVICE_ID=?) APPMAP " +
"ON " +
@@ -287,6 +289,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
application.setPlatform(rs.getString("PLATFORM"));
application.setVersion(rs.getString("VERSION"));
application.setMemoryUsage(rs.getInt("MEMORY_USAGE"));
+ application.setActive(rs.getBoolean("IS_ACTIVE"));
application.setApplicationIdentifier(rs.getString("APP_IDENTIFIER"));
} catch (IOException e) {
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/util/DeviceManagementDAOUtil.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/util/DeviceManagementDAOUtil.java
index 7c1a5a6dce..39b5670109 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/util/DeviceManagementDAOUtil.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/dao/util/DeviceManagementDAOUtil.java
@@ -209,6 +209,7 @@ public final class DeviceManagementDAOUtil {
deviceInfo.setDeviceModel(rs.getString("DEVICE_MODEL"));
deviceInfo.setVendor(rs.getString("VENDOR"));
deviceInfo.setOsVersion(rs.getString("OS_VERSION"));
+ deviceInfo.setOsBuildDate(rs.getString("OS_BUILD_DATE"));
deviceInfo.setBatteryLevel(rs.getDouble("BATTERY_LEVEL"));
deviceInfo.setInternalTotalMemory(rs.getDouble("INTERNAL_TOTAL_MEMORY"));
deviceInfo.setInternalAvailableMemory(rs.getDouble("INTERNAL_AVAILABLE_MEMORY"));
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/device/details/mgt/dao/impl/DeviceDetailsDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/device/details/mgt/dao/impl/DeviceDetailsDAOImpl.java
index b0460a7c34..0d45c19838 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/device/details/mgt/dao/impl/DeviceDetailsDAOImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/device/details/mgt/dao/impl/DeviceDetailsDAOImpl.java
@@ -48,27 +48,28 @@ public class DeviceDetailsDAOImpl implements DeviceDetailsDAO {
conn = this.getConnection();
stmt = conn.prepareStatement("INSERT INTO DM_DEVICE_DETAIL (DEVICE_ID, DEVICE_MODEL, " +
- "VENDOR, OS_VERSION, BATTERY_LEVEL, INTERNAL_TOTAL_MEMORY, INTERNAL_AVAILABLE_MEMORY, " +
+ "VENDOR, OS_VERSION, OS_BUILD_DATE, BATTERY_LEVEL, INTERNAL_TOTAL_MEMORY, INTERNAL_AVAILABLE_MEMORY, " +
"EXTERNAL_TOTAL_MEMORY, EXTERNAL_AVAILABLE_MEMORY, CONNECTION_TYPE, " +
"SSID, CPU_USAGE, TOTAL_RAM_MEMORY, AVAILABLE_RAM_MEMORY, PLUGGED_IN, UPDATE_TIMESTAMP) " +
- "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
stmt.setInt(1, deviceId);
stmt.setString(2, deviceInfo.getDeviceModel());
stmt.setString(3, deviceInfo.getVendor());
stmt.setString(4, deviceInfo.getOsVersion());
- stmt.setDouble(5, deviceInfo.getBatteryLevel());
- stmt.setDouble(6, deviceInfo.getInternalTotalMemory());
- stmt.setDouble(7, deviceInfo.getInternalAvailableMemory());
- stmt.setDouble(8, deviceInfo.getExternalTotalMemory());
- stmt.setDouble(9, deviceInfo.getExternalAvailableMemory());
- stmt.setString(10, deviceInfo.getConnectionType());
- stmt.setString(11, deviceInfo.getSsid());
- stmt.setDouble(12, deviceInfo.getCpuUsage());
- stmt.setDouble(13, deviceInfo.getTotalRAMMemory());
- stmt.setDouble(14, deviceInfo.getAvailableRAMMemory());
- stmt.setBoolean(15, deviceInfo.isPluggedIn());
- stmt.setLong(16, System.currentTimeMillis());
+ stmt.setString(5, deviceInfo.getOsBuildDate());
+ stmt.setDouble(6, deviceInfo.getBatteryLevel());
+ stmt.setDouble(7, deviceInfo.getInternalTotalMemory());
+ stmt.setDouble(8, deviceInfo.getInternalAvailableMemory());
+ stmt.setDouble(9, deviceInfo.getExternalTotalMemory());
+ stmt.setDouble(10, deviceInfo.getExternalAvailableMemory());
+ stmt.setString(11, deviceInfo.getConnectionType());
+ stmt.setString(12, deviceInfo.getSsid());
+ stmt.setDouble(13, deviceInfo.getCpuUsage());
+ stmt.setDouble(14, deviceInfo.getTotalRAMMemory());
+ stmt.setDouble(15, deviceInfo.getAvailableRAMMemory());
+ stmt.setBoolean(16, deviceInfo.isPluggedIn());
+ stmt.setLong(17, System.currentTimeMillis());
stmt.execute();
@@ -131,6 +132,7 @@ public class DeviceDetailsDAOImpl implements DeviceDetailsDAO {
deviceInfo.setDeviceModel(rs.getString("DEVICE_MODEL"));
deviceInfo.setVendor(rs.getString("VENDOR"));
deviceInfo.setOsVersion(rs.getString("OS_VERSION"));
+ deviceInfo.setOsBuildDate(rs.getString("OS_BUILD_DATE"));
deviceInfo.setBatteryLevel(rs.getDouble("BATTERY_LEVEL"));
deviceInfo.setInternalTotalMemory(rs.getDouble("INTERNAL_TOTAL_MEMORY"));
deviceInfo.setInternalAvailableMemory(rs.getDouble("INTERNAL_AVAILABLE_MEMORY"));
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/NotificationManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/NotificationManagementServiceImpl.java
index ffac513eca..59692da94d 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/NotificationManagementServiceImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/NotificationManagementServiceImpl.java
@@ -160,6 +160,19 @@ public class NotificationManagementServiceImpl implements NotificationManagement
}
}
+ @Override
+ public Notification getNotification(int notificationId) throws NotificationManagementException {
+ try {
+ NotificationManagementDAOFactory.openConnection();
+ return notificationDAO.getNotification(NotificationDAOUtil.getTenantId(), notificationId);
+ } catch (SQLException e) {
+ throw new NotificationManagementException("Error occurred while opening a connection to" +
+ " the data source", e);
+ } finally {
+ NotificationManagementDAOFactory.closeConnection();
+ }
+ }
+
@Override
public PaginationResult getAllNotifications(PaginationRequest request) throws NotificationManagementException {
PaginationResult paginationResult = new PaginationResult();
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/NotificationDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/NotificationDAO.java
index d2fc0efcb1..978d2cc3b7 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/NotificationDAO.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/NotificationDAO.java
@@ -71,6 +71,8 @@ public interface NotificationDAO {
*/
List getAllNotifications(int tenantId) throws NotificationManagementException;
+ Notification getNotification(int tenantId, int notificationId) throws NotificationManagementException;
+
List getAllNotifications(PaginationRequest request, int tenantId) throws NotificationManagementException;
int getNotificationCount(int tenantId) throws NotificationManagementException;
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/impl/NotificationDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/impl/NotificationDAOImpl.java
index 695832b3d2..608c5a4f2e 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/impl/NotificationDAOImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/notification/mgt/dao/impl/NotificationDAOImpl.java
@@ -70,6 +70,35 @@ public class NotificationDAOImpl implements NotificationDAO {
return notificationId;
}
+ @Override
+ public Notification getNotification(int tenantId, int notificationId) throws NotificationManagementException {
+ Connection conn;
+ PreparedStatement stmt = null;
+ ResultSet rs = null;
+ Notification notification = null;
+ try {
+ conn = NotificationManagementDAOFactory.getConnection();
+ String sql =
+ "SELECT NOTIFICATION_ID, OPERATION_ID, DESCRIPTION, STATUS FROM DM_NOTIFICATION WHERE " +
+ "TENANT_ID = ? AND NOTIFICATION_ID = ?";
+ stmt = conn.prepareStatement(sql);
+ stmt.setInt(1, tenantId);
+ stmt.setInt(2, notificationId);
+ rs = stmt.executeQuery();
+
+ while (rs.next()) {
+ notification = this.getNotification(rs);
+ }
+ } catch (SQLException e) {
+ throw new NotificationManagementException(
+ "Error occurred while retrieving information of all notifications", e);
+ } finally {
+ NotificationDAOUtil.cleanupResources(stmt, rs);
+ }
+ return notification;
+
+ }
+
@Override
public int updateNotification(Notification notification)
throws NotificationManagementException {
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/search/mgt/dao/impl/SearchDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/search/mgt/dao/impl/SearchDAOImpl.java
index fc162c59b9..1090e88c62 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/search/mgt/dao/impl/SearchDAOImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/search/mgt/dao/impl/SearchDAOImpl.java
@@ -79,6 +79,7 @@ public class SearchDAOImpl implements SearchDAO {
deviceInfo.setInternalAvailableMemory(rs.getDouble("INTERNAL_AVAILABLE_MEMORY"));
deviceInfo.setInternalTotalMemory(rs.getDouble("EXTERNAL_TOTAL_MEMORY"));
deviceInfo.setOsVersion(rs.getString("OS_VERSION"));
+ deviceInfo.setOsBuildDate(rs.getString("OS_BUILD_DATE"));
deviceInfo.setPluggedIn(rs.getBoolean("PLUGGED_IN"));
deviceInfo.setSsid(rs.getString("SSID"));
deviceInfo.setTotalRAMMemory(rs.getDouble("TOTAL_RAM_MEMORY"));
@@ -156,6 +157,7 @@ public class SearchDAOImpl implements SearchDAO {
deviceInfo.setInternalAvailableMemory(rs.getDouble("INTERNAL_AVAILABLE_MEMORY"));
deviceInfo.setInternalTotalMemory(rs.getDouble("EXTERNAL_TOTAL_MEMORY"));
deviceInfo.setOsVersion(rs.getString("OS_VERSION"));
+ deviceInfo.setOsBuildDate(rs.getString("OS_BUILD_DATE"));
deviceInfo.setPluggedIn(rs.getBoolean("PLUGGED_IN"));
deviceInfo.setSsid(rs.getString("SSID"));
deviceInfo.setTotalRAMMemory(rs.getDouble("TOTAL_RAM_MEMORY"));
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/search/mgt/impl/QueryBuilderImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/search/mgt/impl/QueryBuilderImpl.java
index 826e94d18c..b86e3c1bcc 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/search/mgt/impl/QueryBuilderImpl.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/search/mgt/impl/QueryBuilderImpl.java
@@ -192,7 +192,7 @@ public class QueryBuilderImpl implements QueryBuilder {
return "SELECT D.ID, D.DESCRIPTION, D.NAME, \n" +
"D.DEVICE_TYPE_ID, D.DEVICE_IDENTIFICATION, DT.ID AS DEVICE_TYPE_ID, \n" +
"DT.NAME AS DEVICE_TYPE_NAME, DD.DEVICE_ID, DD.DEVICE_MODEL, DD.VENDOR, \n" +
- "DD.OS_VERSION, DD.BATTERY_LEVEL, DD.INTERNAL_TOTAL_MEMORY, DD.INTERNAL_AVAILABLE_MEMORY,\n" +
+ "DD.OS_VERSION, DD.OS_BUILD_DATE, DD.BATTERY_LEVEL, DD.INTERNAL_TOTAL_MEMORY, DD.INTERNAL_AVAILABLE_MEMORY,\n" +
"DD.EXTERNAL_TOTAL_MEMORY, DD.EXTERNAL_AVAILABLE_MEMORY, DD.CONNECTION_TYPE, \n" +
"DD.SSID, DD.CPU_USAGE, DD.TOTAL_RAM_MEMORY, DD.AVAILABLE_RAM_MEMORY, \n" +
"DD.PLUGGED_IN, DD.UPDATE_TIMESTAMP, DL.LATITUDE, DL.LONGITUDE, DL.STREET1, DL.STREET2, DL.CITY, DL.ZIP, \n" +
@@ -211,7 +211,7 @@ public class QueryBuilderImpl implements QueryBuilder {
return "SELECT D.ID, D.DESCRIPTION, D.NAME, \n" +
"D.DEVICE_TYPE_ID, D.DEVICE_IDENTIFICATION, DT.ID AS DEVICE_TYPE_ID, \n" +
"DT.NAME AS DEVICE_TYPE_NAME, DD.DEVICE_ID, DD.DEVICE_MODEL, DD.VENDOR, \n" +
- "DD.OS_VERSION, DD.BATTERY_LEVEL, DD.INTERNAL_TOTAL_MEMORY, DD.INTERNAL_AVAILABLE_MEMORY,\n" +
+ "DD.OS_VERSION, DD.OS_BUILD_DATE, DD.BATTERY_LEVEL, DD.INTERNAL_TOTAL_MEMORY, DD.INTERNAL_AVAILABLE_MEMORY,\n" +
"DD.EXTERNAL_TOTAL_MEMORY, DD.EXTERNAL_AVAILABLE_MEMORY, DD.CONNECTION_TYPE, \n" +
"DD.SSID, DD.CPU_USAGE, DD.TOTAL_RAM_MEMORY, DD.AVAILABLE_RAM_MEMORY, \n" +
"DD.PLUGGED_IN, DD.UPDATE_TIMESTAMP, DL.LATITUDE, DL.LONGITUDE, DL.STREET1, DL.STREET2, DL.CITY, DL.ZIP, \n" +
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/search/mgt/impl/Utils.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/search/mgt/impl/Utils.java
index 4c73b33cf7..d28666ba88 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/search/mgt/impl/Utils.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/search/mgt/impl/Utils.java
@@ -35,6 +35,7 @@ public class Utils {
genericColumnsMap.put("deviceModel", "DEVICE_MODEL");
genericColumnsMap.put("vendor", "VENDOR");
genericColumnsMap.put("osVersion", "OS_VERSION");
+ genericColumnsMap.put("osBuildDate", "OS_BUILD_DATE");
genericColumnsMap.put("batteryLevel", "BATTERY_LEVEL");
genericColumnsMap.put("internalTotalMemory", "INTERNAL_TOTAL_MEMORY");
genericColumnsMap.put("internalAvailableMemory", "INTERNAL_AVAILABLE_MEMORY");
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/Search/util/Utils.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/Search/util/Utils.java
index 27b5f349c0..8cc205f210 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/Search/util/Utils.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/Search/util/Utils.java
@@ -52,6 +52,7 @@ public class Utils {
deviceInfo.setMobileSignalStrength(0.67);
deviceInfo.setOperator("Dialog");
deviceInfo.setOsVersion("Lolipop");
+ deviceInfo.setOsBuildDate("1467366458");
deviceInfo.setPluggedIn(true);
deviceInfo.setSsid("SSSSSS");
deviceInfo.setTotalRAMMemory(4.00);
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 f9062684ae..9b734652da 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
@@ -388,6 +388,7 @@ CREATE TABLE IF NOT EXISTS DM_APPLICATION (
IMAGE_URL VARCHAR(100) DEFAULT NULL,
APP_PROPERTIES BLOB NULL,
MEMORY_USAGE INTEGER(10) NULL,
+ IS_ACTIVE BOOLEAN NOT NULL DEFAULT FALSE,
TENANT_ID INTEGER NOT NULL,
PRIMARY KEY (ID)
);
@@ -468,6 +469,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_DETAIL (
DEVICE_MODEL VARCHAR(45) NULL,
VENDOR VARCHAR(45) NULL,
OS_VERSION VARCHAR(45) NULL,
+ OS_BUILD_DATE VARCHAR(100) NULL,
BATTERY_LEVEL DECIMAL(4) NULL,
INTERNAL_TOTAL_MEMORY DECIMAL(30,3) NULL,
INTERNAL_AVAILABLE_MEMORY DECIMAL(30,3) NULL,
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/constants.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/constants.js
index 2ede7f9c2d..890a7e500e 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/constants.js
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/modules/constants.js
@@ -33,6 +33,7 @@ var DEVICE_VENDOR = "vendor";
var DEVICE_MODEL = "model";
var DEVICE_PRODUCT = "PRODUCT";
var DEVICE_OS_VERSION = "osVersion";
+var DEVICE_OS_BUILD_DATE = "osBuildDate";
var DEVICE_PROPERTIES = "properties";
var DEVICE_ENROLLMENT_INFO = "enrolmentInfo";
var DEVICE_STATUS = "status";
diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementServiceComponent.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementServiceComponent.java
index 13711f43b0..0c456fce28 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementServiceComponent.java
+++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/internal/PolicyManagementServiceComponent.java
@@ -91,7 +91,7 @@ public class PolicyManagementServiceComponent {
DeviceConfigurationManager.getInstance().getDeviceManagementConfig().getPolicyConfiguration();
if(policyConfiguration.getMonitoringEnable()) {
TaskScheduleService taskScheduleService = new TaskScheduleServiceImpl();
- taskScheduleService.startTask(PolicyManagerUtil.getMonitoringFequency());
+ taskScheduleService.startTask(PolicyManagerUtil.getMonitoringFrequency());
}
} catch (Throwable t) {
diff --git a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java
index c0e587b857..0d80901d21 100644
--- a/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java
+++ b/components/policy-mgt/org.wso2.carbon.policy.mgt.core/src/main/java/org/wso2/carbon/policy/mgt/core/util/PolicyManagerUtil.java
@@ -196,7 +196,7 @@ public class PolicyManagerUtil {
}
- public static int getMonitoringFequency() throws PolicyManagementException {
+ public static int getMonitoringFrequency() throws PolicyManagementException {
PlatformConfigurationManagementService configMgtService = new PlatformConfigurationManagementServiceImpl();
PlatformConfiguration tenantConfiguration;
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 fe3d2de042..bf0be00ccc 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
@@ -392,6 +392,7 @@ CREATE TABLE IF NOT EXISTS DM_APPLICATION (
IMAGE_URL VARCHAR(100) DEFAULT NULL,
APP_PROPERTIES BLOB NULL,
MEMORY_USAGE INTEGER(10) NULL,
+ IS_ACTIVE BOOLEAN NOT NULL DEFAULT FALSE,
TENANT_ID INTEGER NOT NULL,
PRIMARY KEY (ID)
);
@@ -472,6 +473,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_DETAIL (
DEVICE_MODEL VARCHAR(45) NULL,
VENDOR VARCHAR(45) NULL,
OS_VERSION VARCHAR(45) NULL,
+ OS_BUILD_DATE VARCHAR(100) NULL,
BATTERY_LEVEL DECIMAL(4) NULL,
INTERNAL_TOTAL_MEMORY DECIMAL(30,3) NULL,
INTERNAL_AVAILABLE_MEMORY DECIMAL(30,3) NULL,
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/h2.sql b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/h2.sql
index fe3d2de042..bf0be00ccc 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/h2.sql
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/h2.sql
@@ -392,6 +392,7 @@ CREATE TABLE IF NOT EXISTS DM_APPLICATION (
IMAGE_URL VARCHAR(100) DEFAULT NULL,
APP_PROPERTIES BLOB NULL,
MEMORY_USAGE INTEGER(10) NULL,
+ IS_ACTIVE BOOLEAN NOT NULL DEFAULT FALSE,
TENANT_ID INTEGER NOT NULL,
PRIMARY KEY (ID)
);
@@ -472,6 +473,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_DETAIL (
DEVICE_MODEL VARCHAR(45) NULL,
VENDOR VARCHAR(45) NULL,
OS_VERSION VARCHAR(45) NULL,
+ OS_BUILD_DATE VARCHAR(100) NULL,
BATTERY_LEVEL DECIMAL(4) NULL,
INTERNAL_TOTAL_MEMORY DECIMAL(30,3) NULL,
INTERNAL_AVAILABLE_MEMORY DECIMAL(30,3) NULL,
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mssql.sql b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mssql.sql
index b810963921..a67d67f9e0 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mssql.sql
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mssql.sql
@@ -399,6 +399,7 @@ CREATE TABLE DM_APPLICATION (
IMAGE_URL VARCHAR(100) DEFAULT NULL,
APP_PROPERTIES VARBINARY(max) NULL,
MEMORY_USAGE INTEGER NULL,
+ IS_ACTIVE BIT NOT NULL DEFAULT 'FALSE',
TENANT_ID INTEGER NOT NULL,
PRIMARY KEY (ID)
);
@@ -485,6 +486,7 @@ CREATE TABLE DM_DEVICE_DETAIL (
DEVICE_MODEL VARCHAR(45) NULL,
VENDOR VARCHAR(45) NULL,
OS_VERSION VARCHAR(45) NULL,
+ OS_BUILD_DATE VARCHAR(100) NULL,
BATTERY_LEVEL DECIMAL(4) NULL,
INTERNAL_TOTAL_MEMORY DECIMAL(30,3) NULL,
INTERNAL_AVAILABLE_MEMORY DECIMAL(30,3) NULL,
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mysql.sql b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mysql.sql
index 651bb734e9..40535450ac 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mysql.sql
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mysql.sql
@@ -365,6 +365,7 @@ CREATE TABLE IF NOT EXISTS DM_APPLICATION (
IMAGE_URL VARCHAR(100) DEFAULT NULL,
APP_PROPERTIES BLOB NULL,
MEMORY_USAGE INTEGER(10) NULL,
+ IS_ACTIVE BOOLEAN NOT NULL DEFAULT FALSE,
TENANT_ID INTEGER NOT NULL,
PRIMARY KEY (ID)
)ENGINE = InnoDB;
@@ -506,6 +507,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_DETAIL (
DEVICE_MODEL VARCHAR(45) NULL,
VENDOR VARCHAR(45) NULL,
OS_VERSION VARCHAR(45) NULL,
+ OS_BUILD_DATE VARCHAR(100) NULL,
BATTERY_LEVEL DECIMAL(4) NULL,
INTERNAL_TOTAL_MEMORY DECIMAL(30,3) NULL,
INTERNAL_AVAILABLE_MEMORY DECIMAL(30,3) NULL,
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/oracle.sql b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/oracle.sql
index de8645df1f..41f539cee0 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/oracle.sql
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/oracle.sql
@@ -661,6 +661,7 @@ CREATE TABLE DM_APPLICATION (
IMAGE_URL VARCHAR2(100) DEFAULT NULL,
APP_PROPERTIES BLOB NULL,
MEMORY_USAGE NUMBER(10) NULL,
+ IS_ACTIVE NUMBER(10) DEFAULT 0 NOT NULL,
TENANT_ID NUMBER(10) NOT NULL,
CONSTRAINT PK_DM_APPLICATION PRIMARY KEY (ID)
)
@@ -824,6 +825,7 @@ CREATE TABLE DM_DEVICE_DETAIL (
DEVICE_MODEL VARCHAR2(45) NULL,
VENDOR VARCHAR2(45) NULL,
OS_VERSION VARCHAR2(45) NULL,
+ OS_BUILD_DATE VARCHAR(100) NULL,
BATTERY_LEVEL NUMBER(4) NULL,
INTERNAL_TOTAL_MEMORY NUMBER(30,3) NULL,
INTERNAL_AVAILABLE_MEMORY NUMBER(30,3) NULL,
diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/postgresql.sql b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/postgresql.sql
index 407c2cc155..c29d18e021 100644
--- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/postgresql.sql
+++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/postgresql.sql
@@ -341,6 +341,7 @@ CREATE TABLE IF NOT EXISTS DM_APPLICATION (
IMAGE_URL VARCHAR(100) DEFAULT NULL,
APP_PROPERTIES BYTEA NULL,
MEMORY_USAGE INTEGER NULL,
+ IS_ACTIVE BOOLEAN NOT NULL DEFAULT FALSE,
TENANT_ID INTEGER NOT NULL
);
@@ -415,6 +416,8 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_DETAIL (
DEVICE_MODEL VARCHAR(45) NULL,
VENDOR VARCHAR(45) NULL,
OS_VERSION VARCHAR(45) NULL,
+
+ OS_BUILD_DATE VARCHAR(100) NULL,
BATTERY_LEVEL DECIMAL(4) NULL,
INTERNAL_TOTAL_MEMORY DECIMAL(30,3) NULL,
INTERNAL_AVAILABLE_MEMORY DECIMAL(30,3) NULL,
diff --git a/features/oauth-extensions/pom.xml b/features/oauth-extensions/pom.xml
index 3fb7ebf607..2deaf76f43 100644
--- a/features/oauth-extensions/pom.xml
+++ b/features/oauth-extensions/pom.xml
@@ -31,7 +31,7 @@
oauth-extensions-feature
1.1.1-SNAPSHOT
pom
- WSO2 Carbon Device Management - OAuth Extensions Feature
+ WSO2 Carbon - Device Management OAuth Extensions Feature
http://wso2.org