diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/pom.xml b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/pom.xml
index a5834da96..2e250eb6d 100644
--- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/pom.xml
+++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/pom.xml
@@ -44,24 +44,7 @@
cxf-rt-frontend-jaxrs
provided
-
-
- org.eclipse.paho
- org.eclipse.paho.client.mqttv3
- provided
-
-
-
- org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot
- provided
-
-
- org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot.androidsense.plugin
- provided
-
org.codehaus.jackson
@@ -82,12 +65,6 @@
provided
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.device.mgt.analytics.data.publisher
- provided
-
-
org.wso2.carbon
org.wso2.carbon.utils
@@ -171,6 +148,11 @@
org.wso2.carbon.apimgt.application.extension
provided
+
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.device.mgt.extensions
+ provided
+
diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseServiceImpl.java b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseServiceImpl.java
index f1483e417..02643410f 100644
--- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseServiceImpl.java
+++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseServiceImpl.java
@@ -30,12 +30,10 @@ import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroupConstants;
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
import org.wso2.carbon.device.mgt.core.operation.mgt.CommandOperation;
-import org.wso2.carbon.device.mgt.iot.androidsense.plugin.constants.AndroidSenseConstants;
+import org.wso2.carbon.device.mgt.iot.androidsense.service.impl.constants.AndroidSenseConstants;
import org.wso2.carbon.device.mgt.iot.androidsense.service.impl.util.APIUtil;
import org.wso2.carbon.device.mgt.iot.androidsense.service.impl.util.AndroidConfiguration;
-import org.wso2.carbon.device.mgt.iot.androidsense.service.impl.util.Constants;
import org.wso2.carbon.device.mgt.iot.androidsense.service.impl.util.SensorRecord;
-import org.wso2.carbon.device.mgt.iot.util.Utils;
import javax.ws.rs.*;
import javax.ws.rs.core.Response;
@@ -286,8 +284,8 @@ public class AndroidSenseServiceImpl implements AndroidSenseService {
AndroidConfiguration androidConfiguration = new AndroidConfiguration();
androidConfiguration.setTenantDomain(APIUtil.getAuthenticatedUserTenantDomain());
String mqttEndpoint = DEFAULT_MQTT_ENDPOINT;
- if (mqttEndpoint.contains(Constants.LOCALHOST)) {
- mqttEndpoint = mqttEndpoint.replace(Constants.LOCALHOST, Utils.getServerUrl());
+ if (mqttEndpoint.contains(AndroidSenseConstants.LOCALHOST)) {
+ mqttEndpoint = mqttEndpoint.replace(AndroidSenseConstants.LOCALHOST, APIUtil.getServerUrl());
}
androidConfiguration.setMqttEndpoint(mqttEndpoint);
return Response.ok(androidConfiguration.toString()).build();
diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/constants/AndroidSenseConstants.java b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/constants/AndroidSenseConstants.java
index 26e7691d2..ea62644b9 100644
--- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/constants/AndroidSenseConstants.java
+++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/constants/AndroidSenseConstants.java
@@ -19,8 +19,6 @@ package org.wso2.carbon.device.mgt.iot.androidsense.service.impl.constants;
public class AndroidSenseConstants {
public final static String DEVICE_TYPE = "android_sense";
- public final static String DEVICE_PLUGIN_DEVICE_NAME = "DEVICE_NAME";
- public final static String DEVICE_PLUGIN_DEVICE_ID = "ANDROID_DEVICE_ID";
//Android Sensor names
public static final String SENSOR_ACCELEROMETER = "accelerometer";
@@ -35,9 +33,13 @@ public class AndroidSenseConstants {
public static final String SENSOR_ROTATION = "rotation";
public static final String SENSOR_WORDCOUNT = "wordcounter";
//MQTT Subscribe topic
- public final static String DEVICE_TYPE_PROVIDER_DOMAIN = "carbon.super";
//mqtt tranport related constants
public static final String MQTT_ADAPTER_TOPIC_PROPERTY_NAME = "mqtt.adapter.topic";
+ public static final String HOST_NAME = "HostName";
+ public static final String LOCALHOST = "localhost";
+ public static final String CONFIG_TYPE = "general";
+ public static final String DEFAULT_ENDPOINT = "tcp://localhost:1883";
+
}
diff --git a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/util/APIUtil.java b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/util/APIUtil.java
index 2dbe9d7e0..b07ca4b1a 100644
--- a/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/util/APIUtil.java
+++ b/components/iot-plugins/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/util/APIUtil.java
@@ -10,6 +10,7 @@ import org.wso2.carbon.analytics.dataservice.core.AnalyticsDataServiceUtils;
import org.wso2.carbon.analytics.datasource.commons.Record;
import org.wso2.carbon.analytics.datasource.commons.exception.AnalyticsException;
import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService;
+import org.wso2.carbon.base.ServerConfiguration;
import org.wso2.carbon.context.CarbonContext;
import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationService;
@@ -18,13 +19,13 @@ import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManageme
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfigurationManagementService;
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
-import org.wso2.carbon.device.mgt.iot.util.Utils;
+import org.wso2.carbon.device.mgt.iot.androidsense.service.impl.constants.AndroidSenseConstants;
import org.wso2.carbon.event.output.adapter.core.OutputEventAdapterService;
import org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService;
-import org.wso2.carbon.utils.CarbonUtils;
+import org.wso2.carbon.utils.NetworkUtils;
+import java.net.SocketException;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -204,10 +205,10 @@ public class APIUtil {
}
public static String getMqttEndpoint() throws ConfigurationManagementException {
- String iotServerIP = Constants.DEFAULT_ENDPOINT;
- iotServerIP = iotServerIP.replace(Constants.LOCALHOST, Utils.getServerUrl());;
+ String iotServerIP = AndroidSenseConstants.DEFAULT_ENDPOINT;
+ iotServerIP = iotServerIP.replace(AndroidSenseConstants.LOCALHOST, getServerUrl());;
PlatformConfiguration configuration = APIUtil.getTenantConfigurationManagementService().getConfiguration(
- Constants.CONFIG_TYPE);
+ AndroidSenseConstants.CONFIG_TYPE);
if (configuration != null && configuration.getConfiguration() != null && configuration
.getConfiguration().size() > 0) {
List configurations = configuration.getConfiguration();
@@ -221,4 +222,17 @@ public class APIUtil {
}
return iotServerIP;
}
+
+ public static String getServerUrl() {
+ String hostName = ServerConfiguration.getInstance().getFirstProperty(AndroidSenseConstants.HOST_NAME);
+ try {
+ if (hostName == null) {
+ hostName = NetworkUtils.getLocalHostname();
+ }
+ } catch (SocketException e) {
+ hostName = "localhost";
+ log.warn("Failed retrieving the hostname, therefore set to localhost", e);
+ }
+ return hostName;
+ }
}
diff --git a/components/iot-plugins/androidsense-plugin/pom.xml b/components/iot-plugins/androidsense-plugin/pom.xml
index 4438378f0..bada159fe 100644
--- a/components/iot-plugins/androidsense-plugin/pom.xml
+++ b/components/iot-plugins/androidsense-plugin/pom.xml
@@ -35,7 +35,6 @@
org.wso2.carbon.device.mgt.iot.androidsense.analytics
org.wso2.carbon.device.mgt.iot.androidsense.api
- org.wso2.carbon.device.mgt.iot.androidsense.plugin
org.wso2.carbon.device.mgt.iot.androidsense.ui
diff --git a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/pom.xml b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/pom.xml
index 3186c36b6..53906c427 100644
--- a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/pom.xml
+++ b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/pom.xml
@@ -109,13 +109,6 @@
provided
-
-
- org.eclipse.paho
- org.eclipse.paho.client.mqttv3
- provided
-
-
org.apache.httpcomponents
@@ -123,16 +116,6 @@
4.1
provided
-
- org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot
- provided
-
-
- org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot.arduino.plugin
- provided
-
@@ -154,18 +137,17 @@
provided
- org.wso2.carbon.devicemgt
- org.wso2.carbon.apimgt.webapp.publisher
+ org.wso2.carbon.analytics
+ org.wso2.carbon.analytics.api
provided
- org.wso2.carbon.analytics
- org.wso2.carbon.analytics.api
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.device.mgt.extensions
provided
-
diff --git a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoServiceImpl.java b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoServiceImpl.java
index a2fae963b..acc6adae6 100644
--- a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoServiceImpl.java
+++ b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoServiceImpl.java
@@ -34,11 +34,11 @@ import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroupConstants;
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
import org.wso2.carbon.device.mgt.core.operation.mgt.CommandOperation;
-import org.wso2.carbon.device.mgt.iot.arduino.plugin.constants.ArduinoConstants;
+import org.wso2.carbon.device.mgt.iot.arduino.service.impl.constants.ArduinoConstants;
import org.wso2.carbon.device.mgt.iot.arduino.service.impl.dto.SensorRecord;
import org.wso2.carbon.device.mgt.iot.arduino.service.impl.util.APIUtil;
+import org.wso2.carbon.device.mgt.iot.arduino.service.impl.util.ZipArchive;
import org.wso2.carbon.device.mgt.iot.arduino.service.impl.util.ZipUtil;
-import org.wso2.carbon.device.mgt.iot.util.ZipArchive;
import org.wso2.carbon.identity.jwt.client.extension.JWTClient;
import org.wso2.carbon.identity.jwt.client.extension.dto.AccessTokenInfo;
import org.wso2.carbon.identity.jwt.client.extension.exception.JWTClientException;
@@ -54,7 +54,6 @@ import java.util.*;
public class ArduinoServiceImpl implements ArduinoService {
private static Log log = LogFactory.getLog(ArduinoServiceImpl.class);
- private static Map> internalControlsQueue = new HashMap<>();
private static final String KEY_TYPE = "PRODUCTION";
private static ApiApplicationKey apiApplicationKey;
diff --git a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/constants/ArduinoConstants.java b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/constants/ArduinoConstants.java
index ae2721e5d..8a438574e 100644
--- a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/constants/ArduinoConstants.java
+++ b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/constants/ArduinoConstants.java
@@ -20,9 +20,6 @@ package org.wso2.carbon.device.mgt.iot.arduino.service.impl.constants;
public class ArduinoConstants {
public final static String DEVICE_TYPE = "arduino";
- public final static String DEVICE_PLUGIN_DEVICE_NAME = "DEVICE_NAME";
- public final static String DEVICE_TYPE_PROVIDER_DOMAIN = "carbon.super";
- public final static String DEVICE_PLUGIN_DEVICE_ID = "ARDUINO_DEVICE_ID";
public static final String URL_PREFIX = "http://";
//sensor events summerized table name
diff --git a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/util/ArduinoServiceUtils.java b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/util/ArduinoServiceUtils.java
index bf9f0dcc2..4d1087345 100644
--- a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/util/ArduinoServiceUtils.java
+++ b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/util/ArduinoServiceUtils.java
@@ -25,11 +25,9 @@ import org.apache.http.client.methods.HttpGet;
import org.apache.http.concurrent.FutureCallback;
import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
import org.apache.http.impl.nio.client.HttpAsyncClients;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.device.mgt.analytics.data.publisher.exception.DataPublisherConfigurationException;
-import org.wso2.carbon.device.mgt.analytics.data.publisher.service.EventsPublisherService;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
-import org.wso2.carbon.device.mgt.iot.arduino.plugin.constants.ArduinoConstants;
+import org.wso2.carbon.device.mgt.iot.arduino.service.impl.constants.ArduinoConstants;
+
import javax.ws.rs.HttpMethod;
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/util/ZipUtil.java b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/util/ZipUtil.java
index 99b381a27..414b24847 100644
--- a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/util/ZipUtil.java
+++ b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/util/ZipUtil.java
@@ -18,20 +18,38 @@
package org.wso2.carbon.device.mgt.iot.arduino.service.impl.util;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.base.MultitenantConstants;
+import org.wso2.carbon.base.ServerConfiguration;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
-import org.wso2.carbon.device.mgt.iot.util.Utils;
-import org.wso2.carbon.device.mgt.iot.util.ZipArchive;
import org.wso2.carbon.utils.CarbonUtils;
+import org.wso2.carbon.utils.NetworkUtils;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.SocketException;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
/**
* This is used to create a zip file that includes the necessary configuration required for the agent.
@@ -40,6 +58,8 @@ public class ZipUtil {
private static final String HTTP_PORT_PROPERTY = "httpPort";
private static final String CONFIG_TYPE = "general";
+ private static final Log log = LogFactory.getLog(ZipUtil.class);
+ public static final String HOST_NAME = "HostName";
public ZipArchive createZipFile(String owner, String tenantDomain, String deviceType,
String deviceId, String deviceName, String token,
@@ -52,7 +72,7 @@ public class ZipUtil {
String iotServerIP;
try {
- iotServerIP = Utils.getServerUrl();
+ iotServerIP = getServerUrl();
String httpServerPort = System.getProperty(HTTP_PORT_PROPERTY);
Map contextParams = new HashMap<>();
@@ -88,7 +108,7 @@ public class ZipUtil {
contextParams.put("DEVICE_REFRESH_TOKEN", refreshToken);
ZipArchive zipFile;
- zipFile = Utils.getSketchArchive(archivesPath, templateSketchPath, contextParams, deviceName);
+ zipFile = getSketchArchive(archivesPath, templateSketchPath, contextParams, deviceName);
return zipFile;
} catch (IOException e) {
throw new DeviceManagementException("Zip File Creation Failed", e);
@@ -96,4 +116,227 @@ public class ZipUtil {
throw new DeviceManagementException("Failed to retrieve configuration", e);
}
}
+
+ private static String getServerUrl() {
+ String hostName = ServerConfiguration.getInstance().getFirstProperty(HOST_NAME);
+ try {
+ if (hostName == null) {
+ hostName = NetworkUtils.getLocalHostname();
+ }
+ } catch (SocketException e) {
+ hostName = "localhost";
+ log.warn("Failed retrieving the hostname, therefore set to localhost", e);
+ }
+ return hostName;
+ }
+
+ private static ZipArchive getSketchArchive(String archivesPath, String templateSketchPath, Map contextParams
+ , String zipFileName)
+ throws DeviceManagementException, IOException {
+ String sketchPath = CarbonUtils.getCarbonHome() + File.separator + templateSketchPath;
+ FileUtils.deleteDirectory(new File(archivesPath));//clear directory
+ FileUtils.deleteDirectory(new File(archivesPath + ".zip"));//clear zip
+ if (!new File(archivesPath).mkdirs()) { //new dir
+ String message = "Could not create directory at path: " + archivesPath;
+ log.error(message);
+ throw new DeviceManagementException(message);
+ }
+ zipFileName = zipFileName + ".zip";
+ try {
+ Map> properties = getProperties(sketchPath + File.separator + "sketch" + ".properties");
+ List templateFiles = properties.get("templates");
+
+ for (String templateFile : templateFiles) {
+ parseTemplate(templateSketchPath + File.separator + templateFile, archivesPath + File.separator + templateFile,
+ contextParams);
+ }
+
+ templateFiles.add("sketch.properties"); // ommit copying the props file
+ copyFolder(new File(sketchPath), new File(archivesPath), templateFiles);
+ createZipArchive(archivesPath);
+ FileUtils.deleteDirectory(new File(archivesPath));
+ File zip = new File(archivesPath + ".zip");
+ return new ZipArchive(zipFileName, zip);
+ } catch (IOException ex) {
+ throw new DeviceManagementException(
+ "Error occurred when trying to read property " + "file sketch.properties", ex);
+ }
+ }
+
+ private static Map> getProperties(String propertyFilePath) throws IOException {
+ Properties prop = new Properties();
+ InputStream input = null;
+
+ try {
+ input = new FileInputStream(propertyFilePath);
+ // load a properties file
+ prop.load(input);
+ Map> properties = new HashMap>();
+
+ String templates = prop.getProperty("templates");
+ List list = new ArrayList(Arrays.asList(templates.split(",")));
+ properties.put("templates", list);
+
+ final String filename = prop.getProperty("zipfilename");
+ list = new ArrayList() {{
+ add(filename);
+ }};
+ properties.put("zipfilename", list);
+ return properties;
+
+ } finally {
+ if (input != null) {
+ try {
+ input.close();
+ } catch (IOException e) {
+ log.error("Failed closing connection", e);
+ }
+ }
+ }
+ }
+
+ private static void parseTemplate(String srcFile, String dstFile, Map contextParams) throws IOException {
+ //read from file
+ FileInputStream inputStream = null;
+ FileOutputStream outputStream = null;
+ try {
+ inputStream = new FileInputStream(srcFile);
+ outputStream = new FileOutputStream(dstFile);
+ String content = IOUtils.toString(inputStream, StandardCharsets.UTF_8.toString());
+ Iterator iterator = contextParams.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry mapEntry = (Map.Entry) iterator.next();
+ content = content.replaceAll("\\$\\{" + mapEntry.getKey() + "\\}", mapEntry.getValue().toString());
+ }
+ IOUtils.write(content, outputStream, StandardCharsets.UTF_8.toString());
+ } finally {
+ if (inputStream != null) {
+ inputStream.close();
+ }
+ if (outputStream != null) {
+ outputStream.close();
+ }
+ }
+ }
+
+ private static void copyFolder(File src, File dest, List excludeFileNames) throws IOException {
+
+ if (src.isDirectory()) {
+ //if directory not exists, create it
+ if (!dest.exists() && !dest.mkdirs()) {
+ String message = "Could not create directory at path: " + dest;
+ log.error(message);
+ throw new IOException(message);
+ }
+ //list all the directory contents
+ String files[] = src.list();
+
+ if (files == null) {
+ log.warn("There are no files insides the directory " + src.getAbsolutePath());
+ return;
+ }
+
+ for (String file : files) {
+ //construct the src and dest file structure
+ File srcFile = new File(src, file);
+ File destFile = new File(dest, file);
+ //recursive copy
+ copyFolder(srcFile, destFile, excludeFileNames);
+ }
+
+ } else {
+ for (String fileName : excludeFileNames) {
+ if (src.getName().equals(fileName)) {
+ return;
+ }
+ }
+ //if file, then copy it
+ //Use bytes stream to support all file types
+ InputStream in = null;
+ OutputStream out = null;
+
+ try {
+ in = new FileInputStream(src);
+ out = new FileOutputStream(dest);
+
+ byte[] buffer = new byte[1024];
+
+ int length;
+ //copy the file content in bytes
+ while ((length = in.read(buffer)) > 0) {
+ out.write(buffer, 0, length);
+ }
+ } finally {
+ if (in != null) {
+ in.close();
+ }
+ if (out != null) {
+ out.close();
+ }
+ }
+ }
+ }
+
+ private static boolean createZipArchive(String srcFolder) throws IOException {
+ BufferedInputStream origin = null;
+ ZipOutputStream out = null;
+
+ try {
+ final int BUFFER = 2048;
+ FileOutputStream dest = new FileOutputStream(new File(srcFolder + ".zip"));
+ out = new ZipOutputStream(new BufferedOutputStream(dest));
+ byte data[] = new byte[BUFFER];
+ File subDir = new File(srcFolder);
+ String subdirList[] = subDir.list();
+ if (subdirList == null) {
+ log.warn("The sub directory " + subDir.getAbsolutePath() + " is empty");
+ return false;
+ }
+ for (String sd : subdirList) {
+ // get a list of files from current directory
+ File f = new File(srcFolder + "/" + sd);
+ if (f.isDirectory()) {
+ String files[] = f.list();
+
+ if (files == null) {
+ log.warn("The current directory " + f.getAbsolutePath() + " is empty. Has no files");
+ return false;
+ }
+
+ for (int i = 0; i < files.length; i++) {
+ FileInputStream fi = new FileInputStream(srcFolder + "/" + sd + "/" + files[i]);
+ origin = new BufferedInputStream(fi, BUFFER);
+ ZipEntry entry = new ZipEntry(sd + "/" + files[i]);
+ out.putNextEntry(entry);
+ int count;
+ while ((count = origin.read(data, 0, BUFFER)) != -1) {
+ out.write(data, 0, count);
+ out.flush();
+ }
+
+ }
+ } else //it is just a file
+ {
+ FileInputStream fi = new FileInputStream(f);
+ origin = new BufferedInputStream(fi, BUFFER);
+ ZipEntry entry = new ZipEntry(sd);
+ out.putNextEntry(entry);
+ int count;
+ while ((count = origin.read(data, 0, BUFFER)) != -1) {
+ out.write(data, 0, count);
+ out.flush();
+ }
+ }
+ }
+ out.flush();
+ } finally {
+ if (origin != null) {
+ origin.close();
+ }
+ if (out != null) {
+ out.close();
+ }
+ }
+ return true;
+ }
}
diff --git a/components/iot-plugins/arduino-plugin/pom.xml b/components/iot-plugins/arduino-plugin/pom.xml
index 1c202c5c4..a182484ca 100644
--- a/components/iot-plugins/arduino-plugin/pom.xml
+++ b/components/iot-plugins/arduino-plugin/pom.xml
@@ -35,7 +35,6 @@
org.wso2.carbon.device.mgt.iot.arduino.api
- org.wso2.carbon.device.mgt.iot.arduino.plugin
org.wso2.carbon.device.mgt.iot.arduino.ui
org.wso2.carbon.device.mgt.iot.arduino.analytics
diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/pom.xml b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/pom.xml
index 3e2a8cc02..8aba9cf0f 100644
--- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/pom.xml
+++ b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/pom.xml
@@ -28,10 +28,10 @@
4.0.0
- org.wso2.carbon.device.mgt.iot
+ org.wso2.carbon.device.mgt.iot.url.printer
bundle
- WSO2 Carbon - IoT Device Management Common Impl
- WSO2 Carbon - IoT Device Management and Control Implementation
+ WSO2 Carbon - IoT url printer
+ WSO2 Carbon - IoT url printer
http://wso2.org
@@ -59,44 +59,23 @@
${project.artifactId}
${carbon.devicemgt.plugins.version}
IoT Server Impl Bundle
- org.wso2.carbon.device.mgt.iot.internal
+ org.wso2.carbon.device.mgt.iot.url.printer.internal
- org.wso2.carbon.base.*,
org.osgi.framework,
org.osgi.service.component,
- org.apache.axis2.context,
- org.apache.commons.io,
org.apache.commons.logging,
+ org.apache.axis2.*;version="${axis2.osgi.version.range}",
org.wso2.carbon.core,
- org.wso2.carbon.device.mgt.common,
- org.wso2.carbon.utils,
- javax.xml.bind,
- javax.xml.bind.annotation,
- javax.xml.parsers; version="${javax.xml.parsers.import.pkg.version}",
- org.w3c.dom
+ org.wso2.carbon.utils.*,
- !org.wso2.carbon.device.mgt.iot.internal,
- org.wso2.carbon.device.mgt.iot.*;version="${project.version}"
+ !org.wso2.carbon.device.mgt.iot.url.printer.internal,
+ org.wso2.carbon.device.mgt.iot.url.printer.*;version="${project.version}"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -111,89 +90,19 @@
org.wso2.carbon
- org.wso2.carbon.logging
-
-
- org.wso2.carbon
- org.wso2.carbon.utils
-
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.device.mgt.common
-
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.device.mgt.core
-
-
- org.apache.httpcomponents.wso2
- httpclient
-
-
+ org.wso2.carbon.core
org.wso2.carbon
- org.wso2.carbon.ndatasource.core
-
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.policy.mgt.core
- provided
-
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.policy.mgt.common
- provided
-
-
-
- org.json.wso2
- json
+ org.wso2.carbon.logging
org.wso2.carbon
- org.wso2.carbon.core
-
-
- commons-collections
- commons-collections
-
-
- commons-configuration
- commons-configuration
-
-
- org.wso2.carbon.analytics-common
- org.wso2.carbon.databridge.agent
-
-
- org.wso2.carbon.analytics-common
- org.wso2.carbon.databridge.core
-
-
- org.wso2.carbon.commons
- org.wso2.carbon.databridge.commons
-
-
- org.eclipse.paho
- org.eclipse.paho.client.mqttv3
-
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.device.mgt.analytics.data.publisher
-
-
-
- org.igniterealtime.smack.wso2
- smack
-
-
- org.igniterealtime.smack.wso2
- smackx
+ org.wso2.carbon.utils
- commons-codec
- commons-codec
+ org.apache.axis2.wso2
+ axis2
diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/src/main/java/org/wso2/carbon/device/mgt/iot/URLPrinterStartupHandler.java b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/src/main/java/org/wso2/carbon/device/mgt/iot/URLPrinterStartupHandler.java
deleted file mode 100644
index 39adfd9ae..000000000
--- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/src/main/java/org/wso2/carbon/device/mgt/iot/URLPrinterStartupHandler.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.iot;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.core.ServerStartupObserver;
-import org.wso2.carbon.device.mgt.iot.internal.IoTDeviceManagementDataHolder;
-import org.wso2.carbon.utils.CarbonUtils;
-import org.wso2.carbon.utils.ConfigurationContextService;
-import org.wso2.carbon.utils.NetworkUtils;
-
-public class URLPrinterStartupHandler implements ServerStartupObserver {
- private static final Log log = LogFactory.getLog(URLPrinterStartupHandler.class);
-
- @Override
- public void completingServerStartup() {
- }
-
- @Override
- public void completedServerStartup() {
- log.info("IoT Console URL : " + this.getIoTUrl());
- }
-
- private String getIoTUrl() {
- // Hostname
- String hostName = "localhost";
- try {
- hostName = NetworkUtils.getMgtHostName();
- } catch (Exception ignored) {
- }
- // HTTPS port
- String mgtConsoleTransport = CarbonUtils.getManagementTransport();
- ConfigurationContextService configContextService =
- IoTDeviceManagementDataHolder.getInstance().getConfigurationContextService();
- int port = CarbonUtils.getTransportPort(configContextService, mgtConsoleTransport);
- int httpsProxyPort =
- CarbonUtils.getTransportProxyPort(configContextService.getServerConfigContext(), mgtConsoleTransport);
- if (httpsProxyPort > 0) {
- port = httpsProxyPort;
- }
- return "https://" + hostName + ":" + port + "/devicemgt";
- }
-}
diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/src/main/java/org/wso2/carbon/device/mgt/iot/internal/UrlPrinterDataHolder.java b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/src/main/java/org/wso2/carbon/device/mgt/iot/internal/UrlPrinterDataHolder.java
deleted file mode 100644
index 41c39fd2d..000000000
--- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/src/main/java/org/wso2/carbon/device/mgt/iot/internal/UrlPrinterDataHolder.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.wso2.carbon.device.mgt.iot.internal;
-
-import org.wso2.carbon.utils.ConfigurationContextService;
-
-public class UrlPrinterDataHolder {
-
- private static UrlPrinterDataHolder thisInstance = new UrlPrinterDataHolder();
-
- private UrlPrinterDataHolder() {}
-
- public static UrlPrinterDataHolder getInstance() {
- return thisInstance;
- }
-
-
-}
diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/src/main/java/org/wso2/carbon/device/mgt/iot/internal/UrlPrinterServiceComponent.java b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/src/main/java/org/wso2/carbon/device/mgt/iot/internal/UrlPrinterServiceComponent.java
deleted file mode 100644
index 3cd734802..000000000
--- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/src/main/java/org/wso2/carbon/device/mgt/iot/internal/UrlPrinterServiceComponent.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.device.mgt.iot.internal;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.osgi.framework.BundleContext;
-import org.osgi.service.component.ComponentContext;
-import org.wso2.carbon.core.ServerStartupObserver;
-import org.wso2.carbon.device.mgt.iot.devicetype.DeviceTypeConfigService;
-import org.wso2.carbon.device.mgt.iot.devicetype.DeviceTypeConfigServiceImpl;
-import org.wso2.carbon.device.mgt.iot.URLPrinterStartupHandler;
-import org.wso2.carbon.utils.ConfigurationContextService;
-
-/**
- * @scr.component name="org.wso2.carbon.device.mgt.iot.url.printer.internal.UrlPrinterServiceComponent"
- * immediate="true"
- * @scr.reference name="config.context.service"
- * interface="org.wso2.carbon.utils.ConfigurationContextService"
- * cardinality="0..1"
- * policy="dynamic"
- * bind="setConfigurationContextService"
- * unbind="unsetConfigurationContextService"
- */
-public class UrlPrinterServiceComponent {
-
- private static final Log log = LogFactory.getLog(UrlPrinterServiceComponent.class);
-
- protected void activate(ComponentContext ctx) {
- if (log.isDebugEnabled()) {
- log.debug("Activating Iot Device Management Service Component");
- }
- try {
- BundleContext bundleContext = ctx.getBundleContext();
- bundleContext.registerService(ServerStartupObserver.class.getName(), new URLPrinterStartupHandler(), null);
- if (log.isDebugEnabled()) {
- log.debug("Iot Device Management Service Component has been successfully activated");
- }
- DeviceTypeConfigServiceImpl deviceTypeConfigLoaderService = new DeviceTypeConfigServiceImpl();
- deviceTypeConfigLoaderService.initialize();
- bundleContext.registerService(DeviceTypeConfigService.class.getName(), deviceTypeConfigLoaderService,
- null);
- } catch (Throwable e) {
- log.error("Error occurred while activating Iot Device Management Service Component", e);
- }
- }
-
- protected void deactivate(ComponentContext ctx) {
- if (log.isDebugEnabled()) {
- log.debug("De-activating Iot Device Management Service Component");
- }
- }
-
- protected void setConfigurationContextService(ConfigurationContextService configurationContextService) {
- if (log.isDebugEnabled()) {
- log.debug("Setting ConfigurationContextService");
- }
-
- IoTDeviceManagementDataHolder.getInstance().setConfigurationContextService(configurationContextService);
-
- }
-
- protected void unsetConfigurationContextService(ConfigurationContextService configurationContextService) {
- if (log.isDebugEnabled()) {
- log.debug("Un-setting ConfigurationContextService");
- }
- IoTDeviceManagementDataHolder.getInstance().setConfigurationContextService(null);
- }
-}
diff --git a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/src/main/java/org/wso2/carbon/device/mgt/iot/url/printer/internal/UrlPrinterServiceComponent.java b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/src/main/java/org/wso2/carbon/device/mgt/iot/url/printer/internal/UrlPrinterServiceComponent.java
index e2dd93ab9..38fb00168 100644
--- a/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/src/main/java/org/wso2/carbon/device/mgt/iot/url/printer/internal/UrlPrinterServiceComponent.java
+++ b/components/iot-plugins/iot-base-plugin/org.wso2.carbon.device.mgt.iot.url.printer/src/main/java/org/wso2/carbon/device/mgt/iot/url/printer/internal/UrlPrinterServiceComponent.java
@@ -23,7 +23,7 @@ import org.apache.commons.logging.LogFactory;
import org.osgi.framework.BundleContext;
import org.osgi.service.component.ComponentContext;
import org.wso2.carbon.core.ServerStartupObserver;
-import org.wso2.carbon.device.mgt.iot.URLPrinterStartupHandler;
+import org.wso2.carbon.device.mgt.iot.url.printer.URLPrinterStartupHandler;
import org.wso2.carbon.utils.ConfigurationContextService;
/**
diff --git a/components/iot-plugins/iot-base-plugin/pom.xml b/components/iot-plugins/iot-base-plugin/pom.xml
index 31ae28209..46c906fc9 100644
--- a/components/iot-plugins/iot-base-plugin/pom.xml
+++ b/components/iot-plugins/iot-base-plugin/pom.xml
@@ -33,7 +33,7 @@
http://wso2.org
- org.wso2.carbon.device.mgt.iot
+ org.wso2.carbon.device.mgt.iot.url.printer
org.wso2.carbon.device.mgt.iot.ui
org.wso2.carbon.device.mgt.iot.output.adapter.mqtt
org.wso2.carbon.device.mgt.iot.output.adapter.xmpp
diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/pom.xml b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/pom.xml
index e0cfde124..f811916a7 100644
--- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/pom.xml
+++ b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/pom.xml
@@ -69,13 +69,6 @@
provided
-
-
- org.eclipse.paho
- org.eclipse.paho.client.mqttv3
- provided
-
-
org.apache.httpcomponents
@@ -83,16 +76,6 @@
4.1
provided
-
- org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot
- provided
-
-
- org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot.raspberrypi.plugin
- provided
-
@@ -113,22 +96,11 @@
jsr311-api
provided
-
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.device.mgt.analytics.data.publisher
- provided
-
org.wso2.carbon.devicemgt
org.wso2.carbon.apimgt.annotations
provided
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.apimgt.webapp.publisher
- provided
-
org.wso2.carbon.devicemgt
org.wso2.carbon.identity.jwt.client.extension
@@ -144,6 +116,11 @@
org.wso2.carbon.analytics.api
provided
+
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.device.mgt.extensions
+ provided
+
diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiServiceImpl.java b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiServiceImpl.java
index 5b098a3e0..13b131041 100644
--- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiServiceImpl.java
+++ b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiServiceImpl.java
@@ -34,11 +34,11 @@ import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroupConstants;
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
import org.wso2.carbon.device.mgt.core.operation.mgt.CommandOperation;
-import org.wso2.carbon.device.mgt.iot.raspberrypi.plugin.constants.RaspberrypiConstants;
+import org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.constants.RaspberrypiConstants;
import org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.dto.SensorRecord;
import org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.util.APIUtil;
+import org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.util.ZipArchive;
import org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.util.ZipUtil;
-import org.wso2.carbon.device.mgt.iot.util.ZipArchive;
import org.wso2.carbon.identity.jwt.client.extension.JWTClient;
import org.wso2.carbon.identity.jwt.client.extension.dto.AccessTokenInfo;
import org.wso2.carbon.identity.jwt.client.extension.exception.JWTClientException;
diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/constants/RaspberrypiConstants.java b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/constants/RaspberrypiConstants.java
index 7bcdadccc..f77aabf80 100644
--- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/constants/RaspberrypiConstants.java
+++ b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/constants/RaspberrypiConstants.java
@@ -21,15 +21,12 @@ package org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.constants;
public class RaspberrypiConstants {
public final static String DEVICE_TYPE = "raspberrypi";
- public final static String DEVICE_PLUGIN_DEVICE_NAME = "DEVICE_NAME";
- public final static String DEVICE_PLUGIN_DEVICE_ID = "RASPBERRYPI_DEVICE_ID";
public final static String STATE_ON = "ON";
public final static String STATE_OFF = "OFF";
public static final String BULB_CONTEXT = "BULB";
//sensor events summerized table name
public static final String TEMPERATURE_EVENT_TABLE = "DEVICE_TEMPERATURE_SUMMARY";
- public final static String DEVICE_TYPE_PROVIDER_DOMAIN = "carbon.super";
//mqtt tranport related constants
public static final String MQTT_ADAPTER_TOPIC_PROPERTY_NAME = "mqtt.adapter.topic";
diff --git a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/util/ZipUtil.java b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/util/ZipUtil.java
index 834d31138..d12a2df04 100644
--- a/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/util/ZipUtil.java
+++ b/components/iot-plugins/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/util/ZipUtil.java
@@ -18,25 +18,45 @@
package org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.util;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.base.ServerConfiguration;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
-import org.wso2.carbon.device.mgt.iot.util.Utils;
-import org.wso2.carbon.device.mgt.iot.util.ZipArchive;
import org.wso2.carbon.utils.CarbonUtils;
+import org.wso2.carbon.utils.NetworkUtils;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.SocketException;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
/**
* This is used to create a zip file that includes the necessary configuration required for the agent.
*/
public class ZipUtil {
+ private static final Log log = LogFactory.getLog(ZipUtil.class);
+ public static final String HOST_NAME = "HostName";
private static final String HTTPS_PORT_PROPERTY = "httpsPort";
private static final String HTTP_PORT_PROPERTY = "httpPort";
@@ -57,7 +77,7 @@ public class ZipUtil {
String iotServerIP;
try {
- iotServerIP = Utils.getServerUrl();
+ iotServerIP = getServerUrl();
String httpsServerPort = System.getProperty(HTTPS_PORT_PROPERTY);
String httpServerPort = System.getProperty(HTTP_PORT_PROPERTY);
String httpsServerEP = HTTPS_PROTOCOL_APPENDER + iotServerIP + ":" + httpsServerPort;
@@ -101,7 +121,7 @@ public class ZipUtil {
contextParams.put("DEVICE_REFRESH_TOKEN", refreshToken);
ZipArchive zipFile;
- zipFile = Utils.getSketchArchive(archivesPath, templateSketchPath, contextParams, deviceName);
+ zipFile = getSketchArchive(archivesPath, templateSketchPath, contextParams, deviceName);
return zipFile;
} catch (IOException e) {
throw new DeviceManagementException("Zip File Creation Failed", e);
@@ -109,4 +129,227 @@ public class ZipUtil {
throw new DeviceManagementException("Failed to retrieve configuration", e);
}
}
+
+ private static String getServerUrl() {
+ String hostName = ServerConfiguration.getInstance().getFirstProperty(HOST_NAME);
+ try {
+ if (hostName == null) {
+ hostName = NetworkUtils.getLocalHostname();
+ }
+ } catch (SocketException e) {
+ hostName = "localhost";
+ log.warn("Failed retrieving the hostname, therefore set to localhost", e);
+ }
+ return hostName;
+ }
+
+ private static ZipArchive getSketchArchive(String archivesPath, String templateSketchPath, Map contextParams
+ , String zipFileName)
+ throws DeviceManagementException, IOException {
+ String sketchPath = CarbonUtils.getCarbonHome() + File.separator + templateSketchPath;
+ FileUtils.deleteDirectory(new File(archivesPath));//clear directory
+ FileUtils.deleteDirectory(new File(archivesPath + ".zip"));//clear zip
+ if (!new File(archivesPath).mkdirs()) { //new dir
+ String message = "Could not create directory at path: " + archivesPath;
+ log.error(message);
+ throw new DeviceManagementException(message);
+ }
+ zipFileName = zipFileName + ".zip";
+ try {
+ Map> properties = getProperties(sketchPath + File.separator + "sketch" + ".properties");
+ List templateFiles = properties.get("templates");
+
+ for (String templateFile : templateFiles) {
+ parseTemplate(templateSketchPath + File.separator + templateFile, archivesPath + File.separator + templateFile,
+ contextParams);
+ }
+
+ templateFiles.add("sketch.properties"); // ommit copying the props file
+ copyFolder(new File(sketchPath), new File(archivesPath), templateFiles);
+ createZipArchive(archivesPath);
+ FileUtils.deleteDirectory(new File(archivesPath));
+ File zip = new File(archivesPath + ".zip");
+ return new ZipArchive(zipFileName, zip);
+ } catch (IOException ex) {
+ throw new DeviceManagementException(
+ "Error occurred when trying to read property " + "file sketch.properties", ex);
+ }
+ }
+
+ private static Map> getProperties(String propertyFilePath) throws IOException {
+ Properties prop = new Properties();
+ InputStream input = null;
+
+ try {
+ input = new FileInputStream(propertyFilePath);
+ // load a properties file
+ prop.load(input);
+ Map> properties = new HashMap>();
+
+ String templates = prop.getProperty("templates");
+ List list = new ArrayList(Arrays.asList(templates.split(",")));
+ properties.put("templates", list);
+
+ final String filename = prop.getProperty("zipfilename");
+ list = new ArrayList() {{
+ add(filename);
+ }};
+ properties.put("zipfilename", list);
+ return properties;
+
+ } finally {
+ if (input != null) {
+ try {
+ input.close();
+ } catch (IOException e) {
+ log.error("Failed closing connection", e);
+ }
+ }
+ }
+ }
+
+ private static void parseTemplate(String srcFile, String dstFile, Map contextParams) throws IOException {
+ //read from file
+ FileInputStream inputStream = null;
+ FileOutputStream outputStream = null;
+ try {
+ inputStream = new FileInputStream(srcFile);
+ outputStream = new FileOutputStream(dstFile);
+ String content = IOUtils.toString(inputStream, StandardCharsets.UTF_8.toString());
+ Iterator iterator = contextParams.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry mapEntry = (Map.Entry) iterator.next();
+ content = content.replaceAll("\\$\\{" + mapEntry.getKey() + "\\}", mapEntry.getValue().toString());
+ }
+ IOUtils.write(content, outputStream, StandardCharsets.UTF_8.toString());
+ } finally {
+ if (inputStream != null) {
+ inputStream.close();
+ }
+ if (outputStream != null) {
+ outputStream.close();
+ }
+ }
+ }
+
+ private static void copyFolder(File src, File dest, List excludeFileNames) throws IOException {
+
+ if (src.isDirectory()) {
+ //if directory not exists, create it
+ if (!dest.exists() && !dest.mkdirs()) {
+ String message = "Could not create directory at path: " + dest;
+ log.error(message);
+ throw new IOException(message);
+ }
+ //list all the directory contents
+ String files[] = src.list();
+
+ if (files == null) {
+ log.warn("There are no files insides the directory " + src.getAbsolutePath());
+ return;
+ }
+
+ for (String file : files) {
+ //construct the src and dest file structure
+ File srcFile = new File(src, file);
+ File destFile = new File(dest, file);
+ //recursive copy
+ copyFolder(srcFile, destFile, excludeFileNames);
+ }
+
+ } else {
+ for (String fileName : excludeFileNames) {
+ if (src.getName().equals(fileName)) {
+ return;
+ }
+ }
+ //if file, then copy it
+ //Use bytes stream to support all file types
+ InputStream in = null;
+ OutputStream out = null;
+
+ try {
+ in = new FileInputStream(src);
+ out = new FileOutputStream(dest);
+
+ byte[] buffer = new byte[1024];
+
+ int length;
+ //copy the file content in bytes
+ while ((length = in.read(buffer)) > 0) {
+ out.write(buffer, 0, length);
+ }
+ } finally {
+ if (in != null) {
+ in.close();
+ }
+ if (out != null) {
+ out.close();
+ }
+ }
+ }
+ }
+
+ private static boolean createZipArchive(String srcFolder) throws IOException {
+ BufferedInputStream origin = null;
+ ZipOutputStream out = null;
+
+ try {
+ final int BUFFER = 2048;
+ FileOutputStream dest = new FileOutputStream(new File(srcFolder + ".zip"));
+ out = new ZipOutputStream(new BufferedOutputStream(dest));
+ byte data[] = new byte[BUFFER];
+ File subDir = new File(srcFolder);
+ String subdirList[] = subDir.list();
+ if (subdirList == null) {
+ log.warn("The sub directory " + subDir.getAbsolutePath() + " is empty");
+ return false;
+ }
+ for (String sd : subdirList) {
+ // get a list of files from current directory
+ File f = new File(srcFolder + "/" + sd);
+ if (f.isDirectory()) {
+ String files[] = f.list();
+
+ if (files == null) {
+ log.warn("The current directory " + f.getAbsolutePath() + " is empty. Has no files");
+ return false;
+ }
+
+ for (int i = 0; i < files.length; i++) {
+ FileInputStream fi = new FileInputStream(srcFolder + "/" + sd + "/" + files[i]);
+ origin = new BufferedInputStream(fi, BUFFER);
+ ZipEntry entry = new ZipEntry(sd + "/" + files[i]);
+ out.putNextEntry(entry);
+ int count;
+ while ((count = origin.read(data, 0, BUFFER)) != -1) {
+ out.write(data, 0, count);
+ out.flush();
+ }
+
+ }
+ } else //it is just a file
+ {
+ FileInputStream fi = new FileInputStream(f);
+ origin = new BufferedInputStream(fi, BUFFER);
+ ZipEntry entry = new ZipEntry(sd);
+ out.putNextEntry(entry);
+ int count;
+ while ((count = origin.read(data, 0, BUFFER)) != -1) {
+ out.write(data, 0, count);
+ out.flush();
+ }
+ }
+ }
+ out.flush();
+ } finally {
+ if (origin != null) {
+ origin.close();
+ }
+ if (out != null) {
+ out.close();
+ }
+ }
+ return true;
+ }
}
diff --git a/components/iot-plugins/raspberrypi-plugin/pom.xml b/components/iot-plugins/raspberrypi-plugin/pom.xml
index 468a3f157..acff7e3ac 100644
--- a/components/iot-plugins/raspberrypi-plugin/pom.xml
+++ b/components/iot-plugins/raspberrypi-plugin/pom.xml
@@ -33,7 +33,6 @@
http://wso2.org
- org.wso2.carbon.device.mgt.iot.raspberrypi.plugin
org.wso2.carbon.device.mgt.iot.raspberrypi.ui
org.wso2.carbon.device.mgt.iot.raspberrypi.api
org.wso2.carbon.device.mgt.iot.raspberrypi.analytics
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/pom.xml b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/pom.xml
index da6ec336b..83eefe902 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/pom.xml
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/pom.xml
@@ -107,16 +107,6 @@
4.1
provided
-
- org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot
- provided
-
-
- org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin
- provided
-
@@ -206,18 +196,15 @@
-
commons-codec
commons-codec
-
org.wso2.carbon.devicemgt
org.wso2.carbon.apimgt.annotations
provided
-
org.igniterealtime.smack.wso2
smack
@@ -228,11 +215,6 @@
smackx
provided
-
- org.wso2.carbon.devicemgt
- org.wso2.carbon.apimgt.webapp.publisher
- provided
-
org.wso2.carbon.devicemgt
org.wso2.carbon.identity.jwt.client.extension
@@ -248,9 +230,17 @@
org.wso2.carbon.analytics.api
provided
+
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.device.mgt.extensions
+ provided
+
+
+ org.wso2.carbon.devicemgt-plugins
+ org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin
+ provided
+
-
-
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmServiceImpl.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmServiceImpl.java
index 486437ac9..ce54d9537 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmServiceImpl.java
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmServiceImpl.java
@@ -35,10 +35,9 @@ import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroupConstants;
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
import org.wso2.carbon.device.mgt.core.operation.mgt.CommandOperation;
-import org.wso2.carbon.device.mgt.iot.util.ZipArchive;
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.constants.VirtualFireAlarmConstants;
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.exception.VirtualFirealarmDeviceMgtPluginException;
-import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.impl.util.VirtualFirealarmSecurityManager;
+import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.impl.VirtualFirealarmSecurityManager;
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.xmpp.XmppAccount;
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.xmpp.XmppConfig;
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.xmpp.XmppServerClient;
@@ -46,6 +45,7 @@ import org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.dto.SensorRe
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.exception.VirtualFireAlarmException;
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.util.APIUtil;
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.util.VirtualFireAlarmServiceUtils;
+import org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.util.ZipArchive;
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.util.ZipUtil;
import org.wso2.carbon.identity.jwt.client.extension.JWTClient;
import org.wso2.carbon.identity.jwt.client.extension.dto.AccessTokenInfo;
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/VirtualFireAlarmServiceUtils.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/VirtualFireAlarmServiceUtils.java
index de76845d6..277000e0f 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/VirtualFireAlarmServiceUtils.java
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/VirtualFireAlarmServiceUtils.java
@@ -19,11 +19,9 @@
package org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.util;
import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.json.JSONObject;
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.exception.VirtualFirealarmDeviceMgtPluginException;
-import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.impl.util.VirtualFirealarmSecurityManager;
+import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.impl.VirtualFirealarmSecurityManager;
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.exception.VirtualFireAlarmException;
import java.lang.*;
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/ZipUtil.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/ZipUtil.java
index 01990fe51..feb8135db 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/ZipUtil.java
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/ZipUtil.java
@@ -19,24 +19,40 @@
package org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.util;
import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.json.JSONObject;
import org.wso2.carbon.apimgt.application.extension.constants.ApiApplicationConstants;
+import org.wso2.carbon.base.ServerConfiguration;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationManagementException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
-import org.wso2.carbon.device.mgt.iot.util.Utils;
-import org.wso2.carbon.device.mgt.iot.util.ZipArchive;
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.xmpp.XmppConfig;
import org.wso2.carbon.utils.CarbonUtils;
+import org.wso2.carbon.utils.NetworkUtils;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.SocketException;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
/**
* This is used to create a zip file that includes the necessary configuration required for the agent.
@@ -52,6 +68,7 @@ public class ZipUtil {
private static final String HTTP_PROTOCOL_APPENDER = "http://";
private static final String CONFIG_TYPE = "general";
private static final String DEFAULT_MQTT_ENDPOINT = "tcp://localhost:1883";
+ public static final String HOST_NAME = "HostName";
public ZipArchive createZipFile(String owner, String deviceType, String deviceId, String deviceName,
String apiApplicationKey, String token, String refreshToken)
@@ -65,7 +82,7 @@ public class ZipUtil {
String iotServerIP;
try {
- iotServerIP = Utils.getServerUrl();
+ iotServerIP = getServerUrl();
String httpsServerPort = System.getProperty(HTTPS_PORT_PROPERTY);
String httpServerPort = System.getProperty(HTTP_PORT_PROPERTY);
String httpsServerEP = HTTPS_PROTOCOL_APPENDER + iotServerIP + ":" + httpsServerPort;
@@ -125,7 +142,7 @@ public class ZipUtil {
? "" : XmppConfig.getInstance().getJid());
ZipArchive zipFile;
- zipFile = Utils.getSketchArchive(archivesPath, templateSketchPath, contextParams, deviceName);
+ zipFile = getSketchArchive(archivesPath, templateSketchPath, contextParams, deviceName);
return zipFile;
} catch (IOException e) {
throw new DeviceManagementException("Zip File Creation Failed", e);
@@ -142,4 +159,229 @@ public class ZipUtil {
String stringToEncode = consumerKey + ":" + consumerSecret;
return Base64.encodeBase64String(stringToEncode.getBytes());
}
+
+ public static String getServerUrl() {
+ String hostName = ServerConfiguration.getInstance().getFirstProperty(HOST_NAME);
+ try {
+ if (hostName == null) {
+ hostName = NetworkUtils.getLocalHostname();
+ }
+ } catch (SocketException e) {
+ hostName = "localhost";
+ log.warn("Failed retrieving the hostname, therefore set to localhost", e);
+ }
+ return hostName;
+ }
+
+ public static ZipArchive getSketchArchive(String archivesPath, String templateSketchPath, Map contextParams
+ , String zipFileName)
+ throws DeviceManagementException, IOException {
+ String sketchPath = CarbonUtils.getCarbonHome() + File.separator + templateSketchPath;
+ FileUtils.deleteDirectory(new File(archivesPath));//clear directory
+ FileUtils.deleteDirectory(new File(archivesPath + ".zip"));//clear zip
+ if (!new File(archivesPath).mkdirs()) { //new dir
+ String message = "Could not create directory at path: " + archivesPath;
+ log.error(message);
+ throw new DeviceManagementException(message);
+ }
+ zipFileName = zipFileName + ".zip";
+ try {
+ Map> properties = getProperties(sketchPath + File.separator + "sketch" + ".properties");
+ List templateFiles = properties.get("templates");
+
+ for (String templateFile : templateFiles) {
+ parseTemplate(templateSketchPath + File.separator + templateFile, archivesPath + File.separator + templateFile,
+ contextParams);
+ }
+
+ templateFiles.add("sketch.properties"); // ommit copying the props file
+ copyFolder(new File(sketchPath), new File(archivesPath), templateFiles);
+ createZipArchive(archivesPath);
+ FileUtils.deleteDirectory(new File(archivesPath));
+ File zip = new File(archivesPath + ".zip");
+ return new org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.util.ZipArchive(zipFileName, zip);
+ } catch (IOException ex) {
+ throw new DeviceManagementException(
+ "Error occurred when trying to read property " + "file sketch.properties", ex);
+ }
+ }
+
+ private static Map> getProperties(String propertyFilePath) throws IOException {
+ Properties prop = new Properties();
+ InputStream input = null;
+
+ try {
+
+ input = new FileInputStream(propertyFilePath);
+
+ // load a properties file
+ prop.load(input);
+ Map> properties = new HashMap>();
+
+ String templates = prop.getProperty("templates");
+ List list = new ArrayList(Arrays.asList(templates.split(",")));
+ properties.put("templates", list);
+
+ final String filename = prop.getProperty("zipfilename");
+ list = new ArrayList() {{
+ add(filename);
+ }};
+ properties.put("zipfilename", list);
+ return properties;
+
+ } finally {
+ if (input != null) {
+ try {
+ input.close();
+ } catch (IOException e) {
+ log.error("Failed closing connection", e);
+ }
+ }
+ }
+ }
+
+ private static void parseTemplate(String srcFile, String dstFile, Map contextParams) throws IOException {
+ //read from file
+ FileInputStream inputStream = null;
+ FileOutputStream outputStream = null;
+ try {
+ inputStream = new FileInputStream(srcFile);
+ outputStream = new FileOutputStream(dstFile);
+ String content = IOUtils.toString(inputStream, StandardCharsets.UTF_8.toString());
+ Iterator iterator = contextParams.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry mapEntry = (Map.Entry) iterator.next();
+ content = content.replaceAll("\\$\\{" + mapEntry.getKey() + "\\}", mapEntry.getValue().toString());
+ }
+ IOUtils.write(content, outputStream, StandardCharsets.UTF_8.toString());
+ } finally {
+ if (inputStream != null) {
+ inputStream.close();
+ }
+ if (outputStream != null) {
+ outputStream.close();
+ }
+ }
+ }
+
+ private static void copyFolder(File src, File dest, List excludeFileNames) throws IOException {
+
+ if (src.isDirectory()) {
+ //if directory not exists, create it
+ if (!dest.exists() && !dest.mkdirs()) {
+ String message = "Could not create directory at path: " + dest;
+ log.error(message);
+ throw new IOException(message);
+ }
+ //list all the directory contents
+ String files[] = src.list();
+
+ if (files == null) {
+ log.warn("There are no files insides the directory " + src.getAbsolutePath());
+ return;
+ }
+
+ for (String file : files) {
+ //construct the src and dest file structure
+ File srcFile = new File(src, file);
+ File destFile = new File(dest, file);
+ //recursive copy
+ copyFolder(srcFile, destFile, excludeFileNames);
+ }
+
+ } else {
+ for (String fileName : excludeFileNames) {
+ if (src.getName().equals(fileName)) {
+ return;
+ }
+ }
+ //if file, then copy it
+ //Use bytes stream to support all file types
+ InputStream in = null;
+ OutputStream out = null;
+
+ try {
+ in = new FileInputStream(src);
+ out = new FileOutputStream(dest);
+
+ byte[] buffer = new byte[1024];
+
+ int length;
+ //copy the file content in bytes
+ while ((length = in.read(buffer)) > 0) {
+ out.write(buffer, 0, length);
+ }
+ } finally {
+ if (in != null) {
+ in.close();
+ }
+ if (out != null) {
+ out.close();
+ }
+ }
+ }
+ }
+
+ private static boolean createZipArchive(String srcFolder) throws IOException {
+ BufferedInputStream origin = null;
+ ZipOutputStream out = null;
+
+ try {
+ final int BUFFER = 2048;
+ FileOutputStream dest = new FileOutputStream(new File(srcFolder + ".zip"));
+ out = new ZipOutputStream(new BufferedOutputStream(dest));
+ byte data[] = new byte[BUFFER];
+ File subDir = new File(srcFolder);
+ String subdirList[] = subDir.list();
+ if (subdirList == null) {
+ log.warn("The sub directory " + subDir.getAbsolutePath() + " is empty");
+ return false;
+ }
+ for (String sd : subdirList) {
+ // get a list of files from current directory
+ File f = new File(srcFolder + "/" + sd);
+ if (f.isDirectory()) {
+ String files[] = f.list();
+
+ if (files == null) {
+ log.warn("The current directory " + f.getAbsolutePath() + " is empty. Has no files");
+ return false;
+ }
+
+ for (int i = 0; i < files.length; i++) {
+ FileInputStream fi = new FileInputStream(srcFolder + "/" + sd + "/" + files[i]);
+ origin = new BufferedInputStream(fi, BUFFER);
+ ZipEntry entry = new ZipEntry(sd + "/" + files[i]);
+ out.putNextEntry(entry);
+ int count;
+ while ((count = origin.read(data, 0, BUFFER)) != -1) {
+ out.write(data, 0, count);
+ out.flush();
+ }
+
+ }
+ } else //it is just a file
+ {
+ FileInputStream fi = new FileInputStream(f);
+ origin = new BufferedInputStream(fi, BUFFER);
+ ZipEntry entry = new ZipEntry(sd);
+ out.putNextEntry(entry);
+ int count;
+ while ((count = origin.read(data, 0, BUFFER)) != -1) {
+ out.write(data, 0, count);
+ out.flush();
+ }
+ }
+ }
+ out.flush();
+ } finally {
+ if (origin != null) {
+ origin.close();
+ }
+ if (out != null) {
+ out.close();
+ }
+ }
+ return true;
+ }
}
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/util/Utils.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/util/Utils.java
index 18dea23f5..586de223c 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/util/Utils.java
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/util/util/Utils.java
@@ -24,6 +24,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.base.ServerConfiguration;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
+import org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl.util.ZipArchive;
import org.wso2.carbon.utils.CarbonUtils;
import org.wso2.carbon.utils.NetworkUtils;
@@ -55,229 +56,6 @@ public class Utils {
public static final String HOST_NAME = "HostName";
private static final Log log = LogFactory.getLog(Utils.class);
- public static String getServerUrl() {
- String hostName = ServerConfiguration.getInstance().getFirstProperty(HOST_NAME);
- try {
- if (hostName == null) {
- hostName = NetworkUtils.getLocalHostname();
- }
- } catch (SocketException e) {
- hostName = "localhost";
- log.warn("Failed retrieving the hostname, therefore set to localhost", e);
- }
- return hostName;
- }
- public static ZipArchive getSketchArchive(String archivesPath, String templateSketchPath, Map contextParams,
- String zipFileName)
- throws DeviceManagementException, IOException {
- String sketchPath = CarbonUtils.getCarbonHome() + File.separator + templateSketchPath;
- FileUtils.deleteDirectory(new File(archivesPath));//clear directory
- FileUtils.deleteDirectory(new File(archivesPath + ".zip"));//clear zip
- if (!new File(archivesPath).mkdirs()) { //new dir
- String message = "Could not create directory at path: " + archivesPath;
- log.error(message);
- throw new DeviceManagementException(message);
- }
- zipFileName = zipFileName + ".zip";
- try {
- Map> properties = getProperties(sketchPath + File.separator + "sketch" + ".properties");
- List templateFiles = properties.get("templates");
-
- for (String templateFile : templateFiles) {
- parseTemplate(templateSketchPath + File.separator + templateFile, archivesPath + File.separator + templateFile,
- contextParams);
- }
-
- templateFiles.add("sketch.properties"); // ommit copying the props file
- copyFolder(new File(sketchPath), new File(archivesPath), templateFiles);
- createZipArchive(archivesPath);
- FileUtils.deleteDirectory(new File(archivesPath));
- File zip = new File(archivesPath + ".zip");
- return new ZipArchive(zipFileName, zip);
- } catch (IOException ex) {
- throw new DeviceManagementException(
- "Error occurred when trying to read property " + "file sketch.properties", ex);
- }
- }
-
- private static Map> getProperties(String propertyFilePath) throws IOException {
- Properties prop = new Properties();
- InputStream input = null;
-
- try {
-
- input = new FileInputStream(propertyFilePath);
-
- // load a properties file
- prop.load(input);
- Map> properties = new HashMap>();
-
- String templates = prop.getProperty("templates");
- List list = new ArrayList(Arrays.asList(templates.split(",")));
- properties.put("templates", list);
-
- final String filename = prop.getProperty("zipfilename");
- list = new ArrayList() {{
- add(filename);
- }};
- properties.put("zipfilename", list);
- return properties;
-
- } finally {
- if (input != null) {
- try {
- input.close();
- } catch (IOException e) {
- log.error("Failed closing connection", e);
- }
- }
- }
- }
-
- private static void parseTemplate(String srcFile, String dstFile, Map contextParams) throws IOException {
- //read from file
- FileInputStream inputStream = null;
- FileOutputStream outputStream = null;
- try {
- inputStream = new FileInputStream(srcFile);
- outputStream = new FileOutputStream(dstFile);
- String content = IOUtils.toString(inputStream, StandardCharsets.UTF_8.toString());
- Iterator iterator = contextParams.entrySet().iterator();
- while (iterator.hasNext()) {
- Map.Entry mapEntry = (Map.Entry) iterator.next();
- content = content.replaceAll("\\$\\{" + mapEntry.getKey() + "\\}", mapEntry.getValue().toString());
- }
- IOUtils.write(content, outputStream, StandardCharsets.UTF_8.toString());
- } finally {
- if (inputStream != null) {
- inputStream.close();
- }
- if (outputStream != null) {
- outputStream.close();
- }
- }
- }
-
- private static void copyFolder(File src, File dest, List excludeFileNames) throws IOException {
-
- if (src.isDirectory()) {
- //if directory not exists, create it
- if (!dest.exists() && !dest.mkdirs()) {
- String message = "Could not create directory at path: " + dest;
- log.error(message);
- throw new IOException(message);
- }
- //list all the directory contents
- String files[] = src.list();
-
- if (files == null) {
- log.warn("There are no files insides the directory " + src.getAbsolutePath());
- return;
- }
-
- for (String file : files) {
- //construct the src and dest file structure
- File srcFile = new File(src, file);
- File destFile = new File(dest, file);
- //recursive copy
- copyFolder(srcFile, destFile, excludeFileNames);
- }
-
- } else {
- for (String fileName : excludeFileNames) {
- if (src.getName().equals(fileName)) {
- return;
- }
- }
- //if file, then copy it
- //Use bytes stream to support all file types
- InputStream in = null;
- OutputStream out = null;
-
- try {
- in = new FileInputStream(src);
- out = new FileOutputStream(dest);
-
- byte[] buffer = new byte[1024];
-
- int length;
- //copy the file content in bytes
- while ((length = in.read(buffer)) > 0) {
- out.write(buffer, 0, length);
- }
- } finally {
- if (in != null) {
- in.close();
- }
- if (out != null) {
- out.close();
- }
- }
- }
- }
-
- private static boolean createZipArchive(String srcFolder) throws IOException {
- BufferedInputStream origin = null;
- ZipOutputStream out = null;
-
- try {
- final int BUFFER = 2048;
- FileOutputStream dest = new FileOutputStream(new File(srcFolder + ".zip"));
- out = new ZipOutputStream(new BufferedOutputStream(dest));
- byte data[] = new byte[BUFFER];
- File subDir = new File(srcFolder);
- String subdirList[] = subDir.list();
- if (subdirList == null) {
- log.warn("The sub directory " + subDir.getAbsolutePath() + " is empty");
- return false;
- }
- for (String sd : subdirList) {
- // get a list of files from current directory
- File f = new File(srcFolder + "/" + sd);
- if (f.isDirectory()) {
- String files[] = f.list();
-
- if (files == null) {
- log.warn("The current directory " + f.getAbsolutePath() + " is empty. Has no files");
- return false;
- }
-
- for (int i = 0; i < files.length; i++) {
- FileInputStream fi = new FileInputStream(srcFolder + "/" + sd + "/" + files[i]);
- origin = new BufferedInputStream(fi, BUFFER);
- ZipEntry entry = new ZipEntry(sd + "/" + files[i]);
- out.putNextEntry(entry);
- int count;
- while ((count = origin.read(data, 0, BUFFER)) != -1) {
- out.write(data, 0, count);
- out.flush();
- }
-
- }
- } else //it is just a file
- {
- FileInputStream fi = new FileInputStream(f);
- origin = new BufferedInputStream(fi, BUFFER);
- ZipEntry entry = new ZipEntry(sd);
- out.putNextEntry(entry);
- int count;
- while ((count = origin.read(data, 0, BUFFER)) != -1) {
- out.write(data, 0, count);
- out.flush();
- }
- }
- }
- out.flush();
- } finally {
- if (origin != null) {
- origin.close();
- }
- if (out != null) {
- out.close();
- }
- }
- return true;
- }
}
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/pom.xml b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/pom.xml
index 586307aad..8877ec531 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/pom.xml
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/pom.xml
@@ -83,7 +83,10 @@
org.wso2.carbon.event.input.adapter.core,
org.wso2.carbon.event.input.adapter.core.exception,
org.jivesoftware.smack.*,
- org.wso2.carbon.device.mgt.iot.devicetype.*
+ javax.xml.bind,
+ javax.xml.bind.annotation,
+ javax.xml.parsers; version="${javax.xml.parsers.import.pkg.version}",
+ org.w3c.dom
!org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.internal,
@@ -160,9 +163,5 @@
org.igniterealtime.smack.wso2
smackx
-
- org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot
-
\ No newline at end of file
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/config/DeviceManagementConfiguration.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/config/DeviceManagementConfiguration.java
index 18ee2a386..7c470b59c 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/config/DeviceManagementConfiguration.java
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/config/DeviceManagementConfiguration.java
@@ -27,39 +27,19 @@ import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "DeviceManagementConfiguration")
public class DeviceManagementConfiguration {
- private DeviceManagementConfigRepository deviceManagementConfigRepository;
- private PushNotificationConfig pushNotificationConfig;
- private String deviceType;
+ private EventListenerConfiguration eventListenerConfiguration;
private static final Log log = LogFactory.getLog(DeviceManagementConfiguration.class);
private DeviceManagementConfiguration() {
}
- @XmlElement(name = "DeviceType", required = false)
- public String getDeviceType() {
- return deviceType;
- }
-
- public void setDeviceType(String deviceType) {
- this.deviceType = deviceType;
- }
-
- @XmlElement(name = "ManagementRepository", required = true)
- public DeviceManagementConfigRepository getDeviceManagementConfigRepository() {
- return deviceManagementConfigRepository;
- }
-
- public void setDeviceManagementConfigRepository(DeviceManagementConfigRepository deviceManagementConfigRepository) {
- this.deviceManagementConfigRepository = deviceManagementConfigRepository;
- }
-
@XmlElement(name = "PushNotificationConfiguration", required = false)
- public PushNotificationConfig getPushNotificationConfig() {
- return pushNotificationConfig;
+ public EventListenerConfiguration getEventListenerConfiguration() {
+ return eventListenerConfiguration;
}
- public void setPushNotificationConfig(PushNotificationConfig pushNotificationConfig) {
- this.pushNotificationConfig = pushNotificationConfig;
+ public void setEventListenerConfiguration(EventListenerConfiguration eventListenerConfiguration) {
+ this.eventListenerConfiguration = eventListenerConfiguration;
}
}
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/config/EventListenerConfiguration.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/config/EventListenerConfiguration.java
index 59156897e..c182b9218 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/config/EventListenerConfiguration.java
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/config/EventListenerConfiguration.java
@@ -25,10 +25,10 @@ import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlValue;
import java.util.List;
-@XmlRootElement(name = "PushNotificationConfiguration")
+@XmlRootElement(name = "EventListenerConfiguration")
public class EventListenerConfiguration {
- private String pushNotificationProvider;
+ private String eventListenerProvider;
private List properties;
@XmlElementWrapper(name = "Properties", required = true)
@@ -41,13 +41,13 @@ public class EventListenerConfiguration {
this.properties = properties;
}
- @XmlElement(name = "PushNotificationProvider", required = true)
- public String getPushNotificationProvider() {
- return pushNotificationProvider;
+ @XmlElement(name = "EventListenerProvider", required = true)
+ public String getEventListenerProvider() {
+ return eventListenerProvider;
}
- public void setPushNotificationProvider(String pushNotificationProvider) {
- this.pushNotificationProvider = pushNotificationProvider;
+ public void setEventListenerProvider(String eventListenerProvider) {
+ this.eventListenerProvider = eventListenerProvider;
}
@XmlRootElement(name = "Property")
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/config/VirtualFirealarmConfig.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/config/VirtualFirealarmConfig.java
index 49f08d16d..a5a75611e 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/config/VirtualFirealarmConfig.java
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/config/VirtualFirealarmConfig.java
@@ -18,8 +18,13 @@ public class VirtualFirealarmConfig {
private static final String DEVICE_TYPE_CONFIG_PATH =
CarbonUtils.getEtcCarbonConfigDirPath() + File.separator + "device-mgt-plugins" + File.separator
+ "virtual_firealarm.xml";
+ private static VirtualFirealarmConfig virtualFirealarmConfig = new VirtualFirealarmConfig();
private static DeviceManagementConfiguration deviceManagementConfiguration;
+ public static VirtualFirealarmConfig getInstance() {
+ return virtualFirealarmConfig;
+ }
+
public static void initialize() throws VirtualFirealarmConfigurationException {
File configFile = new File(DEVICE_TYPE_CONFIG_PATH);
try {
@@ -37,7 +42,7 @@ public class VirtualFirealarmConfig {
}
- private DeviceManagementConfiguration getDeviceTypeConfiguration(File configurationFile) {
+ public DeviceManagementConfiguration getDeviceTypeConfiguration() {
return deviceManagementConfiguration;
}
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/impl/VirtualFireAlarmUtils.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/impl/VirtualFireAlarmUtils.java
index 471dce671..d9dbf9936 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/impl/VirtualFireAlarmUtils.java
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/impl/VirtualFireAlarmUtils.java
@@ -26,7 +26,6 @@ import org.wso2.carbon.certificate.mgt.core.service.CertificateManagementService
import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.analytics.data.publisher.exception.DataPublisherConfigurationException;
import org.wso2.carbon.device.mgt.analytics.data.publisher.service.EventsPublisherService;
-import org.wso2.carbon.device.mgt.iot.devicetype.config.DeviceManagementConfiguration;
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.constants.VirtualFireAlarmConstants;
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.exception.VirtualFirealarmDeviceMgtPluginException;
import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.internal.VirtualFirealarmManagementDataHolder;
@@ -37,17 +36,9 @@ import org.wso2.carbon.event.input.adapter.core.MessageType;
import org.wso2.carbon.event.input.adapter.core.exception.InputEventAdapterException;
import org.json.JSONObject;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import javax.sql.DataSource;
import java.io.IOException;
import java.security.PublicKey;
import java.security.cert.X509Certificate;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
@@ -58,62 +49,6 @@ public class VirtualFireAlarmUtils {
private static Log log = LogFactory.getLog(VirtualFireAlarmUtils.class);
- public static void cleanupResources(Connection conn, PreparedStatement stmt, ResultSet rs) {
- if (rs != null) {
- try {
- rs.close();
- } catch (SQLException e) {
- log.warn("Error occurred while closing result set", e);
- }
- }
- if (stmt != null) {
- try {
- stmt.close();
- } catch (SQLException e) {
- log.warn("Error occurred while closing prepared statement", e);
- }
- }
- if (conn != null) {
- try {
- conn.close();
- } catch (SQLException e) {
- log.warn("Error occurred while closing database connection", e);
- }
- }
- }
-
- public static void cleanupResources(PreparedStatement stmt, ResultSet rs) {
- cleanupResources(null, stmt, rs);
- }
-
- /**
- * Creates the device management schema.
- */
- public static void setupDeviceManagementSchema() throws VirtualFirealarmDeviceMgtPluginException {
- DeviceManagementConfiguration deviceManagementConfiguration = VirtualFirealarmManagementDataHolder.getInstance()
- .getDeviceTypeConfigService().getConfiguration(VirtualFireAlarmConstants.DEVICE_TYPE,
- VirtualFireAlarmConstants.DEVICE_TYPE_PROVIDER_DOMAIN);
- String datasourceName = deviceManagementConfiguration.getDeviceManagementConfigRepository()
- .getDataSourceConfig().getJndiLookupDefinition().getJndiName();
- try {
- Context ctx = new InitialContext();
- DataSource dataSource = (DataSource) ctx.lookup(datasourceName);
- DeviceSchemaInitializer initializer = new DeviceSchemaInitializer(dataSource);
- String checkSql = "select * from VIRTUAL_FIREALARM_DEVICE";
- if (!initializer.isDatabaseStructureCreated(checkSql)) {
- log.info("Initializing device management repository database schema");
- initializer.createRegistryDatabase();
- } else {
- log.info("Device management repository database already exists. Not creating a new database.");
- }
- } catch (NamingException e) {
- log.error("Error while looking up the data source: " + datasourceName, e);
- } catch (Exception e) {
- throw new VirtualFirealarmDeviceMgtPluginException("Error occurred while initializing Iot Device " +
- "Management database schema", e);
- }
- }
-
public static void setupMqttInputAdapter() throws IOException {
if (!MqttConfig.getInstance().isEnabled()) {
return;
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/internal/VirtualFirealarmManagementDataHolder.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/internal/VirtualFirealarmManagementDataHolder.java
index 7d0a96e74..9fc9111fb 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/internal/VirtualFirealarmManagementDataHolder.java
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/internal/VirtualFirealarmManagementDataHolder.java
@@ -20,7 +20,6 @@ package org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.internal;
import org.wso2.carbon.certificate.mgt.core.service.CertificateManagementService;
import org.wso2.carbon.device.mgt.analytics.data.publisher.service.EventsPublisherService;
-import org.wso2.carbon.device.mgt.iot.devicetype.DeviceTypeConfigService;
import org.wso2.carbon.event.input.adapter.core.InputEventAdapterService;
/**
@@ -31,7 +30,6 @@ public class VirtualFirealarmManagementDataHolder {
private InputEventAdapterService inputEventAdapterService;
private EventsPublisherService eventsPublisherService;
private CertificateManagementService certificateManagementService;
- private DeviceTypeConfigService deviceTypeConfigService;
private static VirtualFirealarmManagementDataHolder thisInstance = new VirtualFirealarmManagementDataHolder();
@@ -66,13 +64,4 @@ public class VirtualFirealarmManagementDataHolder {
public void setCertificateManagementService(CertificateManagementService certificateManagementService) {
this.certificateManagementService = certificateManagementService;
}
-
- public DeviceTypeConfigService getDeviceTypeConfigService() {
- return deviceTypeConfigService;
- }
-
- public void setDeviceTypeConfigService(
- DeviceTypeConfigService deviceTypeConfigService) {
- this.deviceTypeConfigService = deviceTypeConfigService;
- }
}
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/internal/VirtualFirealarmManagementServiceComponent.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/internal/VirtualFirealarmManagementServiceComponent.java
index 494b8547a..6a1e8c4bf 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/internal/VirtualFirealarmManagementServiceComponent.java
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/internal/VirtualFirealarmManagementServiceComponent.java
@@ -26,13 +26,9 @@ import org.osgi.service.component.ComponentContext;
import org.wso2.carbon.certificate.mgt.core.service.CertificateManagementService;
import org.wso2.carbon.core.ServerStartupObserver;
import org.wso2.carbon.device.mgt.analytics.data.publisher.service.EventsPublisherService;
-import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
-import org.wso2.carbon.device.mgt.iot.devicetype.DeviceTypeConfigService;
-import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.exception.VirtualFirealarmDeviceMgtPluginException;
-import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.impl.VirtualFireAlarmManagerService;
-import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.impl.util.VirtualFireAlarmUtils;
-import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.impl.util.VirtualFirealarmSecurityManager;
-import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.impl.util.VirtualFirealarmStartupListener;
+import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.config.VirtualFirealarmConfig;
+import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.impl.VirtualFirealarmSecurityManager;
+import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.impl.VirtualFirealarmStartupListener;
import org.wso2.carbon.event.input.adapter.core.InputEventAdapterService;
/**
@@ -57,12 +53,6 @@ import org.wso2.carbon.event.input.adapter.core.InputEventAdapterService;
* policy="dynamic"
* bind="setEventsPublisherService"
* unbind="unsetEventsPublisherService"
- * @scr.reference name="devicetype.configuration.service"
- * interface="org.wso2.carbon.device.mgt.iot.devicetype.DeviceTypeConfigService"
- * cardinality="1..1"
- * policy="dynamic"
- * bind="setDeviceTypeConfigService"
- * unbind="unsetDeviceTypeConfigService"
*/
public class VirtualFirealarmManagementServiceComponent {
@@ -74,25 +64,10 @@ public class VirtualFirealarmManagementServiceComponent {
log.debug("Activating Virtual Firealarm Device Management Service Component");
}
try {
-
- // VirtualFireAlarmManagerService virtualFireAlarmManagerService = new VirtualFireAlarmManagerService();
+ VirtualFirealarmConfig.initialize();
BundleContext bundleContext = ctx.getBundleContext();
-// firealarmServiceRegRef = bundleContext.registerService(DeviceManagementService.class.getName()
-// ,virtualFireAlarmManagerService, null);
bundleContext.registerService(ServerStartupObserver.class.getName(), new VirtualFirealarmStartupListener(),
null);
- String setupOption = System.getProperty("setup");
- if (setupOption != null) {
- if (log.isDebugEnabled()) {
- log.debug("-Dsetup is enabled. Iot Device management repository schema initialization is about " +
- "to begin");
- }
- try {
- VirtualFireAlarmUtils.setupDeviceManagementSchema();
- } catch (VirtualFirealarmDeviceMgtPluginException e) {
- log.error("Exception occurred while initializing device management database schema", e);
- }
- }
if (log.isDebugEnabled()) {
log.debug("Virtual Firealarm Device Management Service Component has been successfully activated");
}
@@ -103,19 +78,9 @@ public class VirtualFirealarmManagementServiceComponent {
}
protected void deactivate(ComponentContext ctx) {
-// if (log.isDebugEnabled()) {
-// log.debug("De-activating Virtual Firealarm Device Management Service Component");
-// }
-// try {
-// if (firealarmServiceRegRef != null) {
-// firealarmServiceRegRef.unregister();
-// }
-// if (log.isDebugEnabled()) {
-// log.debug("Virtual Firealarm Device Management Service Component has been successfully de-activated");
-// }
-// } catch (Throwable e) {
-// log.error("Error occurred while de-activating Virtual Firealarm Device Management bundle", e);
-// }
+ if (log.isDebugEnabled()) {
+ log.debug("De-activating Virtual Firealarm Device Management Service Component");
+ }
}
/**
@@ -149,12 +114,4 @@ public class VirtualFirealarmManagementServiceComponent {
protected void unsetEventsPublisherService(EventsPublisherService eventsPublisherService) {
VirtualFirealarmManagementDataHolder.getInstance().setEventsPublisherService(null);
}
-
- protected void setDeviceTypeConfigService(DeviceTypeConfigService deviceTypeConfigService) {
- VirtualFirealarmManagementDataHolder.getInstance().setDeviceTypeConfigService(deviceTypeConfigService);
- }
-
- protected void unsetDeviceTypeConfigService(DeviceTypeConfigService deviceTypeConfigService) {
- VirtualFirealarmManagementDataHolder.getInstance().setDeviceTypeConfigService(null);
- }
}
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/mqtt/MqttConfig.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/mqtt/MqttConfig.java
index 7a0c8f688..e47ac11ea 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/mqtt/MqttConfig.java
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/mqtt/MqttConfig.java
@@ -20,10 +20,9 @@ package org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.mqtt;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.iot.devicetype.config.DeviceManagementConfiguration;
-import org.wso2.carbon.device.mgt.iot.devicetype.config.PushNotificationConfig;
-import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.constants.VirtualFireAlarmConstants;
-import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.internal.VirtualFirealarmManagementDataHolder;
+import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.config.DeviceManagementConfiguration;
+import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.config.EventListenerConfiguration;
+import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.config.VirtualFirealarmConfig;
import java.util.List;
@@ -41,17 +40,16 @@ public class MqttConfig {
private String clearSession;
private MqttConfig() {
- DeviceManagementConfiguration deviceManagementConfiguration = VirtualFirealarmManagementDataHolder.getInstance()
- .getDeviceTypeConfigService().getConfiguration(VirtualFireAlarmConstants.DEVICE_TYPE,
- VirtualFireAlarmConstants.DEVICE_TYPE_PROVIDER_DOMAIN);
- List properties = deviceManagementConfiguration
- .getPushNotificationConfig().getProperties();
- String provider = deviceManagementConfiguration.getPushNotificationConfig().getPushNotificationProvider();
+ DeviceManagementConfiguration deviceManagementConfiguration = VirtualFirealarmConfig.getInstance()
+ .getDeviceTypeConfiguration();
+ List properties = deviceManagementConfiguration
+ .getEventListenerConfiguration().getProperties();
+ String provider = deviceManagementConfiguration.getEventListenerConfiguration().getEventListenerProvider();
if (provider.equals("MQTT")) {
enabled = true;
}
if (enabled) {
- for (PushNotificationConfig.Property property : properties) {
+ for (EventListenerConfiguration.Property property : properties) {
switch (property.getName()) {
case "url":
url = property.getValue();
@@ -71,8 +69,6 @@ public class MqttConfig {
case "clearSession":
clearSession = property.getValue();
break;
-
-
}
}
}
diff --git a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/xmpp/XmppConfig.java b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/xmpp/XmppConfig.java
index 2ac57e0b8..d600b3a82 100644
--- a/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/xmpp/XmppConfig.java
+++ b/components/iot-plugins/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/plugin/xmpp/XmppConfig.java
@@ -20,10 +20,10 @@ package org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.xmpp;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.iot.devicetype.config.DeviceManagementConfiguration;
-import org.wso2.carbon.device.mgt.iot.devicetype.config.PushNotificationConfig;
-import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.constants.VirtualFireAlarmConstants;
-import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.internal.VirtualFirealarmManagementDataHolder;
+import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.config.DeviceManagementConfiguration;
+import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.config.EventListenerConfiguration;
+import org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin.config.VirtualFirealarmConfig;
+
import java.util.List;
public class XmppConfig {
@@ -39,17 +39,16 @@ public class XmppConfig {
private static final Log log = LogFactory.getLog(XmppConfig.class);
private XmppConfig() {
- DeviceManagementConfiguration deviceManagementConfiguration = VirtualFirealarmManagementDataHolder.getInstance()
- .getDeviceTypeConfigService().getConfiguration(VirtualFireAlarmConstants.DEVICE_TYPE,
- VirtualFireAlarmConstants.DEVICE_TYPE_PROVIDER_DOMAIN);
- List properties = deviceManagementConfiguration.getPushNotificationConfig()
+ DeviceManagementConfiguration deviceManagementConfiguration = VirtualFirealarmConfig.getInstance()
+ .getDeviceTypeConfiguration();
+ List properties = deviceManagementConfiguration.getEventListenerConfiguration()
.getProperties();
- String provider = deviceManagementConfiguration.getPushNotificationConfig().getPushNotificationProvider();
+ String provider = deviceManagementConfiguration.getEventListenerConfiguration().getEventListenerProvider();
if ("XMPP".equals(provider)) {
enabled = true;
}
if (enabled) {
- for (PushNotificationConfig.Property property : properties) {
+ for (EventListenerConfiguration.Property property : properties) {
switch (property.getName()) {
case "host":
host = property.getValue();
diff --git a/features/iot-plugins-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/pom.xml b/features/iot-plugins-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/pom.xml
index 818ac6c2a..27e7384a0 100644
--- a/features/iot-plugins-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/pom.xml
+++ b/features/iot-plugins-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/pom.xml
@@ -37,19 +37,11 @@
-
- org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot.androidsense.plugin
-
org.wso2.carbon.devicemgt-plugins
org.wso2.carbon.device.mgt.iot.androidsense.api
war
-
- com.h2database.wso2
- h2-database-engine
-
@@ -195,11 +187,6 @@
org.eclipse.equinox.p2.type.group:true
-
-
- org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.androidsense.plugin:${carbon.devicemgt.plugins.version}
-
-
org.wso2.carbon.core.server:${carbon.kernel.version}
org.wso2.carbon.device.mgt.server:${carbon.devicemgt.version}
diff --git a/features/iot-plugins-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/devicetypes/android_sense.xml b/features/iot-plugins-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/devicetypes/android_sense.xml
index 14434b2d3..6cd702fe4 100644
--- a/features/iot-plugins-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/devicetypes/android_sense.xml
+++ b/features/iot-plugins-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/devicetypes/android_sense.xml
@@ -18,7 +18,7 @@
~ under the License.
-->
- raspberrypi
+ android_sense
@@ -41,7 +41,7 @@
MQTT
- raspberrypi.mqtt.adapter
+ android_sense.mqtt.adapter
tcp://localhost:1883
admin
https://localhost:9443/dynamic-client-web/register
@@ -49,16 +49,5 @@
true
-
-
diff --git a/features/iot-plugins-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/p2.inf b/features/iot-plugins-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/p2.inf
index 19be463d0..a14a4d13e 100644
--- a/features/iot-plugins-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/p2.inf
+++ b/features/iot-plugins-feature/androidsense-plugin-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/p2.inf
@@ -9,7 +9,8 @@ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../depl
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense_${feature.version}/jaggeryapps/,target:${installFolder}/../../deployment/server/jaggeryapps/,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../database/);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense_${feature.version}/database/,target:${installFolder}/../../database/,overwrite:true);\
-org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense_${feature.version}/conf/android-sense-config.xml,target:${installFolder}/../../conf/etc/device-mgt-plugins/android-sense-config.xml,overwrite:true);\
+org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/devicetypes/);\
+org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.androidsense_${feature.version}/devicetypes/,target:${installFolder}/../../deployment/server/devicetypes/,overwrite:true);\
instructions.unconfigure = \
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/webapps/android_sense.war);\
@@ -24,4 +25,4 @@ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../dep
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.platform.configuration);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.realtime.analytics-view);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/carbonapps/android_sense.car);\
-org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../conf/etc/device-mgt-plugins/android-sense-config.xml);\
\ No newline at end of file
+org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/devicetypes/android_sense.xml);\
\ No newline at end of file
diff --git a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/pom.xml b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/pom.xml
index 23acbeff7..dc9266ec3 100644
--- a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/pom.xml
+++ b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/pom.xml
@@ -36,10 +36,6 @@
-
- org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot.arduino.plugin
-
org.wso2.carbon.devicemgt-plugins
org.wso2.carbon.device.mgt.iot.arduino.api
@@ -140,42 +136,6 @@
-
-
- org.apache.maven.plugins
- maven-antrun-plugin
-
-
-
- create-arduino-plugin-mgt-schema
- package
-
- run
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
org.wso2.maven
carbon-p2-plugin
@@ -196,11 +156,6 @@
org.eclipse.equinox.p2.type.group:true
-
-
- org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.arduino.plugin:${carbon.devicemgt.plugins.version}
-
-
org.wso2.carbon.core.server:${carbon.kernel.version}
diff --git a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/devicetypes/arduino.xml b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/devicetypes/arduino.xml
index 14434b2d3..4a016c270 100644
--- a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/devicetypes/arduino.xml
+++ b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/devicetypes/arduino.xml
@@ -18,7 +18,7 @@
~ under the License.
-->
- raspberrypi
+ arduino
@@ -35,30 +35,4 @@
false
-
-
-
-
- MQTT
-
- raspberrypi.mqtt.adapter
- tcp://localhost:1883
- admin
- https://localhost:9443/dynamic-client-web/register
- 0
-
- true
-
-
-
-
diff --git a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/p2.inf b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/p2.inf
index c334bcfa8..5164aa76d 100644
--- a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/p2.inf
+++ b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/p2.inf
@@ -4,27 +4,21 @@ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../featur
org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../resources/sketches/);\
org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../resources/sketches/arduino/);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.arduino_${feature.version}/agent/,target:${installFolder}/../../resources/sketches/arduino/,overwrite:true);\
-org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.arduino_${feature.version}/dbscripts/,target:${installFolder}/../../../dbscripts/cdm/plugins/arduino,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/jaggeryapps/);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.arduino_${feature.version}/jaggeryapps/,target:${installFolder}/../../deployment/server/jaggeryapps/,overwrite:true);\
-org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.arduino_${feature.version}/datasources/,target:${installFolder}/../../conf/datasources/,overwrite:true);\
-org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../database/);\
-org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.arduino_${feature.version}/database/,target:${installFolder}/../../database/,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/carbonapps/);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.arduino_${feature.version}/carbonapps/,target:${installFolder}/../../deployment/server/carbonapps/,overwrite:true);\
-org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.arduino_${feature.version}/conf/arduino-config.xml,target:${installFolder}/../../conf/etc/device-mgt-plugins/arduino-config.xml,overwrite:true);\
+org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/devicetypes/);\
+org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.arduino_${feature.version}/devicetypes/,target:${installFolder}/../../deployment/server/devicetypes/,overwrite:true);\
instructions.unconfigure = \
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/webapps/arduino.war);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/webapps/arduino);\
-org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../dbscripts/cdm/plugins/arduino);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../resources/sketches/arduino);\
-org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../conf/datasources/arduino-datasources.xml);\
-org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../database/ArduinoDM_DB.h2.db);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.device-view);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.type-view);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.analytics-view);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.realtime.analytics-view);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.arduino.platform.configuration);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/carbonapps/arduino.car);\
-org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../conf/etc/device-mgt-plugins/arduino-config.xml);\
\ No newline at end of file
+org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/devicetypes/arduino.xml);\
\ No newline at end of file
diff --git a/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.url.printer.feature/pom.xml b/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.url.printer.feature/pom.xml
index 88c0f19e8..c5b7ede08 100644
--- a/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.url.printer.feature/pom.xml
+++ b/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.url.printer.feature/pom.xml
@@ -28,7 +28,7 @@
4.0.0
- org.wso2.carbon.device.mgt.iot.feature
+ org.wso2.carbon.device.mgt.iot.url.printer.feature
pom
2.2.5-SNAPSHOT
WSO2 Carbon - IoT Device Management Feature
@@ -38,20 +38,7 @@
org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot
-
-
- org.json.wso2
- json
-
-
-
- org.igniterealtime.smack.wso2
- smack
-
-
- org.igniterealtime.smack.wso2
- smackx
+ org.wso2.carbon.device.mgt.iot.url.printer
@@ -122,7 +109,7 @@
p2-feature-gen
- org.wso2.carbon.device.mgt.iot
+ org.wso2.carbon.device.mgt.iot.url.printer
../../../features/etc/feature.properties
@@ -132,10 +119,7 @@
- org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot:${carbon.devicemgt.plugins.version}
-
-
- org.json.wso2:json:${commons-json.version}
+ org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.url.printer:${carbon.devicemgt.plugins.version}
diff --git a/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.url.printer.feature/src/main/resources/p2.inf b/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.url.printer.feature/src/main/resources/p2.inf
index d15c90c3d..c18cb2b6d 100644
--- a/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.url.printer.feature/src/main/resources/p2.inf
+++ b/features/iot-plugins-feature/iot-base-plugin-feature/org.wso2.carbon.device.mgt.iot.url.printer.feature/src/main/resources/p2.inf
@@ -1,5 +1,5 @@
instructions.configure = \
org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/jaggeryapps/);\
-org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot_${feature.version}/jaggeryapps/,target:${installFolder}/../../deployment/server/jaggeryapps/,overwrite:true);\
+org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.url.printer_${feature.version}/jaggeryapps/,target:${installFolder}/../../deployment/server/jaggeryapps/,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../../repository/resources/email-templates);\
-org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot_${feature.version}/email/templates,target:${installFolder}/../../../repository/resources/email-templates,overwrite:true);\
\ No newline at end of file
+org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.url.printer_${feature.version}/email/templates,target:${installFolder}/../../../repository/resources/email-templates,overwrite:true);\
\ No newline at end of file
diff --git a/features/iot-plugins-feature/iot-base-plugin-feature/pom.xml b/features/iot-plugins-feature/iot-base-plugin-feature/pom.xml
index 868da237a..2373f6c0b 100644
--- a/features/iot-plugins-feature/iot-base-plugin-feature/pom.xml
+++ b/features/iot-plugins-feature/iot-base-plugin-feature/pom.xml
@@ -34,7 +34,7 @@
http://wso2.org
- org.wso2.carbon.device.mgt.iot.feature
+ org.wso2.carbon.device.mgt.iot.url.printer.feature
org.wso2.carbon.device.mgt.iot.adapter.feature
diff --git a/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/pom.xml b/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/pom.xml
index 7bcaf83b8..e4f182516 100644
--- a/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/pom.xml
+++ b/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/pom.xml
@@ -36,10 +36,6 @@
-
- org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot.raspberrypi.plugin
-
org.wso2.carbon.devicemgt-plugins
org.wso2.carbon.device.mgt.iot.raspberrypi.api
@@ -195,11 +191,6 @@
org.eclipse.equinox.p2.type.group:true
-
-
- org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.raspberrypi.plugin:${carbon.devicemgt.plugins.version}
-
-
org.wso2.carbon.core.server:${carbon.kernel.version}
diff --git a/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/src/main/resources/devicetypes/raspberrypi.xml b/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/src/main/resources/devicetypes/raspberrypi.xml
index fea9f3703..1516d879f 100644
--- a/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/src/main/resources/devicetypes/raspberrypi.xml
+++ b/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/src/main/resources/devicetypes/raspberrypi.xml
@@ -18,7 +18,7 @@
~ under the License.
-->
- virtual_firealarm
+ raspberrypi
@@ -41,7 +41,7 @@
MQTT
- virtualfirealarm.mqtt.adapter
+ raspberrypi.mqtt.adapter
tcp://localhost:1883
admin
https://localhost:9443/dynamic-client-web/register
@@ -49,16 +49,5 @@
true
-
-
diff --git a/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/src/main/resources/p2.inf b/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/src/main/resources/p2.inf
index f7c56317e..a5582cdd1 100644
--- a/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/src/main/resources/p2.inf
+++ b/features/iot-plugins-feature/raspberrypi-plugin-feature/org.wso2.carbon.device.mgt.iot.raspberrypi.feature/src/main/resources/p2.inf
@@ -12,7 +12,9 @@ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../data
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.raspberrypi_${feature.version}/database/,target:${installFolder}/../../database/,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/carbonapps/);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.raspberrypi_${feature.version}/carbonapps/,target:${installFolder}/../../deployment/server/carbonapps/,overwrite:true);\
-org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.raspberrypi_${feature.version}/conf/raspberrypi-config.xml,target:${installFolder}/../../conf/etc/device-mgt-plugins/raspberrypi-config.xml,overwrite:true);\
+org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/devicetypes/);\
+org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.raspberrypi_${feature.version}/devicetypes/,target:${installFolder}/../../deployment/server/devicetypes/,overwrite:true);\
+
instructions.unconfigure = \
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/webapps/raspberrypi.war);\
@@ -27,4 +29,4 @@ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../dep
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.realtime.analytics-view);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.raspberrypi.platform.configuration);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/carbonapps/raspberrypi.car);\
-org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../conf/etc/device-mgt-plugins/raspberrypi-config.xml);\
\ No newline at end of file
+org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/devicetypes/raspberrypi.xml);\
\ No newline at end of file
diff --git a/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/conf/virtual_firealarm.xml b/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/conf/virtual_firealarm.xml
index f2eb16ae5..6481df82c 100644
--- a/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/conf/virtual_firealarm.xml
+++ b/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/conf/virtual_firealarm.xml
@@ -18,21 +18,9 @@
~ under the License.
-->
- virtual_firealarm
-
-
-
- jdbc/VirtualFireAlarmDM_DB
-
-
-
- carbon.super
- false
-
-
-
+
- MQTT
+ MQTT
virtualfirealarm.mqtt.adapter
tcp://localhost:1883
@@ -53,5 +41,5 @@
admin@localhost
localhost
-
+
diff --git a/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/devicetypes/virtual_firealarm.xml b/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/devicetypes/virtual_firealarm.xml
index 11ff166ed..fea9f3703 100644
--- a/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/devicetypes/virtual_firealarm.xml
+++ b/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/devicetypes/virtual_firealarm.xml
@@ -21,27 +21,14 @@
virtual_firealarm
-
-
-
-
-
-
-
-
-
-
-
-
-
en_US
1.0.0
This is license text
-
+
@@ -53,10 +40,8 @@
MQTT
- true
-
- sample.mqtt.adapter.sample
+ virtualfirealarm.mqtt.adapter
tcp://localhost:1883
admin
https://localhost:9443/dynamic-client-web/register
@@ -64,5 +49,16 @@
true
+
+
diff --git a/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/p2.inf b/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/p2.inf
index 01279ba1f..7a18d54a3 100644
--- a/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/p2.inf
+++ b/features/iot-plugins-feature/virtual-fire-alarm-plugin-feature/org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature/src/main/resources/p2.inf
@@ -15,10 +15,10 @@ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../featur
org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../resources/security/);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.virtualfirealarm_${feature.version}/certs/,target:${installFolder}/../../resources/security/,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../resources/device-types/);\
-org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.virtualfirealarm_${feature.version}/conf/virtual-fire-alarm-config.xml,target:${installFolder}/../../conf/etc/device-mgt-plugins/virtual-fire-alarm-config.xml,overwrite:true);\
org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/devicetypes/);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.virtualfirealarm_${feature.version}/devicetypes/,target:${installFolder}/../../deployment/server/devicetypes/,overwrite:true);\
-
+org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../conf/etc/device-mgt-plugins/);\
+org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.iot.virtualfirealarm_${feature.version}/conf/virtual_firealarm.xml,target:${installFolder}/../../conf/etc/device-mgt-plugins/virtual_firealarm.xml,overwrite:true);\
instructions.unconfigure = \
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/webapps/virtual_firealarm.war);\
@@ -39,5 +39,5 @@ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../dep
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.realtime.analytics-view);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.virtual_firealarm.policy-wizard);\
org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../resources/security/wso2certs.jks);\
-org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../conf/etc/device-mgt-plugins/virtual-fire-alarm-config.xml);\
-org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/devicetypes/virtual_firealarm.xml);\
\ No newline at end of file
+org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/devicetypes/virtual_firealarm.xml);\
+org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../conf/etc/device-mgt-plugins/virtual_firealarm.xml);\
diff --git a/pom.xml b/pom.xml
index 38b98cb77..25df92552 100644
--- a/pom.xml
+++ b/pom.xml
@@ -367,7 +367,7 @@
org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot
+ org.wso2.carbon.device.mgt.iot.url.printer
${carbon.devicemgt.plugins.version}
@@ -413,11 +413,6 @@
-
- org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot.androidsense.plugin
- ${carbon.devicemgt.plugins.version}
-
org.wso2.carbon.devicemgt-plugins
org.wso2.carbon.device.mgt.iot.androidsense.api
@@ -426,11 +421,6 @@
-
- org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot.arduino.plugin
- ${carbon.devicemgt.plugins.version}
-
org.wso2.carbon.devicemgt-plugins
org.wso2.carbon.device.mgt.iot.arduino.api
@@ -439,11 +429,6 @@
-
- org.wso2.carbon.devicemgt-plugins
- org.wso2.carbon.device.mgt.iot.raspberrypi.plugin
- ${carbon.devicemgt.plugins.version}
-
org.wso2.carbon.devicemgt-plugins
org.wso2.carbon.device.mgt.iot.raspberrypi.api