12 changed files with 373 additions and 6 deletions
@ -0,0 +1,6 @@ |
|||||
|
|
||||
|
MQTT_BIND_ADDRESS=0.0.0.0 |
||||
|
MQTT_BIND_PORT=1883 |
||||
|
MQTT_TIMEOUT=10000 |
||||
|
|
||||
|
TB_KAFKA_SERVERS=localhost:9092 |
||||
@ -0,0 +1,31 @@ |
|||||
|
# |
||||
|
# Copyright © 2016-2018 The Thingsboard Authors |
||||
|
# |
||||
|
# 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. |
||||
|
# |
||||
|
|
||||
|
FROM openjdk:8-jre |
||||
|
|
||||
|
COPY logback.xml ${pkg.name}.conf start-tb-mqtt-transport.sh ${pkg.name}.deb /tmp/ |
||||
|
|
||||
|
RUN chmod a+x /tmp/*.sh \ |
||||
|
&& mv /tmp/start-tb-mqtt-transport.sh /usr/bin |
||||
|
|
||||
|
RUN dpkg -i /tmp/${pkg.name}.deb |
||||
|
|
||||
|
RUN update-rc.d ${pkg.name} disable |
||||
|
|
||||
|
RUN mv /tmp/logback.xml ${pkg.installFolder}/conf \ |
||||
|
&& mv /tmp/${pkg.name}.conf ${pkg.installFolder}/conf |
||||
|
|
||||
|
CMD ["start-tb-mqtt-transport.sh"] |
||||
@ -0,0 +1,50 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8" ?> |
||||
|
<!-- |
||||
|
|
||||
|
Copyright © 2016-2018 The Thingsboard Authors |
||||
|
|
||||
|
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. |
||||
|
|
||||
|
--> |
||||
|
<!DOCTYPE configuration> |
||||
|
<configuration scan="true" scanPeriod="10 seconds"> |
||||
|
|
||||
|
<appender name="fileLogAppender" |
||||
|
class="ch.qos.logback.core.rolling.RollingFileAppender"> |
||||
|
<file>/var/log/${pkg.name}/${pkg.name}.log</file> |
||||
|
<rollingPolicy |
||||
|
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> |
||||
|
<fileNamePattern>/var/log/${pkg.name}/${pkg.name}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> |
||||
|
<maxFileSize>100MB</maxFileSize> |
||||
|
<maxHistory>30</maxHistory> |
||||
|
<totalSizeCap>3GB</totalSizeCap> |
||||
|
</rollingPolicy> |
||||
|
<encoder> |
||||
|
<pattern>%d{ISO8601} [%thread] %-5level %logger{36} - %msg%n</pattern> |
||||
|
</encoder> |
||||
|
</appender> |
||||
|
|
||||
|
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> |
||||
|
<encoder> |
||||
|
<pattern>%d{ISO8601} [%thread] %-5level %logger{36} - %msg%n</pattern> |
||||
|
</encoder> |
||||
|
</appender> |
||||
|
|
||||
|
<logger name="org.thingsboard.server" level="INFO" /> |
||||
|
|
||||
|
<root level="INFO"> |
||||
|
<appender-ref ref="fileLogAppender"/> |
||||
|
<appender-ref ref="STDOUT"/> |
||||
|
</root> |
||||
|
|
||||
|
</configuration> |
||||
@ -0,0 +1,29 @@ |
|||||
|
#!/bin/bash |
||||
|
# |
||||
|
# Copyright © 2016-2018 The Thingsboard Authors |
||||
|
# |
||||
|
# 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. |
||||
|
# |
||||
|
|
||||
|
CONF_FOLDER="${pkg.installFolder}/conf" |
||||
|
jarfile=${pkg.installFolder}/bin/${pkg.name}.jar |
||||
|
configfile=${pkg.name}.conf |
||||
|
|
||||
|
source "${CONF_FOLDER}/${configfile}" |
||||
|
|
||||
|
echo "Starting '${project.name}' ..." |
||||
|
|
||||
|
exec java -cp ${jarfile} $JAVA_OPTS -Dloader.main=org.thingsboard.server.mqtt.ThingsboardMqttTransportApplication \ |
||||
|
-Dspring.jpa.hibernate.ddl-auto=none \ |
||||
|
-Dlogging.config=${CONF_FOLDER}/logback.xml \ |
||||
|
org.springframework.boot.loader.PropertiesLauncher |
||||
@ -0,0 +1,23 @@ |
|||||
|
# |
||||
|
# Copyright © 2016-2018 The Thingsboard Authors |
||||
|
# |
||||
|
# 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. |
||||
|
# |
||||
|
|
||||
|
export JAVA_OPTS="$JAVA_OPTS -Xloggc:@pkg.logFolder@/gc.log -XX:+IgnoreUnrecognizedVMOptions -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDetails -XX:+PrintGCDateStamps" |
||||
|
export JAVA_OPTS="$JAVA_OPTS -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10" |
||||
|
export JAVA_OPTS="$JAVA_OPTS -XX:GCLogFileSize=10M -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+PerfDisableSharedMem -XX:+UseCondCardMark" |
||||
|
export JAVA_OPTS="$JAVA_OPTS -XX:CMSWaitDuration=10000 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+CMSParallelInitialMarkEnabled" |
||||
|
export JAVA_OPTS="$JAVA_OPTS -XX:+CMSEdenChunksRecordAlways -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+ExitOnOutOfMemoryError" |
||||
|
export LOG_FILENAME=${pkg.name}.out |
||||
|
export LOADER_PATH=${pkg.installFolder}/conf |
||||
@ -0,0 +1,137 @@ |
|||||
|
<!-- |
||||
|
|
||||
|
Copyright © 2016-2018 The Thingsboard Authors |
||||
|
|
||||
|
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. |
||||
|
|
||||
|
--> |
||||
|
<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"> |
||||
|
<modelVersion>4.0.0</modelVersion> |
||||
|
<parent> |
||||
|
<groupId>org.thingsboard.msa</groupId> |
||||
|
<version>2.2.0-SNAPSHOT</version> |
||||
|
<artifactId>transport</artifactId> |
||||
|
</parent> |
||||
|
<groupId>org.thingsboard.msa.transport</groupId> |
||||
|
<artifactId>mqtt</artifactId> |
||||
|
<packaging>pom</packaging> |
||||
|
|
||||
|
<name>ThingsBoard MQTT Transport Microservice</name> |
||||
|
<url>https://thingsboard.io</url> |
||||
|
<description>ThingsBoard MQTT Transport Microservice</description> |
||||
|
|
||||
|
<properties> |
||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
||||
|
<main.dir>${basedir}/../../..</main.dir> |
||||
|
<pkg.name>tb-mqtt-transport</pkg.name> |
||||
|
<docker.name>tb-mqtt-transport</docker.name> |
||||
|
<pkg.user>thingsboard</pkg.user> |
||||
|
<pkg.unixLogFolder>/var/log/${pkg.name}</pkg.unixLogFolder> |
||||
|
<pkg.installFolder>/usr/share/${pkg.name}</pkg.installFolder> |
||||
|
</properties> |
||||
|
|
||||
|
<dependencies> |
||||
|
<dependency> |
||||
|
<groupId>org.thingsboard.transport</groupId> |
||||
|
<artifactId>mqtt</artifactId> |
||||
|
<version>${project.version}</version> |
||||
|
<classifier>deb</classifier> |
||||
|
<type>deb</type> |
||||
|
<scope>provided</scope> |
||||
|
</dependency> |
||||
|
</dependencies> |
||||
|
|
||||
|
<build> |
||||
|
<plugins> |
||||
|
<plugin> |
||||
|
<groupId>org.apache.maven.plugins</groupId> |
||||
|
<artifactId>maven-dependency-plugin</artifactId> |
||||
|
<executions> |
||||
|
<execution> |
||||
|
<id>copy-tb-mqtt-transport-deb</id> |
||||
|
<phase>package</phase> |
||||
|
<goals> |
||||
|
<goal>copy</goal> |
||||
|
</goals> |
||||
|
<configuration> |
||||
|
<artifactItems> |
||||
|
<artifactItem> |
||||
|
<groupId>org.thingsboard.transport</groupId> |
||||
|
<artifactId>mqtt</artifactId> |
||||
|
<classifier>deb</classifier> |
||||
|
<type>deb</type> |
||||
|
<destFileName>${pkg.name}.deb</destFileName> |
||||
|
<outputDirectory>${project.build.directory}</outputDirectory> |
||||
|
</artifactItem> |
||||
|
</artifactItems> |
||||
|
</configuration> |
||||
|
</execution> |
||||
|
</executions> |
||||
|
</plugin> |
||||
|
<plugin> |
||||
|
<groupId>org.apache.maven.plugins</groupId> |
||||
|
<artifactId>maven-resources-plugin</artifactId> |
||||
|
<executions> |
||||
|
<execution> |
||||
|
<id>copy-docker-config</id> |
||||
|
<phase>process-resources</phase> |
||||
|
<goals> |
||||
|
<goal>copy-resources</goal> |
||||
|
</goals> |
||||
|
<configuration> |
||||
|
<outputDirectory>${project.build.directory}</outputDirectory> |
||||
|
<resources> |
||||
|
<resource> |
||||
|
<directory>docker</directory> |
||||
|
<filtering>true</filtering> |
||||
|
</resource> |
||||
|
</resources> |
||||
|
</configuration> |
||||
|
</execution> |
||||
|
</executions> |
||||
|
</plugin> |
||||
|
<plugin> |
||||
|
<groupId>com.spotify</groupId> |
||||
|
<artifactId>dockerfile-maven-plugin</artifactId> |
||||
|
<executions> |
||||
|
<execution> |
||||
|
<id>build-docker-image</id> |
||||
|
<phase>pre-integration-test</phase> |
||||
|
<goals> |
||||
|
<goal>build</goal> |
||||
|
</goals> |
||||
|
</execution> |
||||
|
</executions> |
||||
|
<configuration> |
||||
|
<skip>${dockerfile.skip}</skip> |
||||
|
<repository>${docker.repo}/${docker.name}</repository> |
||||
|
<tag>${project.version}</tag> |
||||
|
<verbose>true</verbose> |
||||
|
<googleContainerRegistryEnabled>false</googleContainerRegistryEnabled> |
||||
|
<contextDirectory>${project.build.directory}</contextDirectory> |
||||
|
</configuration> |
||||
|
</plugin> |
||||
|
</plugins> |
||||
|
</build> |
||||
|
<repositories> |
||||
|
<repository> |
||||
|
<id>jenkins</id> |
||||
|
<name>Jenkins Repository</name> |
||||
|
<url>http://repo.jenkins-ci.org/releases</url> |
||||
|
<snapshots> |
||||
|
<enabled>false</enabled> |
||||
|
</snapshots> |
||||
|
</repository> |
||||
|
</repositories> |
||||
|
</project> |
||||
@ -0,0 +1,53 @@ |
|||||
|
<!-- |
||||
|
|
||||
|
Copyright © 2016-2018 The Thingsboard Authors |
||||
|
|
||||
|
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. |
||||
|
|
||||
|
--> |
||||
|
<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"> |
||||
|
<modelVersion>4.0.0</modelVersion> |
||||
|
<parent> |
||||
|
<groupId>org.thingsboard</groupId> |
||||
|
<version>2.2.0-SNAPSHOT</version> |
||||
|
<artifactId>msa</artifactId> |
||||
|
</parent> |
||||
|
<groupId>org.thingsboard.msa</groupId> |
||||
|
<artifactId>transport</artifactId> |
||||
|
<packaging>pom</packaging> |
||||
|
|
||||
|
<name>ThingsBoard Transport Microservices</name> |
||||
|
<url>https://thingsboard.io</url> |
||||
|
|
||||
|
<properties> |
||||
|
<main.dir>${basedir}/../..</main.dir> |
||||
|
</properties> |
||||
|
|
||||
|
<modules> |
||||
|
<module>mqtt</module> |
||||
|
</modules> |
||||
|
|
||||
|
<build> |
||||
|
<pluginManagement> |
||||
|
<plugins> |
||||
|
<plugin> |
||||
|
<groupId>com.spotify</groupId> |
||||
|
<artifactId>dockerfile-maven-plugin</artifactId> |
||||
|
<version>1.4.5</version> |
||||
|
</plugin> |
||||
|
</plugins> |
||||
|
</pluginManagement> |
||||
|
</build> |
||||
|
|
||||
|
</project> |
||||
Loading…
Reference in new issue