Merge branch 'wso2-master'

revert-dabc3590
sinthuja 8 years ago
commit da58b442de

@ -1,5 +1,7 @@
#carbon-device-mgt-plugins
<a href='https://wso2.org/jenkins/job/platform-builds/job/carbon-device-mgt-plugins/'><img src='https://wso2.org/jenkins/job/platform-builds/job/carbon-device-mgt-plugins/badge/icon'></a>
WSO2 MOBILE DEVICE MANAGER
WSO2 Mobile Device Manager (WSO2 MDM) is a comprehensive platform that helps solve mobile computing challenges enterprises face today when dealing with both corporate owned, personally enabled (COPE) devices and employee owned devices as part of a bring your own device (BYOD) program.

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

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

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

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

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

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

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

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

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

@ -26,7 +26,7 @@
<property name="Arduino_dir" value="Arduino"/>
<target name="clean">
<delete dir="${target-dir}" />
<delete dir="${target-dir}"/>
</target>
<target name="zip" depends="clean">

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

@ -17,8 +17,8 @@
-->
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>src</id>
<formats>

@ -18,6 +18,6 @@
-->
<artifact name="arduino_execution" version="1.0.0" type="event/execution-plan" serverRole="DataAnalyticsServer">
<file>arduino_execution.siddhiql</file>
<file>arduino_execution.siddhiql</file>
</artifact>

@ -16,7 +16,8 @@
~ specific language governing permissions and limitations
~ under the License.
-->
<eventReceiver name="arduino_receiver" statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventreceiver">
<eventReceiver name="arduino_receiver" statistics="disable" trace="disable"
xmlns="http://wso2.org/carbon/eventreceiver">
<from eventAdapterType="oauth-http">
<property name="contentValidator">iot-http</property>
</from>

@ -17,7 +17,7 @@
~ under the License.
-->
<artifact name= "arduino_stream" version="1.0.0" type="event/stream" serverRole="DataAnalyticsServer">
<file>org.wso2.iot.arduino_1.0.0.json</file>
<artifact name="arduino_stream" version="1.0.0" type="event/stream" serverRole="DataAnalyticsServer">
<file>org.wso2.iot.arduino_1.0.0.json</file>
</artifact>

@ -4,12 +4,19 @@
"nickName": "Arduino",
"description": "Temperature data received from the Arduino",
"metaData": [
{"name":"owner","type":"STRING"},
{"name":"deviceId","type":"STRING"}
{
"name": "owner",
"type": "STRING"
},
{
"name": "deviceId",
"type": "STRING"
}
],
"payloadData": [
{
"name": "temperature","type": "FLOAT"
"name": "temperature",
"type": "FLOAT"
}
]
}

@ -21,7 +21,7 @@
<parent>
<artifactId>arduino-plugin</artifactId>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<version>3.0.13-SNAPSHOT</version>
<version>3.0.15-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
@ -144,7 +144,7 @@
<dependency>
<groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>org.wso2.carbon.apimgt.annotations</artifactId>
<scope>provided</scope>
<scope>provided</scope>
</dependency>
</dependencies>

@ -19,7 +19,6 @@
package org.wso2.carbon.device.mgt.iot.arduino.service.impl;
import io.swagger.annotations.*;
import org.wso2.carbon.apimgt.annotations.api.Scope;
import org.wso2.carbon.apimgt.annotations.api.Scopes;
import org.wso2.carbon.device.mgt.iot.arduino.service.impl.constants.ArduinoConstants;
@ -110,7 +109,7 @@ public interface ArduinoService {
}
)
Response getArduinoTemperatureStats(@PathParam("deviceId") String deviceId, @QueryParam("from") long from,
@QueryParam("to") long to);
@QueryParam("to") long to);
/**
* download device agent

@ -148,7 +148,7 @@ public class ArduinoServiceImpl implements ArduinoService {
@QueryParam("to") long to) {
try {
if (!APIUtil.getDeviceAccessAuthorizationService().isUserAuthorized(new DeviceIdentifier(deviceId,
ArduinoConstants.DEVICE_TYPE), DeviceGroupConstants.Permissions.DEFAULT_STATS_MONITOR_PERMISSIONS)) {
ArduinoConstants.DEVICE_TYPE), DeviceGroupConstants.Permissions.DEFAULT_STATS_MONITOR_PERMISSIONS)) {
return Response.status(Response.Status.UNAUTHORIZED.getStatusCode()).build();
}
String fromDate = String.valueOf(from);
@ -207,7 +207,7 @@ public class ArduinoServiceImpl implements ArduinoService {
private ZipArchive createDownloadFile(String owner, String deviceName)
throws DeviceManagementException, JWTClientException, APIManagerException,
UserStoreException {
UserStoreException {
if (owner == null) {
throw new IllegalArgumentException("Error on createDownloadFile() Owner is null!");
}
@ -220,7 +220,8 @@ public class ArduinoServiceImpl implements ArduinoService {
}
String applicationUsername = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
.getRealmConfiguration().getAdminUserName() + "@" + PrivilegedCarbonContext
.getThreadLocalCarbonContext().getTenantDomain();;
.getThreadLocalCarbonContext().getTenantDomain();
;
if (apiApplicationKey == null) {
APIManagementProviderService apiManagementProviderService = APIUtil.getAPIManagementProviderService();
String[] tags = {ArduinoConstants.DEVICE_TYPE};
@ -231,14 +232,14 @@ public class ArduinoServiceImpl implements ArduinoService {
JWTClient jwtClient = APIUtil.getJWTClientManagerService().getJWTClient();
String scopes = " device_" + deviceId + " perm:arduino:enroll";
AccessTokenInfo accessTokenInfo = jwtClient.getAccessToken(apiApplicationKey.getConsumerKey(),
apiApplicationKey.getConsumerSecret(), owner, scopes);
apiApplicationKey.getConsumerSecret(), owner, scopes);
//create token
String accessToken = accessTokenInfo.getAccessToken();
String refreshToken = accessTokenInfo.getRefreshToken();
//Register the device with CDMF
ZipUtil ziputil = new ZipUtil();
return ziputil.createZipFile(owner, APIUtil.getTenantDomainOftheUser(),
ArduinoConstants.DEVICE_TYPE, deviceId, deviceName, accessToken, refreshToken);
ArduinoConstants.DEVICE_TYPE, deviceId, deviceName, accessToken, refreshToken);
}
private static String shortUUID() {

@ -26,16 +26,16 @@
it will result 403 error at the runtime.
-->
<PermissionConfiguration>
<APIVersion></APIVersion>
<!-- Device related APIs -->
<APIVersion></APIVersion>
<!-- Device related APIs -->
<Permission>
<name>control bulb</name>
<path>/device-mgt/user/operations</path>
<url>/device/*/bulb</url>
<method>POST</method>
<scope>arduino_user</scope>
</Permission>
<Permission>
<name>control bulb</name>
<path>/device-mgt/user/operations</path>
<url>/device/*/bulb</url>
<method>POST</method>
<scope>arduino_user</scope>
</Permission>
<Permission>
<name>get controls</name>
<path>/device-mgt/user/operations</path>

@ -16,9 +16,9 @@
~ limitations under the License.
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd">
@ -30,7 +30,7 @@
</bean>
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
<bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>
</jaxrs:providers>
</jaxrs:server>

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<web-app version="2.5"
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
metadata-complete="true">
<display-name>Arduino</display-name>
<description>Arduino</description>
<display-name>Arduino</display-name>
<description>Arduino</description>
<servlet>
<servlet-name>CXFServlet</servlet-name>
@ -28,7 +28,8 @@
</context-param>
<listener>
<listener-class>org.wso2.carbon.device.mgt.iot.arduino.service.impl.listener.ArduinoPermissionUpdateListener</listener-class>
<listener-class>org.wso2.carbon.device.mgt.iot.arduino.service.impl.listener.ArduinoPermissionUpdateListener
</listener-class>
</listener>
</web-app>

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

@ -17,8 +17,8 @@
-->
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>src</id>
<formats>

@ -18,7 +18,7 @@
function onRequest(context) {
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
var devices = context.unit.params.devices;
var deviceType = context.uriParams.deviceType;
var deviceId = request.getParameter("deviceId");
@ -26,7 +26,7 @@ function onRequest(context) {
if (devices) {
return {
"devices": stringify(devices),
"backendApiUri": "/arduino/device/stats/"
"backendApiUri": "/arduino/device/stats/"
};
} else if (deviceType != null && deviceType != undefined && deviceId != null && deviceId != undefined) {
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];

@ -48,25 +48,25 @@ function drawGraph_arduino(from, to) {
if (devices) {
for (var i = 0; i < devices.length; i++) {
graphConfig['series'].push(
{
'color': palette.color(),
'data': [{
x: parseInt(new Date().getTime() / 1000),
y: 0
}],
'name': devices[i].name
});
}
} else {
graphConfig['series'].push(
{
'color': palette.color(),
'data': [{
x: parseInt(new Date().getTime() / 1000),
y: 0
}],
'name': $("#arduino-details").data("devicename")
'name': devices[i].name
});
}
} else {
graphConfig['series'].push(
{
'color': palette.color(),
'data': [{
x: parseInt(new Date().getTime() / 1000),
y: 0
}],
'name': $("#arduino-details").data("devicename")
});
}
var graph = new Rickshaw.Graph(graphConfig);
@ -103,9 +103,9 @@ function drawGraph_arduino(from, to) {
graph: graph,
formatter: function (series, x, y) {
var date = '<span class="date">' +
moment((x + tzOffset) * 1000).format('Do MMM YYYY h:mm:ss a') + '</span>';
moment((x + tzOffset) * 1000).format('Do MMM YYYY h:mm:ss a') + '</span>';
var swatch = '<span class="detail_swatch" style="background-color: ' +
series.color + '"></span>';
series.color + '"></span>';
return swatch + series.name + ": " + parseInt(y) + '<br>' + date;
}
});
@ -145,7 +145,7 @@ function drawGraph_arduino(from, to) {
return;
}
var backendApiUrl = $("#arduino-div-chart").data("backend-api-url") + devices[deviceIndex].deviceIdentifier
+ "?from=" + from + "&to=" + to;
+ "?from=" + from + "&to=" + to;
var successCallback = function (data) {
if (data) {
drawLineGraph(JSON.parse(data));
@ -167,10 +167,10 @@ function drawGraph_arduino(from, to) {
var chartData = [];
for (var i = 0; i < data.length; i++) {
chartData.push(
{
x: parseInt(data[i].values.time) - tzOffset,
y: parseInt(data[i].values.temperature)
}
{
x: parseInt(data[i].values.time) - tzOffset,
y: parseInt(data[i].values.temperature)
}
);
}

@ -33,14 +33,14 @@
</div>
<div class="add-margin-top-4x">
{{unit "cdmf.unit.device.operation-bar" device=device autoCompleteParams=autoCompleteParams
encodedFeaturePayloads=encodedFeaturePayloads}}
encodedFeaturePayloads=encodedFeaturePayloads}}
</div>
{{/zone}}
{{#zone "device-view-tabs"}}
<li class="active"><a class="list-group-item" href="#device_statistics" role="tab"
data-toggle="tab" aria-controls="device_statistics">Device
Statistics</a>
Statistics</a>
</li>
<li><a class="list-group-item" href="#event_log" role="tab" data-toggle="tab"
aria-controls="event_log">Operations Log</a></li>

@ -22,20 +22,20 @@ function onRequest(context) {
var deviceId = request.getParameter("id");
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
var autoCompleteParams = [
{"name" : "deviceId", "value" : deviceId}
{"name": "deviceId", "value": deviceId}
];
if (deviceType != null && deviceType != undefined && deviceId != null && deviceId != undefined) {
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
var device = deviceModule.viewDevice(deviceType, deviceId);
if (device && device.status != "error") {
var anchor = { "device" : { "id" : device.content.deviceIdentifier, "type" : device.content.type}};
var anchor = {"device": {"id": device.content.deviceIdentifier, "type": device.content.type}};
return {
"device": device.content,
"autoCompleteParams" : autoCompleteParams,
"autoCompleteParams": autoCompleteParams,
"encodedFeaturePayloads": "",
"portalUrl" : devicemgtProps['portalURL'],
"anchor" : JSON.stringify(anchor)
"portalUrl": devicemgtProps['portalURL'],
"anchor": JSON.stringify(anchor)
};
} else {
response.sendError(404, "Device Id " + deviceId + " of type " + deviceType + " cannot be found!");

@ -30,7 +30,7 @@
<div class="wr-input-control">
<label class="wr-input-label" for="email-config-host">
Http Server IP
<span class="helper" title="SMTP Server Host">
<span class="helper" title="SMTP Server Host">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
<br>
@ -41,7 +41,7 @@
<label class="wr-input-label" for="email-config-host">
Http Server Port
<span class="helper" title="SMTP Server Host">
<span class="helper" title="SMTP Server Host">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
<br>
@ -52,7 +52,7 @@
</div>
<div class="wr-input-control wr-btn-grp">
<button id="save-general-btn" class="wr-btn" onclick="addConfiguration();">
Save
Save
</button>
</div>
</div>

@ -31,7 +31,7 @@ function onRequest(context) {
if (encodedClientKeys) {
var tokenUtil = require("/app/modules/oauth/token-handler-utils.js")["utils"];
var resp = tokenUtil.decode(encodedClientKeys).split(":");
var tokenPair = jwtClient.getAccessToken(resp[0], resp[1], context.user.username,"default", {});
var tokenPair = jwtClient.getAccessToken(resp[0], resp[1], context.user.username, "default", {});
if (tokenPair) {
token = tokenPair.accessToken;
}

@ -25,9 +25,9 @@ $(window).load(function () {
var tNow = new Date().getTime() / 1000;
for (var i = 0; i < 30; i++) {
chartData.push({
x: tNow - (30 - i) * 15,
y: parseFloat(0)
});
x: tNow - (30 - i) * 15,
y: parseFloat(0)
});
}
graph = new Rickshaw.Graph({
@ -90,9 +90,9 @@ function connect(target) {
ws.onmessage = function (event) {
var dataPoint = JSON.parse(event.data);
chartData.push({
x: parseInt(dataPoint[0]) / 1000,
y: parseFloat(dataPoint[5])
});
x: parseInt(dataPoint[0]) / 1000,
y: parseFloat(dataPoint[5])
});
chartData.shift();
graph.update();
};

@ -4,7 +4,7 @@
"category": "iot",
"downloadAgentUri": "arduino/device/download",
"category": "iot",
"scopes" : [
"scopes": [
"perm:arduino:enroll"
]
}

@ -21,15 +21,19 @@
width: 50px;
color: #fff;
}
.padding-top-double {
padding-top: 20px;
}
.padding-double {
padding: 20px;
}
.grey {
color: #333;
}
hr {
display: block;
height: 1px;
@ -39,20 +43,25 @@ hr {
padding: 0;
opacity: 0.2;
}
.light-grey {
color: #7c7c7c;
}
.uppercase {
text-transform: uppercase;
}
.grey-bg {
background-color: #f6f4f4;
}
.doc-link{
.doc-link {
background: none;
color: #000;
padding: 10px 0px;
}
.doc-link a {
color: #006eff;
}

@ -110,15 +110,15 @@ function attachEvents() {
doAction(data);
}
);
}else if(deviceName){
} else if (deviceName) {
$('.controls').append('<label for="deviceName" generated="true" class="error" ' +
'style="display: inline-block;">Please enter at least 4 ' +
'characters.</label>');
'style="display: inline-block;">Please enter at least 4 ' +
'characters.</label>');
$('.control-group').removeClass('success').addClass('error');
} else {
$('.controls').append('<label for="deviceName" generated="true" class="error" ' +
'style="display: inline-block;">This field is required.' +
'</label>');
'style="display: inline-block;">This field is required.' +
'</label>');
$('.control-group').removeClass('success').addClass('error');
}
});
@ -146,7 +146,7 @@ function downloadAgent() {
setTimeout(function () {
hidePopup();
}, 1000);
}else {
} else {
$("#invalid-username-error-msg span").text("Invalid device name");
$("#invalid-username-error-msg").removeClass("hidden");
}
@ -186,28 +186,28 @@ function doAction(data) {
}
function artifactUpload() {
var contentType = "application/json";
var contentType = "application/json";
var urix = backendEndBasePath + "/admin/devicetype/deploy/arduino";
var defaultStatusClasses = "fw fw-stack-1x";
var content = $("#arduino-statistic-response-template").find(".content");
var title = content.find("#title");
var statusIcon = content.find("#status-icon");
var data = {}
invokerUtil.post(urix, data, function (data) {
title.html("Deploying statistic artifacts. Please wait...");
statusIcon.attr("class", defaultStatusClasses + " fw-check");
$(modalPopupContent).html(content.html());
showPopup();
setTimeout(function () {
hidePopup();
location.reload(true);
}, 5000);
var urix = backendEndBasePath + "/admin/devicetype/deploy/arduino";
var defaultStatusClasses = "fw fw-stack-1x";
var content = $("#arduino-statistic-response-template").find(".content");
var title = content.find("#title");
var statusIcon = content.find("#status-icon");
var data = {}
invokerUtil.post(urix, data, function (data) {
title.html("Deploying statistic artifacts. Please wait...");
statusIcon.attr("class", defaultStatusClasses + " fw-check");
$(modalPopupContent).html(content.html());
showPopup();
setTimeout(function () {
hidePopup();
location.reload(true);
}, 5000);
}, function (jqXHR) {
title.html("Failed to deploy artifacts, Please contact administrator.");
statusIcon.attr("class", defaultStatusClasses + " fw-error");
$(modalPopupContent).html(content.html());
showPopup();
}, contentType);
}, function (jqXHR) {
title.html("Failed to deploy artifacts, Please contact administrator.");
statusIcon.attr("class", defaultStatusClasses + " fw-error");
$(modalPopupContent).html(content.html());
showPopup();
}, contentType);
}

@ -32,31 +32,31 @@
<h3 class="uppercase">What it Does</h3>
<hr>
<p class="grey margin-top">Connect Arduino UNO board to WSO2 IoT Server and visualize sensor
data.</p>
data.</p>
<br>
<h3 class="uppercase">What You Need</h3>
<hr>
<ul class="list-unstyled">
<li class="padding-top-double">
<span class="badge">ITEM 01</span>
Arduino UNO Board.
Arduino UNO Board.
</li>
<li>
<span class="badge">ITEM 02</span>
Adafruit Wifi Shield for Arduino.
Adafruit Wifi Shield for Arduino.
</li>
<li>
<span class="badge">ITEM 03</span>
LED bulb connected to Pin 13.
LED bulb connected to Pin 13.
<i>(If not available, will use the one on the board.)</i>
</li>
<li>
<span class="badge">ITEM 04</span>
Resister( e.g 330 ohms )
Resister( e.g 330 ohms )
</li>
<li>
<span class="badge">STEP 05</span>
Proceed to [Prepare] section.
Proceed to [Prepare] section.
</ul>
<br>
<a href="/api-store/apis/info?name={{@uriParams.deviceType}}&version=1.0.0&provider=admin"
@ -67,7 +67,8 @@
<i class="fw fw-download add-margin-1x"></i>Download Sketch
</a>
{{#if displayStatus}}
<a href="javascript:artifactUpload()" class="btn-operations"><i class="fw fw-upload fw-inverse fw-lg add-margin-1x"></i> Deploy Analytics Artifacts</a>
<a href="javascript:artifactUpload()" class="btn-operations"><i
class="fw fw-upload fw-inverse fw-lg add-margin-1x"></i> Deploy Analytics Artifacts</a>
{{/if}}
<p class="doc-link">Click <a href="https://docs.wso2.com/display/IoTS300/Arduino"
@ -201,11 +202,11 @@
<ul class="list-unstyled">
<li class="padding-top-double">
<span class="badge">01</span>
Wifi-Shield mounted onto the Arduino-UNO board
Wifi-Shield mounted onto the Arduino-UNO board
</li>
<li class="padding-top-double">
<span class="badge">02</span>
Connect LED bulb to arduino as follows
Connect LED bulb to arduino as follows
<br/><br/>
<a href="{{@unit.publicUri}}/images/schematicsGuide.png" target="_blank">
<img src="{{@unit.publicUri}}/images/schematicsGuide.png" class="img-responsive">
@ -215,20 +216,20 @@
<li class="padding-top-double">
<span class="badge">03</span>
Download Arduino-Sketch from [Download Sketch] link above.
Download Arduino-Sketch from [Download Sketch] link above.
</li>
<li class="padding-top-double">
<span class="badge">04</span>
Unzip the downloaded Arduino Agent
Unzip the downloaded Arduino Agent
</li>
<li class="padding-top-double">
<span class="badge">05</span>
Create a folder called "ArduinoBoardSketch" and move all source files
Create a folder called "ArduinoBoardSketch" and move all source files
inside
</li>
<li class="padding-top-double">
<span class="badge">06</span>
Open ArduinoBoardSketch.h and provide appropriate values for
Open ArduinoBoardSketch.h and provide appropriate values for
<i>[WLAN_SSID]</i>,
<i>[WLAN_PASS]</i>,
<i>[SERVICE_PORT]</i>,
@ -238,7 +239,7 @@
</li>
<li class="padding-top-double">
<span class="badge">07</span>
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 class="padding-top-double">
@ -246,14 +247,14 @@
<i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i>
</span>
Arduino will publish it's internal temperature to WSO2-IoT-Server
Arduino will publish it's internal temperature to WSO2-IoT-Server
<br/><br/>
<span class="fw-stack margin-right">
<i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-right-arrow fw-stack-1x"></i>
</span>
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>
</ul>
<br>
@ -267,17 +268,17 @@
<ul class="list-unstyled">
<li class="padding-top-double">
<span class="badge">01</span>
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.
</li>
<li class="padding-top-double">
<span class="badge">02</span>
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.
</li>
<li class="padding-top-double">
<span class="badge">03</span>
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.
</li>
</ul>

@ -16,22 +16,22 @@
* under the License.
*/
function onRequest(context){
function onRequest(context) {
var viewModel = {};
var devicemgtProps = require("/app/modules/conf-reader/main.js")["conf"];
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
var url = devicemgtProps["httpsURL"] + "/api/device-mgt/v1.0/admin/devicetype/deploy/arduino/status";
serviceInvokers.XMLHttp.get(
url, function (responsePayload) {
var responseContent = responsePayload.status;
new Log().error(responseContent);
if ("204" == responsePayload.status) {
viewModel["displayStatus"] = "Display";
}
},
function (responsePayload) {
//do nothing.
}
);
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
var url = devicemgtProps["httpsURL"] + "/api/device-mgt/v1.0/admin/devicetype/deploy/arduino/status";
serviceInvokers.XMLHttp.get(
url, function (responsePayload) {
var responseContent = responsePayload.status;
new Log().error(responseContent);
if ("204" == responsePayload.status) {
viewModel["displayStatus"] = "Display";
}
},
function (responsePayload) {
//do nothing.
}
);
return viewModel;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -20,7 +20,7 @@
<parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>siddhi-extensions</artifactId>
<version>3.0.13-SNAPSHOT</version>
<version>3.0.15-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
@ -46,7 +46,6 @@
<dependency>
<groupId>org.json.wso2</groupId>
<artifactId>json</artifactId>
<version>${analytics.json.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>

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

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

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

@ -106,7 +106,7 @@ public class AndroidAPIUtils {
// PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
// GCMService gcmService = (GCMService) ctx.getOSGiService(GCMService.class, null);
// if (gcmService == null) {
// String msg = "GCM service has not initialized.";
// String msg = "FCM service has not initialized.";
// log.error(msg);
// throw new IllegalStateException(msg);
// }
@ -143,7 +143,7 @@ public class AndroidAPIUtils {
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID, operation, deviceIdentifiers);
// if (activity != null) {
// GCMService gcmService = getGCMService();
// if (gcmService.isGCMEnabled()) {
// if (gcmService.isFCMEnabled()) {
// List<DeviceIdentifier> deviceIDList = deviceIDHolder.getValidDeviceIDList();
// List<Device> devices = new ArrayList<Device>(deviceIDList.size());
// for (DeviceIdentifier deviceIdentifier : deviceIDList) {
@ -487,11 +487,14 @@ public class AndroidAPIUtils {
for (JsonElement element : jsonArray) {
// if (((JsonObject) element).entrySet().iterator().next().getValue().getAsString().equalsIgnoreCase(needed));
for (Map.Entry<String, JsonElement> ob : ((JsonObject) element).entrySet()) {
if (exist) {
return ob.getValue().getAsString().replace("%", "");
}
if (ob.getValue().getAsString().equalsIgnoreCase(needed)) {
exist = true;
JsonElement val = ob.getValue();
if (val != null && !val.isJsonNull()) {
if (exist) {
return val.getAsString().replace("%", "");
}
if (val.getAsString().equalsIgnoreCase(needed)) {
exist = true;
}
}
}
}

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

@ -52,15 +52,15 @@
</div>
</div>
<div id="gcm-inputs">
<div id="fcm-inputs">
<div class="wr-input-control">
<label class="wr-input-label" for="android-config-gcm-api-key">
<label class="wr-input-label" for="android-config-fcm-api-key">
API Key*
<span class="helper" title="GCM API Key">
<span class="helper" title="FCM API Key">
<span class="wr-help-tip glyphicon glyphicon-question-sign"></span>
</span>
</label>
<input id="android-config-gcm-api-key" type="text" class="form-control" >
<input id="android-config-fcm-api-key" type="text" class="form-control" >
</div>
</div>
<h4>

@ -29,7 +29,7 @@ function isPositiveInteger(str) {
var notifierTypeConstants = {
"LOCAL": "1",
"GCM": "2"
"FCM": "2"
};
// Constants to define platform types available
var platformTypeConstants = {
@ -47,8 +47,8 @@ var responseCodes = {
var configParams = {
"NOTIFIER_TYPE": "notifierType",
"NOTIFIER_FREQUENCY": "notifierFrequency",
"GCM_API_KEY": "gcmAPIKey",
"GCM_SENDER_ID": "gcmSenderId",
"FCM_API_KEY": "fcmAPIKey",
"FCM_SENDER_ID": "fcmSenderId",
"ANDROID_EULA": "androidEula",
"IOS_EULA": "iosEula",
"CONFIG_COUNTRY": "configCountry",
@ -81,7 +81,7 @@ var configParams = {
};
$(document).ready(function () {
$("#gcm-inputs").hide();
$("#fcm-inputs").hide();
tinymce.init({
selector: "textarea",
height:500,
@ -113,17 +113,17 @@ $(document).ready(function () {
var config = data.configuration[i];
if (config.name == configParams["NOTIFIER_TYPE"]) {
$("#android-config-notifier").val(config.value);
if (config.value != notifierTypeConstants["GCM"]) {
$("#gcm-inputs").hide();
if (config.value != notifierTypeConstants["FCM"]) {
$("#fcm-inputs").hide();
$("#local-inputs").show();
} else {
$("#gcm-inputs").show();
$("#fcm-inputs").show();
$("#local-inputs").hide();
}
} else if (config.name == configParams["NOTIFIER_FREQUENCY"]) {
$("input#android-config-notifier-frequency").val(config.value / 1000);
} else if (config.name == configParams["GCM_API_KEY"]) {
$("input#android-config-gcm-api-key").val(config.value);
} else if (config.name == configParams["FCM_API_KEY"]) {
$("input#android-config-fcm-api-key").val(config.value);
} else if (config.name == configParams["ANDROID_EULA"]) {
$("#android-eula").val(config.value);
}
@ -139,12 +139,12 @@ $(document).ready(function () {
$("#android-config-notifier").change(function () {
var notifierType = $("#android-config-notifier").find("option:selected").attr("value");
if (notifierType != notifierTypeConstants["GCM"]) {
$("#gcm-inputs").hide();
if (notifierType != notifierTypeConstants["FCM"]) {
$("#fcm-inputs").hide();
$("#local-inputs").show();
} else {
$("#local-inputs").hide();
$("#gcm-inputs").show();
$("#fcm-inputs").show();
}
});
@ -156,8 +156,8 @@ $(document).ready(function () {
$("button#save-android-btn").click(function () {
var notifierType = $("#android-config-notifier").find("option:selected").attr("value");
var notifierFrequency = $("input#android-config-notifier-frequency").val();
var gcmAPIKey = $("input#android-config-gcm-api-key").val();
var gcmSenderId = "sender_id";
var fcmAPIKey = $("input#android-config-fcm-api-key").val();
var fcmSenderId = "sender_id";
var androidLicense = tinyMCE.activeEditor.getContent();
var errorMsgWrapper = "#android-config-error-msg";
var errorMsg = "#android-config-error-msg span";
@ -167,7 +167,7 @@ $(document).ready(function () {
} else if (notifierType == notifierTypeConstants["LOCAL"] && !isPositiveInteger(notifierFrequency)) {
$(errorMsg).text("Provided notifier frequency is invalid. ");
$(errorMsgWrapper).removeClass("hidden");
} else if (notifierType == notifierTypeConstants["GCM"] && !gcmAPIKey) {
} else if (notifierType == notifierTypeConstants["FCM"] && !fcmAPIKey) {
$(errorMsg).text("FCM API Key is a required field. It cannot be empty.");
$(errorMsgWrapper).removeClass("hidden");
} else {
@ -187,15 +187,15 @@ $(document).ready(function () {
"contentType": "text"
};
var gcmKey = {
"name": configParams["GCM_API_KEY"],
"value": gcmAPIKey,
var fcmKey = {
"name": configParams["FCM_API_KEY"],
"value": fcmAPIKey,
"contentType": "text"
};
var gcmId = {
"name": configParams["GCM_SENDER_ID"],
"value": gcmSenderId,
var fcmId = {
"name": configParams["FCM_SENDER_ID"],
"value": fcmSenderId,
"contentType": "text"
};
@ -208,9 +208,9 @@ $(document).ready(function () {
configList.push(type);
configList.push(frequency);
configList.push(androidEula);
if (notifierType == notifierTypeConstants["GCM"]) {
configList.push(gcmKey);
configList.push(gcmId);
if (notifierType == notifierTypeConstants["FCM"]) {
configList.push(fcmKey);
configList.push(fcmId);
}
addConfigFormData.type = platformTypeConstants["ANDROID"];

@ -27,9 +27,16 @@
to save it to your computer.</p>
<p class="doc-link">For further instructions and troubleshooting please visit the following <a href="https://docs.wso2.com/display/IoTS300/Android"
target="_blank">link</a>.</p>-->
<p class="doc-link text-center">Need help? Read <a
href="https://docs.wso2.com/display/DeviceCloud/Enrolling+an+Android+Device" target="_blank">WSO2 Device
Cloud documentation.</a></p>
{{#if isCloud}}
<p class="doc-link text-center">Need help? Read <a
href="https://docs.wso2.com/display/DeviceCloud/Enrolling+an+Android+Device" target="_blank">WSO2 Device
Cloud documentation.</a></p>
{{else}}
<p class="doc-link text-center">Need help? Read <a
href="https://docs.wso2.com/display/IoTS310/Android" target="_blank">WSO2
IoT Server documentation.</a></p>
{{/if}}
</div>
</div>
@ -40,21 +47,16 @@
</div>
</div>
<div class="row grey-bg">
{{#if isCloud}}
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6 add-padding-top-2x add-padding-bottom-2x">
{{else}}
<div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 add-padding-top-2x add-padding-bottom-2x">
{{/if}}
{{#if isCloud}}
<div class="row grey-bg">
<h5><strong>Step 1</strong></h5>
<p>Let's start by installing the Android agent on your device. Open the downloaded file, and tap <b>INSTALL</b>.</p>
<img src="{{@unit.publicUri}}/images/install_agent.png" class="img-responsive">
</div>
{{#if isCloud}}
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6 add-padding-top-2x add-padding-bottom-2x">
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-4 col-md-offset-1 col-lg-offset-1 add-padding-top-2x add-padding-bottom-2x">
<h5><strong>Step 1</strong></h5>
<p>Let's start by installing the Android agent on your device. Open the downloaded file, and tap
<b>INSTALL</b>.</p>
<img src="{{@unit.publicUri}}/images/install_agent.png" class="img-responsive">
</div>
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-4 col-md-offset-2 col-lg-offset-2 add-padding-top-2x add-padding-bottom-2x">
<h5><strong>Step 2</strong></h5>
<p>Enter your:
<p>
@ -65,7 +67,14 @@
</ul>
<img src="{{@unit.publicUri}}/images/login.png" class="img-responsive">
</div>
{{else}}
{{else}}
<div class="row grey-bg">
<div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 add-padding-top-2x add-padding-bottom-2x">
<h5><strong>Step 1</strong></h5>
<p>Let's start by installing the Android agent on your device. Open the downloaded file, and tap
<b>INSTALL</b>.</p>
<img src="{{@unit.publicUri}}/images/install_agent.png" class="img-responsive">
</div>
<div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 add-padding-top-2x add-padding-bottom-2x">
<h5><strong>Step 2</strong></h5>
@ -88,7 +97,7 @@
</ul>
<img src="{{@unit.publicUri}}/images/install_agent.png" class="img-responsive">
</div>
{{/if}}
{{/if}}
</div>
@ -151,10 +160,10 @@
<br/>
{{#zone "topCss"}}
{{css "css/styles.css"}}
{{/zone}}
{{#zone "topCss"}}
{{css "css/styles.css"}}
{{/zone}}
{{#zone "bottomJs"}}
{{js "js/type-view.js"}}
{{/zone}}
{{#zone "bottomJs"}}
{{js "js/type-view.js"}}
{{/zone}}

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

@ -43,8 +43,8 @@ public class AndroidDeviceManagementService implements DeviceManagementService {
public static final String DEVICE_TYPE_ANDROID = "android";
private static final String SUPER_TENANT_DOMAIN = "carbon.super";
private static final String NOTIFIER_PROPERTY = "notifierType";
private static final String GCM_API_KEY = "gcmAPIKey";
private static final String GCM_SENDER_ID = "gcmSenderId";
private static final String FCM_API_KEY = "fcmAPIKey";
private static final String FCM_SENDER_ID = "fcmSenderId";
private PolicyMonitoringManager policyMonitoringManager;
@Override
@ -92,9 +92,9 @@ public class AndroidDeviceManagementService implements DeviceManagementService {
int notifierType = Integer.parseInt(notifierValue);
if (notifierType == 2) {
HashMap<String, String> config = new HashMap<>();
config.put(GCM_API_KEY, this.getConfigProperty(configuration, GCM_API_KEY));
config.put(GCM_SENDER_ID, this.getConfigProperty(configuration, GCM_SENDER_ID));
return new PushNotificationConfig(AndroidPluginConstants.NotifierType.GCM, config);
config.put(FCM_API_KEY, this.getConfigProperty(configuration, FCM_API_KEY));
config.put(FCM_SENDER_ID, this.getConfigProperty(configuration, FCM_SENDER_ID));
return new PushNotificationConfig(AndroidPluginConstants.NotifierType.FCM, config);
}
}
}

@ -52,7 +52,7 @@ public class AndroidDeviceDAOImpl implements MobileDeviceDAO{
try {
conn = AndroidDAOFactory.getConnection();
String selectDBQuery =
"SELECT DEVICE_ID, GCM_TOKEN, DEVICE_INFO, DEVICE_MODEL, SERIAL, " +
"SELECT DEVICE_ID, FCM_TOKEN, DEVICE_INFO, DEVICE_MODEL, SERIAL, " +
"VENDOR, MAC_ADDRESS, DEVICE_NAME, LATITUDE, LONGITUDE, IMEI, IMSI, OS_VERSION, OS_BUILD_DATE" +
" FROM AD_DEVICE WHERE DEVICE_ID = ?";
stmt = conn.prepareStatement(selectDBQuery);
@ -73,7 +73,7 @@ public class AndroidDeviceDAOImpl implements MobileDeviceDAO{
mobileDevice.setOsBuildDate(rs.getString(AndroidPluginConstants.OS_BUILD_DATE));
Map<String, String> propertyMap = new HashMap<String, String>();
propertyMap.put(AndroidPluginConstants.GCM_TOKEN, rs.getString(AndroidPluginConstants.GCM_TOKEN));
propertyMap.put(AndroidPluginConstants.FCM_TOKEN, rs.getString(AndroidPluginConstants.FCM_TOKEN));
propertyMap.put(AndroidPluginConstants.DEVICE_INFO, rs.getString(AndroidPluginConstants.DEVICE_INFO));
propertyMap.put(AndroidPluginConstants.DEVICE_NAME, rs.getString(AndroidPluginConstants.DEVICE_NAME));
mobileDevice.setDeviceProperties(propertyMap);
@ -103,7 +103,7 @@ public class AndroidDeviceDAOImpl implements MobileDeviceDAO{
try {
conn = AndroidDAOFactory.getConnection();
String createDBQuery =
"INSERT INTO AD_DEVICE(DEVICE_ID, GCM_TOKEN, DEVICE_INFO, SERIAL, " +
"INSERT INTO AD_DEVICE(DEVICE_ID, FCM_TOKEN, DEVICE_INFO, SERIAL, " +
"VENDOR, MAC_ADDRESS, DEVICE_NAME, LATITUDE, LONGITUDE, IMEI, IMSI, " +
"OS_VERSION, DEVICE_MODEL, OS_BUILD_DATE) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
@ -111,7 +111,7 @@ public class AndroidDeviceDAOImpl implements MobileDeviceDAO{
stmt.setString(1, mobileDevice.getMobileDeviceId());
Map<String, String> properties = mobileDevice.getDeviceProperties();
stmt.setString(2, properties.get(AndroidPluginConstants.GCM_TOKEN));
stmt.setString(2, properties.get(AndroidPluginConstants.FCM_TOKEN));
stmt.setString(3, properties.get(AndroidPluginConstants.DEVICE_INFO));
stmt.setString(4, mobileDevice.getSerial());
stmt.setString(5, mobileDevice.getVendor());
@ -149,13 +149,13 @@ public class AndroidDeviceDAOImpl implements MobileDeviceDAO{
try {
conn = AndroidDAOFactory.getConnection();
String updateDBQuery =
"UPDATE AD_DEVICE SET GCM_TOKEN = ?, DEVICE_INFO = ?, SERIAL = ?, VENDOR = ?, " +
"UPDATE AD_DEVICE SET FCM_TOKEN = ?, DEVICE_INFO = ?, SERIAL = ?, VENDOR = ?, " +
"MAC_ADDRESS = ?, DEVICE_NAME = ?, LATITUDE = ?, LONGITUDE = ?, IMEI = ?, " +
"IMSI = ?, OS_VERSION = ?, DEVICE_MODEL = ?, OS_BUILD_DATE = ? WHERE DEVICE_ID = ?";
stmt = conn.prepareStatement(updateDBQuery);
Map<String, String> properties = mobileDevice.getDeviceProperties();
stmt.setString(1, properties.get(AndroidPluginConstants.GCM_TOKEN));
stmt.setString(1, properties.get(AndroidPluginConstants.FCM_TOKEN));
stmt.setString(2, properties.get(AndroidPluginConstants.DEVICE_INFO));
stmt.setString(3, mobileDevice.getSerial());
stmt.setString(4, mobileDevice.getVendor());
@ -227,7 +227,7 @@ public class AndroidDeviceDAOImpl implements MobileDeviceDAO{
try {
conn = AndroidDAOFactory.getConnection();
String selectDBQuery =
"SELECT DEVICE_ID, GCM_TOKEN, DEVICE_INFO, DEVICE_MODEL, SERIAL, " +
"SELECT DEVICE_ID, FCM_TOKEN, DEVICE_INFO, DEVICE_MODEL, SERIAL, " +
"VENDOR, MAC_ADDRESS, DEVICE_NAME, LATITUDE, LONGITUDE, IMEI, IMSI, OS_VERSION, OS_BUILD_DATE " +
"FROM AD_DEVICE";
stmt = conn.prepareStatement(selectDBQuery);
@ -247,7 +247,7 @@ public class AndroidDeviceDAOImpl implements MobileDeviceDAO{
mobileDevice.setOsBuildDate(rs.getString(AndroidPluginConstants.OS_BUILD_DATE));
Map<String, String> propertyMap = new HashMap<>();
propertyMap.put(AndroidPluginConstants.GCM_TOKEN, rs.getString(AndroidPluginConstants.GCM_TOKEN));
propertyMap.put(AndroidPluginConstants.FCM_TOKEN, rs.getString(AndroidPluginConstants.FCM_TOKEN));
propertyMap.put(AndroidPluginConstants.DEVICE_INFO, rs.getString(AndroidPluginConstants.DEVICE_INFO));
propertyMap.put(AndroidPluginConstants.DEVICE_NAME, rs.getString(AndroidPluginConstants.DEVICE_NAME));
mobileDevice.setDeviceProperties(propertyMap);

@ -16,12 +16,12 @@
* under the License.
*/
package org.wso2.carbon.device.mgt.mobile.android.impl.gcm;
package org.wso2.carbon.device.mgt.mobile.android.impl.fcm;
/**
* Represents model object for holding GCM response data.
* Represents model object for holding FCM response data.
*/
public class GCMResult {
public class FCMResult {
private String errorMsg;
private String msg;

@ -16,7 +16,7 @@
* under the License.
*/
package org.wso2.carbon.device.mgt.mobile.android.impl.gcm;
package org.wso2.carbon.device.mgt.mobile.android.impl.fcm;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@ -26,17 +26,17 @@ import java.util.ArrayList;
import java.util.List;
/**
* GCM notification service implementation for Android platform.
* FCM notification service implementation for Android platform.
*/
public class GCMService {
public class FCMService {
private static final Log log = LogFactory.getLog(GCMService.class);
private static final Log log = LogFactory.getLog(FCMService.class);
private static final String NOTIFIER_TYPE = "notifierType";
private static final String GCM_NOTIFIER_CODE = "2";
private static final String FCM_NOTIFIER_CODE = "2";
public boolean isGCMEnabled() {
String notifierType = GCMUtil.getConfigurationProperty(NOTIFIER_TYPE);
if (GCM_NOTIFIER_CODE.equals(notifierType)) {
public boolean isFCMEnabled() {
String notifierType = FCMUtil.getConfigurationProperty(NOTIFIER_TYPE);
if (FCM_NOTIFIER_CODE.equals(notifierType)) {
return true;
}
return false;
@ -45,20 +45,20 @@ public class GCMService {
public void sendNotification(String messageData, Device device) {
List<Device> devices = new ArrayList<>(1);
devices.add(device);
GCMResult result = GCMUtil.sendWakeUpCall(messageData, devices);
FCMResult result = FCMUtil.sendWakeUpCall(messageData, devices);
if (result.getStatusCode() != 200) {
log.error("Exception occurred while sending the GCM notification : " + result.getErrorMsg());
log.error("Exception occurred while sending the FCM notification : " + result.getErrorMsg());
}
}
public void sendNotification(String messageData, List<Device> devices) {
GCMResult result = GCMUtil.sendWakeUpCall(messageData, devices);
FCMResult result = FCMUtil.sendWakeUpCall(messageData, devices);
if (result.getStatusCode() != 200) {
log.error("Exception occurred while sending the GCM notification : " + result.getErrorMsg());
log.error("Exception occurred while sending the FCM notification : " + result.getErrorMsg());
}
}
public void resetTenantConfigCache() {
GCMUtil.resetTenantConfigCache();
FCMUtil.resetTenantConfigCache();
}
}

@ -16,7 +16,7 @@
* under the License.
*/
package org.wso2.carbon.device.mgt.mobile.android.impl.gcm;
package org.wso2.carbon.device.mgt.mobile.android.impl.fcm;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
@ -45,32 +45,32 @@ import java.util.HashMap;
import java.util.List;
/**
* Implements utility methods used by GCMService.
* Implements utility methods used by FCMService.
*/
public class GCMUtil {
public class FCMUtil {
private static final Log log = LogFactory.getLog(GCMService.class);
private static final Log log = LogFactory.getLog(FCMService.class);
private final static String GCM_ENDPOINT = "https://fcm.googleapis.com/fcm/send";
private static final String GCM_API_KEY = "gcmAPIKey";
private final static String FCM_ENDPOINT = "https://fcm.googleapis.com/fcm/send";
private static final String FCM_API_KEY = "fcmAPIKey";
private static final int TIME_TO_LIVE = 60;
private static final int HTTP_STATUS_CODE_OK = 200;
private static HashMap<Integer, PlatformConfiguration> tenantConfigurationCache = new HashMap<>();
public static GCMResult sendWakeUpCall(String message, List<Device> devices) {
GCMResult result = new GCMResult();
public static FCMResult sendWakeUpCall(String message, List<Device> devices) {
FCMResult result = new FCMResult();
byte[] bytes = getGCMRequest(message, getGCMTokens(devices)).getBytes();
byte[] bytes = getFCMRequest(message, getFCMTokens(devices)).getBytes();
HttpURLConnection conn;
try {
conn = (HttpURLConnection) (new URL(GCM_ENDPOINT)).openConnection();
conn = (HttpURLConnection) (new URL(FCM_ENDPOINT)).openConnection();
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setFixedLengthStreamingMode(bytes.length);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "key=" + getConfigurationProperty(GCM_API_KEY));
conn.setRequestProperty("Authorization", "key=" + getConfigurationProperty(FCM_API_KEY));
OutputStream out = conn.getOutputStream();
out.write(bytes);
@ -86,7 +86,7 @@ public class GCMUtil {
} catch (ProtocolException e) {
log.error("Exception occurred while setting the HTTP protocol.", e);
} catch (IOException ex) {
log.error("Exception occurred while sending the GCM request.", ex);
log.error("Exception occurred while sending the FCM request.", ex);
}
return result;
@ -114,16 +114,16 @@ public class GCMUtil {
return null;
}
private static String getGCMRequest(String message, List<String> registrationIds) {
JsonObject gcmRequest = new JsonObject();
gcmRequest.addProperty("delay_while_idle", false);
gcmRequest.addProperty("time_to_live", TIME_TO_LIVE);
private static String getFCMRequest(String message, List<String> registrationIds) {
JsonObject fcmRequest = new JsonObject();
fcmRequest.addProperty("delay_while_idle", false);
fcmRequest.addProperty("time_to_live", TIME_TO_LIVE);
//Add message to GCM request
//Add message to FCM request
JsonObject data = new JsonObject();
if (message != null && !message.isEmpty()) {
data.addProperty("data", message);
gcmRequest.add("data", data);
fcmRequest.add("data", data);
}
//Set device reg-ids
@ -135,27 +135,27 @@ public class GCMUtil {
regIds.add(new JsonPrimitive(regId));
}
gcmRequest.add("registration_ids", regIds);
return gcmRequest.toString();
fcmRequest.add("registration_ids", regIds);
return fcmRequest.toString();
}
private static List<String> getGCMTokens(List<Device> devices) {
private static List<String> getFCMTokens(List<Device> devices) {
List<String> tokens = new ArrayList<>(devices.size());
for (Device device : devices) {
tokens.add(getGCMToken(device.getProperties()));
tokens.add(getFCMToken(device.getProperties()));
}
return tokens;
}
private static String getGCMToken(List<Device.Property> properties) {
String gcmToken = null;
private static String getFCMToken(List<Device.Property> properties) {
String fcmToken = null;
for (Device.Property property : properties) {
if (AndroidPluginConstants.GCM_TOKEN.equals(property.getName())) {
gcmToken = property.getValue();
if (AndroidPluginConstants.FCM_TOKEN.equals(property.getName())) {
fcmToken = property.getValue();
break;
}
}
return gcmToken;
return fcmToken;
}
public static String getConfigurationProperty(String property) {

@ -25,7 +25,7 @@ public final class AndroidPluginConstants {
//Properties related to AD_DEVICE table
public static final String DEVICE_ID = "DEVICE_ID";
public static final String GCM_TOKEN = "GCM_TOKEN";
public static final String FCM_TOKEN = "FCM_TOKEN";
public static final String DEVICE_INFO = "DEVICE_INFO";
public static final String SERIAL = "SERIAL";
public static final String DEVICE_MODEL = "DEVICE_MODEL";
@ -50,7 +50,7 @@ public final class AndroidPluginConstants {
throw new AssertionError();
}
public static final String GCM = "GCM";
public static final String FCM = "FCM";
public static final String LOCAL = "LOCAL";
}

@ -19,7 +19,7 @@
package org.wso2.carbon.device.mgt.mobile.android.internal;
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
import org.wso2.carbon.device.mgt.mobile.android.impl.gcm.GCMService;
import org.wso2.carbon.device.mgt.mobile.android.impl.fcm.FCMService;
import org.wso2.carbon.registry.core.service.RegistryService;
/**
@ -29,7 +29,7 @@ public class AndroidDeviceManagementDataHolder {
private RegistryService registryService;
private DeviceManagementService androidDeviceManagementService;
private GCMService gcmService;
private FCMService fcmService;
private static AndroidDeviceManagementDataHolder thisInstance = new AndroidDeviceManagementDataHolder();
@ -57,11 +57,11 @@ public class AndroidDeviceManagementDataHolder {
this.androidDeviceManagementService = androidDeviceManagementService;
}
public GCMService getGCMService() {
return gcmService;
public FCMService getFCMService() {
return fcmService;
}
public void setGCMService(GCMService gcmService) {
this.gcmService = gcmService;
public void setFCMService(FCMService fcmService) {
this.fcmService = fcmService;
}
}

@ -25,7 +25,7 @@ import org.osgi.framework.ServiceRegistration;
import org.osgi.service.component.ComponentContext;
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
import org.wso2.carbon.device.mgt.mobile.android.impl.AndroidDeviceManagementService;
import org.wso2.carbon.device.mgt.mobile.android.impl.gcm.GCMService;
import org.wso2.carbon.device.mgt.mobile.android.impl.fcm.FCMService;
import org.wso2.carbon.ndatasource.core.DataSourceService;
import org.wso2.carbon.registry.core.service.RegistryService;
@ -50,7 +50,7 @@ public class AndroidDeviceManagementServiceComponent {
private static final Log log = LogFactory.getLog(AndroidDeviceManagementServiceComponent.class);
private ServiceRegistration androidServiceRegRef;
private ServiceRegistration gcmServiceRegRef;
private ServiceRegistration fcmServiceRegRef;
protected void activate(ComponentContext ctx) {
@ -61,14 +61,14 @@ public class AndroidDeviceManagementServiceComponent {
BundleContext bundleContext = ctx.getBundleContext();
DeviceManagementService androidDeviceManagementService = new AndroidDeviceManagementService();
GCMService gcmService = new GCMService();
FCMService fcmService = new FCMService();
// androidServiceRegRef =
// bundleContext.registerService(DeviceManagementService.class.getName(),
// androidDeviceManagementService, null);
gcmServiceRegRef =
bundleContext.registerService(GCMService.class.getName(), gcmService, null);
fcmServiceRegRef =
bundleContext.registerService(FCMService.class.getName(), fcmService, null);
// Policy management service
@ -78,7 +78,7 @@ public class AndroidDeviceManagementServiceComponent {
AndroidDeviceManagementDataHolder.getInstance().setAndroidDeviceManagementService(
androidDeviceManagementService);
AndroidDeviceManagementDataHolder.getInstance().setGCMService(gcmService);
AndroidDeviceManagementDataHolder.getInstance().setFCMService(fcmService);
if (log.isDebugEnabled()) {
log.debug("Android Mobile Device Management Service Component has been successfully activated");
@ -96,8 +96,8 @@ public class AndroidDeviceManagementServiceComponent {
if (androidServiceRegRef != null) {
androidServiceRegRef.unregister();
}
if (gcmServiceRegRef != null) {
gcmServiceRegRef.unregister();
if (fcmServiceRegRef != null) {
fcmServiceRegRef.unregister();
}
if (log.isDebugEnabled()) {
log.debug(

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

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

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

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

@ -30,8 +30,8 @@ var responseCodes = {
var configParams = {
"NOTIFIER_TYPE": "notifierType",
"NOTIFIER_FREQUENCY": "notifierFrequency",
"GCM_API_KEY": "gcmAPIKey",
"GCM_SENDER_ID": "gcmSenderId",
"FCM_API_KEY": "fcmAPIKey",
"FCM_SENDER_ID": "fcmSenderId",
"ANDROID_EULA": "androidEula",
"IOS_EULA": "iosEula",
"CONFIG_COUNTRY": "configCountry",

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

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

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

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

@ -23,7 +23,7 @@
<parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>analytics-feature</artifactId>
<version>3.0.13-SNAPSHOT</version>
<version>3.0.15-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

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

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

@ -22,7 +22,7 @@
<parent>
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
<artifactId>device-types-feature</artifactId>
<version>3.0.13-SNAPSHOT</version>
<version>3.0.15-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

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

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

Loading…
Cancel
Save