From 7fb167b7faa1a82e3786628dc5c0d8c652607c4c Mon Sep 17 00:00:00 2001 From: charithag Date: Mon, 18 Apr 2016 16:41:04 +0530 Subject: [PATCH 1/9] Moved devicemgt_admin jax-rs to carbon-device-mgt --- .../pom.xml | 139 --- .../src/main/java/log4j.properties | 8 - .../mgt/iot/api/DevicesManagerService.java | 567 --------- .../mgt/iot/api/PolicyManagementService.java | 356 ------ .../carbon/device/mgt/iot/util/APIUtil.java | 69 -- .../device/mgt/iot/util/ResponsePayload.java | 108 -- .../src/main/webapp/META-INF/permissions.xml | 113 -- .../webapp/META-INF/webapp-classloading.xml | 33 - .../src/main/webapp/WEB-INF/cxf-servlet.xml | 49 - .../src/main/webapp/WEB-INF/web.xml | 27 - .../iot-plugins/iot-base-plugin/pom.xml | 33 +- .../pom.xml | 212 ---- .../wso2/carbon/mdm/api/Authentication.java | 36 - .../org/wso2/carbon/mdm/api/Certificate.java | 194 ---- .../wso2/carbon/mdm/api/Configuration.java | 113 -- .../java/org/wso2/carbon/mdm/api/Device.java | 234 ---- .../carbon/mdm/api/DeviceInformation.java | 80 -- .../carbon/mdm/api/DeviceNotification.java | 109 -- .../org/wso2/carbon/mdm/api/DeviceSearch.java | 55 - .../java/org/wso2/carbon/mdm/api/Feature.java | 65 -- .../java/org/wso2/carbon/mdm/api/Group.java | 443 ------- .../java/org/wso2/carbon/mdm/api/License.java | 101 -- .../org/wso2/carbon/mdm/api/Operation.java | 220 ---- .../java/org/wso2/carbon/mdm/api/Policy.java | 430 ------- .../java/org/wso2/carbon/mdm/api/Profile.java | 85 -- .../java/org/wso2/carbon/mdm/api/Role.java | 440 ------- .../java/org/wso2/carbon/mdm/api/User.java | 757 ------------ .../carbon/mdm/api/common/ErrorHandler.java | 32 - .../carbon/mdm/api/common/ErrorMessage.java | 41 - .../mdm/api/common/MDMAPIException.java | 59 - .../api/context/DeviceOperationContext.java | 54 - .../CredentialManagementResponseBuilder.java | 106 -- .../mdm/api/util/DeviceMgtAPIUtils.java | 322 ------ .../mdm/api/util/MDMAndroidOperationUtil.java | 116 -- .../carbon/mdm/api/util/MDMAppConstants.java | 55 - .../mdm/api/util/MDMIOSOperationUtil.java | 106 -- .../carbon/mdm/api/util/ResponsePayload.java | 107 -- .../carbon/mdm/beans/ApplicationWrapper.java | 63 - .../mdm/beans/EnrollmentCertificate.java | 50 - .../org/wso2/carbon/mdm/beans/MobileApp.java | 130 --- .../wso2/carbon/mdm/beans/MobileAppTypes.java | 22 - .../wso2/carbon/mdm/beans/PolicyWrapper.java | 126 -- .../beans/PriorityUpdatedPolicyWrapper.java | 41 - .../org/wso2/carbon/mdm/beans/Profile.java | 107 -- .../wso2/carbon/mdm/beans/ProfileFeature.java | 85 -- .../wso2/carbon/mdm/beans/RoleWrapper.java | 59 - .../mdm/beans/UserCredentialWrapper.java | 53 - .../wso2/carbon/mdm/beans/UserWrapper.java | 87 -- .../beans/android/AppStoreApplication.java | 52 - .../beans/android/EnterpriseApplication.java | 61 - .../mdm/beans/android/WebApplication.java | 61 - .../mdm/beans/ios/AppStoreApplication.java | 86 -- .../mdm/beans/ios/EnterpriseApplication.java | 83 -- .../mdm/beans/ios/RemoveApplication.java | 24 - .../wso2/carbon/mdm/beans/ios/WebClip.java | 60 - .../mdm/exception/BadRequestException.java | 31 - .../wso2/carbon/mdm/exception/Message.java | 41 - .../org/wso2/carbon/mdm/util/Constants.java | 30 - .../org/wso2/carbon/mdm/util/MDMUtil.java | 60 - .../mdm/util/SetReferenceTransformer.java | 60 - .../java/org/wso2/mdm/common/Application.java | 119 -- .../mdm/common/GsonMessageBodyHandler.java | 94 -- .../src/main/webapp/META-INF/permissions.xml | 1021 ----------------- .../webapp/META-INF/webapp-classloading.xml | 35 - .../src/main/webapp/WEB-INF/cxf-servlet.xml | 188 --- .../src/main/webapp/WEB-INF/web.xml | 74 -- .../mobile-plugins/mobile-base-plugin/pom.xml | 1 - .../pom.xml | 24 - .../src/main/resources/p2.inf | 2 - .../pom.xml | 20 - .../src/main/resources/p2.inf | 2 - 71 files changed, 16 insertions(+), 9110 deletions(-) delete mode 100644 components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/pom.xml delete mode 100755 components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/log4j.properties delete mode 100644 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 delete mode 100644 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 delete mode 100644 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 delete mode 100644 components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/util/ResponsePayload.java delete mode 100644 components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/META-INF/permissions.xml delete mode 100644 components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/META-INF/webapp-classloading.xml delete mode 100644 components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/WEB-INF/cxf-servlet.xml delete mode 100755 components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/WEB-INF/web.xml delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/pom.xml delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Authentication.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Certificate.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Configuration.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Device.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/DeviceInformation.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/DeviceNotification.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/DeviceSearch.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Feature.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Group.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/License.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Operation.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Policy.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Profile.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Role.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/User.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/common/ErrorHandler.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/common/ErrorMessage.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/common/MDMAPIException.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/context/DeviceOperationContext.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/CredentialManagementResponseBuilder.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/DeviceMgtAPIUtils.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/MDMAndroidOperationUtil.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/MDMAppConstants.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/MDMIOSOperationUtil.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/ResponsePayload.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ApplicationWrapper.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/EnrollmentCertificate.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/MobileApp.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/MobileAppTypes.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/PolicyWrapper.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/PriorityUpdatedPolicyWrapper.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/Profile.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ProfileFeature.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/RoleWrapper.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/UserCredentialWrapper.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/UserWrapper.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/android/AppStoreApplication.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/android/EnterpriseApplication.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/android/WebApplication.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/AppStoreApplication.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/EnterpriseApplication.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/RemoveApplication.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/WebClip.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/exception/BadRequestException.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/exception/Message.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/util/Constants.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/util/MDMUtil.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/util/SetReferenceTransformer.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/mdm/common/Application.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/mdm/common/GsonMessageBodyHandler.java delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/META-INF/permissions.xml delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/META-INF/webapp-classloading.xml delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/WEB-INF/cxf-servlet.xml delete mode 100644 components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/WEB-INF/web.xml diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/pom.xml b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/pom.xml deleted file mode 100644 index 25c69e357..000000000 --- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/pom.xml +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - iot-base-plugin - org.wso2.carbon.devicemgt-plugins - 2.1.0-SNAPSHOT - ../pom.xml - - - 4.0.0 - org.wso2.carbon.device.mgt.iot.api - war - WSO2 Carbon - IoT Server API - Common APIs - WSO2 Carbon - IoT Server API for common device functionality - http://wso2.org - - - - - org.wso2.carbon.devicemgt - org.wso2.carbon.device.mgt.common - provided - - - org.wso2.carbon.devicemgt - org.wso2.carbon.device.mgt.core - provided - - - org.wso2.carbon.devicemgt - org.wso2.carbon.policy.mgt.core - provided - - - org.wso2.carbon.devicemgt - org.wso2.carbon.policy.mgt.common - provided - - - - - org.apache.cxf - cxf-rt-frontend-jaxws - provided - - - org.apache.cxf - cxf-rt-frontend-jaxrs - provided - - - org.apache.cxf - cxf-rt-transports-http - provided - - - - - org.wso2.carbon.devicemgt-plugins - org.wso2.carbon.device.mgt.iot - provided - - - - - org.codehaus.jackson - jackson-core-asl - - - org.codehaus.jackson - jackson-jaxrs - - - javax - javaee-web-api - provided - - - javax.ws.rs - jsr311-api - provided - - - - org.wso2.carbon.devicemgt - org.wso2.carbon.device.mgt.analytics.data.publisher - provided - - - - org.wso2.carbon.analytics - org.wso2.carbon.analytics.datasource.commons - provided - - - - - - - - maven-compiler-plugin - - UTF-8 - ${wso2.maven.compiler.source} - ${wso2.maven.compiler.target} - - - - maven-war-plugin - - common - - - - - - - - diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/log4j.properties b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/log4j.properties deleted file mode 100755 index c271582fa..000000000 --- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/log4j.properties +++ /dev/null @@ -1,8 +0,0 @@ -# Root logger option -log4j.rootLogger=INFO, stdout - -# Direct log messages to stdout -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.Target=System.out -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss} %c{1}:%L - %m%n \ 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/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 deleted file mode 100644 index ee5333b69..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/DevicesManagerService.java +++ /dev/null @@ -1,567 +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; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -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; -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 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; - - -public class DevicesManagerService { - - private static final Log log = LogFactory.getLog(DevicesManagerService.class); - - private Device[] getActiveDevices(List devices) { - List activeDevices = new ArrayList<>(); - if (devices != null) { - for (Device device : devices) { - if (device.getEnrolmentInfo().getStatus().equals(EnrolmentInfo.Status.ACTIVE)) { - activeDevices.add(device); - } - } - } - return activeDevices.toArray(new Device[activeDevices.size()]); - } - - @Path("/devices/users/{userName}") - @GET - @Produces("application/json") - public Response getDevicesOfUser(@PathParam("userName") String userName) { - try { - List devices = APIUtil.getDeviceManagementService() - .getDevicesOfUser(userName); - Device[] devicesArr = this.getActiveDevices(devices); - return Response.status(Response.Status.OK).entity(devicesArr).build(); - } catch (DeviceManagementException e) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/users/{userName}/count") - @GET - @Produces("application/json") - public Response getDeviceCount(@PathParam("userName") String userName) { - try { - List devices = APIUtil.getDeviceManagementService() - .getDevicesOfUser(userName); - if (devices != null) { - List activeDevices = new ArrayList<>(); - for (Device device : devices) { - if (device.getEnrolmentInfo().getStatus().equals(EnrolmentInfo.Status.ACTIVE)) { - activeDevices.add(device); - } - } - return Response.status(Response.Status.OK).entity(activeDevices.size()).build(); - } - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } catch (DeviceManagementException e) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/{deviceType}/{identifier}") - @GET - @Produces("application/json") - public Response getDevice(@PathParam("deviceType") String deviceType, - @PathParam("identifier") String identifier) { - - try { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setId(identifier); - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/types") - @GET - @Produces("application/json") - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/{deviceType}") - @GET - @Produces("application/json") - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices") - @GET - @Produces("application/json") - public Response getAllDevices() { - try { - List devices = APIUtil.getDeviceManagementService() - .getAllDevices(); - return Response.status(Response.Status.OK).entity(this.getActiveDevices(devices)).build(); - } catch (DeviceManagementException e) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/{deviceType}/config") - @GET - @Produces("application/json") - public Response getConfiguration(@PathParam("deviceType") String deviceType) { - try { - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/search/role") - @GET - @Produces("application/json") - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/search/name") - @GET - @Produces("application/json") - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/{deviceType}/{identifier}/status") - @PUT - @Consumes("application/json") - @Produces("application/json") - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/search/status") - @GET - @Produces("application/json") - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/{deviceType}/license") - @GET - @Produces("application/json") - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/{deviceType}/license") - @POST - @Produces("application/json") - 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); - license.setVersion(version); - license.setLanguage(language); - license.setValidFrom(validFrom); - license.setValidTo(validTo); - license.setText(text); - APIUtil.getDeviceManagementService().addLicense(deviceType, license); - return Response.status(Response.Status.NO_CONTENT).build(); - } catch (DeviceManagementException e) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/{deviceType}/{identifier}/enrollment") - @PUT - @Produces("application/json") - 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); - enrolmentInfo.setDateOfEnrolment(dateOfEnrolment); - enrolmentInfo.setDateOfLastUpdate(dateOfLastUpdate); - enrolmentInfo.setOwnership(ownership); - enrolmentInfo.setStatus(status); - enrolmentInfo.setOwner(owner); - - Device device = new Device(); - device.setType(deviceType); - device.setDeviceIdentifier(identifier); - device.setName(name); - device.setDescription(description); - device.setEnrolmentInfo(enrolmentInfo); - try { - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/{deviceType}/{identifier}/enrollment") - @POST - @Produces("application/json") - 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); - enrolmentInfo.setDateOfEnrolment(dateOfEnrolment); - enrolmentInfo.setDateOfLastUpdate(dateOfLastUpdate); - enrolmentInfo.setOwnership(ownership); - enrolmentInfo.setStatus(status); - enrolmentInfo.setOwner(owner); - - Device device = new Device(); - device.setType(deviceType); - device.setDeviceIdentifier(identifier); - device.setName(name); - device.setDescription(description); - device.setEnrolmentInfo(enrolmentInfo); - try { - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/tenant/configuration") - @GET - @Produces("application/json") - public Response getTenantConfiguration() { - try { - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/tenant/configuration") - @POST - @Produces("application/json") - public Response saveTenantConfiguration(@FormParam("tenantConfiguration") TenantConfiguration tenantConfiguration) { - try { - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/{deviceType}/{identifier}") - @DELETE - @Produces("application/json") - public Response disenrollDevice(@PathParam("deviceType") String deviceType, - @PathParam("identifier") String identifier) { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setType(deviceType); - deviceIdentifier.setId(identifier); - try { - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/{deviceType}/{identifier}/enrollment") - @GET - @Produces("application/json") - public Response isEnrolled(@PathParam("deviceType") String deviceType, - @PathParam("identifier") String identifier) { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setType(deviceType); - deviceIdentifier.setId(identifier); - try { - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/{deviceType}/{identifier}/status") - @GET - @Produces("application/json") - public Response isActive(@PathParam("deviceType") String deviceType, - @PathParam("identifier") String identifier) { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setType(deviceType); - deviceIdentifier.setId(identifier); - try { - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/{deviceType}/{identifier}/status") - @PUT - @Consumes("application/json") - @Produces("application/json") - public Response changeDeviceStatus(@PathParam("deviceType") String deviceType, - @PathParam("identifier") String identifier, - @FormParam("status") boolean status) { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setType(deviceType); - deviceIdentifier.setId(identifier); - try { - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/{deviceType}/{identifier}/ownership") - @PUT - @Consumes("application/json") - @Produces("application/json") - public Response setOwnership(@PathParam("deviceType") String deviceType, - @PathParam("identifier") String identifier, - @FormParam("ownership") String ownership) { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setType(deviceType); - deviceIdentifier.setId(identifier); - try { - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/{deviceType}/{identifier}/enrollment/status") - @PUT - @Consumes("application/json") - @Produces("application/json") - 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(deviceType); - deviceIdentifier.setId(identifier); - try { - 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) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @Path("/devices/{deviceType}/{identifier}/sensors/{sensorName}") - @POST - @Consumes("application/json") - @Produces("application/json") - 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("/devices/{deviceType}/{identifier}/sensors/{sensorName}") - @GET - @Consumes("application/json") - @Produces("application/json") - public Response getSensorValue(@PathParam("deviceType") String deviceType, - @PathParam("identifier") String deviceId, - @PathParam("sensorName") String sensorName, - @QueryParam("defaultValue") String defaultValue) { - - try { - 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) { - 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(); - } - } - } - -} \ 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 deleted file mode 100644 index d9a928457..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/PolicyManagementService.java +++ /dev/null @@ -1,356 +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; - -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.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; -import org.wso2.carbon.policy.mgt.common.PolicyMonitoringTaskException; -import org.wso2.carbon.policy.mgt.common.monitor.ComplianceData; -import org.wso2.carbon.policy.mgt.common.monitor.PolicyComplianceException; -import org.wso2.carbon.policy.mgt.core.PolicyManagerService; -import org.wso2.carbon.policy.mgt.core.task.TaskScheduleService; - -import javax.jws.WebService; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.*; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.Response; -import java.util.List; - -public class PolicyManagementService { - - private static final Log log = LogFactory.getLog(PolicyManagementService.class); - - @POST - @Path("/policies/inactive") - @Produces("application/json") - public Response addInactivePolicy(@FormParam("policy") Policy policy) { - return addPolicy(policy); - } - - @POST - @Path("/policies/active") - @Produces("application/json") - public Response addActivePolicy(@FormParam("policy") Policy policy) { - policy.setActive(true); - return addPolicy(policy); - } - - private Response addPolicy(Policy policy) { - try { - PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService(); - PolicyAdministratorPoint pap = policyManagerService.getPAP(); - pap.addPolicy(policy); - if (log.isDebugEnabled()) { - log.debug("Policy has been added successfully."); - } - return Response.status(Response.Status.NO_CONTENT).build(); - } catch (PolicyManagementException e) { - String error = "Policy Management related exception."; - log.error(error, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @GET - @Path("/policies") - @Produces("application/json") - public Response getAllPolicies() { - - try { - PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService(); - PolicyAdministratorPoint policyAdministratorPoint = policyManagerService.getPAP(); - List policies = policyAdministratorPoint.getPolicies(); - 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); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @GET - @Path("/policies/{policyId}") - @Produces("application/json") - public Response getPolicy(@PathParam("policyId") int policyId) { - - try { - 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 Response.status(Response.Status.OK).entity(policy).build(); - } else { - log.error("Policy for ID " + policyId + " not found."); - return Response.status(Response.Status.NOT_FOUND).build(); - } - } catch (PolicyManagementException e) { - String error = "Policy Management related exception"; - log.error(error, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @GET - @Path("/policies/inactive/count") - @Produces("application/json") - public Response getPolicyCount() { - - try { - PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService(); - PolicyAdministratorPoint policyAdministratorPoint = policyManagerService.getPAP(); - 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); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @PUT - @Path("/policies/{policyId}") - @Produces("application/json") - public Response updatePolicy(@FormParam("policy") Policy policy, @PathParam("policyId") int policyId) { - - try { - PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService(); - PolicyAdministratorPoint pap = policyManagerService.getPAP(); - Policy previousPolicy = pap.getPolicy(policyId); - policy.setProfile(pap.getProfile(previousPolicy.getProfileId())); - policy.setPolicyName(previousPolicy.getPolicyName()); - pap.updatePolicy(policy); - if (log.isDebugEnabled()) { - log.debug("Policy with ID " + policyId + " has been updated successfully."); - } - return Response.status(Response.Status.NO_CONTENT).build(); - } catch (PolicyManagementException e) { - String error = "Policy Management related exception"; - log.error(error, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @PUT - @Path("/policies/priorities") - @Consumes("application/json") - @Produces("application/json") - public Response updatePolicyPriorities(@FormParam("policies") List priorityUpdatedPolicies) { - - try { - 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 Response.status(Response.Status.NO_CONTENT).build(); - } else { - if (log.isDebugEnabled()) { - log.debug("Policy priorities did not update. Bad Request."); - } - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } catch (PolicyManagementException e) { - String error = "Exception in updating policy priorities."; - log.error(error, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @DELETE - @Path("/policies/{policyId}") - @Produces("application/json") - public Response deletePolicy(@PathParam("policyId") int policyId) { - - try { - PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService(); - PolicyAdministratorPoint pap = policyManagerService.getPAP(); - Policy policy = pap.getPolicy(policyId); - boolean policyDeleted = pap.deletePolicy(policy); - if (policyDeleted) { - if (log.isDebugEnabled()) { - log.debug("Policy by id:" + policyId + " has been successfully deleted."); - } - return Response.status(Response.Status.OK).build(); - } else { - if (log.isDebugEnabled()) { - log.debug("Policy by id:" + policyId + " does not exist."); - } - return Response.status(Response.Status.NOT_FOUND).build(); - } - } catch (PolicyManagementException e) { - String error = "Exception in deleting policy by id:" + policyId; - log.error(error, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @PUT - @Path("/policies/{policyId}/activate") - @Produces("application/json") - public Response activatePolicy(@PathParam("policyId") int policyId) { - - try { - 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 Response.status(Response.Status.NO_CONTENT).build(); - } catch (PolicyManagementException e) { - String error = "Exception in activating policy by id:" + policyId; - log.error(error, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @PUT - @Path("/policies/{policyId}/inactivate") - @Produces("application/json") - public Response inactivatePolicy(@PathParam("policyId") int policyId) { - - try { - 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 Response.status(Response.Status.NO_CONTENT).build(); - } catch (PolicyManagementException e) { - String error = "Exception in inactivating policy by id:" + policyId; - log.error(error, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @PUT - @Path("/policies/publish-changes") - @Produces("application/json") - public Response publishChanges() { - - try { - PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService(); - PolicyAdministratorPoint pap = policyManagerService.getPAP(); - pap.publishChanges(); - if (log.isDebugEnabled()) { - log.debug("Changes have been successfully updated."); - } - return Response.status(Response.Status.NO_CONTENT).build(); - } catch (PolicyManagementException e) { - String error = "Exception in applying changes."; - log.error(error, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @PUT - @Path("/policies/monitor-task/start") - @Produces("application/json") - public Response startTaskService(@FormParam("milliseconds") int monitoringFrequency) { - - try { - PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService(); - TaskScheduleService taskScheduleService = policyManagerService.getTaskScheduleService(); - taskScheduleService.startTask(monitoringFrequency); - if (log.isDebugEnabled()) { - log.debug("Policy monitoring service started successfully."); - } - return Response.status(Response.Status.NO_CONTENT).build(); - } catch (PolicyMonitoringTaskException e) { - String error = "Policy Management related exception."; - log.error(error, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @PUT - @Path("/policies/monitor-task/update") - @Produces("application/json") - public Response updateTaskService(@FormParam("milliseconds") int monitoringFrequency) { - - try { - PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService();; - TaskScheduleService taskScheduleService = policyManagerService.getTaskScheduleService(); - taskScheduleService.updateTask(monitoringFrequency); - if (log.isDebugEnabled()) { - log.debug("Policy monitoring service updated successfully."); - } - return Response.status(Response.Status.NO_CONTENT).build(); - } catch (PolicyMonitoringTaskException e) { - String error = "Policy Management related exception."; - log.error(error, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @PUT - @Path("/policies/monitor-task/stop") - @Produces("application/json") - public Response stopTaskService() { - try { - PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService(); - TaskScheduleService taskScheduleService = policyManagerService.getTaskScheduleService(); - taskScheduleService.stopTask(); - if (log.isDebugEnabled()) { - log.debug("Policy monitoring service stopped successfully."); - } - return Response.status(Response.Status.NO_CONTENT).build(); - } catch (PolicyMonitoringTaskException e) { - String error = "Policy Management related exception."; - log.error(error, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - - @GET - @Path("/policies/compliance/{deviceType}/{deviceId}") - @Produces("application/json") - public Response getComplianceDataOfDevice(@PathParam("deviceId") String deviceId, - @PathParam("deviceType") String deviceType) { - try { - PolicyManagerService policyManagerService = APIUtil.getPolicyManagerService(); - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setType(deviceType); - deviceIdentifier.setId(deviceId); - 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); - 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 deleted file mode 100644 index e18324d12..000000000 --- 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 +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.device.mgt.iot.util; - -import org.apache.commons.logging.Log; -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. - */ -public class APIUtil { - private static Log log = LogFactory.getLog(APIUtil.class); - - public static GroupManagementProviderService getGroupManagementProviderService() { - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - GroupManagementProviderService groupManagementProviderService = - (GroupManagementProviderService) ctx.getOSGiService(GroupManagementProviderService.class, null); - if (groupManagementProviderService == null) { - String msg = "Group Management service has not initialized."; - log.error(msg); - throw new IllegalStateException(msg); - } - return groupManagementProviderService; - } - - public static DeviceManagementProviderService getDeviceManagementService() { - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - DeviceManagementProviderService deviceManagementProviderService = - (DeviceManagementProviderService) ctx.getOSGiService(DeviceManagementProviderService.class, null); - if (deviceManagementProviderService == null) { - String msg = "Device Management service has not initialized."; - log.error(msg); - throw new IllegalStateException(msg); - } - 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.api/src/main/java/org/wso2/carbon/device/mgt/iot/util/ResponsePayload.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/ResponsePayload.java deleted file mode 100644 index c37d1d3a0..000000000 --- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/java/org/wso2/carbon/device/mgt/iot/util/ResponsePayload.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.device.mgt.iot.util; - -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; - -@XmlRootElement -public class ResponsePayload { - - private int statusCode; - private String messageFromServer; - private Object responseContent; - - public static ResponsePayloadBuilder statusCode(int statusCode) { - ResponsePayload message = new ResponsePayload(); - return message.getBuilder().statusCode(statusCode); - } - - public static ResponsePayloadBuilder messageFromServer( - String messageFromServer) { - ResponsePayload message = new ResponsePayload(); - return message.getBuilder().messageFromServer(messageFromServer); - } - - public static ResponsePayloadBuilder responseContent(String responseContent) { - ResponsePayload message = new ResponsePayload(); - return message.getBuilder().responseContent(responseContent); - } - - @XmlElement - public int getStatusCode() { - return statusCode; - } - - public void setStatusCode(int statusCode) { - this.statusCode = statusCode; - } - - @XmlElement - public String getMessageFromServer() { - return messageFromServer; - } - - public void setMessageFromServer(String messageFromServer) { - this.messageFromServer = messageFromServer; - } - - @XmlElement - public Object getResponseContent() { - return responseContent; - } - - public void setResponseContent(Object responseContent) { - this.responseContent = responseContent; - } - - private ResponsePayloadBuilder getBuilder() { - return new ResponsePayloadBuilder(); - } - - public class ResponsePayloadBuilder { - - private int statusCode; - private String messageFromServer; - private Object responseContent; - - public ResponsePayloadBuilder statusCode(int statusCode) { - this.statusCode = statusCode; - return this; - } - - public ResponsePayloadBuilder messageFromServer(String messageFromServer) { - this.messageFromServer = messageFromServer; - return this; - } - - public ResponsePayloadBuilder responseContent(String responseContent) { - this.responseContent = responseContent; - return this; - } - - public ResponsePayload build() { - ResponsePayload payload = new ResponsePayload(); - payload.setStatusCode(statusCode); - payload.setMessageFromServer(messageFromServer); - payload.setResponseContent(responseContent); - return payload; - } - } - -} diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/META-INF/permissions.xml b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/META-INF/permissions.xml deleted file mode 100644 index aa291109e..000000000 --- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/META-INF/permissions.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - Get Device of user - /login - /device_manager/device/user/{username}/all - GET - - - - - Get ungrouped devices of user - /login - /device_manager/device/user/{username}/ungrouped - GET - - - - - Get Device of user - /login - /device_manager/device_manager/device/user/{username}/ungrouped - GET - - - - - Get count of all the devices - /login - /device_manager/device/user/{username}/all/count - GET - - - - - Get specific device - /login - /device_manager/device/type/{type}/identifier/{identifier} - GET - - - - - Get the device type - /login - /device_manager/device/type/all - GET - - - - - Get all devices - /login - /device_manager/device/all - GET - - - - - Get the device by name - /login - /device_manager/device/name/{name}/all - GET - - - - - Update device enrollment info - /login - /device_manager/device/type/{type}/identifier/{identifier}/status - GET - - - - - Update device enrollment info - /login - /device_manager/device/type/{type}/identifier/{identifier}/status - GET - - - - \ No newline at end of file diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/META-INF/webapp-classloading.xml b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/META-INF/webapp-classloading.xml deleted file mode 100644 index fa4461919..000000000 --- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/META-INF/webapp-classloading.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - false - - - CXF,Carbon - diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/WEB-INF/cxf-servlet.xml b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/WEB-INF/cxf-servlet.xml deleted file mode 100644 index 0f2d40641..000000000 --- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/WEB-INF/cxf-servlet.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/WEB-INF/web.xml b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/WEB-INF/web.xml deleted file mode 100755 index 433526519..000000000 --- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.api/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - WSO2 IoT Server - WSO2 IoT Server - - - CXFServlet - org.apache.cxf.transport.servlet.CXFServlet - 1 - - - CXFServlet - /* - - - isAdminService - false - - - doAuthentication - true - - diff --git a/components/iot-plugins/iot-base-plugin/pom.xml b/components/iot-plugins/iot-base-plugin/pom.xml index 759eb4077..6c491e480 100644 --- a/components/iot-plugins/iot-base-plugin/pom.xml +++ b/components/iot-plugins/iot-base-plugin/pom.xml @@ -1,21 +1,21 @@ + ~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + ~ + ~ WSO2 Inc. licenses this file to you under the Apache License, + ~ Version 2.0 (the "License"); you may not use this file except + ~ in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, + ~ software distributed under the License is distributed on an + ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + ~ KIND, either express or implied. See the License for the + ~ specific language governing permissions and limitations + ~ under the License. + --> @@ -34,7 +34,6 @@ org.wso2.carbon.device.mgt.iot - org.wso2.carbon.device.mgt.iot.api org.wso2.carbon.device.mgt.iot.ui diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/pom.xml b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/pom.xml deleted file mode 100644 index ec1bca777..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/pom.xml +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - - mobile-base-plugin - org.wso2.carbon.devicemgt-plugins - 2.1.0-SNAPSHOT - ../pom.xml - - - 4.0.0 - org.wso2.carbon.device.mgt.mobile.api - war - WSO2 Carbon - Mobile Device Management API - WSO2 Carbon - Mobile Device Management API - http://wso2.org - - - - - maven-compiler-plugin - - 1.7 - 1.7 - - 2.3.2 - - - maven-war-plugin - 2.2 - - WEB-INF/lib/*cxf*.jar - ${project.artifactId} - - - - - - - - deploy - - compile - - - org.apache.maven.plugins - maven-antrun-plugin - 1.7 - - - compile - - run - - - - - - - - - - - - - - - - - - - client - - test - - - org.codehaus.mojo - exec-maven-plugin - 1.2.1 - - - test - - java - - - - - - - - - - - - org.apache.cxf - cxf-rt-frontend-jaxws - - - org.apache.cxf - cxf-rt-frontend-jaxrs - - - org.apache.cxf - cxf-rt-transports-http - - - junit - junit - test - - - commons-httpclient.wso2 - commons-httpclient - provided - - - javax.ws.rs - jsr311-api - provided - - - org.wso2.carbon - org.wso2.carbon.utils - provided - - - org.wso2.carbon.commons - org.wso2.carbon.user.mgt - provided - - - org.wso2.carbon - org.wso2.carbon.logging - provided - - - org.wso2.carbon.devicemgt - org.wso2.carbon.device.mgt.common - provided - - - org.wso2.carbon.devicemgt - org.wso2.carbon.device.mgt.core - provided - - - org.apache.axis2.wso2 - axis2-client - - - - - org.wso2.carbon.devicemgt - org.wso2.carbon.policy.mgt.core - provided - - - org.apache.axis2.wso2 - axis2-client - - - - - org.wso2.carbon.identity - org.wso2.carbon.identity.oauth.stub - provided - - - org.apache.axis2.wso2 - axis2-client - - - - - com.google.code.gson - gson - - - commons-codec.wso2 - commons-codec - provided - - - org.wso2.carbon.devicemgt - org.wso2.carbon.certificate.mgt.core - provided - - - - diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Authentication.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Authentication.java deleted file mode 100644 index 42257b794..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Authentication.java +++ /dev/null @@ -1,36 +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.mdm.api; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.ws.rs.Consumes; -import javax.ws.rs.Produces; - -/** - * Authentication related REST-API implementation. - */ -@Produces({ "application/json", "application/xml" }) -@Consumes({ "application/json", "application/xml" }) -public class Authentication { - - private static Log log = LogFactory.getLog(Authentication.class); -} - diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Certificate.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Certificate.java deleted file mode 100644 index e1714c2c2..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Certificate.java +++ /dev/null @@ -1,194 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.api; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.certificate.mgt.core.dao.CertificateManagementDAOException; -import org.wso2.carbon.certificate.mgt.core.dto.CertificateResponse; -import org.wso2.carbon.certificate.mgt.core.exception.KeystoreException; -import org.wso2.carbon.certificate.mgt.core.service.CertificateManagementService; -import org.wso2.carbon.context.PrivilegedCarbonContext; -import org.wso2.carbon.device.mgt.common.PaginationRequest; -import org.wso2.carbon.device.mgt.common.PaginationResult; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import org.wso2.carbon.mdm.api.util.DeviceMgtAPIUtils; -import org.wso2.carbon.mdm.beans.EnrollmentCertificate; -import org.wso2.carbon.mdm.exception.Message; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.HeaderParam; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.util.ArrayList; -import java.util.List; - -/** - * All the certificate related tasks such as saving certificates, can be done through this endpoint. - */ -@SuppressWarnings("NonJaxWsWebServices") -@Produces({"application/json", "application/xml"}) -@Consumes({ "application/json", "application/xml" }) -public class Certificate { - - private static Log log = LogFactory.getLog(Operation.class); - - /** - * Save a list of certificates and relevant information in the database. - * - * @param enrollmentCertificates List of all the certificates which includes the tenant id, certificate as - * a pem and a serial number. - * @return Status of the data persist operation. - */ - @POST - @Path("saveCertificate") - public Response saveCertificate(@HeaderParam("Accept") String acceptHeader, - EnrollmentCertificate[] enrollmentCertificates) { - MediaType responseMediaType = DeviceMgtAPIUtils.getResponseMediaType(acceptHeader); - CertificateManagementService certificateService; - List certificates = new ArrayList<>(); - org.wso2.carbon.certificate.mgt.core.bean.Certificate certificate; - certificateService = DeviceMgtAPIUtils.getCertificateManagementService(); - try { - for (EnrollmentCertificate enrollmentCertificate : enrollmentCertificates) { - certificate = new org.wso2.carbon.certificate.mgt.core.bean.Certificate(); - certificate.setTenantId(PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId()); - certificate.setSerial(enrollmentCertificate.getSerial()); - certificate.setCertificate(certificateService.pemToX509Certificate(enrollmentCertificate.getPem())); - certificates.add(certificate); - } - certificateService.saveCertificate(certificates); - return Response.status(Response.Status.CREATED).entity("Added successfully."). - type(responseMediaType).build(); - } catch (KeystoreException e) { - String msg = "Error occurred while converting PEM file to X509Certificate."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).type(responseMediaType).build(); - } - } - - /** - * Get a certificate when the serial number is given. - * - * @param serialNumber serial of the certificate needed. - * @return certificate response. - */ - @GET - @Path("{serialNumber}") - public Response getCertificate(@HeaderParam("Accept") String acceptHeader, - @PathParam("serialNumber") String serialNumber) { - MediaType responseMediaType = DeviceMgtAPIUtils.getResponseMediaType(acceptHeader); - Message message = new Message(); - - if (serialNumber == null || serialNumber.isEmpty()) { - message.setErrorMessage("Invalid serial number"); - message.setDiscription("Serial number is missing or invalid."); - return Response.status(Response.Status.BAD_REQUEST).entity(message).type(responseMediaType).build(); - } - - CertificateManagementService certificateService = DeviceMgtAPIUtils.getCertificateManagementService(); - CertificateResponse certificateResponse; - try { - certificateResponse = certificateService.getCertificateBySerial(serialNumber); - if(certificateResponse != null) { - certificateResponse.setCertificate(null); //avoid sending byte array in response. - } - return Response.status(Response.Status.OK).entity(certificateResponse).type(responseMediaType).build(); - } catch (KeystoreException e) { - String msg = "Error occurred while converting PEM file to X509Certificate"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).type(responseMediaType).build(); - } - } - - /** - * Get all certificates in a paginated manner. - * - * @param startIndex index of the first record to be fetched - * @param length number of records to be fetched starting from the start index. - * @return paginated result of certificate. - * @throws MDMAPIException - */ - @GET - @Path("paginate") - public Response getAllCertificates(@HeaderParam("Accept") String acceptHeader, - @QueryParam("start") int startIndex, - @QueryParam("length") int length) - throws MDMAPIException { - MediaType responseMediaType = DeviceMgtAPIUtils.getResponseMediaType(acceptHeader); - Message message = new Message(); - - if (startIndex < 0) { - message.setErrorMessage("Invalid start index."); - message.setDiscription("Start index cannot be less that 0."); - return Response.status(Response.Status.BAD_REQUEST).entity(message).type(responseMediaType).build(); - } else if (length <= 0) { - message.setErrorMessage("Invalid length value."); - message.setDiscription("Length should be a positive integer."); - return Response.status(Response.Status.BAD_REQUEST).entity(message).type(responseMediaType).build(); - } - - CertificateManagementService certificateService = DeviceMgtAPIUtils.getCertificateManagementService(); - PaginationRequest paginationRequest = new PaginationRequest(startIndex, length); - try { - PaginationResult certificates = certificateService.getAllCertificates(paginationRequest); - return Response.status(Response.Status.OK).entity(certificates).type(responseMediaType).build(); - } catch (CertificateManagementDAOException e) { - String msg = "Error occurred while fetching all certificates."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).type(responseMediaType).build(); - } - } - - @DELETE - @Path("{serialNumber}") - public Response removeCertificate(@HeaderParam("Accept") String acceptHeader, - @PathParam("serialNumber") String serialNumber) throws MDMAPIException { - MediaType responseMediaType = DeviceMgtAPIUtils.getResponseMediaType(acceptHeader); - Message message = new Message(); - - if (serialNumber == null || serialNumber.isEmpty()) { - message.setErrorMessage("Invalid serial number"); - message.setDiscription("Serial number is missing or invalid."); - return Response.status(Response.Status.BAD_REQUEST).entity(message).type(responseMediaType).build(); - } - - CertificateManagementService certificateService = DeviceMgtAPIUtils.getCertificateManagementService(); - boolean deleted; - try { - deleted = certificateService.removeCertificate(serialNumber); - if(deleted){ - return Response.status(Response.Status.OK).entity(deleted).type(responseMediaType).build(); - } else { - return Response.status(Response.Status.GONE).entity(deleted).type(responseMediaType).build(); - } - } catch (CertificateManagementDAOException e) { - String msg = "Error occurred while converting PEM file to X509Certificate"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).type(responseMediaType).build(); - } - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Configuration.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Configuration.java deleted file mode 100644 index ac305b200..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Configuration.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.api; - -import org.apache.commons.httpclient.HttpStatus; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry; -import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException; -import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration; -import org.wso2.carbon.mdm.api.util.DeviceMgtAPIUtils; -import org.wso2.carbon.mdm.api.util.MDMAppConstants; -import org.wso2.carbon.mdm.api.util.ResponsePayload; -import org.wso2.carbon.policy.mgt.core.util.PolicyManagerUtil; - -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; -import java.util.ArrayList; -import java.util.List; - -/** - * General Tenant Configuration REST-API implementation. - * All end points support JSON, XMl with content negotiation. - */ - -@SuppressWarnings("NonJaxWsWebServices") -@Produces({"application/json", "application/xml"}) -@Consumes({ "application/json", "application/xml" }) -public class Configuration { - - private static Log log = LogFactory.getLog(Configuration.class); - - @POST - public Response saveTenantConfiguration(TenantConfiguration configuration) { - ResponsePayload responseMsg = new ResponsePayload(); - try { - DeviceMgtAPIUtils.getTenantConfigurationManagementService().saveConfiguration(configuration, - MDMAppConstants.RegistryConstants.GENERAL_CONFIG_RESOURCE_PATH); - //Schedule the task service - DeviceMgtAPIUtils.scheduleTaskService(DeviceMgtAPIUtils.getNotifierFrequency(configuration)); - responseMsg.setMessageFromServer("Tenant configuration saved successfully."); - responseMsg.setStatusCode(HttpStatus.SC_CREATED); - return Response.status(Response.Status.CREATED).entity(responseMsg).build(); - } catch (ConfigurationManagementException e) { - String msg = "Error occurred while saving the tenant configuration."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @GET - public Response getConfiguration() { - String msg; - try { - TenantConfiguration tenantConfiguration = DeviceMgtAPIUtils.getTenantConfigurationManagementService(). - getConfiguration(MDMAppConstants.RegistryConstants.GENERAL_CONFIG_RESOURCE_PATH); - ConfigurationEntry configurationEntry = new ConfigurationEntry(); - configurationEntry.setContentType("text"); - configurationEntry.setName("notifierFrequency"); - configurationEntry.setValue(PolicyManagerUtil.getMonitoringFequency()); - List configList = tenantConfiguration.getConfiguration(); - if (configList == null) { - configList = new ArrayList<>(); - } - configList.add(configurationEntry); - tenantConfiguration.setConfiguration(configList); - return Response.status(Response.Status.OK).entity(tenantConfiguration).build(); - } catch (ConfigurationManagementException e) { - msg = "Error occurred while retrieving the tenant configuration."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @PUT - public Response updateConfiguration(TenantConfiguration configuration) { - ResponsePayload responseMsg = new ResponsePayload(); - try { - DeviceMgtAPIUtils.getTenantConfigurationManagementService().saveConfiguration(configuration, - MDMAppConstants.RegistryConstants.GENERAL_CONFIG_RESOURCE_PATH); - //Schedule the task service - DeviceMgtAPIUtils.scheduleTaskService(DeviceMgtAPIUtils.getNotifierFrequency(configuration)); - responseMsg.setMessageFromServer("Tenant configuration updated successfully."); - responseMsg.setStatusCode(HttpStatus.SC_CREATED); - return Response.status(Response.Status.CREATED).entity(responseMsg).build(); - } catch (ConfigurationManagementException e) { - String msg = "Error occurred while updating the tenant configuration."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Device.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Device.java deleted file mode 100644 index 487c93ada..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Device.java +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.api; - -import org.apache.commons.httpclient.HttpStatus; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.device.mgt.common.DeviceIdentifier; -import org.wso2.carbon.device.mgt.common.DeviceManagementException; -import org.wso2.carbon.device.mgt.common.EnrolmentInfo; -import org.wso2.carbon.device.mgt.common.PaginationRequest; -import org.wso2.carbon.device.mgt.core.dto.DeviceType; -import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService; -import org.wso2.carbon.mdm.api.util.DeviceMgtAPIUtils; -import org.wso2.carbon.mdm.api.util.ResponsePayload; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.util.List; - -/** - * Device related operations - */ -@SuppressWarnings("NonJaxWsWebServices") -public class Device { - private static Log log = LogFactory.getLog(Device.class); - - /** - * Get all devices. We have to use accept all the necessary query parameters sent by datatable. - * Hence had to put lot of query params here. - * - * @return Device List - */ - @GET - public Response getAllDevices(@QueryParam("type") String type, @QueryParam("user") String user, - @QueryParam("role") String role, @QueryParam("status") EnrolmentInfo.Status status, - @QueryParam("start") int startIdx, @QueryParam("length") int length, - @QueryParam("device-name") String deviceName, - @QueryParam("ownership") EnrolmentInfo.OwnerShip ownership) { - try { - DeviceManagementProviderService service = DeviceMgtAPIUtils.getDeviceManagementService(); - //Length > 0 means this is a pagination request. - if (length > 0) { - PaginationRequest paginationRequest = new PaginationRequest(startIdx, length); - paginationRequest.setDeviceName(deviceName); - paginationRequest.setOwner(user); - if (ownership != null) { - paginationRequest.setOwnership(ownership.toString()); - } - if (status != null) { - paginationRequest.setStatus(status.toString()); - } - paginationRequest.setDeviceType(type); - return Response.status(Response.Status.OK).entity(service.getAllDevices(paginationRequest)).build(); - } - - List allDevices; - if ((type != null) && !type.isEmpty()) { - allDevices = service.getAllDevices(type); - } else if ((user != null) && !user.isEmpty()) { - allDevices = service.getDevicesOfUser(user); - } else if ((role != null) && !role.isEmpty()) { - allDevices = service.getAllDevicesOfRole(role); - } else if (status != null) { - allDevices = service.getDevicesByStatus(status); - } else if (deviceName != null) { - allDevices = service.getDevicesByName(deviceName); - } else { - allDevices = service.getAllDevices(); - } - return Response.status(Response.Status.OK).entity(allDevices).build(); - } catch (DeviceManagementException e) { - String msg = "Error occurred while fetching the device list."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - /** - * Fetch device details for a given device type and device Id. - * - * @return Device wrapped inside Response - */ - @GET - @Path("view") - @Produces({MediaType.APPLICATION_JSON}) - public Response getDevice(@QueryParam("type") String type, - @QueryParam("id") String id) { - DeviceIdentifier deviceIdentifier = DeviceMgtAPIUtils.instantiateDeviceIdentifier(type, id); - DeviceManagementProviderService deviceManagementProviderService = DeviceMgtAPIUtils.getDeviceManagementService(); - org.wso2.carbon.device.mgt.common.Device device; - try { - device = deviceManagementProviderService.getDevice(deviceIdentifier); - } catch (DeviceManagementException e) { - String msg = "Error occurred while fetching the device information."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - if (device == null) { - responsePayload.setStatusCode(HttpStatus.SC_NOT_FOUND); - responsePayload.setMessageFromServer("Requested device by type: " + - type + " and id: " + id + " does not exist."); - return Response.status(Response.Status.NOT_FOUND).entity(responsePayload).build(); - } else { - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("Sending Requested device by type: " + type + " and id: " + id + "."); - responsePayload.setResponseContent(device); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - } - - /** - * Fetch device details of a given user. - * - * @param user User Name - * @return Device - */ - @GET - @Path("user/{user}") - public Response getDevice(@PathParam("user") String user) { - List devices; - try { - devices = DeviceMgtAPIUtils.getDeviceManagementService().getDevicesOfUser(user); - if (devices == null) { - return Response.status(Response.Status.NOT_FOUND).build(); - } - return Response.status(Response.Status.OK).entity(devices).build(); - } catch (DeviceManagementException e) { - String msg = "Error occurred while fetching the devices list of given user."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - /** - * Fetch device count of a given user. - * - * @param user User Name - * @return Device - */ - @GET - @Path("user/{user}/count") - public Response getDeviceCount(@PathParam("user") String user) { - try { - Integer count = DeviceMgtAPIUtils.getDeviceManagementService().getDeviceCount(user); - return Response.status(Response.Status.OK).entity(count).build(); - } catch (DeviceManagementException e) { - String msg = "Error occurred while fetching the devices list of given user."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - /** - * Get current device count - * - * @return device count - */ - @GET - @Path("count") - public Response getDeviceCount() { - try { - Integer count = DeviceMgtAPIUtils.getDeviceManagementService().getDeviceCount(); - return Response.status(Response.Status.OK).entity(count).build(); - } catch (DeviceManagementException e) { - String msg = "Error occurred while fetching the device count."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - /** - * Get the list of devices that matches with the given name. - * - * @param deviceName Device name - * @param tenantDomain Callee tenant domain - * @return list of devices. - */ - @GET - @Path("name/{name}/{tenantDomain}") - public Response getDevicesByName(@PathParam("name") String deviceName, - @PathParam("tenantDomain") String tenantDomain) { - List devices; - try { - devices = DeviceMgtAPIUtils.getDeviceManagementService().getDevicesByName(deviceName); - return Response.status(Response.Status.OK).entity(devices).build(); - } catch (DeviceManagementException e) { - String msg = "Error occurred while fetching the devices list of device name."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - /** - * Get the list of available device types. - * - * @return list of device types. - */ - @GET - @Path("types") - public Response getDeviceTypes() { - List deviceTypes; - try { - deviceTypes = DeviceMgtAPIUtils.getDeviceManagementService().getAvailableDeviceTypes(); - return Response.status(Response.Status.OK).entity(deviceTypes).build(); - } catch (DeviceManagementException e) { - String msg = "Error occurred while fetching the list of device types."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } -} \ No newline at end of file diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/DeviceInformation.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/DeviceInformation.java deleted file mode 100644 index 81fe19e73..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/DeviceInformation.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - - -package org.wso2.carbon.mdm.api; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.device.mgt.common.DeviceIdentifier; -import org.wso2.carbon.device.mgt.common.device.details.DeviceInfo; -import org.wso2.carbon.device.mgt.common.device.details.DeviceLocation; -import org.wso2.carbon.device.mgt.core.device.details.mgt.DeviceDetailsMgtException; -import org.wso2.carbon.device.mgt.core.device.details.mgt.DeviceInformationManager; -import org.wso2.carbon.mdm.api.util.DeviceMgtAPIUtils; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.Response; - -@SuppressWarnings("NonJaxWsWebServices") -public class DeviceInformation { - - private static Log log = LogFactory.getLog(DeviceInformation.class); - - @GET - @Path("{type}/{id}") - public Response getDeviceInfo(@PathParam("type") String type, @PathParam("id") String id) { - DeviceInformationManager informationManager; - DeviceInfo deviceInfo; - try { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setId(id); - deviceIdentifier.setType(type); - informationManager = DeviceMgtAPIUtils.getDeviceInformationManagerService(); - deviceInfo = informationManager.getDeviceInfo(deviceIdentifier); - } catch (DeviceDetailsMgtException e) { - String msg = "Error occurred while getting the device information."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - return Response.status(Response.Status.OK).entity(deviceInfo).build(); - } - - - @GET - @Path("location/{type}/{id}") - public Response getDeviceLocation(@PathParam("type") String type, @PathParam("id") String id) { - DeviceInformationManager informationManager; - DeviceLocation deviceLocation; - try { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setId(id); - deviceIdentifier.setType(type); - informationManager = DeviceMgtAPIUtils.getDeviceInformationManagerService(); - deviceLocation = informationManager.getDeviceLocation(deviceIdentifier); - } catch (DeviceDetailsMgtException e) { - String msg = "Error occurred while getting the device location."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - return Response.status(Response.Status.OK).entity(deviceLocation).build(); - } -} - diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/DeviceNotification.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/DeviceNotification.java deleted file mode 100644 index 0f8535157..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/DeviceNotification.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.api; - -import org.apache.commons.httpclient.HttpStatus; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.device.mgt.common.notification.mgt.Notification; -import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementException; -import org.wso2.carbon.mdm.api.util.DeviceMgtAPIUtils; -import org.wso2.carbon.mdm.api.util.ResponsePayload; - -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -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.core.Response; -import java.util.List; - -/** - * DeviceNotification management REST-API implementation. - * All end points support JSON, XMl with content negotiation. - */ -@SuppressWarnings("NonJaxWsWebServices") -@Produces({"application/json", "application/xml"}) -@Consumes({ "application/json", "application/xml" }) -public class DeviceNotification { - - private static Log log = LogFactory.getLog(Configuration.class); - - @GET - public Response getNotifications() { - String msg; - try { - List notifications = DeviceMgtAPIUtils.getNotificationManagementService().getAllNotifications(); - return Response.status(Response.Status.OK).entity(notifications).build(); - } catch (NotificationManagementException e) { - msg = "Error occurred while retrieving the notification list."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @GET - @Path("{status}") - public Response getNotificationsByStatus(@PathParam("status") Notification.Status status) { - String msg; - try { - List notifications = DeviceMgtAPIUtils.getNotificationManagementService().getNotificationsByStatus(status); - return Response.status(Response.Status.OK).entity(notifications).build(); - } catch (NotificationManagementException e) { - msg = "Error occurred while retrieving the notification list."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @PUT - @Path("{id}/{status}") - public Response updateNotificationStatus(@PathParam("id") int id, - @PathParam("status") Notification.Status status) { - ResponsePayload responseMsg = new ResponsePayload(); - try { - DeviceMgtAPIUtils.getNotificationManagementService().updateNotificationStatus(id, status); - responseMsg.setMessageFromServer("Notification status updated successfully."); - responseMsg.setStatusCode(HttpStatus.SC_ACCEPTED); - return Response.status(Response.Status.ACCEPTED).entity(responseMsg).build(); - } catch (NotificationManagementException e) { - String msg = "Error occurred while updating notification status."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @POST - public Response addNotification(Notification notification) { - ResponsePayload responseMsg = new ResponsePayload(); - try { - DeviceMgtAPIUtils.getNotificationManagementService().addNotification(notification); - responseMsg.setMessageFromServer("Notification has added successfully."); - responseMsg.setStatusCode(HttpStatus.SC_CREATED); - return Response.status(Response.Status.CREATED).entity(responseMsg).build(); - } catch (NotificationManagementException e) { - String msg = "Error occurred while updating notification status."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/DeviceSearch.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/DeviceSearch.java deleted file mode 100644 index fc9a7bd3a..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/DeviceSearch.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - - -package org.wso2.carbon.mdm.api; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.device.mgt.common.device.details.DeviceWrapper; -import org.wso2.carbon.device.mgt.common.search.SearchContext; -import org.wso2.carbon.device.mgt.core.search.mgt.SearchManagerService; -import org.wso2.carbon.device.mgt.core.search.mgt.SearchMgtException; -import org.wso2.carbon.mdm.api.util.DeviceMgtAPIUtils; - -import javax.ws.rs.GET; -import javax.ws.rs.core.Response; -import java.util.List; - -@SuppressWarnings("NonJaxWsWebServices") -public class DeviceSearch { - - private static Log log = LogFactory.getLog(DeviceSearch.class); - - @GET - public Response getDeviceInfo(SearchContext searchContext) { - SearchManagerService searchManagerService; - List devices; - try { - searchManagerService = DeviceMgtAPIUtils.getSearchManagerService(); - devices = searchManagerService.search(searchContext); - - } catch (SearchMgtException e) { - String msg = "Error occurred while searching the device information."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - return Response.status(Response.Status.OK).entity(devices).build(); - } -} - diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Feature.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Feature.java deleted file mode 100644 index 9cd8c305e..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Feature.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.api; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.device.mgt.common.DeviceManagementException; -import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService; -import org.wso2.carbon.mdm.api.util.DeviceMgtAPIUtils; - -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; -import java.util.List; - -/** - * Features - */ -@SuppressWarnings("NonJaxWsWebServices") -@Produces({"application/json", "application/xml"}) -@Consumes({"application/json", "application/xml"}) -public class Feature { - private static Log log = LogFactory.getLog(Feature.class); - - /** - * Get all features for Mobile Device Type - * - * @return Feature - */ - @GET - @Path("/{type}") - public Response getFeatures(@PathParam("type") String type) { - List features; - DeviceManagementProviderService dmService; - try { - dmService = DeviceMgtAPIUtils.getDeviceManagementService(); - features = dmService.getFeatureManager(type).getFeatures(); - } catch (DeviceManagementException e) { - String msg = "Error occurred while retrieving the list of features"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - return Response.status(Response.Status.OK).entity(features).build(); - } - -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Group.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Group.java deleted file mode 100644 index 8c86419ae..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Group.java +++ /dev/null @@ -1,443 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.api; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -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.PaginationResult; -import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroup; -import org.wso2.carbon.device.mgt.common.group.mgt.GroupAlreadyEixistException; -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.mdm.api.util.DeviceMgtAPIUtils; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.FormParam; -import javax.ws.rs.GET; -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.Response; -import java.util.Date; -import java.util.List; - -@SuppressWarnings("NonJaxWsWebServices") -public class Group { - - private static final String DEFAULT_ADMIN_ROLE = "admin"; - private static final String DEFAULT_OPERATOR_ROLE = "invoke-device-operations"; - private static final String DEFAULT_STATS_MONITOR_ROLE = "view-statistics"; - private static final String DEFAULT_VIEW_POLICIES = "view-policies"; - private static final String DEFAULT_MANAGE_POLICIES = "mange-policies"; - private static final String DEFAULT_VIEW_EVENTS = "view-events"; - private static final String[] DEFAULT_ADMIN_PERMISSIONS = {"/permission/device-mgt/admin/groups", - "/permission/device-mgt/user/groups"}; - private static final String[] DEFAULT_OPERATOR_PERMISSIONS = {"/permission/device-mgt/user/groups/device_operation"}; - private static final String[] DEFAULT_STATS_MONITOR_PERMISSIONS = {"/permission/device-mgt/user/groups/device_monitor"}; - private static final String[] DEFAULT_MANAGE_POLICIES_PERMISSIONS = {"/permission/device-mgt/user/groups/device_policies/add"}; - private static final String[] DEFAULT_VIEW_POLICIES_PERMISSIONS = {"/permission/device-mgt/user/groups/device_policies/view"}; - private static final String[] DEFAULT_VIEW_EVENTS_PERMISSIONS = {"/permission/device-mgt/user/groups/device_events"}; - - private static Log log = LogFactory.getLog(Group.class); - - @POST - @Consumes("application/json") - public Response createGroup(DeviceGroup group) { - String owner = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername(); - if (group == null) { - return Response.status(Response.Status.BAD_REQUEST).build(); - } - group.setOwner(owner); - group.setDateOfCreation(new Date().getTime()); - group.setDateOfLastUpdate(new Date().getTime()); - try { - GroupManagementProviderService groupManagementService = DeviceMgtAPIUtils.getGroupManagementProviderService(); - groupManagementService.createGroup(group, DEFAULT_ADMIN_ROLE, DEFAULT_ADMIN_PERMISSIONS); - groupManagementService.addGroupSharingRole(owner, group.getName(), owner, - DEFAULT_OPERATOR_ROLE, - DEFAULT_OPERATOR_PERMISSIONS); - groupManagementService.addGroupSharingRole(owner, group.getName(), owner, DEFAULT_STATS_MONITOR_ROLE, - DEFAULT_STATS_MONITOR_PERMISSIONS); - groupManagementService.addGroupSharingRole(owner, group.getName(), owner, DEFAULT_VIEW_POLICIES, - DEFAULT_VIEW_POLICIES_PERMISSIONS); - groupManagementService.addGroupSharingRole(owner, group.getName(), owner, DEFAULT_MANAGE_POLICIES, - DEFAULT_MANAGE_POLICIES_PERMISSIONS); - groupManagementService.addGroupSharingRole(owner, group.getName(), owner, DEFAULT_VIEW_EVENTS, - DEFAULT_VIEW_EVENTS_PERMISSIONS); - return Response.status(Response.Status.CREATED).build(); - } catch (GroupAlreadyEixistException e) { - return Response.status(Response.Status.CONFLICT).entity(e.getMessage()).build(); - } catch (GroupManagementException e) { - log.error(e.getErrorMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @Path("/{owner}/{groupName}") - @PUT - @Consumes("application/json") - @Produces("application/json") - public Response updateGroup(@PathParam("groupName") String groupName, @PathParam("owner") String owner, - DeviceGroup deviceGroup) { - try { - DeviceMgtAPIUtils.getGroupManagementProviderService().updateGroup(deviceGroup, groupName, owner); - return Response.status(Response.Status.OK).build(); - } catch (GroupManagementException e) { - log.error(e.getErrorMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @Path("/{owner}/{groupName}") - @DELETE - public Response deleteGroup(@PathParam("groupName") String groupName, @PathParam("owner") String owner) { - try { - DeviceMgtAPIUtils.getGroupManagementProviderService().deleteGroup(groupName, owner); - return Response.status(Response.Status.OK).build(); - } catch (GroupManagementException e) { - log.error(e.getMessage()); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @GET - @Produces("application/json") - public Response getGroups(@QueryParam("start") int startIndex, @PathParam("rowCount") int rowCount) { - try { - PaginationResult paginationResult = DeviceMgtAPIUtils.getGroupManagementProviderService() - .getGroups(startIndex, rowCount); - if (paginationResult.getRecordsTotal() > 0) { - return Response.status(Response.Status.OK).entity(paginationResult).build(); - } else { - return Response.status(Response.Status.NOT_FOUND).build(); - } - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @Path("/user/{user}") - @GET - @Produces("application/json") - public Response getGroups(@PathParam("user") String userName, @QueryParam("start") int startIndex, - @QueryParam("rowCount") int rowCount) { - try { - PaginationResult paginationResult = DeviceMgtAPIUtils.getGroupManagementProviderService() - .getGroups(userName, startIndex, rowCount); - if (paginationResult.getRecordsTotal() > 0) { - return Response.status(Response.Status.OK).entity(paginationResult).build(); - } else { - return Response.status(Response.Status.NOT_FOUND).build(); - } - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @Path("/{owner}/{groupName}") - @GET - @Produces("application/json") - public Response getGroup(@PathParam("groupName") String groupName, @PathParam("owner") String owner) { - try { - DeviceGroup deviceGroup = DeviceMgtAPIUtils.getGroupManagementProviderService().getGroup(groupName, owner); - if (deviceGroup != null) { - return Response.status(Response.Status.OK).entity(deviceGroup).build(); - } else { - return Response.status(Response.Status.NOT_FOUND).build(); - } - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @Path("/search") - @GET - @Produces("application/json") - public Response findGroups(@QueryParam("groupName") String groupName, - @QueryParam("userName") String userName) { - try { - List groups = DeviceMgtAPIUtils.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) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @Path("/user/{user}/all") - @GET - @Produces("application/json") - public Response getGroups(@PathParam("user") String userName, - @QueryParam("permission") String permission) { - try { - GroupManagementProviderService groupManagementService = DeviceMgtAPIUtils.getGroupManagementProviderService(); - List groups; - if (permission != null) { - groups = groupManagementService.getGroups(userName, permission); - } else { - groups = groupManagementService.getGroups(userName); - } - DeviceGroup[] deviceGroups = new DeviceGroup[groups.size()]; - groups.toArray(deviceGroups); - return Response.status(Response.Status.OK).entity(deviceGroups).build(); - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @Path("/user/{user}/count") - @GET - @Produces("application/json") - public Response getGroupCount(@PathParam("user") String userName) { - try { - int count = DeviceMgtAPIUtils.getGroupManagementProviderService().getGroupCount(userName); - return Response.status(Response.Status.OK).entity(count).build(); - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @Path("/{owner}/{groupName}/share") - @PUT - @Produces("application/json") - public Response shareGroup(@PathParam("groupName") String groupName, @PathParam("owner") String owner, - @FormParam("shareUser") String shareUser, - @FormParam("roleName") String sharingRole) { - - try { - boolean isShared = DeviceMgtAPIUtils.getGroupManagementProviderService().shareGroup( - shareUser, groupName, owner, sharingRole); - if (isShared) { - return Response.status(Response.Status.OK).build(); - } else { - return Response.status(Response.Status.NOT_FOUND).build(); - } - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @Path("/{owner}/{groupName}/unshare") - @PUT - @Produces("application/json") - public Response unShareGroup(@PathParam("groupName") String groupName, @PathParam("owner") String owner, - @FormParam("unShareUser") String unShareUser, - @FormParam("roleName") String sharingRole) { - try { - boolean isUnShared = DeviceMgtAPIUtils.getGroupManagementProviderService().unshareGroup( - unShareUser, groupName, owner, sharingRole); - if (isUnShared) { - return Response.status(Response.Status.OK).build(); - } else { - return Response.status(Response.Status.NOT_FOUND).build(); - } - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @Path("/{owner}/{groupName}/share/roles/{roleName}/permissions") - @PUT - @Produces("application/json") - public Response addSharing(@QueryParam("shareUser") String shareUser, @PathParam("groupName") String groupName, - @PathParam("owner") String owner, - @PathParam("roleName") String roleName, - @FormParam("permissions") String[] permissions) { - - try { - boolean isAdded = DeviceMgtAPIUtils.getGroupManagementProviderService().addGroupSharingRole( - shareUser, groupName, owner, roleName, permissions); - if (isAdded) { - return Response.status(Response.Status.OK).build(); - } else { - return Response.status(Response.Status.NOT_FOUND).build(); - } - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @DELETE - @Path("/{owner}/{groupName}/share/roles/{roleName}/permissions") - @Produces("application/json") - public Response removeSharing(@QueryParam("userName") String userName, @PathParam("groupName") String groupName, - @PathParam("owner") String owner, - @PathParam("roleName") String roleName) { - try { - boolean isRemoved = DeviceMgtAPIUtils.getGroupManagementProviderService().removeGroupSharingRole( - groupName, owner, roleName); - if (isRemoved) { - return Response.status(Response.Status.OK).build(); - } else { - return Response.status(Response.Status.NOT_FOUND).build(); - } - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @GET - @Path("/{owner}/{groupName}/share/roles") - @Produces("application/json") - public Response getRoles(@PathParam("groupName") String groupName, - @PathParam("owner") String owner, @QueryParam("userName") String userName) { - try { - List roles; - if (userName != null && !userName.isEmpty()) { - roles = DeviceMgtAPIUtils.getGroupManagementProviderService().getRoles(userName, groupName, owner); - } else { - roles = DeviceMgtAPIUtils.getGroupManagementProviderService().getRoles(groupName, owner); - } - String[] rolesArray = new String[roles.size()]; - roles.toArray(rolesArray); - return Response.status(Response.Status.OK).entity(rolesArray).build(); - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @GET - @Path("/{owner}/{groupName}/users") - @Produces("application/json") - public Response getUsers(@PathParam("groupName") String groupName, - @PathParam("owner") String owner) { - try { - List users = DeviceMgtAPIUtils.getGroupManagementProviderService().getUsers( - groupName, owner); - GroupUser[] usersArray = new GroupUser[users.size()]; - users.toArray(usersArray); - return Response.status(Response.Status.OK).entity(usersArray).build(); - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @GET - @Path("/{owner}/{groupName}/devices/all") - @Produces("application/json") - public Response getDevices(@PathParam("groupName") String groupName, - @PathParam("owner") String owner) { - try { - List devices = DeviceMgtAPIUtils.getGroupManagementProviderService().getDevices( - groupName, owner); - Device[] deviceArray = new Device[devices.size()]; - devices.toArray(deviceArray); - return Response.status(Response.Status.OK).entity(deviceArray).build(); - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @GET - @Path("/{owner}/{groupName}/devices/count") - @Produces("application/json") - public Response getDeviceCount(@PathParam("groupName") String groupName, - @PathParam("owner") String owner) { - try { - int count = DeviceMgtAPIUtils.getGroupManagementProviderService().getDeviceCount(groupName, owner); - return Response.status(Response.Status.OK).entity(count).build(); - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @PUT - @Path("/{owner}/{groupName}/devices/{deviceType}/{deviceId}") - @Produces("application/json") - public Response addDevice(@PathParam("groupName") String groupName, - @PathParam("owner") String owner, @PathParam("deviceId") String deviceId, - @PathParam("deviceType") String deviceType, - @FormParam("userName") String userName) { - try { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(deviceId, deviceType); - boolean isAdded = DeviceMgtAPIUtils.getGroupManagementProviderService().addDevice( - deviceIdentifier, groupName, owner); - if (isAdded) { - return Response.status(Response.Status.OK).build(); - } else { - return Response.status(Response.Status.NOT_FOUND).build(); - } - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @DELETE - @Path("/{owner}/{groupName}/devices/{deviceType}/{deviceId}") - @Produces("application/json") - public Response removeDevice(@PathParam("groupName") String groupName, - @PathParam("owner") String owner, @PathParam("deviceId") String deviceId, - @PathParam("deviceType") String deviceType) { - try { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(deviceId, deviceType); - boolean isRemoved = DeviceMgtAPIUtils.getGroupManagementProviderService().removeDevice( - deviceIdentifier, groupName, owner); - if (isRemoved) { - return Response.status(Response.Status.OK).build(); - } else { - return Response.status(Response.Status.NOT_FOUND).build(); - } - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - - @GET - @Path("/{owner}/{groupName}/users/{userName}/permissions") - @Produces("application/json") - public Response getPermissions(@PathParam("userName") String userName, - @PathParam("groupName") String groupName, - @PathParam("owner") String owner) { - try { - String[] permissions = DeviceMgtAPIUtils.getGroupManagementProviderService() - .getPermissions(userName, groupName, owner); - return Response.status(Response.Status.OK).entity(permissions).build(); - } catch (GroupManagementException e) { - log.error(e.getMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build(); - } - } - -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/License.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/License.java deleted file mode 100644 index fbf0badc9..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/License.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.api; - -import org.apache.commons.httpclient.HttpStatus; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.device.mgt.common.DeviceManagementException; -import org.wso2.carbon.mdm.api.util.DeviceMgtAPIUtils; -import org.wso2.carbon.mdm.api.util.ResponsePayload; - -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -/** - * This class represents license related operations. - */ -@SuppressWarnings("NonJaxWsWebServices") -public class License { - - private static Log log = LogFactory.getLog(License.class); - - /** - * This method returns the license text related to a given device type and language code. - * - * @param deviceType Device type, ex: android, ios - * @param languageCode Language code, ex: en_US - * @return Returns the license text - */ - @GET - @Path ("{deviceType}/{languageCode}") - @Produces ({MediaType.APPLICATION_JSON}) - public Response getLicense(@PathParam ("deviceType") String deviceType, - @PathParam("languageCode") String languageCode) { - - org.wso2.carbon.device.mgt.common.license.mgt.License license; - ResponsePayload responsePayload; - try { - license = DeviceMgtAPIUtils.getDeviceManagementService().getLicense(deviceType, languageCode); - if (license == null) { - return Response.status(HttpStatus.SC_NOT_FOUND).build(); - } - responsePayload = ResponsePayload.statusCode(HttpStatus.SC_OK). - messageFromServer("License for '" + deviceType + "' was retrieved successfully"). - responseContent(license.getText()). - build(); - } catch (DeviceManagementException e) { - String msg = "Error occurred while retrieving the license configured for '" + deviceType + "' device type"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - /** - * This method is used to add license to a specific device type. - * - * @param deviceType Device type, ex: android, ios - * @param license License object - * @return Returns the acknowledgement for the action - */ - @POST - @Path ("{deviceType}") - public Response addLicense(@PathParam ("deviceType") String deviceType, - org.wso2.carbon.device.mgt.common.license.mgt.License license) { - - ResponsePayload responsePayload; - try { - DeviceMgtAPIUtils.getDeviceManagementService().addLicense(deviceType, license); - responsePayload = ResponsePayload.statusCode(HttpStatus.SC_OK). - messageFromServer("License added successfully for '" + deviceType + "' device type"). - build(); - } catch (DeviceManagementException e) { - String msg = "Error occurred while adding license for '" + deviceType + "' device type"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Operation.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Operation.java deleted file mode 100644 index 50b141aa3..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Operation.java +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.api; - -import org.apache.commons.httpclient.HttpStatus; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.device.mgt.common.DeviceIdentifier; -import org.wso2.carbon.device.mgt.common.PaginationRequest; -import org.wso2.carbon.device.mgt.common.PaginationResult; -import org.wso2.carbon.device.mgt.common.Platform; -import org.wso2.carbon.device.mgt.common.app.mgt.Application; -import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException; -import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager; -import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException; -import org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagementProviderService; -import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import org.wso2.carbon.mdm.api.context.DeviceOperationContext; -import org.wso2.carbon.mdm.api.util.DeviceMgtAPIUtils; -import org.wso2.carbon.mdm.api.util.MDMAndroidOperationUtil; -import org.wso2.carbon.mdm.api.util.MDMIOSOperationUtil; -import org.wso2.carbon.mdm.api.util.ResponsePayload; -import org.wso2.carbon.mdm.beans.ApplicationWrapper; -import org.wso2.carbon.mdm.beans.MobileApp; - -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -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.Response; -import java.util.List; - -/** - * Operation related REST-API implementation. - */ -@SuppressWarnings("NonJaxWsWebServices") -@Produces({"application/json", "application/xml"}) -@Consumes({"application/json", "application/xml"}) -public class Operation { - - private static Log log = LogFactory.getLog(Operation.class); - - /* @deprecated */ - @GET - public Response getAllOperations() { - List operations; - DeviceManagementProviderService dmService; - try { - dmService = DeviceMgtAPIUtils.getDeviceManagementService(); - operations = dmService.getOperations(null); - } catch (OperationManagementException e) { - String msg = "Error occurred while fetching the operations for the device."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - return Response.status(Response.Status.OK).entity(operations).build(); - } - - @GET - @Path("paginate/{type}/{id}") - public Response getDeviceOperations( - @PathParam("type") String type, @PathParam("id") String id, @QueryParam("start") int startIdx, - @QueryParam("length") int length, @QueryParam("search") String search) { - PaginationResult operations; - DeviceManagementProviderService dmService; - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - PaginationRequest paginationRequest = new PaginationRequest(startIdx, length); - try { - deviceIdentifier.setType(type); - deviceIdentifier.setId(id); - dmService = DeviceMgtAPIUtils.getDeviceManagementService(); - operations = dmService.getOperations(deviceIdentifier, paginationRequest); - } catch (OperationManagementException e) { - String msg = "Error occurred while fetching the operations for the device."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - return Response.status(Response.Status.OK).entity(operations).build(); - } - - @GET - @Path("{type}/{id}") - public Response getDeviceOperations(@PathParam("type") String type, @PathParam("id") String id) { - List operations; - DeviceManagementProviderService dmService; - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - try { - deviceIdentifier.setType(type); - deviceIdentifier.setId(id); - dmService = DeviceMgtAPIUtils.getDeviceManagementService(); - operations = dmService.getOperations(deviceIdentifier); - } catch (OperationManagementException e) { - String msg = "Error occurred while fetching the operations for the device."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - return Response.status(Response.Status.OK).entity(operations).build(); - } - - /* @deprecated */ - @POST - public Response addOperation(DeviceOperationContext operationContext) { - DeviceManagementProviderService dmService; - ResponsePayload responseMsg = new ResponsePayload(); - try { - dmService = DeviceMgtAPIUtils.getDeviceManagementService(); - int operationId = dmService.addOperation(operationContext.getOperation(), operationContext.getDevices()); - if (operationId > 0) { - responseMsg.setStatusCode(HttpStatus.SC_CREATED); - responseMsg.setMessageFromServer("Operation has added successfully."); - } - return Response.status(Response.Status.CREATED).entity(responseMsg).build(); - } catch (OperationManagementException e) { - String msg = "Error occurred while saving the operation"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @GET - @Path("{type}/{id}/apps") - public Response getInstalledApps(@PathParam("type") String type, @PathParam("id") String id) { - List applications; - ApplicationManagementProviderService appManagerConnector; - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - try { - deviceIdentifier.setType(type); - deviceIdentifier.setId(id); - appManagerConnector = DeviceMgtAPIUtils.getAppManagementService(); - applications = appManagerConnector.getApplicationListForDevice(deviceIdentifier); - } catch (ApplicationManagementException e) { - String msg = "Error occurred while fetching the apps of the device."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - return Response.status(Response.Status.CREATED).entity(applications).build(); - } - - @POST - @Path("installApp/{tenantDomain}") - public Response installApplication(ApplicationWrapper applicationWrapper, - @PathParam("tenantDomain") String tenantDomain) { - ResponsePayload responseMsg = new ResponsePayload(); - ApplicationManager appManagerConnector; - org.wso2.carbon.device.mgt.common.operation.mgt.Operation operation = null; - try { - appManagerConnector = DeviceMgtAPIUtils.getAppManagementService(); - MobileApp mobileApp = applicationWrapper.getApplication(); - - if (applicationWrapper.getDeviceIdentifiers() != null) { - for (DeviceIdentifier deviceIdentifier : applicationWrapper.getDeviceIdentifiers()) { - if (deviceIdentifier.getType().equals(Platform.android.toString())) { - operation = MDMAndroidOperationUtil.createInstallAppOperation(mobileApp); - } else if (deviceIdentifier.getType().equals(Platform.ios.toString())) { - operation = MDMIOSOperationUtil.createInstallAppOperation(mobileApp); - } - } - appManagerConnector.installApplicationForDevices(operation, applicationWrapper.getDeviceIdentifiers()); - } - responseMsg.setStatusCode(HttpStatus.SC_CREATED); - responseMsg.setMessageFromServer("Application installation request has been sent to the device."); - return Response.status(Response.Status.CREATED).entity(responseMsg).build(); - } catch (ApplicationManagementException | MDMAPIException e) { - String msg = "Error occurred while saving the operation"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @POST - @Path("uninstallApp/{tenantDomain}") - public Response uninstallApplication(ApplicationWrapper applicationWrapper, - @PathParam("tenantDomain") String tenantDomain) { - ResponsePayload responseMsg = new ResponsePayload(); - ApplicationManager appManagerConnector; - org.wso2.carbon.device.mgt.common.operation.mgt.Operation operation = null; - try { - appManagerConnector = DeviceMgtAPIUtils.getAppManagementService(); - MobileApp mobileApp = applicationWrapper.getApplication(); - - if (applicationWrapper.getDeviceIdentifiers() != null) { - for (DeviceIdentifier deviceIdentifier : applicationWrapper.getDeviceIdentifiers()) { - if (deviceIdentifier.getType().equals(Platform.android.toString())) { - operation = MDMAndroidOperationUtil.createAppUninstallOperation(mobileApp); - } else if (deviceIdentifier.getType().equals(Platform.ios.toString())) { - operation = MDMIOSOperationUtil.createAppUninstallOperation(mobileApp); - } - } - appManagerConnector.installApplicationForDevices(operation, applicationWrapper.getDeviceIdentifiers()); - } - responseMsg.setStatusCode(HttpStatus.SC_CREATED); - responseMsg.setMessageFromServer("Application removal request has been sent to the device."); - return Response.status(Response.Status.CREATED).entity(responseMsg).build(); - } catch (ApplicationManagementException | MDMAPIException e) { - String msg = "Error occurred while saving the operation"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } -} \ No newline at end of file diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Policy.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Policy.java deleted file mode 100644 index 4878b32f9..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Policy.java +++ /dev/null @@ -1,430 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.api; - -import org.apache.commons.httpclient.HttpStatus; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.device.mgt.common.DeviceIdentifier; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import org.wso2.carbon.mdm.api.util.DeviceMgtAPIUtils; -import org.wso2.carbon.mdm.api.util.ResponsePayload; -import org.wso2.carbon.mdm.beans.PolicyWrapper; -import org.wso2.carbon.mdm.beans.PriorityUpdatedPolicyWrapper; -import org.wso2.carbon.mdm.util.MDMUtil; -import org.wso2.carbon.policy.mgt.common.PolicyAdministratorPoint; -import org.wso2.carbon.policy.mgt.common.PolicyManagementException; -import org.wso2.carbon.policy.mgt.common.PolicyMonitoringTaskException; -import org.wso2.carbon.policy.mgt.common.monitor.ComplianceData; -import org.wso2.carbon.policy.mgt.common.monitor.PolicyComplianceException; -import org.wso2.carbon.policy.mgt.core.PolicyManagerService; -import org.wso2.carbon.policy.mgt.core.task.TaskScheduleService; - -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -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.core.MediaType; -import javax.ws.rs.core.Response; -import java.util.ArrayList; -import java.util.List; - -@SuppressWarnings("NonJaxWsWebServices") -public class Policy { - private static Log log = LogFactory.getLog(Policy.class); - - @POST - @Path("inactive-policy") - public Response addPolicy(PolicyWrapper policyWrapper) { - - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - ResponsePayload responseMsg = new ResponsePayload(); - org.wso2.carbon.policy.mgt.common.Policy policy = new org.wso2.carbon.policy.mgt.common.Policy(); - policy.setPolicyName(policyWrapper.getPolicyName()); - policy.setProfileId(policyWrapper.getProfileId()); - policy.setDescription(policyWrapper.getDescription()); - policy.setProfile(MDMUtil.convertProfile(policyWrapper.getProfile())); - policy.setOwnershipType(policyWrapper.getOwnershipType()); - policy.setRoles(policyWrapper.getRoles()); - policy.setUsers(policyWrapper.getUsers()); - policy.setTenantId(policyWrapper.getTenantId()); - policy.setCompliance(policyWrapper.getCompliance()); - - return addPolicy(policyManagementService, responseMsg, policy); - } - - @POST - @Path("active-policy") - public Response addActivePolicy(PolicyWrapper policyWrapper) { - - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - ResponsePayload responseMsg = new ResponsePayload(); - org.wso2.carbon.policy.mgt.common.Policy policy = new org.wso2.carbon.policy.mgt.common.Policy(); - policy.setPolicyName(policyWrapper.getPolicyName()); - policy.setProfileId(policyWrapper.getProfileId()); - policy.setDescription(policyWrapper.getDescription()); - policy.setProfile(MDMUtil.convertProfile(policyWrapper.getProfile())); - policy.setOwnershipType(policyWrapper.getOwnershipType()); - policy.setRoles(policyWrapper.getRoles()); - policy.setUsers(policyWrapper.getUsers()); - policy.setTenantId(policyWrapper.getTenantId()); - policy.setCompliance(policyWrapper.getCompliance()); - policy.setActive(true); - - return addPolicy(policyManagementService, responseMsg, policy); - } - - private Response addPolicy(PolicyManagerService policyManagementService, ResponsePayload responseMsg, - org.wso2.carbon.policy.mgt.common.Policy policy) { - try { - PolicyAdministratorPoint pap = policyManagementService.getPAP(); - pap.addPolicy(policy); - responseMsg.setStatusCode(HttpStatus.SC_CREATED); - responseMsg.setMessageFromServer("Policy has been added successfully."); - return Response.status(Response.Status.CREATED).entity(responseMsg).build(); - } catch (PolicyManagementException e) { - String msg = "Policy Management related exception"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @GET - @Produces({MediaType.APPLICATION_JSON}) - public Response getAllPolicies() { - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - List policies; - try { - PolicyAdministratorPoint policyAdministratorPoint = policyManagementService.getPAP(); - policies = policyAdministratorPoint.getPolicies(); - } catch (PolicyManagementException e) { - String msg = "Policy Management related exception"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("Sending all retrieved device policies."); - responsePayload.setResponseContent(policies); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - @GET - @Produces({MediaType.APPLICATION_JSON}) - @Path("{id}") - public Response getPolicy(@PathParam("id") int policyId) { - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - final org.wso2.carbon.policy.mgt.common.Policy policy; - try { - PolicyAdministratorPoint policyAdministratorPoint = policyManagementService.getPAP(); - policy = policyAdministratorPoint.getPolicy(policyId); - } catch (PolicyManagementException e) { - String msg = "Policy Management related exception"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - if (policy == null){ - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_NOT_FOUND); - responsePayload.setMessageFromServer("Policy for ID " + policyId + " not found."); - return Response.status(Response.Status.NOT_FOUND).entity(responsePayload).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("Sending all retrieved device policies."); - responsePayload.setResponseContent(policy); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - @GET - @Path("count") - public Response getPolicyCount() { - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - try { - PolicyAdministratorPoint policyAdministratorPoint = policyManagementService.getPAP(); - Integer count = policyAdministratorPoint.getPolicyCount(); - return Response.status(Response.Status.OK).entity(count).build(); - } catch (PolicyManagementException e) { - String msg = "Policy Management related exception"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @PUT - @Path("{id}") - public Response updatePolicy(PolicyWrapper policyWrapper, @PathParam("id") int policyId) { - - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - ResponsePayload responseMsg = new ResponsePayload(); - org.wso2.carbon.policy.mgt.common.Policy policy = new org.wso2.carbon.policy.mgt.common.Policy(); - policy.setPolicyName(policyWrapper.getPolicyName()); - policy.setId(policyId); - policy.setProfileId(policyWrapper.getProfileId()); - policy.setDescription(policyWrapper.getDescription()); - policy.setProfile(MDMUtil.convertProfile(policyWrapper.getProfile())); - policy.setOwnershipType(policyWrapper.getOwnershipType()); - policy.setRoles(policyWrapper.getRoles()); - policy.setUsers(policyWrapper.getUsers()); - policy.setTenantId(policyWrapper.getTenantId()); - policy.setCompliance(policyWrapper.getCompliance()); - - try { - PolicyAdministratorPoint pap = policyManagementService.getPAP(); - pap.updatePolicy(policy); - responseMsg.setStatusCode(HttpStatus.SC_CREATED); - responseMsg.setMessageFromServer("Policy has been updated successfully."); - return Response.status(Response.Status.CREATED).entity(responseMsg).build(); - } catch (PolicyManagementException e) { - String msg = "Policy Management related exception in policy update."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @PUT - @Path("priorities") - @Consumes({MediaType.APPLICATION_JSON}) - @Produces({MediaType.APPLICATION_JSON}) - public Response updatePolicyPriorities(List priorityUpdatedPolicies) { - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - List policiesToUpdate = - new ArrayList<>(priorityUpdatedPolicies.size()); - int i; - for (i = 0; i < priorityUpdatedPolicies.size(); i++) { - org.wso2.carbon.policy.mgt.common.Policy policyObj = new org.wso2.carbon.policy.mgt.common.Policy(); - policyObj.setId(priorityUpdatedPolicies.get(i).getId()); - policyObj.setPriorityId(priorityUpdatedPolicies.get(i).getPriority()); - policiesToUpdate.add(policyObj); - } - boolean policiesUpdated; - try { - PolicyAdministratorPoint pap = policyManagementService.getPAP(); - policiesUpdated = pap.updatePolicyPriorities(policiesToUpdate); - } catch (PolicyManagementException e) { - String msg = "Exception in updating policy priorities."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - if (policiesUpdated) { - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("Policy Priorities successfully updated."); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } else { - responsePayload.setStatusCode(HttpStatus.SC_BAD_REQUEST); - responsePayload.setMessageFromServer("Policy priorities did not update. Bad Request."); - return Response.status(Response.Status.BAD_REQUEST).entity(responsePayload).build(); - } - } - - @POST - @Path("bulk-remove") - @Consumes("application/json") - @Produces("application/json") - public Response bulkRemovePolicy(List policyIds) { - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - boolean policyDeleted = true; - try { - PolicyAdministratorPoint pap = policyManagementService.getPAP(); - for(int i : policyIds) { - org.wso2.carbon.policy.mgt.common.Policy policy = pap.getPolicy(i); - if(!pap.deletePolicy(policy)){ - policyDeleted = false; - } - } - } catch (PolicyManagementException e) { - String msg = "Exception in deleting policies."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - if (policyDeleted) { - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("Policies have been successfully deleted."); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } else { - responsePayload.setStatusCode(HttpStatus.SC_BAD_REQUEST); - responsePayload.setMessageFromServer("Policy does not exist."); - return Response.status(Response.Status.BAD_REQUEST).entity(responsePayload).build(); - } - } - - @PUT - @Produces("application/json") - @Path("activate") - public Response activatePolicy(List policyIds) { - try { - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - PolicyAdministratorPoint pap = policyManagementService.getPAP(); - for(int i : policyIds) { - pap.activatePolicy(i); - } - } catch (PolicyManagementException e) { - String msg = "Exception in activating policies."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("Selected policies have been successfully activated."); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - @PUT - @Produces("application/json") - @Path("inactivate") - public Response inactivatePolicy(List policyIds) throws MDMAPIException { - - try { - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - PolicyAdministratorPoint pap = policyManagementService.getPAP(); - for(int i : policyIds) { - pap.inactivatePolicy(i); - } - } catch (PolicyManagementException e) { - String msg = "Exception in inactivating policies."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("Selected policies have been successfully inactivated."); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - @PUT - @Produces("application/json") - @Path("apply-changes") - public Response applyChanges() { - - try { - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - PolicyAdministratorPoint pap = policyManagementService.getPAP(); - pap.publishChanges(); - - - } catch (PolicyManagementException e) { - String msg = "Exception in applying changes."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("Changes have been successfully updated."); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - @GET - @Path("start-task/{milliseconds}") - public Response startTaskService(@PathParam("milliseconds") int monitoringFrequency) { - - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - try { - TaskScheduleService taskScheduleService = policyManagementService.getTaskScheduleService(); - taskScheduleService.startTask(monitoringFrequency); - - - } catch (PolicyMonitoringTaskException e) { - String msg = "Policy Management related exception."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("Policy monitoring service started successfully."); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - @GET - @Path("update-task/{milliseconds}") - public Response updateTaskService(@PathParam("milliseconds") int monitoringFrequency) { - - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - try { - TaskScheduleService taskScheduleService = policyManagementService.getTaskScheduleService(); - taskScheduleService.updateTask(monitoringFrequency); - - } catch (PolicyMonitoringTaskException e) { - String msg = "Policy Management related exception."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("Policy monitoring service updated successfully."); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - @GET - @Path("stop-task") - public Response stopTaskService() { - - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - try { - TaskScheduleService taskScheduleService = policyManagementService.getTaskScheduleService(); - taskScheduleService.stopTask(); - - } catch (PolicyMonitoringTaskException e) { - String msg = "Policy Management related exception."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("Policy monitoring service stopped successfully."); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - @GET - @Path("{type}/{id}") - public Response getComplianceDataOfDevice(@PathParam("type") String type, @PathParam("id") String id) { - try { - DeviceIdentifier deviceIdentifier = DeviceMgtAPIUtils.instantiateDeviceIdentifier(type, id); - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - ComplianceData complianceData = policyManagementService.getDeviceCompliance(deviceIdentifier); - return Response.status(Response.Status.OK).entity(complianceData).build(); - } catch (PolicyComplianceException e) { - String msg = "Error occurred while getting the compliance data."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @GET - @Path("{type}/{id}/active-policy") - public Response getDeviceActivePolicy(@PathParam("type") String type, - @PathParam("id") String id) { - try { - DeviceIdentifier deviceIdentifier = DeviceMgtAPIUtils.instantiateDeviceIdentifier(type, id); - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - org.wso2.carbon.policy.mgt.common.Policy policy = policyManagementService - .getAppliedPolicyToDevice(deviceIdentifier); - return Response.status(Response.Status.OK).entity(policy).build(); - } catch (PolicyManagementException e) { - String msg = "Error occurred while getting the current policy."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Profile.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Profile.java deleted file mode 100644 index f96e38c02..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Profile.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.wso2.carbon.mdm.api; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.mdm.api.util.DeviceMgtAPIUtils; -import org.wso2.carbon.mdm.api.util.ResponsePayload; -import org.wso2.carbon.policy.mgt.common.PolicyAdministratorPoint; -import org.wso2.carbon.policy.mgt.common.PolicyManagementException; -import org.wso2.carbon.policy.mgt.core.PolicyManagerService; - -import javax.ws.rs.DELETE; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.Response; - -@SuppressWarnings("NonJaxWsWebServices") -public class Profile { - private static Log log = LogFactory.getLog(Profile.class); - - @POST - public Response addProfile(org.wso2.carbon.policy.mgt.common.Profile profile) { - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - try { - PolicyAdministratorPoint pap = policyManagementService.getPAP(); - profile = pap.addProfile(profile); - return Response.status(Response.Status.OK).entity(profile).build(); - } catch (PolicyManagementException e) { - String msg = "Policy Management related exception"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - @POST - @Path("{id}") - public Response updateProfile(org.wso2.carbon.policy.mgt.common.Profile profile, - @PathParam("id") String profileId) { - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - ResponsePayload responseMsg = new ResponsePayload(); - try { - PolicyAdministratorPoint pap = policyManagementService.getPAP(); - pap.updateProfile(profile); - responseMsg.setMessageFromServer("Profile has been updated successfully."); - return Response.status(Response.Status.OK).entity(responseMsg).build(); - } catch (PolicyManagementException e) { - String msg = "Policy Management related exception"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - @DELETE - @Path("{id}") - public Response deleteProfile(@PathParam("id") int profileId) { - PolicyManagerService policyManagementService = DeviceMgtAPIUtils.getPolicyManagementService(); - ResponsePayload responseMsg = new ResponsePayload(); - try { - PolicyAdministratorPoint pap = policyManagementService.getPAP(); - org.wso2.carbon.policy.mgt.common.Profile profile = pap.getProfile(profileId); - pap.deleteProfile(profile); - responseMsg.setMessageFromServer("Profile has been deleted successfully."); - return Response.status(Response.Status.OK).entity(responseMsg).build(); - } catch (PolicyManagementException e) { - String msg = "Policy Management related exception"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Role.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Role.java deleted file mode 100644 index d0e434c34..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/Role.java +++ /dev/null @@ -1,440 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.api; - -import org.apache.commons.httpclient.HttpStatus; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.CarbonConstants; -import org.wso2.carbon.base.MultitenantConstants; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import org.wso2.carbon.mdm.api.util.DeviceMgtAPIUtils; -import org.wso2.carbon.mdm.api.util.ResponsePayload; -import org.wso2.carbon.mdm.beans.RoleWrapper; -import org.wso2.carbon.mdm.util.SetReferenceTransformer; -import org.wso2.carbon.user.api.AuthorizationManager; -import org.wso2.carbon.user.api.Permission; -import org.wso2.carbon.user.api.UserRealm; -import org.wso2.carbon.user.api.UserStoreException; -import org.wso2.carbon.user.api.UserStoreManager; -import org.wso2.carbon.user.core.common.AbstractUserStoreManager; -import org.wso2.carbon.user.mgt.UserRealmProxy; -import org.wso2.carbon.user.mgt.common.UIPermissionNode; -import org.wso2.carbon.user.mgt.common.UserAdminException; - -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -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.MediaType; -import javax.ws.rs.core.Response; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -@SuppressWarnings("NonJaxWsWebServices") -public class Role { - - private static Log log = LogFactory.getLog(Role.class); - - /** - * Get user roles (except all internal roles) from system. - * - * @return A list of users - */ - @GET - @Produces({MediaType.APPLICATION_JSON}) - public Response getRoles() { - List filteredRoles; - try { - filteredRoles = getRolesFromUserStore(); - } catch (MDMAPIException e) { - log.error(e.getErrorMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getErrorMessage()).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("All user roles were successfully retrieved."); - responsePayload.setResponseContent(filteredRoles); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - /** - * Get user roles by user store(except all internal roles) from system. - * - * @return A list of users - */ - @GET - @Path("{userStore}") - @Produces({MediaType.APPLICATION_JSON}) - public Response getRoles(@PathParam("userStore") String userStore) { - String[] roles; - try { - AbstractUserStoreManager abstractUserStoreManager = - (AbstractUserStoreManager) DeviceMgtAPIUtils.getUserStoreManager(); - if (log.isDebugEnabled()) { - log.debug("Getting the list of user roles"); - } - roles = abstractUserStoreManager.getRoleNames(userStore + "/*", -1, false, true, true); - - } catch (UserStoreException | MDMAPIException e) { - String msg = "Error occurred while retrieving the list of user roles."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - // removing all internal roles and roles created for Service-providers - List filteredRoles = new ArrayList<>(); - for (String role : roles) { - if (!(role.startsWith("Internal/") || role.startsWith("Application/"))) { - filteredRoles.add(role); - } - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("All user roles were successfully retrieved."); - responsePayload.setResponseContent(filteredRoles); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - /** - * Get user roles by providing a filtering criteria(except all internal roles & system roles) from system. - * - * @return A list of users - */ - @GET - @Path("search") - @Produces({MediaType.APPLICATION_JSON}) - public Response getMatchingRoles(@QueryParam("filter") String filter) { - String[] roles; - try { - AbstractUserStoreManager abstractUserStoreManager = - (AbstractUserStoreManager) DeviceMgtAPIUtils.getUserStoreManager(); - if (log.isDebugEnabled()) { - log.debug("Getting the list of user roles using filter : " + filter); - } - roles = abstractUserStoreManager.getRoleNames("*" + filter + "*", -1, true, true, true); - - } catch (UserStoreException | MDMAPIException e) { - String msg = "Error occurred while retrieving the list of user roles using the filter : " + filter; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - // removing all internal roles and roles created for Service-providers - List filteredRoles = new ArrayList<>(); - for (String role : roles) { - if (!(role.startsWith("Internal/") || role.startsWith("Application/"))) { - filteredRoles.add(role); - } - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("All matching user roles were successfully retrieved."); - responsePayload.setResponseContent(filteredRoles); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - /** - * Get role permissions. - * - * @return list of permissions - */ - @GET - @Path("permissions") - @Produces({MediaType.APPLICATION_JSON}) - public Response getPermissions(@QueryParam("rolename") String roleName) { - try { - final UserRealm userRealm = DeviceMgtAPIUtils.getUserRealm(); - org.wso2.carbon.user.core.UserRealm userRealmCore = null; - final UIPermissionNode rolePermissions; - if (userRealm instanceof org.wso2.carbon.user.core.UserRealm) { - userRealmCore = (org.wso2.carbon.user.core.UserRealm) userRealm; - } - final UserRealmProxy userRealmProxy = new UserRealmProxy(userRealmCore); - rolePermissions = getUIPermissionNode(roleName, userRealmProxy); - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("All permissions retrieved"); - responsePayload.setResponseContent(rolePermissions); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } catch (UserAdminException | MDMAPIException e) { - String msg = "Error occurred while retrieving the user role"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - /** - * Get user role of the system - * - * @return user role - */ - @GET - @Path("role") - @Produces({MediaType.APPLICATION_JSON}) - public Response getRole(@QueryParam("rolename") String roleName) { - RoleWrapper roleWrapper = new RoleWrapper(); - try { - final UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - final UserRealm userRealm = DeviceMgtAPIUtils.getUserRealm(); - org.wso2.carbon.user.core.UserRealm userRealmCore = null; - if (userRealm instanceof org.wso2.carbon.user.core.UserRealm) { - userRealmCore = (org.wso2.carbon.user.core.UserRealm) userRealm; - } - - final UserRealmProxy userRealmProxy = new UserRealmProxy(userRealmCore); - if (log.isDebugEnabled()) { - log.debug("Getting the list of user roles"); - } - if (userStoreManager.isExistingRole(roleName)) { - roleWrapper.setRoleName(roleName); - roleWrapper.setUsers(userStoreManager.getUserListOfRole(roleName)); - // Get the permission nodes and hand picking only device management and login perms - final UIPermissionNode rolePermissions = getUIPermissionNode(roleName, userRealmProxy); - ArrayList permList = new ArrayList<>(); - iteratePermissions(rolePermissions, permList); - roleWrapper.setPermissionList(rolePermissions); - String[] permListAr = new String[permList.size()]; - roleWrapper.setPermissions(permList.toArray(permListAr)); - } - } catch (UserStoreException | UserAdminException | MDMAPIException e) { - String msg = "Error occurred while retrieving the user role"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("All user roles were successfully retrieved."); - responsePayload.setResponseContent(roleWrapper); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - private UIPermissionNode getUIPermissionNode(String roleName, UserRealmProxy userRealmProxy) - throws UserAdminException { - final UIPermissionNode rolePermissions = - userRealmProxy.getRolePermissions(roleName, MultitenantConstants.SUPER_TENANT_ID); - UIPermissionNode[] deviceMgtPermissions = new UIPermissionNode[2]; - - for (UIPermissionNode permissionNode : rolePermissions.getNodeList()) { - if (permissionNode.getResourcePath().equals("/permission/admin")) { - for (UIPermissionNode node : permissionNode.getNodeList()) { - if (node.getResourcePath().equals("/permission/admin/device-mgt")) { - deviceMgtPermissions[0] = node; - } else if (node.getResourcePath().equals("/permission/admin/login")) { - deviceMgtPermissions[1] = node; - } - } - } - } - rolePermissions.setNodeList(deviceMgtPermissions); - return rolePermissions; - } - - /** - * API is used to persist a new Role - * - * @param roleWrapper for role - * @return response - */ - @POST - @Produces({MediaType.APPLICATION_JSON}) - public Response addRole(RoleWrapper roleWrapper) { - try { - UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - if (log.isDebugEnabled()) { - log.debug("Persisting the role to user store"); - } - Permission[] permissions = null; - if (roleWrapper.getPermissions() != null && roleWrapper.getPermissions().length > 0) { - permissions = new Permission[roleWrapper.getPermissions().length]; - - for (int i = 0; i < permissions.length; i++) { - String permission = roleWrapper.getPermissions()[i]; - permissions[i] = new Permission(permission, CarbonConstants.UI_PERMISSION_ACTION); - } - } - userStoreManager.addRole(roleWrapper.getRoleName(), roleWrapper.getUsers(), permissions); - } catch (UserStoreException | MDMAPIException e) { - String msg = e.getMessage(); - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - return Response.status(Response.Status.OK).build(); - } - - /** - * API is used to update a role Role - * - * @param roleWrapper for role - * @return response - */ - @PUT - @Produces({MediaType.APPLICATION_JSON}) - public Response updateRole(@QueryParam("rolename") String roleName, RoleWrapper roleWrapper) { - String newRoleName = roleWrapper.getRoleName(); - try { - final UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - final AuthorizationManager authorizationManager = DeviceMgtAPIUtils.getAuthorizationManager(); - if (log.isDebugEnabled()) { - log.debug("Updating the role to user store"); - } - if (newRoleName != null && !roleName.equals(newRoleName)) { - userStoreManager.updateRoleName(roleName, newRoleName); - } - if (roleWrapper.getUsers() != null) { - SetReferenceTransformer transformer = new SetReferenceTransformer<>(); - transformer.transform(Arrays.asList(userStoreManager.getUserListOfRole(newRoleName)), - Arrays.asList(roleWrapper.getUsers())); - final String[] usersToAdd = transformer.getObjectsToAdd().toArray(new String[transformer - .getObjectsToAdd().size()]); - final String[] usersToDelete = transformer.getObjectsToRemove().toArray(new String[transformer - .getObjectsToRemove().size()]); - userStoreManager.updateUserListOfRole(newRoleName, usersToDelete, usersToAdd); - } - if (roleWrapper.getPermissions() != null) { - // Delete all authorizations for the current role before authorizing the permission tree - authorizationManager.clearRoleAuthorization(roleName); - if (roleWrapper.getPermissions().length > 0) { - for (int i = 0; i < roleWrapper.getPermissions().length; i++) { - String permission = roleWrapper.getPermissions()[i]; - authorizationManager.authorizeRole(roleName, permission, CarbonConstants.UI_PERMISSION_ACTION); - } - } - } - } catch (UserStoreException | MDMAPIException e) { - String msg = e.getMessage(); - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - return Response.status(Response.Status.OK).build(); - } - - /** - * API is used to delete a role and authorizations - * - * @param roleName to delete - * @return response - */ - @DELETE - @Produces({MediaType.APPLICATION_JSON}) - public Response deleteRole(@QueryParam("rolename") String roleName) { - try { - final UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - final AuthorizationManager authorizationManager = DeviceMgtAPIUtils.getAuthorizationManager(); - if (log.isDebugEnabled()) { - log.debug("Deleting the role in user store"); - } - userStoreManager.deleteRole(roleName); - // Delete all authorizations for the current role before deleting - authorizationManager.clearRoleAuthorization(roleName); - } catch (UserStoreException | MDMAPIException e) { - String msg = "Error occurred while deleting the role: " + roleName; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - return Response.status(Response.Status.OK).build(); - } - - /** - * API is used to update users of a role - * - * @param roleName to update - * @param userList of the users - * @return response - */ - @PUT - @Path("users") - @Produces({MediaType.APPLICATION_JSON}) - public Response updateUsers(@QueryParam("rolename") String roleName, List userList) { - try { - final UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - if (log.isDebugEnabled()) { - log.debug("Updating the users of a role"); - } - SetReferenceTransformer transformer = new SetReferenceTransformer<>(); - transformer.transform(Arrays.asList(userStoreManager.getUserListOfRole(roleName)), - userList); - final String[] usersToAdd = transformer.getObjectsToAdd().toArray(new String[transformer - .getObjectsToAdd().size()]); - final String[] usersToDelete = transformer.getObjectsToRemove().toArray(new String[transformer - .getObjectsToRemove().size()]); - - userStoreManager.updateUserListOfRole(roleName, usersToDelete, usersToAdd); - } catch (UserStoreException | MDMAPIException e) { - String msg = "Error occurred while saving the users of the role: " + roleName; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - return Response.status(Response.Status.OK).build(); - } - - private ArrayList iteratePermissions(UIPermissionNode uiPermissionNode, ArrayList list) { - for (UIPermissionNode permissionNode : uiPermissionNode.getNodeList()) { - list.add(permissionNode.getResourcePath()); - if (permissionNode.getNodeList() != null && permissionNode.getNodeList().length > 0) { - iteratePermissions(permissionNode, list); - } - } - return list; - } - - /** - * This method is used to retrieve the role count of the system. - * - * @return returns the count. - */ - @GET - @Path("count") - public Response getRoleCount() { - try { - List filteredRoles = getRolesFromUserStore(); - Integer count = filteredRoles.size(); - return Response.status(Response.Status.OK).entity(count).build(); - } catch (MDMAPIException e) { - log.error(e.getErrorMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getErrorMessage()).build(); - } - } - - private List getRolesFromUserStore() throws MDMAPIException { - UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - String[] roles; - try { - if (log.isDebugEnabled()) { - log.debug("Getting the list of user roles"); - } - roles = userStoreManager.getRoleNames(); - - } catch (UserStoreException e) { - String msg = "Error occurred while retrieving the list of user roles."; - throw new MDMAPIException(msg, e); - } - // removing all internal roles and roles created for Service-providers - List filteredRoles = new ArrayList<>(); - for (String role : roles) { - if (!(role.startsWith("Internal/") || role.startsWith("Application/"))) { - filteredRoles.add(role); - } - } - return filteredRoles; - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/User.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/User.java deleted file mode 100644 index bbfed9dad..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/User.java +++ /dev/null @@ -1,757 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.api; - -import org.apache.commons.codec.binary.Base64; -import org.apache.commons.httpclient.HttpStatus; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.context.CarbonContext; -import org.wso2.carbon.device.mgt.common.DeviceManagementException; -import org.wso2.carbon.device.mgt.common.PaginationRequest; -import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService; -import org.wso2.carbon.device.mgt.core.service.EmailMetaInfo; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import org.wso2.carbon.mdm.api.util.CredentialManagementResponseBuilder; -import org.wso2.carbon.mdm.api.util.DeviceMgtAPIUtils; -import org.wso2.carbon.mdm.api.util.ResponsePayload; -import org.wso2.carbon.mdm.beans.UserCredentialWrapper; -import org.wso2.carbon.mdm.beans.UserWrapper; -import org.wso2.carbon.mdm.util.Constants; -import org.wso2.carbon.mdm.util.SetReferenceTransformer; -import org.wso2.carbon.user.api.UserStoreException; -import org.wso2.carbon.user.api.UserStoreManager; -import org.wso2.carbon.utils.multitenancy.MultitenantConstants; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -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.MediaType; -import javax.ws.rs.core.Response; -import java.io.UnsupportedEncodingException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Random; -import java.util.TreeSet; - -/** - * This class represents the JAX-RS services of User related functionality. - */ -@SuppressWarnings("NonJaxWsWebServices") -public class User { - - private static final String ROLE_EVERYONE = "Internal/everyone"; - private static Log log = LogFactory.getLog(User.class); - - /** - * Method to add user to emm-user-store. - * - * @param userWrapper Wrapper object representing input json payload - * @return {Response} Status of the request wrapped inside Response object - */ - @POST - @Consumes({MediaType.APPLICATION_JSON}) - @Produces({MediaType.APPLICATION_JSON}) - public Response addUser(UserWrapper userWrapper) { - ResponsePayload responsePayload = new ResponsePayload(); - try { - UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - if (userStoreManager.isExistingUser(userWrapper.getUsername())) { - // if user already exists - if (log.isDebugEnabled()) { - log.debug("User by username: " + userWrapper.getUsername() + - " already exists. Therefore, request made to add user was refused."); - } - // returning response with bad request state - responsePayload.setStatusCode(HttpStatus.SC_CONFLICT); - responsePayload. - setMessageFromServer("User by username: " + userWrapper.getUsername() + - " already exists. Therefore, request made to add user was refused."); - return Response.status(Response.Status.CONFLICT).entity(responsePayload).build(); - } else { - String initialUserPassword = generateInitialUserPassword(); - Map defaultUserClaims = - buildDefaultUserClaims(userWrapper.getFirstname(), userWrapper.getLastname(), - userWrapper.getEmailAddress()); - // calling addUser method of carbon user api - userStoreManager.addUser(userWrapper.getUsername(), initialUserPassword, - userWrapper.getRoles(), defaultUserClaims, null); - // invite newly added user to enroll device - inviteNewlyAddedUserToEnrollDevice(userWrapper.getUsername(), initialUserPassword); - // Outputting debug message upon successful addition of user - if (log.isDebugEnabled()) { - log.debug("User by username: " + userWrapper.getUsername() + " was successfully added."); - } - // returning response with success state - responsePayload.setStatusCode(HttpStatus.SC_CREATED); - responsePayload.setMessageFromServer("User by username: " + userWrapper.getUsername() + - " was successfully added."); - return Response.status(Response.Status.CREATED).entity(responsePayload).build(); - } - } catch (UserStoreException | MDMAPIException e) { - String msg = "Exception in trying to add user by username: " + userWrapper.getUsername(); - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - /** - * Method to get user information from emm-user-store. - * - * @param username User-name of the user - * @return {Response} Status of the request wrapped inside Response object. - */ - @GET - @Path("view") - @Produces({MediaType.APPLICATION_JSON}) - public Response getUser(@QueryParam("username") String username) { - ResponsePayload responsePayload = new ResponsePayload(); - try { - UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - if (userStoreManager.isExistingUser(username)) { - UserWrapper user = new UserWrapper(); - user.setUsername(username); - user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS)); - user.setFirstname(getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME)); - user.setLastname(getClaimValue(username, Constants.USER_CLAIM_LAST_NAME)); - // Outputting debug message upon successful retrieval of user - if (log.isDebugEnabled()) { - log.debug("User by username: " + username + " was found."); - } - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("User information was retrieved successfully."); - responsePayload.setResponseContent(user); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } else { - // Outputting debug message upon trying to remove non-existing user - if (log.isDebugEnabled()) { - log.debug("User by username: " + username + " does not exist."); - } - // returning response with bad request state - responsePayload.setStatusCode(HttpStatus.SC_BAD_REQUEST); - responsePayload.setMessageFromServer( - "User by username: " + username + " does not exist."); - return Response.status(Response.Status.BAD_REQUEST).entity(responsePayload).build(); - } - } catch (UserStoreException | MDMAPIException e) { - String msg = "Exception in trying to retrieve user by username: " + username; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - /** - * Update user in user store - * - * @param userWrapper Wrapper object representing input json payload - * @return {Response} Status of the request wrapped inside Response object. - */ - @PUT - @Consumes({MediaType.APPLICATION_JSON}) - @Produces({MediaType.APPLICATION_JSON}) - public Response updateUser(UserWrapper userWrapper, @QueryParam("username") String username) { - ResponsePayload responsePayload = new ResponsePayload(); - try { - UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - if (userStoreManager.isExistingUser(userWrapper.getUsername())) { - Map defaultUserClaims = - buildDefaultUserClaims(userWrapper.getFirstname(), userWrapper.getLastname(), - userWrapper.getEmailAddress()); - if (StringUtils.isNotEmpty(userWrapper.getPassword())) { - // Decoding Base64 encoded password - byte[] decodedBytes = Base64.decodeBase64(userWrapper.getPassword()); - userStoreManager.updateCredentialByAdmin(userWrapper.getUsername(), - new String(decodedBytes, "UTF-8")); - log.debug("User credential of username: " + userWrapper.getUsername() + " has been changed"); - } - List listofFilteredRoles = getFilteredRoles(userStoreManager, userWrapper.getUsername()); - final String[] existingRoles = listofFilteredRoles.toArray(new String[listofFilteredRoles.size()]); - - /* - Use the Set theory to find the roles to delete and roles to add - The difference of roles in existingRolesSet and newRolesSet needed to be deleted - new roles to add = newRolesSet - The intersection of roles in existingRolesSet and newRolesSet - */ - final TreeSet existingRolesSet = new TreeSet<>(); - Collections.addAll(existingRolesSet, existingRoles); - final TreeSet newRolesSet = new TreeSet<>(); - Collections.addAll(newRolesSet, userWrapper.getRoles()); - existingRolesSet.removeAll(newRolesSet); - // Now we have the roles to delete - String[] rolesToDelete = existingRolesSet.toArray(new String[existingRolesSet.size()]); - List roles = new ArrayList<>(Arrays.asList(rolesToDelete)); - roles.remove(ROLE_EVERYONE); - rolesToDelete = new String[0]; - // Clearing and re-initializing the set - existingRolesSet.clear(); - Collections.addAll(existingRolesSet, existingRoles); - newRolesSet.removeAll(existingRolesSet); - // Now we have the roles to add - String[] rolesToAdd = newRolesSet.toArray(new String[newRolesSet.size()]); - userStoreManager.updateRoleListOfUser(userWrapper.getUsername(), rolesToDelete, rolesToAdd); - userStoreManager.setUserClaimValues(userWrapper.getUsername(), defaultUserClaims, null); - // Outputting debug message upon successful addition of user - if (log.isDebugEnabled()) { - log.debug("User by username: " + userWrapper.getUsername() + " was successfully updated."); - } - // returning response with success state - responsePayload.setStatusCode(HttpStatus.SC_CREATED); - responsePayload.setMessageFromServer("User by username: " + userWrapper.getUsername() + - " was successfully updated."); - return Response.status(Response.Status.CREATED).entity(responsePayload).build(); - } else { - if (log.isDebugEnabled()) { - log.debug("User by username: " + userWrapper.getUsername() + - " doesn't exists. Therefore, request made to update user was refused."); - } - // returning response with bad request state - responsePayload.setStatusCode(HttpStatus.SC_CONFLICT); - responsePayload. - setMessageFromServer("User by username: " + userWrapper.getUsername() + - " doesn't exists. Therefore, request made to update user was refused."); - return Response.status(Response.Status.CONFLICT).entity(responsePayload).build(); - } - } catch (UserStoreException | UnsupportedEncodingException | MDMAPIException e) { - String msg = "Exception in trying to update user by username: " + userWrapper.getUsername(); - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - /** - * Private method to be used by addUser() to - * generate an initial user password for a user. - * This will be the password used by a user for his initial login to the system. - * - * @return {string} Initial User Password - */ - private String generateInitialUserPassword() { - int passwordLength = 6; - //defining the pool of characters to be used for initial password generation - String lowerCaseCharset = "abcdefghijklmnopqrstuvwxyz"; - String upperCaseCharset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - String numericCharset = "0123456789"; - Random randomGenerator = new Random(); - String totalCharset = lowerCaseCharset + upperCaseCharset + numericCharset; - int totalCharsetLength = totalCharset.length(); - StringBuilder initialUserPassword = new StringBuilder(); - for (int i = 0; i < passwordLength; i++) { - initialUserPassword - .append(totalCharset.charAt(randomGenerator.nextInt(totalCharsetLength))); - } - if (log.isDebugEnabled()) { - log.debug("Initial user password is created for new user: " + initialUserPassword); - } - return initialUserPassword.toString(); - } - - /** - * Method to build default user claims. - * - * @param firstname First name of the user - * @param lastname Last name of the user - * @param emailAddress Email address of the user - * @return {Object} Default user claims to be provided - */ - private Map buildDefaultUserClaims(String firstname, String lastname, String emailAddress) { - Map defaultUserClaims = new HashMap<>(); - defaultUserClaims.put(Constants.USER_CLAIM_FIRST_NAME, firstname); - defaultUserClaims.put(Constants.USER_CLAIM_LAST_NAME, lastname); - defaultUserClaims.put(Constants.USER_CLAIM_EMAIL_ADDRESS, emailAddress); - if (log.isDebugEnabled()) { - log.debug("Default claim map is created for new user: " + defaultUserClaims.toString()); - } - return defaultUserClaims; - } - - /** - * Method to remove user from emm-user-store. - * - * @param username Username of the user - * @return {Response} Status of the request wrapped inside Response object. - */ - @DELETE - @Produces({MediaType.APPLICATION_JSON}) - public Response removeUser(@QueryParam("username") String username) { - ResponsePayload responsePayload = new ResponsePayload(); - try { - UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - if (userStoreManager.isExistingUser(username)) { - // if user already exists, trying to remove user - userStoreManager.deleteUser(username); - // Outputting debug message upon successful removal of user - if (log.isDebugEnabled()) { - log.debug("User by username: " + username + " was successfully removed."); - } - // returning response with success state - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer( - "User by username: " + username + " was successfully removed."); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } else { - // Outputting debug message upon trying to remove non-existing user - if (log.isDebugEnabled()) { - log.debug("User by username: " + username + " does not exist for removal."); - } - // returning response with bad request state - responsePayload.setStatusCode(HttpStatus.SC_BAD_REQUEST); - responsePayload.setMessageFromServer( - "User by username: " + username + " does not exist for removal."); - return Response.status(Response.Status.BAD_REQUEST).entity(responsePayload).build(); - } - } catch (UserStoreException | MDMAPIException e) { - String msg = "Exception in trying to remove user by username: " + username; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - /** - * get all the roles except for the internal/xxx and application/xxx - * - * @param userStoreManager User Store Manager associated with the currently logged in user - * @param username Username of the currently logged in user - * @return the list of filtered roles - */ - private List getFilteredRoles(UserStoreManager userStoreManager, String username) { - String[] roleListOfUser = new String[0]; - try { - roleListOfUser = userStoreManager.getRoleListOfUser(username); - } catch (UserStoreException e) { - e.printStackTrace(); - } - List filteredRoles = new ArrayList<>(); - for (String role : roleListOfUser) { - if (!(role.startsWith("Internal/") || role.startsWith("Application/"))) { - filteredRoles.add(role); - } - } - return filteredRoles; - } - - /** - * Get user's roles by username - * - * @param username Username of the user - * @return {Response} Status of the request wrapped inside Response object. - */ - @GET - @Path("roles") - @Produces({MediaType.APPLICATION_JSON}) - public Response getRoles(@QueryParam("username") String username) { - ResponsePayload responsePayload = new ResponsePayload(); - try { - UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - if (userStoreManager.isExistingUser(username)) { - responsePayload.setResponseContent(Collections.singletonList(getFilteredRoles(userStoreManager, username))); - // Outputting debug message upon successful removal of user - if (log.isDebugEnabled()) { - log.debug("User by username: " + username + " was successfully removed."); - } - // returning response with success state - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer( - "User roles obtained for user " + username); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } else { - // Outputting debug message upon trying to remove non-existing user - if (log.isDebugEnabled()) { - log.debug("User by username: " + username + " does not exist for role retrieval."); - } - // returning response with bad request state - responsePayload.setStatusCode(HttpStatus.SC_BAD_REQUEST); - responsePayload.setMessageFromServer( - "User by username: " + username + " does not exist for role retrieval."); - return Response.status(Response.Status.BAD_REQUEST).entity(responsePayload).build(); - } - } catch (UserStoreException | MDMAPIException e) { - String msg = "Exception in trying to retrieve roles for user by username: " + username; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - /** - * Get the list of all users with all user-related info. - * - * @return A list of users - */ - @GET - @Produces({MediaType.APPLICATION_JSON}) - public Response getAllUsers() { - if (log.isDebugEnabled()) { - log.debug("Getting the list of users with all user-related information"); - } - List userList; - try { - UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - String[] users = userStoreManager.listUsers("*", -1); - userList = new ArrayList<>(users.length); - UserWrapper user; - for (String username : users) { - user = new UserWrapper(); - user.setUsername(username); - user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS)); - user.setFirstname(getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME)); - user.setLastname(getClaimValue(username, Constants.USER_CLAIM_LAST_NAME)); - userList.add(user); - } - } catch (UserStoreException | MDMAPIException e) { - String msg = "Error occurred while retrieving the list of users"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - int count; - count = userList.size(); - responsePayload.setMessageFromServer("All users were successfully retrieved. " + - "Obtained user count: " + count); - responsePayload.setResponseContent(userList); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - /** - * Get the list of all users with all user-related info. - * - * @return A list of users - */ - @GET - @Path("{filter}") - @Produces({MediaType.APPLICATION_JSON}) - public Response getMatchingUsers(@PathParam("filter") String filter) { - if (log.isDebugEnabled()) { - log.debug("Getting the list of users with all user-related information using the filter : " + filter); - } - List userList; - try { - UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - String[] users = userStoreManager.listUsers(filter + "*", -1); - userList = new ArrayList<>(users.length); - UserWrapper user; - for (String username : users) { - user = new UserWrapper(); - user.setUsername(username); - user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS)); - user.setFirstname(getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME)); - user.setLastname(getClaimValue(username, Constants.USER_CLAIM_LAST_NAME)); - userList.add(user); - } - } catch (UserStoreException | MDMAPIException e) { - String msg = "Error occurred while retrieving the list of users using the filter : " + filter; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - int count; - count = userList.size(); - responsePayload.setMessageFromServer("All users were successfully retrieved. " + - "Obtained user count: " + count); - responsePayload.setResponseContent(userList); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - /** - * Get the list of user names in the system. - * - * @return A list of user names. - */ - @GET - @Path("view-users") - public Response getAllUsersByUsername(@QueryParam("username") String userName) { - if (log.isDebugEnabled()) { - log.debug("Getting the list of users by name"); - } - List userList; - try { - UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - String[] users = userStoreManager.listUsers("*" + userName + "*", -1); - userList = new ArrayList<>(users.length); - UserWrapper user; - for (String username : users) { - user = new UserWrapper(); - user.setUsername(username); - user.setEmailAddress(getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS)); - user.setFirstname(getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME)); - user.setLastname(getClaimValue(username, Constants.USER_CLAIM_LAST_NAME)); - userList.add(user); - } - } catch (UserStoreException | MDMAPIException e) { - String msg = "Error occurred while retrieving the list of users"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - int count; - count = userList.size(); - responsePayload.setMessageFromServer("All users by username were successfully retrieved. " + - "Obtained user count: " + count); - responsePayload.setResponseContent(userList); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - /** - * Get the list of user names in the system. - * - * @return A list of user names. - */ - @GET - @Path("users-by-username") - public Response getAllUserNamesByUsername(@QueryParam("username") String userName) { - if (log.isDebugEnabled()) { - log.debug("Getting the list of users by name"); - } - List userList; - try { - UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - String[] users = userStoreManager.listUsers("*" + userName + "*", -1); - userList = new ArrayList<>(users.length); - Collections.addAll(userList, users); - } catch (UserStoreException | MDMAPIException e) { - String msg = "Error occurred while retrieving the list of users"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - int count; - count = userList.size(); - responsePayload.setMessageFromServer("All users by username were successfully retrieved. " + - "Obtained user count: " + count); - responsePayload.setResponseContent(userList); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - /** - * Gets a claim-value from user-store. - * - * @param username Username of the user - * @param claimUri required ClaimUri - * @return claim value - */ - private String getClaimValue(String username, String claimUri) throws MDMAPIException { - UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - try { - return userStoreManager.getUserClaimValue(username, claimUri, null); - } catch (UserStoreException e) { - throw new MDMAPIException("Error occurred while retrieving value assigned to the claim '" + - claimUri + "'", e); - } - } - - /** - * Method used to send an invitation email to a new user to enroll a device. - * - * @param username Username of the user - */ - private void inviteNewlyAddedUserToEnrollDevice(String username, String password) throws MDMAPIException { - if (log.isDebugEnabled()) { - log.debug("Sending invitation mail to user by username: " + username); - } - String tenantDomain = CarbonContext.getThreadLocalCarbonContext().getTenantDomain(); - if (MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equalsIgnoreCase(tenantDomain)) { - tenantDomain = ""; - } - if (!username.contains("/")) { - username = "/" + username; - } - String[] usernameBits = username.split("/"); - DeviceManagementProviderService deviceManagementProviderService = DeviceMgtAPIUtils.getDeviceManagementService(); - - Properties props = new Properties(); - props.setProperty("username", usernameBits[1]); - props.setProperty("domain-name", tenantDomain); - props.setProperty("first-name", getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME)); - props.setProperty("password", password); - - String recipient = getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS); - - EmailMetaInfo metaInfo = new EmailMetaInfo(recipient, props); - try { - deviceManagementProviderService.sendRegistrationEmail(metaInfo); - } catch (DeviceManagementException e) { - String msg = "Error occurred while sending registration email to user '" + username + "'"; - log.error(msg, e); - throw new MDMAPIException(msg, e); - } - } - - /** - * Method used to send an invitation email to a existing user to enroll a device. - * - * @param usernames Username list of the users to be invited - */ - @POST - @Path("email-invitation") - @Produces({MediaType.APPLICATION_JSON}) - public Response inviteExistingUsersToEnrollDevice(List usernames) { - if (log.isDebugEnabled()) { - log.debug("Sending enrollment invitation mail to existing user."); - } - DeviceManagementProviderService deviceManagementProviderService = DeviceMgtAPIUtils.getDeviceManagementService(); - try { - for (String username : usernames) { - String recipient = getClaimValue(username, Constants.USER_CLAIM_EMAIL_ADDRESS); - - Properties props = new Properties(); - props.setProperty("first-name", getClaimValue(username, Constants.USER_CLAIM_FIRST_NAME)); - props.setProperty("username", username); - - EmailMetaInfo metaInfo = new EmailMetaInfo(recipient, props); - deviceManagementProviderService.sendEnrolmentInvitation(metaInfo); - } - } catch (DeviceManagementException | MDMAPIException e) { - String msg = "Error occurred while inviting user to enrol their device"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - ResponsePayload responsePayload = new ResponsePayload(); - responsePayload.setStatusCode(HttpStatus.SC_OK); - responsePayload.setMessageFromServer("Email invitation was successfully sent to user."); - return Response.status(Response.Status.OK).entity(responsePayload).build(); - } - - /** - * Get a list of devices based on the username. - * - * @param username Username of the device owner - * @return A list of devices - */ - @GET - @Produces({MediaType.APPLICATION_JSON}) - @Path("devices") - public Response getAllDeviceOfUser(@QueryParam("username") String username, @QueryParam("start") int startIdx, - @QueryParam("length") int length) { - DeviceManagementProviderService dmService; - try { - dmService = DeviceMgtAPIUtils.getDeviceManagementService(); - if (length > 0) { - PaginationRequest request = new PaginationRequest(startIdx, length); - request.setOwner(username); - return Response.status(Response.Status.OK).entity(dmService.getDevicesOfUser(request)).build(); - } - return Response.status(Response.Status.OK).entity(dmService.getDevicesOfUser(username)).build(); - } catch (DeviceManagementException e) { - String msg = "Device management error"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - /** - * This method is used to retrieve the user count of the system. - * - * @return returns the count. - * @ - */ - @GET - @Path("count") - public Response getUserCount() { - try { - String[] users = DeviceMgtAPIUtils.getUserStoreManager().listUsers("*", -1); - Integer count = 0; - if (users != null) { - count = users.length; - } - return Response.status(Response.Status.OK).entity(count).build(); - } catch (UserStoreException | MDMAPIException e) { - String msg = - "Error occurred while retrieving the list of users that exist within the current tenant"; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - /** - * API is used to update roles of a user - * - * @param username - * @param userList - * @return - * @ - */ - @PUT - @Path("{roleName}/users") - @Produces({MediaType.APPLICATION_JSON}) - public Response updateRoles(@PathParam("username") String username, List userList) { - try { - final UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - if (log.isDebugEnabled()) { - log.debug("Updating the roles of a user"); - } - SetReferenceTransformer transformer = new SetReferenceTransformer<>(); - transformer.transform(Arrays.asList(userStoreManager.getRoleListOfUser(username)), - userList); - final String[] rolesToAdd = transformer.getObjectsToAdd().toArray(new String[transformer.getObjectsToAdd().size()]); - final String[] rolesToDelete = transformer.getObjectsToRemove().toArray(new String[transformer.getObjectsToRemove().size()]); - - userStoreManager.updateRoleListOfUser(username, rolesToDelete, rolesToAdd); - } catch (UserStoreException | MDMAPIException e) { - String msg = "Error occurred while saving the roles for user: " + username; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - return Response.status(Response.Status.OK).build(); - } - - /** - * Method to change the user password. - * - * @param credentials Wrapper object representing user credentials. - * @return {Response} Status of the request wrapped inside Response object. - * @ - */ - @POST - @Path("change-password") - @Consumes({MediaType.APPLICATION_JSON}) - @Produces({MediaType.APPLICATION_JSON}) - public Response resetPassword(UserCredentialWrapper credentials) { - return CredentialManagementResponseBuilder.buildChangePasswordResponse(credentials); - } - - /** - * Method to change the user password. - * - * @param credentials Wrapper object representing user credentials. - * @return {Response} Status of the request wrapped inside Response object. - * @ - */ - @POST - @Path("reset-password") - @Consumes({MediaType.APPLICATION_JSON}) - @Produces({MediaType.APPLICATION_JSON}) - public Response resetPasswordByAdmin(UserCredentialWrapper credentials) { - return CredentialManagementResponseBuilder.buildResetPasswordResponse(credentials); - } - -} \ No newline at end of file diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/common/ErrorHandler.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/common/ErrorHandler.java deleted file mode 100644 index da8825b17..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/common/ErrorHandler.java +++ /dev/null @@ -1,32 +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.mdm.api.common; - -import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; - -@Produces({ "application/json", "application/xml" }) -public class ErrorHandler implements ExceptionMapper { - - public Response toResponse(MDMAPIException exception) { - ErrorMessage errorMessage = new ErrorMessage(); - errorMessage.setErrorMessage(exception.getErrorMessage()); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorMessage).build(); - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/common/ErrorMessage.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/common/ErrorMessage.java deleted file mode 100644 index 7dbe39553..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/common/ErrorMessage.java +++ /dev/null @@ -1,41 +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.mdm.api.common; - - -public class ErrorMessage { - - private String errorMessage; - private String errorCode; - - public String getErrorMessage() { - return errorMessage; - } - - public void setErrorMessage(String errorMessage) { - this.errorMessage = errorMessage; - } - - public String getErrorCode() { - return errorCode; - } - - public void setErrorCode(String errorCode) { - this.errorCode = errorCode; - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/common/MDMAPIException.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/common/MDMAPIException.java deleted file mode 100644 index 4139e56f4..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/common/MDMAPIException.java +++ /dev/null @@ -1,59 +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.mdm.api.common; - -/** - * Custom exception class for handling CDM API related exceptions. - */ -public class MDMAPIException extends Exception { - - private static final long serialVersionUID = 7950151650447893900L; - private String errorMessage; - - public String getErrorMessage() { - return errorMessage; - } - - public void setErrorMessage(String errorMessage) { - this.errorMessage = errorMessage; - } - - public MDMAPIException(String msg, Exception e) { - super(msg, e); - setErrorMessage(msg); - } - - public MDMAPIException(String msg, Throwable cause) { - super(msg, cause); - setErrorMessage(msg); - } - - public MDMAPIException(String msg) { - super(msg); - setErrorMessage(msg); - } - - public MDMAPIException() { - super(); - } - - public MDMAPIException(Throwable cause) { - super(cause); - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/context/DeviceOperationContext.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/context/DeviceOperationContext.java deleted file mode 100644 index aef30c70f..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/context/DeviceOperationContext.java +++ /dev/null @@ -1,54 +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.mdm.api.context; - -import org.wso2.carbon.device.mgt.common.DeviceIdentifier; -import org.wso2.carbon.device.mgt.common.operation.mgt.Operation; - -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import java.util.List; - -/** - * Model object of DeviceOperation. - */ -@XmlRootElement -public class DeviceOperationContext { - - private List devices; - private Operation operation; - - @XmlElement - public List getDevices() { - return devices; - } - - public void setDevices(List devices) { - this.devices = devices; - } - - @XmlElement - public Operation getOperation() { - return operation; - } - - public void setOperation(Operation operation) { - this.operation = operation; - } -} \ No newline at end of file diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/CredentialManagementResponseBuilder.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/CredentialManagementResponseBuilder.java deleted file mode 100644 index 94f766f55..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/CredentialManagementResponseBuilder.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.api.util; - -import org.apache.commons.codec.binary.Base64; -import org.apache.commons.httpclient.HttpStatus; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import org.wso2.carbon.mdm.beans.UserCredentialWrapper; -import org.wso2.carbon.user.api.UserStoreException; -import org.wso2.carbon.user.api.UserStoreManager; - -import javax.ws.rs.core.Response; -import java.io.UnsupportedEncodingException; - -/** - * This class builds Credential modification related Responses - */ -public class CredentialManagementResponseBuilder { - - private static Log log = LogFactory.getLog(CredentialManagementResponseBuilder.class); - - /** - * Builds the response to change the password of a user - * @param credentials - User credentials - * @return Response Object - */ - public static Response buildChangePasswordResponse(UserCredentialWrapper credentials) { - ResponsePayload responsePayload = new ResponsePayload(); - - try { - UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - byte[] decodedNewPassword = Base64.decodeBase64(credentials.getNewPassword()); - byte[] decodedOldPassword = Base64.decodeBase64(credentials.getOldPassword()); - userStoreManager.updateCredential(credentials.getUsername(), new String( - decodedNewPassword, "UTF-8"), new String(decodedOldPassword, "UTF-8")); - responsePayload.setStatusCode(HttpStatus.SC_CREATED); - responsePayload.setMessageFromServer("User password by username: " + credentials.getUsername() + - " was successfully changed."); - return Response.status(Response.Status.CREATED).entity(responsePayload).build(); - } catch (UserStoreException e) { - log.error(e.getMessage(), e); - responsePayload.setStatusCode(HttpStatus.SC_BAD_REQUEST); - responsePayload.setMessageFromServer("Old password does not match."); - return Response.status(Response.Status.BAD_REQUEST).entity(responsePayload).build(); - } catch (UnsupportedEncodingException e) { - String errorMsg = "Could not change the password of the user: " + credentials.getUsername() + - ". The Character Encoding is not supported."; - log.error(errorMsg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorMsg).build(); - } catch (MDMAPIException e) { - log.error(e.getErrorMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getErrorMessage()).build(); - } - } - - /** - * Builds the response to reset the password of a user - * @param credentials - User credentials - * @return Response Object - */ - public static Response buildResetPasswordResponse(UserCredentialWrapper credentials) { - ResponsePayload responsePayload = new ResponsePayload(); - try { - UserStoreManager userStoreManager = DeviceMgtAPIUtils.getUserStoreManager(); - byte[] decodedNewPassword = Base64.decodeBase64(credentials.getNewPassword()); - userStoreManager.updateCredentialByAdmin(credentials.getUsername(), new String( - decodedNewPassword, "UTF-8")); - responsePayload.setStatusCode(HttpStatus.SC_CREATED); - responsePayload.setMessageFromServer("User password by username: " + credentials.getUsername() + - " was successfully changed."); - return Response.status(Response.Status.CREATED).entity(responsePayload).build(); - } catch (UserStoreException e) { - log.error(e.getMessage(), e); - responsePayload.setStatusCode(HttpStatus.SC_BAD_REQUEST); - responsePayload.setMessageFromServer("Could not change the password."); - return Response.status(Response.Status.BAD_REQUEST).entity(responsePayload).build(); - } catch (UnsupportedEncodingException e) { - String errorMsg = "Could not change the password of the user: " + credentials.getUsername() + - ". The Character Encoding is not supported."; - log.error(errorMsg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorMsg).build(); - } catch (MDMAPIException e) { - log.error(e.getErrorMessage(), e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getErrorMessage()).build(); - } - } - -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/DeviceMgtAPIUtils.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/DeviceMgtAPIUtils.java deleted file mode 100644 index d7cb8f940..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/DeviceMgtAPIUtils.java +++ /dev/null @@ -1,322 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.api.util; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.certificate.mgt.core.service.CertificateManagementService; -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.PaginationResult; -import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry; -import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration; -import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfigurationManagementService; -import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementService; -import org.wso2.carbon.device.mgt.core.app.mgt.ApplicationManagementProviderService; -import org.wso2.carbon.device.mgt.core.device.details.mgt.DeviceInformationManager; -import org.wso2.carbon.device.mgt.core.search.mgt.SearchManagerService; -import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService; -import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import org.wso2.carbon.policy.mgt.common.PolicyMonitoringTaskException; -import org.wso2.carbon.policy.mgt.core.PolicyManagerService; -import org.wso2.carbon.policy.mgt.core.task.TaskScheduleService; -import org.wso2.carbon.user.api.AuthorizationManager; -import org.wso2.carbon.user.api.UserRealm; -import org.wso2.carbon.user.api.UserStoreException; -import org.wso2.carbon.user.api.UserStoreManager; -import org.wso2.carbon.user.core.service.RealmService; - -import javax.ws.rs.core.MediaType; -import java.util.List; - -/** - * MDMAPIUtils class provides utility function used by CDM REST-API classes. - */ -public class DeviceMgtAPIUtils { - - public static final MediaType DEFAULT_CONTENT_TYPE = MediaType.APPLICATION_JSON_TYPE; - private static final String NOTIFIER_FREQUENCY = "notifierFrequency"; - private static Log log = LogFactory.getLog(DeviceMgtAPIUtils.class); - - public static int getNotifierFrequency(TenantConfiguration tenantConfiguration) { - List configEntryList = tenantConfiguration.getConfiguration(); - if (configEntryList != null && !configEntryList.isEmpty()) { - for(ConfigurationEntry entry : configEntryList) { - if (NOTIFIER_FREQUENCY.equals(entry.getName())) { - return Integer.parseInt((String) entry.getValue()); - } - } - } - return 0; - } - - public static void scheduleTaskService(int notifierFrequency) { - TaskScheduleService taskScheduleService; - try { - taskScheduleService = getPolicyManagementService().getTaskScheduleService(); - if (taskScheduleService.isTaskScheduled()) { - taskScheduleService.updateTask(notifierFrequency); - } else { - taskScheduleService.startTask(notifierFrequency); - } - } catch (PolicyMonitoringTaskException e) { - log.error("Exception occurred while starting the Task service.", e); - } - } - - public static DeviceManagementProviderService getDeviceManagementService() { - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - DeviceManagementProviderService deviceManagementProviderService = - (DeviceManagementProviderService) ctx.getOSGiService(DeviceManagementProviderService.class, null); - if (deviceManagementProviderService == null) { - String msg = "Device Management provider service has not initialized."; - log.error(msg); - throw new IllegalStateException(msg); - } - return deviceManagementProviderService; - } - - public static GroupManagementProviderService getGroupManagementProviderService() { - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - GroupManagementProviderService groupManagementProviderService = - (GroupManagementProviderService) ctx.getOSGiService(GroupManagementProviderService.class, null); - if (groupManagementProviderService == null) { - String msg = "Group Management service has not initialized."; - log.error(msg); - throw new IllegalStateException(msg); - } - return groupManagementProviderService; - } - - public static int getTenantId(String tenantDomain) throws MDMAPIException { - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - RealmService realmService = (RealmService) ctx.getOSGiService(RealmService.class, null); - try { - return realmService.getTenantManager().getTenantId(tenantDomain); - } catch (UserStoreException e) { - throw new MDMAPIException( - "Error obtaining tenant id from tenant domain " + tenantDomain); - } - } - - public static UserStoreManager getUserStoreManager() throws MDMAPIException { - RealmService realmService; - UserStoreManager userStoreManager; - try { - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - realmService = (RealmService) ctx.getOSGiService(RealmService.class, null); - if (realmService == null) { - String msg = "Realm service has not initialized."; - log.error(msg); - throw new IllegalStateException(msg); - } - int tenantId = ctx.getTenantId(); - userStoreManager = realmService.getTenantUserRealm(tenantId).getUserStoreManager(); - } catch (UserStoreException e) { - String msg = "Error occurred while retrieving current user store manager"; - log.error(msg, e); - throw new MDMAPIException(msg, e); - } - return userStoreManager; - } - - /** - * Getting the current tenant's user realm - * - * @return - * @throws MDMAPIException - */ - public static UserRealm getUserRealm() throws MDMAPIException { - RealmService realmService; - UserRealm realm; - try { - //PrivilegedCarbonContext.startTenantFlow(); - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - //ctx.setTenantDomain(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME); - //ctx.setTenantId(MultitenantConstants.SUPER_TENANT_ID); - realmService = (RealmService) ctx.getOSGiService(RealmService.class, null); - - if (realmService == null) { - String msg = "Realm service not initialized"; - log.error(msg); - throw new MDMAPIException(msg); - } - int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId(); - realm = realmService.getTenantUserRealm(tenantId); - } catch (UserStoreException e) { - String msg = "Error occurred while retrieving current user realm"; - log.error(msg, e); - throw new MDMAPIException(msg, e); - } finally { - //PrivilegedCarbonContext.endTenantFlow(); - } - return realm; - } - - public static AuthorizationManager getAuthorizationManager() throws MDMAPIException { - RealmService realmService; - AuthorizationManager authorizationManager; - try { - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - realmService = (RealmService) ctx.getOSGiService(RealmService.class, null); - if (realmService == null) { - String msg = "Realm service has not initialized."; - log.error(msg); - throw new IllegalStateException(msg); - } - int tenantId = ctx.getTenantId(); - authorizationManager = realmService.getTenantUserRealm(tenantId).getAuthorizationManager(); - } catch (UserStoreException e) { - String msg = "Error occurred while retrieving current Authorization manager."; - log.error(msg, e); - throw new MDMAPIException(msg, e); - } - return authorizationManager; - } - - /** - * This method is used to get the current tenant id. - * - * @return returns the tenant id. - */ - public static int getTenantId() { - return CarbonContext.getThreadLocalCarbonContext().getTenantId(); - } - - public static DeviceIdentifier instantiateDeviceIdentifier(String deviceType, String deviceId) { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setType(deviceType); - deviceIdentifier.setId(deviceId); - return deviceIdentifier; - } - - public static ApplicationManagementProviderService getAppManagementService() { - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - ApplicationManagementProviderService applicationManagementProviderService = - (ApplicationManagementProviderService) ctx.getOSGiService(ApplicationManagementProviderService.class, null); - if (applicationManagementProviderService == null) { - String msg = "Application management service has not initialized."; - log.error(msg); - throw new IllegalStateException(msg); - } - return applicationManagementProviderService; - } - - public static PolicyManagerService getPolicyManagementService() { - PolicyManagerService policyManagementService; - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - policyManagementService = - (PolicyManagerService) ctx.getOSGiService(PolicyManagerService.class, null); - if (policyManagementService == null) { - String msg = "Policy Management service not initialized."; - log.error(msg); - throw new IllegalStateException(msg); - } - return policyManagementService; - } - - public static TenantConfigurationManagementService getTenantConfigurationManagementService() { - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - TenantConfigurationManagementService tenantConfigurationManagementService = - (TenantConfigurationManagementService) ctx.getOSGiService(TenantConfigurationManagementService.class, null); - if (tenantConfigurationManagementService == null) { - String msg = "Tenant configuration Management service not initialized."; - log.error(msg); - throw new IllegalStateException(msg); - } - return tenantConfigurationManagementService; - } - - public static NotificationManagementService getNotificationManagementService() { - NotificationManagementService notificationManagementService; - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - notificationManagementService = (NotificationManagementService) ctx.getOSGiService( - NotificationManagementService.class, null); - if (notificationManagementService == null) { - String msg = "Notification Management service not initialized."; - log.error(msg); - throw new IllegalStateException(msg); - } - return notificationManagementService; - } - - public static PaginationResult getPagingResponse(int recordsTotal, int recordsFiltered, int draw, List data) { - PaginationResult pagingResponse = new PaginationResult(); - pagingResponse.setRecordsTotal(recordsTotal); - pagingResponse.setRecordsFiltered(recordsFiltered); - pagingResponse.setDraw(draw); - pagingResponse.setData(data); - return pagingResponse; - } - - public static CertificateManagementService getCertificateManagementService() { - - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - CertificateManagementService certificateManagementService = (CertificateManagementService) - ctx.getOSGiService(CertificateManagementService.class, null); - - if (certificateManagementService == null) { - String msg = "Certificate Management service not initialized."; - log.error(msg); - throw new IllegalStateException(msg); - } - - return certificateManagementService; - } - - - public static MediaType getResponseMediaType(String acceptHeader) { - MediaType responseMediaType; - if (acceptHeader == null || MediaType.WILDCARD.equals(acceptHeader)) { - responseMediaType = DEFAULT_CONTENT_TYPE; - } else { - responseMediaType = MediaType.valueOf(acceptHeader); - } - - return responseMediaType; - } - - public static DeviceInformationManager getDeviceInformationManagerService() { - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - DeviceInformationManager deviceInformationManager = - (DeviceInformationManager) ctx.getOSGiService(DeviceInformationManager.class, null); - if (deviceInformationManager == null) { - String msg = "Device information Manager service has not initialized."; - log.error(msg); - throw new IllegalStateException(msg); - } - return deviceInformationManager; - } - - - - public static SearchManagerService getSearchManagerService() { - PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - SearchManagerService searchManagerService = - (SearchManagerService) ctx.getOSGiService(SearchManagerService.class, null); - if (searchManagerService == null) { - String msg = "Device search manager service has not initialized."; - log.error(msg); - throw new IllegalStateException(msg); - } - return searchManagerService; - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/MDMAndroidOperationUtil.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/MDMAndroidOperationUtil.java deleted file mode 100644 index e50fc0bde..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/MDMAndroidOperationUtil.java +++ /dev/null @@ -1,116 +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.mdm.api.util; - -import org.wso2.carbon.device.mgt.common.operation.mgt.Operation; -import org.wso2.carbon.device.mgt.core.operation.mgt.ProfileOperation; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import org.wso2.carbon.mdm.beans.MobileApp; -import org.wso2.carbon.mdm.beans.android.WebApplication; - -/** - * - * This class contains the all the operations related to Android. - */ -public class MDMAndroidOperationUtil { - - /** - * This method is used to create Install Application operation. - * - * @param application MobileApp application - * @return operation - * @throws MDMAPIException - * - */ - public static Operation createInstallAppOperation(MobileApp application) throws MDMAPIException { - - ProfileOperation operation = new ProfileOperation(); - operation.setCode(MDMAppConstants.AndroidConstants.OPCODE_INSTALL_APPLICATION); - operation.setType(Operation.Type.PROFILE); - - switch (application.getType()) { - case ENTERPRISE: - org.wso2.carbon.mdm.beans.android.EnterpriseApplication enterpriseApplication = - new org.wso2.carbon.mdm.beans.android.EnterpriseApplication(); - enterpriseApplication.setType(application.getType().toString()); - enterpriseApplication.setUrl(application.getLocation()); - operation.setPayLoad(enterpriseApplication.toJSON()); - break; - case PUBLIC: - org.wso2.carbon.mdm.beans.android.AppStoreApplication appStoreApplication = - new org.wso2.carbon.mdm.beans.android.AppStoreApplication(); - appStoreApplication.setType(application.getType().toString()); - appStoreApplication.setAppIdentifier(application.getIdentifier()); - operation.setPayLoad(appStoreApplication.toJSON()); - break; - case WEBAPP: - WebApplication webApplication = new WebApplication(); - webApplication.setUrl(application.getLocation()); - webApplication.setName(application.getName()); - webApplication.setType(application.getType().toString()); - operation.setPayLoad(webApplication.toJSON()); - break; - default: - String errorMessage = "Invalid application type."; - throw new MDMAPIException(errorMessage); - } - return operation; - } - - /** - * This method is used to create Uninstall Application operation. - * @param application MobileApp application - * @return operation - * @throws MDMAPIException - */ - public static Operation createAppUninstallOperation(MobileApp application) throws MDMAPIException { - - ProfileOperation operation = new ProfileOperation(); - operation.setCode(MDMAppConstants.AndroidConstants.OPCODE_UNINSTALL_APPLICATION); - operation.setType(Operation.Type.PROFILE); - - switch (application.getType()) { - case ENTERPRISE: - org.wso2.carbon.mdm.beans.android.EnterpriseApplication enterpriseApplication = - new org.wso2.carbon.mdm.beans.android.EnterpriseApplication(); - enterpriseApplication.setType(application.getType().toString()); - enterpriseApplication.setAppIdentifier(application.getAppIdentifier()); - operation.setPayLoad(enterpriseApplication.toJSON()); - break; - case PUBLIC: - org.wso2.carbon.mdm.beans.android.AppStoreApplication appStoreApplication = - new org.wso2.carbon.mdm.beans.android.AppStoreApplication(); - appStoreApplication.setType(application.getType().toString()); - appStoreApplication.setAppIdentifier(application.getAppIdentifier()); - operation.setPayLoad(appStoreApplication.toJSON()); - break; - case WEBAPP: - WebApplication webApplication = new WebApplication(); - webApplication.setUrl(application.getLocation()); - webApplication.setName(application.getName()); - webApplication.setType(application.getType().toString()); - operation.setPayLoad(webApplication.toJSON()); - break; - default: - String errorMessage = "Invalid application type."; - throw new MDMAPIException(errorMessage); - } - return operation; - } - -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/MDMAppConstants.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/MDMAppConstants.java deleted file mode 100644 index a4a7f6071..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/MDMAppConstants.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * - * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.wso2.carbon.mdm.api.util; - -/** - * This class holds all the constants used for IOS and Android. - */ -public class MDMAppConstants { - - public class IOSConstants { - - private IOSConstants() { - throw new AssertionError(); - } - public static final String IS_REMOVE_APP = "isRemoveApp"; - public static final String IS_PREVENT_BACKUP = "isPreventBackup"; - public static final String I_TUNES_ID = "iTunesId"; - public static final String LABEL = "label"; - public static final String OPCODE_INSTALL_ENTERPRISE_APPLICATION = "INSTALL_ENTERPRISE_APPLICATION"; - public static final String OPCODE_INSTALL_STORE_APPLICATION = "INSTALL_STORE_APPLICATION"; - public static final String OPCODE_INSTALL_WEB_APPLICATION = "WEB_CLIP"; - public static final String OPCODE_REMOVE_APPLICATION = "REMOVE_APPLICATION"; - } - - public class AndroidConstants { - - private AndroidConstants() { - throw new AssertionError(); - } - public static final String OPCODE_INSTALL_APPLICATION = "INSTALL_APPLICATION"; - public static final String OPCODE_UNINSTALL_APPLICATION = "UNINSTALL_APPLICATION"; - } - - public class RegistryConstants { - - private RegistryConstants() { - throw new AssertionError(); - } - public static final String GENERAL_CONFIG_RESOURCE_PATH = "general"; - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/MDMIOSOperationUtil.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/MDMIOSOperationUtil.java deleted file mode 100644 index 261555d33..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/MDMIOSOperationUtil.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * - * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.wso2.carbon.mdm.api.util; - -import org.wso2.carbon.device.mgt.common.operation.mgt.Operation; -import org.wso2.carbon.device.mgt.core.operation.mgt.ProfileOperation; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import org.wso2.carbon.mdm.beans.MobileApp; -import org.wso2.carbon.mdm.beans.ios.WebClip; - -import java.util.Properties; - -/** - * This class contains the all the operations related to IOS. - */ -public class MDMIOSOperationUtil { - - /** - * This method is used to create Install Application operation. - * - * @param application MobileApp application - * @return operation - * @throws MDMAPIException - * - */ - public static Operation createInstallAppOperation(MobileApp application) throws MDMAPIException { - - ProfileOperation operation = new ProfileOperation(); - - switch (application.getType()) { - case ENTERPRISE: - org.wso2.carbon.mdm.beans.ios.EnterpriseApplication enterpriseApplication = - new org.wso2.carbon.mdm.beans.ios.EnterpriseApplication(); - enterpriseApplication.setBundleId(application.getId()); - enterpriseApplication.setIdentifier(application.getIdentifier()); - enterpriseApplication.setManifestURL(application.getLocation()); - - Properties properties = application.getProperties(); - enterpriseApplication.setPreventBackupOfAppData((Boolean) properties. - get(MDMAppConstants.IOSConstants.IS_PREVENT_BACKUP)); - enterpriseApplication.setRemoveAppUponMDMProfileRemoval((Boolean) properties. - get(MDMAppConstants.IOSConstants.IS_REMOVE_APP)); - operation.setCode(MDMAppConstants.IOSConstants.OPCODE_INSTALL_ENTERPRISE_APPLICATION); - operation.setPayLoad(enterpriseApplication.toJSON()); - operation.setType(Operation.Type.COMMAND); - break; - case PUBLIC: - org.wso2.carbon.mdm.beans.ios.AppStoreApplication appStoreApplication = - new org.wso2.carbon.mdm.beans.ios.AppStoreApplication(); - appStoreApplication.setRemoveAppUponMDMProfileRemoval((Boolean) application.getProperties(). - get(MDMAppConstants.IOSConstants.IS_REMOVE_APP)); - appStoreApplication.setIdentifier(application.getIdentifier()); - appStoreApplication.setPreventBackupOfAppData((Boolean) application.getProperties(). - get(MDMAppConstants.IOSConstants.IS_PREVENT_BACKUP)); - appStoreApplication.setBundleId(application.getId()); - appStoreApplication.setiTunesStoreID((Integer) application.getProperties(). - get(MDMAppConstants.IOSConstants.I_TUNES_ID)); - operation.setCode(MDMAppConstants.IOSConstants.OPCODE_INSTALL_STORE_APPLICATION); - operation.setType(Operation.Type.COMMAND); - operation.setPayLoad(appStoreApplication.toJSON()); - break; - case WEBAPP: - WebClip webClip = new WebClip(); - webClip.setIcon(application.getIconImage()); - webClip.setIsRemovable(application.getProperties(). - getProperty(MDMAppConstants.IOSConstants.IS_REMOVE_APP)); - webClip.setLabel(application.getProperties(). - getProperty(MDMAppConstants.IOSConstants.LABEL)); - webClip.setURL(application.getLocation()); - - operation.setCode(MDMAppConstants.IOSConstants.OPCODE_INSTALL_WEB_APPLICATION); - operation.setType(Operation.Type.PROFILE); - operation.setPayLoad(webClip.toJSON()); - break; - } - return operation; - } - - public static Operation createAppUninstallOperation(MobileApp application) throws MDMAPIException{ - - ProfileOperation operation = new ProfileOperation(); - operation.setCode(MDMAppConstants.IOSConstants.OPCODE_REMOVE_APPLICATION); - operation.setType(Operation.Type.PROFILE); - - org.wso2.carbon.mdm.beans.ios.RemoveApplication removeApplication = - new org.wso2.carbon.mdm.beans.ios.RemoveApplication(); - removeApplication.setBundleId(application.getIdentifier()); - operation.setPayLoad(removeApplication.toJSON()); - - return operation; - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/ResponsePayload.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/ResponsePayload.java deleted file mode 100644 index 629400066..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/api/util/ResponsePayload.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.api.util; - -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; - -@XmlRootElement -public class ResponsePayload { - - private int statusCode; - private String messageFromServer; - private Object responseContent; - - @XmlElement - public int getStatusCode() { - return statusCode; - } - - public void setStatusCode(int statusCode) { - this.statusCode = statusCode; - } - - @XmlElement - public String getMessageFromServer() { - return messageFromServer; - } - - public void setMessageFromServer(String messageFromServer) { - this.messageFromServer = messageFromServer; - } - - @XmlElement - public Object getResponseContent() { - return responseContent; - } - - public void setResponseContent(Object responseContent) { - this.responseContent = responseContent; - } - - private ResponsePayloadBuilder getBuilder() { - return new ResponsePayloadBuilder(); - } - - public static ResponsePayloadBuilder statusCode(int statusCode) { - ResponsePayload message = new ResponsePayload(); - return message.getBuilder().statusCode(statusCode); - } - - public static ResponsePayloadBuilder messageFromServer(String messageFromServer) { - ResponsePayload message = new ResponsePayload(); - return message.getBuilder().messageFromServer(messageFromServer); - } - - public static ResponsePayloadBuilder responseContent(String responseContent) { - ResponsePayload message = new ResponsePayload(); - return message.getBuilder().responseContent(responseContent); - } - - public class ResponsePayloadBuilder { - - private int statusCode; - private String messageFromServer; - private Object responseContent; - - public ResponsePayloadBuilder statusCode(int statusCode) { - this.statusCode = statusCode; - return this; - } - - public ResponsePayloadBuilder messageFromServer(String messageFromServer) { - this.messageFromServer = messageFromServer; - return this; - } - - public ResponsePayloadBuilder responseContent(String responseContent) { - this.responseContent = responseContent; - return this; - } - - public ResponsePayload build() { - ResponsePayload payload = new ResponsePayload(); - payload.setStatusCode(statusCode); - payload.setMessageFromServer(messageFromServer); - payload.setResponseContent(responseContent); - return payload; - } - } - -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ApplicationWrapper.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ApplicationWrapper.java deleted file mode 100644 index ad2db850d..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ApplicationWrapper.java +++ /dev/null @@ -1,63 +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.mdm.beans; - -import org.wso2.carbon.device.mgt.common.DeviceIdentifier; -import java.util.List; - -public class ApplicationWrapper { - - private List userNameList; - private List roleNameList; - private List deviceIdentifiers; - private MobileApp application; - - public MobileApp getApplication() { - return application; - } - - public void setApplication(MobileApp application) { - this.application = application; - } - public List getUserNameList() { - return userNameList; - } - - public void setUserNameList(List userNameList) { - this.userNameList = userNameList; - } - - public List getRoleNameList() { - return roleNameList; - } - - public void setRoleNameList(List roleNameList) { - this.roleNameList = roleNameList; - } - - public List getDeviceIdentifiers() { - return deviceIdentifiers; - } - - public void setDeviceIdentifiers(List deviceIdentifiers) { - this.deviceIdentifiers = deviceIdentifiers; - } - -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/EnrollmentCertificate.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/EnrollmentCertificate.java deleted file mode 100644 index bde1cf1a7..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/EnrollmentCertificate.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.beans; - -public class EnrollmentCertificate { - String serial; - String pem; - int tenantId; - - public int getTenantId() { - return tenantId; - } - - public void setTenantId(int tenantId) { - this.tenantId = tenantId; - } - - public String getSerial() { - return serial; - } - - public void setSerial(String serial) { - this.serial = serial; - } - - public String getPem() { - return pem; - } - - public void setPem(String pem) { - this.pem = pem; - } - -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/MobileApp.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/MobileApp.java deleted file mode 100644 index 2f1ef19b3..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/MobileApp.java +++ /dev/null @@ -1,130 +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.mdm.beans; - -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -/** - * This class represents the generic mobile Application information - * which is used by AppM. - */ -public class MobileApp { - - private String id; - private String name; - private MobileAppTypes type; - private String platform; - private String version; - private String identifier; - private String iconImage; - private String packageName; - private String appIdentifier; - private String location; - private Properties properties; - - public MobileAppTypes getType() { - return type; - } - - public void setType(MobileAppTypes type) { - this.type = type; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getPlatform() { - return platform; - } - - public void setPlatform(String platform) { - this.platform = platform; - } - - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - public String getIdentifier() { - return identifier; - } - - public void setIdentifier(String identifier) { - this.identifier = identifier; - } - - public String getIconImage() { - return iconImage; - } - - public void setIconImage(String iconImage) { - this.iconImage = iconImage; - } - - public String getPackageName() { - return packageName; - } - - public void setPackageName(String packageName) { - this.packageName = packageName; - } - - public String getAppIdentifier() { - return appIdentifier; - } - - public void setAppIdentifier(String appIdentifier) { - this.appIdentifier = appIdentifier; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public Properties getProperties() { - return properties; - } - - public void setProperties(Properties properties) { - this.properties = properties; - } - -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/MobileAppTypes.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/MobileAppTypes.java deleted file mode 100644 index 151f57c5f..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/MobileAppTypes.java +++ /dev/null @@ -1,22 +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.mdm.beans; - -public enum MobileAppTypes { - ENTERPRISE,WEBAPP,PUBLIC -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/PolicyWrapper.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/PolicyWrapper.java deleted file mode 100644 index 931f98a86..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/PolicyWrapper.java +++ /dev/null @@ -1,126 +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.mdm.beans; - -import org.wso2.carbon.device.mgt.common.Device; -import java.util.List; - -public class PolicyWrapper { - - private int id; - private Profile profile; - private String policyName; - private String description; - private String compliance; - private List roles; - private String ownershipType; - private List devices; - private List users; - private int tenantId; - private int profileId; - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public Profile getProfile() { - return profile; - } - - public void setProfile(Profile profile) { - this.profile = profile; - } - - public String getCompliance() { - return compliance; - } - - public void setCompliance(String compliance) { - this.compliance = compliance; - } - - public String getPolicyName() { - return policyName; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public void setPolicyName(String policyName) { - this.policyName = policyName; - } - - public List getRoles() { - return roles; - } - - public void setRoles(List roles) { - this.roles = roles; - } - - public String getOwnershipType() { - return ownershipType; - } - - public void setOwnershipType(String ownershipType) { - this.ownershipType = ownershipType; - } - - public List getDevices() { - return devices; - } - - public void setDevices(List devices) { - this.devices = devices; - } - - public List getUsers() { - return users; - } - - public void setUsers(List users) { - this.users = users; - } - - public int getTenantId() { - return tenantId; - } - - public void setTenantId(int tenantId) { - this.tenantId = tenantId; - } - - public int getProfileId() { - return profileId; - } - - public void setProfileId(int profileId) { - this.profileId = profileId; - } - -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/PriorityUpdatedPolicyWrapper.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/PriorityUpdatedPolicyWrapper.java deleted file mode 100644 index ed0b7c56e..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/PriorityUpdatedPolicyWrapper.java +++ /dev/null @@ -1,41 +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.mdm.beans; - -public class PriorityUpdatedPolicyWrapper { - - private int id; - private int priority; - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public int getPriority() { - return priority; - } - - public void setPriority(int priority) { - this.priority = priority; - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/Profile.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/Profile.java deleted file mode 100644 index 19e41d885..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/Profile.java +++ /dev/null @@ -1,107 +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.mdm.beans; - - - -import org.wso2.carbon.device.mgt.core.dto.DeviceType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import java.sql.Timestamp; -import java.util.List; - -@XmlRootElement -public class Profile { - - private int profileId; - private String profileName; - private int tenantId; - private DeviceType deviceType; - private Timestamp createdDate; - private Timestamp updatedDate; - private List profileFeaturesList; // Features included in the policies. - - public DeviceType getDeviceType() { - return deviceType; - } - - public void setDeviceType(DeviceType deviceType) { - this.deviceType = deviceType; - } - @XmlElement - public int getTenantId() { - return tenantId; - } - - public void setTenantId(int tenantId) { - this.tenantId = tenantId; - } - -/* public List getFeaturesList() { - return featuresList; - } - - public void setFeaturesList(List featuresList) { - this.featuresList = featuresList; - }*/ - @XmlElement - public int getProfileId() { - return profileId; - } - - public void setProfileId(int profileId) { - this.profileId = profileId; - } - - @XmlElement - public String getProfileName() { - return profileName; - } - - public void setProfileName(String profileName) { - this.profileName = profileName; - } - - @XmlElement - public Timestamp getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(Timestamp createdDate) { - this.createdDate = createdDate; - } - - @XmlElement - public Timestamp getUpdatedDate() { - return updatedDate; - } - - public void setUpdatedDate(Timestamp updatedDate) { - this.updatedDate = updatedDate; - } - - @XmlElement - public List getProfileFeaturesList() { - return profileFeaturesList; - } - - public void setProfileFeaturesList(List profileFeaturesList) { - this.profileFeaturesList = profileFeaturesList; - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ProfileFeature.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ProfileFeature.java deleted file mode 100644 index 0d56de090..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ProfileFeature.java +++ /dev/null @@ -1,85 +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.mdm.beans; - -import com.google.gson.Gson; -import java.io.Serializable; -import java.util.LinkedHashMap; - -public class ProfileFeature implements Serializable { - - private int id; - private String featureCode; - private int profileId; - private int deviceTypeId; - private Object content; - private String payLoad; - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getFeatureCode() { - return featureCode; - } - - public void setFeatureCode(String featureCode) { - this.featureCode = featureCode; - } - - public int getProfileId() { - return profileId; - } - - public void setProfileId(int profileId) { - this.profileId = profileId; - } - - public int getDeviceTypeId() { - return deviceTypeId; - } - - public void setDeviceTypeId(int deviceTypeId) { - this.deviceTypeId = deviceTypeId; - } - - - public String getPayLoad() { - Gson gson = new Gson(); - this.payLoad = gson.toJson(content); - return payLoad; - } - - public void setPayLoad(String payLoad) { - this.payLoad = payLoad; - } - - - public Object getContent() { - return content; - } - - public void setContent(Object content) { - this.content = content; - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/RoleWrapper.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/RoleWrapper.java deleted file mode 100644 index c87640a7c..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/RoleWrapper.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.wso2.carbon.mdm.beans; - -import org.wso2.carbon.user.mgt.common.UIPermissionNode; - -/* - * 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. - */ -public class RoleWrapper { - private String roleName; - private String[] permissions; - private String[] users; - private UIPermissionNode permissionList; - - public String getRoleName() { - return roleName; - } - - public void setRoleName(String roleName) { - this.roleName = roleName; - } - - public String[] getPermissions() { - return permissions; - } - - public void setPermissions(String[] permissions) { - this.permissions = permissions; - } - - public String[] getUsers() { - return users; - } - - public void setUsers(String[] users) { - this.users = users; - } - - public UIPermissionNode getPermissionList() { - return permissionList; - } - - public void setPermissionList(UIPermissionNode permissionList) { - this.permissionList = permissionList; - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/UserCredentialWrapper.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/UserCredentialWrapper.java deleted file mode 100644 index 91e2fd0ff..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/UserCredentialWrapper.java +++ /dev/null @@ -1,53 +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.mdm.beans; - -public class UserCredentialWrapper { - - private String username; - /* - Base64 encoded password - */ - private String oldPassword; - private String newPassword; - - public String getNewPassword() { - return newPassword; - } - - public void setNewPassword(String newPassword) { - this.newPassword = newPassword; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getOldPassword() { - return oldPassword; - } - - public void setOldPassword(String oldPassword) { - this.oldPassword = oldPassword; - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/UserWrapper.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/UserWrapper.java deleted file mode 100644 index acdb9efca..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/UserWrapper.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.beans; - -public class UserWrapper { - - private String username; - /* - Base64 encoded password - */ - private String password; - private String firstname; - private String lastname; - private String emailAddress; - private String[] roles; - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getFirstname() { - return firstname; - } - - public void setFirstname(String firstname) { - this.firstname = firstname; - } - - public String getLastname() { - return lastname; - } - - public void setLastname(String lastname) { - this.lastname = lastname; - } - - public String getEmailAddress() { - return emailAddress; - } - - public void setEmailAddress(String emailAddress) { - this.emailAddress = emailAddress; - } - - /* - Giving a clone of the array since arrays are mutable - */ - public String[] getRoles() { - String[] copiedRoles = roles; - if (roles != null){ - copiedRoles = roles.clone(); - } - return copiedRoles; - } - - public void setRoles(String[] roles) { - this.roles = roles; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } -} \ No newline at end of file diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/android/AppStoreApplication.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/android/AppStoreApplication.java deleted file mode 100644 index b60ff7cdb..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/android/AppStoreApplication.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * - * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.wso2.carbon.mdm.beans.android; - -import com.google.gson.Gson; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import java.io.IOException; -import java.io.Serializable; - -/** - * This class represents the Appstore Application information. - */ -public class AppStoreApplication implements Serializable { - - private String type; - private String appIdentifier; - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String getAppIdentifier() { - return appIdentifier; - } - - public void setAppIdentifier(String appIdentifier) { - this.appIdentifier = appIdentifier; - } - - public String toJSON() throws MDMAPIException { - Gson gson = new Gson(); - return gson.toJson(this); - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/android/EnterpriseApplication.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/android/EnterpriseApplication.java deleted file mode 100644 index f19dbd44c..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/android/EnterpriseApplication.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * - * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.wso2.carbon.mdm.beans.android; - -import com.google.gson.Gson; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import java.io.IOException; -import java.io.Serializable; - -/** - * This class represents the Enterprise Application information. - */ -public class EnterpriseApplication implements Serializable { - - private String type; - private String url; - private String appIdentifier; - - public String getAppIdentifier() { - return appIdentifier; - } - - public void setAppIdentifier(String appIdentifier) { - this.appIdentifier = appIdentifier; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String toJSON() throws MDMAPIException { - Gson gson = new Gson(); - return gson.toJson(this); - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/android/WebApplication.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/android/WebApplication.java deleted file mode 100644 index 7632524c9..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/android/WebApplication.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * - * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.wso2.carbon.mdm.beans.android; - -import com.google.gson.Gson; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import java.io.IOException; -import java.io.Serializable; - -/** - * This class represents the Web Application information. - */ -public class WebApplication implements Serializable { - - private String name; - private String url; - private String type; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String toJSON() throws MDMAPIException { - Gson gson = new Gson(); - return gson.toJson(this); - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/AppStoreApplication.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/AppStoreApplication.java deleted file mode 100644 index aa6c0a012..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/AppStoreApplication.java +++ /dev/null @@ -1,86 +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.mdm.beans.ios; - -import com.google.gson.Gson; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import java.io.IOException; -import java.io.Serializable; - -public class AppStoreApplication implements Serializable { - - private String identifier; - private int iTunesStoreID; - private boolean removeAppUponMDMProfileRemoval; - private boolean preventBackupOfAppData; - private String bundleId; - private String UUID; - - public String getUUID() { - return UUID; - } - - public void setUUID(String UUID) { - this.UUID = UUID; - } - - public String getIdentifier() { - return identifier; - } - - public void setIdentifier(String identifier) { - this.identifier = identifier; - } - - public int getiTunesStoreID() { - return iTunesStoreID; - } - - public void setiTunesStoreID(int iTunesStoreID) { - this.iTunesStoreID = iTunesStoreID; - } - - public boolean isRemoveAppUponMDMProfileRemoval() { - return removeAppUponMDMProfileRemoval; - } - - public void setRemoveAppUponMDMProfileRemoval(boolean removeAppUponMDMProfileRemoval) { - this.removeAppUponMDMProfileRemoval = removeAppUponMDMProfileRemoval; - } - - public boolean isPreventBackupOfAppData() { - return preventBackupOfAppData; - } - - public void setPreventBackupOfAppData(boolean preventBackupOfAppData) { - this.preventBackupOfAppData = preventBackupOfAppData; - } - - public String getBundleId() { - return bundleId; - } - - public void setBundleId(String bundleId) { - this.bundleId = bundleId; - } - - public String toJSON() throws MDMAPIException { - Gson gson = new Gson(); - return gson.toJson(this); - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/EnterpriseApplication.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/EnterpriseApplication.java deleted file mode 100644 index d310779fa..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/EnterpriseApplication.java +++ /dev/null @@ -1,83 +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.mdm.beans.ios; - -import com.google.gson.Gson; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import java.io.IOException; -import java.io.Serializable; - -public class EnterpriseApplication implements Serializable { - - private String identifier; - private String manifestURL; - private boolean removeAppUponMDMProfileRemoval; - private boolean preventBackupOfAppData; - private String bundleId; - private String UUID; - - public void setUUID(String UUID) { - this.UUID = UUID; - } - - public String getIdentifier() { - return identifier; - } - - public void setIdentifier(String identifier) { - this.identifier = identifier; - } - - public String getManifestURL() { - return manifestURL; - } - - public void setManifestURL(String manifestURL) { - this.manifestURL = manifestURL; - } - - public boolean isRemoveAppUponMDMProfileRemoval() { - return removeAppUponMDMProfileRemoval; - } - - public void setRemoveAppUponMDMProfileRemoval(boolean removeAppUponMDMProfileRemoval) { - this.removeAppUponMDMProfileRemoval = removeAppUponMDMProfileRemoval; - } - - public boolean isPreventBackupOfAppData() { - return preventBackupOfAppData; - } - - public void setPreventBackupOfAppData(boolean preventBackupOfAppData) { - this.preventBackupOfAppData = preventBackupOfAppData; - } - - public String getBundleId() { - return bundleId; - } - - public void setBundleId(String bundleId) { - this.bundleId = bundleId; - } - - public String toJSON() throws MDMAPIException { - Gson gson = new Gson(); - return gson.toJson(this); - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/RemoveApplication.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/RemoveApplication.java deleted file mode 100644 index 9c15ba6a3..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/RemoveApplication.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.wso2.carbon.mdm.beans.ios; - -import com.google.gson.Gson; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import java.io.IOException; -import java.io.Serializable; - -public class RemoveApplication implements Serializable { - - private String bundleId; - - public String getBundleId() { - return bundleId; - } - - public void setBundleId(String bundleId) { - this.bundleId = bundleId; - } - - public String toJSON() throws MDMAPIException { - Gson gson = new Gson(); - return gson.toJson(this); - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/WebClip.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/WebClip.java deleted file mode 100644 index 4604eab46..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/beans/ios/WebClip.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.wso2.carbon.mdm.beans.ios; - -import com.google.gson.Gson; -import org.wso2.carbon.mdm.api.common.MDMAPIException; -import java.io.IOException; - -public class WebClip { - - private String URL; - private String label; - private String icon; - private String isRemovable; - private String UUID; - - public String getUUID() { - return UUID; - } - - public void setUUID(String UUID) { - this.UUID = UUID; - } - - public String getURL() { - return URL; - } - - public void setURL(String URL) { - this.URL = URL; - } - - public String getLabel() { - return label; - } - - public void setLabel(String label) { - this.label = label; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public String getIsRemovable() { - return isRemovable; - } - - public void setIsRemovable(String isRemovable) { - this.isRemovable = isRemovable; - } - - public String toJSON() throws MDMAPIException { - Gson gson = new Gson(); - return gson.toJson(this); - } - -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/exception/BadRequestException.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/exception/BadRequestException.java deleted file mode 100644 index adbe78069..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/exception/BadRequestException.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.exception; - -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -public class BadRequestException extends WebApplicationException { - - public BadRequestException(Message message, MediaType mediaType) { - super(Response.status(Response.Status.BAD_REQUEST).entity(message).type(mediaType).build()); - } - -} \ No newline at end of file diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/exception/Message.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/exception/Message.java deleted file mode 100644 index 4d5ee2ded..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/exception/Message.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.exception; - -public class Message { - - private String errorMessage; - private String discription; - - public String getErrorMessage() { - return errorMessage; - } - - public void setErrorMessage(String errorMessage) { - this.errorMessage = errorMessage; - } - - public String getDiscription() { - return discription; - } - - public void setDiscription(String discription) { - this.discription = discription; - } -} \ No newline at end of file diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/util/Constants.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/util/Constants.java deleted file mode 100644 index e9caa31d2..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/util/Constants.java +++ /dev/null @@ -1,30 +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.mdm.util; - -/** - * Holds the constants used by MDM-Admin web application. - */ -public class Constants { - - public static final String USER_CLAIM_EMAIL_ADDRESS = "http://wso2.org/claims/emailaddress"; - public static final String USER_CLAIM_FIRST_NAME = "http://wso2.org/claims/givenname"; - public static final String USER_CLAIM_LAST_NAME = "http://wso2.org/claims/lastname"; - -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/util/MDMUtil.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/util/MDMUtil.java deleted file mode 100644 index d766776cc..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/util/MDMUtil.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.wso2.carbon.mdm.util; - -import org.wso2.carbon.mdm.beans.ProfileFeature; -import org.wso2.carbon.policy.mgt.common.Profile; - -import java.util.ArrayList; -import java.util.List; - -public class MDMUtil { - - public static Profile convertProfile(org.wso2.carbon.mdm.beans.Profile mdmProfile) { - Profile profile = new Profile(); - profile.setTenantId(mdmProfile.getTenantId()); - profile.setCreatedDate(mdmProfile.getCreatedDate()); - profile.setDeviceType(mdmProfile.getDeviceType()); - - List profileFeatures = - new ArrayList(mdmProfile.getProfileFeaturesList().size()); - for (ProfileFeature mdmProfileFeature : mdmProfile.getProfileFeaturesList()) { - profileFeatures.add(convertProfileFeature(mdmProfileFeature)); - } - profile.setProfileFeaturesList(profileFeatures); - profile.setProfileId(mdmProfile.getProfileId()); - profile.setProfileName(mdmProfile.getProfileName()); - profile.setUpdatedDate(mdmProfile.getUpdatedDate()); - return profile; - } - - public static org.wso2.carbon.policy.mgt.common.ProfileFeature convertProfileFeature(ProfileFeature - mdmProfileFeature) { - - org.wso2.carbon.policy.mgt.common.ProfileFeature profileFeature = - new org.wso2.carbon.policy.mgt.common.ProfileFeature(); - profileFeature.setProfileId(mdmProfileFeature.getProfileId()); - profileFeature.setContent(mdmProfileFeature.getPayLoad()); - profileFeature.setDeviceTypeId(mdmProfileFeature.getDeviceTypeId()); - profileFeature.setFeatureCode(mdmProfileFeature.getFeatureCode()); - profileFeature.setId(mdmProfileFeature.getId()); - return profileFeature; - - } -} \ No newline at end of file diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/util/SetReferenceTransformer.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/util/SetReferenceTransformer.java deleted file mode 100644 index da4136593..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/carbon/mdm/util/SetReferenceTransformer.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.wso2.carbon.mdm.util; - -import java.util.ArrayList; -import java.util.List; -import java.util.TreeSet; - -public class SetReferenceTransformer{ - private List objectsToRemove; - private List objectsToAdd; - - /** - * Use the Set theory to find the objects to delete and objects to add - - The difference of objects in existingSet and newSet needed to be deleted - - new roles to add = newSet - The intersection of roles in existingSet and newSet - * @param currentList - * @param nextList - */ - public void transform(List currentList, List nextList){ - TreeSet existingSet = new TreeSet(currentList); - TreeSet newSet = new TreeSet(nextList); - - existingSet.removeAll(newSet); - - objectsToRemove = new ArrayList(existingSet); - - // Clearing and re-initializing the set - existingSet = new TreeSet(currentList); - - newSet.removeAll(existingSet); - objectsToAdd = new ArrayList(newSet); - } - - public List getObjectsToRemove() { - return objectsToRemove; - } - - public List getObjectsToAdd() { - return objectsToAdd; - } -} \ No newline at end of file diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/mdm/common/Application.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/mdm/common/Application.java deleted file mode 100644 index 0a11ad1bc..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/mdm/common/Application.java +++ /dev/null @@ -1,119 +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.mdm.common; - -import org.wso2.carbon.device.mgt.common.DeviceIdentifier; - -import java.util.List; - -public class Application { - - private String applicationName; - private String appId; - private String locationUrl; - private String imageUrl; - private String platform; - private String version; - private List userNameList; - private List roleNameList; - - public List getDeviceIdentifiers() { - return deviceIdentifiers; - } - - public void setDeviceIdentifiers(List deviceIdentifiers) { - this.deviceIdentifiers = deviceIdentifiers; - } - - private List deviceIdentifiers; - - - public String getApplicationName() { - return applicationName; - } - - public void setApplicationName(String applicationName) { - this.applicationName = applicationName; - } - - - public String getAppId() { - return appId; - } - - public void setAppId(String appId) { - this.appId = appId; - } - - - public String getLocationUrl() { - return locationUrl; - } - - public void setLocationUrl(String locationUrl) { - this.locationUrl = locationUrl; - } - - - public String getImageUrl() { - return imageUrl; - } - - public void setImageUrl(String imageUrl) { - this.imageUrl = imageUrl; - } - - - public String getPlatform() { - return platform; - } - - public void setPlatform(String platform) { - this.platform = platform; - } - - - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - - public List getUserNameList() { - return userNameList; - } - - public void setUserNameList(List userNameList) { - this.userNameList = userNameList; - } - - - public List getRoleNameList() { - return roleNameList; - } - - public void setRoleNameList(List roleNameList) { - this.roleNameList = roleNameList; - } - -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/mdm/common/GsonMessageBodyHandler.java b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/mdm/common/GsonMessageBodyHandler.java deleted file mode 100644 index 09b49e6f1..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/java/org/wso2/mdm/common/GsonMessageBodyHandler.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2014, 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.mdm.common; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; - -import javax.ws.rs.Consumes; -import javax.ws.rs.Produces; -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.ext.MessageBodyReader; -import javax.ws.rs.ext.MessageBodyWriter; -import javax.ws.rs.ext.Provider; -import java.io.*; -import java.lang.annotation.Annotation; -import java.lang.reflect.Type; - -import static javax.ws.rs.core.MediaType.APPLICATION_JSON; - -@Provider -@Produces(APPLICATION_JSON) -@Consumes(APPLICATION_JSON) -public class GsonMessageBodyHandler implements MessageBodyWriter, MessageBodyReader { - - private Gson gson; - private static final String UTF_8 = "UTF-8"; - - public boolean isReadable(Class aClass, Type type, Annotation[] annotations, MediaType mediaType) { - return true; - } - - private Gson getGson() { - if (gson == null) { - final GsonBuilder gsonBuilder = new GsonBuilder(); - gson = gsonBuilder.create(); - } - return gson; - } - - public Object readFrom(Class objectClass, Type type, Annotation[] annotations, MediaType mediaType, - MultivaluedMap stringStringMultivaluedMap, InputStream entityStream) - throws IOException, WebApplicationException { - - InputStreamReader reader = new InputStreamReader(entityStream, "UTF-8"); - - try { - return getGson().fromJson(reader, type); - } finally { - reader.close(); - } - } - - public boolean isWriteable(Class aClass, Type type, Annotation[] annotations, MediaType mediaType) { - return true; - } - - public long getSize(Object o, Class aClass, Type type, Annotation[] annotations, MediaType mediaType) { - return -1; - } - - public void writeTo(Object object, Class aClass, Type type, Annotation[] annotations, MediaType mediaType, - MultivaluedMap stringObjectMultivaluedMap, OutputStream entityStream) - throws IOException, WebApplicationException { - - OutputStreamWriter writer = new OutputStreamWriter(entityStream, UTF_8); - try { - Type jsonType = null; - if (type.equals(type)) { - jsonType = type; - } - getGson().toJson(object, jsonType, writer); - } finally { - writer.close(); - } - } -} diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/META-INF/permissions.xml b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/META-INF/permissions.xml deleted file mode 100644 index 8f675d774..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/META-INF/permissions.xml +++ /dev/null @@ -1,1021 +0,0 @@ - - - - - - - - - - Device Management - /device-mgt - / - GET - - - - Device Management Admin - /device-mgt/emm-admin - / - GET - - - - Device Management User - /device-mgt/user - / - GET - - - - Devices - /device-mgt/emm-admin/devices - / - GET - - - - Policies - /device-mgt/emm-admin/policies - / - GET - - - - Notifications - /device-mgt/emm-admin/notifications - / - GET - - - - Users - /device-mgt/emm-admin/users - / - GET - - - - Operations - /device-mgt/emm-admin/operations - / - GET - - - - Applications - /device-mgt/emm-admin/operations/applications - / - GET - - - - Roles - /device-mgt/emm-admin/roles - / - GET - - - - Configurations - /device-mgt/emm-admin/platform-configs - / - GET - - - - View Dashboard - /device-mgt/emm-admin/dashboard - / - GET - - - - List devices - /device-mgt/emm-admin/devices/list - /devices - GET - - - - List devices - /device-mgt/emm-admin/devices/list - /devices/types - GET - - - - Add policy - /device-mgt/emm-admin/policies/add - /devices/types - GET - - - - Edit policy - /device-mgt/emm-admin/policies/update - /devices/types - GET - - - - View device - /device-mgt/emm-admin/devices/view - /devices/view - GET - - - - View device - /device-mgt/user/devices/view - /devices/view - GET - - - - - - - - - - - - View device - /device-mgt/emm-admin/devices/view - /devices/user/*/* - GET - - - - List devices - /device-mgt/emm-admin/devices/list - /devices/count - GET - - - - List devices - /device-mgt/emm-admin/devices/list - /devices/name/*/* - GET - - - - - - View notifications - /device-mgt/emm-admin/notifications/view - /notifications - GET - - - - Add notification - /device-mgt/emm-admin/notifications/add - /notifications - POST - - - - Update notification - /device-mgt/emm-admin/notifications/update - /notifications/*/* - PUT - - - - View notifications - /device-mgt/emm-admin/notifications/view - /notifications/* - GET - - - - - - View user - /device-mgt/emm-admin/users/view - /operations - GET - - - - Install application - /device-mgt/emm-admin/operations/applications/install-applications - /operations - POST - - - - Install application - /device-mgt/emm-admin/operations/applications/install-applications - /operations/installApp/* - POST - - - - Uninstall application - /device-mgt/emm-admin/operations/applications/uninstall-applications - /operations/uninstallApp/* - POST - - - - View application - /device-mgt/emm-admin/operations/applications/view-applications - /operations/*/*/* - GET - - - - View devices - /device-mgt/user/devices/view - /operations/*/*/* - GET - - - - View device - /device-mgt/emm-admin/devices/view - /operations/*/*/* - GET - - - - View device - /device-mgt/emm-admin/devices/view - /operations/*/* - GET - - - - View device - /device-mgt/emm-admin/devices/view - /operations/paginate/*/* - GET - - - - View device - /device-mgt/user/devices/view - /operations/*/* - GET - - - - View device - /device-mgt/user/devices/view - /operations/paginate/*/* - GET - - - - - - - - - - - - - - List policies - /device-mgt/emm-admin/policies/list - /features/* - GET - - - - View device - /device-mgt/emm-admin/devices/view - /features/* - GET - - - - View device - /device-mgt/user/devices/view - /features/* - GET - - - - View device - /device-mgt/user/devices/view - /features - GET - emm_admin - - - - - - List roles - /device-mgt/emm-admin/roles/list - /roles - GET - - - - View user - /device-mgt/emm-admin/users/view - /roles - GET - - - - Add policy - /device-mgt/emm-admin/policies/add - /roles - GET - - - - Update policy - /device-mgt/emm-admin/policies/update - /roles - GET - - - - List roles - /device-mgt/emm-admin/roles/list - /roles/permissions - GET - - - - List roles - /device-mgt/emm-admin/roles/list - /roles/* - GET - - - - Add user - /device-mgt/emm-admin/users/add - /roles/* - GET - - - - Update role - /device-mgt/emm-admin/roles/update - /roles - PUT - - - - - - - - - - - - Update role - /device-mgt/emm-admin/roles/update - /roles/users - PUT - - - - Add role - /device-mgt/emm-admin/roles/add - /roles - POST - - - - Remove role - /device-mgt/emm-admin/roles/remove - /roles - DELETE - - - - List roles - /device-mgt/emm-admin/roles/list - /roles/count - GET - - - - - - List users - /device-mgt/emm-admin/users/list - /users - GET - - - - Add user - /device-mgt/emm-admin/users/add - /users - POST - - - - View user - /device-mgt/emm-admin/users/view - /users/view - GET - - - - Update user - /device-mgt/emm-admin/users/update - /users - PUT - - - - Change user password - /login - /users/change-password - POST - emm_admin - - - - Reset password - /device-mgt/emm-admin/users/password-reset - /users/reset-password - POST - - - - Remove user - /device-mgt/emm-admin/users/remove - /users - DELETE - - - - View user - /device-mgt/emm-admin/users/view - /users/roles - GET - - - - - - - - - - - Add user - /device-mgt/emm-admin/users/add - /roles - POST - - - - List devices - /device-mgt/user/devices/list - /users/devices - GET - - - - List devices - /device-mgt/emm-admin/devices/list - /users/devices - GET - - - - View user - /device-mgt/emm-admin/users/view - /users/*/* - GET - - - - List users - /device-mgt/emm-admin/users/list - /users/count - GET - - - - List users - /device-mgt/emm-admin/users/list - /users/view-users - GET - - - - Add role - /device-mgt/emm-admin/roles/add - /users/view-users - GET - - - - Update role - /device-mgt/emm-admin/roles/update - /users/view-users - GET - - - - Add policy - /device-mgt/emm-admin/policies/add - /users/view-users - GET - - - - Update policy - /device-mgt/emm-admin/policies/update - /users/view-users - GET - - - - List users - /device-mgt/emm-admin/users/list - /users/users-by-username - GET - - - - List users - /device-mgt/emm-admin/users/list - /users/users-by-username/* - GET - - - - Invite user - /device-mgt/emm-admin/users/invite - /users/email-invitation - POST - - - - Authorize user - /login - /users/authorize - POST - - - - - - Add Policy - /device-mgt/emm-admin/policies/add - /policies/inactive-policy - POST - - - - List policies - /device-mgt/emm-admin/policies/list - /policies/*/* - POST - - - - List policies - /device-mgt/emm-admin/policies/list - /policies/*/*/* - GET - - - - View device - /device-mgt/emm-admin/devices/view - /policies/*/*/* - GET - - - - View device - /device-mgt/user/devices/view - /policies/*/*/* - GET - - - - Add policy - /device-mgt/emm-admin/policies/add - /policies/active-policy - POST - - - - Remove policy - /device-mgt/emm-admin/policies/remove - /policies/bulk-remove - POST - - - - List policies - /device-mgt/emm-admin/policies/list - /policies - GET - - - - List policies - /device-mgt/emm-admin/policies/list - /policies/* - GET - - - - Update policy - /device-mgt/emm-admin/policies/update - /policies/* - PUT - - - - Remove policy - /device-mgt/emm-admin/policies/remove - /policies - DELETE - - - - List policies - /device-mgt/emm-admin/policies/list - /policies/count - GET - - - - Edit policy - /device-mgt/emm-admin/policies/update - /policies/priorities - PUT - - - - Edit policy - /device-mgt/emm-admin/policies/update - /policies/activate - PUT - - - - Add policy - /device-mgt/emm-admin/policies/add - /policies/activate - PUT - - - - Edit policy - /device-mgt/emm-admin/policies/update - /policies/inactivate - PUT - - - - Add policy - /device-mgt/emm-admin/policies/add - /policies/inactivate - PUT - - - - Edit policy - /device-mgt/emm-admin/policies/update - /policies/apply-changes - PUT - - - - Add policy - /device-mgt/emm-admin/policies/add - /policies/start-task/* - GET - - - - Add policy - /device-mgt/emm-admin/policies/add - /policies/update-task/* - GET - - - - Add policy - /device-mgt/emm-admin/policies/add - /policies/stop-task - GET - - - - List policies - /device-mgt/emm-admin/policies/list - /policies/*/* - GET - - - - - - Add policy - /device-mgt/emm-admin/policies/add - /profiles - POST - - - - Edit policy - /device-mgt/emm-admin/policies/update - /profiles/* - PUT - - - - Remove policy - /device-mgt/emm-admin/policies/remove - /profiles/* - DELETE - - - - - - - Device Information - /device-mgt/emm-admin/information/get - /information/*/* - GET - - - - Device Search - /device-mgt/emm-admin/search - /information/* - GET - - - - - - - - - - - - - - - - - - - - - - - - - View configuration - /device-mgt/emm-admin/platform-configs/view - /configuration - GET - - - - Add configuration - /device-mgt/emm-admin/platform-configs/add - /configuration - POST - - - - Update configuration - /device-mgt/emm-admin/platform-configs/modify - /configuration - PUT - - - - - - - Save certificate in the database - /device-mgt/android/certificate/save - /certificates/saveCertificate - POST - emm_admin - - - get certificate in the database - /device-mgt/android/certificate/Get - /certificates/* - GET - emm_admin - - - get certificate in the database - /device-mgt/android/certificate/Get - /certificates/* - DELETE - emm_admin - - - - - - Group Management - /device-mgt/admin/groups - /groups - POST - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/*/* - PUT - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/*/* - DELETE - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups - GET - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/user/* - GET - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/*/* - GET - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/search - GET - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/user/*/all - GET - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/user/*/count - GET - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/*/*/share - PUT - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/*/*/unshare - PUT - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/*/*/share/roles/*/permissions - PUT - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/*/*/share/roles/*/permissions - DELETE - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/*/*/share/roles - GET - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/*/*/users - GET - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/*/*/devices/all - GET - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/*/*/devices/count - GET - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/*/*/devices/*/* - PUT - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/*/*/devices/*/* - DELETE - emm_admin - - - - Group Management - /device-mgt/admin/groups - /groups/*/*/users/*/permissions - GET - emm_admin - - - - diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/META-INF/webapp-classloading.xml b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/META-INF/webapp-classloading.xml deleted file mode 100644 index ed2ed2162..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/META-INF/webapp-classloading.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - false - - - CXF,Carbon - diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/WEB-INF/cxf-servlet.xml b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/WEB-INF/cxf-servlet.xml deleted file mode 100644 index c6e489f7f..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/WEB-INF/cxf-servlet.xml +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/WEB-INF/web.xml b/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index 1ee664987..000000000 --- a/components/mobile-plugins/mobile-base-plugin/org.wso2.carbon.device.mgt.mobile.api/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - Admin-Webapp - - JAX-WS/JAX-RS MDM Endpoint - JAX-WS/JAX-RS Servlet - CXFServlet - - org.apache.cxf.transport.servlet.CXFServlet - - 1 - - - CXFServlet - /* - - - 60 - - - - isAdminService - false - - - doAuthentication - true - - - - - - - MDM-Admin - /* - - - CONFIDENTIAL - - - - diff --git a/components/mobile-plugins/mobile-base-plugin/pom.xml b/components/mobile-plugins/mobile-base-plugin/pom.xml index 212c8f78b..af83bb23e 100644 --- a/components/mobile-plugins/mobile-base-plugin/pom.xml +++ b/components/mobile-plugins/mobile-base-plugin/pom.xml @@ -34,7 +34,6 @@ org.wso2.carbon.device.mgt.mobile - org.wso2.carbon.device.mgt.mobile.api org.wso2.carbon.device.mgt.mobile.ui org.wso2.carbon.device.mgt.mobile.url.printer diff --git a/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.feature/pom.xml b/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.feature/pom.xml index 7d94f16e3..409609eaf 100644 --- a/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.feature/pom.xml +++ b/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.feature/pom.xml @@ -41,11 +41,6 @@ org.wso2.carbon.devicemgt-plugins org.wso2.carbon.device.mgt.iot - - org.wso2.carbon.devicemgt-plugins - org.wso2.carbon.device.mgt.iot.api - war - org.json.wso2 json @@ -119,25 +114,6 @@ - - copy - package - - copy - - - - - org.wso2.carbon.devicemgt-plugins - org.wso2.carbon.device.mgt.iot.api - war - true - ${project.build.directory}/maven-shared-archive-resources/webapps/ - common.war - - - - diff --git a/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/p2.inf b/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/p2.inf index 77c750196..b493aa4af 100644 --- a/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/p2.inf +++ b/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/p2.inf @@ -1,6 +1,4 @@ instructions.configure = \ -org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/webapps/);\ -org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot_${feature.version}/webapps/,target:${installFolder}/../../deployment/server/webapps/,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/jaggeryapps/);\ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot_${feature.version}/jaggeryapps/,target:${installFolder}/../../deployment/server/jaggeryapps/,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../conf/iot/);\ diff --git a/features/mobile-plugins-feature/mobile-base-plugin-feature/org.wso2.carbon.device.mgt.mobile.feature/pom.xml b/features/mobile-plugins-feature/mobile-base-plugin-feature/org.wso2.carbon.device.mgt.mobile.feature/pom.xml index d92c4dcaa..f21daf153 100644 --- a/features/mobile-plugins-feature/mobile-base-plugin-feature/org.wso2.carbon.device.mgt.mobile.feature/pom.xml +++ b/features/mobile-plugins-feature/mobile-base-plugin-feature/org.wso2.carbon.device.mgt.mobile.feature/pom.xml @@ -118,26 +118,6 @@ - - copy - package - - copy - - - - - org.wso2.carbon.devicemgt-plugins - org.wso2.carbon.device.mgt.mobile.api - war - true - ${project.build.directory}/maven-shared-archive-resources/webapps/ - - mdm-admin.war - - - - diff --git a/features/mobile-plugins-feature/mobile-base-plugin-feature/org.wso2.carbon.device.mgt.mobile.feature/src/main/resources/p2.inf b/features/mobile-plugins-feature/mobile-base-plugin-feature/org.wso2.carbon.device.mgt.mobile.feature/src/main/resources/p2.inf index 3beddd74a..8bfeec726 100644 --- a/features/mobile-plugins-feature/mobile-base-plugin-feature/org.wso2.carbon.device.mgt.mobile.feature/src/main/resources/p2.inf +++ b/features/mobile-plugins-feature/mobile-base-plugin-feature/org.wso2.carbon.device.mgt.mobile.feature/src/main/resources/p2.inf @@ -1,6 +1,4 @@ instructions.configure = \ -org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/webapps/);\ -org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile_${feature.version}/webapps/,target:${installFolder}/../../deployment/server/webapps/,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile_${feature.version}/conf/mobile-config.xml,target:${installFolder}/../../conf/mobile-config.xml,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile_${feature.version}/dbscripts/plugins/,target:${installFolder}/../../../dbscripts/cdm/plugins,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/jaggeryapps/);\ From 2d4f07fc55d1cc3c81da001fb36dd0a1f218a91c Mon Sep 17 00:00:00 2001 From: NuwanSameera Date: Tue, 19 Apr 2016 11:33:31 +0530 Subject: [PATCH 2/9] Add REST Api annotations to Api implementations. --- .../impl/ArduinoControllerServiceImpl.java | 47 ++- .../service/impl/ArduinoManagerService.java | 1 + .../impl/ArduinoManagerServiceImpl.java | 42 ++- .../src/main/webapp/WEB-INF/web.xml | 86 +++--- .../impl/DigitalDisplayControllerService.java | 4 +- .../DigitalDisplayControllerServiceImpl.java | 138 +++++---- .../impl/DigitalDisplayManagerService.java | 2 +- .../DigitalDisplayManagerServiceImpl.java | 83 +++-- .../src/main/webapp/WEB-INF/cxf-servlet.xml | 2 +- .../src/main/webapp/WEB-INF/web.xml | 38 +-- .../impl/DroneControllerServiceImpl.java | 10 +- .../service/impl/DroneManagerService.java | 1 + .../service/impl/DroneManagerServiceImpl.java | 93 ++++-- .../src/main/webapp/WEB-INF/web.xml | 75 +++-- .../impl/RaspberryPiControllerService.java | 2 +- .../RaspberryPiControllerServiceImpl.java | 108 ++++--- .../impl/RaspberryPiManagerService.java | 10 +- .../impl/RaspberryPiManagerServiceImpl.java | 91 ++++-- .../src/main/webapp/WEB-INF/web.xml | 78 +++-- .../VirtualFireAlarmControllerService.java | 14 +- ...VirtualFireAlarmControllerServiceImpl.java | 291 ++++++++++-------- .../impl/VirtualFireAlarmManagerService.java | 11 +- .../VirtualFireAlarmManagerServiceImpl.java | 95 +++--- .../src/main/webapp/WEB-INF/cxf-servlet.xml | 10 +- .../src/main/webapp/WEB-INF/web.xml | 81 ++--- 25 files changed, 799 insertions(+), 614 deletions(-) diff --git a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoControllerServiceImpl.java b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoControllerServiceImpl.java index 0b7de4e64..076a7bf03 100644 --- a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoControllerServiceImpl.java +++ b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoControllerServiceImpl.java @@ -31,7 +31,18 @@ import org.wso2.carbon.device.mgt.iot.arduino.plugin.constants.ArduinoConstants; 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.servlet.http.HttpServletRequest; +import javax.ws.rs.Consumes; +import javax.ws.rs.FormParam; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +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.MediaType; import javax.ws.rs.core.Response; import java.util.ArrayList; import java.util.Calendar; @@ -51,7 +62,10 @@ public class ArduinoControllerServiceImpl implements ArduinoControllerService { private ConcurrentHashMap deviceToIpMap = new ConcurrentHashMap<>(); @Override - public Response registerDeviceIP(String deviceId, String deviceIP, String devicePort, HttpServletRequest request) { + @Path("device/register/{deviceId}/{ip}/{port}") + @POST + public Response registerDeviceIP(@PathParam("deviceId") String deviceId, @PathParam("ip") String deviceIP, + @PathParam("port") String devicePort, @Context HttpServletRequest request) { String result; if (log.isDebugEnabled()) { log.debug("Got register call from IP: " + deviceIP + " for Device ID: " + deviceId + " of owner: "); @@ -66,7 +80,10 @@ public class ArduinoControllerServiceImpl implements ArduinoControllerService { } @Override - public Response switchBulb(String deviceId, String protocol, String state) { + @Path("device/{deviceId}/bulb") + @POST + public Response switchBulb(@PathParam("deviceId") String deviceId, @QueryParam("protocol") String protocol, + @FormParam("state") String state) { LinkedList deviceControlList = internalControlsQueue.get(deviceId); String operation = "BULB:" + state.toUpperCase(); @@ -82,7 +99,12 @@ public class ArduinoControllerServiceImpl implements ArduinoControllerService { } @Override - public Response requestTemperature(String deviceId, String protocol) { + @Path("device/{deviceId}/temperature") + @GET + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response requestTemperature(@PathParam("deviceId") String deviceId, + @QueryParam("protocol") String protocol) { try { SensorRecord sensorRecord = SensorDataManager.getInstance().getSensorRecord(deviceId, @@ -94,6 +116,9 @@ public class ArduinoControllerServiceImpl implements ArduinoControllerService { } @Override + @Path("device/sensor") + @POST + @Consumes(MediaType.APPLICATION_JSON) public Response pushData(DeviceData dataMsg) { String owner = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername(); String deviceId = dataMsg.deviceId; @@ -110,7 +135,9 @@ public class ArduinoControllerServiceImpl implements ArduinoControllerService { } @Override - public Response readControls(String deviceId, String protocol) { + @Path("device/{deviceId}/controls") + @GET + public Response readControls(@PathParam("deviceId") String deviceId, @QueryParam("protocol") String protocol) { String result; LinkedList deviceControlList = internalControlsQueue.get(deviceId); String owner = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername(); @@ -138,7 +165,10 @@ public class ArduinoControllerServiceImpl implements ArduinoControllerService { } @Override - public Response pushTemperatureData(final DeviceData dataMsg, HttpServletRequest request) { + @Path("device/temperature") + @POST + @Consumes(MediaType.APPLICATION_JSON) + public Response pushTemperatureData(final DeviceData dataMsg, @Context HttpServletRequest request) { String owner = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername(); String deviceId = dataMsg.deviceId; float temperature = dataMsg.value; @@ -154,7 +184,12 @@ public class ArduinoControllerServiceImpl implements ArduinoControllerService { } @Override - public Response getArduinoTemperatureStats(String deviceId, long from, long to) { + @Path("device/stats/{deviceId}/sensors/temperature") + @GET + @Consumes("application/json") + @Produces("application/json") + public Response getArduinoTemperatureStats(@PathParam("deviceId") String deviceId, @QueryParam("from") long from, + @QueryParam("to") long to) { String fromDate = String.valueOf(from); String toDate = String.valueOf(to); List sensorDatas = new ArrayList<>(); diff --git a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoManagerService.java b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoManagerService.java index eb0524b31..cd0e196fd 100644 --- a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoManagerService.java +++ b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoManagerService.java @@ -32,6 +32,7 @@ import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +@Path("enrollment") @API(name = "arduino_mgt", version = "1.0.0", context = "/arduino_mgt", tags = {"arduino"}) @DeviceType(value = "arduino") public interface ArduinoManagerService { diff --git a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoManagerServiceImpl.java b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoManagerServiceImpl.java index 3ef897128..a5cd8b5e8 100644 --- a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoManagerServiceImpl.java +++ b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoManagerServiceImpl.java @@ -18,7 +18,6 @@ package org.wso2.carbon.device.mgt.iot.arduino.service.impl; -import org.wso2.carbon.apimgt.annotations.api.API; import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService; import org.wso2.carbon.apimgt.application.extension.dto.ApiApplicationKey; import org.wso2.carbon.apimgt.application.extension.exception.APIManagerException; @@ -27,7 +26,6 @@ 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.extensions.feature.mgt.annotations.DeviceType; import org.wso2.carbon.device.mgt.iot.arduino.service.impl.util.APIUtil; import org.wso2.carbon.device.mgt.iot.arduino.plugin.constants.ArduinoConstants; import org.wso2.carbon.device.mgt.iot.exception.DeviceControllerException; @@ -38,6 +36,16 @@ import org.wso2.carbon.identity.jwt.client.extension.JWTClientManager; import org.wso2.carbon.identity.jwt.client.extension.dto.AccessTokenInfo; import org.wso2.carbon.identity.jwt.client.extension.exception.JWTClientException; import org.wso2.carbon.user.api.UserStoreException; + +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +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.MediaType; import javax.ws.rs.core.Response; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; @@ -46,15 +54,16 @@ import java.util.Date; import java.util.List; import java.util.UUID; -@API(name = "arduino_mgt", version = "1.0.0", context = "/arduino_mgt", tags = {"arduino"}) -@DeviceType(value = "arduino") +@Path("enrollment") public class ArduinoManagerServiceImpl implements ArduinoManagerService { private static final String KEY_TYPE = "PRODUCTION"; private static ApiApplicationKey apiApplicationKey; @Override - public Response removeDevice(String deviceId) { + @Path("devices/{device_id}") + @DELETE + public Response removeDevice(@PathParam("device_id") String deviceId) { DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setId(deviceId); deviceIdentifier.setType(ArduinoConstants.DEVICE_TYPE); @@ -71,7 +80,9 @@ public class ArduinoManagerServiceImpl implements ArduinoManagerService { } @Override - public Response updateDevice(String deviceId, String name) { + @Path("devices/{device_id}") + @PUT + public Response updateDevice(@PathParam("device_id") String deviceId, @QueryParam("name") String name) { DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setId(deviceId); deviceIdentifier.setType(ArduinoConstants.DEVICE_TYPE); @@ -93,7 +104,11 @@ public class ArduinoManagerServiceImpl implements ArduinoManagerService { } @Override - public Response getDevice(String deviceId) { + @Path("devices/{device_id}") + @GET + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response getDevice(@PathParam("device_id") String deviceId) { DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setId(deviceId); deviceIdentifier.setType(ArduinoConstants.DEVICE_TYPE); @@ -106,6 +121,10 @@ public class ArduinoManagerServiceImpl implements ArduinoManagerService { } @Override + @Path("devices") + @GET + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) public Response getArduinoDevices() { try { List userDevices = APIUtil.getDeviceManagementService().getDevicesOfUser( @@ -125,7 +144,10 @@ public class ArduinoManagerServiceImpl implements ArduinoManagerService { } @Override - public Response downloadSketch(String customDeviceName) { + @Path("devices/download") + @GET + @Produces("application/octet-stream") + public Response downloadSketch(@QueryParam("deviceName") String customDeviceName) { try { ZipArchive zipFile = createDownloadFile(APIUtil.getAuthenticatedUser(), customDeviceName); Response.ResponseBuilder rb = Response.ok(zipFile.getZipFile()); @@ -147,7 +169,9 @@ public class ArduinoManagerServiceImpl implements ArduinoManagerService { } @Override - public Response generateSketchLink(String deviceName) { + @Path("devices/generate_link") + @GET + public Response generateSketchLink(@QueryParam("deviceName") String deviceName) { try { ZipArchive zipFile = createDownloadFile(APIUtil.getAuthenticatedUser(), deviceName); Response.ResponseBuilder rb = Response.ok(zipFile.getDeviceId()); diff --git a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/webapp/WEB-INF/web.xml b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/webapp/WEB-INF/web.xml index c62aa6100..4c3855352 100644 --- a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/webapp/WEB-INF/web.xml +++ b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/webapp/WEB-INF/web.xml @@ -7,56 +7,40 @@ Arduino Arduino - - CXFServlet - org.apache.cxf.transport.servlet.CXFServlet - 1 - + + CXFServlet + org.apache.cxf.transport.servlet.CXFServlet + 1 + + + CXFServlet + /* + + + isAdminService + false + + + doAuthentication + true + + + isSharedWithAllTenants + true + + + providerTenantDomain + carbon.super + + + + managed-api-enabled + true + + + managed-api-owner + admin + - - CXFServlet - /* - - - - isAdminService - false - - - doAuthentication - false - - - isSharedWithAllTenants - true - - - providerTenantDomain - carbon.super - - - - managed-api-enabled - true - - - managed-api-owner - admin - - - managed-api-context-template - /arduino/{version} - - - managed-api-application - arduino - - - managed-api-isSecured - true - - - - - + \ No newline at end of file diff --git a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayControllerService.java b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayControllerService.java index eb0cdcaea..b672380bd 100644 --- a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayControllerService.java +++ b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayControllerService.java @@ -21,11 +21,11 @@ package org.wso2.carbon.device.mgt.iot.digitaldisplay.service.impl; import org.wso2.carbon.apimgt.annotations.api.API; import org.wso2.carbon.device.mgt.extensions.feature.mgt.annotations.DeviceType; import org.wso2.carbon.device.mgt.extensions.feature.mgt.annotations.Feature; -import javax.websocket.server.PathParam; import javax.ws.rs.FormParam; import javax.ws.rs.HeaderParam; import javax.ws.rs.POST; import javax.ws.rs.Path; +import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; @API(name = "digital_display", version = "1.0.0", context = "/digital_display", tags = {"digital_display"}) @@ -54,7 +54,7 @@ public interface DigitalDisplayControllerService { @POST @Feature(code = "terminate-display", name = "Terminate Display", type = "operation", description = "Terminate all running process in Digital Display") - Response terminateDisplay(@PathParam("deviceId") String deviceId, @HeaderParam("sessionId") String sessionId); + Response terminateDisplay(@HeaderParam("sessionId") String sessionId, @PathParam("deviceId") String deviceId); /** * Reboot running digital display diff --git a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayControllerServiceImpl.java b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayControllerServiceImpl.java index 0bb084db6..185c63eba 100644 --- a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayControllerServiceImpl.java +++ b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayControllerServiceImpl.java @@ -20,10 +20,8 @@ package org.wso2.carbon.device.mgt.iot.digitaldisplay.service.impl; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.apimgt.annotations.api.API; import org.wso2.carbon.context.PrivilegedCarbonContext; import org.wso2.carbon.device.mgt.common.DeviceManagementException; -import org.wso2.carbon.device.mgt.extensions.feature.mgt.annotations.DeviceType; import org.wso2.carbon.device.mgt.extensions.feature.mgt.annotations.Feature; import org.wso2.carbon.device.mgt.iot.controlqueue.mqtt.MqttConfig; import org.wso2.carbon.device.mgt.iot.digitaldisplay.service.impl.exception.DigitalDisplayException; @@ -32,13 +30,11 @@ import org.wso2.carbon.device.mgt.iot.digitaldisplay.plugin.constants.DigitalDis import org.wso2.carbon.device.mgt.iot.service.IoTServerStartupListener; import org.wso2.carbon.device.mgt.iot.transport.TransportHandlerException; -import javax.servlet.http.HttpServletResponse; -import javax.websocket.server.PathParam; import javax.ws.rs.FormParam; import javax.ws.rs.HeaderParam; import javax.ws.rs.POST; import javax.ws.rs.Path; -import javax.ws.rs.core.Context; +import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; public class DigitalDisplayControllerServiceImpl implements DigitalDisplayControllerService { @@ -46,44 +42,9 @@ public class DigitalDisplayControllerServiceImpl implements DigitalDisplayContro private static Log log = LogFactory.getLog(DigitalDisplayControllerServiceImpl.class); private static DigitalDisplayMQTTConnector digitalDisplayMQTTConnector; - private boolean waitForServerStartup() { - while (!IoTServerStartupListener.isServerReady()) { - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - return true; - } - } - return false; - } - - public DigitalDisplayMQTTConnector getDigitalDisplayMQTTConnector() { - return DigitalDisplayControllerServiceImpl.digitalDisplayMQTTConnector; - } - - public void setDigitalDisplayMQTTConnector(final - DigitalDisplayMQTTConnector digitalDisplayMQTTConnector) { - - Runnable connector = new Runnable() { - public void run() { - if (waitForServerStartup()) { - return; - } - DigitalDisplayControllerServiceImpl.digitalDisplayMQTTConnector = digitalDisplayMQTTConnector; - if (MqttConfig.getInstance().isEnabled()) { - digitalDisplayMQTTConnector.connect(); - } else { - log.warn("MQTT disabled in 'devicemgt-config.xml'. " + - "Hence, DigitalDisplayMQTTConnector not started."); - } - } - }; - Thread connectorThread = new Thread(connector); - connectorThread.setDaemon(true); - connectorThread.start(); - } - - public Response restartBrowser(String deviceId, String sessionId) { + @Path("device/{deviceId}/restart-browser") + @POST + public Response restartBrowser(@PathParam("deviceId") String deviceId, @HeaderParam("sessionId") String sessionId) { try { sendCommandViaMQTT(deviceId, sessionId + "::" + DigitalDisplayConstants.RESTART_BROWSER_CONSTANT + "::", ""); return Response.ok().build(); @@ -94,7 +55,10 @@ public class DigitalDisplayControllerServiceImpl implements DigitalDisplayContro } } - public Response terminateDisplay(String deviceId, String sessionId) { + @Path("device/{deviceId}/terminate-display") + @POST + public Response terminateDisplay(@HeaderParam("sessionId") String sessionId, + @PathParam("deviceId") String deviceId) { try { sendCommandViaMQTT(deviceId, sessionId + "::" + DigitalDisplayConstants.TERMINATE_DISPLAY_CONSTANT + "::", ""); return Response.ok().build(); @@ -103,10 +67,11 @@ public class DigitalDisplayControllerServiceImpl implements DigitalDisplayContro } catch (DigitalDisplayException e) { return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).build(); } - } - public Response restartDisplay(String deviceId, String sessionId) { + @Path("device/{deviceId}/restart-display") + @POST + public Response restartDisplay(@PathParam("deviceId") String deviceId, @HeaderParam("sessionId") String sessionId) { try { sendCommandViaMQTT(deviceId, sessionId + "::" + DigitalDisplayConstants.RESTART_DISPLAY_CONSTANT + "::", ""); return Response.ok().build(); @@ -117,7 +82,11 @@ public class DigitalDisplayControllerServiceImpl implements DigitalDisplayContro } } - public Response editSequence(String deviceId, String name, String attribute, String newValue, String sessionId) { + @Path("device/{deviceId}/edit-sequence") + @POST + public Response editSequence(@PathParam("deviceId") String deviceId, @FormParam("name") String name, + @FormParam("attribute") String attribute, @FormParam("new-value") String newValue, + @HeaderParam("sessionId") String sessionId) { try { String params = name + "|" + attribute + "|" + newValue; sendCommandViaMQTT(deviceId, sessionId + "::" + DigitalDisplayConstants.EDIT_SEQUENCE_CONSTANT + "::", params); @@ -129,7 +98,12 @@ public class DigitalDisplayControllerServiceImpl implements DigitalDisplayContro } } - public Response uploadContent(String deviceId, String remotePath, String screenName, String sessionId) { + + @Path("device/{deviceId}/upload-content") + @POST + public Response uploadContent(@PathParam("deviceId") String deviceId, @FormParam("remote-path") String remotePath, + @FormParam("screen-name") String screenName, + @HeaderParam("sessionId") String sessionId) { try { String params = remotePath + "|" + screenName; sendCommandViaMQTT(deviceId, sessionId + "::" + DigitalDisplayConstants.UPLOAD_CONTENT_CONSTANT + "::", @@ -142,8 +116,12 @@ public class DigitalDisplayControllerServiceImpl implements DigitalDisplayContro } } - public Response addNewResource(String deviceId, String type, String time, String path, String name, String position, - String sessionId) { + @Path("device/{deviceId}/add-resource") + @POST + public Response addNewResource(@PathParam("deviceId") String deviceId, @FormParam("type") String type, + @FormParam("time") String time, @FormParam("path") String path, + @FormParam("name") String name, @FormParam("position") String position, + @HeaderParam("sessionId") String sessionId) { String params; try { if (position.isEmpty()) { @@ -161,7 +139,10 @@ public class DigitalDisplayControllerServiceImpl implements DigitalDisplayContro } } - public Response removeResource(String deviceId, String name, String sessionId) { + @Path("device/{deviceId}/remove-resource") + @POST + public Response removeResource(@PathParam("deviceId") String deviceId, @FormParam("name") String name, + @HeaderParam("sessionId") String sessionId) { try { sendCommandViaMQTT(deviceId, sessionId + "::" + DigitalDisplayConstants.REMOVE_RESOURCE_CONSTANT + "::", name); return Response.ok().build(); @@ -172,7 +153,9 @@ public class DigitalDisplayControllerServiceImpl implements DigitalDisplayContro } } - public Response restartServer(String deviceId, String sessionId) { + @Path("device/{deviceId}/restart-server") + @POST + public Response restartServer(@PathParam("deviceId") String deviceId, @HeaderParam("sessionId") String sessionId) { try { sendCommandViaMQTT(deviceId, sessionId + "::" + DigitalDisplayConstants.RESTART_SERVER_CONSTANT + "::", ""); return Response.ok().build(); @@ -183,7 +166,10 @@ public class DigitalDisplayControllerServiceImpl implements DigitalDisplayContro } } - public Response showScreenshot(String deviceId, String sessionId) { + + @Path("device/{deviceId}/screenshot") + @POST + public Response showScreenshot(@PathParam("deviceId") String deviceId, @HeaderParam("sessionId") String sessionId) { try { sendCommandViaMQTT(deviceId, sessionId + "::" + DigitalDisplayConstants.SCREENSHOT_CONSTANT + "::", ""); return Response.ok().build(); @@ -194,7 +180,10 @@ public class DigitalDisplayControllerServiceImpl implements DigitalDisplayContro } } - public Response getDevicestatus(String deviceId, String sessionId) { + @Path("device/{deviceId}/get-device-status") + @POST + public Response getDevicestatus(@PathParam("deviceId") String deviceId, + @HeaderParam("sessionId") String sessionId) { try { sendCommandViaMQTT(deviceId, sessionId + "::" + DigitalDisplayConstants.GET_DEVICE_STATUS_CONSTANT + "::", ""); return Response.ok().build(); @@ -205,7 +194,9 @@ public class DigitalDisplayControllerServiceImpl implements DigitalDisplayContro } } - public Response getResources(String deviceId, String sessionId) { + @Path("device/{deviceId}/get-content-list") + @POST + public Response getResources(@PathParam("deviceId") String deviceId, @HeaderParam("sessionId") String sessionId) { try { sendCommandViaMQTT(deviceId, sessionId + "::" + DigitalDisplayConstants.GET_CONTENTLIST_CONSTANT + "::", ""); return Response.ok().build(); @@ -239,4 +230,41 @@ public class DigitalDisplayControllerServiceImpl implements DigitalDisplayContro } } + private boolean waitForServerStartup() { + while (!IoTServerStartupListener.isServerReady()) { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + return true; + } + } + return false; + } + + public DigitalDisplayMQTTConnector getDigitalDisplayMQTTConnector() { + return DigitalDisplayControllerServiceImpl.digitalDisplayMQTTConnector; + } + + public void setDigitalDisplayMQTTConnector(final + DigitalDisplayMQTTConnector digitalDisplayMQTTConnector) { + + Runnable connector = new Runnable() { + public void run() { + if (waitForServerStartup()) { + return; + } + DigitalDisplayControllerServiceImpl.digitalDisplayMQTTConnector = digitalDisplayMQTTConnector; + if (MqttConfig.getInstance().isEnabled()) { + digitalDisplayMQTTConnector.connect(); + } else { + log.warn("MQTT disabled in 'devicemgt-config.xml'. " + + "Hence, DigitalDisplayMQTTConnector not started."); + } + } + }; + Thread connectorThread = new Thread(connector); + connectorThread.setDaemon(true); + connectorThread.start(); + } + } diff --git a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayManagerService.java b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayManagerService.java index 300fb211a..a33412eab 100644 --- a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayManagerService.java +++ b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayManagerService.java @@ -24,7 +24,6 @@ import org.wso2.carbon.device.mgt.extensions.feature.mgt.annotations.DeviceType; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.GET; -import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; @@ -33,6 +32,7 @@ import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +@Path("enrollment") @API(name = "digital_display_mgt", version = "1.0.0", context = "/digital_display_mgt", tags = {"digital_display"}) @DeviceType(value = "digital_display") public interface DigitalDisplayManagerService { diff --git a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayManagerServiceImpl.java b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayManagerServiceImpl.java index 382a22c6f..c15a16fb6 100644 --- a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayManagerServiceImpl.java +++ b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/java/org/wso2/carbon/device/mgt/iot/digitaldisplay/service/impl/DigitalDisplayManagerServiceImpl.java @@ -40,6 +40,15 @@ import org.wso2.carbon.identity.jwt.client.extension.dto.AccessTokenInfo; import org.wso2.carbon.identity.jwt.client.extension.exception.JWTClientException; import org.wso2.carbon.user.api.UserStoreException; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +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.MediaType; import javax.ws.rs.core.Response; import java.io.IOException; import java.nio.ByteBuffer; @@ -47,38 +56,16 @@ import java.nio.charset.StandardCharsets; import java.util.Date; import java.util.UUID; +@Path("enrollment") public class DigitalDisplayManagerServiceImpl implements DigitalDisplayManagerService { private static Log log = LogFactory.getLog(DigitalDisplayManagerServiceImpl.class); private static final String KEY_TYPE = "PRODUCTION"; private static ApiApplicationKey apiApplicationKey; - private boolean register(String deviceId, String name) { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setId(deviceId); - deviceIdentifier.setType(DigitalDisplayConstants.DEVICE_TYPE); - try { - if (APIUtil.getDeviceManagementService().isEnrolled(deviceIdentifier)) { - return false; - } - Device device = new Device(); - device.setDeviceIdentifier(deviceId); - EnrolmentInfo enrolmentInfo = new EnrolmentInfo(); - enrolmentInfo.setDateOfEnrolment(new Date().getTime()); - enrolmentInfo.setDateOfLastUpdate(new Date().getTime()); - enrolmentInfo.setStatus(EnrolmentInfo.Status.ACTIVE); - device.setName(name); - device.setType(DigitalDisplayConstants.DEVICE_TYPE); - enrolmentInfo.setOwner(APIUtil.getAuthenticatedUser()); - device.setEnrolmentInfo(enrolmentInfo); - boolean added = APIUtil.getDeviceManagementService().enrollDevice(device); - return added; - } catch (DeviceManagementException e) { - return false; - } - } - - public Response removeDevice(String deviceId) { + @Path("devices/{device_id}") + @DELETE + public Response removeDevice(@PathParam("device_id") String deviceId) { DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setId(deviceId); deviceIdentifier.setType(DigitalDisplayConstants.DEVICE_TYPE); @@ -95,7 +82,9 @@ public class DigitalDisplayManagerServiceImpl implements DigitalDisplayManagerSe } } - public Response updateDevice(String deviceId, String name) { + @Path("devices/{device_id}") + @PUT + public Response updateDevice(@PathParam("device_id") String deviceId, @QueryParam("name") String name) { DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setId(deviceId); deviceIdentifier.setType(DigitalDisplayConstants.DEVICE_TYPE); @@ -115,8 +104,11 @@ public class DigitalDisplayManagerServiceImpl implements DigitalDisplayManagerSe return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).build(); } } - - public Response getDevice(String deviceId) { + @Path("devices/{device_id}") + @GET + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response getDevice(@PathParam("device_id") String deviceId) { DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setId(deviceId); deviceIdentifier.setType(DigitalDisplayConstants.DEVICE_TYPE); @@ -128,10 +120,12 @@ public class DigitalDisplayManagerServiceImpl implements DigitalDisplayManagerSe return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).build(); } } - - public Response downloadSketch(String deviceName) { + @Path("devices/download") + @GET + @Produces("application/octet-stream") + public Response downloadSketch(@QueryParam("deviceName") String customDeviceName) { try { - ZipArchive zipFile = createDownloadFile(APIUtil.getAuthenticatedUser(), deviceName); + ZipArchive zipFile = createDownloadFile(APIUtil.getAuthenticatedUser(), customDeviceName); Response.ResponseBuilder response = Response.ok(FileUtils.readFileToByteArray(zipFile.getZipFile())); response.type("application/zip"); response.header("Content-Disposition", "attachment; filename=\"" + zipFile.getFileName() + "\""); @@ -153,6 +147,31 @@ public class DigitalDisplayManagerServiceImpl implements DigitalDisplayManagerSe } } + private boolean register(String deviceId, String name) { + DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); + deviceIdentifier.setId(deviceId); + deviceIdentifier.setType(DigitalDisplayConstants.DEVICE_TYPE); + try { + if (APIUtil.getDeviceManagementService().isEnrolled(deviceIdentifier)) { + return false; + } + Device device = new Device(); + device.setDeviceIdentifier(deviceId); + EnrolmentInfo enrolmentInfo = new EnrolmentInfo(); + enrolmentInfo.setDateOfEnrolment(new Date().getTime()); + enrolmentInfo.setDateOfLastUpdate(new Date().getTime()); + enrolmentInfo.setStatus(EnrolmentInfo.Status.ACTIVE); + device.setName(name); + device.setType(DigitalDisplayConstants.DEVICE_TYPE); + enrolmentInfo.setOwner(APIUtil.getAuthenticatedUser()); + device.setEnrolmentInfo(enrolmentInfo); + boolean added = APIUtil.getDeviceManagementService().enrollDevice(device); + return added; + } catch (DeviceManagementException e) { + return false; + } + } + private ZipArchive createDownloadFile(String owner, String deviceName) throws DeviceManagementException, JWTClientException, DeviceControllerException, APIManagerException, UserStoreException { diff --git a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/webapp/WEB-INF/cxf-servlet.xml b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/webapp/WEB-INF/cxf-servlet.xml index aed7bdb71..b8cdfd331 100644 --- a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/webapp/WEB-INF/cxf-servlet.xml +++ b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/webapp/WEB-INF/cxf-servlet.xml @@ -24,7 +24,7 @@ http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"> - + diff --git a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/webapp/WEB-INF/web.xml b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/webapp/WEB-INF/web.xml index c6fb5fe50..af70d2124 100644 --- a/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/webapp/WEB-INF/web.xml +++ b/components/iot-plugins/digital-display-plugin/org.wso2.carbon.device.mgt.iot.digitaldisplay.api/src/main/webapp/WEB-INF/web.xml @@ -21,28 +21,16 @@ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> Digital-Display-Agent-Webapp + - JAX-WS/JAX-RS MDM Android Endpoint - JAX-WS/JAX-RS Servlet CXFServlet - - org.apache.cxf.transport.servlet.CXFServlet - + org.apache.cxf.transport.servlet.CXFServlet 1 CXFServlet /* - - - isSharedWithAllTenants - true - - - providerTenantDomain - carbon.super - isAdminService false @@ -51,6 +39,14 @@ doAuthentication true + + isSharedWithAllTenants + true + + + providerTenantDomain + carbon.super + @@ -61,17 +57,5 @@ managed-api-owner admin - - managed-api-context-template - /digital_display/{version} - - - managed-api-application - digital_display - - - managed-api-isSecured - true - - + \ No newline at end of file diff --git a/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/DroneControllerServiceImpl.java b/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/DroneControllerServiceImpl.java index 6e6f0e69e..4c6ca60e5 100644 --- a/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/DroneControllerServiceImpl.java +++ b/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/DroneControllerServiceImpl.java @@ -38,7 +38,10 @@ public class DroneControllerServiceImpl implements DroneControllerService { private ConcurrentHashMap deviceToIpMap = new ConcurrentHashMap<>(); private DroneController droneController = new DroneControllerImpl(); - public Response registerDeviceIP(String deviceId, String deviceIP, String devicePort) { + @Path("device/register/{deviceId}/{ip}/{port}") + @POST + public Response registerDeviceIP(@PathParam("deviceId") String deviceId, @PathParam("ip") String deviceIP, + @PathParam("port") String devicePort) { String result; String deviceHttpEndpoint = deviceIP + ":" + devicePort; deviceToIpMap.put(deviceId, deviceHttpEndpoint); @@ -49,7 +52,10 @@ public class DroneControllerServiceImpl implements DroneControllerService { return Response.ok(Response.Status.OK.getStatusCode()).build(); } - public Response droneController(String deviceId, String action, String duration, String speed) { + @Path("device/{deviceId}/send_command") + @POST + public Response droneController(@PathParam("deviceId") String deviceId, @FormParam("action") String action, + @FormParam("duration") String duration, @FormParam("speed") String speed) { try { DroneAnalyzerServiceUtils.sendControlCommand(droneController, deviceId, action, Double.valueOf(speed), Double.valueOf(duration)); diff --git a/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/DroneManagerService.java b/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/DroneManagerService.java index 377f09eed..535479ad3 100644 --- a/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/DroneManagerService.java +++ b/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/DroneManagerService.java @@ -31,6 +31,7 @@ import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Response; +@Path("enrollment") @API(name = "drone_analyzer_mgt", version = "1.0.0", context = "/drone_analyzer_mgt", tags = {"drone_analyzer"}) @DeviceType(value = "drone_analyzer") public interface DroneManagerService { diff --git a/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/DroneManagerServiceImpl.java b/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/DroneManagerServiceImpl.java index d9fbfb44b..6066f2de2 100644 --- a/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/DroneManagerServiceImpl.java +++ b/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/java/org/wso2/carbon/device/mgt/iot/droneanalyzer/service/impl/DroneManagerServiceImpl.java @@ -40,6 +40,15 @@ import org.wso2.carbon.identity.jwt.client.extension.JWTClientManager; import org.wso2.carbon.identity.jwt.client.extension.dto.AccessTokenInfo; import org.wso2.carbon.identity.jwt.client.extension.exception.JWTClientException; import org.wso2.carbon.user.api.UserStoreException; + +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +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.Response; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; @@ -48,39 +57,16 @@ import java.util.Date; import java.util.List; import java.util.UUID; +@Path("enrollment") public class DroneManagerServiceImpl implements DroneManagerService { private static org.apache.commons.logging.Log log = LogFactory.getLog(DroneManagerServiceImpl.class); private static final String KEY_TYPE = "PRODUCTION"; private static ApiApplicationKey apiApplicationKey; - private boolean register(String deviceId, String name) { - try { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setId(deviceId); - deviceIdentifier.setType(DroneConstants.DEVICE_TYPE); - if (APIUtil.getDeviceManagementService().isEnrolled(deviceIdentifier)) { - return false; - } - Device device = new Device(); - device.setDeviceIdentifier(deviceId); - EnrolmentInfo enrolmentInfo = new EnrolmentInfo(); - enrolmentInfo.setDateOfEnrolment(new Date().getTime()); - enrolmentInfo.setDateOfLastUpdate(new Date().getTime()); - enrolmentInfo.setStatus(EnrolmentInfo.Status.ACTIVE); - enrolmentInfo.setOwnership(EnrolmentInfo.OwnerShip.BYOD); - device.setName(name); - device.setType(DroneConstants.DEVICE_TYPE); - enrolmentInfo.setOwner(APIUtil.getAuthenticatedUser()); - device.setEnrolmentInfo(enrolmentInfo); - boolean added = APIUtil.getDeviceManagementService().enrollDevice(device); - return added; - } catch (DeviceManagementException e) { - return false; - } - } - - public Response removeDevice(String deviceId) { + @Path("devices/{device_id}") + @DELETE + public Response removeDevice(@PathParam("device_id") String deviceId) { try { DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setId(deviceId); @@ -96,7 +82,10 @@ public class DroneManagerServiceImpl implements DroneManagerService { } } - public Response updateDevice(String deviceId, String name) { + + @Path("devices/{device_id}") + @PUT + public Response updateDevice(@PathParam("device_id") String deviceId, @QueryParam("name") String name) { try { DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setId(deviceId); @@ -117,7 +106,11 @@ public class DroneManagerServiceImpl implements DroneManagerService { } } - public Response getDevice(String deviceId) { + @Path("devices/{device_id}") + @GET + @Consumes("application/json") + @Produces("application/json") + public Response getDevice(@PathParam("device_id") String deviceId) { try { DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setId(deviceId); @@ -129,6 +122,10 @@ public class DroneManagerServiceImpl implements DroneManagerService { } } + @Path("devices") + @GET + @Consumes("application/json") + @Produces("application/json") public Response getDroneDevices() { try { List userDevices = APIUtil.getDeviceManagementService().getDevicesOfUser(APIUtil.getAuthenticatedUser()); @@ -147,7 +144,11 @@ public class DroneManagerServiceImpl implements DroneManagerService { } } - public Response downloadSketch(String deviceName, String sketchType) { + @Path("devices/{sketch_type}/download") + @GET + @Produces("application/octet-stream") + public Response downloadSketch(@QueryParam("deviceName") String deviceName, @PathParam("sketch_type") String + sketchType) { //create new device id String deviceId = shortUUID(); @@ -173,10 +174,12 @@ public class DroneManagerServiceImpl implements DroneManagerService { Response.ResponseBuilder rb = Response.ok(zipFile.getZipFile()); rb.header("Content-Disposition", "attachment; filename=\"" + zipFile.getFileName() + "\""); return rb.build(); - } - public Response generateSketchLink(String deviceName, String sketchType) { + @Path("devices/{sketch_type}/generate_link") + @GET + public Response generateSketchLink(@QueryParam("deviceName") String deviceName, + @PathParam("sketch_type") String sketchType) { try { ZipArchive zipFile = createDownloadFile(deviceName, sketchType); Response.ResponseBuilder rb = Response.ok(zipFile.getDeviceId()); @@ -196,6 +199,32 @@ public class DroneManagerServiceImpl implements DroneManagerService { } } + private boolean register(String deviceId, String name) { + try { + DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); + deviceIdentifier.setId(deviceId); + deviceIdentifier.setType(DroneConstants.DEVICE_TYPE); + if (APIUtil.getDeviceManagementService().isEnrolled(deviceIdentifier)) { + return false; + } + Device device = new Device(); + device.setDeviceIdentifier(deviceId); + EnrolmentInfo enrolmentInfo = new EnrolmentInfo(); + enrolmentInfo.setDateOfEnrolment(new Date().getTime()); + enrolmentInfo.setDateOfLastUpdate(new Date().getTime()); + enrolmentInfo.setStatus(EnrolmentInfo.Status.ACTIVE); + enrolmentInfo.setOwnership(EnrolmentInfo.OwnerShip.BYOD); + device.setName(name); + device.setType(DroneConstants.DEVICE_TYPE); + enrolmentInfo.setOwner(APIUtil.getAuthenticatedUser()); + device.setEnrolmentInfo(enrolmentInfo); + boolean added = APIUtil.getDeviceManagementService().enrollDevice(device); + return added; + } catch (DeviceManagementException e) { + return false; + } + } + private ZipArchive createDownloadFile(String deviceName, String sketchType) throws DeviceManagementException, JWTClientException, APIManagerException, DeviceControllerException, UserStoreException { diff --git a/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/webapp/WEB-INF/web.xml b/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/webapp/WEB-INF/web.xml index 2a9646df6..2f18393cf 100644 --- a/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/webapp/WEB-INF/web.xml +++ b/components/iot-plugins/drone-analyzer-plugin/org.wso2.carbon.device.mgt.iot.droneanalyzer.api/src/main/webapp/WEB-INF/web.xml @@ -6,44 +6,41 @@ metadata-complete="true"> WSO2 IoT Server WSO2 IoT Server - - CXFServlet - org.apache.cxf.transport.servlet.CXFServlet - 1 - - - CXFServlet - /* - - - isAdminService - false - - - doAuthentication - false - + + CXFServlet + org.apache.cxf.transport.servlet.CXFServlet + 1 + + + CXFServlet + /* + + + isAdminService + false + + + doAuthentication + true + + + isSharedWithAllTenants + true + + + providerTenantDomain + carbon.super + - - - managed-api-enabled - true - - - managed-api-owner - admin - - - managed-api-context-template - /drone_analyzer/{version} - - - managed-api-application - drone_analyzer - - - managed-api-isSecured - true - - + + + managed-api-enabled + true + + + managed-api-owner + admin + + + \ No newline at end of file diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerService.java b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerService.java index a6025d0e3..12d5f4389 100644 --- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerService.java +++ b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerService.java @@ -71,7 +71,7 @@ public interface RaspberryPiControllerService { @GET @Consumes("application/json") @Produces("application/json") - Response getArduinoTemperatureStats(@PathParam("deviceId") String deviceId, @QueryParam("username") String user, + Response getRaspberryPiTemperatureStats(@PathParam("deviceId") String deviceId, @QueryParam("username") String user, @QueryParam("from") long from, @QueryParam("to") long to); } diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerServiceImpl.java b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerServiceImpl.java index 81b906a59..b744455d2 100644 --- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerServiceImpl.java +++ b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerServiceImpl.java @@ -25,6 +25,7 @@ import org.wso2.carbon.device.mgt.analytics.data.publisher.AnalyticsDataRecord; import org.wso2.carbon.device.mgt.analytics.data.publisher.exception.DeviceManagementAnalyticsException; import org.wso2.carbon.device.mgt.analytics.data.publisher.service.DeviceAnalyticsService; import org.wso2.carbon.device.mgt.common.DeviceManagementException; +import org.wso2.carbon.device.mgt.extensions.feature.mgt.annotations.Feature; import org.wso2.carbon.device.mgt.iot.controlqueue.mqtt.MqttConfig; import org.wso2.carbon.device.mgt.iot.exception.DeviceControllerException; import org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.dto.DeviceData; @@ -37,7 +38,16 @@ import org.wso2.carbon.device.mgt.iot.sensormgt.SensorRecord; import org.wso2.carbon.device.mgt.iot.service.IoTServerStartupListener; import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.Consumes; +import javax.ws.rs.FormParam; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +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.MediaType; import javax.ws.rs.core.Response; import java.util.ArrayList; import java.util.Calendar; @@ -52,42 +62,10 @@ public class RaspberryPiControllerServiceImpl implements RaspberryPiControllerSe private ConcurrentHashMap deviceToIpMap = new ConcurrentHashMap<>(); private RaspberryPiMQTTConnector raspberryPiMQTTConnector; - private boolean waitForServerStartup() { - while (!IoTServerStartupListener.isServerReady()) { - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - return true; - } - } - return false; - } - - public RaspberryPiMQTTConnector getRaspberryPiMQTTConnector() { - return raspberryPiMQTTConnector; - } - - public void setRaspberryPiMQTTConnector( - final RaspberryPiMQTTConnector raspberryPiMQTTConnector) { - Runnable connector = new Runnable() { - public void run() { - if (waitForServerStartup()) { - return; - } - RaspberryPiControllerServiceImpl.this.raspberryPiMQTTConnector = raspberryPiMQTTConnector; - if (MqttConfig.getInstance().isEnabled()) { - raspberryPiMQTTConnector.connect(); - } else { - log.warn("MQTT disabled in 'devicemgt-config.xml'. Hence, RaspberryPiMQTTConnector not started."); - } - } - }; - Thread connectorThread = new Thread(connector); - connectorThread.setDaemon(true); - connectorThread.start(); - } - - public Response registerDeviceIP(String deviceId, String deviceIP, String devicePort, HttpServletRequest request) { + @Path("device/register/{deviceId}/{ip}/{port}") + @POST + public Response registerDeviceIP(@PathParam("deviceId") String deviceId, @PathParam("ip") String deviceIP, + @PathParam("port") String devicePort, @Context HttpServletRequest request) { String result; if (log.isDebugEnabled()) { log.debug("Got register call from IP: " + deviceIP + " for Device ID: " + deviceId); @@ -101,7 +79,9 @@ public class RaspberryPiControllerServiceImpl implements RaspberryPiControllerSe return Response.ok().entity(result).build(); } - public Response switchBulb(String deviceId, String state) { + @Path("device/{deviceId}/bulb") + @POST + public Response switchBulb(@PathParam("deviceId") String deviceId, @FormParam("state") String state) { String switchToState = state.toUpperCase(); if (!switchToState.equals(RaspberrypiConstants.STATE_ON) && !switchToState.equals( RaspberrypiConstants.STATE_OFF)) { @@ -122,6 +102,10 @@ public class RaspberryPiControllerServiceImpl implements RaspberryPiControllerSe return Response.ok().build(); } + @Path("device/{deviceId}/readtemperature") + @GET + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) public Response requestTemperature(@PathParam("deviceId") String deviceId) { SensorRecord sensorRecord = null; if (log.isDebugEnabled()) { @@ -147,7 +131,10 @@ public class RaspberryPiControllerServiceImpl implements RaspberryPiControllerSe return Response.ok().entity(sensorRecord).build(); } - public Response pushTemperatureData(final DeviceData dataMsg, HttpServletRequest request) { + @Path("device/push_temperature") + @POST + @Consumes(MediaType.APPLICATION_JSON) + public Response pushTemperatureData(final DeviceData dataMsg, @Context HttpServletRequest request) { String owner = dataMsg.owner; String deviceId = dataMsg.deviceId; String deviceIp = dataMsg.reply; @@ -176,7 +163,13 @@ public class RaspberryPiControllerServiceImpl implements RaspberryPiControllerSe return Response.ok().build(); } - public Response getArduinoTemperatureStats(String deviceId, String user, long from, long to) { + @Path("device/stats/{deviceId}/sensors/temperature") + @GET + @Consumes("application/json") + @Produces("application/json") + public Response getRaspberryPiTemperatureStats(@PathParam("deviceId") String deviceId, + @QueryParam("username") String user, + @QueryParam("from") long from, @QueryParam("to") long to) { String fromDate = String.valueOf(from); String toDate = String.valueOf(to); List sensorDatas = new ArrayList<>(); @@ -208,7 +201,7 @@ public class RaspberryPiControllerServiceImpl implements RaspberryPiControllerSe sensorData.setValue("" + (float) record.getValue(RaspberrypiConstants.SENSOR_TEMPERATURE)); sensorDatas.add(sensorData); } - SensorData[] sensorDetails = sensorDatas.toArray(new SensorData[sensorDatas.size()]); + SensorData[] sensorDetails = sensorDatas.toArray(new SensorData[sensorDatas.size()]); return Response.ok().entity(sensorDetails).build(); } catch (DeviceManagementAnalyticsException e) { String errorMsg = "Error on retrieving stats on table " + sensorTableName + " with query " + query; @@ -218,4 +211,39 @@ public class RaspberryPiControllerServiceImpl implements RaspberryPiControllerSe } } + private boolean waitForServerStartup() { + while (!IoTServerStartupListener.isServerReady()) { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + return true; + } + } + return false; + } + + public RaspberryPiMQTTConnector getRaspberryPiMQTTConnector() { + return raspberryPiMQTTConnector; + } + + public void setRaspberryPiMQTTConnector( + final RaspberryPiMQTTConnector raspberryPiMQTTConnector) { + Runnable connector = new Runnable() { + public void run() { + if (waitForServerStartup()) { + return; + } + RaspberryPiControllerServiceImpl.this.raspberryPiMQTTConnector = raspberryPiMQTTConnector; + if (MqttConfig.getInstance().isEnabled()) { + raspberryPiMQTTConnector.connect(); + } else { + log.warn("MQTT disabled in 'devicemgt-config.xml'. Hence, RaspberryPiMQTTConnector not started."); + } + } + }; + Thread connectorThread = new Thread(connector); + connectorThread.setDaemon(true); + connectorThread.start(); + } + } diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiManagerService.java b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiManagerService.java index 294c27b3e..cd4d2cb25 100644 --- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiManagerService.java +++ b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiManagerService.java @@ -32,6 +32,7 @@ import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +@Path("enrollment") @API(name = "raspberrypi_mgt", version = "1.0.0", context = "/raspberrypi_mgt", tags = {"raspberrypi"}) @DeviceType(value = "raspberrypi") public interface RaspberryPiManagerService { @@ -43,7 +44,7 @@ public interface RaspberryPiManagerService { @Path("devices/{device_id}") @PUT Response updateDevice(@PathParam("device_id") String deviceId, - @QueryParam("name") String name); + @QueryParam("name") String name); @Path("devices/{device_id}") @GET @@ -57,16 +58,15 @@ public interface RaspberryPiManagerService { @Produces(MediaType.APPLICATION_JSON) Response getRaspberrypiDevices(); - @Path("devices/{sketch_type}/download") @GET @Produces(MediaType.APPLICATION_JSON) - Response downloadSketch(@QueryParam("deviceName") String deviceName, @PathParam("sketch_type") String - sketchType); + Response downloadSketch(@QueryParam("deviceName") String deviceName, + @PathParam("sketch_type") String sketchType); @Path("devices/{sketch_type}/generate_link") @GET Response generateSketchLink(@QueryParam("deviceName") String deviceName, - @PathParam("sketch_type") String sketchType); + @PathParam("sketch_type") String sketchType); } diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiManagerServiceImpl.java b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiManagerServiceImpl.java index 5151a6fa9..6d0281694 100644 --- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiManagerServiceImpl.java +++ b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiManagerServiceImpl.java @@ -43,6 +43,15 @@ import org.wso2.carbon.identity.jwt.client.extension.dto.AccessTokenInfo; import org.wso2.carbon.identity.jwt.client.extension.exception.JWTClientException; import org.wso2.carbon.user.api.UserStoreException; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +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.MediaType; import javax.ws.rs.core.Response; import java.io.IOException; import java.nio.ByteBuffer; @@ -52,39 +61,16 @@ import java.util.Date; import java.util.List; import java.util.UUID; +@Path("enrollment") public class RaspberryPiManagerServiceImpl implements RaspberryPiManagerService { private static Log log = LogFactory.getLog(RaspberryPiManagerServiceImpl.class); - private static final String KEY_TYPE = "PRODUCTION"; private static ApiApplicationKey apiApplicationKey; - private boolean register(String deviceId, String name) { - try { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setId(deviceId); - deviceIdentifier.setType(RaspberrypiConstants.DEVICE_TYPE); - if (APIUtil.getDeviceManagementService().isEnrolled(deviceIdentifier)) { - return false; - } - Device device = new Device(); - device.setDeviceIdentifier(deviceId); - EnrolmentInfo enrolmentInfo = new EnrolmentInfo(); - enrolmentInfo.setDateOfEnrolment(new Date().getTime()); - enrolmentInfo.setDateOfLastUpdate(new Date().getTime()); - enrolmentInfo.setStatus(EnrolmentInfo.Status.ACTIVE); - device.setName(name); - device.setType(RaspberrypiConstants.DEVICE_TYPE); - enrolmentInfo.setOwner(APIUtil.getAuthenticatedUser()); - device.setEnrolmentInfo(enrolmentInfo); - boolean added = APIUtil.getDeviceManagementService().enrollDevice(device); - return added; - } catch (DeviceManagementException e) { - return false; - } - } - - public Response removeDevice(String deviceId) { + @Path("devices/{device_id}") + @DELETE + public Response removeDevice(@PathParam("device_id") String deviceId) { try { DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setId(deviceId); @@ -101,7 +87,9 @@ public class RaspberryPiManagerServiceImpl implements RaspberryPiManagerService } } - public Response updateDevice(String deviceId, String name) { + @Path("devices/{device_id}") + @PUT + public Response updateDevice(@PathParam("device_id") String deviceId, @QueryParam("name") String name) { DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setId(deviceId); deviceIdentifier.setType(RaspberrypiConstants.DEVICE_TYPE); @@ -123,7 +111,11 @@ public class RaspberryPiManagerServiceImpl implements RaspberryPiManagerService } } - public Response getDevice(String deviceId) { + @Path("devices/{device_id}") + @GET + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response getDevice(@PathParam("device_id") String deviceId) { DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setId(deviceId); deviceIdentifier.setType(RaspberrypiConstants.DEVICE_TYPE); @@ -136,6 +128,10 @@ public class RaspberryPiManagerServiceImpl implements RaspberryPiManagerService } } + @Path("devices") + @GET + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) public Response getRaspberrypiDevices() { try { List userDevices = APIUtil.getDeviceManagementService().getDevicesOfUser( @@ -154,7 +150,12 @@ public class RaspberryPiManagerServiceImpl implements RaspberryPiManagerService } } - public Response downloadSketch(String deviceName, String sketchType) { + + @Path("devices/{sketch_type}/download") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response downloadSketch(@QueryParam("deviceName") String deviceName, + @PathParam("sketch_type") String sketchType) { try { ZipArchive zipFile = createDownloadFile(APIUtil.getAuthenticatedUser(), deviceName, sketchType); Response.ResponseBuilder response = Response.ok(FileUtils.readFileToByteArray(zipFile.getZipFile())); @@ -178,8 +179,10 @@ public class RaspberryPiManagerServiceImpl implements RaspberryPiManagerService } } - public Response generateSketchLink(String deviceName, String sketchType) { - + @Path("devices/{sketch_type}/generate_link") + @GET + public Response generateSketchLink(@QueryParam("deviceName") String deviceName, + @PathParam("sketch_type") String sketchType) { try { ZipArchive zipFile = createDownloadFile(APIUtil.getAuthenticatedUser(), deviceName, sketchType); Response.ResponseBuilder rb = Response.ok(zipFile.getDeviceId()); @@ -199,6 +202,30 @@ public class RaspberryPiManagerServiceImpl implements RaspberryPiManagerService } } + private boolean register(String deviceId, String name) { + try { + DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); + deviceIdentifier.setId(deviceId); + deviceIdentifier.setType(RaspberrypiConstants.DEVICE_TYPE); + if (APIUtil.getDeviceManagementService().isEnrolled(deviceIdentifier)) { + return false; + } + Device device = new Device(); + device.setDeviceIdentifier(deviceId); + EnrolmentInfo enrolmentInfo = new EnrolmentInfo(); + enrolmentInfo.setDateOfEnrolment(new Date().getTime()); + enrolmentInfo.setDateOfLastUpdate(new Date().getTime()); + enrolmentInfo.setStatus(EnrolmentInfo.Status.ACTIVE); + device.setName(name); + device.setType(RaspberrypiConstants.DEVICE_TYPE); + enrolmentInfo.setOwner(APIUtil.getAuthenticatedUser()); + device.setEnrolmentInfo(enrolmentInfo); + boolean added = APIUtil.getDeviceManagementService().enrollDevice(device); + return added; + } catch (DeviceManagementException e) { + return false; + } + } private ZipArchive createDownloadFile(String owner, String deviceName, String sketchType) throws DeviceManagementException, JWTClientException, APIManagerException, DeviceControllerException, diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/webapp/WEB-INF/web.xml b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/webapp/WEB-INF/web.xml index f2fe934b8..623d182b7 100644 --- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/webapp/WEB-INF/web.xml +++ b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/webapp/WEB-INF/web.xml @@ -7,48 +7,40 @@ RaspberryPi RaspberryPi - - CXFServlet - org.apache.cxf.transport.servlet.CXFServlet - 1 - + + CXFServlet + org.apache.cxf.transport.servlet.CXFServlet + 1 + + + CXFServlet + /* + + + isAdminService + false + + + doAuthentication + true + + + isSharedWithAllTenants + true + + + providerTenantDomain + carbon.super + + + + managed-api-enabled + true + + + managed-api-owner + admin + - - CXFServlet - /* - - - - isAdminService - false - - - doAuthentication - true - - - - - managed-api-enabled - true - - - managed-api-owner - admin - - - managed-api-context-template - /raspberrypi/{version} - - - managed-api-application - raspberrypi - - - managed-api-isSecured - true - - - - + \ No newline at end of file diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerService.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerService.java index 4281934c1..a46762b21 100644 --- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerService.java +++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerService.java @@ -56,7 +56,7 @@ public interface VirtualFireAlarmControllerService { * @return a custom message indicating whether the DeviceID to IP mapping was successful. */ @POST - @Path("register/{deviceId}/{ip}/{port}") + @Path("device/register/{deviceId}/{ip}/{port}") Response registerDeviceIP(@PathParam("deviceId") String deviceId, @PathParam("ip") String deviceIP, @PathParam("port") String devicePort, @Context HttpServletRequest request); @@ -72,7 +72,7 @@ public interface VirtualFireAlarmControllerService { * (Case-Insensitive String) */ @POST - @Path("{deviceId}/buzz") + @Path("device/{deviceId}/buzz") @Feature(code = "buzz", name = "Buzzer On / Off", type = "operation", description = "Switch on/off Virtual Fire Alarm Buzzer. (On / Off)") Response switchBuzzer(@PathParam("deviceId") String deviceId, @QueryParam("protocol") String protocol, @@ -89,7 +89,7 @@ public interface VirtualFireAlarmControllerService { * whose temperature reading was requested. */ @GET - @Path("{deviceId}/temperature") + @Path("device/{deviceId}/temperature") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Feature(code = "temperature", name = "Temperature", type = "monitor", @@ -105,7 +105,7 @@ public interface VirtualFireAlarmControllerService { * @param dataMsg the temperature data received from the device in JSON format complying to type 'DeviceData'. */ @POST - @Path("temperature") + @Path("device/temperature") @Consumes(MediaType.APPLICATION_JSON) Response pushTemperatureData(final DeviceData dataMsg); @@ -123,7 +123,7 @@ public interface VirtualFireAlarmControllerService { * @return an HTTP Response object with either the CA-Cert or the CA-Capabilities according to the operation. */ @GET - @Path("scep") + @Path("device/scep") Response scepRequest(@QueryParam("operation") String operation, @QueryParam("message") String message); @@ -140,13 +140,13 @@ public interface VirtualFireAlarmControllerService { * @return an HTTP Response object with the signed certificate for the device by the CA of the SCEP Server. */ @POST - @Path("scep") + @Path("device/scep") Response scepRequestPost(@QueryParam("operation") String operation, InputStream inputStream); /** * Retrieve Sensor data for the device type */ - @Path("stats/{deviceId}/sensors/{sensorName}") + @Path("device/stats/{deviceId}/sensors/{sensorName}") @GET @Consumes("application/json") @Produces("application/json") diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerServiceImpl.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerServiceImpl.java index 60fb360d3..b776a3e63 100644 --- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerServiceImpl.java +++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerServiceImpl.java @@ -28,6 +28,7 @@ import org.wso2.carbon.device.mgt.analytics.data.publisher.AnalyticsDataRecord; import org.wso2.carbon.device.mgt.analytics.data.publisher.exception.DeviceManagementAnalyticsException; import org.wso2.carbon.device.mgt.analytics.data.publisher.service.DeviceAnalyticsService; import org.wso2.carbon.device.mgt.common.DeviceManagementException; +import org.wso2.carbon.device.mgt.extensions.feature.mgt.annotations.Feature; import org.wso2.carbon.device.mgt.iot.controlqueue.mqtt.MqttConfig; import org.wso2.carbon.device.mgt.iot.controlqueue.xmpp.XmppConfig; import org.wso2.carbon.device.mgt.iot.exception.DeviceControllerException; @@ -47,6 +48,15 @@ import org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.util.scep.SC import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.constants.VirtualFireAlarmConstants; import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.Consumes; +import javax.ws.rs.FormParam; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +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.MediaType; import javax.ws.rs.core.Response; import java.io.InputStream; @@ -80,127 +90,10 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo // holds a mapping of the IP addresses to Device-IDs for HTTP communication private ConcurrentHashMap deviceToIpMap = new ConcurrentHashMap<>(); - private boolean waitForServerStartup() { - while (!IoTServerStartupListener.isServerReady()) { - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - return true; - } - } - return false; - } - - /** - * Fetches the `SecurityManager` specific to this VirtualFirealarm controller service. - * - * @return the 'SecurityManager' instance bound to the 'securityManager' variable of this service. - */ - @SuppressWarnings("Unused") - public SecurityManager getSecurityManager() { - return securityManager; - } - - /** - * Sets the `securityManager` variable of this VirtualFirealarm controller service. - * - * @param securityManager a 'SecurityManager' object that handles the encryption, decryption, signing and validation - * of incoming messages from VirtualFirealarm device-types. - */ - @SuppressWarnings("Unused") - public void setSecurityManager(SecurityManager securityManager) { - this.securityManager = securityManager; - securityManager.initVerificationManager(); - } - - /** - * Fetches the `VirtualFireAlarmXMPPConnector` specific to this VirtualFirealarm controller service. - * - * @return the 'VirtualFireAlarmXMPPConnector' instance bound to the 'virtualFireAlarmXMPPConnector' variable of - * this service. - */ - @SuppressWarnings("Unused") - public VirtualFireAlarmXMPPConnector getVirtualFireAlarmXMPPConnector() { - return virtualFireAlarmXMPPConnector; - } - - /** - * Sets the `virtualFireAlarmXMPPConnector` variable of this VirtualFirealarm controller service. - * - * @param virtualFireAlarmXMPPConnector a 'VirtualFireAlarmXMPPConnector' object that handles all XMPP related - * communications of any connected VirtualFirealarm device-type - */ - @SuppressWarnings("Unused") - public void setVirtualFireAlarmXMPPConnector( - final VirtualFireAlarmXMPPConnector virtualFireAlarmXMPPConnector) { - Runnable connector = new Runnable() { - public void run() { - if (waitForServerStartup()) { - return; - } - VirtualFireAlarmControllerServiceImpl.this.virtualFireAlarmXMPPConnector = virtualFireAlarmXMPPConnector; - - if (XmppConfig.getInstance().isEnabled()) { - Runnable xmppStarter = new Runnable() { - @Override - public void run() { - virtualFireAlarmXMPPConnector.initConnector(); - virtualFireAlarmXMPPConnector.connect(); - } - }; - - Thread xmppStarterThread = new Thread(xmppStarter); - xmppStarterThread.setDaemon(true); - xmppStarterThread.start(); - } else { - log.warn("XMPP disabled in 'devicemgt-config.xml'. Hence, VirtualFireAlarmXMPPConnector not started."); - } - } - }; - Thread connectorThread = new Thread(connector); - connectorThread.setDaemon(true); - connectorThread.start(); - } - - /** - * Fetches the `VirtualFireAlarmMQTTConnector` specific to this VirtualFirealarm controller service. - * - * @return the 'VirtualFireAlarmMQTTConnector' instance bound to the 'virtualFireAlarmMQTTConnector' variable of - * this service. - */ - @SuppressWarnings("Unused") - public VirtualFireAlarmMQTTConnector getVirtualFireAlarmMQTTConnector() { - return virtualFireAlarmMQTTConnector; - } - - /** - * Sets the `virtualFireAlarmMQTTConnector` variable of this VirtualFirealarm controller service. - * - * @param virtualFireAlarmMQTTConnector a 'VirtualFireAlarmMQTTConnector' object that handles all MQTT related - * communications of any connected VirtualFirealarm device-type - */ - @SuppressWarnings("Unused") - public void setVirtualFireAlarmMQTTConnector( - final VirtualFireAlarmMQTTConnector virtualFireAlarmMQTTConnector) { - Runnable connector = new Runnable() { - public void run() { - if (waitForServerStartup()) { - return; - } - VirtualFireAlarmControllerServiceImpl.this.virtualFireAlarmMQTTConnector = virtualFireAlarmMQTTConnector; - if (MqttConfig.getInstance().isEnabled()) { - virtualFireAlarmMQTTConnector.connect(); - } else { - log.warn("MQTT disabled in 'devicemgt-config.xml'. Hence, VirtualFireAlarmMQTTConnector not started."); - } - } - }; - Thread connectorThread = new Thread(connector); - connectorThread.setDaemon(true); - connectorThread.start(); - } - - public Response registerDeviceIP(String deviceId, String deviceIP, String devicePort, HttpServletRequest request) { + @POST + @Path("device/register/{deviceId}/{ip}/{port}") + public Response registerDeviceIP(@PathParam("deviceId") String deviceId, @PathParam("ip") String deviceIP, + @PathParam("port") String devicePort, @Context HttpServletRequest request) { String result; if (log.isDebugEnabled()) { log.debug("Got register call from IP: " + deviceIP + " for Device ID: " + deviceId); @@ -214,7 +107,10 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo return Response.ok().entity(result).build(); } - public Response switchBuzzer(String deviceId, String protocol, String state) { + @POST + @Path("device/{deviceId}/buzz") + public Response switchBuzzer(@PathParam("deviceId") String deviceId, @QueryParam("protocol") String protocol, + @FormParam("state") String state) { String switchToState = state.toUpperCase(); if (!switchToState.equals(VirtualFireAlarmConstants.STATE_ON) && !switchToState.equals( VirtualFireAlarmConstants.STATE_OFF)) { @@ -252,7 +148,12 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo } } - public Response requestTemperature(String deviceId, String protocol) { + @GET + @Path("device/{deviceId}/temperature") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response requestTemperature(@PathParam("deviceId") String deviceId, + @QueryParam("protocol") String protocol) { SensorRecord sensorRecord = null; String protocolString = protocol.toUpperCase(); if (log.isDebugEnabled()) { @@ -289,6 +190,9 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo } } + @POST + @Path("device/temperature") + @Consumes(MediaType.APPLICATION_JSON) public Response pushTemperatureData(final DeviceData dataMsg) { String deviceId = dataMsg.deviceId; String deviceIp = dataMsg.reply; @@ -312,7 +216,9 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo return Response.ok().build(); } - public Response scepRequest(String operation, String message) { + @GET + @Path("device/scep") + public Response scepRequest(@QueryParam("operation") String operation, @QueryParam("message") String message) { if (log.isDebugEnabled()) { log.debug("Invoking SCEP operation " + operation); } @@ -362,7 +268,6 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo if (log.isDebugEnabled()) { log.debug("Invoking GetCACaps"); } - try { CertificateManagementService certificateManagementService = VirtualFireAlarmServiceUtils. getCertificateManagementService(); @@ -373,16 +278,15 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo } catch (VirtualFireAlarmException e) { log.error("Error occurred while enrolling the device", e); } - } else { log.error("Invalid SCEP operation " + operation); } - return Response.serverError().build(); - } - public Response scepRequestPost(String operation, InputStream inputStream) { + @POST + @Path("device/scep") + public Response scepRequestPost(@QueryParam("operation") String operation, InputStream inputStream) { if (log.isDebugEnabled()) { log.debug("Invoking SCEP operation " + operation); } @@ -404,7 +308,14 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo return Response.serverError().build(); } - public Response getVirtualFirealarmStats(String deviceId, String sensor, String user, long from, long to) { + @Path("device/stats/{deviceId}/sensors/{sensorName}") + @GET + @Consumes("application/json") + @Produces("application/json") + public Response getVirtualFirealarmStats(@PathParam("deviceId") String deviceId, + @PathParam("sensorName") String sensor, + @QueryParam("username") String user, @QueryParam("from") long from, + @QueryParam("to") long to) { try { String fromDate = String.valueOf(from); String toDate = String.valueOf(to); @@ -448,6 +359,126 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo return Response.status(Response.Status.BAD_REQUEST).build(); } + private boolean waitForServerStartup() { + while (!IoTServerStartupListener.isServerReady()) { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + return true; + } + } + return false; + } + + /** + * Fetches the `SecurityManager` specific to this VirtualFirealarm controller service. + * + * @return the 'SecurityManager' instance bound to the 'securityManager' variable of this service. + */ + @SuppressWarnings("Unused") + public SecurityManager getSecurityManager() { + return securityManager; + } + + /** + * Sets the `securityManager` variable of this VirtualFirealarm controller service. + * + * @param securityManager a 'SecurityManager' object that handles the encryption, decryption, signing and validation + * of incoming messages from VirtualFirealarm device-types. + */ + @SuppressWarnings("Unused") + public void setSecurityManager(SecurityManager securityManager) { + this.securityManager = securityManager; + securityManager.initVerificationManager(); + } + + /** + * Fetches the `VirtualFireAlarmXMPPConnector` specific to this VirtualFirealarm controller service. + * + * @return the 'VirtualFireAlarmXMPPConnector' instance bound to the 'virtualFireAlarmXMPPConnector' variable of + * this service. + */ + @SuppressWarnings("Unused") + public VirtualFireAlarmXMPPConnector getVirtualFireAlarmXMPPConnector() { + return virtualFireAlarmXMPPConnector; + } + + /** + * Sets the `virtualFireAlarmXMPPConnector` variable of this VirtualFirealarm controller service. + * + * @param virtualFireAlarmXMPPConnector a 'VirtualFireAlarmXMPPConnector' object that handles all XMPP related + * communications of any connected VirtualFirealarm device-type + */ + @SuppressWarnings("Unused") + public void setVirtualFireAlarmXMPPConnector( + final VirtualFireAlarmXMPPConnector virtualFireAlarmXMPPConnector) { + Runnable connector = new Runnable() { + public void run() { + if (waitForServerStartup()) { + return; + } + VirtualFireAlarmControllerServiceImpl.this.virtualFireAlarmXMPPConnector = virtualFireAlarmXMPPConnector; + + if (XmppConfig.getInstance().isEnabled()) { + Runnable xmppStarter = new Runnable() { + @Override + public void run() { + virtualFireAlarmXMPPConnector.initConnector(); + virtualFireAlarmXMPPConnector.connect(); + } + }; + + Thread xmppStarterThread = new Thread(xmppStarter); + xmppStarterThread.setDaemon(true); + xmppStarterThread.start(); + } else { + log.warn("XMPP disabled in 'devicemgt-config.xml'. Hence, VirtualFireAlarmXMPPConnector not started."); + } + } + }; + Thread connectorThread = new Thread(connector); + connectorThread.setDaemon(true); + connectorThread.start(); + } + + /** + * Fetches the `VirtualFireAlarmMQTTConnector` specific to this VirtualFirealarm controller service. + * + * @return the 'VirtualFireAlarmMQTTConnector' instance bound to the 'virtualFireAlarmMQTTConnector' variable of + * this service. + */ + @SuppressWarnings("Unused") + public VirtualFireAlarmMQTTConnector getVirtualFireAlarmMQTTConnector() { + return virtualFireAlarmMQTTConnector; + } + + /** + * Sets the `virtualFireAlarmMQTTConnector` variable of this VirtualFirealarm controller service. + * + * @param virtualFireAlarmMQTTConnector a 'VirtualFireAlarmMQTTConnector' object that handles all MQTT related + * communications of any connected VirtualFirealarm device-type + */ + @SuppressWarnings("Unused") + public void setVirtualFireAlarmMQTTConnector( + final VirtualFireAlarmMQTTConnector virtualFireAlarmMQTTConnector) { + Runnable connector = new Runnable() { + public void run() { + if (waitForServerStartup()) { + return; + } + VirtualFireAlarmControllerServiceImpl.this.virtualFireAlarmMQTTConnector = virtualFireAlarmMQTTConnector; + if (MqttConfig.getInstance().isEnabled()) { + virtualFireAlarmMQTTConnector.connect(); + } else { + log.warn("MQTT disabled in 'devicemgt-config.xml'. Hence, VirtualFireAlarmMQTTConnector not started."); + } + } + }; + Thread connectorThread = new Thread(connector); + connectorThread.setDaemon(true); + connectorThread.start(); + } + /** * get the event table from the sensor name. */ diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmManagerService.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmManagerService.java index 8057ec45d..1d48b0764 100644 --- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmManagerService.java +++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmManagerService.java @@ -32,20 +32,21 @@ import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +@Path("enrollment") @API(name = "virtual_firealarm_mgt", version = "1.0.0", context = "/virtual_firealarm_mgt", tags = "virtual_firealarm") @DeviceType(value = "virtual_firealarm") public interface VirtualFireAlarmManagerService { - @Path("{device_id}") + @Path("devices/{device_id}") @DELETE Response removeDevice(@PathParam("device_id") String deviceId); - @Path("{device_id}") + @Path("devices/{device_id}") @PUT Response updateDevice(@PathParam("device_id") String deviceId, @QueryParam("name") String name); - @Path("{device_id}") + @Path("devices/{device_id}") @GET @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @@ -57,13 +58,13 @@ public interface VirtualFireAlarmManagerService { @Produces(MediaType.APPLICATION_JSON) Response getFirealarmDevices(); - @Path("download") + @Path("devices/download") @GET @Produces(MediaType.APPLICATION_JSON) Response downloadSketch(@QueryParam("deviceName") String deviceName, @QueryParam("sketchType") String sketchType); - @Path("generate_link") + @Path("devices/generate_link") @GET Response generateSketchLink(@QueryParam("deviceName") String deviceName, @QueryParam("sketchType") String sketchType); diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmManagerServiceImpl.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmManagerServiceImpl.java index f230dac1a..5656a83bd 100644 --- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmManagerServiceImpl.java +++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmManagerServiceImpl.java @@ -41,6 +41,15 @@ import org.wso2.carbon.identity.jwt.client.extension.dto.AccessTokenInfo; import org.wso2.carbon.identity.jwt.client.extension.exception.JWTClientException; import org.wso2.carbon.user.api.UserStoreException; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +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.MediaType; import javax.ws.rs.core.Response; import java.io.IOException; import java.nio.ByteBuffer; @@ -50,38 +59,15 @@ import java.util.Date; import java.util.List; import java.util.UUID; +@Path("enrollment") public class VirtualFireAlarmManagerServiceImpl implements VirtualFireAlarmManagerService { private static final String KEY_TYPE = "PRODUCTION"; private static ApiApplicationKey apiApplicationKey; - private boolean register(String deviceId, String name) { - try { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); - deviceIdentifier.setId(deviceId); - deviceIdentifier.setType(VirtualFireAlarmConstants.DEVICE_TYPE); - if (APIUtil.getDeviceManagementService().isEnrolled(deviceIdentifier)) { - return false; - } - Device device = new Device(); - device.setDeviceIdentifier(deviceId); - EnrolmentInfo enrolmentInfo = new EnrolmentInfo(); - enrolmentInfo.setDateOfEnrolment(new Date().getTime()); - enrolmentInfo.setDateOfLastUpdate(new Date().getTime()); - enrolmentInfo.setStatus(EnrolmentInfo.Status.ACTIVE); - enrolmentInfo.setOwnership(EnrolmentInfo.OwnerShip.BYOD); - device.setName(name); - device.setType(VirtualFireAlarmConstants.DEVICE_TYPE); - enrolmentInfo.setOwner(APIUtil.getAuthenticatedUser()); - device.setEnrolmentInfo(enrolmentInfo); - boolean added = APIUtil.getDeviceManagementService().enrollDevice(device); - return added; - } catch (DeviceManagementException e) { - return false; - } - } - - public Response removeDevice(String deviceId) { + @Path("devices/{device_id}") + @DELETE + public Response removeDevice(@PathParam("device_id") String deviceId) { try { DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setId(deviceId); @@ -98,7 +84,9 @@ public class VirtualFireAlarmManagerServiceImpl implements VirtualFireAlarmManag } } - public Response updateDevice(String deviceId, String name) { + @Path("devices/{device_id}") + @PUT + public Response updateDevice(@PathParam("device_id") String deviceId, @QueryParam("name") String name) { try { DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setId(deviceId); @@ -119,7 +107,11 @@ public class VirtualFireAlarmManagerServiceImpl implements VirtualFireAlarmManag } } - public Response getDevice(String deviceId) { + @Path("devices/{device_id}") + @GET + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response getDevice(@PathParam("device_id") String deviceId) { try { DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); deviceIdentifier.setId(deviceId); @@ -131,6 +123,10 @@ public class VirtualFireAlarmManagerServiceImpl implements VirtualFireAlarmManag } } + @Path("devices") + @GET + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) public Response getFirealarmDevices() { try { List userDevices = @@ -149,7 +145,11 @@ public class VirtualFireAlarmManagerServiceImpl implements VirtualFireAlarmManag } } - public Response downloadSketch(String deviceName, String sketchType) { + @Path("devices/download") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response downloadSketch(@QueryParam("deviceName") String deviceName, + @QueryParam("sketchType") String sketchType) { try { ZipArchive zipFile = createDownloadFile(APIUtil.getAuthenticatedUser(), deviceName, sketchType); Response.ResponseBuilder response = Response.ok(FileUtils.readFileToByteArray(zipFile.getZipFile())); @@ -170,12 +170,13 @@ public class VirtualFireAlarmManagerServiceImpl implements VirtualFireAlarmManag return Response.status(500).entity(ex.getMessage()).build(); } catch (UserStoreException ex) { return Response.status(500).entity(ex.getMessage()).build(); - } finally { - PrivilegedCarbonContext.endTenantFlow(); } } - public Response generateSketchLink(String deviceName, String sketchType) { + @Path("devices/generate_link") + @GET + public Response generateSketchLink(@QueryParam("deviceName") String deviceName, + @QueryParam("sketchType") String sketchType) { try { ZipArchive zipFile = createDownloadFile(APIUtil.getAuthenticatedUser(), deviceName, sketchType); Response.ResponseBuilder rb = Response.ok(zipFile.getDeviceId()); @@ -192,8 +193,32 @@ public class VirtualFireAlarmManagerServiceImpl implements VirtualFireAlarmManag return Response.status(500).entity(ex.getMessage()).build(); } catch (UserStoreException ex) { return Response.status(500).entity(ex.getMessage()).build(); - } finally { - PrivilegedCarbonContext.endTenantFlow(); + } + } + + private boolean register(String deviceId, String name) { + try { + DeviceIdentifier deviceIdentifier = new DeviceIdentifier(); + deviceIdentifier.setId(deviceId); + deviceIdentifier.setType(VirtualFireAlarmConstants.DEVICE_TYPE); + if (APIUtil.getDeviceManagementService().isEnrolled(deviceIdentifier)) { + return false; + } + Device device = new Device(); + device.setDeviceIdentifier(deviceId); + EnrolmentInfo enrolmentInfo = new EnrolmentInfo(); + enrolmentInfo.setDateOfEnrolment(new Date().getTime()); + enrolmentInfo.setDateOfLastUpdate(new Date().getTime()); + enrolmentInfo.setStatus(EnrolmentInfo.Status.ACTIVE); + enrolmentInfo.setOwnership(EnrolmentInfo.OwnerShip.BYOD); + device.setName(name); + device.setType(VirtualFireAlarmConstants.DEVICE_TYPE); + enrolmentInfo.setOwner(APIUtil.getAuthenticatedUser()); + device.setEnrolmentInfo(enrolmentInfo); + boolean added = APIUtil.getDeviceManagementService().enrollDevice(device); + return added; + } catch (DeviceManagementException e) { + return false; } } diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/webapp/WEB-INF/cxf-servlet.xml b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/webapp/WEB-INF/cxf-servlet.xml index 6dd0282d3..62608adfb 100644 --- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/webapp/WEB-INF/cxf-servlet.xml +++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/webapp/WEB-INF/cxf-servlet.xml @@ -23,7 +23,7 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"> - + @@ -31,14 +31,6 @@ - - - - - - - - diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/webapp/WEB-INF/web.xml b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/webapp/WEB-INF/web.xml index 0689ffaf0..2f18393cf 100644 --- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/webapp/WEB-INF/web.xml +++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/webapp/WEB-INF/web.xml @@ -7,59 +7,40 @@ WSO2 IoT Server WSO2 IoT Server - - CXFServlet - org.apache.cxf.transport.servlet.CXFServlet - 1 - - - - - CXFServlet - /* - - - - isAdminService - false - - - doAuthentication - false - - - - - managed-api-enabled - true - - - managed-api-owner - admin - + + CXFServlet + org.apache.cxf.transport.servlet.CXFServlet + 1 + + + CXFServlet + /* + - managed-api-context-template - /virtual_firealarm/{version} + isAdminService + false - managed-api-application - virtual_firealarm + doAuthentication + true + + + isSharedWithAllTenants + true + + + providerTenantDomain + carbon.super - - managed-api-isSecured - true - - - - - - - - - - - - + + + managed-api-enabled + true + + + managed-api-owner + admin + - + \ No newline at end of file From 4a2b28cd9faa15e11e8b8903d3751918a4e15a96 Mon Sep 17 00:00:00 2001 From: charithag Date: Tue, 19 Apr 2016 14:57:16 +0530 Subject: [PATCH 3/9] Fix UI issues occured after merge with emm ui --- .../device-view.js | 2 +- .../units/iot.unit.device.operation-bar/operation-bar.js | 8 +------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.js b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.js index 21035b3d8..e4dd5c0da 100644 --- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.js +++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.js @@ -21,7 +21,7 @@ function onRequest(context) { var deviceType = context.uriParams.deviceType; var deviceId = request.getParameter("id"); - if (deviceType != null && deviceType != undefined && deviceId != null && deviceId != undefined) { + if (deviceType && deviceId) { var deviceModule = require("/app/modules/device.js").deviceModule; var device = deviceModule.viewDevice(deviceType, deviceId); diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.ui/src/main/resources/jaggeryapps/devicemgt/app/units/iot.unit.device.operation-bar/operation-bar.js b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.ui/src/main/resources/jaggeryapps/devicemgt/app/units/iot.unit.device.operation-bar/operation-bar.js index 6a90314ea..a293457d3 100644 --- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.ui/src/main/resources/jaggeryapps/devicemgt/app/units/iot.unit.device.operation-bar/operation-bar.js +++ b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.ui/src/main/resources/jaggeryapps/devicemgt/app/units/iot.unit.device.operation-bar/operation-bar.js @@ -20,12 +20,6 @@ function onRequest(context) { var log = new Log("operation.js"); var operationModule = require("/app/modules/operation.js").operationModule; var device = context.unit.params.device; - var controlOperations; - try { - controlOperations = operationModule.getControlOperations(device.type); - }catch(e){ - log.error("Control operation loading failed."); - controlOperations = null; - } + var controlOperations = operationModule.getControlOperations(device.type); return {"control_operations": controlOperations, "device": device}; } \ No newline at end of file From a6a0fc2a57481bba9eb2eb44a0115b6cd9220f14 Mon Sep 17 00:00:00 2001 From: Kasun Delgolla Date: Tue, 19 Apr 2016 16:25:19 +0530 Subject: [PATCH 4/9] Adding VPN feature for android --- .../mgt/mobile/impl/android/AndroidFeatureManager.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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/AndroidFeatureManager.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/AndroidFeatureManager.java index 6913d5316..122b3c70f 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/AndroidFeatureManager.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/AndroidFeatureManager.java @@ -272,12 +272,18 @@ public class AndroidFeatureManager implements FeatureManager { feature.setDescription("Reboot the device"); supportedFeatures.add(feature); - feature = new Feature(); + feature = new Feature(); feature.setCode("UPGRADE_FIRMWARE"); feature.setName("Upgrade Firmware"); feature.setDescription("Upgrade Firmware"); supportedFeatures.add(feature); + feature = new Feature(); + feature.setCode("VPN"); + feature.setName("Configure VPN"); + feature.setDescription("Configure VPN settings"); + supportedFeatures.add(feature); + return supportedFeatures; } From 4ad62b1dc175372c0dcbce4acb55356d70973127 Mon Sep 17 00:00:00 2001 From: NuwanSameera Date: Tue, 19 Apr 2016 17:16:58 +0530 Subject: [PATCH 5/9] Remove monitor operations from controller api. --- .../impl/AndroidSenseControllerService.java | 1 + .../AndroidSenseControllerServiceImpl.java | 7 - .../impl/ArduinoControllerService.java | 8 - .../impl/ArduinoControllerServiceImpl.java | 26 -- .../impl/RaspberryPiControllerService.java | 8 - .../RaspberryPiControllerServiceImpl.java | 34 --- .../transport/RaspberryPiMQTTConnector.java | 5 +- .../VirtualFireAlarmControllerService.java | 19 -- ...VirtualFireAlarmControllerServiceImpl.java | 226 ++---------------- .../VirtualFireAlarmMQTTConnector.java | 5 - .../VirtualFireAlarmXMPPConnector.java | 5 - 11 files changed, 20 insertions(+), 324 deletions(-) diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseControllerService.java b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseControllerService.java index 4d63e66b0..2a574f8e6 100644 --- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseControllerService.java +++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseControllerService.java @@ -80,3 +80,4 @@ public interface AndroidSenseControllerService { @QueryParam("from") long from, @QueryParam("to") long to); } + diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseControllerServiceImpl.java b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseControllerServiceImpl.java index 5e3d31c5a..0db0b2610 100644 --- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseControllerServiceImpl.java +++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseControllerServiceImpl.java @@ -24,18 +24,11 @@ import org.wso2.carbon.analytics.dataservice.commons.SORT; import org.wso2.carbon.analytics.dataservice.commons.SortByField; import org.wso2.carbon.analytics.datasource.commons.exception.AnalyticsException; import org.wso2.carbon.context.PrivilegedCarbonContext; -import org.wso2.carbon.device.mgt.analytics.data.publisher.exception.DataPublisherConfigurationException; -import org.wso2.carbon.device.mgt.analytics.data.publisher.service.EventsPublisherService; -import org.wso2.carbon.device.mgt.extensions.feature.mgt.annotations.Feature; import org.wso2.carbon.device.mgt.iot.androidsense.service.impl.transport.AndroidSenseMQTTConnector; import org.wso2.carbon.device.mgt.iot.androidsense.service.impl.util.APIUtil; -import org.wso2.carbon.device.mgt.iot.androidsense.service.impl.util.DeviceData; -import org.wso2.carbon.device.mgt.iot.androidsense.service.impl.util.SensorData; import org.wso2.carbon.device.mgt.iot.androidsense.service.impl.util.SensorRecord; import org.wso2.carbon.device.mgt.iot.androidsense.plugin.constants.AndroidSenseConstants; import org.wso2.carbon.device.mgt.iot.controlqueue.mqtt.MqttConfig; -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.service.IoTServerStartupListener; import org.wso2.carbon.device.mgt.iot.transport.TransportHandlerException; diff --git a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoControllerService.java b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoControllerService.java index 02e39d88b..f82ff603a 100644 --- a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoControllerService.java +++ b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoControllerService.java @@ -50,14 +50,6 @@ public interface ArduinoControllerService { Response switchBulb(@PathParam("deviceId") String deviceId, @QueryParam("protocol") String protocol, @FormParam("state") String state); - @Path("device/{deviceId}/temperature") - @GET - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - @Feature(code = "temperature", name = "Temperature", type = "monitor", description = "Request temperature reading " + - "from Arduino agent") - Response requestTemperature(@PathParam("deviceId") String deviceId, @QueryParam("protocol") String protocol); - @Path("device/sensor") @POST @Consumes(MediaType.APPLICATION_JSON) diff --git a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoControllerServiceImpl.java b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoControllerServiceImpl.java index 6434c7b65..ce40e39ef 100644 --- a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoControllerServiceImpl.java +++ b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoControllerServiceImpl.java @@ -29,8 +29,6 @@ import org.wso2.carbon.device.mgt.iot.arduino.service.impl.dto.SensorRecord; import org.wso2.carbon.device.mgt.iot.arduino.service.impl.util.APIUtil; import org.wso2.carbon.device.mgt.iot.arduino.service.impl.util.ArduinoServiceUtils; import org.wso2.carbon.device.mgt.iot.arduino.plugin.constants.ArduinoConstants; -import org.wso2.carbon.device.mgt.iot.exception.DeviceControllerException; -import org.wso2.carbon.device.mgt.iot.sensormgt.SensorDataManager; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.Consumes; import javax.ws.rs.FormParam; @@ -44,7 +42,6 @@ import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.ArrayList; -import java.util.Calendar; import java.util.HashMap; import java.util.LinkedList; import java.util.List; @@ -95,23 +92,6 @@ public class ArduinoControllerServiceImpl implements ArduinoControllerService { return Response.status(Response.Status.OK.getStatusCode()).build(); } - @Override - @Path("device/{deviceId}/temperature") - @GET - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response requestTemperature(@PathParam("deviceId") String deviceId, - @QueryParam("protocol") String protocol) { - - try { - org.wso2.carbon.device.mgt.iot.sensormgt.SensorRecord sensorRecord = - SensorDataManager.getInstance().getSensorRecord(deviceId, ArduinoConstants.SENSOR_TEMPERATURE); - return Response.status(Response.Status.OK.getStatusCode()).entity(sensorRecord).build(); - } catch (DeviceControllerException e) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).build(); - } - } - @Override @Path("device/sensor") @POST @@ -120,9 +100,6 @@ public class ArduinoControllerServiceImpl implements ArduinoControllerService { String owner = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername(); String deviceId = dataMsg.deviceId; float pinData = dataMsg.value; - SensorDataManager.getInstance().setSensorRecord(deviceId, ArduinoConstants.SENSOR_TEMPERATURE, - String.valueOf(pinData), - Calendar.getInstance().getTimeInMillis()); if (!ArduinoServiceUtils.publishToDAS(dataMsg.deviceId, dataMsg.value)) { log.warn("An error occured whilst trying to publish pin data of Arduino with ID [" + deviceId + "] of owner [" + owner + "]"); @@ -169,9 +146,6 @@ public class ArduinoControllerServiceImpl implements ArduinoControllerService { String owner = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername(); String deviceId = dataMsg.deviceId; float temperature = dataMsg.value; - SensorDataManager.getInstance().setSensorRecord(deviceId, ArduinoConstants.SENSOR_TEMPERATURE, - String.valueOf(temperature), - Calendar.getInstance().getTimeInMillis()); if (!ArduinoServiceUtils.publishToDAS(dataMsg.deviceId, dataMsg.value)) { log.warn("An error occured whilst trying to publish temperature data of Arduino with ID [" + deviceId + "] of owner [" + owner + "]"); diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerService.java b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerService.java index 12d5f4389..5ac51e24f 100644 --- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerService.java +++ b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerService.java @@ -51,14 +51,6 @@ public interface RaspberryPiControllerService { description = "Switch on/off Raspberry Pi agent's bulb. (On / Off)") Response switchBulb(@PathParam("deviceId") String deviceId, @FormParam("state") String state); - @Path("device/{deviceId}/readtemperature") - @GET - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - @Feature(code = "readtemperature", name = "Temperature", type = "monitor", - description = "Request temperature reading from Raspberry Pi agent") - Response requestTemperature(@PathParam("deviceId") String deviceId); - @Path("device/push_temperature") @POST @Consumes(MediaType.APPLICATION_JSON) diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerServiceImpl.java b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerServiceImpl.java index 756882345..cecde2d43 100644 --- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerServiceImpl.java +++ b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiControllerServiceImpl.java @@ -25,14 +25,12 @@ import org.wso2.carbon.analytics.dataservice.commons.SortByField; import org.wso2.carbon.analytics.datasource.commons.exception.AnalyticsException; import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.iot.controlqueue.mqtt.MqttConfig; -import org.wso2.carbon.device.mgt.iot.exception.DeviceControllerException; import org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.dto.DeviceData; import org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.dto.SensorRecord; import org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.transport.RaspberryPiMQTTConnector; import org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.util.APIUtil; import org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.util.RaspberrypiServiceUtils; import org.wso2.carbon.device.mgt.iot.raspberrypi.plugin.constants.RaspberrypiConstants; -import org.wso2.carbon.device.mgt.iot.sensormgt.SensorDataManager; import org.wso2.carbon.device.mgt.iot.service.IoTServerStartupListener; import javax.servlet.http.HttpServletRequest; @@ -98,35 +96,6 @@ public class RaspberryPiControllerServiceImpl implements RaspberryPiControllerSe return Response.ok().build(); } - @Path("device/{deviceId}/readtemperature") - @GET - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response requestTemperature(@PathParam("deviceId") String deviceId) { - org.wso2.carbon.device.mgt.iot.sensormgt.SensorRecord sensorRecord = null; - if (log.isDebugEnabled()) { - log.debug("Sending request to read raspberrypi-temperature of device [" + deviceId + "] via "); - } - try { - String deviceHTTPEndpoint = deviceToIpMap.get(deviceId); - if (deviceHTTPEndpoint == null) { - return Response.status(Response.Status.PRECONDITION_FAILED.getStatusCode()).build(); - } - String temperatureValue = RaspberrypiServiceUtils.sendCommandViaHTTP(deviceHTTPEndpoint, - RaspberrypiConstants - .TEMPERATURE_CONTEXT, - false); - SensorDataManager.getInstance().setSensorRecord(deviceId, RaspberrypiConstants.SENSOR_TEMPERATURE, - temperatureValue, Calendar.getInstance() - .getTimeInMillis()); - sensorRecord = SensorDataManager.getInstance().getSensorRecord(deviceId, - RaspberrypiConstants.SENSOR_TEMPERATURE); - } catch (DeviceManagementException | DeviceControllerException e) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).build(); - } - return Response.ok().entity(sensorRecord).build(); - } - @Path("device/push_temperature") @POST @Consumes(MediaType.APPLICATION_JSON) @@ -148,9 +117,6 @@ public class RaspberryPiControllerServiceImpl implements RaspberryPiControllerSe if (log.isDebugEnabled()) { log.debug("Received Pin Data Value: " + temperature + " degrees C"); } - SensorDataManager.getInstance().setSensorRecord(deviceId, RaspberrypiConstants.SENSOR_TEMPERATURE, - String.valueOf(temperature), - Calendar.getInstance().getTimeInMillis()); if (!RaspberrypiServiceUtils.publishToDAS(dataMsg.deviceId, dataMsg.value)) { log.warn("An error occured whilst trying to publish temperature data of raspberrypi with ID [" + deviceId + "] of owner [" + owner + "]"); diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/transport/RaspberryPiMQTTConnector.java b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/transport/RaspberryPiMQTTConnector.java index d5bf225be..ff0c7e1ca 100644 --- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/transport/RaspberryPiMQTTConnector.java +++ b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/transport/RaspberryPiMQTTConnector.java @@ -25,7 +25,6 @@ import org.eclipse.paho.client.mqttv3.MqttMessage; import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService; import org.wso2.carbon.apimgt.application.extension.dto.ApiApplicationKey; import org.wso2.carbon.apimgt.application.extension.exception.APIManagerException; -import org.wso2.carbon.base.MultitenantConstants; import org.wso2.carbon.context.PrivilegedCarbonContext; import org.wso2.carbon.device.mgt.common.Device; import org.wso2.carbon.device.mgt.common.DeviceIdentifier; @@ -35,7 +34,6 @@ import org.wso2.carbon.device.mgt.iot.controlqueue.mqtt.MqttConfig; import org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.util.APIUtil; import org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.util.RaspberrypiServiceUtils; import org.wso2.carbon.device.mgt.iot.raspberrypi.plugin.constants.RaspberrypiConstants; -import org.wso2.carbon.device.mgt.iot.sensormgt.SensorDataManager; import org.wso2.carbon.device.mgt.iot.transport.TransportHandlerException; import org.wso2.carbon.device.mgt.iot.transport.mqtt.MQTTTransportHandler; import org.wso2.carbon.identity.jwt.client.extension.JWTClient; @@ -161,8 +159,7 @@ public class RaspberryPiMQTTConnector extends MQTTTransportHandler { } else if (receivedMessage.contains("TEMPERATURE")) { String temperatureValue = receivedMessage.split(":")[1]; - SensorDataManager.getInstance().setSensorRecord(deviceId, RaspberrypiConstants.SENSOR_TEMPERATURE, - temperatureValue, Calendar.getInstance().getTimeInMillis()); + } } } diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerService.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerService.java index a46762b21..ba2694742 100644 --- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerService.java +++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerService.java @@ -78,25 +78,6 @@ public interface VirtualFireAlarmControllerService { Response switchBuzzer(@PathParam("deviceId") String deviceId, @QueryParam("protocol") String protocol, @FormParam("state") String state); - /** - * This is an API called/used from within the Server(Front-End) or by a device Owner. It sends a control command - * to the VirtualFirealarm device to 'tell what's its current temperature reading'. The method also takes in the - * protocol to be used to connect-to and send the command to the device. - * - * @param deviceId the ID of the VirtualFirealarm device on which the temperature reading is be read-from. - * @param protocol the protocol (HTTP, MQTT, XMPP) to be used to connect-to & send the message to the device. - * @return an instance of the 'SensorRecord' object that holds the last updated temperature of the VirtualFirealarm - * whose temperature reading was requested. - */ - @GET - @Path("device/{deviceId}/temperature") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - @Feature(code = "temperature", name = "Temperature", type = "monitor", - description = "Request Temperature reading from Virtual Fire Alarm") - Response requestTemperature(@PathParam("deviceId") String deviceId, - @QueryParam("protocol") String protocol); - /** * This is an API called/used by the VirtualFirealarm device to publish its temperature to the IoT-Server. The * received data from the device is stored in a 'DeviceRecord' under the device's ID in the 'SensorDataManager' diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerServiceImpl.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerServiceImpl.java index f49a2606e..f3e9d796d 100644 --- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerServiceImpl.java +++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmControllerServiceImpl.java @@ -27,11 +27,8 @@ import org.wso2.carbon.certificate.mgt.core.dto.SCEPResponse; import org.wso2.carbon.certificate.mgt.core.exception.KeystoreException; import org.wso2.carbon.certificate.mgt.core.service.CertificateManagementService; import org.wso2.carbon.device.mgt.common.DeviceManagementException; -import org.wso2.carbon.device.mgt.extensions.feature.mgt.annotations.Feature; import org.wso2.carbon.device.mgt.iot.controlqueue.mqtt.MqttConfig; import org.wso2.carbon.device.mgt.iot.controlqueue.xmpp.XmppConfig; -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.service.IoTServerStartupListener; import org.wso2.carbon.device.mgt.iot.transport.TransportHandlerException; import org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.dto.DeviceData; @@ -60,7 +57,6 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.io.InputStream; import java.util.ArrayList; -import java.util.Calendar; import java.util.List; import java.util.concurrent.ConcurrentHashMap; @@ -87,142 +83,10 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo // holds a mapping of the IP addresses to Device-IDs for HTTP communication private ConcurrentHashMap deviceToIpMap = new ConcurrentHashMap<>(); -<<<<<<< HEAD @POST @Path("device/register/{deviceId}/{ip}/{port}") public Response registerDeviceIP(@PathParam("deviceId") String deviceId, @PathParam("ip") String deviceIP, @PathParam("port") String devicePort, @Context HttpServletRequest request) { -======= - private boolean waitForServerStartup() { - while (!IoTServerStartupListener.isServerReady()) { - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - return true; - } - } - return false; - } - - /** - * Fetches the `SecurityManager` specific to this VirtualFirealarm controller service. - * - * @return the 'SecurityManager' instance bound to the 'securityManager' variable of this service. - */ - @SuppressWarnings("Unused") - public SecurityManager getSecurityManager() { - return securityManager; - } - - /** - * Sets the `securityManager` variable of this VirtualFirealarm controller service. - * - * @param securityManager a 'SecurityManager' object that handles the encryption, decryption, signing and validation - * of incoming messages from VirtualFirealarm device-types. - */ - @SuppressWarnings("Unused") - public void setSecurityManager(SecurityManager securityManager) { - this.securityManager = securityManager; - securityManager.initVerificationManager(); - } - - /** - * Fetches the `VirtualFireAlarmXMPPConnector` specific to this VirtualFirealarm controller service. - * - * @return the 'VirtualFireAlarmXMPPConnector' instance bound to the 'virtualFireAlarmXMPPConnector' variable of - * this service. - */ - @SuppressWarnings("Unused") - public VirtualFireAlarmXMPPConnector getVirtualFireAlarmXMPPConnector() { - return virtualFireAlarmXMPPConnector; - } - - /** - * Sets the `virtualFireAlarmXMPPConnector` variable of this VirtualFirealarm controller service. - * - * @param virtualFireAlarmXMPPConnector a 'VirtualFireAlarmXMPPConnector' object that handles all XMPP related - * communications of any connected VirtualFirealarm device-type - */ - @SuppressWarnings("Unused") - public void setVirtualFireAlarmXMPPConnector( - final VirtualFireAlarmXMPPConnector virtualFireAlarmXMPPConnector) { - Runnable connector = new Runnable() { - public void run() { - if (waitForServerStartup()) { - return; - } - VirtualFireAlarmControllerServiceImpl.this.virtualFireAlarmXMPPConnector = virtualFireAlarmXMPPConnector; - - if (XmppConfig.getInstance().isEnabled()) { - Runnable xmppStarter = new Runnable() { - @Override - public void run() { - virtualFireAlarmXMPPConnector.initConnector(); - virtualFireAlarmXMPPConnector.connect(); - } - }; - - Thread xmppStarterThread = new Thread(xmppStarter); - xmppStarterThread.setDaemon(true); - xmppStarterThread.start(); - } else { - log.warn("XMPP disabled in 'devicemgt-config.xml'. Hence, VirtualFireAlarmXMPPConnector not started."); - } - } - }; - Thread connectorThread = new Thread(connector); - connectorThread.setDaemon(true); - connectorThread.start(); - } - - /** - * Fetches the `VirtualFireAlarmMQTTConnector` specific to this VirtualFirealarm controller service. - * - * @return the 'VirtualFireAlarmMQTTConnector' instance bound to the 'virtualFireAlarmMQTTConnector' variable of - * this service. - */ - @SuppressWarnings("Unused") - public VirtualFireAlarmMQTTConnector getVirtualFireAlarmMQTTConnector() { - return virtualFireAlarmMQTTConnector; - } - - /** - * Sets the `virtualFireAlarmMQTTConnector` variable of this VirtualFirealarm controller service. - * - * @param virtualFireAlarmMQTTConnector a 'VirtualFireAlarmMQTTConnector' object that handles all MQTT related - * communications of any connected VirtualFirealarm device-type - */ - @SuppressWarnings("Unused") - public void setVirtualFireAlarmMQTTConnector( - final VirtualFireAlarmMQTTConnector virtualFireAlarmMQTTConnector) { - Runnable connector = new Runnable() { - public void run() { - if (waitForServerStartup()) { - return; - } - VirtualFireAlarmControllerServiceImpl.this.virtualFireAlarmMQTTConnector = virtualFireAlarmMQTTConnector; - //The delay is added for the server starts up. - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } - if (MqttConfig.getInstance().isEnabled()) { - synchronized (virtualFireAlarmMQTTConnector) { - virtualFireAlarmMQTTConnector.connect(); - } - } else { - log.warn("MQTT disabled in 'devicemgt-config.xml'. Hence, VirtualFireAlarmMQTTConnector not started."); - } - } - }; - Thread connectorThread = new Thread(connector); - connectorThread.setDaemon(true); - connectorThread.start(); - } - - public Response registerDeviceIP(String deviceId, String deviceIP, String devicePort, HttpServletRequest request) { ->>>>>>> 8a7d4bb6e0a9b94b8a5c9ca8d6d21c3924b2c677 String result; if (log.isDebugEnabled()) { log.debug("Got register call from IP: " + deviceIP + " for Device ID: " + deviceId); @@ -277,53 +141,6 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo } } -<<<<<<< HEAD - @GET - @Path("device/{deviceId}/temperature") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response requestTemperature(@PathParam("deviceId") String deviceId, - @QueryParam("protocol") String protocol) { - SensorRecord sensorRecord = null; -======= - public Response requestTemperature(String deviceId, String protocol) { - org.wso2.carbon.device.mgt.iot.sensormgt.SensorRecord sensorRecord = null; ->>>>>>> 8a7d4bb6e0a9b94b8a5c9ca8d6d21c3924b2c677 - String protocolString = protocol.toUpperCase(); - if (log.isDebugEnabled()) { - log.debug("Sending request to read virtual-firealarm-temperature of device " + - "[" + deviceId + "] via " + protocolString); - } - try { - switch (protocolString) { - case HTTP_PROTOCOL: - String deviceHTTPEndpoint = deviceToIpMap.get(deviceId); - if (deviceHTTPEndpoint == null) { - return Response.status(Response.Status.PRECONDITION_FAILED).build(); - } - String temperatureValue = VirtualFireAlarmServiceUtils.sendCommandViaHTTP( - deviceHTTPEndpoint, VirtualFireAlarmConstants.TEMPERATURE_CONTEXT, false); - SensorDataManager.getInstance().setSensorRecord(deviceId, VirtualFireAlarmConstants.SENSOR_TEMP, - temperatureValue, - Calendar.getInstance().getTimeInMillis()); - break; - case XMPP_PROTOCOL: - String xmppResource = VirtualFireAlarmConstants.TEMPERATURE_CONTEXT.replace("/", ""); - virtualFireAlarmMQTTConnector.publishDeviceData(deviceId, xmppResource, ""); - break; - default: - String mqttResource = VirtualFireAlarmConstants.TEMPERATURE_CONTEXT.replace("/", ""); - virtualFireAlarmMQTTConnector.publishDeviceData(deviceId, mqttResource, ""); - break; - } - sensorRecord = SensorDataManager.getInstance().getSensorRecord(deviceId, VirtualFireAlarmConstants - .SENSOR_TEMP); - return Response.ok().entity(sensorRecord).build(); - } catch (DeviceManagementException | DeviceControllerException | TransportHandlerException e) { - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); - } - } - @POST @Path("device/temperature") @Consumes(MediaType.APPLICATION_JSON) @@ -341,9 +158,6 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo " is already registered under some other IP. Re-registration required"); return Response.status(Response.Status.CONFLICT).build(); } - SensorDataManager.getInstance().setSensorRecord(deviceId, VirtualFireAlarmConstants.SENSOR_TEMP, - String.valueOf(temperature), - Calendar.getInstance().getTimeInMillis()); if (!VirtualFireAlarmServiceUtils.publishToDAS(dataMsg.deviceId, dataMsg.value)) { return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); } @@ -442,7 +256,6 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo return Response.serverError().build(); } -<<<<<<< HEAD @Path("device/stats/{deviceId}/sensors/{sensorName}") @GET @Consumes("application/json") @@ -451,29 +264,26 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo @PathParam("sensorName") String sensor, @QueryParam("username") String user, @QueryParam("from") long from, @QueryParam("to") long to) { -======= - public Response getVirtualFirealarmStats(String deviceId, String sensor, String user, long from, long to) { - String fromDate = String.valueOf(from); - String toDate = String.valueOf(to); - String query = "owner:" + user + " AND deviceId:" + deviceId + " AND deviceType:" + - VirtualFireAlarmConstants.DEVICE_TYPE + " AND time : [" + fromDate + " TO " + toDate + "]"; - String sensorTableName = getSensorEventTableName(sensor); ->>>>>>> 8a7d4bb6e0a9b94b8a5c9ca8d6d21c3924b2c677 - try { - if (sensorTableName != null) { - List sortByFields = new ArrayList<>(); - SortByField sortByField = new SortByField("time", SORT.ASC, false); - sortByFields.add(sortByField); - List sensorRecords = APIUtil.getAllEventsForDevice(sensorTableName, query, sortByFields); - return Response.status(Response.Status.OK.getStatusCode()).entity(sensorRecords).build(); + String fromDate = String.valueOf(from); + String toDate = String.valueOf(to); + String query = "owner:" + user + " AND deviceId:" + deviceId + " AND deviceType:" + + VirtualFireAlarmConstants.DEVICE_TYPE + " AND time : [" + fromDate + " TO " + toDate + "]"; + String sensorTableName = getSensorEventTableName(sensor); + try { + if (sensorTableName != null) { + List sortByFields = new ArrayList<>(); + SortByField sortByField = new SortByField("time", SORT.ASC, false); + sortByFields.add(sortByField); + List sensorRecords = APIUtil.getAllEventsForDevice(sensorTableName, query, sortByFields); + return Response.status(Response.Status.OK.getStatusCode()).entity(sensorRecords).build(); + } + } catch (AnalyticsException e) { + String errorMsg = "Error on retrieving stats on table " + sensorTableName + " with query " + query; + log.error(errorMsg); + return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).entity(errorMsg).build(); } - } catch (AnalyticsException e) { - String errorMsg = "Error on retrieving stats on table " + sensorTableName + " with query " + query; - log.error(errorMsg); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).entity(errorMsg).build(); + return Response.status(Response.Status.BAD_REQUEST).build(); } - return Response.status(Response.Status.BAD_REQUEST).build(); - } private boolean waitForServerStartup() { while (!IoTServerStartupListener.isServerReady()) { diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/transport/VirtualFireAlarmMQTTConnector.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/transport/VirtualFireAlarmMQTTConnector.java index 6cbd9af81..c9c1a4b79 100644 --- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/transport/VirtualFireAlarmMQTTConnector.java +++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/transport/VirtualFireAlarmMQTTConnector.java @@ -25,14 +25,12 @@ import org.eclipse.paho.client.mqttv3.MqttMessage; import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService; import org.wso2.carbon.apimgt.application.extension.dto.ApiApplicationKey; import org.wso2.carbon.apimgt.application.extension.exception.APIManagerException; -import org.wso2.carbon.base.MultitenantConstants; 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.core.service.DeviceManagementProviderService; import org.wso2.carbon.device.mgt.iot.controlqueue.mqtt.MqttConfig; -import org.wso2.carbon.device.mgt.iot.sensormgt.SensorDataManager; import org.wso2.carbon.device.mgt.iot.transport.TransportHandlerException; import org.wso2.carbon.device.mgt.iot.transport.mqtt.MQTTTransportHandler; import org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.exception.VirtualFireAlarmException; @@ -208,9 +206,6 @@ public class VirtualFireAlarmMQTTConnector extends MQTTTransportHandler { } else if (actualMessage.contains("TEMPERATURE")) { String temperatureValue = actualMessage.split(":")[1]; - SensorDataManager.getInstance().setSensorRecord(deviceId, VirtualFireAlarmConstants.SENSOR_TEMP, - temperatureValue, - Calendar.getInstance().getTimeInMillis()); } } catch (VirtualFireAlarmException e) { String errorMsg = diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/transport/VirtualFireAlarmXMPPConnector.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/transport/VirtualFireAlarmXMPPConnector.java index 39588caef..fc6ea6ca1 100644 --- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/transport/VirtualFireAlarmXMPPConnector.java +++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/transport/VirtualFireAlarmXMPPConnector.java @@ -26,7 +26,6 @@ import org.wso2.carbon.device.mgt.iot.controlqueue.xmpp.XmppAccount; import org.wso2.carbon.device.mgt.iot.controlqueue.xmpp.XmppConfig; import org.wso2.carbon.device.mgt.iot.controlqueue.xmpp.XmppServerClient; 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.transport.TransportHandlerException; import org.wso2.carbon.device.mgt.iot.transport.xmpp.XMPPTransportHandler; import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.constants.VirtualFireAlarmConstants; @@ -182,10 +181,6 @@ public class VirtualFireAlarmXMPPConnector extends XMPPTransportHandler { break; case "CONTROL-REPLY": String tempVal = actualMessage.split(":")[1]; - SensorDataManager.getInstance().setSensorRecord(deviceId, - VirtualFireAlarmConstants.SENSOR_TEMP, - tempVal, - Calendar.getInstance().getTimeInMillis()); break; default: From f5fc978b5b520a4e56cd3bb378f14dc3970ccf05 Mon Sep 17 00:00:00 2001 From: ayyoob Date: Tue, 19 Apr 2016 23:43:27 +0530 Subject: [PATCH 6/9] refactored analytics scripts --- .../data/publisher/DataPublisherService.java | 3 +- .../android/sense/data/publisher/Event.java | 6 +- .../mqtt/AndroidSenseMQTTHandler.java | 2 - .../mqtt/transport/MQTTTransportHandler.java | 4 +- .../realtimeviewer/ActivitySelectSensor.java | 3 + .../sense/util/SenseClientAsyncExecutor.java | 7 +- .../src/main/res/layout/activity_register.xml | 59 ++++----- .../build.xml | 46 +------ .../EventExecution_AndroidSense.siddhiql | 87 +++++++++++++ .../artifact.xml | 4 +- .../EventPublisher_AndroidSense.xml | 25 ++++ .../artifact.xml | 4 +- .../EventReceiver_AndroidSense.xml | 33 +++++ .../artifact.xml | 4 +- .../artifact.xml | 5 +- .../org.wso2.iot.android.sense_1.0.0.json | 38 ++++++ .../carbonapps/Android_Sense/artifacts.xml | 27 ++++ .../AndroidSenseControllerServiceImpl.java | 12 +- .../transport/AndroidSenseMQTTConnector.java | 2 - .../build.xml | 38 ------ .../Temperature_Sensor_Script.xml | 31 ----- components/iot-plugins/arduino-plugin/pom.xml | 1 - .../DigitalDisplayControllerServiceImpl.java | 1 - .../util/DigitalDisplayMQTTConnector.java | 2 - .../service/impl/DroneRealTimeService.java | 1 - .../transport/DroneAnalyzerXMPPConnector.java | 1 - .../build.xml | 82 ++++++++++++ .../pom.xml | 7 +- .../src/assembly/src.xml | 0 .../EventReceiver_accelerometer.xml | 0 .../artifact.xml | 0 .../artifact.xml | 0 .../org_wso2_iot_devices_accelerometer.xml | 16 ++- .../artifact.xml | 4 +- ....wso2.iot.devices.accelerometer_1.0.0.json | 6 +- .../Accelerometer_Sensor_Script.xml | 5 +- .../Sparkscripts_1.0.0/artifact.xml | 0 .../carbonapps/Accelerometer/artifacts.xml | 4 +- .../EventReceiver_battery.xml | 0 .../Eventreceiver_battery_1.0.0/artifact.xml | 0 .../Eventstore_battery_1.0.0/artifact.xml | 0 .../org_wso2_iot_devices_battery.xml | 4 +- .../Eventstream_battery_1.0.0/artifact.xml | 0 .../org.wso2.iot.devices.battery_1.0.0.json | 2 +- .../Battery_Sensor_Script.xml | 5 +- .../Battery/Sparkscripts_1.0.0/artifact.xml | 0 .../carbonapps/Battery/artifacts.xml | 0 .../EventReceiver_gps.xml | 0 .../GPS/Eventreceiver_gps_1.0.0/artifact.xml | 0 .../GPS/Eventstore_gps_1.0.0/artifact.xml | 0 .../org_wso2_iot_devices_gps.xml | 4 +- .../GPS/Eventstream_gps_1.0.0/artifact.xml | 0 .../org.wso2.iot.devices.gps_1.0.0.json | 8 +- .../Sparkscripts_1.0.0/GPS_Sensor_Script.xml | 3 +- .../GPS/Sparkscripts_1.0.0/artifact.xml | 0 .../resources/carbonapps/GPS/artifacts.xml | 4 +- .../EventReceiver_gravity.xml | 0 .../Eventreceiver_gravaity_1.0.0/artifact.xml | 0 .../Eventstore_gravity_1.0.0/artifact.xml | 0 .../org_wso2_iot_devices_gravity.xml | 16 ++- .../Eventstream_gravity_1.0.0/artifact.xml | 0 .../org.wso2.iot.devices.gravity_1.0.0.json | 6 +- .../Gravity_Sensor_Script.xml | 5 +- .../Gravity/Sparkscripts_1.0.0/artifact.xml | 0 .../carbonapps/Gravity/artifacts.xml | 2 - .../EventReceiver_gyroscope.xml | 0 .../artifact.xml | 0 .../Eventstore_gyroscope_1.0.0/artifact.xml | 0 .../org_wso2_iot_devices_gyroscope.xml | 16 ++- .../Eventstream_gyroscope_1.0.0/artifact.xml | 0 .../org.wso2.iot.devices.gyroscope_1.0.0.json | 6 +- .../Gyroscope_Sensor_Script.xml | 5 +- .../Gyroscope/Sparkscripts_1.0.0/artifact.xml | 0 .../carbonapps/Gyroscope/artifacts.xml | 0 .../EventReceiver_light.xml | 0 .../Eventreceiver_light_1.0.0/artifact.xml | 0 .../Light/Eventstore_light_1.0.0/artifact.xml | 0 .../org_wso2_iot_devices_light.xml | 0 .../Eventstream_light_1.0.0/artifact.xml | 0 .../org.wso2.iot.devices.light_1.0.0.json | 4 +- .../Light_Sensor_Script.xml | 1 - .../Light/Sparkscripts_1.0.0/artifact.xml | 0 .../resources/carbonapps/Light/artifacts.xml | 4 +- .../EventReceiver_magnetic.xml | 0 .../Eventreceiver_magnetic_1.0.0/artifact.xml | 0 .../Eventstore_magnetic_1.0.0/artifact.xml | 0 .../org_wso2_iot_devices_magnetic.xml | 16 ++- .../Eventstream_magnetic_1.0.0/artifact.xml | 0 .../org.wso2.iot.devices.magnetic_1.0.0.json | 6 +- .../Magnetic_Sensor_Script.xml | 4 +- .../Magnetic/Sparkscripts_1.0.0/artifact.xml | 0 .../carbonapps/Magnetic/artifacts.xml | 4 +- .../EventReceiver_pressure.xml | 0 .../Eventreceiver_pressure_1.0.0/artifact.xml | 0 .../Eventstore_pressure_1.0.0/artifact.xml | 0 .../org_wso2_iot_devices_pressure.xml | 0 .../Eventstream_pressure_1.0.0/artifact.xml | 0 .../org.wso2.iot.devices.pressure_1.0.0.json | 4 +- .../Pressure_Sensor_Script.xml | 1 - .../Pressure/Sparkscripts_1.0.0/artifact.xml | 0 .../carbonapps/Pressure/artifacts.xml | 2 - .../EventReceiver_proximity.xml | 0 .../artifact.xml | 0 .../Eventstore_proximity_1.0.0/artifact.xml | 0 .../org_wso2_iot_devices_proximity.xml | 0 .../Eventstream_proximity_1.0.0/artifact.xml | 0 .../org.wso2.iot.devices.proximity_1.0.0.json | 0 .../Proximity_Sensor_Script.xml | 0 .../Proximity/Sparkscripts_1.0.0/artifact.xml | 0 .../carbonapps/Proximity/artifacts.xml | 0 .../EventReceiver_rotation.xml | 0 .../Eventreceiver_rotation_1.0.0/artifact.xml | 0 .../Eventstore_rotation_1.0.0/artifact.xml | 0 .../org_wso2_iot_devices_rotation.xml | 16 ++- .../Eventstream_rotation_1.0.0/artifact.xml | 0 .../org.wso2.iot.devices.rotation_1.0.0.json | 6 +- .../Rotation_Sensor_Script.xml | 5 +- .../Rotation/Sparkscripts_1.0.0/artifact.xml | 0 .../carbonapps/Rotation/artifacts.xml | 0 .../EventPublisher_temperature.xml} | 11 +- .../artifact.xml | 4 +- .../EventReceiver_temperature.xml | 0 .../artifact.xml | 0 .../Eventstore_temperature_1.0.0/artifact.xml | 0 .../org_wso2_iot_devices_temperature.xml | 0 .../artifact.xml | 0 ...rg.wso2.iot.devices.temperature_1.0.0.json | 0 .../Temperature_Sensor_Script.xml | 1 - .../Sparkscripts_1.0.0/artifact.xml | 0 .../carbonapps/Temperature}/artifacts.xml | 5 +- .../EventReceiver_wordcount.xml | 0 .../artifact.xml | 0 .../Eventstore_wordcount_1.0.0/artifact.xml | 0 .../org_wso2_iot_devices_wordcount.xml | 0 .../Eventstream_wordcount_1.0.0/artifact.xml | 0 .../org.wso2.iot.devices.wordcount_1.0.0.json | 0 .../Sparkscripts_1.0.0/Wordcount_Script.xml | 0 .../WordCount/Sparkscripts_1.0.0/artifact.xml | 0 .../carbonapps/WordCount/artifacts.xml | 2 - components/iot-plugins/iot-analytics/pom.xml | 39 ++++++ .../transport/mqtt/MQTTTransportHandler.java | 6 +- .../transport/xmpp/XMPPTransportHandler.java | 3 - components/iot-plugins/pom.xml | 1 + .../build.xml | 38 ------ .../pom.xml | 92 -------------- .../src/assembly/src.xml | 36 ------ .../EventReceiver_temperature.xml | 26 ---- .../Eventstore_temperature_1.0.0/artifact.xml | 22 ---- .../org_wso2_iot_devices_temperature.xml | 62 --------- ...rg.wso2.iot.devices.temperature_1.0.0.json | 20 --- .../Temperature_Sensor/artifacts.xml | 29 ----- .../RaspberryPiControllerServiceImpl.java | 1 - .../transport/RaspberryPiMQTTConnector.java | 1 - .../iot-plugins/raspberrypi-plugin/pom.xml | 1 - .../transport/mqtt/MQTTTransportHandler.java | 1 - .../build.xml | 38 ------ .../pom.xml | 92 -------------- .../src/assembly/src.xml | 36 ------ .../Eventstore_temperature_1.0.0/artifact.xml | 22 ---- .../org_wso2_iot_devices_temperature.xml | 62 --------- ...rg.wso2.iot.devices.temperature_1.0.0.json | 20 --- .../Temperature_Sensor_Script.xml | 31 ----- .../Temperature_Sensor/artifacts.xml | 29 ----- ...VirtualFireAlarmControllerServiceImpl.java | 3 - .../VirtualFireAlarmMQTTConnector.java | 2 - .../VirtualFireAlarmXMPPConnector.java | 1 - .../virtual-fire-alarm-plugin/pom.xml | 1 - .../pom.xml | 5 + .../pom.xml | 17 +-- .../pom.xml | 120 ++++++++++++++++++ .../src/main/resources/build.properties | 1 + .../src/main/resources/p2.inf | 3 + .../iot-analytics-feature/pom.xml | 40 ++++++ features/iot-plugins-feature/pom.xml | 1 + .../pom.xml | 17 +-- .../pom.xml | 64 +++++----- .../src/main/resources/p2.inf | 2 - 177 files changed, 732 insertions(+), 1005 deletions(-) create mode 100644 components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/Android_Sense/EventExecution_AndroidSense_1.0.0/EventExecution_AndroidSense.siddhiql rename components/iot-plugins/{raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/main/resources/carbonapps/Temperature_Sensor/Eventstream_temperature_1.0.0 => androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/Android_Sense/EventExecution_AndroidSense_1.0.0}/artifact.xml (81%) create mode 100644 components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/Android_Sense/EventPublisher_AndroidSense_1.0.0/EventPublisher_AndroidSense.xml rename components/iot-plugins/{virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/main/resources/carbonapps/Temperature_Sensor/Sparkscripts_1.0.0 => androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/Android_Sense/EventPublisher_AndroidSense_1.0.0}/artifact.xml (81%) create mode 100644 components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/Android_Sense/EventReceiver_AndroidSense_1.0.0/EventReceiver_AndroidSense.xml rename components/iot-plugins/{virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/main/resources/carbonapps/Temperature_Sensor/Eventreceiver_temperature_1.0.0 => androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/Android_Sense/EventReceiver_AndroidSense_1.0.0}/artifact.xml (81%) rename components/iot-plugins/{raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/main/resources/carbonapps/Temperature_Sensor/Eventreceiver_temperature_1.0.0 => androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/Android_Sense/EventStream_AndroidSense_1.0.0}/artifact.xml (81%) create mode 100644 components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/Android_Sense/EventStream_AndroidSense_1.0.0/org.wso2.iot.android.sense_1.0.0.json create mode 100644 components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/Android_Sense/artifacts.xml delete mode 100644 components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.analytics/build.xml delete mode 100644 components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.analytics/src/main/resources/carbonapps/Temperature_Sensor/Sparkscripts_1.0.0/Temperature_Sensor_Script.xml create mode 100644 components/iot-plugins/iot-analytics/org.wso2.carbon.device.mgt.iot.analytics/build.xml rename components/iot-plugins/{arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/pom.xml (94%) rename components/iot-plugins/{arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/assembly/src.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Accelerometer/Eventreceiver_accelerometer_1.0.0/EventReceiver_accelerometer.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Accelerometer/Eventreceiver_accelerometer_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Accelerometer/Eventstore_accelerometer_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Accelerometer/Eventstore_accelerometer_1.0.0/org_wso2_iot_devices_accelerometer.xml (81%) rename components/iot-plugins/{virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/main/resources/carbonapps/Temperature_Sensor/Eventstream_temperature_1.0.0 => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics/src/main/resources/carbonapps/Accelerometer/Eventstream_accelerometer_1.0.0}/artifact.xml (81%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Accelerometer/Eventstream_accelerometer_1.0.0/org.wso2.iot.devices.accelerometer_1.0.0.json (80%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Accelerometer/Sparkscripts_1.0.0/Accelerometer_Sensor_Script.xml (69%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Accelerometer/Sparkscripts_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Accelerometer/artifacts.xml (97%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Battery/Eventreceiver_battery_1.0.0/EventReceiver_battery.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Battery/Eventreceiver_battery_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Battery/Eventstore_battery_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Battery/Eventstore_battery_1.0.0/org_wso2_iot_devices_battery.xml (96%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Battery/Eventstream_battery_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Battery/Eventstream_battery_1.0.0/org.wso2.iot.devices.battery_1.0.0.json (91%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Battery/Sparkscripts_1.0.0/Battery_Sensor_Script.xml (65%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Battery/Sparkscripts_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Battery/artifacts.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/GPS/Eventreceiver_gps_1.0.0/EventReceiver_gps.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/GPS/Eventreceiver_gps_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/GPS/Eventstore_gps_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/GPS/Eventstore_gps_1.0.0/org_wso2_iot_devices_gps.xml (96%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/GPS/Eventstream_gps_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/GPS/Eventstream_gps_1.0.0/org.wso2.iot.devices.gps_1.0.0.json (78%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/GPS/Sparkscripts_1.0.0/GPS_Sensor_Script.xml (85%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/GPS/Sparkscripts_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/GPS/artifacts.xml (98%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gravity/Eventreceiver_gravaity_1.0.0/EventReceiver_gravity.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gravity/Eventreceiver_gravaity_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gravity/Eventstore_gravity_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gravity/Eventstore_gravity_1.0.0/org_wso2_iot_devices_gravity.xml (81%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gravity/Eventstream_gravity_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gravity/Eventstream_gravity_1.0.0/org.wso2.iot.devices.gravity_1.0.0.json (79%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gravity/Sparkscripts_1.0.0/Gravity_Sensor_Script.xml (77%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gravity/Sparkscripts_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gravity/artifacts.xml (99%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gyroscope/Eventreceiver_gyroscope_1.0.0/EventReceiver_gyroscope.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gyroscope/Eventreceiver_gyroscope_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gyroscope/Eventstore_gyroscope_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gyroscope/Eventstore_gyroscope_1.0.0/org_wso2_iot_devices_gyroscope.xml (81%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gyroscope/Eventstream_gyroscope_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gyroscope/Eventstream_gyroscope_1.0.0/org.wso2.iot.devices.gyroscope_1.0.0.json (79%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gyroscope/Sparkscripts_1.0.0/Gyroscope_Sensor_Script.xml (66%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gyroscope/Sparkscripts_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Gyroscope/artifacts.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Light/Eventreceiver_light_1.0.0/EventReceiver_light.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Light/Eventreceiver_light_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Light/Eventstore_light_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Light/Eventstore_light_1.0.0/org_wso2_iot_devices_light.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Light/Eventstream_light_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Light/Eventstream_light_1.0.0/org.wso2.iot.devices.light_1.0.0.json (88%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Light/Sparkscripts_1.0.0/Light_Sensor_Script.xml (98%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Light/Sparkscripts_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Light/artifacts.xml (97%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Magnetic/Eventreceiver_magnetic_1.0.0/EventReceiver_magnetic.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Magnetic/Eventreceiver_magnetic_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Magnetic/Eventstore_magnetic_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Magnetic/Eventstore_magnetic_1.0.0/org_wso2_iot_devices_magnetic.xml (81%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Magnetic/Eventstream_magnetic_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Magnetic/Eventstream_magnetic_1.0.0/org.wso2.iot.devices.magnetic_1.0.0.json (79%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Magnetic/Sparkscripts_1.0.0/Magnetic_Sensor_Script.xml (75%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Magnetic/Sparkscripts_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Magnetic/artifacts.xml (98%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Pressure/Eventreceiver_pressure_1.0.0/EventReceiver_pressure.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Pressure/Eventreceiver_pressure_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Pressure/Eventstore_pressure_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Pressure/Eventstore_pressure_1.0.0/org_wso2_iot_devices_pressure.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Pressure/Eventstream_pressure_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Pressure/Eventstream_pressure_1.0.0/org.wso2.iot.devices.pressure_1.0.0.json (88%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Pressure/Sparkscripts_1.0.0/Pressure_Sensor_Script.xml (99%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Pressure/Sparkscripts_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Pressure/artifacts.xml (99%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Proximity/Eventreceiver_proximity_1.0.0/EventReceiver_proximity.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Proximity/Eventreceiver_proximity_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Proximity/Eventstore_proximity_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Proximity/Eventstore_proximity_1.0.0/org_wso2_iot_devices_proximity.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Proximity/Eventstream_proximity_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Proximity/Eventstream_proximity_1.0.0/org.wso2.iot.devices.proximity_1.0.0.json (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Proximity/Sparkscripts_1.0.0/Proximity_Sensor_Script.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Proximity/Sparkscripts_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Proximity/artifacts.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Rotation/Eventreceiver_rotation_1.0.0/EventReceiver_rotation.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Rotation/Eventreceiver_rotation_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Rotation/Eventstore_rotation_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Rotation/Eventstore_rotation_1.0.0/org_wso2_iot_devices_rotation.xml (81%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Rotation/Eventstream_rotation_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Rotation/Eventstream_rotation_1.0.0/org.wso2.iot.devices.rotation_1.0.0.json (79%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Rotation/Sparkscripts_1.0.0/Rotation_Sensor_Script.xml (66%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Rotation/Sparkscripts_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/Rotation/artifacts.xml (100%) rename components/iot-plugins/{virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/main/resources/carbonapps/Temperature_Sensor/Eventreceiver_temperature_1.0.0/EventReceiver_temperature.xml => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics/src/main/resources/carbonapps/Temperature/Eventpublisher_temperature_1.0.0/EventPublisher_temperature.xml} (69%) rename components/iot-plugins/{raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/main/resources/carbonapps/Temperature_Sensor/Sparkscripts_1.0.0 => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics/src/main/resources/carbonapps/Temperature/Eventpublisher_temperature_1.0.0}/artifact.xml (81%) rename components/iot-plugins/{arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.analytics/src/main/resources/carbonapps/Temperature_Sensor => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics/src/main/resources/carbonapps/Temperature}/Eventreceiver_temperature_1.0.0/EventReceiver_temperature.xml (100%) rename components/iot-plugins/{arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.analytics/src/main/resources/carbonapps/Temperature_Sensor => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics/src/main/resources/carbonapps/Temperature}/Eventreceiver_temperature_1.0.0/artifact.xml (100%) rename components/iot-plugins/{arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.analytics/src/main/resources/carbonapps/Temperature_Sensor => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics/src/main/resources/carbonapps/Temperature}/Eventstore_temperature_1.0.0/artifact.xml (100%) rename components/iot-plugins/{arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.analytics/src/main/resources/carbonapps/Temperature_Sensor => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics/src/main/resources/carbonapps/Temperature}/Eventstore_temperature_1.0.0/org_wso2_iot_devices_temperature.xml (100%) rename components/iot-plugins/{arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.analytics/src/main/resources/carbonapps/Temperature_Sensor => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics/src/main/resources/carbonapps/Temperature}/Eventstream_temperature_1.0.0/artifact.xml (100%) rename components/iot-plugins/{arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.analytics/src/main/resources/carbonapps/Temperature_Sensor => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics/src/main/resources/carbonapps/Temperature}/Eventstream_temperature_1.0.0/org.wso2.iot.devices.temperature_1.0.0.json (100%) rename components/iot-plugins/{raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/main/resources/carbonapps/Temperature_Sensor => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics/src/main/resources/carbonapps/Temperature}/Sparkscripts_1.0.0/Temperature_Sensor_Script.xml (99%) rename components/iot-plugins/{arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.analytics/src/main/resources/carbonapps/Temperature_Sensor => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics/src/main/resources/carbonapps/Temperature}/Sparkscripts_1.0.0/artifact.xml (100%) rename components/iot-plugins/{arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.analytics/src/main/resources/carbonapps/Temperature_Sensor => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics/src/main/resources/carbonapps/Temperature}/artifacts.xml (85%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/WordCount/Eventreceiver_wordcount_1.0.0/EventReceiver_wordcount.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/WordCount/Eventreceiver_wordcount_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/WordCount/Eventstore_wordcount_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/WordCount/Eventstore_wordcount_1.0.0/org_wso2_iot_devices_wordcount.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/WordCount/Eventstream_wordcount_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/WordCount/Eventstream_wordcount_1.0.0/org.wso2.iot.devices.wordcount_1.0.0.json (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/WordCount/Sparkscripts_1.0.0/Wordcount_Script.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/WordCount/Sparkscripts_1.0.0/artifact.xml (100%) rename components/iot-plugins/{androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics => iot-analytics/org.wso2.carbon.device.mgt.iot.analytics}/src/main/resources/carbonapps/WordCount/artifacts.xml (99%) create mode 100644 components/iot-plugins/iot-analytics/pom.xml delete mode 100644 components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/build.xml delete mode 100644 components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/pom.xml delete mode 100644 components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/assembly/src.xml delete mode 100644 components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/main/resources/carbonapps/Temperature_Sensor/Eventreceiver_temperature_1.0.0/EventReceiver_temperature.xml delete mode 100644 components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/main/resources/carbonapps/Temperature_Sensor/Eventstore_temperature_1.0.0/artifact.xml delete mode 100644 components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/main/resources/carbonapps/Temperature_Sensor/Eventstore_temperature_1.0.0/org_wso2_iot_devices_temperature.xml delete mode 100644 components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/main/resources/carbonapps/Temperature_Sensor/Eventstream_temperature_1.0.0/org.wso2.iot.devices.temperature_1.0.0.json delete mode 100644 components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/main/resources/carbonapps/Temperature_Sensor/artifacts.xml delete mode 100644 components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/build.xml delete mode 100644 components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/pom.xml delete mode 100644 components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/assembly/src.xml delete mode 100644 components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/main/resources/carbonapps/Temperature_Sensor/Eventstore_temperature_1.0.0/artifact.xml delete mode 100644 components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/main/resources/carbonapps/Temperature_Sensor/Eventstore_temperature_1.0.0/org_wso2_iot_devices_temperature.xml delete mode 100644 components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/main/resources/carbonapps/Temperature_Sensor/Eventstream_temperature_1.0.0/org.wso2.iot.devices.temperature_1.0.0.json delete mode 100644 components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/main/resources/carbonapps/Temperature_Sensor/Sparkscripts_1.0.0/Temperature_Sensor_Script.xml delete mode 100644 components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/main/resources/carbonapps/Temperature_Sensor/artifacts.xml create mode 100644 features/iot-plugins-feature/iot-analytics-feature/org.wso2.carbon.device.mgt.iot.analytics.feature/pom.xml create mode 100644 features/iot-plugins-feature/iot-analytics-feature/org.wso2.carbon.device.mgt.iot.analytics.feature/src/main/resources/build.properties create mode 100644 features/iot-plugins-feature/iot-analytics-feature/org.wso2.carbon.device.mgt.iot.analytics.feature/src/main/resources/p2.inf create mode 100644 features/iot-plugins-feature/iot-analytics-feature/pom.xml diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/DataPublisherService.java b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/DataPublisherService.java index 51c7cb807..0f852fd6c 100644 --- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/DataPublisherService.java +++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/DataPublisherService.java @@ -23,6 +23,7 @@ import android.util.Log; import org.json.JSONArray; import org.json.JSONException; +import org.json.JSONObject; import org.wso2.carbon.iot.android.sense.data.publisher.mqtt.AndroidSenseMQTTHandler; import org.wso2.carbon.iot.android.sense.data.publisher.mqtt.transport.MQTTTransportHandler; import org.wso2.carbon.iot.android.sense.data.publisher.mqtt.transport.TransportHandlerException; @@ -149,7 +150,7 @@ public class DataPublisherService extends Service { for (Event event : events) { event.setOwner(user); event.setDeviceId(deviceId); - jsonArray.put(event.getEvent()); + jsonArray.put(new JSONObject().put("event", event.getEvent())); } MQTTTransportHandler mqttTransportHandler = AndroidSenseMQTTHandler.getInstance(context); if (!mqttTransportHandler.isConnected()) { diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/Event.java b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/Event.java index 554c38b12..a8d936010 100644 --- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/Event.java +++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/Event.java @@ -11,7 +11,7 @@ public class Event { private String owner; private String deviceId; private String type; - private float battery; + private int battery; private double gps[]; //lat,long private float accelerometer[]; //x,y,z private float magnetic[]; //x,y,z @@ -26,11 +26,11 @@ public class Event { private String wordStatus; private long timestamp; - private float getBattery() { + private int getBattery() { return battery; } - public void setBattery(float battery) { + public void setBattery(int battery) { this.type = "battery"; this.battery = battery; } diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/mqtt/AndroidSenseMQTTHandler.java b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/mqtt/AndroidSenseMQTTHandler.java index 5ae9b3739..989ad6d38 100644 --- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/mqtt/AndroidSenseMQTTHandler.java +++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/mqtt/AndroidSenseMQTTHandler.java @@ -104,7 +104,6 @@ public class AndroidSenseMQTTHandler extends MQTTTransportHandler { }; Thread connectorThread = new Thread(connector); - connectorThread.setDaemon(true); connectorThread.start(); } @@ -207,7 +206,6 @@ public class AndroidSenseMQTTHandler extends MQTTTransportHandler { }; Thread terminatorThread = new Thread(stopConnection); - terminatorThread.setDaemon(true); terminatorThread.start(); } diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/mqtt/transport/MQTTTransportHandler.java b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/mqtt/transport/MQTTTransportHandler.java index 689138d72..5fc5112d6 100644 --- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/mqtt/transport/MQTTTransportHandler.java +++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/data/publisher/mqtt/transport/MQTTTransportHandler.java @@ -81,8 +81,8 @@ public abstract class MQTTTransportHandler implements MqttCallback, TransportHan this.clientWillTopic = DISCONNECTION_WILL_TOPIC_PREFIX + SenseConstants.DEVICE_TYPE; this.mqttBrokerEndPoint = "tcp://" + LocalRegistry.getServerHost(context) + ":" + LocalRegistry.getMqttPort(context); this.timeoutInterval = DEFAULT_TIMEOUT_INTERVAL; - setUsernameAndPassword(LocalRegistry.getAccessToken(context), ""); this.initMQTTClient(); + setUsernameAndPassword(LocalRegistry.getAccessToken(context), ""); } /** @@ -308,7 +308,6 @@ public abstract class MQTTTransportHandler implements MqttCallback, TransportHan connect(); } }; - reconnectThread.setDaemon(true); reconnectThread.start(); } @@ -333,7 +332,6 @@ public abstract class MQTTTransportHandler implements MqttCallback, TransportHan } } }; - messageProcessorThread.setDaemon(true); messageProcessorThread.start(); } diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/realtimeviewer/ActivitySelectSensor.java b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/realtimeviewer/ActivitySelectSensor.java index 053b7e38c..b93a3a627 100644 --- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/realtimeviewer/ActivitySelectSensor.java +++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/realtimeviewer/ActivitySelectSensor.java @@ -180,6 +180,9 @@ public class ActivitySelectSensor extends AppCompatActivity LocalRegistry.removeUsername(getApplicationContext()); LocalRegistry.removeDeviceId(getApplicationContext()); LocalRegistry.removeServerURL(getApplicationContext()); + LocalRegistry.removeAccessToken(getApplicationContext()); + LocalRegistry.removeRefreshToken(getApplicationContext()); + LocalRegistry.removeMqttPort(getApplicationContext()); LocalRegistry.setExist(false); //Stop the current running background services. stopService(new Intent(this, SenseService.class)); //Stop sensor reading service diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/util/SenseClientAsyncExecutor.java b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/util/SenseClientAsyncExecutor.java index 79b3d740b..c16759ee7 100644 --- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/util/SenseClientAsyncExecutor.java +++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/util/SenseClientAsyncExecutor.java @@ -95,6 +95,7 @@ public class SenseClientAsyncExecutor extends AsyncTask responseMap = new HashMap<>(); responseMap.put(STATUS, "200"); + AccessTokenInfo accessTokenInfo = null; try { //DynamicClientRegistraiton. DynamicClientRegistrationService dynamicClientRegistrationService = Feign.builder() @@ -116,7 +117,7 @@ public class SenseClientAsyncExecutor extends AsyncTask + android:paddingTop="@dimen/activity_vertical_margin" tools:context="org.wso2.carbon.iot.android.sense.RegisterActivity" + android:weightSum="1"> @@ -14,7 +15,8 @@ + android:fillViewport="false" + android:layout_weight="0.07"> @@ -37,43 +39,36 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/hostname" android:id="@+id/hostname" - android:text="https://localhost:9443" + android:text="https://10.10.10.149:9443" android:inputType="text" android:maxLines="1" android:singleLine="true"/> - @@ -70,6 +77,27 @@ {{/if}} + + {{#zone "bottomJs"}} {{js "js/operation-bar.js"}} {{/zone}} diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.ui/src/main/resources/jaggeryapps/devicemgt/app/units/iot.unit.device.operation-bar/public/js/operation-bar.js b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.ui/src/main/resources/jaggeryapps/devicemgt/app/units/iot.unit.device.operation-bar/public/js/operation-bar.js index efaa79aca..afd4c11ee 100644 --- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.ui/src/main/resources/jaggeryapps/devicemgt/app/units/iot.unit.device.operation-bar/public/js/operation-bar.js +++ b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.ui/src/main/resources/jaggeryapps/devicemgt/app/units/iot.unit.device.operation-bar/public/js/operation-bar.js @@ -20,13 +20,77 @@ * On operation click function. * @param selection: Selected operation */ -function operationSelect (selection) { +function operationSelect(selection) { $(modalPopupContent).addClass("operation-data"); $(modalPopupContent).html($(" .operation[data-operation-code=" + selection + "]").html()); $(modalPopupContent).data("operation-code", selection); showPopup(); } +function submitForm(formId) { + var form = $("#" + formId); + var uri = form.attr("action"); + var uriencodedQueryStr = ""; + var uriencodedFormStr = ""; + var payload = {}; + form.find("input").each(function () { + var input = $(this); + if (input.data("param-type") == "path") { + uri = uri.replace("{" + input.attr("id") + "}", input.val()); + } else if (input.data("param-type") == "query") { + var prefix = (uriencodedQueryStr == "") ? "?" : "&"; + uriencodedQueryStr += prefix + input.attr("id") + "=" + input.val(); + } else if (input.data("param-type") == "form") { + var prefix = (uriencodedFormStr == "") ? "" : "&"; + uriencodedFormStr += prefix + input.attr("id") + "=" + input.val(); + //payload[input.attr("id")] = input.val(); + } + }); + uri += uriencodedQueryStr; + var httpMethod = form.attr("method").toUpperCase(); + var contentType = form.attr("enctype"); + console.log(payload); + if (contentType == undefined || contentType.isEmpty()) { + contentType = "application/x-www-form-urlencoded"; + payload = uriencodedFormStr; + } + //setting responses callbacks + var defaultStatusClasses = "fw fw-stack-1x"; + var content = $("#operation-response-template").find(".content"); + var title = content.find("#title"); + var statusIcon = content.find("#status-icon"); + var description = content.find("#description"); + var successCallBack = function (response) { + title.html("Response Received!"); + statusIcon.attr("class", defaultStatusClasses + " fw-success"); + description.html(response); + $(modalPopupContent).html(content.html()); + }; + var errorCallBack = function (response) { + console.log(response); + title.html("An Error Occurred!"); + statusIcon.attr("class", defaultStatusClasses + " fw-error"); + var reason = (response.responseText == "null")?response.statusText:response.responseText; + description.html(reason); + $(modalPopupContent).html(content.html()); + }; + //executing http request + if (httpMethod == "GET") { + invokerUtil.get(uri, successCallBack, errorCallBack, contentType); + } else if (httpMethod == "POST") { + invokerUtil.post(uri, payload, successCallBack, errorCallBack, contentType); + } else if (httpMethod == "PUT") { + invokerUtil.put(uri, payload, successCallBack, errorCallBack, contentType); + } else if (httpMethod == "DELETE") { + invokerUtil.get(uri, successCallBack, errorCallBack, contentType); + } else { + title.html("An Error Occurred!"); + statusIcon.attr("class", defaultStatusClasses + " fw-error"); + description.html("This operation requires http method: " + httpMethod + " which is not supported yet!"); + $(modalPopupContent).html(content.html()); + } +} + $(document).on('submit', 'form', function (e) { e.preventDefault(); var postOperationRequest = $.ajax({ From 0a060d9a73f1a8f78cbc77f80eaa0deb920b307e Mon Sep 17 00:00:00 2001 From: Rasika Perera Date: Wed, 20 Apr 2016 14:04:06 +0530 Subject: [PATCH 9/9] Fixing android-sense to support auto-generated operations --- .../device-view.hbs | 2 +- .../device-view.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.hbs b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.hbs index f5fb9d840..8157e44b3 100644 --- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.hbs +++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.hbs @@ -14,7 +14,7 @@ Operations
- {{unit "iot.unit.device.operation-bar" device=device}} + {{unit "iot.unit.device.operation-bar" device=device backendApiUri=backendApiUri}}
{{/zone}} diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.js b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.js index e4dd5c0da..35041e0cd 100644 --- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.js +++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.device-view/device-view.js @@ -20,13 +20,14 @@ function onRequest(context) { var log = new Log("device-view.js"); var deviceType = context.uriParams.deviceType; var deviceId = request.getParameter("id"); + var devicemgtProps = require('/app/conf/devicemgt-props.js').config(); if (deviceType && deviceId) { var deviceModule = require("/app/modules/device.js").deviceModule; var device = deviceModule.viewDevice(deviceType, deviceId); if (device && device.status != "error") { - return {"device": device}; + return {"device": device, "backendApiUri" : devicemgtProps["httpsURL"] + "/android_sense/"}; } else { response.sendError(404, "Device Id " + deviceId + "of type " + deviceType + " cannot be found!"); exit();