merging changes with upstream

partial
revert-dabc3590
Ace 8 years ago
commit daf37338c6

@ -21,7 +21,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-analytics</artifactId> <artifactId>iot-analytics</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>analytics</artifactId> <artifactId>analytics</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>carbon-device-mgt-plugins-parent</artifactId> <artifactId>carbon-device-mgt-plugins-parent</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

@ -21,7 +21,7 @@
<parent> <parent>
<artifactId>androidsense-plugin</artifactId> <artifactId>androidsense-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -3,7 +3,7 @@
<parent> <parent>
<artifactId>androidsense-plugin</artifactId> <artifactId>androidsense-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -84,8 +84,7 @@ public class AndroidSenseServiceImpl implements AndroidSenseService {
log.error(e.getErrorMessage(), e); log.error(e.getErrorMessage(), e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).build(); return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).build();
} catch (OperationManagementException e) { } catch (OperationManagementException e) {
String msg = "Error occurred while executing command operation to send keywords"; log.error("Error occurred while executing command operation to send keywords", e);
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
} }
} }
@ -123,8 +122,7 @@ public class AndroidSenseServiceImpl implements AndroidSenseService {
} catch (DeviceAccessAuthorizationException e) { } catch (DeviceAccessAuthorizationException e) {
return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).build(); return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).build();
} catch (OperationManagementException e) { } catch (OperationManagementException e) {
String msg = "Error occurred while executing command operation to set threashold"; log.error("Error occurred while executing command operation to set threashold", e);
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
} }
} }
@ -163,8 +161,7 @@ public class AndroidSenseServiceImpl implements AndroidSenseService {
log.error(e.getErrorMessage(), e); log.error(e.getErrorMessage(), e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).build(); return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).build();
} catch (OperationManagementException e) { } catch (OperationManagementException e) {
String msg = "Error occurred while executing command operation to remove words"; log.error("Error occurred while executing command operation to remove words", e);
log.error(msg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
} }
} }
@ -300,5 +297,4 @@ public class AndroidSenseServiceImpl implements AndroidSenseService {
return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).entity(false).build(); return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).entity(false).build();
} }
} }
} }

@ -3,10 +3,10 @@ package org.wso2.carbon.device.mgt.iot.androidsense.service.impl.util;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.analytics.api.AnalyticsDataAPI; import org.wso2.carbon.analytics.api.AnalyticsDataAPI;
import org.wso2.carbon.analytics.api.AnalyticsDataAPIUtil;
import org.wso2.carbon.analytics.dataservice.commons.AnalyticsDataResponse; import org.wso2.carbon.analytics.dataservice.commons.AnalyticsDataResponse;
import org.wso2.carbon.analytics.dataservice.commons.SearchResultEntry; import org.wso2.carbon.analytics.dataservice.commons.SearchResultEntry;
import org.wso2.carbon.analytics.dataservice.commons.SortByField; import org.wso2.carbon.analytics.dataservice.commons.SortByField;
import org.wso2.carbon.analytics.dataservice.core.AnalyticsDataServiceUtils;
import org.wso2.carbon.analytics.datasource.commons.Record; import org.wso2.carbon.analytics.datasource.commons.Record;
import org.wso2.carbon.analytics.datasource.commons.exception.AnalyticsException; import org.wso2.carbon.analytics.datasource.commons.exception.AnalyticsException;
import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService; import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService;
@ -88,7 +88,7 @@ public class APIUtil {
sortByFields); sortByFields);
List<String> recordIds = getRecordIds(resultEntries); List<String> recordIds = getRecordIds(resultEntries);
AnalyticsDataResponse response = analyticsDataAPI.get(tenantId, tableName, 1, null, recordIds); AnalyticsDataResponse response = analyticsDataAPI.get(tenantId, tableName, 1, null, recordIds);
Map<String, SensorRecord> sensorDatas = createSensorData(AnalyticsDataServiceUtils.listRecords( Map<String, SensorRecord> sensorDatas = createSensorData(AnalyticsDataAPIUtil.listRecords(
analyticsDataAPI, response)); analyticsDataAPI, response));
List<SensorRecord> sortedSensorData = getSortedSensorData(sensorDatas, resultEntries); List<SensorRecord> sortedSensorData = getSortedSensorData(sensorDatas, resultEntries);
return sortedSensorData; return sortedSensorData;

@ -63,5 +63,4 @@
<method>POST</method> <method>POST</method>
<scope>android_sense_user</scope> <scope>android_sense_user</scope>
</Permission> </Permission>
</PermissionConfiguration> </PermissionConfiguration>

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>androidsense-plugin</artifactId> <artifactId>androidsense-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -74,9 +74,9 @@
<div class="panel-body"> <div class="panel-body">
<div id="operations-spinner" class="wr-advance-operations-init hidden"> <div id="operations-spinner" class="wr-advance-operations-init hidden">
<br> <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i> <i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Operations Log . . . Loading Operations Log . . .
<br> <br>
<br> <br>

@ -41,7 +41,7 @@
</div> </div>
<div class="wr-input-control wr-btn-grp"> <div class="wr-input-control wr-btn-grp">
<button id="save-general-btn" class="wr-btn" onclick="addConfiguration();"> <button id="save-general-btn" class="wr-btn" onclick="addConfiguration();">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Save
</button> </button>
</div> </div>
</div> </div>

@ -42,18 +42,18 @@
<ul class="list-unstyled"> <ul class="list-unstyled">
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">STEP 01</span> <span class="circle">STEP 01</span>
&nbsp;&nbsp;&nbsp;Go ahead and click [Enroll Device]. Go ahead and click [Enroll Device].
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">STEP 02</span> <span class="circle">STEP 02</span>
&nbsp;&nbsp;&nbsp;You can either scan the QR code or directly download Android agent. You can either scan the QR code or directly download Android agent.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">STEP 03</span> <span class="circle">STEP 03</span>
&nbsp;&nbsp;&nbsp;Install Android agent into your Android Device. Install Android agent into your Android Device.
</li> </li>
<li class="padding-top-double"><span class="circle">STEP 04</span> <li class="padding-top-double"><span class="circle">STEP 04</span>
&nbsp;&nbsp;&nbsp;Proceed to [Prepare] section. Proceed to [Prepare] section.
</ul> </ul>
<br> <br>
<a href="#" class="download-link btn-operations"> <a href="#" class="download-link btn-operations">
@ -84,7 +84,7 @@
<div class="buttons"> <div class="buttons">
<a href="#" id="device-401-link" class="blue-button"> <a href="#" id="device-401-link" class="blue-button">
Goto Login Page Goto Login Page
</a>&nbsp;&nbsp; </a>
<a href="#" onclick="hidePopup();" class="btn-operations"> <a href="#" onclick="hidePopup();" class="btn-operations">
Cancel Cancel
</a> </a>
@ -147,17 +147,17 @@
<ul class="list-unstyled"> <ul class="list-unstyled">
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">01</span> <span class="circle">01</span>
&nbsp;&nbsp;&nbsp;Connect Android device to network. Connect Android device to network.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">02</span> <span class="circle">02</span>
&nbsp;&nbsp;&nbsp;Start Android Sense app in your device. Start Android Sense app in your device.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">03</span> <span class="circle">03</span>
&nbsp;&nbsp;&nbsp;Fill login form with the credentials. Fill login form with the credentials.
<i>(Use server URL as [&nbsp;https://&lt;WSO2_IoT_SERVER_HOST&gt;:&lt; <i>(Use server URL as [ https://&lt;WSO2_IoT_SERVER_HOST&gt;:&lt;
HTTPS_SERVER_PORT&gt;&nbsp;] and click on HTTPS_SERVER_PORT&gt; ] and click on
<strong>Register Device</strong> button.)</i> <strong>Register Device</strong> button.)</i>
</li> </li>
<li> <li>
@ -169,7 +169,7 @@
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">04</span> <span class="circle">04</span>
&nbsp;&nbsp;&nbsp;Once the device is enrolled, click on <strong>[+]</strong> button to Once the device is enrolled, click on <strong>[+]</strong> button to
select the sensors. select the sensors.
<a href="{{@unit.publicUri}}/images/selectSensorView.png" target="_blank" <a href="{{@unit.publicUri}}/images/selectSensorView.png" target="_blank"
class="padding-top-double"> class="padding-top-double">
@ -178,7 +178,7 @@
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">05</span> <span class="circle">05</span>
&nbsp;&nbsp;&nbsp;Click on <i>[Publish data]</i> button to publish sensor readings to Click on <i>[Publish data]</i> button to publish sensor readings to
IoT server. IoT server.
<a href="{{@unit.publicUri}}/images/publishDataView.png" target="_blank" <a href="{{@unit.publicUri}}/images/publishDataView.png" target="_blank"
class="padding-top-double"> class="padding-top-double">
@ -198,7 +198,7 @@
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i> <i class="fw fw-right-arrow fw-stack-1x"></i>
</span> </span>
&nbsp;&nbsp;&nbsp;You can view all your connected devices You can view all your connected devices
<a href="{{@app.context}}/devices">[Device Management]</a> page. <a href="{{@app.context}}/devices">[Device Management]</a> page.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
@ -206,14 +206,14 @@
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i> <i class="fw fw-right-arrow fw-stack-1x"></i>
</span> </span>
&nbsp;&nbsp;&nbsp;You can select any one of your connected devices for available You can select any one of your connected devices for available
operations and Real-Time data monitoring. operations and Real-Time data monitoring.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="fw-stack fw-lg margin-right"> <span class="fw-stack fw-lg margin-right">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i> <i class="fw fw-right-arrow fw-stack-1x"></i>
</span>&nbsp;&nbsp;&nbsp;For historical analytics of sensor data navigate to device </span> For historical analytics of sensor data navigate to device
analytics page. analytics page.
</li> </li>
</ul> </ul>
@ -237,7 +237,7 @@
<i class="fw fw-add fw-stack-1x fw-inverse"></i> <i class="fw fw-add fw-stack-1x fw-inverse"></i>
</span> </span>
</span> </span>
&nbsp;&nbsp;Add your new mobile device to {{@app.conf.appName}} Add your new mobile device to {{@app.conf.appName}}
</h4> </h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i></button>
</div> </div>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-plugins</artifactId> <artifactId>iot-plugins</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -21,7 +21,7 @@
<parent> <parent>
<artifactId>arduino-plugin</artifactId> <artifactId>arduino-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -21,7 +21,7 @@
<parent> <parent>
<artifactId>arduino-plugin</artifactId> <artifactId>arduino-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -7,7 +7,7 @@ import org.wso2.carbon.analytics.dataservice.commons.AnalyticsDataResponse;
import org.wso2.carbon.analytics.dataservice.commons.AnalyticsDrillDownRequest; import org.wso2.carbon.analytics.dataservice.commons.AnalyticsDrillDownRequest;
import org.wso2.carbon.analytics.dataservice.commons.SearchResultEntry; import org.wso2.carbon.analytics.dataservice.commons.SearchResultEntry;
import org.wso2.carbon.analytics.dataservice.commons.SortByField; import org.wso2.carbon.analytics.dataservice.commons.SortByField;
import org.wso2.carbon.analytics.dataservice.core.AnalyticsDataServiceUtils; import org.wso2.carbon.analytics.api.AnalyticsDataAPIUtil;
import org.wso2.carbon.analytics.datasource.commons.Record; import org.wso2.carbon.analytics.datasource.commons.Record;
import org.wso2.carbon.analytics.datasource.commons.exception.AnalyticsException; import org.wso2.carbon.analytics.datasource.commons.exception.AnalyticsException;
import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService; import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService;
@ -81,7 +81,7 @@ public class APIUtil {
sortByFields); sortByFields);
List<String> recordIds = getRecordIds(resultEntries); List<String> recordIds = getRecordIds(resultEntries);
AnalyticsDataResponse response = analyticsDataAPI.get(tenantId, tableName, 1, null, recordIds); AnalyticsDataResponse response = analyticsDataAPI.get(tenantId, tableName, 1, null, recordIds);
Map<String, SensorRecord> sensorDatas = createSensorData(AnalyticsDataServiceUtils.listRecords( Map<String, SensorRecord> sensorDatas = createSensorData(AnalyticsDataAPIUtil.listRecords(
analyticsDataAPI, response)); analyticsDataAPI, response));
List<SensorRecord> sortedSensorData = getSortedSensorData(sensorDatas, resultEntries); List<SensorRecord> sortedSensorData = getSortedSensorData(sensorDatas, resultEntries);
return sortedSensorData; return sortedSensorData;

@ -23,7 +23,7 @@
<parent> <parent>
<artifactId>arduino-plugin</artifactId> <artifactId>arduino-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -64,9 +64,9 @@
<div class="panel-body"> <div class="panel-body">
<div id="operations-spinner" class="wr-advance-operations-init hidden"> <div id="operations-spinner" class="wr-advance-operations-init hidden">
<br> <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i> <i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Operations Log . . . Loading Operations Log . . .
<br> <br>
<br> <br>

@ -52,7 +52,7 @@
</div> </div>
<div class="wr-input-control wr-btn-grp"> <div class="wr-input-control wr-btn-grp">
<button id="save-general-btn" class="wr-btn" onclick="addConfiguration();"> <button id="save-general-btn" class="wr-btn" onclick="addConfiguration();">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Save
</button> </button>
</div> </div>
</div> </div>

@ -41,24 +41,24 @@
<ul class="list-unstyled"> <ul class="list-unstyled">
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">ITEM 01</span> <span class="circle">ITEM 01</span>
&nbsp;&nbsp;&nbsp;Arduino UNO Board. Arduino UNO Board.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">ITEM 02</span> <span class="circle">ITEM 02</span>
&nbsp;&nbsp;&nbsp;Adafruit Wifi Shield for Arduino. Adafruit Wifi Shield for Arduino.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">ITEM 03</span> <span class="circle">ITEM 03</span>
&nbsp;&nbsp;&nbsp;LED bulb connected to Pin 13. LED bulb connected to Pin 13.
<i>(If not available, will use the one on the board.)</i> <i>(If not available, will use the one on the board.)</i>
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">ITEM 04</span> <span class="circle">ITEM 04</span>
&nbsp;&nbsp;&nbsp;Resister( e.g 330 ohms ) Resister( e.g 330 ohms )
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">STEP 05</span> <span class="circle">STEP 05</span>
&nbsp;&nbsp;&nbsp;Proceed to [Prepare] section. Proceed to [Prepare] section.
</ul> </ul>
<br> <br>
<a href="/api-store/apis/info?name={{@uriParams.deviceType}}&version=1.0.0&provider=admin" <a href="/api-store/apis/info?name={{@uriParams.deviceType}}&version=1.0.0&provider=admin"
@ -90,7 +90,7 @@
<input type="hidden" class="deviceType" name="deviceType" <input type="hidden" class="deviceType" name="deviceType"
value="{{@uriParams.deviceType}}"/> value="{{@uriParams.deviceType}}"/>
<input type="hidden" class="sketchType" name="sketchType" <input type="hidden" class="sketchType" name="sketchType"
value="{{@uriParams.deviceType}}"/> &nbsp;&nbsp; value="{{@uriParams.deviceType}}"/>
</div> </div>
</div> </div>
<div class="buttons" style="padding-bottom: 0px"> <div class="buttons" style="padding-bottom: 0px">
@ -134,7 +134,7 @@
<div class="buttons"> <div class="buttons">
<a href="#" id="device-401-link" class="blue-button"> <a href="#" id="device-401-link" class="blue-button">
Goto Login Page Goto Login Page
</a>&nbsp;&nbsp; </a>
<a href="#" onclick="hidePopup();" class="btn-operations"> <a href="#" onclick="hidePopup();" class="btn-operations">
Cancel Cancel
</a> </a>
@ -196,11 +196,11 @@
<ul class="list-unstyled"> <ul class="list-unstyled">
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">01</span> <span class="circle">01</span>
&nbsp;&nbsp;&nbsp;Wifi-Shield mounted onto the Arduino-UNO board Wifi-Shield mounted onto the Arduino-UNO board
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">02</span> <span class="circle">02</span>
&nbsp;&nbsp;&nbsp;Connect LED bulb to arduino as follows Connect LED bulb to arduino as follows
<br/><br/> <br/><br/>
<a href="{{@unit.publicUri}}/images/schematicsGuide.png" target="_blank"> <a href="{{@unit.publicUri}}/images/schematicsGuide.png" target="_blank">
<img src="{{@unit.publicUri}}/images/schematicsGuide.png" class="img-responsive"> <img src="{{@unit.publicUri}}/images/schematicsGuide.png" class="img-responsive">
@ -210,20 +210,20 @@
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">03</span> <span class="circle">03</span>
&nbsp;&nbsp;&nbsp;Download Arduino-Sketch from [Download Sketch] link above. Download Arduino-Sketch from [Download Sketch] link above.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">04</span> <span class="circle">04</span>
&nbsp;&nbsp;&nbsp;Unzip the downloaded Arduino Agent Unzip the downloaded Arduino Agent
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">05</span> <span class="circle">05</span>
&nbsp;&nbsp;&nbsp;Create a folder called "ArduinoBoardSketch" and move all source files Create a folder called "ArduinoBoardSketch" and move all source files
inside inside
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">06</span> <span class="circle">06</span>
&nbsp;&nbsp;&nbsp;Open ArduinoBoardSketch.h and provide appropriate values for Open ArduinoBoardSketch.h and provide appropriate values for
<i>[WLAN_SSID]</i>, <i>[WLAN_SSID]</i>,
<i>[WLAN_PASS]</i>, <i>[WLAN_PASS]</i>,
<i>[SERVICE_PORT]</i>, <i>[SERVICE_PORT]</i>,
@ -233,22 +233,22 @@
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">07</span> <span class="circle">07</span>
&nbsp;&nbsp;&nbsp;Burn the sketch onto your Arduino board and let the program run. Burn the sketch onto your Arduino board and let the program run.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class="fw-stack fw-lg margin-right"> <span class="fw-stack fw-lg margin-right">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i> <i class="fw fw-right-arrow fw-stack-1x"></i>
</span> </span>
&nbsp;&nbsp;&nbsp;Arduino will publish it's internal temperature to WSO2-IoT-Server Arduino will publish it's internal temperature to WSO2-IoT-Server
<br/><br/> <br/><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class="fw-stack fw-lg margin-right"> <span class="fw-stack fw-lg margin-right">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i> <i class="fw fw-right-arrow fw-stack-1x"></i>
</span> </span>
&nbsp;&nbsp;&nbsp;LED on <i>PIN 13</i> can be controlled from Device Management page. LED on <i>PIN 13</i> can be controlled from Device Management page.
</li> </li>
</ul> </ul>
<br> <br>
@ -261,17 +261,17 @@
<ul class="list-unstyled"> <ul class="list-unstyled">
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">01</span> <span class="circle">01</span>
&nbsp;&nbsp;&nbsp;You can view all your connected devices at You can view all your connected devices at
<a href="{{@app.context}}/devices">[Device Management]</a> page. <a href="{{@app.context}}/devices">[Device Management]</a> page.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">02</span> <span class="circle">02</span>
&nbsp;&nbsp;&nbsp;Select one of connected devices and check for available control Select one of connected devices and check for available control
operations and monitor Real-Time data. operations and monitor Real-Time data.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">03</span> <span class="circle">03</span>
&nbsp;&nbsp;&nbsp;You can also view analytics of the data published to IoT-Server by You can also view analytics of the data published to IoT-Server by
navigating to Device Analytics page. navigating to Device Analytics page.
</li> </li>
</ul> </ul>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-plugins</artifactId> <artifactId>iot-plugins</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>carbon-device-mgt-plugins-parent</artifactId> <artifactId>carbon-device-mgt-plugins-parent</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

@ -21,7 +21,7 @@
<parent> <parent>
<artifactId>raspberrypi-plugin</artifactId> <artifactId>raspberrypi-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -21,7 +21,7 @@
<parent> <parent>
<artifactId>raspberrypi-plugin</artifactId> <artifactId>raspberrypi-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -7,7 +7,7 @@ import org.wso2.carbon.analytics.dataservice.commons.AnalyticsDataResponse;
import org.wso2.carbon.analytics.dataservice.commons.AnalyticsDrillDownRequest; import org.wso2.carbon.analytics.dataservice.commons.AnalyticsDrillDownRequest;
import org.wso2.carbon.analytics.dataservice.commons.SearchResultEntry; import org.wso2.carbon.analytics.dataservice.commons.SearchResultEntry;
import org.wso2.carbon.analytics.dataservice.commons.SortByField; import org.wso2.carbon.analytics.dataservice.commons.SortByField;
import org.wso2.carbon.analytics.dataservice.core.AnalyticsDataServiceUtils; import org.wso2.carbon.analytics.api.AnalyticsDataAPIUtil;
import org.wso2.carbon.analytics.datasource.commons.Record; import org.wso2.carbon.analytics.datasource.commons.Record;
import org.wso2.carbon.analytics.datasource.commons.exception.AnalyticsException; import org.wso2.carbon.analytics.datasource.commons.exception.AnalyticsException;
import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService; import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService;
@ -78,7 +78,7 @@ public class APIUtil {
sortByFields); sortByFields);
List<String> recordIds = getRecordIds(resultEntries); List<String> recordIds = getRecordIds(resultEntries);
AnalyticsDataResponse response = analyticsDataAPI.get(tenantId, tableName, 1, null, recordIds); AnalyticsDataResponse response = analyticsDataAPI.get(tenantId, tableName, 1, null, recordIds);
Map<String, SensorRecord> sensorDatas = createSensorData(AnalyticsDataServiceUtils.listRecords( Map<String, SensorRecord> sensorDatas = createSensorData(AnalyticsDataAPIUtil.listRecords(
analyticsDataAPI, response)); analyticsDataAPI, response));
List<SensorRecord> sortedSensorData = getSortedSensorData(sensorDatas, resultEntries); List<SensorRecord> sortedSensorData = getSortedSensorData(sensorDatas, resultEntries);
return sortedSensorData; return sortedSensorData;

@ -23,7 +23,7 @@
<parent> <parent>
<artifactId>raspberrypi-plugin</artifactId> <artifactId>raspberrypi-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -64,9 +64,9 @@
<div class="panel-body"> <div class="panel-body">
<div id="operations-spinner" class="wr-advance-operations-init hidden"> <div id="operations-spinner" class="wr-advance-operations-init hidden">
<br> <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i> <i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Operations Log . . . Loading Operations Log . . .
<br> <br>
<br> <br>

@ -62,7 +62,7 @@
</div> </div>
<div class="wr-input-control wr-btn-grp"> <div class="wr-input-control wr-btn-grp">
<button id="save-general-btn" class="wr-btn" onclick="addConfiguration();"> <button id="save-general-btn" class="wr-btn" onclick="addConfiguration();">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Save
</button> </button>
</div> </div>
</div> </div>

@ -40,28 +40,28 @@
<ul class="list-unstyled"> <ul class="list-unstyled">
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">ITEM 01</span> <span class="circle">ITEM 01</span>
&nbsp;&nbsp;&nbsp;Raspberry Pi with SD Card(Internet Enabled [Wifi or Ethernet]). Raspberry Pi with SD Card(Internet Enabled [Wifi or Ethernet]).
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">ITEM 02</span> <span class="circle">ITEM 02</span>
&nbsp;&nbsp;&nbsp;Adafruit DHT11 Temperature Sensor. Adafruit DHT11 Temperature Sensor.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">ITEM 03</span> <span class="circle">ITEM 03</span>
&nbsp;&nbsp;&nbsp;LED Bulb. LED Bulb.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">ITEM 04</span> <span class="circle">ITEM 04</span>
&nbsp;&nbsp;&nbsp;Resister (eg : 470 ohm). Resister (eg : 470 ohm).
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">STEP 05</span> <span class="circle">STEP 05</span>
&nbsp;&nbsp;&nbsp;Proceed to [Prepare] section. Proceed to [Prepare] section.
</ul> </ul>
<br> <br>
<a href="/api-store/apis/info?name={{@uriParams.deviceType}}&version=1.0.0&provider=admin" <a href="/api-store/apis/info?name={{@uriParams.deviceType}}&version=1.0.0&provider=admin"
class="btn-operations" class="btn-operations"
target="_blank"><i class="fw fw-api"></i> View API</i> &nbsp; target="_blank"><i class="fw fw-api"></i> View API</i>
</a> </a>
<a href="#" class="download-link btn-operations"> <a href="#" class="download-link btn-operations">
<i class="fw fw-download"></i>Download Agent <i class="fw fw-download"></i>Download Agent
@ -93,11 +93,11 @@
</div> </div>
<div class="buttons" style="padding-bottom: 0px"> <div class="buttons" style="padding-bottom: 0px">
<a class="btn btn-operations" onclick="downloadAgent()">Download Now</a> <a class="btn btn-operations" onclick="downloadAgent()">Download Now</a>
&nbsp;&nbsp;
<a href="#" id="download-device-download-link" <a href="#" id="download-device-download-link"
class="btn btn-operations"> Copy Link class="btn btn-operations"> Copy Link
</a> </a>
&nbsp;&nbsp;
</div> </div>
</form> </form>
</div> </div>
@ -135,7 +135,7 @@
<div class="buttons"> <div class="buttons">
<a href="#" id="device-401-link" class="blue-button"> <a href="#" id="device-401-link" class="blue-button">
Goto Login Page Goto Login Page
</a>&nbsp;&nbsp; </a>
<a href="#" onclick="hidePopup();" class="btn-operations"> <a href="#" onclick="hidePopup();" class="btn-operations">
Cancel Cancel
</a> </a>
@ -195,43 +195,43 @@
<ul class="list-unstyled"> <ul class="list-unstyled">
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">01</span> <span class="circle">01</span>
&nbsp;&nbsp;&nbsp;Connect RaspberryPi, DHT11 Temperature sensor and LED as per the Connect RaspberryPi, DHT11 Temperature sensor and LED as per the
schematic below. schematic below.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">02</span> <span class="circle">02</span>
&nbsp;&nbsp;&nbsp;Ensure your RaspberryPi Board can connect to Internet. Ensure your RaspberryPi Board can connect to Internet.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">03</span> <span class="circle">03</span>
&nbsp;&nbsp;&nbsp;Download RaspberryPi Agent via [Download Agent] button above. Download RaspberryPi Agent via [Download Agent] button above.
(Alternatively you can use the "curl" command to directly download the Agent to your (Alternatively you can use the "curl" command to directly download the Agent to your
RaspberryPi.) RaspberryPi.)
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">04</span> <span class="circle">04</span>
&nbsp;&nbsp;&nbsp;Copy downloaded Agent into your RaspberryPi. Copy downloaded Agent into your RaspberryPi.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">05</span> <span class="circle">05</span>
&nbsp;&nbsp;&nbsp;Unzip the downloaded Agent and start terminal to run below commands. Unzip the downloaded Agent and start terminal to run below commands.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class="fw-stack fw-lg margin-right"> <span class="fw-stack fw-lg margin-right">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i> <i class="fw fw-right-arrow fw-stack-1x"></i>
</span> </span>
&nbsp;&nbsp;&nbsp;[sudo ./testAgent.sh] &nbsp;&nbsp; - &nbsp;&nbsp; Script to test agent [sudo ./testAgent.sh] - Script to test agent
functionality. functionality.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class="fw-stack fw-lg margin-right"> <span class="fw-stack fw-lg margin-right">
<i class="fw fw-ring fw-stack-2x"></i> <i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i> <i class="fw fw-right-arrow fw-stack-1x"></i>
</span> </span>
&nbsp;&nbsp;&nbsp;[sudo ./startService.sh] &nbsp;&nbsp; - &nbsp;&nbsp; Use this to start [sudo ./startService.sh] - Use this to start
agent as Daemon. agent as Daemon.
</li> </li>
</ul> </ul>
@ -254,17 +254,17 @@
<ul class="list-unstyled"> <ul class="list-unstyled">
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">01</span> <span class="circle">01</span>
&nbsp;&nbsp;&nbsp;You can view all your connected devices at You can view all your connected devices at
<a href="{{@app.context}}/devices">[Device Management]</a> page. <a href="{{@app.context}}/devices">[Device Management]</a> page.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">02</span> <span class="circle">02</span>
&nbsp;&nbsp;&nbsp;Select one of connected devices and check for available control Select one of connected devices and check for available control
operations and monitor Real-Time data. operations and monitor Real-Time data.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">03</span> <span class="circle">03</span>
&nbsp;&nbsp;&nbsp;You can also view analytics of the data published to IoT-Server by You can also view analytics of the data published to IoT-Server by
navigating to Device Analytics page. navigating to Device Analytics page.
</li> </li>
</ul> </ul>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-plugins</artifactId> <artifactId>iot-plugins</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -23,7 +23,7 @@
<parent> <parent>
<artifactId>virtual-fire-alarm-plugin</artifactId> <artifactId>virtual-fire-alarm-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -23,7 +23,7 @@
<parent> <parent>
<artifactId>virtual-fire-alarm-plugin</artifactId> <artifactId>virtual-fire-alarm-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -21,7 +21,7 @@
<parent> <parent>
<artifactId>virtual-fire-alarm-plugin</artifactId> <artifactId>virtual-fire-alarm-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -3,11 +3,10 @@ package org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.util;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.analytics.api.AnalyticsDataAPI; import org.wso2.carbon.analytics.api.AnalyticsDataAPI;
import org.wso2.carbon.analytics.api.AnalyticsDataAPIUtil;
import org.wso2.carbon.analytics.dataservice.commons.AnalyticsDataResponse; import org.wso2.carbon.analytics.dataservice.commons.AnalyticsDataResponse;
import org.wso2.carbon.analytics.dataservice.commons.AnalyticsDrillDownRequest;
import org.wso2.carbon.analytics.dataservice.commons.SearchResultEntry; import org.wso2.carbon.analytics.dataservice.commons.SearchResultEntry;
import org.wso2.carbon.analytics.dataservice.commons.SortByField; import org.wso2.carbon.analytics.dataservice.commons.SortByField;
import org.wso2.carbon.analytics.dataservice.core.AnalyticsDataServiceUtils;
import org.wso2.carbon.analytics.datasource.commons.Record; import org.wso2.carbon.analytics.datasource.commons.Record;
import org.wso2.carbon.analytics.datasource.commons.exception.AnalyticsException; import org.wso2.carbon.analytics.datasource.commons.exception.AnalyticsException;
import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService; import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService;
@ -21,7 +20,6 @@ import org.wso2.carbon.event.output.adapter.core.OutputEventAdapterService;
import org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService; import org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -79,7 +77,7 @@ public class APIUtil {
sortByFields); sortByFields);
List<String> recordIds = getRecordIds(resultEntries); List<String> recordIds = getRecordIds(resultEntries);
AnalyticsDataResponse response = analyticsDataAPI.get(tenantId, tableName, 1, null, recordIds); AnalyticsDataResponse response = analyticsDataAPI.get(tenantId, tableName, 1, null, recordIds);
Map<String, SensorRecord> sensorDatas = createSensorData(AnalyticsDataServiceUtils.listRecords( Map<String, SensorRecord> sensorDatas = createSensorData(AnalyticsDataAPIUtil.listRecords(
analyticsDataAPI, response)); analyticsDataAPI, response));
List<SensorRecord> sortedSensorData = getSortedSensorData(sensorDatas, resultEntries); List<SensorRecord> sortedSensorData = getSortedSensorData(sensorDatas, resultEntries);
return sortedSensorData; return sortedSensorData;

@ -23,7 +23,7 @@
<parent> <parent>
<artifactId>virtual-fire-alarm-plugin</artifactId> <artifactId>virtual-fire-alarm-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -21,7 +21,7 @@
<parent> <parent>
<artifactId>virtual-fire-alarm-plugin</artifactId> <artifactId>virtual-fire-alarm-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -23,7 +23,7 @@
<parent> <parent>
<artifactId>virtual-fire-alarm-plugin</artifactId> <artifactId>virtual-fire-alarm-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -66,9 +66,9 @@
<div class="panel-body"> <div class="panel-body">
<div id="policy-spinner" class="wr-advance-operations-init hidden"> <div id="policy-spinner" class="wr-advance-operations-init hidden">
<br> <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i> <i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Policies . . . Loading Policies . . .
<br> <br>
<br> <br>
@ -95,9 +95,9 @@
<div class="panel-body"> <div class="panel-body">
<div id="operations-spinner" class="wr-advance-operations-init hidden"> <div id="operations-spinner" class="wr-advance-operations-init hidden">
<br> <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i> <i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Operations Log . . . Loading Operations Log . . .
<br> <br>
<br> <br>

@ -63,7 +63,7 @@
</div> </div>
<div class="wr-input-control wr-btn-grp"> <div class="wr-input-control wr-btn-grp">
<button id="save-general-btn-virtualfirealarm" class="wr-btn" onclick="addConfiguration();"> <button id="save-general-btn-virtualfirealarm" class="wr-btn" onclick="addConfiguration();">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Save
</button> </button>
</div> </div>
</div> </div>

@ -41,21 +41,21 @@
<ul class="list-unstyled"> <ul class="list-unstyled">
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">STEP 01</span> <span class="circle">STEP 01</span>
&nbsp;&nbsp;&nbsp;Go ahead and [Download] the Device. Go ahead and [Download] the Device.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">STEP 02</span> <span class="circle">STEP 02</span>
&nbsp;&nbsp;&nbsp;Proceed to [Prepare] section. Proceed to [Prepare] section.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">STEP 03</span> <span class="circle">STEP 03</span>
&nbsp;&nbsp;&nbsp;Read [Try Out] section to further experiment with the device. Read [Try Out] section to further experiment with the device.
</li> </li>
</ul> </ul>
<br> <br>
<a href="/api-store/apis/info?name={{@uriParams.deviceType}}&version=1.0.0&provider=admin" <a href="/api-store/apis/info?name={{@uriParams.deviceType}}&version=1.0.0&provider=admin"
class="btn-operations" class="btn-operations"
target="_blank"><i class="fw fw-api"></i> View API</i> &nbsp; target="_blank"><i class="fw fw-api"></i> View API</i>
</a> </a>
<a href="#" class="download-link btn-operations"> <a href="#" class="download-link btn-operations">
<i class="fw fw-download"></i>Download Agent</a> <i class="fw fw-download"></i>Download Agent</a>
@ -71,7 +71,7 @@
<i class="fw fw-add fw-stack-1x fw-inverse"></i> <i class="fw fw-add fw-stack-1x fw-inverse"></i>
</span> </span>
</span> </span>
&nbsp;&nbsp;Add your new firealarm device to {{@app.conf.appName}} Add your new firealarm device to {{@app.conf.appName}}
</h4> </h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="fw fw-cancel"></i>
</button> </button>
@ -99,7 +99,7 @@
<input type="radio" name="sketchType" value="virtual_firealarm" <input type="radio" name="sketchType" value="virtual_firealarm"
id="virtual_firealarm" id="virtual_firealarm"
checked> checked>
<label for="simple_agent">Simple Agent</label> &nbsp;&nbsp; <label for="simple_agent">Simple Agent</label>
<input type="radio" name="sketchType" <input type="radio" name="sketchType"
value="virtual_firealarm_advanced" value="virtual_firealarm_advanced"
id="virtual_firealarm_advanced"> id="virtual_firealarm_advanced">
@ -148,7 +148,7 @@
<div class="buttons"> <div class="buttons">
<a href="#" id="device-401-link" class="blue-button"> <a href="#" id="device-401-link" class="blue-button">
Goto Login Page Goto Login Page
</a>&nbsp;&nbsp; </a>
<a href="#" onclick="hidePopup();" class="btn-operations"> <a href="#" onclick="hidePopup();" class="btn-operations">
Cancel Cancel
</a> </a>
@ -209,19 +209,19 @@
<ul class="list-unstyled"> <ul class="list-unstyled">
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">01</span> <span class="circle">01</span>
&nbsp;&nbsp;&nbsp;Download your VirtualFireAlarm using [Download Agent] button above. Download your VirtualFireAlarm using [Download Agent] button above.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">02</span> <span class="circle">02</span>
&nbsp;&nbsp;&nbsp;Unzip the downloaded Agent. Unzip the downloaded Agent.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">03</span> <span class="circle">03</span>
&nbsp;&nbsp;&nbsp;Move into the unzipped Agent folder in the terminal. Move into the unzipped Agent folder in the terminal.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">04</span> <span class="circle">04</span>
&nbsp;&nbsp;&nbsp;Unzip the downloaded Agent and start terminal to run this command: [sh Unzip the downloaded Agent and start terminal to run this command: [sh
start-device.sh] start-device.sh]
</li> </li>
</ul> </ul>
@ -244,17 +244,17 @@
<ul class="list-unstyled"> <ul class="list-unstyled">
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">01</span> <span class="circle">01</span>
&nbsp;&nbsp;&nbsp;You can view all your connected devices at You can view all your connected devices at
<a href="{{@app.context}}/devices">[Device Management]</a> page. <a href="{{@app.context}}/devices">[Device Management]</a> page.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">02</span> <span class="circle">02</span>
&nbsp;&nbsp;&nbsp;Select one of connected devices and check for available control Select one of connected devices and check for available control
operations and monitor Real-Time data. operations and monitor Real-Time data.
</li> </li>
<li class="padding-top-double"> <li class="padding-top-double">
<span class="circle">03</span> <span class="circle">03</span>
&nbsp;&nbsp;&nbsp;You can also view analytics of the data published to IoT-Server by You can also view analytics of the data published to IoT-Server by
navigating to Device Analytics page. navigating to Device Analytics page.
</li> </li>
</ul> </ul>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-plugins</artifactId> <artifactId>iot-plugins</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -18,7 +18,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>appm-connector</artifactId> <artifactId>appm-connector</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -68,8 +68,8 @@ public class IOSApplicationOperationUtil {
appStoreApplication.setPreventBackupOfAppData((Boolean) application.getProperties(). appStoreApplication.setPreventBackupOfAppData((Boolean) application.getProperties().
get(MDMAppConstants.IOSConstants.IS_PREVENT_BACKUP)); get(MDMAppConstants.IOSConstants.IS_PREVENT_BACKUP));
appStoreApplication.setBundleId(application.getId()); appStoreApplication.setBundleId(application.getId());
appStoreApplication.setiTunesStoreID((Integer) application.getProperties(). appStoreApplication.setiTunesStoreID(Integer.parseInt((String)application.getProperties().
get(MDMAppConstants.IOSConstants.I_TUNES_ID)); get(MDMAppConstants.IOSConstants.I_TUNES_ID)));
operation.setCode(MDMAppConstants.IOSConstants.OPCODE_INSTALL_STORE_APPLICATION); operation.setCode(MDMAppConstants.IOSConstants.OPCODE_INSTALL_STORE_APPLICATION);
operation.setType(Operation.Type.COMMAND); operation.setType(Operation.Type.COMMAND);
operation.setPayLoad(appStoreApplication.toJSON()); operation.setPayLoad(appStoreApplication.toJSON());
@ -106,7 +106,7 @@ public class IOSApplicationOperationUtil {
operation.setCode(MDMAppConstants.IOSConstants.OPCODE_REMOVE_APPLICATION); operation.setCode(MDMAppConstants.IOSConstants.OPCODE_REMOVE_APPLICATION);
operation.setType(Operation.Type.PROFILE); operation.setType(Operation.Type.PROFILE);
RemoveApplication removeApplication = new RemoveApplication(); RemoveApplication removeApplication = new RemoveApplication();
removeApplication.setBundleId(application.getIdentifier()); removeApplication.setBundleId(application.getPackageName());
operation.setPayLoad(removeApplication.toJSON()); operation.setPayLoad(removeApplication.toJSON());
return operation; return operation;
} }

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>extensions</artifactId> <artifactId>extensions</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
@ -55,4 +55,5 @@
</plugins> </plugins>
</pluginManagement> </pluginManagement>
</build> </build>
</project> </project>

@ -20,7 +20,7 @@
<parent> <parent>
<artifactId>cdmf-adapters</artifactId> <artifactId>cdmf-adapters</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -20,7 +20,7 @@
<parent> <parent>
<artifactId>cdmf-adapters</artifactId> <artifactId>cdmf-adapters</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

@ -20,7 +20,7 @@
<parent> <parent>
<artifactId>cdmf-adapters</artifactId> <artifactId>cdmf-adapters</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -20,7 +20,7 @@
<parent> <parent>
<artifactId>cdmf-adapters</artifactId> <artifactId>cdmf-adapters</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -20,7 +20,7 @@
<parent> <parent>
<artifactId>cdmf-adapters</artifactId> <artifactId>cdmf-adapters</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>cdmf-adapters</artifactId> <artifactId>cdmf-adapters</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

@ -21,7 +21,7 @@
<parent> <parent>
<artifactId>cdmf-adapters</artifactId> <artifactId>cdmf-adapters</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

@ -360,7 +360,7 @@ public class UIEventAdapter implements OutputEventAdapter {
// fetch the queryString Key:Value pair map of the given session. // fetch the queryString Key:Value pair map of the given session.
Map<String, String> queryParamValuePairs = webSocketSessionUtil.getQueryParamValuePairs(); Map<String, String> queryParamValuePairs = webSocketSessionUtil.getQueryParamValuePairs();
if (queryParamValuePairs != null) { if (queryParamValuePairs != null && !queryParamValuePairs.isEmpty()) {
// fetch the different attribute values received as part of the current event. // fetch the different attribute values received as part of the current event.
Object[] eventMetaData = event.getMetaData(); Object[] eventMetaData = event.getMetaData();
Object[] eventCorrelationData = event.getCorrelationData(); Object[] eventCorrelationData = event.getCorrelationData();

@ -113,11 +113,9 @@ public class OAuthTokenValidaterStubFactory extends BasePoolableObjectFactory {
client.setOptions(options); client.setOptions(options);
if (hostURL.getProtocol().equals("https")) { if (hostURL.getProtocol().equals("https")) {
// set up ssl factory since axis2 https transport is used. // set up ssl factory since axis2 https transport is used.
EasySSLProtocolSocketFactory sslProtocolSocketFactory = EasySSLProtocolSocketFactory sslProtocolSocketFactory = createProtocolSocketFactory();
createProtocolSocketFactory(); Protocol authhttps = new Protocol(hostURL.getProtocol()
Protocol authhttps = new Protocol(hostURL.getProtocol(), , (ProtocolSocketFactory) sslProtocolSocketFactory, hostURL.getPort());
(ProtocolSocketFactory) sslProtocolSocketFactory,
hostURL.getPort());
Protocol.registerProtocol(hostURL.getProtocol(), authhttps); Protocol.registerProtocol(hostURL.getProtocol(), authhttps);
options.setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER, authhttps); options.setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER, authhttps);
} }

@ -1,17 +1,17 @@
/* /*
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
* *
* WSO2 Inc. licenses this file to you under the Apache License, * WSO2 Inc. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except * Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. * in compliance with the License.
* you may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, * Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an * software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the * KIND, either express or implied. See the License for the
* specific language governing permissions and limitations * specific language governing permissions and limitations
* under the License. * under the License.
*/ */
@ -35,7 +35,7 @@ public class WebSocketSessionRequest {
private static final String QUERY_STRING_SEPERATOR = "&"; private static final String QUERY_STRING_SEPERATOR = "&";
private static final String QUERY_KEY_VALUE_SEPERATOR = "="; private static final String QUERY_KEY_VALUE_SEPERATOR = "=";
private Map<String, String> queryParamValuePairs = null; private Map<String, String> queryParamValuePairs = new HashMap<>();
private Session session; private Session session;
public WebSocketSessionRequest(Session session) { public WebSocketSessionRequest(Session session) {
@ -65,9 +65,6 @@ public class WebSocketSessionRequest {
log.warn("Invalid query string [" + queryString + "] passed in."); log.warn("Invalid query string [" + queryString + "] passed in.");
break; break;
} }
if (queryParamValuePairs == null) {
queryParamValuePairs = new HashMap<>();
}
queryParamValuePairs.put(thisQueryParamPair[0], thisQueryParamPair[1]); queryParamValuePairs.put(thisQueryParamPair[0], thisQueryParamPair[1]);
} }
} }

@ -20,7 +20,7 @@
<parent> <parent>
<artifactId>cdmf-adapters</artifactId> <artifactId>cdmf-adapters</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>extensions</artifactId> <artifactId>extensions</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>carbon-device-mgt-plugins-parent</artifactId> <artifactId>carbon-device-mgt-plugins-parent</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

@ -21,7 +21,7 @@
<parent> <parent>
<artifactId>android-plugin</artifactId> <artifactId>android-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -36,7 +36,7 @@ import java.util.List;
@XmlAccessorType(XmlAccessType.NONE) @XmlAccessorType(XmlAccessType.NONE)
@ApiModel( @ApiModel(
value = "PlatformConfiguration", value = "PlatformConfiguration",
description = "This class carries all information related to a Tenant configuration" description = "This class carries all the information related to Android platform configurations."
) )
public class AndroidPlatformConfiguration implements Serializable { public class AndroidPlatformConfiguration implements Serializable {
public static final int INVALID_NOTIFIER_FREQUENCY = -1; public static final int INVALID_NOTIFIER_FREQUENCY = -1;

@ -39,7 +39,7 @@ import java.util.List;
tags = {"devicemgt_android"}) tags = {"devicemgt_android"})
@Api(value = "Android Device Management", @Api(value = "Android Device Management",
description = "This carries all the resources related to Android device management functionalities") description = "This carries all the resources related to the Android device management functionalities.")
@Path("/devices") @Path("/devices")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON)
@ -51,13 +51,14 @@ public interface DeviceManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
httpMethod = "PUT", httpMethod = "PUT",
value = "Update the application list of a device", value = "Updating the Application Details on Android Devices",
notes = "Update the details of the applications that are installed on Android devices.",
tags = "Android Device Management" tags = "Android Device Management"
) )
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse( @ApiResponse(
code = 200, code = 200,
message = "OK. \n Application list has been updated successfully", message = "OK. \n Successfully updated the application details.",
responseHeaders = { responseHeaders = {
@ResponseHeader( @ResponseHeader(
name = "Content-Location", name = "Content-Location",
@ -71,17 +72,17 @@ public interface DeviceManagementService {
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests.")}), "Used by caches, or in conditional requests.")}),
@ApiResponse( @ApiResponse(
code = 400, code = 400,
message = "Bad Request. \n Invalid request or validation error."), message = "Bad Request. \n Invalid request or validation error."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Not Found. \n Resource to be deleted does not exist."), message = "Not Found. \n The specified resource does not exist."),
@ApiResponse( @ApiResponse(
code = 415, code = 415,
message = "Unsupported media type. \n The entity of the request was in a not supported format."), message = "Unsupported media type. \n The format of the requested entity was not supported."),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n " + message = "Internal Server Error. \n " +
@ -91,14 +92,14 @@ public interface DeviceManagementService {
Response updateApplicationList( Response updateApplicationList(
@ApiParam( @ApiParam(
name = "id", name = "id",
value = "Device Identifier") value = "The unique device identifier.")
@NotNull @NotNull
@Size(min = 2 , max = 45) @Size(min = 2 , max = 45)
@Pattern(regexp = "^[A-Za-z0-9]*$") @Pattern(regexp = "^[A-Za-z0-9]*$")
@PathParam("id") String id, @PathParam("id") String id,
@ApiParam( @ApiParam(
name = "applications", name = "applications",
value = "List of applications that need to be persisted against the device") value = "The properties to update application details. Multiple applications can be updated using comma separated values.")
List<AndroidApplication> androidApplications); List<AndroidApplication> androidApplications);
@PUT @PUT
@ -106,16 +107,18 @@ public interface DeviceManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "PUT", httpMethod = "PUT",
value = "Get the operation list pending for the device", value = "Getting the Pending Operation List",
responseContainer = "List", responseContainer = "List",
notes = "The Android agent communicates with the server to get the operations that are queued up " + notes = "The Android agent communicates with the server to get the operations that are queued up " +
"at the server end for a given device using via this particular resource", "at the server end via this REST API." +
" While getting the pending operations the details of the operations executed at the device end is shared with the server. " +
"The server then updates the status of the operations that were carried out on the device.",
response = Operation.class, response = Operation.class,
tags = "Android Device Management") tags = "Android Device Management")
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse( @ApiResponse(
code = 200, code = 200,
message = "OK. \n Successfully fetched the pending application list of the Android device.", message = "OK. \n Successfully fetched the pending operations of the Android device.",
response = Operation.class, response = Operation.class,
responseContainer = "List", responseContainer = "List",
responseHeaders = { responseHeaders = {
@ -128,33 +131,36 @@ public interface DeviceManagementService {
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests.") "Used by caches, or in conditional requests.")
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."), message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource."),
@ApiResponse( @ApiResponse(
code = 406, code = 406,
message = "Not Acceptable.\n The requested media type is not supported"), message = "Not Acceptable.\n The requested media type is not supported"),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n Server error occurred while fetching policies.") message = "Internal Server Error. \n Server error occurred while fetching the list of pending operations.")
}) })
@Permission(name = "Enroll Device", permission = "/device-mgt/devices/enroll/android") @Permission(name = "Enroll Device", permission = "/device-mgt/devices/enroll/android")
Response getPendingOperations( Response getPendingOperations(
@ApiParam( @ApiParam(
name = "id", name = "id",
value = "Device Identifier") value = "The unique device identifier.",
required = true)
@PathParam("id") String id, @PathParam("id") String id,
@ApiParam( @ApiParam(
name = "If-Modified-Since", name = "If-Modified-Since",
value = "Validates if the requested variant has not been modified since the time specified", value = "Checks if the requested variant was modified, since the specified date-time.\n" +
"Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z.\n" +
"Example: Mon, 05 Jan 2014 15:10:00 +0200.",
required = false) required = false)
@HeaderParam("If-Modified-Since") String ifModifiedSince, @HeaderParam("If-Modified-Since") String ifModifiedSince,
@ApiParam( @ApiParam(
name = "resultOperations", name = "resultOperations",
value = "Device Operation Status") value = "Properties to update the device operations and their status.")
List<? extends Operation> resultOperations); List<? extends Operation> resultOperations);
@POST @POST
@ -162,17 +168,17 @@ public interface DeviceManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
httpMethod = "POST", httpMethod = "POST",
value = "Register an Android Device", value = "Registering an Android Device",
notes = "When carrying out device registration via an Android device, you need to initially install" + notes = "When registering an Android device, you need to install" +
" an Android Agent on the device, before being able to register the device with WSO2 EMM. Instead," + " the Android Agent on the device, before being able to register the device with WSO2 EMM. Instead," +
" you can use this REST API to register an Android device with WSO2 EMM, without having to install" + " you can use this REST API to register an Android device with WSO2 EMM, without having to install" +
" an Android Agent on the respective device", " an Android Agent. This API can be mainly used to test the device enrollment process.",
tags = "Android Device Management" tags = "Android Device Management"
) )
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse( @ApiResponse(
code = 201, code = 201,
message = "Created. \n Device enrollment has successfully been created", message = "Created. \n Successfully created an instance of the device.",
responseHeaders = { responseHeaders = {
@ResponseHeader( @ResponseHeader(
name = "Content-Location", name = "Content-Location",
@ -186,11 +192,11 @@ public interface DeviceManagementService {
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests.")}), "Used by caches, or in conditional requests.")}),
@ApiResponse( @ApiResponse(
code = 303, code = 303,
message = "See Other. \n Source can be retrieved from the URL specified at the Location header.", message = "See Other. \n The source can be retrieved from the URL specified in the location header.",
responseHeaders = { responseHeaders = {
@ResponseHeader( @ResponseHeader(
name = "Content-Location", name = "Content-Location",
@ -200,14 +206,16 @@ public interface DeviceManagementService {
message = "Bad Request. \n Invalid request or validation error."), message = "Bad Request. \n Invalid request or validation error."),
@ApiResponse( @ApiResponse(
code = 415, code = 415,
message = "Unsupported media type. \n The entity of the request was in a not supported format."), message = "Unsupported media type. \n The format of the requested entity was not supported.\n"),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n " + message = "Internal Server Error. \n " +
"Server error occurred while adding a new device.") "Server error occurred while adding a new device.")
}) })
@Permission(name = "Enroll Device", permission = "/device-mgt/devices/enroll/android") @Permission(name = "Enroll Device", permission = "/device-mgt/devices/enroll/android")
Response enrollDevice(@ApiParam(name = "device", value = "Device Information to be enroll") Response enrollDevice(@ApiParam(
name = "device",
value = "The properties required to enroll a device.")
@Valid AndroidDevice device); @Valid AndroidDevice device);
@GET @GET
@ -215,7 +223,7 @@ public interface DeviceManagementService {
@ApiOperation( @ApiOperation(
httpMethod = "GET", httpMethod = "GET",
value = "Getting the Registration Status of an Android Device", value = "Getting the Registration Status of an Android Device",
notes = "Use this REST API to retrieve the registration status of an Android device", notes = "Use this REST API to retrieve the registration status of an Android device.",
tags = "Android Device Management" tags = "Android Device Management"
) )
@ApiResponses(value = { @ApiResponses(value = {
@ -232,12 +240,12 @@ public interface DeviceManagementService {
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."), message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource."),
@ApiResponse( @ApiResponse(
code = 406, code = 406,
message = "Not Acceptable.\n The requested media type is not supported"), message = "Not Acceptable.\n The requested media type is not supported"),
@ -249,11 +257,13 @@ public interface DeviceManagementService {
Response isEnrolled( Response isEnrolled(
@ApiParam( @ApiParam(
name = "id", name = "id",
value = "Device Identifier") value = "The unique device identifier")
@PathParam("id") String id, @PathParam("id") String id,
@ApiParam( @ApiParam(
name = "If-Modified-Since", name = "If-Modified-Since",
value = "Validates if the requested variant has not been modified since the time specified", value = "Checks if the requested variant was modified, since the specified date-time.\n" +
"Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z.\n" +
"Example: Mon, 05 Jan 2014 15:10:00 +0200",
required = false) required = false)
@HeaderParam("If-Modified-Since") String ifModifiedSince); @HeaderParam("If-Modified-Since") String ifModifiedSince);
@ -262,14 +272,14 @@ public interface DeviceManagementService {
@ApiOperation( @ApiOperation(
httpMethod = "PUT", httpMethod = "PUT",
value = "Updating the Registration Details of an Android Device", value = "Updating the Registration Details of an Android Device",
notes = "Use this REST API to update the registration details of an Android device", notes = "Use this REST API to update the registration details of an Android device.",
tags = "Android Device Management" tags = "Android Device Management"
) )
@ApiResponses( @ApiResponses(
value = { value = {
@ApiResponse( @ApiResponse(
code = 200, code = 200,
message = "OK. \n Device enrollment has been updated successfully", message = "OK. \n Successfully updated the device enrollment details.",
responseHeaders = { responseHeaders = {
@ResponseHeader( @ResponseHeader(
name = "Content-Location", name = "Content-Location",
@ -283,17 +293,17 @@ public interface DeviceManagementService {
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests.")}), "Used by caches, or in conditional requests.")}),
@ApiResponse( @ApiResponse(
code = 400, code = 400,
message = "Bad Request. \n Invalid request or validation error."), message = "Bad Request. \n Invalid request or validation error."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Not Found. \n Resource to be deleted does not exist."), message = "Not Found. \n The specified resource does not exist."),
@ApiResponse( @ApiResponse(
code = 415, code = 415,
message = "Unsupported media type. \n The entity of the request was in a not supported format."), message = "Unsupported media type. \n The format of the requested entity was not supported."),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n " + message = "Internal Server Error. \n " +
@ -303,27 +313,27 @@ public interface DeviceManagementService {
Response modifyEnrollment( Response modifyEnrollment(
@ApiParam( @ApiParam(
name = "id", name = "id",
value = "Device Identifier") value = "The unique device identifier.")
@PathParam("id") String id, @PathParam("id") String id,
@ApiParam( @ApiParam(
name = "device", name = "device",
value = "Device information to be modify") @Valid AndroidDevice androidDevice); value = "The properties of required to update device enrollment details.") @Valid AndroidDevice androidDevice);
@DELETE @DELETE
@Path("/{id}") @Path("/{id}")
@ApiOperation( @ApiOperation(
httpMethod = "DELETE", httpMethod = "DELETE",
value = "Un-register an Android Device", value = "Unregistering an Android Device",
notes = "Use this REST API to un-register a specific Android device", notes = "Use this REST API to unregister an Android device.",
tags = "Android Device Management" tags = "Android Device Management"
) )
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse( @ApiResponse(
code = 200, code = 200,
message = "OK. \n Device has successfully been dis-enrolled"), message = "OK. \n Successfully disenrolled the device."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Not Found. \n Resource to be deleted does not exist."), message = "Not Found. \n The specified resource does not exist."),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n " + message = "Internal Server Error. \n " +
@ -333,7 +343,7 @@ public interface DeviceManagementService {
Response disEnrollDevice( Response disEnrollDevice(
@ApiParam( @ApiParam(
name = "id", name = "id",
value = "Device Identifier") value = "The unique device identifier.")
@PathParam("id") String id); @PathParam("id") String id);
} }

@ -34,8 +34,7 @@ import javax.ws.rs.core.Response;
context = "/api/device-mgt/android/v1.0/configuration", context = "/api/device-mgt/android/v1.0/configuration",
tags = {"devicemgt_android"}) tags = {"devicemgt_android"})
@Api(value = "Android Configuration Management", description = "This API carries all resource associated with " + @Api(value = "Android Configuration Management", description = "This API carries all the resource used to mange the Android platform configurations.")
"manipulating the general configurations of Android platform")
@Path("/configuration") @Path("/configuration")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON)
@ -46,14 +45,14 @@ public interface DeviceTypeConfigurationService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Getting Android Platform Configurations", value = "Getting Android Platform Configurations",
notes = "Get the Android platform configuration details using this REST API", notes = "Get the Android platform configuration details using this REST API.",
response = PlatformConfiguration.class, response = PlatformConfiguration.class,
tags = "Android Configuration Management" tags = "Android Configuration Management"
) )
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse( @ApiResponse(
code = 200, code = 200,
message = "OK. \n Successfully fetched Android platform configuration.", message = "OK. \n Successfully fetched the Android platform configurations.",
response = PlatformConfiguration.class, response = PlatformConfiguration.class,
responseHeaders = { responseHeaders = {
@ResponseHeader( @ResponseHeader(
@ -65,27 +64,29 @@ public interface DeviceTypeConfigurationService {
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."), message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Not Found. \n Resource to be deleted does not exist."), message = "Not Found. \n The specified resource does not exist."),
@ApiResponse( @ApiResponse(
code = 406, code = 406,
message = "Not Acceptable.\n The requested media type is not supported"), message = "Not Acceptable.\n The requested media type is not supported"),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n Server error occurred while fetching Android platform configuration.") message = "Internal Server Error. \n Server error occurred while fetching the Android platform configuration.")
}) })
@Permission(name = "View Configurations", permission = "/device-mgt/platform-configurations/view") @Permission(name = "View Configurations", permission = "/device-mgt/platform-configurations/view")
Response getConfiguration( Response getConfiguration(
@ApiParam( @ApiParam(
name = "If-Modified-Since", name = "If-Modified-Since",
value = "Validates if the requested variant has not been modified since the time specified", value = "Checks if the requested variant was modified, since the specified date-time.\n" +
"Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z.\n" +
"Example: Mon, 05 Jan 2014 15:10:00 +0200",
required = false) required = false)
@HeaderParam("If-Modified-Since") String ifModifiedSince); @HeaderParam("If-Modified-Since") String ifModifiedSince);
@ -94,14 +95,14 @@ public interface DeviceTypeConfigurationService {
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "PUT", httpMethod = "PUT",
value = "Updating Android Platform Configuration.", value = "Updating Android Platform Configurations",
notes = "Update the Android platform configurations using this REST API.", notes = "Update the Android platform configurations using this REST API.",
tags = "Android Configuration Management" tags = "Android Configuration Management"
) )
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse( @ApiResponse(
code = 200, code = 200,
message = "OK. \n Android platform configuration has been updated successfully", message = "OK. \n Successfully updated the Android platform configurations.",
responseHeaders = { responseHeaders = {
@ResponseHeader( @ResponseHeader(
name = "Content-Location", name = "Content-Location",
@ -115,26 +116,26 @@ public interface DeviceTypeConfigurationService {
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests.")}), "Used by caches, or in conditional requests.")}),
@ApiResponse( @ApiResponse(
code = 400, code = 400,
message = "Bad Request. \n Invalid request or validation error."), message = "Bad Request. \n Invalid request or validation error."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Not Found. \n Resource to be deleted does not exist."), message = "Not Found. \n The specified resource does not exist."),
@ApiResponse( @ApiResponse(
code = 415, code = 415,
message = "Unsupported media type. \n The entity of the request was in a not supported format."), message = "Unsupported media type. \n The format of the requested entity was not supported."),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n " + message = "Internal Server Error. \n " +
"Server error occurred while modifying Android platform configuration.") "Server error occurred while modifying the Android platform configuration.")
}) })
@Permission(name = "Manage Configurations", permission = "/device-mgt/platform-configurations/manage") @Permission(name = "Manage Configurations", permission = "/device-mgt/platform-configurations/manage")
Response updateConfiguration( Response updateConfiguration(
@ApiParam(name = "configuration", @ApiParam(name = "configuration",
value = "AndroidPlatformConfiguration") value = "The properties to update the Android platform configurations.")
@Valid AndroidPlatformConfiguration androidPlatformConfiguration); @Valid AndroidPlatformConfiguration androidPlatformConfiguration);
@GET @GET
@ -143,9 +144,9 @@ public interface DeviceTypeConfigurationService {
@ApiOperation( @ApiOperation(
produces = MediaType.TEXT_PLAIN, produces = MediaType.TEXT_PLAIN,
httpMethod = "GET", httpMethod = "GET",
value = "Getting the License Agreement for Android Device Registration", value = "Getting the License Agreement for the Android Device Registration",
notes = "Use this REST API to retrieve the license agreement that is used for the Android device " + notes = "Use this REST API to retrieve the license agreement that is used for the Android device " +
"registration process", "registration process.",
response = String.class, response = String.class,
tags = "Android Configuration Management") tags = "Android Configuration Management")
@ApiResponses(value = { @ApiResponses(value = {
@ -163,27 +164,29 @@ public interface DeviceTypeConfigurationService {
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."), message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Not Found. \n Resource to be deleted does not exist."), message = "Not Found. \n The specified resource does not exist."),
@ApiResponse( @ApiResponse(
code = 406, code = 406,
message = "Not Acceptable.\n The requested media type is not supported"), message = "Not Acceptable.\n The requested media type is not supported"),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n Server error occurred while fetching Android license configuration.") message = "Internal Server Error. \n Server error occurred while fetching the Android license configuration.")
}) })
@Permission(name = "Enroll Device", permission = "/device-mgt/devices/enroll/android") @Permission(name = "Enroll Device", permission = "/device-mgt/devices/enroll/android")
Response getLicense( Response getLicense(
@ApiParam( @ApiParam(
name = "If-Modified-Since", name = "If-Modified-Since",
value = "Validates if the requested variant has not been modified since the time specified", value = "Checks if the requested variant was modified, since the specified date-time.\n" +
"Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z.\n" +
"Example: Mon, 05 Jan 2014 15:10:00 +0200.",
required = false) required = false)
@HeaderParam("If-Modified-Since") String ifModifiedSince) throws AndroidAgentException; @HeaderParam("If-Modified-Since") String ifModifiedSince) throws AndroidAgentException;

@ -35,9 +35,9 @@ import javax.ws.rs.core.Response;
context = "/api/device-mgt/android/v1.0/events", context = "/api/device-mgt/android/v1.0/events",
tags = {"devicemgt_android"}) tags = {"devicemgt_android"})
@Api(value = "Event Receiver", description = "Event publishing/retrieving related APIs.To enable Eventing need to" + @Api(value = "Event Receiver", description = "Event publishing/retrieving related APIs. To enable event publishing/retrieving you need to" +
" configure as ref-https://docs.wso2.com/display/EMM210/Managing+Event+Publishing+with+WSO2+Data+Analytics+Server, " + " configure WSO2 EMM as explained in https://docs.wso2.com/display/EMM220/Managing+Event+Publishing+with+WSO2+Data+Analytics+Server, " +
"https://docs.wso2.com/display/EMM210/Creating+a+New+Event+Stream+and+Receiver") "https://docs.wso2.com/display/EMM220/Creating+a+New+Event+Stream+and+Receiver")
@Path("/events") @Path("/events")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON)
@ -49,13 +49,13 @@ public interface EventReceiverService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
httpMethod = "POST", httpMethod = "POST",
value = "Event publishing via REST API.", value = "Publishing Events",
notes = "Publish events received by the EMM Android client to WSO2 DAS using this API.", notes = "Publish events received by the WSO2 EMM Android client to the WSO2 Data Analytics Server (DAS) using this API.",
tags = "Event Receiver" tags = "Event Receiver"
) )
@ApiResponses( @ApiResponses(
value = { value = {
@ApiResponse(code = 201, message = "Created. \n Event is published successfully. Location header " + @ApiResponse(code = 201, message = "Created. \n Successfully published the event. Location header " +
"contains URL of newly enrolled device", "contains URL of newly enrolled device",
responseHeaders = { responseHeaders = {
@ResponseHeader( @ResponseHeader(
@ -70,12 +70,12 @@ public interface EventReceiverService {
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests.") "Used by caches, or in conditional requests.")
}), }),
@ApiResponse( @ApiResponse(
code = 303, code = 303,
message = "See Other. \n Source can be retrieved from the URL specified at the Location header.", message = "See Other. \n The source can be retrieved from the URL specified in the location header.",
responseHeaders = { responseHeaders = {
@ResponseHeader( @ResponseHeader(
name = "Content-Location", name = "Content-Location",
@ -85,7 +85,7 @@ public interface EventReceiverService {
message = "Bad Request. \n Invalid request or validation error."), message = "Bad Request. \n Invalid request or validation error."),
@ApiResponse( @ApiResponse(
code = 415, code = 415,
message = "Unsupported media type. \n The entity of the request was in a not supported format."), message = "Unsupported media type. \n The format of the requested entity was not supported."),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n " + message = "Internal Server Error. \n " +
@ -104,10 +104,10 @@ public interface EventReceiverService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Getting event details for a given time period.", value = "Getting event details for a given time period.",
notes = "Get the event details of a device for a given time duration using this API.Request must contain " + notes = "Get the event details of a device for a given time duration using this API. The request must contain " +
"the device identifier. Optionally, both, date from and date to value should be present to get " + "the device identifier. Optionally, both date from and date to value should be present to get " +
"alerts between times. Based on device type and the device identifier also filtering can be done" + "alerts between a specified time. Filtering can also be done based on the device type and the device identifier." +
"(This cannot be combined with to and from parameters).", "(This cannot be combined with the to and from parameters).",
response = DeviceState.class, response = DeviceState.class,
responseContainer = "List", responseContainer = "List",
tags = "Event Receiver" tags = "Event Receiver"
@ -116,12 +116,11 @@ public interface EventReceiverService {
value = { value = {
@ApiResponse( @ApiResponse(
code = 200, code = 200,
message = "OK. \n Event details of a device for a given time duration have been successfully fetched", message = "OK. \n Successfully fetched the event details of the specified device for a given time duration.",
response = DeviceState.class, responseContainer = "List"), response = DeviceState.class, responseContainer = "List"),
@ApiResponse( @ApiResponse(
code = 303, code = 303,
message = "See Other. \n Source can be retrieved from the URL specified at" + message = "See Other. \n The source can be retrieved from the URL specified in the location header.",
" the Location header.",
responseHeaders = { responseHeaders = {
@ResponseHeader(name = "Content-Location", description = "Source URL of the document.") @ResponseHeader(name = "Content-Location", description = "Source URL of the document.")
}), }),
@ -132,39 +131,44 @@ public interface EventReceiverService {
@ApiResponse( @ApiResponse(
code = 400, code = 400,
message = "Bad Request. \n Invalid request or validation error. You must provide" + message = "Bad Request. \n Invalid request or validation error. You must provide" +
" the device identifier. Additionally, the device identifier can be combined with either the type" + " the device identifier. Additionally, the device identifier can be combined with either the device type" +
" OR date from and to."), " OR the from and to date."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Not Found. \n Resource requested does not exist."), message = "Not Found. \n The specified resource does not exist."),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Error occurred while getting published events for specific device.") message = "Error occurred while getting the published events for the specified device.")
}) })
@Permission(name = "Publish Events to DAS", permission = "/device-mgt/devices/enroll/android") @Permission(name = "Publish Events to DAS", permission = "/device-mgt/devices/enroll/android")
Response retrieveAlerts( Response retrieveAlerts(
@ApiParam( @ApiParam(
name = "id", name = "id",
value = "Device Identifier to be need to retrieve events.", value = "The unique device identifier.",
required = true) required = true)
@Size(min = 2, max = 45) @Size(min = 2, max = 45)
@QueryParam("id") String deviceId, @QueryParam("id") String deviceId,
@ApiParam( @ApiParam(
name = "from", name = "from",
value = "From Date.") value = "Specify the time and date from when you want to get the data." +
"Provide the time and date format in the unix/epoch format as the value for {unixTimestamp}. Use a Epoch convertor, to convert the time and date to this format.")
@QueryParam("from") long from, @QueryParam("from") long from,
@ApiParam( @ApiParam(
name = "to", name = "to",
value = "To Date.") value = "Specify the time and date up to when you require the data." +
"Provide the time and date format in the unix/epoch format as the value for {unixTimestamp}. Use a Epoch convertor, to convert the time and date to this format.")
@QueryParam("to") long to, @QueryParam("to") long to,
@ApiParam( @ApiParam(
name = "type", name = "type",
value = "Type of the Alert to be need to retrieve events.") value = "The alert type to retrieve the events." +
"Provide APPLICATION_STATE or RUNTIME_STATE as the value.")
@Size(min = 2, max = 45) @Size(min = 2, max = 45)
@QueryParam("type") String type, @QueryParam("type") String type,
@ApiParam( @ApiParam(
name = "If-Modified-Since", name = "If-Modified-Since",
value = "Validates if the requested variant has not been modified since the time specified", value = "Checks if the requested variant was modified, since the specified date-time.\n" +
"Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z.\n" +
"Example: Mon, 05 Jan 2014 15:10:00 +0200",
required = false) required = false)
@HeaderParam("If-Modified-Since") String ifModifiedSince); @HeaderParam("If-Modified-Since") String ifModifiedSince);

@ -1072,7 +1072,7 @@ public class DeviceManagementAdminServiceImpl implements DeviceManagementAdminSe
private static void validateScheduleDate(String dateString){ private static void validateScheduleDate(String dateString){
try { try {
if (dateString != null) { if (dateString != null && !dateString.isEmpty()) {
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT); SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
sdf.setLenient(false); sdf.setLenient(false);
sdf.parse(dateString); sdf.parse(dateString);

@ -24,7 +24,7 @@ import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.analytics.api.AnalyticsDataAPI; import org.wso2.carbon.analytics.api.AnalyticsDataAPI;
import org.wso2.carbon.analytics.dataservice.commons.AnalyticsDataResponse; import org.wso2.carbon.analytics.dataservice.commons.AnalyticsDataResponse;
import org.wso2.carbon.analytics.dataservice.commons.SearchResultEntry; import org.wso2.carbon.analytics.dataservice.commons.SearchResultEntry;
import org.wso2.carbon.analytics.dataservice.core.AnalyticsDataServiceUtils; import org.wso2.carbon.analytics.api.AnalyticsDataAPIUtil;
import org.wso2.carbon.analytics.datasource.commons.Record; import org.wso2.carbon.analytics.datasource.commons.Record;
import org.wso2.carbon.analytics.datasource.commons.exception.AnalyticsException; import org.wso2.carbon.analytics.datasource.commons.exception.AnalyticsException;
import org.wso2.carbon.context.CarbonContext; import org.wso2.carbon.context.CarbonContext;
@ -218,7 +218,7 @@ public class AndroidAPIUtils {
List<SearchResultEntry> resultEntries = analyticsDataAPI.search(tenantId, tableName, query, 0, eventCount); List<SearchResultEntry> resultEntries = analyticsDataAPI.search(tenantId, tableName, query, 0, eventCount);
List<String> recordIds = getRecordIds(resultEntries); List<String> recordIds = getRecordIds(resultEntries);
AnalyticsDataResponse response = analyticsDataAPI.get(tenantId, tableName, 1, null, recordIds); AnalyticsDataResponse response = analyticsDataAPI.get(tenantId, tableName, 1, null, recordIds);
Map<String, DeviceState> deviceStateses = createDeviceStatusData(AnalyticsDataServiceUtils.listRecords( Map<String, DeviceState> deviceStateses = createDeviceStatusData(AnalyticsDataAPIUtil.listRecords(
analyticsDataAPI, response)); analyticsDataAPI, response));
return getSortedDeviceStateData(deviceStateses, resultEntries); return getSortedDeviceStateData(deviceStateses, resultEntries);
} }

@ -51,7 +51,7 @@
<property name="version" value="1.0"/> <property name="version" value="1.0"/>
<property name="host" value="localhost:9443"/> <property name="host" value="localhost:9443"/>
<property name="schemes" value="https" /> <property name="schemes" value="https" />
<property name="basePath" value="/api-device-mgt-android-v1.0"/> <property name="basePath" value="/api/device-mgt/android/v1.0"/>
<property name="title" value="Android Device Management API Definitions"/> <property name="title" value="Android Device Management API Definitions"/>
<property name="contact" value="dev@wso2.org"/> <property name="contact" value="dev@wso2.org"/>
<property name="license" value="Apache 2.0"/> <property name="license" value="Apache 2.0"/>

@ -23,13 +23,13 @@
<parent> <parent>
<artifactId>android-plugin</artifactId> <artifactId>android-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.mobile.android.ui</artifactId> <artifactId>org.wso2.carbon.device.mgt.mobile.android.ui</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<name>WSO2 Carbon - Mobile Android UI</name> <name>WSO2 Carbon - Mobile Android UI</name>
<packaging>pom</packaging> <packaging>pom</packaging>

@ -55,9 +55,9 @@
<div class="panel-body"> <div class="panel-body">
<div id="policy-spinner" class="wr-advance-operations-init hidden"> <div id="policy-spinner" class="wr-advance-operations-init hidden">
<br> <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i> <i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Policies . . . Loading Policies . . .
<br> <br>
<br> <br>
@ -85,9 +85,9 @@
<div id="policy-spinner" <div id="policy-spinner"
class="wr-advance-operations-init hidden"> class="wr-advance-operations-init hidden">
<br> <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i> <i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Policy Compliance . . . Loading Policy Compliance . . .
<br> <br>
<br> <br>
@ -123,9 +123,9 @@
<div class="panel-body"> <div class="panel-body">
<div id="apps-spinner" class="wr-advance-operations-init hidden"> <div id="apps-spinner" class="wr-advance-operations-init hidden">
<br> <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i> <i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading App List . . . Loading App List . . .
<br> <br>
<br> <br>
@ -147,9 +147,9 @@
<div id="operations-spinner" <div id="operations-spinner"
class="wr-advance-operations-init hidden"> class="wr-advance-operations-init hidden">
<br> <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i> <i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Operations Log . . . Loading Operations Log . . .
<br> <br>
<br> <br>

@ -14,8 +14,8 @@
<div class="wr-advance-operations"> <div class="wr-advance-operations">
<div class="wr-advance-operations-init"> <div class="wr-advance-operations-init">
<br> <br>
&nbsp;&nbsp;&nbsp;&nbsp;<i class="fw fw-settings fw-spin fw-2x"></i> <i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;Loading platform features . . . Loading platform features . . .
<br><br> <br><br>
</div> </div>
</div> </div>

@ -1,6 +1,8 @@
{ {
"deviceType": { "deviceType": {
"label": "Android", "label": "Android",
"category" : "mobile" "category": "mobile",
} "analyticsEnabled": "false",
"groupingEnabled": "false"
}
} }

@ -21,13 +21,13 @@
<h3 class="uppercase">What You Need</h3> <h3 class="uppercase">What You Need</h3>
<hr> <hr>
<ul class="list-unstyled"> <ul class="list-unstyled">
<li class="padding-top-double"><span class="circle">STEP 01</span>&nbsp;&nbsp;&nbsp;Android <li class="padding-top-double"><span class="circle">STEP 01</span> Android
Mobile. Mobile.
</li> </li>
<li class="padding-top-double"><span class="circle">STEP 02</span>&nbsp;&nbsp;&nbsp;Go ahead <li class="padding-top-double"><span class="circle">STEP 02</span> Go ahead
and click [Enroll Device]. and click [Enroll Device].
</li> </li>
<li class="padding-top-double"><span class="circle">STEP 03</span>&nbsp;&nbsp;&nbsp;Proceed <li class="padding-top-double"><span class="circle">STEP 03</span> Proceed
to the [Prepare] section. to the [Prepare] section.
</li> </li>
</ul> </ul>

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>android-plugin</artifactId> <artifactId>android-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>mobile-plugins</artifactId> <artifactId>mobile-plugins</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>carbon-device-mgt-plugins-parent</artifactId> <artifactId>carbon-device-mgt-plugins-parent</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

@ -21,7 +21,7 @@
<parent> <parent>
<artifactId>windows-plugin</artifactId> <artifactId>windows-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -50,7 +50,7 @@ public interface ConfigurationMgtService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Getting Windows Platform Configurations", value = "Getting Windows Platform Configurations",
notes = "Get the Windows platform configuration details using this REST API", notes = "Get the Windows platform configuration details using this REST API.",
response = PlatformConfiguration.class, response = PlatformConfiguration.class,
tags = "Windows Configuration Management" tags = "Windows Configuration Management"
) )
@ -74,16 +74,16 @@ public interface ConfigurationMgtService {
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."), message = "Not Modified. \n Applications can be blacklisted via the application restriction policy too.."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Not Found. \n Resource to be deleted does not exist."), message = "Not Found. \n Th resource to be deleted does not exist."),
@ApiResponse( @ApiResponse(
code = 406, code = 406,
message = "Not Acceptable.\n The requested media type is not supported"), message = "Not Acceptable.\n The requested media type is not supported."),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n Server error occurred while fetching Windows platform configuration.") message = "Internal Server Error. \n Server error occurred while fetching the Windows platform configuration.")
}) })
@Permission(name = "View Configurations", permission = "/device-mgt/platform-configurations/view") @Permission(name = "View Configurations", permission = "/device-mgt/platform-configurations/view")
PlatformConfiguration getConfiguration() throws WindowsConfigurationException; PlatformConfiguration getConfiguration() throws WindowsConfigurationException;
@ -100,14 +100,14 @@ public interface ConfigurationMgtService {
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "PUT", httpMethod = "PUT",
value = "Updating Windows Platform Configuration.", value = "Updating Windows Platform Configurations",
notes = "Update the Windows platform configurations using this REST API.", notes = "Update the Windows platform configurations using this REST API.",
tags = "Windows Configuration Management" tags = "Windows Configuration Management"
) )
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse( @ApiResponse(
code = 200, code = 200,
message = "OK. \n Windows platform configuration has been updated successfully", message = "OK. \n Successfully updated the Windows platform configurations.",
responseHeaders = { responseHeaders = {
@ResponseHeader( @ResponseHeader(
name = "Content-Location", name = "Content-Location",
@ -121,25 +121,28 @@ public interface ConfigurationMgtService {
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests.")}), "Used by caches, or in conditional requests.")}),
@ApiResponse( @ApiResponse(
code = 400, code = 400,
message = "Bad Request. \n Invalid request or validation error."), message = "Bad Request. \n Invalid request or validation error."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Not Found. \n Resource to be deleted does not exist."), message = "Not Found. \n The specified resource does not exist."),
@ApiResponse( @ApiResponse(
code = 415, code = 415,
message = "Unsupported media type. \n The entity of the request was in a not supported format."), message = "Unsupported media type. \n The format of the requested entity was not supported."),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n " + message = "Internal Server Error. \n " +
"Server error occurred while modifying Windows platform configuration.") "Server error occurred while modifying the Windows platform configurations.")
}) })
@Permission(name = "Manage Configurations", permission = "/device-mgt/configurations/manage") @Permission(name = "Manage Configurations", permission = "/device-mgt/configurations/manage")
Message updateConfiguration( @ApiParam(name = "configuration", Message updateConfiguration
value = "PlatformConfiguration")PlatformConfiguration configuration) throws WindowsConfigurationException; ( @ApiParam(
name = "configuration",
value = "The properties to update the Windows platform configurations.")
PlatformConfiguration configuration) throws WindowsConfigurationException;
@GET @GET
@Path("license") @Path("license")
@ -147,9 +150,9 @@ public interface ConfigurationMgtService {
@ApiOperation( @ApiOperation(
produces = MediaType.TEXT_PLAIN, produces = MediaType.TEXT_PLAIN,
httpMethod = "GET", httpMethod = "GET",
value = "Getting the License Agreement for Windows Device Registration", value = "Getting the License Agreement to Register a Windows Device",
notes = "Use this REST API to retrieve the license agreement that is used for the Windows device " + notes = "Use this REST API to retrieve the license agreement that is used for the Windows device " +
"registration process", "registration process.",
response = String.class, response = String.class,
tags = "Windows Configuration Management") tags = "Windows Configuration Management")
@ApiResponses(value = { @ApiResponses(value = {
@ -167,27 +170,29 @@ public interface ConfigurationMgtService {
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource was last modified.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of the requested resource."), message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Not Found. \n Resource to be deleted does not exist."), message = "Not Found. \n The specified resource does not exist."),
@ApiResponse( @ApiResponse(
code = 406, code = 406,
message = "Not Acceptable.\n The requested media type is not supported"), message = "Not Acceptable.\n The requested media type is not supported."),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n Server error occurred while fetching Windows license configuration.") message = "Internal Server Error. \n Server error occurred while fetching the Windows license configuration.")
}) })
@Permission(name = "Enroll Device", permission = "/device-mgt/devices/enroll/windows") @Permission(name = "Enroll Device", permission = "/device-mgt/devices/enroll/windows")
Response getLicense( Response getLicense(
@ApiParam( @ApiParam(
name = "If-Modified-Since", name = "If-Modified-Since",
value = "Validates if the requested variant has not been modified since the time specified", value = "Checks if the requested variant was modified, since the specified date-time.\n" +
"Provide the value in the following format: EEE, d MMM yyyy HH:mm:ss Z.\n" +
"Example: Mon, 05 Jan 2014 15:10:00 +0200",
required = false) required = false)
@HeaderParam("If-Modified-Since") String ifModifiedSince) throws WindowsConfigurationException; @HeaderParam("If-Modified-Since") String ifModifiedSince) throws WindowsConfigurationException;

@ -23,13 +23,13 @@
<parent> <parent>
<artifactId>windows-plugin</artifactId> <artifactId>windows-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.mobile.windows.ui</artifactId> <artifactId>org.wso2.carbon.device.mgt.mobile.windows.ui</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<name>WSO2 Carbon - Mobile Windows UI</name> <name>WSO2 Carbon - Mobile Windows UI</name>
<packaging>pom</packaging> <packaging>pom</packaging>

@ -1,6 +1,8 @@
{ {
"deviceType": { "deviceType": {
"label": "Windows", "label": "Windows",
"category" : "mobile" "category": "mobile",
} "analyticsEnabled": "false",
"groupingEnabled": "false"
}
} }

@ -38,12 +38,10 @@
<h3 class="uppercase">What You Need</h3> <h3 class="uppercase">What You Need</h3>
<hr> <hr>
<ul class="list-unstyled"> <ul class="list-unstyled">
<li class="padding-top-double"><span class="circle">STEP 01</span>&nbsp;&nbsp;&nbsp;Windows Mobile.</li> <li class="padding-top-double"><span class="circle">STEP 01</span> Windows Mobile.</li>
<li class="padding-top-double"><span class="circle">STEP 02</span>&nbsp;&nbsp;&nbsp;Go ahead and click [Enroll <li class="padding-top-double"><span class="circle">STEP 02</span> Go ahead and click [Enroll Device].
Device].
</li> </li>
<li class="padding-top-double"><span class="circle">STEP 03</span>&nbsp;&nbsp;&nbsp;Proceed to [Prepare] <li class="padding-top-double"><span class="circle">STEP 03</span> Proceed to [Prepare] section.
section.
</li> </li>
</ul> </ul>
<br> <br>

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>windows-plugin</artifactId> <artifactId>windows-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>mobile-plugins</artifactId> <artifactId>mobile-plugins</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -23,13 +23,13 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>analytics-feature</artifactId> <artifactId>analytics-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.iot.analytics.feature</artifactId> <artifactId>org.wso2.carbon.device.mgt.iot.analytics.feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>WSO2 Carbon - IoT Server Analytics Feature</name> <name>WSO2 Carbon - IoT Server Analytics Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>carbon-device-mgt-plugins-parent</artifactId> <artifactId>carbon-device-mgt-plugins-parent</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

@ -23,13 +23,13 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>androidsense-plugin-feature</artifactId> <artifactId>androidsense-plugin-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.iot.androidsense.feature</artifactId> <artifactId>org.wso2.carbon.device.mgt.iot.androidsense.feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>WSO2 Carbon - IoT Server Android Sense Feature</name> <name>WSO2 Carbon - IoT Server Android Sense Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-plugins-feature</artifactId> <artifactId>iot-plugins-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -23,7 +23,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>arduino-plugin-feature</artifactId> <artifactId>arduino-plugin-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-plugins-feature</artifactId> <artifactId>iot-plugins-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,13 +22,13 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>carbon-device-mgt-plugins-parent</artifactId> <artifactId>carbon-device-mgt-plugins-parent</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>device-types-feature</artifactId> <artifactId>device-types-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>WSO2 Carbon - Device Management IoT Plugins Feature</name> <name>WSO2 Carbon - Device Management IoT Plugins Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>

@ -23,7 +23,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>raspberrypi-plugin-feature</artifactId> <artifactId>raspberrypi-plugin-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-plugins-feature</artifactId> <artifactId>iot-plugins-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -23,7 +23,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>virtual-fire-alarm-plugin-feature</artifactId> <artifactId>virtual-fire-alarm-plugin-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>iot-plugins-feature</artifactId> <artifactId>iot-plugins-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -20,13 +20,13 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>extensions-feature</artifactId> <artifactId>extensions-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<artifactId>org.wso2.carbon.appmgt.mdm.osgiconnector.feature</artifactId> <artifactId>org.wso2.carbon.appmgt.mdm.osgiconnector.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<name>WSO2 Carbon - App management MDM OSGI Connector</name> <name>WSO2 Carbon - App management MDM OSGI Connector</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>This feature contains the core bundles required for APP management OSGI MDM connection <description>This feature contains the core bundles required for APP management OSGI MDM connection
@ -36,7 +36,7 @@
<dependency> <dependency>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>org.wso2.carbon.appmgt.mdm.osgiconnector</artifactId> <artifactId>org.wso2.carbon.appmgt.mdm.osgiconnector</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<exclusions> <exclusions>
<exclusion> <exclusion>
<groupId>org.apache.ws.commons.axiom</groupId> <groupId>org.apache.ws.commons.axiom</groupId>

@ -23,14 +23,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>extensions-feature</artifactId> <artifactId>extensions-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.adapter.feature</artifactId> <artifactId>org.wso2.carbon.device.mgt.adapter.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<name>WSO2 Carbon - Device Management Adapters Feature</name> <name>WSO2 Carbon - Device Management Adapters Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>This feature contains the adapter bundles required for IoT Server</description> <description>This feature contains the adapter bundles required for IoT Server</description>

@ -22,13 +22,13 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>carbon-device-mgt-plugins-parent</artifactId> <artifactId>carbon-device-mgt-plugins-parent</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>extensions-feature</artifactId> <artifactId>extensions-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>WSO2 Carbon - Device Management Extensions</name> <name>WSO2 Carbon - Device Management Extensions</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>android-plugin-feature</artifactId> <artifactId>android-plugin-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.mobile.android.feature</artifactId> <artifactId>org.wso2.carbon.device.mgt.mobile.android.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<name>WSO2 Carbon - Android Device Management Feature</name> <name>WSO2 Carbon - Android Device Management Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>This feature contains the core bundles required for Android Device Management <description>This feature contains the core bundles required for Android Device Management

@ -22,13 +22,13 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>mobile-plugins-feature</artifactId> <artifactId>mobile-plugins-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>android-plugin-feature</artifactId> <artifactId>android-plugin-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>WSO2 Carbon - Device Management Android Plugin Feature</name> <name>WSO2 Carbon - Device Management Android Plugin Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>

@ -22,13 +22,13 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>carbon-device-mgt-plugins-parent</artifactId> <artifactId>carbon-device-mgt-plugins-parent</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>mobile-plugins-feature</artifactId> <artifactId>mobile-plugins-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>WSO2 Carbon - Device Management EMM Plugins Feature</name> <name>WSO2 Carbon - Device Management EMM Plugins Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>windows-plugin-feature</artifactId> <artifactId>windows-plugin-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.mobile.windows.feature</artifactId> <artifactId>org.wso2.carbon.device.mgt.mobile.windows.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<name>WSO2 Carbon - Windows Device Management Feature</name> <name>WSO2 Carbon - Windows Device Management Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>This feature contains the core bundles required for Windows Device Management <description>This feature contains the core bundles required for Windows Device Management

@ -22,13 +22,13 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId> <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>mobile-plugins-feature</artifactId> <artifactId>mobile-plugins-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>windows-plugin-feature</artifactId> <artifactId>windows-plugin-feature</artifactId>
<version>2.2.5-SNAPSHOT</version> <version>2.2.6-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>WSO2 Carbon - Device Management Windows Plugin Feature</name> <name>WSO2 Carbon - Device Management Windows Plugin Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save