diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.service.impl/pom.xml b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.service.impl/pom.xml
index ff7e3bfa1..0bd8a073e 100644
--- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.service.impl/pom.xml
+++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.service.impl/pom.xml
@@ -3,15 +3,14 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- device-mgt-iot-androidsense
+ androidsense-plugin
org.wso2.carbon.devicemgt-plugins
- 2.0.4-SNAPSHOT
+ 2.1.0-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.iot.androidsense.service.impl
- 2.0.4-SNAPSHOT
war
WSO2 Carbon - Android Sense API
WSO2 Carbon - Android Sense Service-API Implementation
@@ -98,7 +97,6 @@
org.wso2.carbon.devicemgt
org.wso2.carbon.device.mgt.analytics.data.publisher
- 1.1.0-SNAPSHOT
provided
diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.service.impl/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/transport/AndroidSenseMQTTConnector.java b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.service.impl/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/transport/AndroidSenseMQTTConnector.java
index ca6825b82..0b8f30e22 100644
--- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.service.impl/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/transport/AndroidSenseMQTTConnector.java
+++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.service.impl/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/transport/AndroidSenseMQTTConnector.java
@@ -141,6 +141,22 @@ public class AndroidSenseMQTTConnector extends MQTTTransportHandler {
String sensorName = null;
PrivilegedCarbonContext.startTenantFlow();
PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
+ DeviceManagementProviderService deviceManagementProviderService =
+ (DeviceManagementProviderService) ctx.getOSGiService(DeviceManagementProviderService.class, null);
+ if (deviceManagementProviderService != null) {
+ DeviceIdentifier identifier = new DeviceIdentifier(deviceId, AndroidSenseConstants.DEVICE_TYPE);
+ Device device = deviceManagementProviderService.getDevice(identifier);
+ if (device != null) {
+ String owner = device.getEnrolmentInfo().getOwner();
+ ctx.setUsername(owner);
+ ctx.setTenantDomain(MultitenantUtils.getTenantDomain(owner), true);
+ } else {
+ return;
+ }
+
+ } else {
+ return;
+ }
ctx.setTenantDomain("carbon.super", true);
for (SensorData sensor : sensorData) {
if (sensor.key.equals("battery")) {
@@ -254,6 +270,8 @@ public class AndroidSenseMQTTConnector extends MQTTTransportHandler {
}
} catch (JsonSyntaxException e) {
throw new TransportHandlerException("Invalid message format " + mqttMessage.toString());
+ } catch (DeviceManagementException e) {
+ throw new TransportHandlerException("Invalid device id " + deviceId);
} finally {
PrivilegedCarbonContext.endTenantFlow();
}
diff --git a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.plugin.impl/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/plugin/impl/ArduinoManagerService.java b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.plugin.impl/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/plugin/impl/ArduinoManagerService.java
index 15f1ff60c..19ea0b8c5 100644
--- a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.plugin.impl/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/plugin/impl/ArduinoManagerService.java
+++ b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.plugin.impl/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/plugin/impl/ArduinoManagerService.java
@@ -32,6 +32,7 @@ import java.util.List;
public class ArduinoManagerService implements DeviceManagementService {
private DeviceManager deviceManager;
+ private final static String DEVICE_TYPE_PROVIDER_DOMAIN = "carbon.super";
@Override
public String getType() {
@@ -40,7 +41,7 @@ public class ArduinoManagerService implements DeviceManagementService {
@Override
public String getProviderTenantDomain() {
- return "carbon.super";
+ return DEVICE_TYPE_PROVIDER_DOMAIN;
}
@Override
diff --git a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.service.impl/pom.xml b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.service.impl/pom.xml
index 5962d72b0..7cfd1810e 100644
--- a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.service.impl/pom.xml
+++ b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.service.impl/pom.xml
@@ -21,15 +21,14 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- device-mgt-iot-arduino
+ arduino-plugin
org.wso2.carbon.devicemgt-plugins
- 2.0.4-SNAPSHOT
+ 2.1.0-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.iot.arduino.service.impl
- 2.0.4-SNAPSHOT
war
WSO2 Carbon - IoT Server Arduino Service API
WSO2 Carbon - Arduino Service API Implementation
@@ -53,11 +52,6 @@
org.wso2.carbon.device.mgt.extensions
provided
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.apimgt.application.extension
- 1.1.0-SNAPSHOT
-
org.wso2.carbon.devicemgt
org.wso2.carbon.device.mgt.jwt.client.extension
@@ -90,7 +84,6 @@
org.wso2.carbon.devicemgt
org.wso2.carbon.device.mgt.analytics.data.publisher
- 1.1.0-SNAPSHOT
provided
@@ -162,11 +155,6 @@
jsr311-api
provided
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.apimgt.annotations
- provided
-
org.wso2.carbon.devicemgt
org.wso2.carbon.apimgt.webapp.publisher
diff --git a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/plugin/impl/DigitalDisplayManagerService.java b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/plugin/impl/DigitalDisplayManagerService.java
index 429694b41..593b16e91 100644
--- a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/plugin/impl/DigitalDisplayManagerService.java
+++ b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/plugin/impl/DigitalDisplayManagerService.java
@@ -30,6 +30,8 @@ import java.util.List;
public class DigitalDisplayManagerService implements DeviceManagementService{
private DeviceManager deviceManager;
+ private final static String DEVICE_TYPE_PROVIDER_DOMAIN = "carbon.super";
+
@Override
public String getType() {
return DigitalDisplayConstants.DEVICE_TYPE;
@@ -37,7 +39,7 @@ public class DigitalDisplayManagerService implements DeviceManagementService{
@Override
public String getProviderTenantDomain() {
- return "carbon.super";
+ return DEVICE_TYPE_PROVIDER_DOMAIN;
}
@Override
diff --git a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.service.impl/pom.xml b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.service.impl/pom.xml
index 25355cd3f..460a9f63f 100644
--- a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.service.impl/pom.xml
+++ b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.service.impl/pom.xml
@@ -4,15 +4,14 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- device-mgt-iot-digitaldisplay
+ digital-display-plugin
org.wso2.carbon.devicemgt-plugins
- 2.0.4-SNAPSHOT
+ 2.1.0-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.iot.digitaldisplay.service.impl
- 2.0.4-SNAPSHOT
war
WSO2 Carbon - IoT Server DigitalDisplay API
WSO2 Carbon - Digital Display Service API Implementation
@@ -49,23 +48,7 @@
org.wso2.carbon.devicemgt
- org.wso2.carbon.apimgt.application.extension
- 1.1.0-SNAPSHOT
-
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.device.mgt.jwt.client.extension
- provided
-
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.apimgt.application.extension
- provided
-
-
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.device.mgt.analytics
+ org.wso2.carbon.device.mgt.analytics.data.publisher
provided
diff --git a/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/plugin/impl/DroneAnalyzerManagerService.java b/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/plugin/impl/DroneAnalyzerManagerService.java
index 5af1a9008..3890febc1 100644
--- a/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/plugin/impl/DroneAnalyzerManagerService.java
+++ b/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/plugin/impl/DroneAnalyzerManagerService.java
@@ -29,9 +29,10 @@ import org.wso2.carbon.device.mgt.iot.droneanalyzer.plugin.constants.DroneConsta
import java.util.List;
-
public class DroneAnalyzerManagerService implements DeviceManagementService {
private DeviceManager deviceManager;
+ private final static String DEVICE_TYPE_PROVIDER_DOMAIN = "carbon.super";
+
@Override
public String getType() {
return DroneConstants.DEVICE_TYPE;
@@ -95,7 +96,7 @@ public class DroneAnalyzerManagerService implements DeviceManagementService {
@Override
public String getProviderTenantDomain() {
- return "carbon.super";
+ return DEVICE_TYPE_PROVIDER_DOMAIN;
}
@Override
diff --git a/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.service.impl/pom.xml b/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.service.impl/pom.xml
index c5ad56224..268b39771 100644
--- a/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.service.impl/pom.xml
+++ b/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.service.impl/pom.xml
@@ -1,14 +1,13 @@
- device-mgt-iot-droneanalyzer
+ drone-analyzer-plugin
org.wso2.carbon.devicemgt-plugins
- 2.0.4-SNAPSHOT
+ 2.1.0-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.iot.droneanalyzer.service.impl
- 2.0.4-SNAPSHOT
war
WSO2 Carbon - IoT Server Drone Analyzer API
http://maven.apache.org
@@ -35,7 +34,6 @@
org.wso2.carbon.devicemgt
org.wso2.carbon.device.mgt.analytics.data.publisher
- 1.1.0-SNAPSHOT
provided
@@ -229,11 +227,6 @@
org.wso2.carbon.device.mgt.extensions
provided
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.apimgt.application.extension
- 1.1.0-SNAPSHOT
-
org.wso2.carbon.devicemgt
org.wso2.carbon.device.mgt.jwt.client.extension
diff --git a/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.service.impl/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/util/DroneAnalyzerServiceUtils.java b/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.service.impl/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/util/DroneAnalyzerServiceUtils.java
index 4b01bd8d6..12f2d0716 100644
--- a/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.service.impl/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/util/DroneAnalyzerServiceUtils.java
+++ b/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.service.impl/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/util/DroneAnalyzerServiceUtils.java
@@ -30,7 +30,6 @@ import java.io.File;
public class DroneAnalyzerServiceUtils {
- private static final String SUPER_TENANT = "carbon.super";
private static org.apache.commons.logging.Log log = LogFactory.getLog(DroneAnalyzerServiceUtils.class);
public static void sendCommandViaXMPP(String deviceOwner, String deviceId, String resource,
diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/api/DeviceUsageDTO.java b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/api/DeviceUsageDTO.java
deleted file mode 100644
index 222f00d41..000000000
--- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/api/DeviceUsageDTO.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2015, 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.iot.api;
-
-public class DeviceUsageDTO {
-
- private String time;
- private String value;
-
- public String getTime() {
- return time;
- }
-
- public void setTime(String time) {
- this.time = time;
- }
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
-
-}
diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/api/DevicesManagerService.java b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/api/DevicesManagerService.java
index e1f8431bc..ee5333b69 100644
--- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/api/DevicesManagerService.java
+++ b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/api/DevicesManagerService.java
@@ -20,12 +20,7 @@ package org.wso2.carbon.device.mgt.iot.api;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.context.CarbonContext;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.device.mgt.common.Device;
-import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
-import org.wso2.carbon.device.mgt.common.DeviceManagementException;
-import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
+import org.wso2.carbon.device.mgt.common.*;
import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
import org.wso2.carbon.device.mgt.common.license.mgt.License;
import org.wso2.carbon.device.mgt.core.dto.DeviceType;
@@ -33,56 +28,20 @@ import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
import org.wso2.carbon.device.mgt.iot.exception.DeviceControllerException;
import org.wso2.carbon.device.mgt.iot.sensormgt.SensorDataManager;
import org.wso2.carbon.device.mgt.iot.sensormgt.SensorRecord;
-
-import javax.jws.WebService;
-import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
+import org.wso2.carbon.device.mgt.iot.util.APIUtil;
+import javax.ws.rs.*;
import javax.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
-@WebService public class DevicesManagerService {
-
- private static Log log = LogFactory.getLog(DevicesManagerService.class);
-
- @Context //injected response proxy supporting multiple thread
- private HttpServletResponse response;
-
- private PrivilegedCarbonContext ctx;
- private DeviceManagementProviderService getServiceProvider() {
- String tenantDomain = CarbonContext.getThreadLocalCarbonContext().getTenantDomain();
- PrivilegedCarbonContext.startTenantFlow();
- ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
- ctx.setTenantDomain(tenantDomain, true);
- if (log.isDebugEnabled()) {
- log.debug("Getting thread local carbon context for tenant domain: " + tenantDomain);
- }
- return (DeviceManagementProviderService) ctx.getOSGiService(DeviceManagementProviderService.class, null);
- }
+public class DevicesManagerService {
- private void endTenantFlow() {
- PrivilegedCarbonContext.endTenantFlow();
- ctx = null;
- if (log.isDebugEnabled()) {
- log.debug("Tenant flow ended");
- }
- }
+ private static final Log log = LogFactory.getLog(DevicesManagerService.class);
- private Device[] getActiveDevices(List devices){
+ private Device[] getActiveDevices(List devices) {
List activeDevices = new ArrayList<>();
if (devices != null) {
for (Device device : devices) {
@@ -94,29 +53,27 @@ import java.util.List;
return activeDevices.toArray(new Device[activeDevices.size()]);
}
- @Path("/device/user/{username}/all")
+ @Path("/devices/users/{userName}")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public Device[] getDevicesOfUser(@PathParam("username") String username) {
+ public Response getDevicesOfUser(@PathParam("userName") String userName) {
try {
- List devices = this.getServiceProvider().getDevicesOfUser(username);
- return this.getActiveDevices(devices);
+ List devices = APIUtil.getDeviceManagementService()
+ .getDevicesOfUser(userName);
+ Device[] devicesArr = this.getActiveDevices(devices);
+ return Response.status(Response.Status.OK).entity(devicesArr).build();
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/user/{username}/all/count")
+ @Path("/devices/users/{userName}/count")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public int getDeviceCount(@PathParam("username") String username){
+ public Response getDeviceCount(@PathParam("userName") String userName) {
try {
- List devices = this.getServiceProvider().getDevicesOfUser(username);
+ List devices = APIUtil.getDeviceManagementService()
+ .getDevicesOfUser(userName);
if (devices != null) {
List activeDevices = new ArrayList<>();
for (Device device : devices) {
@@ -124,191 +81,182 @@ import java.util.List;
activeDevices.add(device);
}
}
- return activeDevices.size();
+ return Response.status(Response.Status.OK).entity(activeDevices.size()).build();
}
- return 0;
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return 0;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/{type}/identifier/{identifier}")
+ @Path("/devices/{deviceType}/{identifier}")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public Device getDevice(@PathParam("type") String type, @PathParam("identifier") String identifier){
+ public Response getDevice(@PathParam("deviceType") String deviceType,
+ @PathParam("identifier") String identifier) {
- try{
+ try {
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
deviceIdentifier.setId(identifier);
- deviceIdentifier.setType(type);
- return this.getServiceProvider().getDevice(deviceIdentifier);
+ deviceIdentifier.setType(deviceType);
+ Device device = APIUtil.getDeviceManagementService().getDevice(
+ deviceIdentifier);
+ if (device != null) {
+ return Response.status(Response.Status.OK).entity(device).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/all")
+ @Path("/devices/types")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public DeviceType[] getDeviceTypes(){
- try{
- List deviceTypes = this.getServiceProvider().getAvailableDeviceTypes();
- return deviceTypes.toArray(new DeviceType[deviceTypes.size()]);
+ public Response getDeviceTypes() {
+ try {
+ List deviceTypes = APIUtil.getDeviceManagementService()
+ .getAvailableDeviceTypes();
+ DeviceType[] deviceTypesArr = deviceTypes.toArray(new DeviceType[deviceTypes.size()]);
+ return Response.status(Response.Status.OK).entity(deviceTypesArr).build();
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/{type}/all")
+ @Path("/devices/{deviceType}")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public Device[] getAllDevices(@PathParam("type") String type){
- try{
- List devices = this.getServiceProvider().getAllDevices(type);
- return this.getActiveDevices(devices);
+ public Response getAllDevices(@PathParam("deviceType") String deviceType) {
+ try {
+ List devices = APIUtil.getDeviceManagementService()
+ .getAllDevices(deviceType);
+ Device[] devicesArr = this.getActiveDevices(devices);
+ return Response.status(Response.Status.OK).entity(devicesArr).build();
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/all")
+ @Path("/devices")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public Device[] getAllDevices(){
- try{
- List devices = this.getServiceProvider().getAllDevices();
- return this.getActiveDevices(devices);
+ public Response getAllDevices() {
+ try {
+ List devices = APIUtil.getDeviceManagementService()
+ .getAllDevices();
+ return Response.status(Response.Status.OK).entity(this.getActiveDevices(devices)).build();
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/{type}/config")
+ @Path("/devices/{deviceType}/config")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public TenantConfiguration getConfiguration(@PathParam("type") String type){
+ public Response getConfiguration(@PathParam("deviceType") String deviceType) {
try {
- return this.getServiceProvider().getConfiguration(type);
+ TenantConfiguration tenantConfiguration = APIUtil.getDeviceManagementService().getConfiguration(deviceType);
+ if (tenantConfiguration != null) {
+ return Response.status(Response.Status.OK).entity(tenantConfiguration).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/role/{role}/all")
+ @Path("/devices/search/role")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public Device[] getAllDevicesOfRole(@PathParam("role") String roleName){
- try{
- List devices = this.getServiceProvider().getAllDevicesOfRole(roleName);
- return this.getActiveDevices(devices);
+ public Response getAllDevicesOfRole(@QueryParam("roleName") String roleName) {
+ try {
+ List devices = APIUtil.getDeviceManagementService()
+ .getAllDevicesOfRole(roleName);
+ Device[] devicesArr = this.getActiveDevices(devices);
+ return Response.status(Response.Status.OK).entity(devicesArr).build();
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/name/{name}/all")
+ @Path("/devices/search/name")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public Device[] getDevicesByName(@PathParam("name") String name) {
- try{
- List devices = this.getServiceProvider().getDevicesByName(name);
- return this.getActiveDevices(devices);
+ public Response getDevicesByName(@PathParam("deviceName") String deviceName) {
+ try {
+ List devices = APIUtil.getDeviceManagementService()
+ .getDevicesByName(deviceName);
+ Device[] devicesArr = this.getActiveDevices(devices);
+ return Response.status(Response.Status.OK).entity(devicesArr).build();
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/{type}/identifier/{identifier}/status")
+ @Path("/devices/{deviceType}/{identifier}/status")
@PUT
@Consumes("application/json")
@Produces("application/json")
- void updateDeviceEnrolmentInfo(@PathParam("type") String type, @PathParam("identifier") String identifier,
- @FormParam("status") EnrolmentInfo.Status status) {
- DeviceManagementProviderService providerService = this.getServiceProvider();
- DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
- deviceIdentifier.setType(type);
- deviceIdentifier.setId(identifier);
+ public Response updateDeviceEnrolmentInfo(@PathParam("deviceType") String deviceType,
+ @PathParam("identifier") String identifier,
+ @FormParam("status") EnrolmentInfo.Status status) {
try {
+ DeviceManagementProviderService providerService = APIUtil.getDeviceManagementService();
+ DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
+ deviceIdentifier.setType(deviceType);
+ deviceIdentifier.setId(identifier);
Device device = providerService.getDevice(deviceIdentifier);
providerService.updateDeviceEnrolmentInfo(device, status);
+ return Response.status(Response.Status.NO_CONTENT).build();
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/status/{status}/all")
+ @Path("/devices/search/status")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public Device[] getDevicesByStatus(@PathParam("status") EnrolmentInfo.Status status) {
- try{
- List devices = this.getServiceProvider().getDevicesByStatus(status);
- return this.getActiveDevices(devices);
+ public Response getDevicesByStatus(@QueryParam("status") EnrolmentInfo.Status status) {
+ try {
+ List devices = APIUtil.getDeviceManagementService()
+ .getDevicesByStatus(status);
+ Device[] devicesArr = this.getActiveDevices(devices);
+ return Response.status(Response.Status.OK).entity(devicesArr).build();
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/{type}/license")
+ @Path("/devices/{deviceType}/license")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public License getLicense(@PathParam("type") String type, @QueryParam("languageCode") String languageCode) {
- try{
- return this.getServiceProvider().getLicense(type, languageCode);
+ public Response getLicense(@PathParam("deviceType") String deviceType,
+ @QueryParam("languageCode") String languageCode) {
+ try {
+ License license = APIUtil.getDeviceManagementService().getLicense(
+ deviceType, languageCode);
+ if (license != null) {
+ return Response.status(Response.Status.OK).entity(license).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/{type}/license")
+ @Path("/devices/{deviceType}/license")
@POST
- @Consumes("application/json")
@Produces("application/json")
- public void addLicense(@PathParam("type") String type, @FormParam("provider") String provider,
- @FormParam("name") String name, @FormParam("version") String version,
- @FormParam("language") String language, @FormParam("validFrom") Date validFrom,
- @FormParam("validTo") Date validTo, @FormParam("text") String text) {
- try{
+ public Response addLicense(@PathParam("deviceType") String deviceType,
+ @FormParam("provider") String provider, @FormParam("name") String name,
+ @FormParam("version") String version, @FormParam("language") String language,
+ @FormParam("validFrom") Date validFrom, @FormParam("validTo") Date validTo,
+ @FormParam("text") String text) {
+ try {
License license = new License();
license.setProvider(provider);
license.setName(name);
@@ -317,26 +265,27 @@ import java.util.List;
license.setValidFrom(validFrom);
license.setValidTo(validTo);
license.setText(text);
- this.getServiceProvider().addLicense(type, license);
+ APIUtil.getDeviceManagementService().addLicense(deviceType, license);
+ return Response.status(Response.Status.NO_CONTENT).build();
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/{type}/identifier/{identifier}")
+ @Path("/devices/{deviceType}/{identifier}/enrollment")
@PUT
- @Consumes("application/json")
@Produces("application/json")
- boolean modifyEnrollment(@PathParam("type") String type, @PathParam("identifier") String identifier,
- @FormParam("name") String name, @FormParam("description") String description,
- @FormParam("enrollmentId") int enrollmentId,
- @FormParam("dateOfEnrolment") long dateOfEnrolment,
- @FormParam("dateOfLastUpdate") long dateOfLastUpdate,
- @FormParam("ownership") EnrolmentInfo.OwnerShip ownership,
- @FormParam("status") EnrolmentInfo.Status status,
- @FormParam("owner") String owner) {
+ public Response modifyEnrollment(@PathParam("deviceType") String deviceType,
+ @PathParam("identifier") String identifier,
+ @FormParam("name") String name,
+ @FormParam("description") String description,
+ @FormParam("groupId") int groupId,
+ @FormParam("enrollmentId") int enrollmentId,
+ @FormParam("dateOfEnrolment") long dateOfEnrolment,
+ @FormParam("dateOfLastUpdate") long dateOfLastUpdate,
+ @FormParam("ownership") EnrolmentInfo.OwnerShip ownership,
+ @FormParam("status") EnrolmentInfo.Status status,
+ @FormParam("owner") String owner) {
EnrolmentInfo enrolmentInfo = new EnrolmentInfo();
enrolmentInfo.setId(enrollmentId);
@@ -347,33 +296,36 @@ import java.util.List;
enrolmentInfo.setOwner(owner);
Device device = new Device();
- device.setType(type);
+ device.setType(deviceType);
device.setDeviceIdentifier(identifier);
device.setName(name);
device.setDescription(description);
device.setEnrolmentInfo(enrolmentInfo);
try {
- return this.getServiceProvider().modifyEnrollment(device);
+ boolean isModified = APIUtil.getDeviceManagementService()
+ .modifyEnrollment(device);
+ if (isModified) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device")
+ @Path("/devices/{deviceType}/{identifier}/enrollment")
@POST
- @Consumes("application/json")
@Produces("application/json")
- boolean enrollDevice(@FormParam("type") String type, @FormParam("identifier") String identifier,
- @FormParam("name") String name, @FormParam("description") String description,
- @FormParam("enrollmentId") int enrollmentId,
- @FormParam("dateOfEnrolment") long dateOfEnrolment,
- @FormParam("dateOfLastUpdate") long dateOfLastUpdate,
- @FormParam("ownership") EnrolmentInfo.OwnerShip ownership,
- @FormParam("status") EnrolmentInfo.Status status,
- @FormParam("owner") String owner) {
+ public Response enrollDevice(@PathParam("deviceType") String deviceType, @PathParam("identifier") String identifier,
+ @FormParam("name") String name, @FormParam("description") String description,
+ @FormParam("groupId") int groupId,
+ @FormParam("enrollmentId") int enrollmentId,
+ @FormParam("dateOfEnrolment") long dateOfEnrolment,
+ @FormParam("dateOfLastUpdate") long dateOfLastUpdate,
+ @FormParam("ownership") EnrolmentInfo.OwnerShip ownership,
+ @FormParam("status") EnrolmentInfo.Status status,
+ @FormParam("owner") String owner) {
EnrolmentInfo enrolmentInfo = new EnrolmentInfo();
enrolmentInfo.setId(enrollmentId);
@@ -384,197 +336,232 @@ import java.util.List;
enrolmentInfo.setOwner(owner);
Device device = new Device();
- device.setType(type);
+ device.setType(deviceType);
device.setDeviceIdentifier(identifier);
device.setName(name);
device.setDescription(description);
device.setEnrolmentInfo(enrolmentInfo);
try {
- return this.getServiceProvider().enrollDevice(device);
+ boolean isModified = APIUtil.getDeviceManagementService().enrollDevice(
+ device);
+ if (isModified) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/tenantconfiguration")
+ @Path("/devices/tenant/configuration")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public TenantConfiguration getConfiguration(){
+ public Response getTenantConfiguration() {
try {
- return this.getServiceProvider().getConfiguration();
+ TenantConfiguration tenantConfiguration = APIUtil.getDeviceManagementService().getConfiguration();
+ if (tenantConfiguration != null) {
+ return Response.status(Response.Status.OK).entity(tenantConfiguration).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/tenantconfiguration")
+ @Path("/devices/tenant/configuration")
@POST
- @Consumes("application/json")
@Produces("application/json")
- public boolean saveConfiguration(@FormParam("tenantConfiguration") TenantConfiguration tenantConfiguration){
+ public Response saveTenantConfiguration(@FormParam("tenantConfiguration") TenantConfiguration tenantConfiguration) {
try {
- return this.getServiceProvider().saveConfiguration(tenantConfiguration);
+ boolean isSaved = APIUtil.getDeviceManagementService()
+ .saveConfiguration(tenantConfiguration);
+ if (isSaved) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/{type}/identifier/{identifier}")
+ @Path("/devices/{deviceType}/{identifier}")
@DELETE
- @Consumes("application/json")
@Produces("application/json")
- public boolean disenrollDevice(@PathParam("type") String type, @PathParam("identifier") String identifier){
+ public Response disenrollDevice(@PathParam("deviceType") String deviceType,
+ @PathParam("identifier") String identifier) {
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
- deviceIdentifier.setType(type);
+ deviceIdentifier.setType(deviceType);
deviceIdentifier.setId(identifier);
try {
- return this.getServiceProvider().disenrollDevice(deviceIdentifier);
+ boolean isDisEnrolled = APIUtil.getDeviceManagementService()
+ .disenrollDevice(deviceIdentifier);
+ if (isDisEnrolled) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/{type}/identifier/{identifier}/enrolled")
+ @Path("/devices/{deviceType}/{identifier}/enrollment")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public boolean isEnrolled(@PathParam("type") String type, @PathParam("identifier") String identifier){
+ public Response isEnrolled(@PathParam("deviceType") String deviceType,
+ @PathParam("identifier") String identifier) {
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
- deviceIdentifier.setType(type);
+ deviceIdentifier.setType(deviceType);
deviceIdentifier.setId(identifier);
try {
- return this.getServiceProvider().isEnrolled(deviceIdentifier);
+ boolean isEnrolled = APIUtil.getDeviceManagementService().isEnrolled(
+ deviceIdentifier);
+ if (isEnrolled) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/{type}/identifier/{identifier}/active")
+
+ @Path("/devices/{deviceType}/{identifier}/status")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public boolean isActive(@PathParam("type") String type, @PathParam("identifier") String identifier){
+ public Response isActive(@PathParam("deviceType") String deviceType,
+ @PathParam("identifier") String identifier) {
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
- deviceIdentifier.setType(type);
+ deviceIdentifier.setType(deviceType);
deviceIdentifier.setId(identifier);
try {
- return this.getServiceProvider().isActive(deviceIdentifier);
+ boolean isActive = APIUtil.getDeviceManagementService().isActive(
+ deviceIdentifier);
+ if (isActive) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/{type}/identifier/{identifier}/active")
+ @Path("/devices/{deviceType}/{identifier}/status")
@PUT
@Consumes("application/json")
@Produces("application/json")
- public boolean setActive(@PathParam("type") String type, @PathParam("identifier") String identifier,
- @FormParam("status") boolean status){
+ public Response changeDeviceStatus(@PathParam("deviceType") String deviceType,
+ @PathParam("identifier") String identifier,
+ @FormParam("status") boolean status) {
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
- deviceIdentifier.setType(type);
+ deviceIdentifier.setType(deviceType);
deviceIdentifier.setId(identifier);
try {
- return this.getServiceProvider().setActive(deviceIdentifier, status);
+ boolean isActivated = APIUtil.getDeviceManagementService().setActive(
+ deviceIdentifier, status);
+ if (isActivated) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/{type}/identifier/{identifier}/ownership")
+ @Path("/devices/{deviceType}/{identifier}/ownership")
@PUT
@Consumes("application/json")
@Produces("application/json")
- public boolean setOwnership(@PathParam("type") String type, @PathParam("identifier") String identifier,
- @FormParam("ownership") String ownership){
+ public Response setOwnership(@PathParam("deviceType") String deviceType,
+ @PathParam("identifier") String identifier,
+ @FormParam("ownership") String ownership) {
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
- deviceIdentifier.setType(type);
+ deviceIdentifier.setType(deviceType);
deviceIdentifier.setId(identifier);
try {
- return this.getServiceProvider().setOwnership(deviceIdentifier, ownership);
+ boolean isOwnershipChanged = APIUtil.getDeviceManagementService()
+ .setOwnership(deviceIdentifier, ownership);
+ if (isOwnershipChanged) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/{type}/identifier/{identifier}/status")
+ @Path("/devices/{deviceType}/{identifier}/enrollment/status")
@PUT
@Consumes("application/json")
@Produces("application/json")
- public boolean setStatus(@PathParam("type") String type, @PathParam("identifier") String identifier,
- @FormParam("owner") String owner, @FormParam("status") EnrolmentInfo.Status status){
+ public Response setStatus(@PathParam("deviceType") String deviceType,
+ @PathParam("identifier") String identifier, @FormParam("owner") String owner,
+ @FormParam("status") EnrolmentInfo.Status status) {
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
- deviceIdentifier.setType(type);
+ deviceIdentifier.setType(deviceType);
deviceIdentifier.setId(identifier);
try {
- return this.getServiceProvider().setStatus(deviceIdentifier, owner, status);
+ boolean isStatusChanged = APIUtil.getDeviceManagementService()
+ .setStatus(deviceIdentifier, owner, status);
+ if (isStatusChanged) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (DeviceManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/{type}/identifier/{identifier}/sensor/{sensorName}")
+ @Path("/devices/{deviceType}/{identifier}/sensors/{sensorName}")
@POST
@Consumes("application/json")
@Produces("application/json")
- public boolean setSensorValue(@PathParam("type") String type, @PathParam("identifier") String deviceId,
- @PathParam("sensorName") String sensorName,
- @HeaderParam("sensorValue") String sensorValue){
-
- try {
- return SensorDataManager.getInstance().setSensorRecord(deviceId, sensorName, sensorValue, Calendar
- .getInstance().getTimeInMillis());
- } finally {
- this.endTenantFlow();
+ public Response setSensorValue(@PathParam("deviceType") String deviceType,
+ @PathParam("identifier") String deviceId,
+ @PathParam("sensorName") String sensorName,
+ @FormParam("sensorValue") String sensorValue) {
+ boolean isValueSet = SensorDataManager.getInstance().setSensorRecord(deviceId, sensorName,
+ sensorValue, Calendar.getInstance().getTimeInMillis());
+ if (isValueSet) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/device/type/{type}/identifier/{identifier}/sensor/{sensorName}")
+ @Path("/devices/{deviceType}/{identifier}/sensors/{sensorName}")
@GET
@Consumes("application/json")
@Produces("application/json")
- public SensorRecord getSensorValue(@PathParam("type") String type, @PathParam("identifier") String deviceId,
- @PathParam("sensorName") String sensorName, @HeaderParam("defaultValue") String defaultValue){
+ public Response getSensorValue(@PathParam("deviceType") String deviceType,
+ @PathParam("identifier") String deviceId,
+ @PathParam("sensorName") String sensorName,
+ @QueryParam("defaultValue") String defaultValue) {
try {
- return SensorDataManager.getInstance().getSensorRecord(deviceId, sensorName);
+ SensorRecord sensorRecord = SensorDataManager.getInstance().getSensorRecord(deviceId, sensorName);
+ if (sensorRecord != null) {
+ return Response.status(Response.Status.OK).entity(sensorRecord).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (DeviceControllerException e) {
log.error("Error on reading sensor value: " + e.getMessage());
- if(defaultValue != null){
- return new SensorRecord(defaultValue, Calendar.getInstance().getTimeInMillis());
- }else{
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
+ if (defaultValue != null) {
+ SensorRecord sensorRecord = new SensorRecord(defaultValue,
+ Calendar.getInstance().getTimeInMillis());
+ return Response.status(Response.Status.OK).entity(sensorRecord).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- } finally {
- this.endTenantFlow();
}
}
-}
+}
\ No newline at end of file
diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/api/GroupManagerService.java b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/api/GroupManagerService.java
index 335a3c79e..2776534d9 100644
--- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/api/GroupManagerService.java
+++ b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/api/GroupManagerService.java
@@ -21,21 +21,16 @@ package org.wso2.carbon.device.mgt.iot.api;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.context.CarbonContext;
import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.Device;
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.group.mgt.DeviceGroup;
import org.wso2.carbon.device.mgt.common.group.mgt.GroupManagementException;
import org.wso2.carbon.device.mgt.common.group.mgt.GroupUser;
import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService;
+import org.wso2.carbon.device.mgt.iot.util.APIUtil;
import org.wso2.carbon.device.mgt.iot.util.ResponsePayload;
-import javax.jws.WebService;
-import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
@@ -45,12 +40,10 @@ import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import java.util.Date;
import java.util.List;
-@WebService
public class GroupManagerService {
private static final String DEFAULT_ADMIN_ROLE = "admin";
@@ -69,46 +62,21 @@ public class GroupManagerService {
private static Log log = LogFactory.getLog(GroupManagerService.class);
- @Context //injected response proxy supporting multiple threads
- private HttpServletResponse response;
- private PrivilegedCarbonContext ctx;
-
- private GroupManagementProviderService getServiceProvider() {
- String tenantDomain = CarbonContext.getThreadLocalCarbonContext().getTenantDomain();
- String username = CarbonContext.getThreadLocalCarbonContext().getUsername();
- PrivilegedCarbonContext.startTenantFlow();
- ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
- ctx.setTenantDomain(tenantDomain, true);
- if (log.isDebugEnabled()) {
- log.debug("Getting thread local carbon context for tenant domain: " + tenantDomain);
- }
- return (GroupManagementProviderService) ctx.getOSGiService(GroupManagementProviderService.class, null);
- }
-
- private void endTenantFlow() {
- PrivilegedCarbonContext.endTenantFlow();
- ctx = null;
- if (log.isDebugEnabled()) {
- log.debug("Tenant flow ended");
- }
- }
-
- @Path("/group")
+ @Path("/groups")
@POST
- @Consumes("application/json")
@Produces("application/json")
- public Response createGroup(@FormParam("name") String name,
- @FormParam("username") String username,
- @FormParam("description") String description) {
+ public Response createGroup(@FormParam("groupName") String groupName,
+ @FormParam("userName") String username,
+ @FormParam("description") String description) {
DeviceGroup group = new DeviceGroup();
- group.setName(name);
+ group.setName(username);
group.setDescription(description);
group.setOwner(username);
group.setDateOfCreation(new Date().getTime());
group.setDateOfLastUpdate(new Date().getTime());
boolean isAdded = false;
try {
- GroupManagementProviderService groupManagementService = this.getServiceProvider();
+ GroupManagementProviderService groupManagementService = APIUtil.getGroupManagementProviderService();
int groupId = groupManagementService.createGroup(group, DEFAULT_ADMIN_ROLE, DEFAULT_ADMIN_PERMISSIONS);
if (groupId == -2) {
ResponsePayload responsePayload = new ResponsePayload();
@@ -134,451 +102,374 @@ public class GroupManagerService {
}
} catch (GroupManagementException e) {
return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- } finally {
- this.endTenantFlow();
}
}
- @Path("/group/id/{groupId}")
+ @Path("/groups/{groupId}")
@PUT
- @Consumes("application/json")
@Produces("application/json")
- public boolean updateGroup(@PathParam("groupId") int groupId, @FormParam("name") String name,
- @FormParam("username") String username,
- @FormParam("description") String description) {
- if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/modify")) {
- response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
- return false;
- }
+ public Response updateGroup(@PathParam("groupId") int groupId, @FormParam("groupName") String groupName,
+ @FormParam("userName") String userName,
+ @FormParam("description") String description) {
try {
- GroupManagementProviderService groupManagementService = this.getServiceProvider();
+ GroupManagementProviderService groupManagementService = APIUtil.getGroupManagementProviderService();
DeviceGroup group = groupManagementService.getGroup(groupId);
- group.setName(name);
+ group.setName(groupName);
group.setDescription(description);
- group.setOwner(username);
+ group.setOwner(userName);
group.setDateOfLastUpdate(new Date().getTime());
- response.setStatus(Response.Status.OK.getStatusCode());
+ Response.status(Response.Status.OK.getStatusCode());
groupManagementService.updateGroup(group);
- return true;
+ return Response.status(Response.Status.NO_CONTENT).build();
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
log.error(e.getErrorMessage(), e);
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/group/id/{groupId}")
+ @Path("/groups/{groupId}")
@DELETE
- @Consumes("application/json")
@Produces("application/json")
- public boolean deleteGroup(@PathParam("groupId") int groupId,
- @QueryParam("username") String username) {
- if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/delete")) {
- response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
- return false;
+ public Response deleteGroup(@PathParam("groupId") int groupId, @QueryParam("userName") String userName) {
+
+ if (!checkAuthorize(getCurrentUserName(), groupId, "/permission/device-mgt/admin/groups/delete")) {
+ return Response.status(Response.Status.FORBIDDEN).build();
}
- boolean isDeleted = false;
+
try {
- response.setStatus(Response.Status.OK.getStatusCode());
- isDeleted = this.getServiceProvider().deleteGroup(groupId);
+ boolean isDeleted = APIUtil.getGroupManagementProviderService().deleteGroup(
+ groupId);
+ if (isDeleted) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage());
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- return isDeleted;
}
- @Path("/group/id/{groupId}")
+ @Path("/groups/{groupId}")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public DeviceGroup getGroup(@PathParam("groupId") int groupId,
- @FormParam("username") String username) {
- DeviceGroup deviceGroup = null;
+ public Response getGroup(@PathParam("groupId") int groupId) {
try {
- response.setStatus(Response.Status.OK.getStatusCode());
- deviceGroup = this.getServiceProvider().getGroup(groupId);
+ DeviceGroup deviceGroup = APIUtil.getGroupManagementProviderService().getGroup(
+ groupId);
+ if (deviceGroup != null) {
+ return Response.status(Response.Status.OK).entity(deviceGroup).build();
+ } else {
+ return Response.status(Response.Status.NOT_FOUND).build();
+ }
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- return deviceGroup;
}
- @Path("/group/name/{groupName}")
+ @Path("/groups/search")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public DeviceGroup[] findGroups(@PathParam("groupName") String groupName,
- @FormParam("username") String username) {
- DeviceGroup[] deviceGroups = null;
+ public Response findGroups(@QueryParam("groupName") String groupName,
+ @QueryParam("userName") String userName) {
try {
- List groups = this.getServiceProvider().findInGroups(groupName, username);
- deviceGroups = new DeviceGroup[groups.size()];
- response.setStatus(Response.Status.OK.getStatusCode());
+ List groups = APIUtil.getGroupManagementProviderService()
+ .findInGroups(groupName, userName);
+ DeviceGroup[] deviceGroups = new DeviceGroup[groups.size()];
groups.toArray(deviceGroups);
+ return Response.status(Response.Status.OK).entity(deviceGroups).build();
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- return deviceGroups;
}
- @Path("/group/user/{username}/all")
+ @Path("/groups")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public DeviceGroup[] getGroups(@PathParam("username") String username,
- @QueryParam("permission") String permission) {
- DeviceGroup[] deviceGroups = null;
+ public Response getGroups(@QueryParam("userName") String userName,
+ @QueryParam("permission") String permission) {
try {
- GroupManagementProviderService groupManagementService = this.getServiceProvider();
+ GroupManagementProviderService groupManagementService = APIUtil.getGroupManagementProviderService();
List groups;
if (permission != null) {
- groups = groupManagementService.getGroups(username, permission);
+ groups = groupManagementService.getGroups(userName, permission);
} else {
- groups = groupManagementService.getGroups(username);
+ groups = groupManagementService.getGroups(userName);
}
- deviceGroups = new DeviceGroup[groups.size()];
- response.setStatus(Response.Status.OK.getStatusCode());
+ DeviceGroup[] deviceGroups = new DeviceGroup[groups.size()];
groups.toArray(deviceGroups);
+ return Response.status(Response.Status.OK).entity(deviceGroups).build();
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- return deviceGroups;
}
- @Path("/group/user/{username}/all/count")
+ @Path("/groups/count")
@GET
- @Consumes("application/json")
@Produces("application/json")
- public int getGroupCount(@PathParam("username") String username) {
- int count = -1;
+ public Response getGroupCount(@QueryParam("userName") String userName) {
try {
- response.setStatus(Response.Status.OK.getStatusCode());
- count = this.getServiceProvider().getGroupCount(username);
+ int count = APIUtil.getGroupManagementProviderService().getGroupCount(userName);
+ return Response.status(Response.Status.OK).entity(count).build();
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- return count;
}
- @Path("/group/id/{groupId}/share")
- @POST
- @Consumes("application/json")
+ @Path("/groups/{groupId}/share")
+ @PUT
@Produces("application/json")
- public boolean shareGroup(@FormParam("username") String username,
- @FormParam("shareUser") String shareUser,
- @PathParam("groupId") int groupId,
- @FormParam("role") String sharingRole) {
- if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/share")) {
- response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
- return false;
+ public Response shareGroup(@FormParam("userName") String userName,
+ @FormParam("shareUser") String shareUser, @PathParam("groupId") int groupId,
+ @FormParam("roleName") String sharingRole) {
+ if (!checkAuthorize(getCurrentUserName(), groupId, "/permission/device-mgt/admin/groups/share")) {
+ return Response.status(Response.Status.FORBIDDEN).build();
}
- boolean isShared = false;
+
try {
- response.setStatus(Response.Status.OK.getStatusCode());
- isShared = this.getServiceProvider().shareGroup(shareUser, groupId, sharingRole);
+ boolean isShared = APIUtil.getGroupManagementProviderService().shareGroup(
+ shareUser, groupId, sharingRole);
+ if (isShared) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- return isShared;
}
- @Path("/group/id/{groupId}/unshare")
- @POST
- @Consumes("application/json")
+ @Path("/groups/{groupId}/unshare")
+ @PUT
@Produces("application/json")
- public boolean unShareGroup(@FormParam("username") String username,
- @FormParam("unShareUser") String unShareUser,
- @PathParam("groupId") int groupId,
- @FormParam("role") String sharingRole) {
- if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/share")) {
- response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
- return false;
+ public Response unShareGroup(@FormParam("userName") String userName,
+ @FormParam("unShareUser") String unShareUser,
+ @PathParam("groupId") int groupId,
+ @FormParam("roleName") String sharingRole) {
+ if (!checkAuthorize(getCurrentUserName(), groupId, "/permission/device-mgt/admin/groups/share")) {
+ return Response.status(Response.Status.FORBIDDEN).build();
}
- boolean isUnShared = false;
+
try {
- response.setStatus(Response.Status.OK.getStatusCode());
- isUnShared = this.getServiceProvider().unshareGroup(unShareUser, groupId, sharingRole);
+ boolean isUnShared = APIUtil.getGroupManagementProviderService().unshareGroup(
+ unShareUser, groupId, sharingRole);
+ if (isUnShared) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- return isUnShared;
}
- @Path("/group/id/{groupId}/role")
- @POST
- @Consumes("application/json")
+ @Path("/groups/{groupId}/share/roles/{roleName}/permissions")
+ @PUT
@Produces("application/json")
- public boolean addSharing(@FormParam("username") String username,
- @PathParam("groupId") int groupId,
- @FormParam("role") String roleName,
- @FormParam("permissions") String[] permissions) {
- if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/share")) {
- response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
- return false;
+ public Response addSharing(@QueryParam("userName") String userName, @PathParam("groupId") int groupId,
+ @PathParam("roleName") String roleName,
+ @FormParam("permissions") String[] permissions) {
+ if (!checkAuthorize(getCurrentUserName(), groupId, "/permission/device-mgt/admin/groups/share")) {
+ return Response.status(Response.Status.FORBIDDEN).build();
}
- boolean isAdded = false;
+
try {
- response.setStatus(Response.Status.OK.getStatusCode());
- isAdded = this.getServiceProvider().addGroupSharingRole(username, groupId, roleName, permissions);
+ boolean isAdded = APIUtil.getGroupManagementProviderService().addGroupSharingRole(
+ userName, groupId, roleName, permissions);
+ if (isAdded) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- return isAdded;
}
- @Path("/group/id/{groupId}/role/{role}")
@DELETE
- @Consumes("application/json")
+ @Path("/groups/{groupId}/share/roles/{roleName}/permissions")
@Produces("application/json")
- public boolean removeSharing(@QueryParam("username") String username,
- @PathParam("groupId") int groupId,
- @PathParam("role") String roleName) {
- if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/share")) {
- response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
- }
- boolean isRemoved = false;
- try {
- response.setStatus(Response.Status.OK.getStatusCode());
- isRemoved = this.getServiceProvider().removeGroupSharingRole(groupId, roleName);
- } catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ public Response removeSharing(@QueryParam("userName") String userName, @PathParam("groupId") int groupId,
+ @PathParam("roleName") String roleName) {
+ if (!checkAuthorize(getCurrentUserName(), groupId, "/permission/device-mgt/admin/groups/share")) {
+ return Response.status(Response.Status.FORBIDDEN).build();
}
- return isRemoved;
- }
- @Path("/group/id/{groupId}/role/all")
- @GET
- @Consumes("application/json")
- @Produces("application/json")
- public String[] getRoles(@PathParam("groupId") int groupId) {
- String[] rolesArray = null;
try {
- List roles = this.getServiceProvider().getRoles(groupId);
- rolesArray = new String[roles.size()];
- response.setStatus(Response.Status.OK.getStatusCode());
- roles.toArray(rolesArray);
+ boolean isRemoved = APIUtil.getGroupManagementProviderService().removeGroupSharingRole(
+ groupId, roleName);
+ if (isRemoved) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- return rolesArray;
}
- @Path("/group/id/{groupId}/{user}/role/all")
@GET
- @Consumes("application/json")
+ @Path("/groups/{groupId}/share/roles")
@Produces("application/json")
- public String[] getRoles(@PathParam("user") String user, @PathParam("groupId") int groupId) {
- String[] rolesArray = null;
+ public Response getRoles(@PathParam("groupId") int groupId, @QueryParam("userName") String userName) {
try {
- List roles = this.getServiceProvider().getRoles(user, groupId);
- rolesArray = new String[roles.size()];
- response.setStatus(Response.Status.OK.getStatusCode());
+ List roles;
+ if (userName != null && !userName.isEmpty()) {
+ roles = APIUtil.getGroupManagementProviderService().getRoles(userName,
+ groupId);
+ } else {
+ roles = APIUtil.getGroupManagementProviderService().getRoles(groupId);
+ }
+ String[] rolesArray = new String[roles.size()];
roles.toArray(rolesArray);
+ return Response.status(Response.Status.OK).entity(rolesArray).build();
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- return rolesArray;
}
- @Path("/group/id/{groupId}/user/all")
@GET
- @Consumes("application/json")
+ @Path("/groups/{groupId}/users")
@Produces("application/json")
- public GroupUser[] getUsers(@PathParam("groupId") int groupId) {
- GroupUser[] usersArray = null;
+ public Response getUsers(@PathParam("groupId") int groupId) {
try {
- List users = this.getServiceProvider().getUsers(groupId);
- usersArray = new GroupUser[users.size()];
- response.setStatus(Response.Status.OK.getStatusCode());
+ List users = APIUtil.getGroupManagementProviderService().getUsers(
+ groupId);
+ GroupUser[] usersArray = new GroupUser[users.size()];
users.toArray(usersArray);
+ return Response.status(Response.Status.OK).entity(usersArray).build();
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- return usersArray;
}
- @Path("/group/id/{groupId}/device/all")
@GET
- @Consumes("application/json")
+ @Path("/groups/{groupId}/devices/all")
@Produces("application/json")
- public Device[] getDevices(@PathParam("groupId") int groupId) {
- Device[] deviceArray = null;
+ public Response getDevices(@PathParam("groupId") int groupId) {
try {
- List devices = this.getServiceProvider().getDevices(groupId);
- deviceArray = new Device[devices.size()];
- response.setStatus(Response.Status.OK.getStatusCode());
+ List devices = APIUtil.getGroupManagementProviderService().getDevices(
+ groupId);
+ Device[] deviceArray = new Device[devices.size()];
devices.toArray(deviceArray);
+ return Response.status(Response.Status.OK).entity(deviceArray).build();
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- return deviceArray;
}
- @Path("/group/id/{groupId}/device/count")
@GET
- @Consumes("application/json")
+ @Path("/groups/{groupId}/devices/count")
@Produces("application/json")
- public int getDeviceCount(@PathParam("groupId") int groupId) {
+ public Response getDeviceCount(@PathParam("groupId") int groupId) {
try {
- return this.getServiceProvider().getDeviceCount(groupId);
+ int count = APIUtil.getGroupManagementProviderService().getDeviceCount(groupId);
+ return Response.status(Response.Status.OK).entity(count).build();
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- return -1;
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @Path("/group/id/{groupId}/device")
- @GET
- @Consumes("application/json")
- @Produces("application/json")
- public List getDevices(@PathParam("groupId") int groupId,
- @QueryParam("index") int index,
- @QueryParam("limit") int limit) {
- try {
- PaginationRequest request = new PaginationRequest(index, limit);
- return this.getServiceProvider().getDevices(groupId, request);
- } catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- return null;
- } finally {
- this.endTenantFlow();
- }
- }
-
- @Path("/group/id/{groupId}/device/assign")
@PUT
- @Consumes("application/json")
+ @Path("/groups/{groupId}/devices/{deviceType}/{deviceId}")
@Produces("application/json")
- public boolean addDevice(@PathParam("groupId") int groupId,
- @FormParam("deviceId") String deviceId,
- @FormParam("deviceType") String deviceType,
- @FormParam("username") String username) {
- if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/add_devices")) {
- response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
- return false;
+ public Response addDevice(@PathParam("groupId") int groupId, @PathParam("deviceId") String deviceId,
+ @PathParam("deviceType") String deviceType,
+ @FormParam("userName") String userName) {
+ if (!checkAuthorize(getCurrentUserName(), groupId,
+ "/permission/device-mgt/admin/groups/add_devices")) {
+ return Response.status(Response.Status.FORBIDDEN).build();
}
- boolean isAdded = false;
try {
DeviceIdentifier deviceIdentifier = new DeviceIdentifier(deviceId, deviceType);
- response.setStatus(Response.Status.OK.getStatusCode());
- isAdded = this.getServiceProvider().addDevice(deviceIdentifier, groupId);
+ boolean isAdded = APIUtil.getGroupManagementProviderService().addDevice(
+ deviceIdentifier, groupId);
+ if (isAdded) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- return isAdded;
}
- @Path("/group/id/{groupId}/device/assign")
@DELETE
- @Consumes("application/json")
+ @Path("/groups/{groupId}/devices/{deviceType}/{deviceId}")
@Produces("application/json")
- public boolean removeDevice(@PathParam("groupId") int groupId,
- @FormParam("deviceId") String deviceId,
- @FormParam("deviceType") String deviceType,
- @FormParam("username") String username) {
- if (!isAuthorized(username, groupId, "/permission/device-mgt/admin/groups/remove_devices")) {
- response.setStatus(Response.Status.FORBIDDEN.getStatusCode());
- return false;
+ public Response removeDevice(@PathParam("groupId") int groupId, @PathParam("deviceId") String deviceId,
+ @PathParam("deviceType") String deviceType) {
+ if (!checkAuthorize(getCurrentUserName(), groupId,
+ "/permission/device-mgt/admin/groups/remove_devices")) {
+ return Response.status(Response.Status.FORBIDDEN).build();
}
- boolean isRemoved = false;
try {
DeviceIdentifier deviceIdentifier = new DeviceIdentifier(deviceId, deviceType);
- response.setStatus(Response.Status.OK.getStatusCode());
- isRemoved = this.getServiceProvider().removeDevice(deviceIdentifier, groupId);
+ boolean isRemoved = APIUtil.getGroupManagementProviderService().removeDevice(
+ deviceIdentifier, groupId);
+ if (isRemoved) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- return isRemoved;
}
- @Path("/group/id/{groupId}/user/{username}/permissions")
@GET
- @Consumes("application/json")
+ @Path("/groups/{groupId}/users/{userName}/permissions")
@Produces("application/json")
- public String[] getPermissions(@PathParam("username") String username,
+ public Response getPermissions(@PathParam("userName") String userName,
@PathParam("groupId") int groupId) {
- String[] permissions = null;
try {
- response.setStatus(Response.Status.OK.getStatusCode());
- permissions = this.getServiceProvider().getPermissions(username, groupId);
+ String[] permissions = APIUtil.getGroupManagementProviderService()
+ .getPermissions(userName, groupId);
+ return Response.status(Response.Status.OK).entity(permissions).build();
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- return permissions;
}
- @Path("/group/id/{groupId}/user/{username}/authorized")
@GET
- @Consumes("application/json")
+ @Path("/groups/{groupId}/users/{userName}/authorized")
@Produces("application/json")
- public boolean isAuthorized(@PathParam("username") String username,
- @PathParam("groupId") int groupId,
- @QueryParam("permission") String permission) {
- boolean isAuthorized = false;
+ public Response isAuthorized(@PathParam("userName") String userName, @PathParam("groupId") int groupId,
+ @QueryParam("permission") String permission) {
+ boolean isAuthorized = checkAuthorize(userName, groupId, permission);
+ if (isAuthorized) {
+ return Response.status(Response.Status.OK).build();
+ } else {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
+ }
+
+ private boolean checkAuthorize(String userName, int groupId, String permission) {
try {
- response.setStatus(Response.Status.OK.getStatusCode());
- isAuthorized = this.getServiceProvider().isAuthorized(username, groupId, permission);
+ return APIUtil.getGroupManagementProviderService().isAuthorized(userName, groupId, permission);
} catch (GroupManagementException e) {
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- log.error(e.getErrorMessage(), e);
- } finally {
- this.endTenantFlow();
+ log.error(e.getMessage(), e);
+ return false;
}
- return isAuthorized;
}
-}
+ private String getCurrentUserName() {
+ return PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername();
+ }
+
+}
\ No newline at end of file
diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/api/PolicyManagementService.java b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/api/PolicyManagementService.java
index 702ea89ed..d9a928457 100644
--- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/api/PolicyManagementService.java
+++ b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/api/PolicyManagementService.java
@@ -24,6 +24,7 @@ import org.wso2.carbon.context.CarbonContext;
import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
+import org.wso2.carbon.device.mgt.iot.util.APIUtil;
import org.wso2.carbon.policy.mgt.common.Policy;
import org.wso2.carbon.policy.mgt.common.PolicyAdministratorPoint;
import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
@@ -40,190 +41,108 @@ import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import java.util.List;
-@WebService
public class PolicyManagementService {
- private static Log log = LogFactory.getLog(PolicyManagementService.class);
-
- @Context //injected response proxy supporting multiple thread
- private HttpServletResponse response;
-
- private PrivilegedCarbonContext ctx;
-
- private PolicyManagerService getPolicyServiceProvider() throws DeviceManagementException {
- String tenantDomain = CarbonContext.getThreadLocalCarbonContext().getTenantDomain();
- PrivilegedCarbonContext.startTenantFlow();
- ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
- ctx.setTenantDomain(tenantDomain, true);
-
- if (log.isDebugEnabled()) {
- log.debug("Getting thread local carbon context for tenant domain: " + tenantDomain);
- }
-
- PolicyManagerService policyManagerService = (PolicyManagerService) ctx.getOSGiService(
- PolicyManagerService.class, null);
-
- if (policyManagerService == null) {
- String msg = "Policy Management service not initialized";
- log.error(msg);
- throw new DeviceManagementException(msg);
- }
-
- return policyManagerService;
- }
-
- private void endTenantFlow() {
- PrivilegedCarbonContext.endTenantFlow();
- ctx = null;
- if (log.isDebugEnabled()) {
- log.debug("Tenant flow ended");
- }
- }
+ private static final Log log = LogFactory.getLog(PolicyManagementService.class);
@POST
- @Path("/inactive-policy")
+ @Path("/policies/inactive")
@Produces("application/json")
- public boolean addPolicy(Policy policy) {
-
- try {
- PolicyManagerService policyManagerService = getPolicyServiceProvider();
- PolicyAdministratorPoint pap = policyManagerService.getPAP();
- pap.addPolicy(policy);
- response.setStatus(Response.Status.CREATED.getStatusCode());
- if (log.isDebugEnabled()) {
- log.debug("Policy has been added successfully.");
- }
- return true;
- } catch (PolicyManagementException e) {
- String error = "Policy Management related exception.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } catch (DeviceManagementException e) {
- String error = "Error occurred while invoking Policy Management Service.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
- }
+ public Response addInactivePolicy(@FormParam("policy") Policy policy) {
+ return addPolicy(policy);
}
@POST
- @Path("/active-policy")
+ @Path("/policies/active")
@Produces("application/json")
- public boolean addActivePolicy(Policy policy) {
-
+ public Response addActivePolicy(@FormParam("policy") Policy policy) {
policy.setActive(true);
+ return addPolicy(policy);
+ }
+ private Response addPolicy(Policy policy) {
try {
- PolicyManagerService policyManagerService = getPolicyServiceProvider();
+ PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
PolicyAdministratorPoint pap = policyManagerService.getPAP();
pap.addPolicy(policy);
- response.setStatus(Response.Status.CREATED.getStatusCode());
if (log.isDebugEnabled()) {
log.debug("Policy has been added successfully.");
}
- return true;
- } catch (PolicyManagementException e) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } catch (PolicyManagementException e) {
String error = "Policy Management related exception.";
log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } catch (DeviceManagementException e) {
- String error = "Error occurred while invoking Policy Management Service.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
@GET
+ @Path("/policies")
@Produces("application/json")
- public Policy[] getAllPolicies() {
+ public Response getAllPolicies() {
+
try {
- PolicyManagerService policyManagerService = getPolicyServiceProvider();
+ PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
PolicyAdministratorPoint policyAdministratorPoint = policyManagerService.getPAP();
List policies = policyAdministratorPoint.getPolicies();
- return policyAdministratorPoint.getPolicies().toArray(new Policy[policies.size()]);
- } catch (PolicyManagementException e) {
+ Policy[] policyArr = policyAdministratorPoint.getPolicies().toArray(new Policy[policies.size()]);
+ return Response.status(Response.Status.OK).entity(policyArr).build();
+ } catch (PolicyManagementException e) {
String error = "Policy Management related exception";
log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } catch (DeviceManagementException e) {
- String error = "Error occurred while invoking Policy Management Service.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
@GET
+ @Path("/policies/{policyId}")
@Produces("application/json")
- @Path("/{id}")
- public Policy getPolicy(@PathParam("id") int policyId) {
+ public Response getPolicy(@PathParam("policyId") int policyId) {
+
try {
- PolicyManagerService policyManagerService = getPolicyServiceProvider();
+ PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
PolicyAdministratorPoint policyAdministratorPoint = policyManagerService.getPAP();
Policy policy = policyAdministratorPoint.getPolicy(policyId);
if (policy != null) {
if (log.isDebugEnabled()) {
log.debug("Sending policy for ID " + policyId);
}
- return policy;
+ return Response.status(Response.Status.OK).entity(policy).build();
} else {
log.error("Policy for ID " + policyId + " not found.");
- response.setStatus(Response.Status.NOT_FOUND.getStatusCode());
- return null;
+ return Response.status(Response.Status.NOT_FOUND).build();
}
- } catch (PolicyManagementException e) {
+ } catch (PolicyManagementException e) {
String error = "Policy Management related exception";
log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } catch (DeviceManagementException e) {
- String error = "Error occurred while invoking Policy Management Service.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
@GET
- @Path("/count")
- public int getPolicyCount() {
+ @Path("/policies/inactive/count")
+ @Produces("application/json")
+ public Response getPolicyCount() {
+
try {
- PolicyManagerService policyManagerService = getPolicyServiceProvider();
+ PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
PolicyAdministratorPoint policyAdministratorPoint = policyManagerService.getPAP();
- return policyAdministratorPoint.getPolicyCount();
- } catch (PolicyManagementException e) {
+ int policyCount = policyAdministratorPoint.getPolicyCount();
+ return Response.status(Response.Status.OK).entity(policyCount).build();
+ } catch (PolicyManagementException e) {
String error = "Policy Management related exception";
log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return -1;
- } catch (DeviceManagementException e) {
- String error = "Error occurred while invoking Policy Management Service.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return -1;
- } finally {
- this.endTenantFlow();
- }
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
}
@PUT
- @Path("/{id}")
+ @Path("/policies/{policyId}")
@Produces("application/json")
- public boolean updatePolicy(Policy policy, @PathParam("id") int policyId) {
+ public Response updatePolicy(@FormParam("policy") Policy policy, @PathParam("policyId") int policyId) {
+
try {
- PolicyManagerService policyManagerService = getPolicyServiceProvider();
+ PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
PolicyAdministratorPoint pap = policyManagerService.getPAP();
Policy previousPolicy = pap.getPolicy(policyId);
policy.setProfile(pap.getProfile(previousPolicy.getProfileId()));
@@ -232,64 +151,49 @@ public class PolicyManagementService {
if (log.isDebugEnabled()) {
log.debug("Policy with ID " + policyId + " has been updated successfully.");
}
- return true;
- } catch (PolicyManagementException e) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } catch (PolicyManagementException e) {
String error = "Policy Management related exception";
log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } catch (DeviceManagementException e) {
- String error = "Error occurred while invoking Policy Management Service.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
@PUT
- @Path("/priorities")
+ @Path("/policies/priorities")
@Consumes("application/json")
@Produces("application/json")
- public boolean updatePolicyPriorities(List priorityUpdatedPolicies) {
+ public Response updatePolicyPriorities(@FormParam("policies") List priorityUpdatedPolicies) {
+
try {
- PolicyManagerService policyManagerService = getPolicyServiceProvider();
+ PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
PolicyAdministratorPoint pap = policyManagerService.getPAP();
boolean policiesUpdated = pap.updatePolicyPriorities(priorityUpdatedPolicies);
if (policiesUpdated) {
if (log.isDebugEnabled()) {
log.debug("Policy Priorities successfully updated.");
}
- return true;
+ return Response.status(Response.Status.NO_CONTENT).build();
} else {
if (log.isDebugEnabled()) {
log.debug("Policy priorities did not update. Bad Request.");
}
- response.setStatus(Response.Status.BAD_REQUEST.getStatusCode());
- return false;
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
- } catch (PolicyManagementException e) {
+ } catch (PolicyManagementException e) {
String error = "Exception in updating policy priorities.";
log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } catch (DeviceManagementException e) {
- String error = "Error occurred while invoking Policy Management Service.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
@DELETE
- @Path("/{id}")
+ @Path("/policies/{policyId}")
@Produces("application/json")
- public boolean deletePolicy(@PathParam("id") int policyId) {
+ public Response deletePolicy(@PathParam("policyId") int policyId) {
+
try {
- PolicyManagerService policyManagerService = getPolicyServiceProvider();
+ PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
PolicyAdministratorPoint pap = policyManagerService.getPAP();
Policy policy = pap.getPolicy(policyId);
boolean policyDeleted = pap.deletePolicy(policy);
@@ -297,211 +201,156 @@ public class PolicyManagementService {
if (log.isDebugEnabled()) {
log.debug("Policy by id:" + policyId + " has been successfully deleted.");
}
- return true;
+ return Response.status(Response.Status.OK).build();
} else {
if (log.isDebugEnabled()) {
log.debug("Policy by id:" + policyId + " does not exist.");
}
- response.setStatus(Response.Status.NOT_FOUND.getStatusCode());
- return false;
+ return Response.status(Response.Status.NOT_FOUND).build();
}
- } catch (PolicyManagementException e) {
+ } catch (PolicyManagementException e) {
String error = "Exception in deleting policy by id:" + policyId;
log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } catch (DeviceManagementException e) {
- String error = "Error occurred while invoking Policy Management Service.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
@PUT
+ @Path("/policies/{policyId}/activate")
@Produces("application/json")
- @Path("/activate/{id}")
- public boolean activatePolicy(@PathParam("id") int policyId) {
+ public Response activatePolicy(@PathParam("policyId") int policyId) {
+
try {
- PolicyManagerService policyManagerService = getPolicyServiceProvider();
+ PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
PolicyAdministratorPoint pap = policyManagerService.getPAP();
pap.activatePolicy(policyId);
if (log.isDebugEnabled()) {
log.debug("Policy by id:" + policyId + " has been successfully activated.");
}
- return true;
- } catch (PolicyManagementException e) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } catch (PolicyManagementException e) {
String error = "Exception in activating policy by id:" + policyId;
log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } catch (DeviceManagementException e) {
- String error = "Error occurred while invoking Policy Management Service.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
@PUT
+ @Path("/policies/{policyId}/inactivate")
@Produces("application/json")
- @Path("/inactivate/{id}")
- public boolean inactivatePolicy(@PathParam("id") int policyId) {
+ public Response inactivatePolicy(@PathParam("policyId") int policyId) {
try {
- PolicyManagerService policyManagerService = getPolicyServiceProvider();
+ PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
PolicyAdministratorPoint pap = policyManagerService.getPAP();
pap.inactivatePolicy(policyId);
if (log.isDebugEnabled()) {
log.debug("Policy by id:" + policyId + " has been successfully inactivated.");
}
- return true;
- } catch (PolicyManagementException e) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } catch (PolicyManagementException e) {
String error = "Exception in inactivating policy by id:" + policyId;
log.error(error, e);
- return false;
- } catch (DeviceManagementException e) {
- String error = "Error occurred while invoking Policy Management Service.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
@PUT
+ @Path("/policies/publish-changes")
@Produces("application/json")
- @Path("/apply-changes")
- public boolean applyChanges() {
+ public Response publishChanges() {
try {
- PolicyManagerService policyManagerService = getPolicyServiceProvider();
+ PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
PolicyAdministratorPoint pap = policyManagerService.getPAP();
pap.publishChanges();
if (log.isDebugEnabled()) {
log.debug("Changes have been successfully updated.");
}
- return true;
- } catch (PolicyManagementException e) {
+ return Response.status(Response.Status.NO_CONTENT).build();
+ } catch (PolicyManagementException e) {
String error = "Exception in applying changes.";
log.error(error, e);
- return false;
- } catch (DeviceManagementException e) {
- String error = "Error occurred while invoking Policy Management Service.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @GET
- @Path("/start-task/{milliseconds}")
- public boolean startTaskService(@PathParam("milliseconds") int monitoringFrequency) {
+ @PUT
+ @Path("/policies/monitor-task/start")
+ @Produces("application/json")
+ public Response startTaskService(@FormParam("milliseconds") int monitoringFrequency) {
try {
- PolicyManagerService policyManagerService = getPolicyServiceProvider();
+ PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
TaskScheduleService taskScheduleService = policyManagerService.getTaskScheduleService();
taskScheduleService.startTask(monitoringFrequency);
if (log.isDebugEnabled()) {
log.debug("Policy monitoring service started successfully.");
}
- return true;
+ return Response.status(Response.Status.NO_CONTENT).build();
} catch (PolicyMonitoringTaskException e) {
String error = "Policy Management related exception.";
log.error(error, e);
- return false;
- } catch (DeviceManagementException e) {
- String error = "Error occurred while invoking Policy Management Service.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @GET
- @Path("/update-task/{milliseconds}")
- public boolean updateTaskService(@PathParam("milliseconds") int monitoringFrequency) {
+ @PUT
+ @Path("/policies/monitor-task/update")
+ @Produces("application/json")
+ public Response updateTaskService(@FormParam("milliseconds") int monitoringFrequency) {
try {
- PolicyManagerService policyManagerService = getPolicyServiceProvider();
+ PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();;
TaskScheduleService taskScheduleService = policyManagerService.getTaskScheduleService();
taskScheduleService.updateTask(monitoringFrequency);
if (log.isDebugEnabled()) {
log.debug("Policy monitoring service updated successfully.");
}
- return true;
+ return Response.status(Response.Status.NO_CONTENT).build();
} catch (PolicyMonitoringTaskException e) {
String error = "Policy Management related exception.";
log.error(error, e);
- return false;
- } catch (DeviceManagementException e) {
- String error = "Error occurred while invoking Policy Management Service.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}
- @GET
- @Path("/stop-task")
- public boolean stopTaskService() {
-
+ @PUT
+ @Path("/policies/monitor-task/stop")
+ @Produces("application/json")
+ public Response stopTaskService() {
try {
- PolicyManagerService policyManagerService = getPolicyServiceProvider();
+ PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
TaskScheduleService taskScheduleService = policyManagerService.getTaskScheduleService();
taskScheduleService.stopTask();
if (log.isDebugEnabled()) {
log.debug("Policy monitoring service stopped successfully.");
}
- return true;
+ return Response.status(Response.Status.NO_CONTENT).build();
} catch (PolicyMonitoringTaskException e) {
String error = "Policy Management related exception.";
log.error(error, e);
- return false;
- } catch (DeviceManagementException e) {
- String error = "Error occurred while invoking Policy Management Service.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return false;
- } finally {
- this.endTenantFlow();
- }
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
}
@GET
- @Path("/{type}/{id}")
- public ComplianceData getComplianceDataOfDevice(@PathParam("id") String deviceId,
- @PathParam("type") String deviceType) {
+ @Path("/policies/compliance/{deviceType}/{deviceId}")
+ @Produces("application/json")
+ public Response getComplianceDataOfDevice(@PathParam("deviceId") String deviceId,
+ @PathParam("deviceType") String deviceType) {
try {
- PolicyManagerService policyManagerService = getPolicyServiceProvider();
+ PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();
DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
deviceIdentifier.setType(deviceType);
deviceIdentifier.setId(deviceId);
- return policyManagerService.getDeviceCompliance(deviceIdentifier);
- } catch (PolicyComplianceException e) {
+ ComplianceData complianceData = policyManagerService.getDeviceCompliance(deviceIdentifier);
+ return Response.status(Response.Status.OK).entity(complianceData).build();
+ } catch (PolicyComplianceException e) {
String error = "Error occurred while getting the compliance data.";
log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } catch (DeviceManagementException e) {
- String error = "Error occurred while invoking Policy Management Service.";
- log.error(error, e);
- response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
- return null;
- } finally {
- this.endTenantFlow();
- }
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
+ }
}
-}
+}
\ No newline at end of file
diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/util/APIUtil.java b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/util/APIUtil.java
index 7228b1b73..e18324d12 100644
--- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/util/APIUtil.java
+++ b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/util/APIUtil.java
@@ -23,6 +23,7 @@ import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService;
+import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
/**
* This class provides utility functions used by REST-API.
@@ -53,4 +54,16 @@ public class APIUtil {
}
return deviceManagementProviderService;
}
+
+ public static PolicyManagerService getPolicyManagerService() {
+ PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
+ PolicyManagerService policyManagerService =
+ (PolicyManagerService) ctx.getOSGiService(PolicyManagerService.class, null);
+ if (policyManagerService == null) {
+ String msg = "Policy management service has not initialized.";
+ log.error(msg);
+ throw new IllegalStateException(msg);
+ }
+ return policyManagerService;
+ }
}
diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/pom.xml b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/pom.xml
index 76bc21a38..0a8f3b296 100644
--- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/pom.xml
+++ b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/pom.xml
@@ -84,7 +84,8 @@
org.wso2.carbon.device.mgt.common.*,
org.eclipse.paho.client.mqttv3.*;version="${eclipse.paho.version}",
javax.ws.rs.core,
- javax.xml
+ javax.xml;resolution:=optional,
+ javax.net.ssl;resolution:=optional
!org.wso2.carbon.device.mgt.iot.internal,
diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/controlqueue/xmpp/XmppServerClient.java b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/controlqueue/xmpp/XmppServerClient.java
index 55c86707d..d0d6f15f2 100644
--- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/controlqueue/xmpp/XmppServerClient.java
+++ b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/controlqueue/xmpp/XmppServerClient.java
@@ -33,7 +33,6 @@ import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.wso2.carbon.device.mgt.iot.exception.DeviceControllerException;
-import org.wso2.carbon.device.mgt.iot.exception.IoTException;
import org.wso2.carbon.device.mgt.iot.util.IoTUtil;
import javax.ws.rs.core.MediaType;
@@ -140,7 +139,7 @@ public class XmppServerClient {
EntityUtils.consume(httpResponse.getEntity());
return true;
}
- } catch (IOException | IoTException e) {
+ } catch (IOException e) {
String errorMsg = "Error occured whilst trying a 'POST' at : " + xmppUsersAPIEndpoint;
log.error(errorMsg);
throw new DeviceControllerException(errorMsg, e);
@@ -199,7 +198,7 @@ public class XmppServerClient {
return false;
}
- } catch (IOException | IoTException e) {
+ } catch (IOException e) {
String errorMsg = "Error occured whilst trying a 'GET' at : " + xmppCheckUserAPIEndpoint;
log.error(errorMsg);
throw new DeviceControllerException(errorMsg, e);
@@ -266,7 +265,7 @@ public class XmppServerClient {
xmppSessions = new JSONObject(response).getJSONArray("session");
return xmppSessions;
- } catch (IOException | IoTException e) {
+ } catch (IOException e) {
String errorMsg = "Error occured whilst trying a 'GET' at : " + xmppSessionsAPIEndpoint;
log.error(errorMsg);
throw new DeviceControllerException(errorMsg, e);
diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/util/IoTUtil.java b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/util/IoTUtil.java
index 76e375e27..8cc76e938 100644
--- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/util/IoTUtil.java
+++ b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/util/IoTUtil.java
@@ -22,18 +22,13 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
-import org.apache.http.conn.scheme.PlainSocketFactory;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.scheme.SchemeRegistry;
-import org.apache.http.conn.ssl.SSLSocketFactory;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.conn.PoolingClientConnectionManager;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.conn.ssl.SSLContextBuilder;
+import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
+import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.wso2.carbon.base.ServerConfiguration;
import org.wso2.carbon.device.mgt.iot.exception.IoTException;
-import org.wso2.carbon.device.mgt.iot.internal.IoTCommonDataHolder;
import org.wso2.carbon.utils.NetworkUtils;
import java.io.BufferedReader;
@@ -43,49 +38,33 @@ import java.net.SocketException;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
-import java.security.UnrecoverableKeyException;
public class IoTUtil {
public static final String HOST_NAME = "HostName";
private static final Log log = LogFactory.getLog(IoTUtil.class);
+ private static final String HTTPS_PROTOCOL = "https";
/**
* Return a http client instance
- *
- * @param port - server port
* @param protocol- service endpoint protocol http/https
* @return
*/
public static HttpClient getHttpClient(int port, String protocol)
- throws UnrecoverableKeyException, NoSuchAlgorithmException, KeyStoreException,
- KeyManagementException {
- SchemeRegistry registry = new SchemeRegistry();
-
- if ("https".equals(protocol)) {
- System.setProperty("javax.net.ssl.trustStrore", IoTCommonDataHolder.getInstance().getTrustStoreLocation());
- System.setProperty("javax.net.ssl.trustStorePassword",
- IoTCommonDataHolder.getInstance().getTrustStorePassword());
-
- if (port >= 0) {
- registry.register(new Scheme("https", port, SSLSocketFactory.getSocketFactory()));
- } else {
- registry.register(new Scheme("https", 443, SSLSocketFactory.getSocketFactory()));
- }
- } else if ("http".equals(protocol)) {
- if (port >= 0) {
- registry.register(new Scheme("http", port, PlainSocketFactory.getSocketFactory()));
- } else {
- registry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory()));
- }
+ throws IOException, KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
+ HttpClient httpclient;
+ if (HTTPS_PROTOCOL.equals(protocol)) {
+ SSLContextBuilder builder = new SSLContextBuilder();
+ builder.loadTrustMaterial(null, new TrustSelfSignedStrategy());
+ SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(builder.build());
+ httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build();
+ } else {
+ httpclient = HttpClients.createDefault();
}
- HttpParams params = new BasicHttpParams();
- PoolingClientConnectionManager tcm = new PoolingClientConnectionManager(registry);
- HttpClient client = new DefaultHttpClient(tcm, params);
- return client;
+ return httpclient;
}
- public static String getResponseString(HttpResponse httpResponse) throws IoTException {
+ public static String getResponseString(HttpResponse httpResponse) throws IOException {
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
@@ -95,9 +74,6 @@ public class IoTUtil {
response += readLine;
}
return response;
- } catch (IOException e) {
- throw new IoTException("Error while reading the response from the remote. "
- + e.getMessage(), e);
} finally {
EntityUtils.consumeQuietly(httpResponse.getEntity());
if (br != null) {
diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.plugin.impl/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/plugin/impl/RaspberrypiManagerService.java b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.plugin.impl/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/plugin/impl/RaspberrypiManagerService.java
index 96ce170ef..963475d4c 100644
--- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.plugin.impl/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/plugin/impl/RaspberrypiManagerService.java
+++ b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.plugin.impl/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/plugin/impl/RaspberrypiManagerService.java
@@ -33,6 +33,7 @@ import java.util.List;
public class RaspberrypiManagerService implements DeviceManagementService {
private DeviceManager deviceManager;
+ private final static String DEVICE_TYPE_PROVIDER_DOMAIN = "carbon.super";
@Override
public String getType() {
@@ -41,12 +42,12 @@ public class RaspberrypiManagerService implements DeviceManagementService {
@Override
public String getProviderTenantDomain() {
- return "carbon.super";
+ return DEVICE_TYPE_PROVIDER_DOMAIN;
}
@Override
public boolean isSharedWithAllTenants() {
- return false;
+ return true;
}
@Override
diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl/pom.xml b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl/pom.xml
index 1800946bb..de1d3e2a4 100644
--- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl/pom.xml
+++ b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl/pom.xml
@@ -21,16 +21,15 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- device-mgt-iot-raspberrypi
+ raspberrypi-plugin
org.wso2.carbon.devicemgt-plugins
- 2.0.4-SNAPSHOT
+ 2.1.0-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl
- 2.0.4-SNAPSHOT
war
WSO2 Carbon - IoT Server RaspberryPi API
WSO2 Carbon - RaspberryPi Service API Implementation
@@ -120,7 +119,6 @@
org.wso2.carbon.devicemgt
org.wso2.carbon.device.mgt.analytics.data.publisher
- 1.1.0-SNAPSHOT
provided
diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/util/RaspberrypiServiceUtils.java b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/util/RaspberrypiServiceUtils.java
index e0c98e7b6..cb4d52c48 100644
--- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/util/RaspberrypiServiceUtils.java
+++ b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/util/RaspberrypiServiceUtils.java
@@ -45,8 +45,6 @@ import java.util.concurrent.Future;
public class RaspberrypiServiceUtils {
private static final Log log = LogFactory.getLog(RaspberrypiServiceUtils.class);
- //TODO; replace this tenant domain
- private static final String SUPER_TENANT = "carbon.super";
private static final String TEMPERATURE_STREAM_DEFINITION = "org.wso2.iot.devices.temperature";
public static String sendCommandViaHTTP(final String deviceHTTPEndpoint, String urlContext,
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.impl/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/impl/VirtualFireAlarmManagerService.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.impl/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/impl/VirtualFireAlarmManagerService.java
index 68c8ec94f..214afd849 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.impl/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/impl/VirtualFireAlarmManagerService.java
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.impl/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/impl/VirtualFireAlarmManagerService.java
@@ -32,6 +32,8 @@ import java.util.List;
public class VirtualFireAlarmManagerService implements DeviceManagementService{
private DeviceManager deviceManager;
+ private final static String DEVICE_TYPE_PROVIDER_DOMAIN = "carbon.super";
+
@Override
public String getType() {
return VirtualFireAlarmConstants.DEVICE_TYPE;
@@ -40,7 +42,7 @@ public class VirtualFireAlarmManagerService implements DeviceManagementService{
@Override
public String getProviderTenantDomain() {
- return "carbon.super";
+ return DEVICE_TYPE_PROVIDER_DOMAIN;
}
@Override
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl/pom.xml b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl/pom.xml
index abb81ac7e..4ff0bf500 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl/pom.xml
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl/pom.xml
@@ -21,15 +21,14 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- device-mgt-iot-virtualfirealarm
+ virtual-fire-alarm-plugin
org.wso2.carbon.devicemgt-plugins
- 2.0.4-SNAPSHOT
+ 2.1.0-SNAPSHOT
../pom.xml
4.0.0
org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl
- 2.0.4-SNAPSHOT
war
WSO2 Carbon - IoT Server VirtualFireAlarm API
WSO2 Carbon - Virtual FireAlarm Service Management API Implementation
@@ -57,7 +56,6 @@
org.wso2.carbon.devicemgt
org.wso2.carbon.device.mgt.analytics.data.publisher
- 1.1.0-SNAPSHOT
provided
diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/pom.xml b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/pom.xml
index 15f5e0f91..33605f760 100644
--- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/pom.xml
+++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/pom.xml
@@ -57,23 +57,14 @@
org.osgi.service.component,
org.apache.commons.logging,
javax.xml.bind.*,
- javax.naming,
javax.sql,
- javax.xml.bind.annotation.*,
- javax.xml.parsers.*;resolution:=optional,
- org.w3c.dom,
- org.wso2.carbon.core,
org.wso2.carbon.context,
- org.wso2.carbon.utils.*,
org.wso2.carbon.device.mgt.common.*,
org.wso2.carbon.device.mgt.mobile.*,
org.wso2.carbon.ndatasource.core,
org.wso2.carbon.policy.mgt.common.*,
- org.wso2.carbon.policy.mgt.core.*,
org.wso2.carbon.registry.core,
- org.wso2.carbon.registry.core.exceptions,
org.wso2.carbon.registry.core.service,
- org.wso2.carbon.registry.core.session,
org.wso2.carbon.registry.api,
org.wso2.carbon.device.mgt.extensions.license.mgt.registry,
com.google.gson.*
diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/AndroidDeviceManagementService.java b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/AndroidDeviceManagementService.java
index 9949b69ae..c9f8f2c73 100644
--- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/AndroidDeviceManagementService.java
+++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android/src/main/java/org/wso2/carbon/device/mgt/mobile/android/impl/AndroidDeviceManagementService.java
@@ -36,12 +36,23 @@ public class AndroidDeviceManagementService implements DeviceManagementService {
private DeviceManager deviceManager;
public static final String DEVICE_TYPE_ANDROID = "android";
+ private static final String SUPER_TENANT_DOMAIN = "carbon.super";
@Override
public String getType() {
return AndroidDeviceManagementService.DEVICE_TYPE_ANDROID;
}
+ @Override
+ public String getProviderTenantDomain() {
+ return SUPER_TENANT_DOMAIN;
+ }
+
+ @Override
+ public boolean isSharedWithAllTenants() {
+ return false;
+ }
+
@Override
public void init() throws DeviceManagementException {
this.deviceManager = new AndroidDeviceManager();
diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidDeviceManagementService.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidDeviceManagementService.java
index 18e088ee0..ee2729275 100644
--- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidDeviceManagementService.java
+++ b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/android/AndroidDeviceManagementService.java
@@ -34,12 +34,23 @@ public class AndroidDeviceManagementService implements DeviceManagementService {
private DeviceManager deviceManager;
public static final String DEVICE_TYPE_ANDROID = "android";
+ private static final String SUPER_TENANT_DOMAIN = "carbon.super";
@Override
public String getType() {
return AndroidDeviceManagementService.DEVICE_TYPE_ANDROID;
}
+ @Override
+ public String getProviderTenantDomain() {
+ return SUPER_TENANT_DOMAIN;
+ }
+
+ @Override
+ public boolean isSharedWithAllTenants() {
+ return true;
+ }
+
@Override
public void init() throws DeviceManagementException {
this.deviceManager = new AndroidDeviceManager();
diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/windows/WindowsDeviceManagementService.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/windows/WindowsDeviceManagementService.java
index 45426cd35..3ac01a301 100644
--- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/windows/WindowsDeviceManagementService.java
+++ b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile/src/main/java/org/wso2/carbon/device/mgt/mobile/impl/windows/WindowsDeviceManagementService.java
@@ -36,12 +36,23 @@ public class WindowsDeviceManagementService implements DeviceManagementService {
private DeviceManager deviceManager;
public static final String DEVICE_TYPE_WINDOWS = "windows";
+ private static final String SUPER_TENANT_DOMAIN = "carbon.super";
@Override
public String getType() {
return WindowsDeviceManagementService.DEVICE_TYPE_WINDOWS;
}
+ @Override
+ public String getProviderTenantDomain() {
+ return SUPER_TENANT_DOMAIN;
+ }
+
+ @Override
+ public boolean isSharedWithAllTenants() {
+ return true;
+ }
+
@Override
public void init() throws DeviceManagementException {
this.deviceManager = new WindowsDeviceManager();
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows/pom.xml b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows/pom.xml
index 2440f0fff..66b075e66 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows/pom.xml
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows/pom.xml
@@ -57,26 +57,15 @@
org.osgi.service.component,
org.apache.commons.logging,
javax.xml.bind.*,
- javax.naming,
javax.sql,
- javax.xml.bind.annotation.*,
- javax.xml.parsers.*;resolution:=optional,
- org.w3c.dom,
- org.wso2.carbon.core,
- org.wso2.carbon.context,
- org.wso2.carbon.utils.*,
org.wso2.carbon.device.mgt.common.*,
org.wso2.carbon.device.mgt.mobile.*,
org.wso2.carbon.ndatasource.core,
org.wso2.carbon.policy.mgt.common.*,
- org.wso2.carbon.policy.mgt.core.*,
org.wso2.carbon.registry.core,
- org.wso2.carbon.registry.core.exceptions,
org.wso2.carbon.registry.core.service,
- org.wso2.carbon.registry.core.session,
org.wso2.carbon.registry.api,
- org.wso2.carbon.device.mgt.extensions.license.mgt.registry,
- com.google.gson.*
+ org.wso2.carbon.device.mgt.extensions.license.mgt.registry
!org.wso2.carbon.device.mgt.mobile.windows.internal,
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/impl/WindowsDeviceManagementService.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/impl/WindowsDeviceManagementService.java
index 366fda747..74bb7992f 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/impl/WindowsDeviceManagementService.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/impl/WindowsDeviceManagementService.java
@@ -36,12 +36,23 @@ public class WindowsDeviceManagementService implements DeviceManagementService {
private DeviceManager deviceManager;
public static final String DEVICE_TYPE_WINDOWS = "windows";
+ private final static String DEVICE_TYPE_PROVIDER_DOMAIN = "carbon.super";
@Override
public String getType() {
return WindowsDeviceManagementService.DEVICE_TYPE_WINDOWS;
}
+ @Override
+ public String getProviderTenantDomain() {
+ return DEVICE_TYPE_PROVIDER_DOMAIN;
+ }
+
+ @Override
+ public boolean isSharedWithAllTenants() {
+ return true;
+ }
+
@Override
public void init() throws DeviceManagementException {
this.deviceManager = new WindowsDeviceManager();