forked from community/product-iots
Merge pull request #155 from GPrathap/master
adding analytics scripts and plugin implementation for drone analyzerapplication-manager-new
commit
74f26c086e
@ -0,0 +1,34 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--/*
|
||||||
|
* 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.
|
||||||
|
*/-->
|
||||||
|
<project name="create-sample-sensor-capps" default="zip" basedir=".">
|
||||||
|
<property name="project-name" value="${ant.project.name}"/>
|
||||||
|
<property name="target-dir" value="target/carbonapps"/>
|
||||||
|
<property name="src-dir" value="src/main/resources/carbonapps"/>
|
||||||
|
<property name="sensor_dir" value="droneStats"/>
|
||||||
|
<target name="clean">
|
||||||
|
<delete dir="${target-dir}" />
|
||||||
|
</target>
|
||||||
|
<target name="zip" depends="clean">
|
||||||
|
<mkdir dir="${target-dir}"/>
|
||||||
|
<zip destfile="${target-dir}/${sensor_dir}.car">
|
||||||
|
<zipfileset dir="${src-dir}/${sensor_dir}"/>
|
||||||
|
</zip>
|
||||||
|
</target>
|
||||||
|
</project>
|
||||||
|
|
@ -0,0 +1,86 @@
|
|||||||
|
<!--/*
|
||||||
|
* 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.
|
||||||
|
*/-->
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<groupId>org.homeautomation</groupId>
|
||||||
|
<artifactId>droneanalyzer-component</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<relativePath>../pom.xml</relativePath>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>${groupId}.droneanalyzer.analytics</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
<name> ${groupId}.droneanalyzer.analytics </name>
|
||||||
|
<url>http://wso2.org</url>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-clean-plugin</artifactId>
|
||||||
|
<version>${maven-clean-plugin.version}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>auto-clean</id>
|
||||||
|
<phase>initialize</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>clean</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-antrun-plugin</artifactId>
|
||||||
|
<version>${wso2.maven.compiler.source}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>process-resources</phase>
|
||||||
|
<configuration>
|
||||||
|
<target>
|
||||||
|
<ant antfile="build.xml" target="zip"/>
|
||||||
|
</target>
|
||||||
|
</configuration>
|
||||||
|
<goals>
|
||||||
|
<goal>run</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
|
<version>${maven-assembly-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<finalName>${project.artifactId}-1.0.0</finalName>
|
||||||
|
<appendAssemblyId>false</appendAssemblyId>
|
||||||
|
<descriptors>
|
||||||
|
<descriptor>src/assembly/src.xml</descriptor>
|
||||||
|
</descriptors>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>create-archive</id>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>single</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
@ -0,0 +1,36 @@
|
|||||||
|
<!--
|
||||||
|
~ 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<assembly
|
||||||
|
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
|
||||||
|
<id>src</id>
|
||||||
|
<formats>
|
||||||
|
<format>zip</format>
|
||||||
|
</formats>
|
||||||
|
<includeBaseDirectory>false</includeBaseDirectory>
|
||||||
|
<baseDirectory>${basedir}/src</baseDirectory>
|
||||||
|
<fileSets>
|
||||||
|
<fileSet>
|
||||||
|
<directory>${basedir}/target/carbonapps</directory>
|
||||||
|
<outputDirectory>/</outputDirectory>
|
||||||
|
<useDefaultExcludes>true</useDefaultExcludes>
|
||||||
|
</fileSet>
|
||||||
|
</fileSets>
|
||||||
|
</assembly>
|
@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<eventPublisher name="EventPublisher_droneStats" statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventpublisher">
|
||||||
|
<from streamName="org.wso2.iot.devices.droneStats" version="1.0.0"/>
|
||||||
|
<mapping customMapping="disable" type="wso2event"/>
|
||||||
|
<to eventAdapterType="iot-ui"/>
|
||||||
|
</eventPublisher>
|
||||||
|
|
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<artifact name="Eventpublisher_droneStats" version="1.0.0" type="event/publisher" serverRole="DataAnalyticsServer">
|
||||||
|
<file>EventPublisher_droneStats.xml</file>
|
||||||
|
</artifact>
|
@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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.
|
||||||
|
-->
|
||||||
|
<eventReceiver name="droneStats-mqtt" statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventreceiver">
|
||||||
|
<from eventAdapterType="oauth-mqtt">
|
||||||
|
<property name="topic">carbon.super/drone/+/publisher</property>
|
||||||
|
<property name="username">admin</property>
|
||||||
|
<property name="contentValidatorParams">device_id_json_path:event.metaData.deviceId,device_id_topic_hierarchy_index:2</property>
|
||||||
|
<property name="contentValidator">org.wso2.carbon.device.mgt.iot.input.adapter.mqtt.util.MQTTContentValidator</property>
|
||||||
|
<property name="contentTransformer">default</property>
|
||||||
|
<property name="dcrUrl">https://localhost:${carbon.https.port}/dynamic-client-web/register</property>
|
||||||
|
<property name="url">tcp://${mqtt.broker.host}:${mqtt.broker.port}</property>
|
||||||
|
<property name="cleanSession">true</property>
|
||||||
|
</from>
|
||||||
|
<mapping customMapping="disable" type="json"/>
|
||||||
|
<to streamName="org.wso2.iot.devices.droneStats" version="1.0.0"/>
|
||||||
|
</eventReceiver>
|
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<artifact name="Eventreceiver_mqtt_droneStats" version="1.0.0" type="event/receiver" serverRole="DataAnalyticsServer">
|
||||||
|
<file>EventReceiver_mqtt_droneStats.xml</file>
|
||||||
|
</artifact>
|
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<artifact name="Eventstore_droneStats" version="1.0.0" type="analytics/eventstore" serverRole="DataAnalyticsServer">
|
||||||
|
<file>org_wso2_iot_devices_droneStats.xml</file>
|
||||||
|
</artifact>
|
@ -0,0 +1,159 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<!--
|
||||||
|
~ 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.
|
||||||
|
-->
|
||||||
|
<EventStoreConfiguration>
|
||||||
|
<Source>
|
||||||
|
<StreamId>org.wso2.iot.devices.droneStats:1.0.0</StreamId>
|
||||||
|
</Source>
|
||||||
|
<RecordStoreName>EVENT_STORE</RecordStoreName>
|
||||||
|
<TableSchema>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>meta_owner</Name>
|
||||||
|
<EnableIndexing>true</EnableIndexing>
|
||||||
|
<IsPrimaryKey>true</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>STRING</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>meta_deviceType</Name>
|
||||||
|
<EnableIndexing>true</EnableIndexing>
|
||||||
|
<IsPrimaryKey>true</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>STRING</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>meta_deviceId</Name>
|
||||||
|
<EnableIndexing>true</EnableIndexing>
|
||||||
|
<IsPrimaryKey>true</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>STRING</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>meta_time</Name>
|
||||||
|
<EnableIndexing>true</EnableIndexing>
|
||||||
|
<IsPrimaryKey>true</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>LONG</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>quatanium_val_q1</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>DOUBLE</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>quatanium_val_q2</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>DOUBLE</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>quatanium_val_q3</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>DOUBLE</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>quatanium_val_q4</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>DOUBLE</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>velocity_x</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>DOUBLE</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>velocity_y</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>DOUBLE</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>velocity_z</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>DOUBLE</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>global_location_lat</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>DOUBLE</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>global_location_alt</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>DOUBLE</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>global_location_lon</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>DOUBLE</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>battery_level</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>DOUBLE</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>battery_voltage</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>DOUBLE</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>pitch</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>DOUBLE</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>roll</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>DOUBLE</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<Name>yaw</Name>
|
||||||
|
<EnableIndexing>false</EnableIndexing>
|
||||||
|
<IsPrimaryKey>false</IsPrimaryKey>
|
||||||
|
<EnableScoreParam>false</EnableScoreParam>
|
||||||
|
<Type>DOUBLE</Type>
|
||||||
|
</ColumnDefinition>
|
||||||
|
</TableSchema>
|
||||||
|
</EventStoreConfiguration>
|
@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<artifact name="Eventstream_droneStats" version="1.0.0" type="event/stream" serverRole="DataAnalyticsServer">
|
||||||
|
<file>org.wso2.iot.devices.droneStats_1.0.0.json</file>
|
||||||
|
</artifact>
|
||||||
|
|
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"name": "org.wso2.iot.devices.droneStats",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"nickName": "droneStats",
|
||||||
|
"description": "droneStats data received from the Device",
|
||||||
|
"metaData": [
|
||||||
|
{"name":"owner","type":"STRING"},
|
||||||
|
{"name":"deviceType","type":"STRING"},
|
||||||
|
{"name":"deviceId","type":"STRING"},
|
||||||
|
{"name":"time","type":"LONG"}
|
||||||
|
],
|
||||||
|
"payloadData": [
|
||||||
|
{"name": "quatanium_val_q1", "type": "DOUBLE"},
|
||||||
|
{"name": "quatanium_val_q2", "type": "DOUBLE"},
|
||||||
|
{"name": "quatanium_val_q3", "type": "DOUBLE"},
|
||||||
|
{"name": "quatanium_val_q4", "type": "DOUBLE"},
|
||||||
|
{"name": "velocity_x", "type": "DOUBLE"},
|
||||||
|
{"name": "velocity_y", "type": "DOUBLE"},
|
||||||
|
{"name": "velocity_z", "type": "DOUBLE"},
|
||||||
|
{"name": "global_location_lat", "type": "DOUBLE"},
|
||||||
|
{"name": "global_location_alt", "type": "DOUBLE"},
|
||||||
|
{"name": "global_location_lon", "type": "DOUBLE"},
|
||||||
|
{"name": "battery_level", "type": "DOUBLE"},
|
||||||
|
{"name": "battery_voltage", "type": "DOUBLE"},
|
||||||
|
{"name": "pitch", "type": "DOUBLE"},
|
||||||
|
{"name": "roll", "type": "DOUBLE"},
|
||||||
|
{"name": "yaw", "type": "DOUBLE"}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<artifact name="Sparkscripts" version="1.0.0" type="analytics/spark" serverRole="DataAnalyticsServer">
|
||||||
|
<file>droneStats_Script.xml</file>
|
||||||
|
</artifact>
|
@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<!--
|
||||||
|
~ 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Analytics>
|
||||||
|
<Name>IoTServer_Sensor_Script</Name>
|
||||||
|
<Script>
|
||||||
|
CREATE TEMPORARY TABLE DevicedroneStatsData USING CarbonAnalytics OPTIONS(tableName "ORG_WSO2_IOT_DEVICES_droneStats");
|
||||||
|
CREATE TEMPORARY TABLE DevicedroneStatsSummaryData USING CarbonAnalytics OPTIONS (tableName "DEVICE_droneStats_SUMMARY", schema "quatanium_val_q1 DOUBLE -i,quatanium_val_q2 DOUBLE -i,quatanium_val_q3 DOUBLE -i,quatanium_val_q4 DOUBLE -i,velocity_x DOUBLE -i,velocity_y DOUBLE -i,velocity_z DOUBLE -i,global_location_lat DOUBLE -i,global_location_alt DOUBLE -i,global_location_lon DOUBLE -i,battery_level DOUBLE -i,battery_voltage DOUBLE -i,pitch DOUBLE -i,roll DOUBLE -i,yaw DOUBLE -i, deviceType STRING -i, deviceId STRING -i, owner STRING -i, time LONG -i",primaryKeys "deviceType, deviceId, owner, time");
|
||||||
|
insert into table DevicedroneStatsSummaryData select quatanium_val_q1,quatanium_val_q2,quatanium_val_q3,quatanium_val_q4,velocity_x,velocity_y,velocity_z,global_location_lat,global_location_alt,global_location_lon,battery_level,battery_voltage,pitch,roll,yaw, meta_deviceType as deviceType, meta_deviceId as deviceId, meta_owner as owner, cast(meta_time/1000 as BIGINT) as time from DevicedroneStatsData group by meta_deviceType, meta_deviceId, meta_owner, cast(meta_time/1000 as BIGINT),quatanium_val_q1,quatanium_val_q2,quatanium_val_q3,quatanium_val_q4,velocity_x,velocity_y,velocity_z,global_location_lat,global_location_alt,global_location_lon,battery_level,battery_voltage,pitch,roll,yaw ;
|
||||||
|
</Script>
|
||||||
|
<CronExpression>0 * * * * ?</CronExpression>
|
||||||
|
</Analytics>
|
@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<artifacts>
|
||||||
|
<artifact name="droneStats_CAPP" version="1.0.0" type="carbon/application">
|
||||||
|
<dependency artifact="Eventstream_droneStats" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||||
|
<dependency artifact="Eventstore_droneStats" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||||
|
<dependency artifact="Eventreceiver_mqtt_droneStats" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||||
|
<dependency artifact="Eventpublisher_droneStats" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||||
|
<dependency artifact="Sparkscripts" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||||
|
</artifact>
|
||||||
|
</artifacts>
|
@ -0,0 +1,173 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<groupId>org.homeautomation</groupId>
|
||||||
|
<artifactId>droneanalyzer-component</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<relativePath>../pom.xml</relativePath>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>${project-base-package}.api</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<packaging>war</packaging>
|
||||||
|
<name>${project-base-package}.api</name>
|
||||||
|
<url>http://wso2.com</url>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>${maven-compiler-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<encoding>UTF-8</encoding>
|
||||||
|
<source>${maven.compiler.source}</source>
|
||||||
|
<target>${maven.compiler.target}</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-war-plugin</artifactId>
|
||||||
|
<version>${maven-war-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<warName>${project-base-package}.api</warName>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
<dependencies>
|
||||||
|
<!-- CDM -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.device.mgt.common</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.device.mgt.core</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>org.apache.axis2.wso2</groupId>
|
||||||
|
<artifactId>axis2-client</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!--CXF -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.cxf</groupId>
|
||||||
|
<artifactId>cxf-rt-frontend-jaxws</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.cxf</groupId>
|
||||||
|
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.cxf</groupId>
|
||||||
|
<artifactId>cxf-rt-transports-http</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!--MQTT -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.paho</groupId>
|
||||||
|
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!--IOT -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.httpcomponents</groupId>
|
||||||
|
<artifactId>httpasyncclient</artifactId>
|
||||||
|
<version>4.1</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.device.mgt.iot</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.homeautomation</groupId>
|
||||||
|
<artifactId>${project-base-package}.plugin</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!--JAX-RS -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.codehaus.jackson</groupId>
|
||||||
|
<artifactId>jackson-core-asl</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.codehaus.jackson</groupId>
|
||||||
|
<artifactId>jackson-jaxrs</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax</groupId>
|
||||||
|
<artifactId>javaee-web-api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.ws.rs</groupId>
|
||||||
|
<artifactId>jsr311-api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.device.mgt.analytics.data.publisher</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.apimgt.annotations</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.analytics</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.analytics.api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.analytics</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.analytics.api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.device.mgt.extensions</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.identity.jwt.client.extension</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.apimgt.application.extension</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
@ -0,0 +1,133 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<groupId>org.homeautomation</groupId>
|
||||||
|
<artifactId>droneanalyzer-component</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<relativePath>../pom.xml</relativePath>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<artifactId>${project-base-package}.plugin</artifactId>
|
||||||
|
<packaging>bundle</packaging>
|
||||||
|
<name>${project-base-package}.plugin</name>
|
||||||
|
<url>http://wso2.org</url>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.felix</groupId>
|
||||||
|
<artifactId>maven-scr-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>${maven-compiler-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<encoding>UTF-8</encoding>
|
||||||
|
<source>${maven.compiler.source}</source>
|
||||||
|
<target>${maven.compiler.target}</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.felix</groupId>
|
||||||
|
<artifactId>maven-bundle-plugin</artifactId>
|
||||||
|
<version>${org.apache.felix.version}</version>
|
||||||
|
<extensions>true</extensions>
|
||||||
|
<configuration>
|
||||||
|
<instructions>
|
||||||
|
<Bundle-SymbolicName>${project-base-package}.plugin</Bundle-SymbolicName>
|
||||||
|
<Bundle-Name>${project-base-package}.plugin</Bundle-Name>
|
||||||
|
<Bundle-Version>1.0.0</Bundle-Version>
|
||||||
|
<Bundle-Description>IoT Server Impl Bundle</Bundle-Description>
|
||||||
|
<Private-Package>${project-base-package}.plugin.internal</Private-Package>
|
||||||
|
<Import-Package>
|
||||||
|
org.osgi.framework,
|
||||||
|
org.osgi.service.component,
|
||||||
|
org.apache.commons.logging,
|
||||||
|
javax.naming;resolution:=optional,
|
||||||
|
javax.sql;resolution:=optional,
|
||||||
|
org.wso2.carbon.device.mgt.common.*,
|
||||||
|
org.wso2.carbon.device.mgt.common,
|
||||||
|
org.wso2.carbon.device.mgt.iot.*,
|
||||||
|
org.wso2.carbon.device.mgt.extensions.feature.mgt.*,
|
||||||
|
org.wso2.carbon.utils.*,
|
||||||
|
org.wso2.carbon.event.output.adapter.core,
|
||||||
|
org.wso2.carbon.event.output.adapter.core.exception,
|
||||||
|
org.wso2.carbon.base,
|
||||||
|
org.wso2.carbon.core.util,
|
||||||
|
org.wso2.carbon.context,
|
||||||
|
org.wso2.carbon.core,
|
||||||
|
org.apache.commons.codec.binary
|
||||||
|
</Import-Package>
|
||||||
|
<Export-Package>
|
||||||
|
!${project-base-package}.plugin.internal,
|
||||||
|
${project-base-package}.plugin.*
|
||||||
|
</Export-Package>
|
||||||
|
</instructions>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-codec.wso2</groupId>
|
||||||
|
<artifactId>commons-codec</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.osgi</groupId>
|
||||||
|
<artifactId>org.eclipse.osgi</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.osgi</groupId>
|
||||||
|
<artifactId>org.eclipse.osgi.services</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.logging</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.device.mgt.common</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.device.mgt.core</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.ndatasource.core</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.devicemgt</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.device.mgt.extensions</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.utils</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wso2.carbon.analytics-common</groupId>
|
||||||
|
<artifactId>org.wso2.carbon.event.output.adapter.core</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
@ -0,0 +1,70 @@
|
|||||||
|
/*
|
||||||
|
* 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.homeautomation.droneanalyzer.plugin.constants;
|
||||||
|
|
||||||
|
import org.wso2.carbon.utils.CarbonUtils;
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Device type specific constants which includes all transport protocols configurations,
|
||||||
|
* stream definition and device specific dome constants
|
||||||
|
*/
|
||||||
|
public class DroneAnalyzerConstants {
|
||||||
|
public final static String DEVICE_TYPE = "drone";
|
||||||
|
public final static String DEVICE_PLUGIN_DEVICE_NAME = "DEVICE_NAME";
|
||||||
|
public final static String DEVICE_PLUGIN_DEVICE_ID = "drone_DEVICE_ID";
|
||||||
|
public final static String STATE_ON = "ON";
|
||||||
|
public final static String STATE_OFF = "OFF";
|
||||||
|
|
||||||
|
//sensor events summerized table name
|
||||||
|
public static final String SENSOR_EVENT_TABLE = "ORG_WSO2_IOT_DEVICES_droneStats";
|
||||||
|
public static final String DATA_SOURCE_NAME = "jdbc/droneDM_DB";
|
||||||
|
public final static String DEVICE_TYPE_PROVIDER_DOMAIN = "carbon.super";
|
||||||
|
|
||||||
|
//mqtt tranport related constants
|
||||||
|
public static final String MQTT_ADAPTER_NAME = "droneStats_mqtt";
|
||||||
|
public static final String MQTT_ADAPTER_TYPE = "oauth-mqtt";
|
||||||
|
public static final String ADAPTER_TOPIC_PROPERTY = "topic";
|
||||||
|
public static final String MQTT_PORT = "\\{mqtt.broker.port\\}";
|
||||||
|
public static final String MQTT_BROKER_HOST = "\\{mqtt.broker.host\\}";
|
||||||
|
public static final String CARBON_CONFIG_PORT_OFFSET = "Ports.Offset";
|
||||||
|
public static final String DEFAULT_CARBON_LOCAL_IP_PROPERTY = "carbon.local.ip";
|
||||||
|
public static final int CARBON_DEFAULT_PORT_OFFSET = 0;
|
||||||
|
public static final int DEFAULT_MQTT_PORT = 1883;
|
||||||
|
public static final String SUBSCRIBED_TOPIC = "carbon.super/drone/+/publisher";
|
||||||
|
public static final String CONTENT_TRANSFORMATION = "contentTransformer";
|
||||||
|
public static final String CONTENT_VALIDATION = "contentValidator";
|
||||||
|
public static final String RESOURCE = "resource";
|
||||||
|
|
||||||
|
public static final String USERNAME_PROPERTY_KEY = "username";
|
||||||
|
public static final String DCR_PROPERTY_KEY = "dcrUrl";
|
||||||
|
public static final String BROKER_URL_PROPERTY_KEY = "url";
|
||||||
|
public static final String SCOPES_PROPERTY_KEY = "scopes";
|
||||||
|
public static final String QOS_PROPERTY_KEY = "qos";
|
||||||
|
public static final String CLIENT_ID_PROPERTY_KEY = "qos";
|
||||||
|
public static final String CLEAR_SESSION_PROPERTY_KEY = "clearSession";
|
||||||
|
public static final String TOPIC = "topic";
|
||||||
|
|
||||||
|
public final static String SENSOR_STREAM_DEFINITION = "org.wso2.iot.devices.droneStats";
|
||||||
|
public final static String SENSOR_STREAM_DEFINITION_VERSION = "1.0.0";
|
||||||
|
|
||||||
|
public static final String MQTT_CONFIG_LOCATION = CarbonUtils.getEtcCarbonConfigDirPath() + File.separator
|
||||||
|
+ "mqtt.properties";
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* 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.homeautomation.droneanalyzer.plugin.exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Device type plugin exception handler
|
||||||
|
*/
|
||||||
|
public class DeviceMgtPluginException extends Exception {
|
||||||
|
|
||||||
|
private String errorMessage;
|
||||||
|
|
||||||
|
public DeviceMgtPluginException(String msg, Exception nestedEx) {
|
||||||
|
super(msg, nestedEx);
|
||||||
|
setErrorMessage(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public DeviceMgtPluginException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
setErrorMessage(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public DeviceMgtPluginException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
setErrorMessage(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public DeviceMgtPluginException() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public DeviceMgtPluginException(Throwable cause) {
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getErrorMessage() {
|
||||||
|
return errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setErrorMessage(String errorMessage) {
|
||||||
|
this.errorMessage = errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,254 @@
|
|||||||
|
/*
|
||||||
|
* 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.homeautomation.droneanalyzer.plugin.impl;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.impl.dao.DroneAnalyzerDAO;
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.exception.DeviceMgtPluginException;
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.impl.feature.DroneAnalyzerFeatureManager;
|
||||||
|
import org.wso2.carbon.device.mgt.common.Device;
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceManager;
|
||||||
|
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
|
||||||
|
import org.wso2.carbon.device.mgt.common.FeatureManager;
|
||||||
|
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
|
||||||
|
import org.wso2.carbon.device.mgt.common.license.mgt.License;
|
||||||
|
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This represents the ggg implementation of DeviceManagerService.
|
||||||
|
*/
|
||||||
|
public class DroneAnalyzerManager implements DeviceManager {
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(DroneAnalyzerManager.class);
|
||||||
|
private static final DroneAnalyzerDAO deviceTypeDAO = new DroneAnalyzerDAO();
|
||||||
|
private FeatureManager featureManager = new DroneAnalyzerFeatureManager();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FeatureManager getFeatureManager() {
|
||||||
|
return featureManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean saveConfiguration(PlatformConfiguration platformConfiguration) throws DeviceManagementException {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PlatformConfiguration getConfiguration() throws DeviceManagementException {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean enrollDevice(Device device) throws DeviceManagementException {
|
||||||
|
boolean status;
|
||||||
|
try {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Enrolling a new droneanalyzer device : " + device.getDeviceIdentifier());
|
||||||
|
}
|
||||||
|
DroneAnalyzerDAO.beginTransaction();
|
||||||
|
status = deviceTypeDAO.getDroneAnalyzerDAO().addDevice(device);
|
||||||
|
DroneAnalyzerDAO.commitTransaction();
|
||||||
|
} catch (DeviceMgtPluginException e) {
|
||||||
|
try {
|
||||||
|
DroneAnalyzerDAO.rollbackTransaction();
|
||||||
|
} catch (DeviceMgtPluginException iotDAOEx) {
|
||||||
|
log.warn("Error occurred while roll back the device enrol transaction :" + device.toString(), iotDAOEx);
|
||||||
|
}
|
||||||
|
String msg = "Error while enrolling the droneanalyzer device : " + device.getDeviceIdentifier();
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new DeviceManagementException(msg, e);
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean modifyEnrollment(Device device) throws DeviceManagementException {
|
||||||
|
boolean status;
|
||||||
|
try {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Modifying the droneanalyzer device enrollment data");
|
||||||
|
}
|
||||||
|
DroneAnalyzerDAO.beginTransaction();
|
||||||
|
status = deviceTypeDAO.getDroneAnalyzerDAO().updateDevice(device);
|
||||||
|
DroneAnalyzerDAO.commitTransaction();
|
||||||
|
} catch (DeviceMgtPluginException e) {
|
||||||
|
try {
|
||||||
|
DroneAnalyzerDAO.rollbackTransaction();
|
||||||
|
} catch (DeviceMgtPluginException iotDAOEx) {
|
||||||
|
String msg = "Error occurred while roll back the update device transaction :" + device.toString();
|
||||||
|
log.warn(msg, iotDAOEx);
|
||||||
|
}
|
||||||
|
String msg = "Error while updating the enrollment of the droneanalyzer device : " +
|
||||||
|
device.getDeviceIdentifier();
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new DeviceManagementException(msg, e);
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean disenrollDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||||
|
boolean status;
|
||||||
|
try {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Dis-enrolling droneanalyzer device : " + deviceId);
|
||||||
|
}
|
||||||
|
DroneAnalyzerDAO.beginTransaction();
|
||||||
|
status = deviceTypeDAO.getDroneAnalyzerDAO().deleteDevice(deviceId.getId());
|
||||||
|
DroneAnalyzerDAO.commitTransaction();
|
||||||
|
} catch (DeviceMgtPluginException e) {
|
||||||
|
try {
|
||||||
|
DroneAnalyzerDAO.rollbackTransaction();
|
||||||
|
} catch (DeviceMgtPluginException iotDAOEx) {
|
||||||
|
String msg = "Error occurred while roll back the device dis enrol transaction :" + deviceId.toString();
|
||||||
|
log.warn(msg, iotDAOEx);
|
||||||
|
}
|
||||||
|
String msg = "Error while removing the droneanalyzer device : " + deviceId.getId();
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new DeviceManagementException(msg, e);
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnrolled(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||||
|
boolean isEnrolled = false;
|
||||||
|
try {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Checking the enrollment of droneanalyzer device : " + deviceId.getId());
|
||||||
|
}
|
||||||
|
Device iotDevice =
|
||||||
|
deviceTypeDAO.getDroneAnalyzerDAO().getDevice(deviceId.getId());
|
||||||
|
if (iotDevice != null) {
|
||||||
|
isEnrolled = true;
|
||||||
|
}
|
||||||
|
} catch (DeviceMgtPluginException e) {
|
||||||
|
String msg = "Error while checking the enrollment status of droneanalyzer device : " +
|
||||||
|
deviceId.getId();
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new DeviceManagementException(msg, e);
|
||||||
|
}
|
||||||
|
return isEnrolled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isActive(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean setActive(DeviceIdentifier deviceId, boolean status)
|
||||||
|
throws DeviceManagementException {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Device getDevice(DeviceIdentifier deviceId) throws DeviceManagementException {
|
||||||
|
Device device;
|
||||||
|
try {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Getting the details of droneanalyzer device : " + deviceId.getId());
|
||||||
|
}
|
||||||
|
device = deviceTypeDAO.getDroneAnalyzerDAO().getDevice(deviceId.getId());
|
||||||
|
} catch (DeviceMgtPluginException e) {
|
||||||
|
String msg = "Error while fetching the droneanalyzer device : " + deviceId.getId();
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new DeviceManagementException(msg, e);
|
||||||
|
}
|
||||||
|
return device;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean setOwnership(DeviceIdentifier deviceId, String ownershipType)
|
||||||
|
throws DeviceManagementException {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isClaimable(DeviceIdentifier deviceIdentifier) throws DeviceManagementException {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean setStatus(DeviceIdentifier deviceId, String currentOwner,
|
||||||
|
EnrolmentInfo.Status status) throws DeviceManagementException {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public License getLicense(String s) throws LicenseManagementException {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addLicense(License license) throws LicenseManagementException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean requireDeviceAuthorization() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean updateDeviceInfo(DeviceIdentifier deviceIdentifier, Device device) throws DeviceManagementException {
|
||||||
|
boolean status;
|
||||||
|
try {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("updating the details of droneanalyzer device : " + deviceIdentifier);
|
||||||
|
}
|
||||||
|
DroneAnalyzerDAO.beginTransaction();
|
||||||
|
status = deviceTypeDAO.getDroneAnalyzerDAO().updateDevice(device);
|
||||||
|
DroneAnalyzerDAO.commitTransaction();
|
||||||
|
} catch (DeviceMgtPluginException e) {
|
||||||
|
try {
|
||||||
|
DroneAnalyzerDAO.rollbackTransaction();
|
||||||
|
} catch (DeviceMgtPluginException iotDAOEx) {
|
||||||
|
String msg = "Error occurred while roll back the update device info transaction :" + device.toString();
|
||||||
|
log.warn(msg, iotDAOEx);
|
||||||
|
}
|
||||||
|
String msg =
|
||||||
|
"Error while updating the droneanalyzer device : " + deviceIdentifier;
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new DeviceManagementException(msg, e);
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Device> getAllDevices() throws DeviceManagementException {
|
||||||
|
List<Device> devices;
|
||||||
|
try {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Fetching the details of all droneanalyzer devices");
|
||||||
|
}
|
||||||
|
devices = deviceTypeDAO.getDroneAnalyzerDAO().getAllDevices();
|
||||||
|
} catch (DeviceMgtPluginException e) {
|
||||||
|
String msg = "Error while fetching all droneanalyzer devices.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new DeviceManagementException(msg, e);
|
||||||
|
}
|
||||||
|
return devices;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
* 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.homeautomation.droneanalyzer.plugin.impl;
|
||||||
|
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.constants.DroneAnalyzerConstants;
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
|
import org.wso2.carbon.device.mgt.common.ProvisioningConfig;
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceManager;
|
||||||
|
import org.wso2.carbon.device.mgt.common.app.mgt.Application;
|
||||||
|
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManagementException;
|
||||||
|
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager;
|
||||||
|
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
|
||||||
|
import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationConfig;
|
||||||
|
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class DroneAnalyzerManagerService implements DeviceManagementService {
|
||||||
|
private DeviceManager deviceManager;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getType() {
|
||||||
|
return DroneAnalyzerConstants.DEVICE_TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws DeviceManagementException {
|
||||||
|
this.deviceManager = new DroneAnalyzerManager();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DeviceManager getDeviceManager() {
|
||||||
|
return deviceManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ApplicationManager getApplicationManager() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ProvisioningConfig getProvisioningConfig() {
|
||||||
|
return new ProvisioningConfig(DroneAnalyzerConstants.DEVICE_TYPE_PROVIDER_DOMAIN, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PushNotificationConfig getPushNotificationConfig() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,132 @@
|
|||||||
|
/*
|
||||||
|
* 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.homeautomation.droneanalyzer.plugin.impl.dao;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.constants.DroneAnalyzerConstants;
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.impl.dao.impl.DroneAnalyzerDAOImpl;
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.exception.DeviceMgtPluginException;
|
||||||
|
|
||||||
|
import javax.naming.Context;
|
||||||
|
import javax.naming.InitialContext;
|
||||||
|
import javax.naming.NamingException;
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Database handler which is specified for gg type
|
||||||
|
*/
|
||||||
|
public class DroneAnalyzerDAO {
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(DroneAnalyzerDAO.class);
|
||||||
|
static DataSource dataSource; // package local variable
|
||||||
|
private static ThreadLocal<Connection> currentConnection = new ThreadLocal<>();
|
||||||
|
|
||||||
|
public DroneAnalyzerDAO() {
|
||||||
|
initDroneAnalyzerDAO();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void initDroneAnalyzerDAO() {
|
||||||
|
try {
|
||||||
|
Context ctx = new InitialContext();
|
||||||
|
dataSource = (DataSource) ctx.lookup(DroneAnalyzerConstants.DATA_SOURCE_NAME);
|
||||||
|
} catch (NamingException e) {
|
||||||
|
log.error("Error while looking up the data source: " +
|
||||||
|
DroneAnalyzerConstants.DATA_SOURCE_NAME);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void beginTransaction() throws DeviceMgtPluginException {
|
||||||
|
try {
|
||||||
|
Connection conn = dataSource.getConnection();
|
||||||
|
conn.setAutoCommit(false);
|
||||||
|
currentConnection.set(conn);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new DeviceMgtPluginException("Error occurred while retrieving datasource connection", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Connection getConnection() throws DeviceMgtPluginException {
|
||||||
|
if (currentConnection.get() == null) {
|
||||||
|
try {
|
||||||
|
currentConnection.set(dataSource.getConnection());
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new DeviceMgtPluginException("Error occurred while retrieving data source connection",
|
||||||
|
e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return currentConnection.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void commitTransaction() throws DeviceMgtPluginException {
|
||||||
|
try {
|
||||||
|
Connection conn = currentConnection.get();
|
||||||
|
if (conn != null) {
|
||||||
|
conn.commit();
|
||||||
|
} else {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Datasource connection associated with the current thread is null, hence commit " +
|
||||||
|
"has not been attempted");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new DeviceMgtPluginException("Error occurred while committing the transaction", e);
|
||||||
|
} finally {
|
||||||
|
closeConnection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void closeConnection() throws DeviceMgtPluginException {
|
||||||
|
|
||||||
|
Connection con = currentConnection.get();
|
||||||
|
if (con != null) {
|
||||||
|
try {
|
||||||
|
con.close();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
log.error("Error occurred while close the connection");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
currentConnection.remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void rollbackTransaction() throws DeviceMgtPluginException {
|
||||||
|
try {
|
||||||
|
Connection conn = currentConnection.get();
|
||||||
|
if (conn != null) {
|
||||||
|
conn.rollback();
|
||||||
|
} else {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Datasource connection associated with the current thread is null, hence rollback " +
|
||||||
|
"has not been attempted");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new DeviceMgtPluginException("Error occurred while rollback the transaction", e);
|
||||||
|
} finally {
|
||||||
|
closeConnection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public DroneAnalyzerDAOImpl getDroneAnalyzerDAO() {
|
||||||
|
return new DroneAnalyzerDAOImpl();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,206 @@
|
|||||||
|
/*
|
||||||
|
* 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.homeautomation.droneanalyzer.plugin.impl.dao.impl;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.constants.DroneAnalyzerConstants;
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.exception.DeviceMgtPluginException;
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.impl.dao.DroneAnalyzerDAO;
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.impl.util.DroneAnalyzerUtils;
|
||||||
|
|
||||||
|
import org.wso2.carbon.device.mgt.common.Device;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implements IotDeviceDAO for gg Devices.
|
||||||
|
*/
|
||||||
|
public class DroneAnalyzerDAOImpl {
|
||||||
|
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(DroneAnalyzerDAOImpl.class);
|
||||||
|
|
||||||
|
public Device getDevice(String deviceId) throws DeviceMgtPluginException {
|
||||||
|
Connection conn = null;
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
Device iotDevice = null;
|
||||||
|
ResultSet resultSet = null;
|
||||||
|
try {
|
||||||
|
conn = DroneAnalyzerDAO.getConnection();
|
||||||
|
String selectDBQuery =
|
||||||
|
"SELECT drone_DEVICE_ID, DEVICE_NAME" +
|
||||||
|
" FROM drone_DEVICE WHERE drone_DEVICE_ID = ?";
|
||||||
|
stmt = conn.prepareStatement(selectDBQuery);
|
||||||
|
stmt.setString(1, deviceId);
|
||||||
|
resultSet = stmt.executeQuery();
|
||||||
|
|
||||||
|
if (resultSet.next()) {
|
||||||
|
iotDevice = new Device();
|
||||||
|
iotDevice.setName(resultSet.getString(
|
||||||
|
DroneAnalyzerConstants.DEVICE_PLUGIN_DEVICE_NAME));
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("drone device " + deviceId + " data has been fetched from " +
|
||||||
|
"drone database.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while fetching drone device : '" + deviceId + "'";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new DeviceMgtPluginException(msg, e);
|
||||||
|
} finally {
|
||||||
|
DroneAnalyzerUtils.cleanupResources(stmt, resultSet);
|
||||||
|
DroneAnalyzerDAO.closeConnection();
|
||||||
|
}
|
||||||
|
return iotDevice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean addDevice(Device device) throws DeviceMgtPluginException {
|
||||||
|
boolean status = false;
|
||||||
|
Connection conn;
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
try {
|
||||||
|
conn = DroneAnalyzerDAO.getConnection();
|
||||||
|
String createDBQuery =
|
||||||
|
"INSERT INTO drone_DEVICE(drone_DEVICE_ID, DEVICE_NAME) VALUES (?, ?)";
|
||||||
|
stmt = conn.prepareStatement(createDBQuery);
|
||||||
|
stmt.setString(1, device.getDeviceIdentifier());
|
||||||
|
stmt.setString(2, device.getName());
|
||||||
|
int rows = stmt.executeUpdate();
|
||||||
|
if (rows > 0) {
|
||||||
|
status = true;
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("drone device " + device.getDeviceIdentifier() + " data has been" +
|
||||||
|
" added to the drone database.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while adding the drone device '" +
|
||||||
|
device.getDeviceIdentifier() + "' to the drone db.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new DeviceMgtPluginException(msg, e);
|
||||||
|
} finally {
|
||||||
|
DroneAnalyzerUtils.cleanupResources(stmt, null);
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean updateDevice(Device device) throws DeviceMgtPluginException {
|
||||||
|
boolean status = false;
|
||||||
|
Connection conn = null;
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
try {
|
||||||
|
conn = DroneAnalyzerDAO.getConnection();
|
||||||
|
String updateDBQuery =
|
||||||
|
"UPDATE drone_DEVICE SET DEVICE_NAME = ? WHERE drone_DEVICE_ID = ?";
|
||||||
|
stmt = conn.prepareStatement(updateDBQuery);
|
||||||
|
if (device.getProperties() == null) {
|
||||||
|
device.setProperties(new ArrayList<Device.Property>());
|
||||||
|
}
|
||||||
|
stmt.setString(1, device.getName());
|
||||||
|
stmt.setString(2, device.getDeviceIdentifier());
|
||||||
|
int rows = stmt.executeUpdate();
|
||||||
|
if (rows > 0) {
|
||||||
|
status = true;
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("drone device " + device.getDeviceIdentifier() + " data has been" +
|
||||||
|
" modified.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while modifying the drone device '" +
|
||||||
|
device.getDeviceIdentifier() + "' data.";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new DeviceMgtPluginException(msg, e);
|
||||||
|
} finally {
|
||||||
|
DroneAnalyzerUtils.cleanupResources(stmt, null);
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean deleteDevice(String deviceId) throws DeviceMgtPluginException {
|
||||||
|
boolean status = false;
|
||||||
|
Connection conn = null;
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
try {
|
||||||
|
conn = DroneAnalyzerDAO.getConnection();
|
||||||
|
String deleteDBQuery =
|
||||||
|
"DELETE FROM drone_DEVICE WHERE drone_DEVICE_ID = ?";
|
||||||
|
stmt = conn.prepareStatement(deleteDBQuery);
|
||||||
|
stmt.setString(1, deviceId);
|
||||||
|
int rows = stmt.executeUpdate();
|
||||||
|
if (rows > 0) {
|
||||||
|
status = true;
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("drone device " + deviceId + " data has deleted" +
|
||||||
|
" from the drone database.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while deleting drone device " + deviceId;
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new DeviceMgtPluginException(msg, e);
|
||||||
|
} finally {
|
||||||
|
DroneAnalyzerUtils.cleanupResources(stmt, null);
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Device> getAllDevices() throws DeviceMgtPluginException {
|
||||||
|
Connection conn = null;
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
ResultSet resultSet = null;
|
||||||
|
Device device;
|
||||||
|
List<Device> iotDevices = new ArrayList<>();
|
||||||
|
try {
|
||||||
|
conn = DroneAnalyzerDAO.getConnection();
|
||||||
|
String selectDBQuery =
|
||||||
|
"SELECT drone_DEVICE_ID, DEVICE_NAME " +
|
||||||
|
"FROM drone_DEVICE";
|
||||||
|
stmt = conn.prepareStatement(selectDBQuery);
|
||||||
|
resultSet = stmt.executeQuery();
|
||||||
|
while (resultSet.next()) {
|
||||||
|
device = new Device();
|
||||||
|
device.setDeviceIdentifier(resultSet.getString(DroneAnalyzerConstants.DEVICE_PLUGIN_DEVICE_ID));
|
||||||
|
device.setName(resultSet.getString(DroneAnalyzerConstants.DEVICE_PLUGIN_DEVICE_NAME));
|
||||||
|
List<Device.Property> propertyList = new ArrayList<>();
|
||||||
|
device.setProperties(propertyList);
|
||||||
|
}
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("All drone device details have fetched from drone database.");
|
||||||
|
}
|
||||||
|
return iotDevices;
|
||||||
|
} catch (SQLException e) {
|
||||||
|
String msg = "Error occurred while fetching all drone device data'";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new DeviceMgtPluginException(msg, e);
|
||||||
|
} finally {
|
||||||
|
DroneAnalyzerUtils.cleanupResources(stmt, resultSet);
|
||||||
|
DroneAnalyzerDAO.closeConnection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.homeautomation.droneanalyzer.plugin.impl.feature;
|
||||||
|
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.constants.DroneAnalyzerConstants;
|
||||||
|
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
||||||
|
import org.wso2.carbon.device.mgt.common.Feature;
|
||||||
|
import org.wso2.carbon.device.mgt.common.FeatureManager;
|
||||||
|
import org.wso2.carbon.device.mgt.extensions.feature.mgt.GenericFeatureManager;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Device type specific feature management server
|
||||||
|
*/
|
||||||
|
public class DroneAnalyzerFeatureManager implements FeatureManager {
|
||||||
|
@Override
|
||||||
|
public boolean addFeature(Feature feature) throws DeviceManagementException {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean addFeatures(List<Feature> features) throws DeviceManagementException {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Feature getFeature(String name) throws DeviceManagementException {
|
||||||
|
GenericFeatureManager genericFeatureManager = GenericFeatureManager.getInstance();
|
||||||
|
return genericFeatureManager.getFeature(DroneAnalyzerConstants.DEVICE_TYPE, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Feature> getFeatures() throws DeviceManagementException {
|
||||||
|
GenericFeatureManager genericFeatureManager = GenericFeatureManager.getInstance();
|
||||||
|
return genericFeatureManager.getFeatures(DroneAnalyzerConstants.DEVICE_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean removeFeature(String name) throws DeviceManagementException {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean addSupportedFeaturesToDB() throws DeviceManagementException {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,49 @@
|
|||||||
|
/*
|
||||||
|
* 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.homeautomation.droneanalyzer.plugin.impl.util;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.wso2.carbon.utils.CarbonUtils;
|
||||||
|
import org.wso2.carbon.utils.dbcreator.DatabaseCreator;
|
||||||
|
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides methods for initializing the database script.
|
||||||
|
*/
|
||||||
|
public class DeviceSchemaInitializer extends DatabaseCreator{
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(DeviceSchemaInitializer.class);
|
||||||
|
private static final String setupSQLScriptBaseLocation = CarbonUtils.getCarbonHome() + File.separator + "dbscripts"
|
||||||
|
+ File.separator + "cdm" + File.separator + "plugins" + File.separator;
|
||||||
|
|
||||||
|
public DeviceSchemaInitializer(DataSource dataSource) {
|
||||||
|
super(dataSource);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getDbScriptLocation(String databaseType) {
|
||||||
|
String scriptName = databaseType + ".sql";
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Loading database script from :" + scriptName);
|
||||||
|
}
|
||||||
|
return setupSQLScriptBaseLocation.replaceFirst("DBTYPE", databaseType) + scriptName;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* 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.homeautomation.droneanalyzer.plugin.impl.util;
|
||||||
|
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.impl.util.DroneAnalyzerUtils;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.wso2.carbon.core.ServerStartupObserver;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When device type related plugin is depleting it will initiate mqtt connection with mqtt broker
|
||||||
|
*/
|
||||||
|
public class DroneAnalyzerStartupListener implements ServerStartupObserver {
|
||||||
|
private static final Log log = LogFactory.getLog(org.homeautomation.droneanalyzer.plugin.impl.util.DroneAnalyzerStartupListener.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void completingServerStartup() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void completedServerStartup() {
|
||||||
|
try {
|
||||||
|
DroneAnalyzerUtils.setupMqttOutputAdapter();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error("Failed to initialize the drone output adapter", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,190 @@
|
|||||||
|
/*
|
||||||
|
* 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.homeautomation.droneanalyzer.plugin.impl.util;
|
||||||
|
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.constants.DroneAnalyzerConstants;
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.exception.DeviceMgtPluginException;
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.internal.DroneAnalyzerManagementDataHolder;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.wso2.carbon.base.ServerConfiguration;
|
||||||
|
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||||
|
import org.wso2.carbon.core.util.Utils;
|
||||||
|
import org.wso2.carbon.event.output.adapter.core.MessageType;
|
||||||
|
import org.wso2.carbon.event.output.adapter.core.OutputEventAdapterConfiguration;
|
||||||
|
import org.wso2.carbon.event.output.adapter.core.exception.OutputEventAdapterException;
|
||||||
|
|
||||||
|
import javax.naming.Context;
|
||||||
|
import javax.naming.InitialContext;
|
||||||
|
import javax.naming.NamingException;
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contains utility methods used by gg plugin.
|
||||||
|
*/
|
||||||
|
public class DroneAnalyzerUtils {
|
||||||
|
|
||||||
|
private static Log log = LogFactory.getLog(org.homeautomation.droneanalyzer.plugin.impl.util.DroneAnalyzerUtils.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 DeviceMgtPluginException {
|
||||||
|
try {
|
||||||
|
Context ctx = new InitialContext();
|
||||||
|
DataSource dataSource = (DataSource) ctx.lookup(DroneAnalyzerConstants.DATA_SOURCE_NAME);
|
||||||
|
DeviceSchemaInitializer initializer =
|
||||||
|
new DeviceSchemaInitializer(dataSource);
|
||||||
|
log.info("Initializing device management repository database schema");
|
||||||
|
initializer.createRegistryDatabase();
|
||||||
|
} catch (NamingException e) {
|
||||||
|
log.error("Error while looking up the data source: " + DroneAnalyzerConstants.DATA_SOURCE_NAME);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new DeviceMgtPluginException("Error occurred while initializing Iot Device " +
|
||||||
|
"Management database schema", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String replaceMqttProperty(String urlWithPlaceholders) {
|
||||||
|
String MQTT_BROKER_HOST = null;
|
||||||
|
String MQTT_PORT = null;
|
||||||
|
if(!DroneAnalyzerConstants.MQTT_BROKER_HOST.startsWith("$")){
|
||||||
|
MQTT_BROKER_HOST = "\\$".concat(DroneAnalyzerConstants.MQTT_BROKER_HOST);
|
||||||
|
}
|
||||||
|
if(!DroneAnalyzerConstants.MQTT_PORT.startsWith("$")){
|
||||||
|
MQTT_PORT = "\\$".concat(DroneAnalyzerConstants.MQTT_PORT);
|
||||||
|
}
|
||||||
|
urlWithPlaceholders = Utils.replaceSystemProperty(urlWithPlaceholders);
|
||||||
|
urlWithPlaceholders = urlWithPlaceholders.replaceAll(MQTT_PORT, "" +
|
||||||
|
(DroneAnalyzerConstants.DEFAULT_MQTT_PORT + getPortOffset()));
|
||||||
|
urlWithPlaceholders = urlWithPlaceholders.replaceAll(MQTT_BROKER_HOST,
|
||||||
|
System.getProperty(DroneAnalyzerConstants.DEFAULT_CARBON_LOCAL_IP_PROPERTY, "localhost"));
|
||||||
|
return urlWithPlaceholders;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int getPortOffset() {
|
||||||
|
ServerConfiguration carbonConfig = ServerConfiguration.getInstance();
|
||||||
|
String portOffset = System.getProperty("portOffset", carbonConfig.getFirstProperty(
|
||||||
|
DroneAnalyzerConstants.CARBON_CONFIG_PORT_OFFSET));
|
||||||
|
try {
|
||||||
|
if ((portOffset != null)) {
|
||||||
|
return Integer.parseInt(portOffset.trim());
|
||||||
|
} else {
|
||||||
|
return DroneAnalyzerConstants.CARBON_DEFAULT_PORT_OFFSET;
|
||||||
|
}
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
return DroneAnalyzerConstants.CARBON_DEFAULT_PORT_OFFSET;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setupMqttOutputAdapter() throws IOException {
|
||||||
|
OutputEventAdapterConfiguration outputEventAdapterConfiguration =
|
||||||
|
createMqttOutputEventAdapterConfiguration(DroneAnalyzerConstants.MQTT_ADAPTER_NAME,
|
||||||
|
DroneAnalyzerConstants.MQTT_ADAPTER_TYPE, MessageType.TEXT);
|
||||||
|
try {
|
||||||
|
PrivilegedCarbonContext.startTenantFlow();
|
||||||
|
PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(
|
||||||
|
DroneAnalyzerConstants.DEVICE_TYPE_PROVIDER_DOMAIN, true);
|
||||||
|
DroneAnalyzerManagementDataHolder.getInstance().getOutputEventAdapterService()
|
||||||
|
.create(outputEventAdapterConfiguration);
|
||||||
|
} catch (OutputEventAdapterException e) {
|
||||||
|
log.error("Unable to create Output Event Adapter : " + DroneAnalyzerConstants.MQTT_ADAPTER_NAME, e);
|
||||||
|
} finally {
|
||||||
|
PrivilegedCarbonContext.endTenantFlow();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create Output Event Adapter Configuration for given configuration.
|
||||||
|
*
|
||||||
|
* @param name Output Event Adapter name
|
||||||
|
* @param type Output Event Adapter type
|
||||||
|
* @param msgFormat Output Event Adapter message format
|
||||||
|
* @return OutputEventAdapterConfiguration instance for given configuration
|
||||||
|
*/
|
||||||
|
private static OutputEventAdapterConfiguration createMqttOutputEventAdapterConfiguration(String name, String type,
|
||||||
|
String msgFormat) throws IOException {
|
||||||
|
OutputEventAdapterConfiguration outputEventAdapterConfiguration = new OutputEventAdapterConfiguration();
|
||||||
|
outputEventAdapterConfiguration.setName(name);
|
||||||
|
outputEventAdapterConfiguration.setType(type);
|
||||||
|
outputEventAdapterConfiguration.setMessageFormat(msgFormat);
|
||||||
|
File configFile = new File(DroneAnalyzerConstants.MQTT_CONFIG_LOCATION);
|
||||||
|
if (configFile.exists()) {
|
||||||
|
Map<String, String> mqttAdapterProperties = new HashMap<>();
|
||||||
|
InputStream propertyStream = configFile.toURI().toURL().openStream();
|
||||||
|
Properties properties = new Properties();
|
||||||
|
properties.load(propertyStream);
|
||||||
|
mqttAdapterProperties.put(DroneAnalyzerConstants.USERNAME_PROPERTY_KEY, properties.getProperty(
|
||||||
|
DroneAnalyzerConstants.USERNAME_PROPERTY_KEY));
|
||||||
|
mqttAdapterProperties.put(DroneAnalyzerConstants.DCR_PROPERTY_KEY, Utils.replaceSystemProperty(
|
||||||
|
properties.getProperty(DroneAnalyzerConstants.DCR_PROPERTY_KEY)));
|
||||||
|
mqttAdapterProperties.put(DroneAnalyzerConstants.BROKER_URL_PROPERTY_KEY, replaceMqttProperty(
|
||||||
|
properties.getProperty(DroneAnalyzerConstants.BROKER_URL_PROPERTY_KEY)));
|
||||||
|
mqttAdapterProperties.put(DroneAnalyzerConstants.SCOPES_PROPERTY_KEY, properties.getProperty(
|
||||||
|
DroneAnalyzerConstants.SCOPES_PROPERTY_KEY));
|
||||||
|
mqttAdapterProperties.put(DroneAnalyzerConstants.CLEAR_SESSION_PROPERTY_KEY, properties.getProperty(
|
||||||
|
DroneAnalyzerConstants.CLEAR_SESSION_PROPERTY_KEY));
|
||||||
|
mqttAdapterProperties.put(DroneAnalyzerConstants.QOS_PROPERTY_KEY, properties.getProperty(
|
||||||
|
DroneAnalyzerConstants.QOS_PROPERTY_KEY));
|
||||||
|
mqttAdapterProperties.put(DroneAnalyzerConstants.CLIENT_ID_PROPERTY_KEY, "");
|
||||||
|
mqttAdapterProperties.put(DroneAnalyzerConstants.RESOURCE, "output-event");
|
||||||
|
outputEventAdapterConfiguration.setStaticProperties(mqttAdapterProperties);
|
||||||
|
}
|
||||||
|
return outputEventAdapterConfiguration;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
* 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.homeautomation.droneanalyzer.plugin.internal;
|
||||||
|
|
||||||
|
import org.wso2.carbon.event.output.adapter.core.OutputEventAdapterService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DataHolder class of gg plugins component.
|
||||||
|
*/
|
||||||
|
public class DroneAnalyzerManagementDataHolder {
|
||||||
|
|
||||||
|
private static DroneAnalyzerManagementDataHolder thisInstance = new DroneAnalyzerManagementDataHolder();
|
||||||
|
private OutputEventAdapterService outputEventAdapterService;
|
||||||
|
|
||||||
|
private DroneAnalyzerManagementDataHolder() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DroneAnalyzerManagementDataHolder getInstance() {
|
||||||
|
return thisInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OutputEventAdapterService getOutputEventAdapterService() {
|
||||||
|
return outputEventAdapterService;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOutputEventAdapterService(
|
||||||
|
OutputEventAdapterService outputEventAdapterService) {
|
||||||
|
this.outputEventAdapterService = outputEventAdapterService;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,113 @@
|
|||||||
|
/*
|
||||||
|
* 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.homeautomation.droneanalyzer.plugin.internal;
|
||||||
|
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.impl.util.DroneAnalyzerStartupListener;
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.exception.DeviceMgtPluginException;
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.impl.util.DroneAnalyzerUtils;
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.impl.DroneAnalyzerManagerService;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.osgi.framework.BundleContext;
|
||||||
|
import org.osgi.framework.ServiceRegistration;
|
||||||
|
import org.osgi.service.component.ComponentContext;
|
||||||
|
import org.wso2.carbon.core.ServerStartupObserver;
|
||||||
|
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
|
||||||
|
import org.wso2.carbon.event.output.adapter.core.OutputEventAdapterService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @scr.component name="org.homeautomation.droneanalyzer.plugin.internal.ServiceComponent"
|
||||||
|
* immediate="true"
|
||||||
|
* @scr.reference name="event.output.adapter.service"
|
||||||
|
* interface="org.wso2.carbon.event.output.adapter.core.OutputEventAdapterService"
|
||||||
|
* cardinality="1..1"
|
||||||
|
* policy="dynamic"
|
||||||
|
* bind="setOutputEventAdapterService"
|
||||||
|
* unbind="unsetOutputEventAdapterService"
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class ServiceComponent {
|
||||||
|
private static final Log log = LogFactory.getLog(ServiceComponent.class);
|
||||||
|
private ServiceRegistration serviceRegistration;
|
||||||
|
|
||||||
|
protected void activate(ComponentContext ctx) {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Activating b Management Service Component");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
DroneAnalyzerManagerService deviceTypeManagerService = new DroneAnalyzerManagerService();
|
||||||
|
BundleContext bundleContext = ctx.getBundleContext();
|
||||||
|
serviceRegistration =
|
||||||
|
bundleContext.registerService(DeviceManagementService.class.getName(),
|
||||||
|
deviceTypeManagerService, null);
|
||||||
|
bundleContext.registerService(ServerStartupObserver.class.getName(), new DroneAnalyzerStartupListener(),
|
||||||
|
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 {
|
||||||
|
DroneAnalyzerUtils.setupDeviceManagementSchema();
|
||||||
|
} catch (DeviceMgtPluginException e) {
|
||||||
|
log.error("Exception occurred while initializing device management database schema", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("b Management Service Component has been successfully activated");
|
||||||
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
log.error("Error occurred while activating Current Sensor Management Service Component", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void deactivate(ComponentContext ctx) {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("De-activating b Management Service Component");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
if (serviceRegistration != null) {
|
||||||
|
serviceRegistration.unregister();
|
||||||
|
}
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("Current Sensor Management Service Component has been successfully de-activated");
|
||||||
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
log.error("Error occurred while de-activating Iot Device Management bundle", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize the Output EventAdapter Service dependency
|
||||||
|
*
|
||||||
|
* @param outputEventAdapterService Output EventAdapter Service reference
|
||||||
|
*/
|
||||||
|
protected void setOutputEventAdapterService(OutputEventAdapterService outputEventAdapterService) {
|
||||||
|
DroneAnalyzerManagementDataHolder.getInstance().setOutputEventAdapterService(outputEventAdapterService);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* De-reference the Output EventAdapter Service dependency.
|
||||||
|
*/
|
||||||
|
protected void unsetOutputEventAdapterService(OutputEventAdapterService outputEventAdapterService) {
|
||||||
|
DroneAnalyzerManagementDataHolder.getInstance().setOutputEventAdapterService(null);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
/*
|
||||||
|
* 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.homeautomation.droneanalyzer.plugin.mqtt;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.constants.DroneAnalyzerConstants;
|
||||||
|
import org.homeautomation.droneanalyzer.plugin.impl.util.DroneAnalyzerUtils;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MQTT configurations
|
||||||
|
*/
|
||||||
|
public class MqttConfig {
|
||||||
|
|
||||||
|
private static String brokerEndpoint;
|
||||||
|
|
||||||
|
private static MqttConfig mqttConfig = new MqttConfig();
|
||||||
|
private static final Log log = LogFactory.getLog(MqttConfig.class);
|
||||||
|
|
||||||
|
private MqttConfig() {
|
||||||
|
File configFile = new File(DroneAnalyzerConstants.MQTT_CONFIG_LOCATION);
|
||||||
|
if (configFile.exists()) {
|
||||||
|
try {
|
||||||
|
InputStream propertyStream = configFile.toURI().toURL().openStream();
|
||||||
|
Properties properties = new Properties();
|
||||||
|
properties.load(propertyStream);
|
||||||
|
brokerEndpoint = DroneAnalyzerUtils.replaceMqttProperty(
|
||||||
|
properties.getProperty(DroneAnalyzerConstants.BROKER_URL_PROPERTY_KEY));
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error("Failed to read the mqtt.properties file" + e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MqttConfig getInstance() {
|
||||||
|
return mqttConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBrokerEndpoint() {
|
||||||
|
return brokerEndpoint;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--/*
|
||||||
|
* 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.
|
||||||
|
*/--><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<groupId>org.homeautomation</groupId>
|
||||||
|
<artifactId>droneanalyzer</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<relativePath>../pom.xml</relativePath>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<artifactId>droneanalyzer-component</artifactId>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
<build>
|
||||||
|
<pluginManagement>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.felix</groupId>
|
||||||
|
<artifactId>maven-scr-plugin</artifactId>
|
||||||
|
<version>${maven-scr-plugin.version}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>generate-scr-scrdescriptor</id>
|
||||||
|
<goals>
|
||||||
|
<goal>scr</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</pluginManagement>
|
||||||
|
</build>
|
||||||
|
<modules>
|
||||||
|
<module>plugin</module>
|
||||||
|
<module>api</module>
|
||||||
|
<module>ui</module>
|
||||||
|
<module>analytics</module>
|
||||||
|
</modules>
|
||||||
|
</project>
|
Loading…
Reference in new issue