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/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 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({ diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/transport/mqtt/MQTTTransportHandler.java b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/transport/mqtt/MQTTTransportHandler.java index 901374a99..e161e34c9 100644 --- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/transport/mqtt/MQTTTransportHandler.java +++ b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/transport/mqtt/MQTTTransportHandler.java @@ -322,10 +322,11 @@ public abstract class MQTTTransportHandler implements MqttCallback, TransportHan Thread reconnectThread = new Thread() { public void run() { - connect(); + while(isConnected()) { + connect(); + } } }; - reconnectThread.setDaemon(true); reconnectThread.start(); } @@ -352,7 +353,6 @@ public abstract class MQTTTransportHandler implements MqttCallback, TransportHan } } }; - messageProcessorThread.setDaemon(true); messageProcessorThread.start(); } diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/transport/xmpp/XMPPTransportHandler.java b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/transport/xmpp/XMPPTransportHandler.java index 1c57897f8..3c9a2b419 100644 --- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/transport/xmpp/XMPPTransportHandler.java +++ b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot/src/main/java/org/wso2/carbon/device/mgt/iot/transport/xmpp/XMPPTransportHandler.java @@ -232,7 +232,6 @@ public abstract class XMPPTransportHandler implements TransportHandler } } }; - msgProcessThread.setDaemon(true); msgProcessThread.start(); } } @@ -266,7 +265,6 @@ public abstract class XMPPTransportHandler implements TransportHandler } } }; - msgProcessThread.setDaemon(true); msgProcessThread.start(); } } @@ -315,7 +313,6 @@ public abstract class XMPPTransportHandler implements TransportHandler } } }; - msgProcessThread.setDaemon(true); msgProcessThread.start(); } } 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/iot-plugins/pom.xml b/components/iot-plugins/pom.xml index 5738bf180..438e905f2 100644 --- a/components/iot-plugins/pom.xml +++ b/components/iot-plugins/pom.xml @@ -40,6 +40,7 @@ raspberrypi-plugin virtual-fire-alarm-plugin iot-base-plugin + iot-analytics diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/build.xml b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/build.xml deleted file mode 100644 index a877b1141..000000000 --- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/build.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/pom.xml b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/pom.xml deleted file mode 100644 index cfe0fb2a2..000000000 --- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/pom.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - raspberrypi-plugin - org.wso2.carbon.devicemgt-plugins - 2.1.0-SNAPSHOT - ../pom.xml - - - 4.0.0 - org.wso2.carbon.device.mgt.iot.raspberrypi.analytics - WSO2 Carbon - IoT Server RaspberryPi Analytics capp - pom - - - - - maven-clean-plugin - 2.4.1 - - - auto-clean - initialize - - clean - - - - - - maven-antrun-plugin - 1.7 - - - process-resources - - - - - - - run - - - - - - maven-assembly-plugin - 2.5.5 - - ${project.artifactId}-${carbon.device.mgt.version} - false - - src/assembly/src.xml - - - - - create-archive - package - - single - - - - - - - - \ No newline at end of file diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/assembly/src.xml b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/assembly/src.xml deleted file mode 100644 index a5a375010..000000000 --- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/assembly/src.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - src - - zip - - false - ${basedir}/src - - - ${basedir}/target/carbonapps - / - true - - - \ No newline at end of file diff --git a/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 b/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 deleted file mode 100644 index 28b710c27..000000000 --- a/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 +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - false - - - - diff --git a/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 b/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 deleted file mode 100644 index ccfb3b314..000000000 --- a/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 +++ /dev/null @@ -1,22 +0,0 @@ - - - - - org_wso2_iot_devices_temperature.xml - diff --git a/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 b/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 deleted file mode 100644 index d06f73b14..000000000 --- a/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 +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - org.wso2.iot.devices.temperature:1.0.0 - - EVENT_STORE - - - meta_owner - true - true - false - STRING - - - meta_deviceType - true - true - false - STRING - - - meta_deviceId - true - true - false - STRING - - - meta_time - true - true - false - LONG - - - temperature - false - false - false - FLOAT - - - \ No newline at end of file diff --git a/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 b/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 deleted file mode 100644 index 5d94b9821..000000000 --- a/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 +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "org.wso2.iot.devices.temperature", - "version": "1.0.0", - "nickName": "Temperature Data", - "description": "Temperature data received from the Device", - "metaData": [ - {"name":"owner","type":"STRING"}, - {"name":"deviceType","type":"STRING"}, - {"name":"deviceId","type":"STRING"}, - {"name":"time","type":"LONG"} - ], - "payloadData": [ - { - "name": "temperature","type": "FLOAT" - } - ] -} - - - diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/main/resources/carbonapps/Temperature_Sensor/artifacts.xml b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/main/resources/carbonapps/Temperature_Sensor/artifacts.xml deleted file mode 100644 index c4580f909..000000000 --- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.analytics/src/main/resources/carbonapps/Temperature_Sensor/artifacts.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - 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..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) @@ -71,7 +63,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 13cb9ee46..640bc1c39 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,18 +25,25 @@ 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; +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; @@ -49,50 +56,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; - //The delay is added for the server starts up. - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } - if (MqttConfig.getInstance().isEnabled()) { - synchronized (raspberryPiMQTTConnector) { - raspberryPiMQTTConnector.connect(); - } - } else { - log.warn("MQTT disabled in 'devicemgt-config.xml'. Hence, 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); @@ -106,7 +73,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)) { @@ -127,32 +96,10 @@ public class RaspberryPiControllerServiceImpl implements RaspberryPiControllerSe return Response.ok().build(); } - 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(); - } - - 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; @@ -170,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 + "]"); @@ -181,7 +125,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); String query = "owner:" + user + " AND deviceId:" + deviceId + " AND deviceType:" + @@ -200,4 +150,44 @@ public class RaspberryPiControllerServiceImpl implements RaspberryPiControllerSe } } + private boolean waitForServerStartup() { + while (!IoTServerStartupListener.isServerReady()) { + try { + Thread.sleep(5000); + } 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; + } + //The delay is added for the server to starts up. + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + 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.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 edb966d82..48f51bc7e 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 @@ -42,6 +42,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; @@ -51,39 +60,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); @@ -100,7 +86,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); @@ -122,7 +110,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); @@ -135,6 +127,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( @@ -153,7 +149,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())); @@ -177,8 +178,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()); @@ -198,6 +201,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/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..bff437c20 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; @@ -109,7 +107,6 @@ public class RaspberryPiMQTTConnector extends MQTTTransportHandler { }; Thread connectorThread = new Thread(connector); - connectorThread.setDaemon(true); connectorThread.start(); } @@ -161,8 +158,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/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/raspberrypi-plugin/pom.xml b/components/iot-plugins/raspberrypi-plugin/pom.xml index 29c4a8605..664275995 100644 --- a/components/iot-plugins/raspberrypi-plugin/pom.xml +++ b/components/iot-plugins/raspberrypi-plugin/pom.xml @@ -35,7 +35,6 @@ org.wso2.carbon.device.mgt.iot.raspberrypi.plugin org.wso2.carbon.device.mgt.iot.raspberrypi.ui - org.wso2.carbon.device.mgt.iot.raspberrypi.analytics org.wso2.carbon.device.mgt.iot.raspberrypi.api diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.agent.impl/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/agent/transport/mqtt/MQTTTransportHandler.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.agent.impl/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/agent/transport/mqtt/MQTTTransportHandler.java index 597f50a4d..c019ce9ce 100644 --- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.agent.impl/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/agent/transport/mqtt/MQTTTransportHandler.java +++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.agent.impl/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/agent/transport/mqtt/MQTTTransportHandler.java @@ -294,7 +294,6 @@ public abstract class MQTTTransportHandler connect(); } }; - reconnectThread.setDaemon(true); reconnectThread.start(); } diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/build.xml b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/build.xml deleted file mode 100644 index a877b1141..000000000 --- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/build.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/pom.xml b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/pom.xml deleted file mode 100644 index da9f26ab7..000000000 --- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/pom.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - virtual-fire-alarm-plugin - org.wso2.carbon.devicemgt-plugins - 2.1.0-SNAPSHOT - ../pom.xml - - - 4.0.0 - org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics - WSO2 Carbon - IoT Server Virtual Firealarm Analytics capp - pom - - - - - maven-clean-plugin - 2.4.1 - - - auto-clean - initialize - - clean - - - - - - maven-antrun-plugin - 1.7 - - - process-resources - - - - - - - run - - - - - - maven-assembly-plugin - 2.5.5 - - ${project.artifactId}-${carbon.device.mgt.version} - false - - src/assembly/src.xml - - - - - create-archive - package - - single - - - - - - - - \ No newline at end of file diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/assembly/src.xml b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/assembly/src.xml deleted file mode 100644 index a5a375010..000000000 --- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/assembly/src.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - src - - zip - - false - ${basedir}/src - - - ${basedir}/target/carbonapps - / - true - - - \ No newline at end of file diff --git a/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 b/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 deleted file mode 100644 index ccfb3b314..000000000 --- a/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 +++ /dev/null @@ -1,22 +0,0 @@ - - - - - org_wso2_iot_devices_temperature.xml - diff --git a/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 b/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 deleted file mode 100644 index d06f73b14..000000000 --- a/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 +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - org.wso2.iot.devices.temperature:1.0.0 - - EVENT_STORE - - - meta_owner - true - true - false - STRING - - - meta_deviceType - true - true - false - STRING - - - meta_deviceId - true - true - false - STRING - - - meta_time - true - true - false - LONG - - - temperature - false - false - false - FLOAT - - - \ No newline at end of file diff --git a/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 b/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 deleted file mode 100644 index 5d94b9821..000000000 --- a/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 +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "org.wso2.iot.devices.temperature", - "version": "1.0.0", - "nickName": "Temperature Data", - "description": "Temperature data received from the Device", - "metaData": [ - {"name":"owner","type":"STRING"}, - {"name":"deviceType","type":"STRING"}, - {"name":"deviceId","type":"STRING"}, - {"name":"time","type":"LONG"} - ], - "payloadData": [ - { - "name": "temperature","type": "FLOAT" - } - ] -} - - - diff --git a/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 b/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 deleted file mode 100644 index 41938dd4f..000000000 --- a/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 +++ /dev/null @@ -1,31 +0,0 @@ - - - - - IoTServer_Sensor_Script - - 0 * * * * ? - diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/main/resources/carbonapps/Temperature_Sensor/artifacts.xml b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/main/resources/carbonapps/Temperature_Sensor/artifacts.xml deleted file mode 100644 index c4580f909..000000000 --- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics/src/main/resources/carbonapps/Temperature_Sensor/artifacts.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - 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..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 @@ -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,31 +72,12 @@ 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, @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("{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' @@ -105,7 +86,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 +104,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 +121,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 cb1cf0a45..afc786e3b 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 @@ -29,8 +29,6 @@ import org.wso2.carbon.certificate.mgt.core.service.CertificateManagementService 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.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; @@ -46,11 +44,19 @@ 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; import java.util.ArrayList; -import java.util.Calendar; import java.util.List; import java.util.concurrent.ConcurrentHashMap; @@ -77,135 +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<>(); - 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) { + @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); @@ -219,7 +100,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)) { @@ -257,43 +141,9 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo } } - public Response requestTemperature(String deviceId, String protocol) { - org.wso2.carbon.device.mgt.iot.sensormgt.SensorRecord sensorRecord = null; - 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) public Response pushTemperatureData(final DeviceData dataMsg) { String deviceId = dataMsg.deviceId; String deviceIp = dataMsg.reply; @@ -308,16 +158,15 @@ 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(); } 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); } @@ -367,7 +216,6 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo if (log.isDebugEnabled()) { log.debug("Invoking GetCACaps"); } - try { CertificateManagementService certificateManagementService = VirtualFireAlarmServiceUtils. getCertificateManagementService(); @@ -378,16 +226,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); } @@ -409,26 +256,157 @@ public class VirtualFireAlarmControllerServiceImpl implements VirtualFireAlarmCo return Response.serverError().build(); } - 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); - 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(); + @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) { + 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(); + } + return Response.status(Response.Status.BAD_REQUEST).build(); + } + + private boolean waitForServerStartup() { + while (!IoTServerStartupListener.isServerReady()) { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + return true; } - } 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 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.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; + } + //The delay is added for the server to starts up. + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + 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.start(); } /** 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 9e226acc0..284a2937a 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 @@ -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; @@ -49,38 +58,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); @@ -97,7 +83,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); @@ -118,7 +106,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); @@ -130,6 +122,10 @@ public class VirtualFireAlarmManagerServiceImpl implements VirtualFireAlarmManag } } + @Path("devices") + @GET + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) public Response getFirealarmDevices() { try { List userDevices = @@ -148,7 +144,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())); @@ -169,12 +169,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()); @@ -191,8 +192,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/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..bb8baab3a 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; @@ -138,7 +136,6 @@ public class VirtualFireAlarmMQTTConnector extends MQTTTransportHandler { }; Thread connectorThread = new Thread(connector); - connectorThread.setDaemon(true); connectorThread.start(); } @@ -208,9 +205,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 = @@ -299,7 +293,6 @@ public class VirtualFireAlarmMQTTConnector extends MQTTTransportHandler { }; Thread terminatorThread = new Thread(stopConnection); - terminatorThread.setDaemon(true); terminatorThread.start(); } 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..7f6355744 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: @@ -264,7 +259,6 @@ public class VirtualFireAlarmXMPPConnector extends XMPPTransportHandler { }; Thread terminatorThread = new Thread(stopConnection); - terminatorThread.setDaemon(true); terminatorThread.start(); } 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 diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/pom.xml b/components/iot-plugins/virtual-fire-alarm-plugin/pom.xml index 91a2933c5..305393197 100644 --- a/components/iot-plugins/virtual-fire-alarm-plugin/pom.xml +++ b/components/iot-plugins/virtual-fire-alarm-plugin/pom.xml @@ -37,7 +37,6 @@ org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui org.wso2.carbon.device.mgt.iot.virtualfirealarm.agent.advanced.impl org.wso2.carbon.device.mgt.iot.virtualfirealarm.agent.impl - org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics org.wso2.carbon.device.mgt.iot.virtualfirealarm.api 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/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; } 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/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/pom.xml b/features/iot-plugins-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/pom.xml index ee4ae5ddd..5875495a6 100644 --- a/features/iot-plugins-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/pom.xml +++ b/features/iot-plugins-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/pom.xml @@ -209,6 +209,11 @@ org.wso2.carbon.core.server:${carbon.kernel.version} org.wso2.carbon.device.mgt.server:${carbon.device.mgt.version} + + + org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.analytics.feature:${carbon.devicemgt.plugins.version} + + diff --git a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/pom.xml b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/pom.xml index be2c6a848..1d084962a 100644 --- a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/pom.xml +++ b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/pom.xml @@ -91,18 +91,6 @@ - - org.wso2.carbon.devicemgt-plugins - org.wso2.carbon.device.mgt.iot.arduino.analytics - - ${project.version} - zip - true - - ${project.build.directory}/maven-shared-archive-resources/carbonapps - - **/* - org.wso2.carbon.devicemgt-plugins org.wso2.carbon.device.mgt.iot.arduino.ui @@ -212,6 +200,11 @@ org.wso2.carbon.device.mgt.server:${carbon.device.mgt.version} + + + org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.analytics.feature:${carbon.devicemgt.plugins.version} + + diff --git a/features/iot-plugins-feature/iot-analytics-feature/org.wso2.carbon.device.mgt.iot.analytics.feature/pom.xml b/features/iot-plugins-feature/iot-analytics-feature/org.wso2.carbon.device.mgt.iot.analytics.feature/pom.xml new file mode 100644 index 000000000..499fe857d --- /dev/null +++ b/features/iot-plugins-feature/iot-analytics-feature/org.wso2.carbon.device.mgt.iot.analytics.feature/pom.xml @@ -0,0 +1,120 @@ + + + + + + + + org.wso2.carbon.devicemgt-plugins + iot-analytics-feature + 2.1.0-SNAPSHOT + ../pom.xml + + + 4.0.0 + org.wso2.carbon.device.mgt.iot.analytics.feature + 2.1.0-SNAPSHOT + pom + WSO2 Carbon - IoT Server Analytics Feature + http://wso2.org + This feature contains the Analytics Script for the IoT Server + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + unpack + package + + unpack + + + + + org.wso2.carbon.devicemgt-plugins + org.wso2.carbon.device.mgt.iot.analytics + ${project.version} + zip + true + + ${project.build.directory}/maven-shared-archive-resources/carbonapps + + **/* + + + + + + + + + maven-resources-plugin + + + copy-resources + generate-resources + + copy-resources + + + src/main/resources + + + resources + + build.properties + p2.inf + + + + + + + + + org.wso2.maven + carbon-p2-plugin + ${carbon.p2.plugin.version} + + + p2-feature-generation + package + + p2-feature-gen + + + org.wso2.carbon.device.mgt.iot.analytics + ../../../features/etc/feature.properties + + + org.wso2.carbon.p2.category.type:server + org.eclipse.equinox.p2.type.group:true + + + + + + + + + diff --git a/features/iot-plugins-feature/iot-analytics-feature/org.wso2.carbon.device.mgt.iot.analytics.feature/src/main/resources/build.properties b/features/iot-plugins-feature/iot-analytics-feature/org.wso2.carbon.device.mgt.iot.analytics.feature/src/main/resources/build.properties new file mode 100644 index 000000000..93c4b1070 --- /dev/null +++ b/features/iot-plugins-feature/iot-analytics-feature/org.wso2.carbon.device.mgt.iot.analytics.feature/src/main/resources/build.properties @@ -0,0 +1 @@ +custom = true \ No newline at end of file diff --git a/features/iot-plugins-feature/iot-analytics-feature/org.wso2.carbon.device.mgt.iot.analytics.feature/src/main/resources/p2.inf b/features/iot-plugins-feature/iot-analytics-feature/org.wso2.carbon.device.mgt.iot.analytics.feature/src/main/resources/p2.inf new file mode 100644 index 000000000..60c0743fe --- /dev/null +++ b/features/iot-plugins-feature/iot-analytics-feature/org.wso2.carbon.device.mgt.iot.analytics.feature/src/main/resources/p2.inf @@ -0,0 +1,3 @@ +instructions.configure = \ +org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/carbonapps/);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.analytics_${feature.version}/carbonapps/,target:${installFolder}/../../deployment/server/carbonapps/,overwrite:true);\ \ No newline at end of file diff --git a/features/iot-plugins-feature/iot-analytics-feature/pom.xml b/features/iot-plugins-feature/iot-analytics-feature/pom.xml new file mode 100644 index 000000000..d24642655 --- /dev/null +++ b/features/iot-plugins-feature/iot-analytics-feature/pom.xml @@ -0,0 +1,40 @@ + + + + + + + org.wso2.carbon.devicemgt-plugins + iot-plugins-feature + 2.1.0-SNAPSHOT + ../pom.xml + + + 4.0.0 + iot-analytics-feature + pom + WSO2 Carbon - IoT Server IoT Analytics Feature + http://wso2.org + + + org.wso2.carbon.device.mgt.iot.analytics.feature + + + 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/iot-plugins-feature/pom.xml b/features/iot-plugins-feature/pom.xml index 10a0ac19a..3e92f6dde 100644 --- a/features/iot-plugins-feature/pom.xml +++ b/features/iot-plugins-feature/pom.xml @@ -34,6 +34,7 @@ http://wso2.org + iot-analytics-feature androidsense-plugin-feature arduino-plugin-feature digital-display-plugin-feature diff --git a/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/pom.xml b/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/pom.xml index 73b04661b..cda87ceb1 100644 --- a/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/pom.xml +++ b/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/pom.xml @@ -91,18 +91,6 @@ - - org.wso2.carbon.devicemgt-plugins - org.wso2.carbon.device.mgt.iot.raspberrypi.analytics - - ${project.version} - zip - true - - ${project.build.directory}/maven-shared-archive-resources/carbonapps - - **/* - org.wso2.carbon.devicemgt-plugins org.wso2.carbon.device.mgt.iot.raspberrypi.ui @@ -211,6 +199,11 @@ org.wso2.carbon.device.mgt.server:${carbon.device.mgt.version} + + + org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.analytics.feature:${carbon.devicemgt.plugins.version} + + diff --git a/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/pom.xml b/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/pom.xml index 7a8fe13d1..97398f640 100644 --- a/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/pom.xml +++ b/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/pom.xml @@ -82,42 +82,31 @@ org.apache.maven.plugins maven-dependency-plugin + - - unpack - package - - unpack - - - - - org.wso2.carbon.devicemgt-plugins - org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics - - ${project.version} - zip - true - - ${project.build.directory}/maven-shared-archive-resources/carbonapps - - **/* - - - org.wso2.carbon.devicemgt-plugins - org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui - - ${project.version} - zip - true - - ${project.build.directory}/maven-shared-archive-resources/jaggeryapps/devicemgt - - **/* - - - - + + unpack + package + + unpack + + + + + org.wso2.carbon.devicemgt-plugins + org.wso2.carbon.device.mgt.iot.virtualfirealarm.ui + + ${project.version} + zip + true + + ${project.build.directory}/maven-shared-archive-resources/jaggeryapps/devicemgt + + **/* + + + + copy-jaxrs-war package @@ -240,6 +229,11 @@ org.wso2.carbon.device.mgt.server:${carbon.device.mgt.version} + + + org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.analytics.feature:${carbon.devicemgt.plugins.version} + + diff --git a/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/p2.inf b/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/p2.inf index a229ebc62..540535f3b 100644 --- a/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/p2.inf +++ b/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/p2.inf @@ -3,8 +3,6 @@ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../conf org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.virtualfirealarm_${feature.version}/configs/,target:${installFolder}/../../conf/device-types/,overwrite:true);\ 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.virtualfirealarm_${feature.version}/webapps/,target:${installFolder}/../../deployment/server/webapps/,overwrite:true);\ -org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/carbonapps/);\ -org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.virtualfirealarm_${feature.version}/carbonapps/,target:${installFolder}/../../deployment/server/carbonapps/,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../resources/sketches/);\ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../resources/sketches/virtual_firealarm/);\ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.virtualfirealarm_${feature.version}/agent/,target:${installFolder}/../../resources/sketches/virtual_firealarm/,overwrite:true);\ 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/);\