MQTT Transport packaging
This commit is contained in:
		
							parent
							
								
									67431a044a
								
							
						
					
					
						commit
						6678891c5b
					
				@ -57,8 +57,8 @@
 | 
			
		||||
            <artifactId>rule-engine-components</artifactId>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>org.thingsboard.common</groupId>
 | 
			
		||||
            <artifactId>transport</artifactId>
 | 
			
		||||
            <groupId>org.thingsboard.common.transport</groupId>
 | 
			
		||||
            <artifactId>transport-api</artifactId>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <!--<dependency>-->
 | 
			
		||||
            <!--<groupId>org.thingsboard.transport</groupId>-->
 | 
			
		||||
 | 
			
		||||
@ -45,8 +45,8 @@
 | 
			
		||||
            <scope>provided</scope>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>org.thingsboard.common</groupId>
 | 
			
		||||
            <artifactId>transport</artifactId>
 | 
			
		||||
            <groupId>org.thingsboard.common.transport</groupId>
 | 
			
		||||
            <artifactId>transport-api</artifactId>
 | 
			
		||||
            <scope>provided</scope>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
 | 
			
		||||
@ -1,64 +0,0 @@
 | 
			
		||||
<!--
 | 
			
		||||
 | 
			
		||||
    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>transport</artifactId>
 | 
			
		||||
    </parent>
 | 
			
		||||
    <groupId>org.thingsboard.transport</groupId>
 | 
			
		||||
    <artifactId>mqtt-transport</artifactId>
 | 
			
		||||
    <packaging>jar</packaging>
 | 
			
		||||
 | 
			
		||||
    <name>Thingsboard MQTT Transport Service</name>
 | 
			
		||||
    <url>https://thingsboard.io</url>
 | 
			
		||||
 | 
			
		||||
    <properties>
 | 
			
		||||
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 | 
			
		||||
        <main.dir>${basedir}/../..</main.dir>
 | 
			
		||||
    </properties>
 | 
			
		||||
 | 
			
		||||
    <dependencies>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>org.thingsboard.common.transport</groupId>
 | 
			
		||||
            <artifactId>mqtt</artifactId>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>org.thingsboard.common</groupId>
 | 
			
		||||
            <artifactId>queue</artifactId>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>org.springframework.boot</groupId>
 | 
			
		||||
            <artifactId>spring-boot-starter-test</artifactId>
 | 
			
		||||
            <scope>test</scope>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>junit</groupId>
 | 
			
		||||
            <artifactId>junit</artifactId>
 | 
			
		||||
            <scope>test</scope>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>org.mockito</groupId>
 | 
			
		||||
            <artifactId>mockito-all</artifactId>
 | 
			
		||||
            <scope>test</scope>
 | 
			
		||||
        </dependency>
 | 
			
		||||
    </dependencies>
 | 
			
		||||
 | 
			
		||||
</project>
 | 
			
		||||
							
								
								
									
										140
									
								
								transport/mqtt/build.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								transport/mqtt/build.gradle
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,140 @@
 | 
			
		||||
/**
 | 
			
		||||
 * 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.
 | 
			
		||||
 */
 | 
			
		||||
import org.apache.tools.ant.filters.ReplaceTokens
 | 
			
		||||
 | 
			
		||||
buildscript {
 | 
			
		||||
    ext {
 | 
			
		||||
        osPackageVersion = "3.8.0"
 | 
			
		||||
    }
 | 
			
		||||
    repositories {
 | 
			
		||||
        jcenter()
 | 
			
		||||
    }
 | 
			
		||||
    dependencies {
 | 
			
		||||
        classpath("com.netflix.nebula:gradle-ospackage-plugin:${osPackageVersion}")
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
apply plugin: "nebula.ospackage"
 | 
			
		||||
 | 
			
		||||
buildDir = projectBuildDir
 | 
			
		||||
version = projectVersion
 | 
			
		||||
distsDirName = "./"
 | 
			
		||||
 | 
			
		||||
// OS Package plugin configuration
 | 
			
		||||
ospackage {
 | 
			
		||||
    packageName = pkgName
 | 
			
		||||
    version = "${project.version}"
 | 
			
		||||
    release = 1
 | 
			
		||||
    os = LINUX
 | 
			
		||||
    type = BINARY
 | 
			
		||||
 | 
			
		||||
    into pkgInstallFolder
 | 
			
		||||
 | 
			
		||||
    user pkgName
 | 
			
		||||
    permissionGroup pkgName
 | 
			
		||||
 | 
			
		||||
    // Copy the actual .jar file
 | 
			
		||||
    from(mainJar) {
 | 
			
		||||
        // Strip the version from the jar filename
 | 
			
		||||
        rename { String fileName ->
 | 
			
		||||
            "${pkgName}.jar"
 | 
			
		||||
        }
 | 
			
		||||
        fileMode 0500
 | 
			
		||||
        into "bin"
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Copy the config files
 | 
			
		||||
    from("target/conf") {
 | 
			
		||||
        exclude "${pkgName}.conf"
 | 
			
		||||
        fileType CONFIG | NOREPLACE
 | 
			
		||||
        fileMode 0754
 | 
			
		||||
        into "conf"
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Configure our RPM build task
 | 
			
		||||
buildRpm {
 | 
			
		||||
 | 
			
		||||
    arch = NOARCH
 | 
			
		||||
 | 
			
		||||
    version = projectVersion.replace('-', '')
 | 
			
		||||
    archiveName = "${pkgName}.rpm"
 | 
			
		||||
 | 
			
		||||
    requires("java-1.8.0")
 | 
			
		||||
 | 
			
		||||
    from("target/conf") {
 | 
			
		||||
        include "${pkgName}.conf"
 | 
			
		||||
        filter(ReplaceTokens, tokens: ['pkg.platform': 'rpm'])
 | 
			
		||||
        fileType CONFIG | NOREPLACE
 | 
			
		||||
        fileMode 0754
 | 
			
		||||
        into "${pkgInstallFolder}/conf"
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    preInstall file("${buildDir}/control/rpm/preinst")
 | 
			
		||||
    postInstall file("${buildDir}/control/rpm/postinst")
 | 
			
		||||
    preUninstall file("${buildDir}/control/rpm/prerm")
 | 
			
		||||
    postUninstall file("${buildDir}/control/rpm/postrm")
 | 
			
		||||
 | 
			
		||||
    user pkgName
 | 
			
		||||
    permissionGroup pkgName
 | 
			
		||||
 | 
			
		||||
    // Copy the system unit files
 | 
			
		||||
    from("${buildDir}/control/${pkgName}.service") {
 | 
			
		||||
        addParentDirs = false
 | 
			
		||||
        fileMode 0644
 | 
			
		||||
        into "/usr/lib/systemd/system"
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    directory(pkgLogFolder, 0755)
 | 
			
		||||
    link("${pkgInstallFolder}/bin/${pkgName}.yml", "${pkgInstallFolder}/conf/${pkgName}.yml")
 | 
			
		||||
    link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Same as the buildRpm task
 | 
			
		||||
buildDeb {
 | 
			
		||||
 | 
			
		||||
    arch = "all"
 | 
			
		||||
 | 
			
		||||
    archiveName = "${pkgName}.deb"
 | 
			
		||||
 | 
			
		||||
    requires("openjdk-8-jre").or("java8-runtime").or("oracle-java8-installer").or("openjdk-8-jre-headless")
 | 
			
		||||
 | 
			
		||||
    from("target/conf") {
 | 
			
		||||
        include "${pkgName}.conf"
 | 
			
		||||
        filter(ReplaceTokens, tokens: ['pkg.platform': 'deb'])
 | 
			
		||||
        fileType CONFIG | NOREPLACE
 | 
			
		||||
        fileMode 0754
 | 
			
		||||
        into "${pkgInstallFolder}/conf"
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    configurationFile("${pkgInstallFolder}/conf/${pkgName}.conf")
 | 
			
		||||
    configurationFile("${pkgInstallFolder}/conf/${pkgName}.yml")
 | 
			
		||||
    configurationFile("${pkgInstallFolder}/conf/logback.xml")
 | 
			
		||||
 | 
			
		||||
    preInstall file("${buildDir}/control/deb/preinst")
 | 
			
		||||
    postInstall file("${buildDir}/control/deb/postinst")
 | 
			
		||||
    preUninstall file("${buildDir}/control/deb/prerm")
 | 
			
		||||
    postUninstall file("${buildDir}/control/deb/postrm")
 | 
			
		||||
 | 
			
		||||
    user pkgName
 | 
			
		||||
    permissionGroup pkgName
 | 
			
		||||
 | 
			
		||||
    directory(pkgLogFolder, 0755)
 | 
			
		||||
    link("/etc/init.d/${pkgName}", "${pkgInstallFolder}/bin/${pkgName}.jar")
 | 
			
		||||
    link("${pkgInstallFolder}/bin/${pkgName}.yml", "${pkgInstallFolder}/conf/${pkgName}.yml")
 | 
			
		||||
    link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf")
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										337
									
								
								transport/mqtt/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										337
									
								
								transport/mqtt/pom.xml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,337 @@
 | 
			
		||||
<!--
 | 
			
		||||
 | 
			
		||||
    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>transport</artifactId>
 | 
			
		||||
    </parent>
 | 
			
		||||
    <groupId>org.thingsboard.transport</groupId>
 | 
			
		||||
    <artifactId>mqtt</artifactId>
 | 
			
		||||
    <packaging>jar</packaging>
 | 
			
		||||
 | 
			
		||||
    <name>Thingsboard MQTT Transport Service</name>
 | 
			
		||||
    <url>https://thingsboard.io</url>
 | 
			
		||||
 | 
			
		||||
    <properties>
 | 
			
		||||
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 | 
			
		||||
        <main.dir>${basedir}/../..</main.dir>
 | 
			
		||||
        <pkg.name>tb-mqtt-transport</pkg.name>
 | 
			
		||||
        <pkg.unixLogFolder>/var/log/${pkg.name}</pkg.unixLogFolder>
 | 
			
		||||
        <pkg.installFolder>/usr/share/${pkg.name}</pkg.installFolder>
 | 
			
		||||
        <pkg.win.dist>${project.build.directory}/windows</pkg.win.dist>
 | 
			
		||||
    </properties>
 | 
			
		||||
 | 
			
		||||
    <dependencies>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>org.thingsboard.common.transport</groupId>
 | 
			
		||||
            <artifactId>mqtt</artifactId>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>org.thingsboard.common</groupId>
 | 
			
		||||
            <artifactId>queue</artifactId>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>com.sun.winsw</groupId>
 | 
			
		||||
            <artifactId>winsw</artifactId>
 | 
			
		||||
            <classifier>bin</classifier>
 | 
			
		||||
            <type>exe</type>
 | 
			
		||||
            <scope>provided</scope>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>org.springframework.boot</groupId>
 | 
			
		||||
            <artifactId>spring-boot-starter-test</artifactId>
 | 
			
		||||
            <scope>test</scope>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>junit</groupId>
 | 
			
		||||
            <artifactId>junit</artifactId>
 | 
			
		||||
            <scope>test</scope>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>org.mockito</groupId>
 | 
			
		||||
            <artifactId>mockito-all</artifactId>
 | 
			
		||||
            <scope>test</scope>
 | 
			
		||||
        </dependency>
 | 
			
		||||
    </dependencies>
 | 
			
		||||
 | 
			
		||||
    <build>
 | 
			
		||||
        <finalName>${pkg.name}-${project.version}</finalName>
 | 
			
		||||
        <resources>
 | 
			
		||||
            <resource>
 | 
			
		||||
                <directory>${project.basedir}/src/main/resources</directory>
 | 
			
		||||
            </resource>
 | 
			
		||||
        </resources>
 | 
			
		||||
        <plugins>
 | 
			
		||||
            <plugin>
 | 
			
		||||
                <groupId>org.apache.maven.plugins</groupId>
 | 
			
		||||
                <artifactId>maven-resources-plugin</artifactId>
 | 
			
		||||
                <executions>
 | 
			
		||||
                    <execution>
 | 
			
		||||
                        <id>copy-conf</id>
 | 
			
		||||
                        <phase>process-resources</phase>
 | 
			
		||||
                        <goals>
 | 
			
		||||
                            <goal>copy-resources</goal>
 | 
			
		||||
                        </goals>
 | 
			
		||||
                        <configuration>
 | 
			
		||||
                            <outputDirectory>${project.build.directory}/conf</outputDirectory>
 | 
			
		||||
                            <resources>
 | 
			
		||||
                                <resource>
 | 
			
		||||
                                    <directory>src/main/resources</directory>
 | 
			
		||||
                                    <excludes>
 | 
			
		||||
                                        <exclude>logback.xml</exclude>
 | 
			
		||||
                                    </excludes>
 | 
			
		||||
                                    <filtering>false</filtering>
 | 
			
		||||
                                </resource>
 | 
			
		||||
                            </resources>
 | 
			
		||||
                        </configuration>
 | 
			
		||||
                    </execution>
 | 
			
		||||
                    <execution>
 | 
			
		||||
                        <id>copy-service-conf</id>
 | 
			
		||||
                        <phase>process-resources</phase>
 | 
			
		||||
                        <goals>
 | 
			
		||||
                            <goal>copy-resources</goal>
 | 
			
		||||
                        </goals>
 | 
			
		||||
                        <configuration>
 | 
			
		||||
                            <outputDirectory>${project.build.directory}/conf</outputDirectory>
 | 
			
		||||
                            <resources>
 | 
			
		||||
                                <resource>
 | 
			
		||||
                                    <directory>src/main/conf</directory>
 | 
			
		||||
                                    <filtering>true</filtering>
 | 
			
		||||
                                </resource>
 | 
			
		||||
                            </resources>
 | 
			
		||||
                            <filters>
 | 
			
		||||
                                <filter>src/main/filters/unix.properties</filter>
 | 
			
		||||
                            </filters>
 | 
			
		||||
                        </configuration>
 | 
			
		||||
                    </execution>
 | 
			
		||||
                    <execution>
 | 
			
		||||
                        <id>copy-win-conf</id>
 | 
			
		||||
                        <phase>process-resources</phase>
 | 
			
		||||
                        <goals>
 | 
			
		||||
                            <goal>copy-resources</goal>
 | 
			
		||||
                        </goals>
 | 
			
		||||
                        <configuration>
 | 
			
		||||
                            <outputDirectory>${pkg.win.dist}/conf</outputDirectory>
 | 
			
		||||
                            <resources>
 | 
			
		||||
                                <resource>
 | 
			
		||||
                                    <directory>src/main/resources</directory>
 | 
			
		||||
                                    <excludes>
 | 
			
		||||
                                        <exclude>logback.xml</exclude>
 | 
			
		||||
                                    </excludes>
 | 
			
		||||
                                    <filtering>false</filtering>
 | 
			
		||||
                                </resource>
 | 
			
		||||
                                <resource>
 | 
			
		||||
                                    <directory>src/main/conf</directory>
 | 
			
		||||
                                    <excludes>
 | 
			
		||||
                                        <exclude>tb-mqtt-transport.conf</exclude>
 | 
			
		||||
                                    </excludes>
 | 
			
		||||
                                    <filtering>true</filtering>
 | 
			
		||||
                                </resource>
 | 
			
		||||
                            </resources>
 | 
			
		||||
                            <filters>
 | 
			
		||||
                                <filter>src/main/filters/windows.properties</filter>
 | 
			
		||||
                            </filters>
 | 
			
		||||
                        </configuration>
 | 
			
		||||
                    </execution>
 | 
			
		||||
                    <execution>
 | 
			
		||||
                        <id>copy-control</id>
 | 
			
		||||
                        <phase>process-resources</phase>
 | 
			
		||||
                        <goals>
 | 
			
		||||
                            <goal>copy-resources</goal>
 | 
			
		||||
                        </goals>
 | 
			
		||||
                        <configuration>
 | 
			
		||||
                            <outputDirectory>${project.build.directory}/control</outputDirectory>
 | 
			
		||||
                            <resources>
 | 
			
		||||
                                <resource>
 | 
			
		||||
                                    <directory>src/main/scripts/control</directory>
 | 
			
		||||
                                    <filtering>true</filtering>
 | 
			
		||||
                                </resource>
 | 
			
		||||
                            </resources>
 | 
			
		||||
                            <filters>
 | 
			
		||||
                                <filter>src/main/filters/unix.properties</filter>
 | 
			
		||||
                            </filters>
 | 
			
		||||
                        </configuration>
 | 
			
		||||
                    </execution>
 | 
			
		||||
                    <execution>
 | 
			
		||||
                        <id>copy-windows-control</id>
 | 
			
		||||
                        <phase>process-resources</phase>
 | 
			
		||||
                        <goals>
 | 
			
		||||
                            <goal>copy-resources</goal>
 | 
			
		||||
                        </goals>
 | 
			
		||||
                        <configuration>
 | 
			
		||||
                            <outputDirectory>${pkg.win.dist}</outputDirectory>
 | 
			
		||||
                            <resources>
 | 
			
		||||
                                <resource>
 | 
			
		||||
                                    <directory>src/main/scripts/windows</directory>
 | 
			
		||||
                                    <filtering>true</filtering>
 | 
			
		||||
                                </resource>
 | 
			
		||||
                            </resources>
 | 
			
		||||
                            <filters>
 | 
			
		||||
                                <filter>src/main/filters/windows.properties</filter>
 | 
			
		||||
                            </filters>
 | 
			
		||||
                        </configuration>
 | 
			
		||||
                    </execution>
 | 
			
		||||
                </executions>
 | 
			
		||||
            </plugin>
 | 
			
		||||
            <plugin>
 | 
			
		||||
                <groupId>org.apache.maven.plugins</groupId>
 | 
			
		||||
                <artifactId>maven-dependency-plugin</artifactId>
 | 
			
		||||
                <executions>
 | 
			
		||||
                    <execution>
 | 
			
		||||
                        <id>copy-winsw-service</id>
 | 
			
		||||
                        <phase>package</phase>
 | 
			
		||||
                        <goals>
 | 
			
		||||
                            <goal>copy</goal>
 | 
			
		||||
                        </goals>
 | 
			
		||||
                        <configuration>
 | 
			
		||||
                            <artifactItems>
 | 
			
		||||
                                <artifactItem>
 | 
			
		||||
                                    <groupId>com.sun.winsw</groupId>
 | 
			
		||||
                                    <artifactId>winsw</artifactId>
 | 
			
		||||
                                    <classifier>bin</classifier>
 | 
			
		||||
                                    <type>exe</type>
 | 
			
		||||
                                    <destFileName>service.exe</destFileName>
 | 
			
		||||
                                </artifactItem>
 | 
			
		||||
                            </artifactItems>
 | 
			
		||||
                            <outputDirectory>${pkg.win.dist}</outputDirectory>
 | 
			
		||||
                        </configuration>
 | 
			
		||||
                    </execution>
 | 
			
		||||
                </executions>
 | 
			
		||||
            </plugin>
 | 
			
		||||
            <plugin>
 | 
			
		||||
                <groupId>org.apache.maven.plugins</groupId>
 | 
			
		||||
                <artifactId>maven-jar-plugin</artifactId>
 | 
			
		||||
                <configuration>
 | 
			
		||||
                    <excludes>
 | 
			
		||||
                        <exclude>**/logback.xml</exclude>
 | 
			
		||||
                    </excludes>
 | 
			
		||||
                    <archive>
 | 
			
		||||
                        <manifestEntries>
 | 
			
		||||
                            <Implementation-Title>ThingsBoard MQTT Transport Service</Implementation-Title>
 | 
			
		||||
                            <Implementation-Version>${project.version}</Implementation-Version>
 | 
			
		||||
                        </manifestEntries>
 | 
			
		||||
                    </archive>
 | 
			
		||||
                </configuration>
 | 
			
		||||
            </plugin>
 | 
			
		||||
            <plugin>
 | 
			
		||||
                <groupId>org.springframework.boot</groupId>
 | 
			
		||||
                <artifactId>spring-boot-maven-plugin</artifactId>
 | 
			
		||||
                <configuration>
 | 
			
		||||
                    <mainClass>org.thingsboard.server.mqtt.ThingsboardMqttTransportApplication</mainClass>
 | 
			
		||||
                    <classifier>boot</classifier>
 | 
			
		||||
                    <layout>ZIP</layout>
 | 
			
		||||
                    <executable>true</executable>
 | 
			
		||||
                    <excludeDevtools>true</excludeDevtools>
 | 
			
		||||
                    <embeddedLaunchScriptProperties>
 | 
			
		||||
                        <confFolder>${pkg.installFolder}/conf</confFolder>
 | 
			
		||||
                        <logFolder>${pkg.unixLogFolder}</logFolder>
 | 
			
		||||
                        <logFilename>${pkg.name}.out</logFilename>
 | 
			
		||||
                        <initInfoProvides>${pkg.name}</initInfoProvides>
 | 
			
		||||
                    </embeddedLaunchScriptProperties>
 | 
			
		||||
                </configuration>
 | 
			
		||||
                <executions>
 | 
			
		||||
                    <execution>
 | 
			
		||||
                        <goals>
 | 
			
		||||
                            <goal>repackage</goal>
 | 
			
		||||
                        </goals>
 | 
			
		||||
                    </execution>
 | 
			
		||||
                </executions>
 | 
			
		||||
            </plugin>
 | 
			
		||||
            <plugin>
 | 
			
		||||
                <groupId>org.fortasoft</groupId>
 | 
			
		||||
                <artifactId>gradle-maven-plugin</artifactId>
 | 
			
		||||
                <configuration>
 | 
			
		||||
                    <tasks>
 | 
			
		||||
                        <task>build</task>
 | 
			
		||||
                        <task>buildDeb</task>
 | 
			
		||||
                        <task>buildRpm</task>
 | 
			
		||||
                    </tasks>
 | 
			
		||||
                    <args>
 | 
			
		||||
                        <arg>-PprojectBuildDir=${project.build.directory}</arg>
 | 
			
		||||
                        <arg>-PprojectVersion=${project.version}</arg>
 | 
			
		||||
                        <arg>-PmainJar=${project.build.directory}/${project.build.finalName}-boot.${project.packaging}</arg>
 | 
			
		||||
                        <arg>-PpkgName=${pkg.name}</arg>
 | 
			
		||||
                        <arg>-PpkgInstallFolder=${pkg.installFolder}</arg>
 | 
			
		||||
                        <arg>-PpkgLogFolder=${pkg.unixLogFolder}</arg>
 | 
			
		||||
                    </args>
 | 
			
		||||
                </configuration>
 | 
			
		||||
                <executions>
 | 
			
		||||
                    <execution>
 | 
			
		||||
                        <phase>package</phase>
 | 
			
		||||
                        <goals>
 | 
			
		||||
                            <goal>invoke</goal>
 | 
			
		||||
                        </goals>
 | 
			
		||||
                    </execution>
 | 
			
		||||
                </executions>
 | 
			
		||||
            </plugin>
 | 
			
		||||
            <plugin>
 | 
			
		||||
                <groupId>org.apache.maven.plugins</groupId>
 | 
			
		||||
                <artifactId>maven-assembly-plugin</artifactId>
 | 
			
		||||
                <configuration>
 | 
			
		||||
                    <finalName>${pkg.name}</finalName>
 | 
			
		||||
                    <descriptors>
 | 
			
		||||
                        <descriptor>src/main/assembly/windows.xml</descriptor>
 | 
			
		||||
                    </descriptors>
 | 
			
		||||
                </configuration>
 | 
			
		||||
                <executions>
 | 
			
		||||
                    <execution>
 | 
			
		||||
                        <id>assembly</id>
 | 
			
		||||
                        <phase>package</phase>
 | 
			
		||||
                        <goals>
 | 
			
		||||
                            <goal>single</goal>
 | 
			
		||||
                        </goals>
 | 
			
		||||
                    </execution>
 | 
			
		||||
                </executions>
 | 
			
		||||
            </plugin>
 | 
			
		||||
            <plugin>
 | 
			
		||||
                <groupId>org.apache.maven.plugins</groupId>
 | 
			
		||||
                <artifactId>maven-install-plugin</artifactId>
 | 
			
		||||
                <configuration>
 | 
			
		||||
                    <file>${project.build.directory}/${pkg.name}.deb</file>
 | 
			
		||||
                    <artifactId>${project.artifactId}</artifactId>
 | 
			
		||||
                    <groupId>${project.groupId}</groupId>
 | 
			
		||||
                    <version>${project.version}</version>
 | 
			
		||||
                    <classifier>deb</classifier>
 | 
			
		||||
                    <packaging>deb</packaging>
 | 
			
		||||
                </configuration>
 | 
			
		||||
                <executions>
 | 
			
		||||
                    <execution>
 | 
			
		||||
                        <id>install-deb</id>
 | 
			
		||||
                        <phase>package</phase>
 | 
			
		||||
                        <goals>
 | 
			
		||||
                            <goal>install-file</goal>
 | 
			
		||||
                        </goals>
 | 
			
		||||
                    </execution>
 | 
			
		||||
                </executions>
 | 
			
		||||
            </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>
 | 
			
		||||
							
								
								
									
										71
									
								
								transport/mqtt/src/main/assembly/windows.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								transport/mqtt/src/main/assembly/windows.xml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,71 @@
 | 
			
		||||
<!--
 | 
			
		||||
 | 
			
		||||
    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.
 | 
			
		||||
 | 
			
		||||
-->
 | 
			
		||||
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
 | 
			
		||||
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
			
		||||
          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
 | 
			
		||||
    <id>windows</id>
 | 
			
		||||
 | 
			
		||||
    <formats>
 | 
			
		||||
        <format>zip</format>
 | 
			
		||||
    </formats>
 | 
			
		||||
 | 
			
		||||
    <!-- Workaround to create logs directory -->
 | 
			
		||||
    <fileSets>
 | 
			
		||||
        <fileSet>
 | 
			
		||||
            <directory>${pkg.win.dist}</directory>
 | 
			
		||||
            <outputDirectory>logs</outputDirectory>
 | 
			
		||||
            <excludes>
 | 
			
		||||
                <exclude>*/**</exclude>
 | 
			
		||||
            </excludes>
 | 
			
		||||
        </fileSet>
 | 
			
		||||
        <fileSet>
 | 
			
		||||
            <directory>${pkg.win.dist}/conf</directory>
 | 
			
		||||
            <outputDirectory>conf</outputDirectory>
 | 
			
		||||
            <lineEnding>windows</lineEnding>
 | 
			
		||||
        </fileSet>
 | 
			
		||||
    </fileSets>
 | 
			
		||||
 | 
			
		||||
    <files>
 | 
			
		||||
        <file>
 | 
			
		||||
            <source>${project.build.directory}/${project.build.finalName}-boot.${project.packaging}</source>
 | 
			
		||||
            <outputDirectory>lib</outputDirectory>
 | 
			
		||||
            <destName>${pkg.name}.jar</destName>
 | 
			
		||||
        </file>
 | 
			
		||||
        <file>
 | 
			
		||||
            <source>${pkg.win.dist}/service.exe</source>
 | 
			
		||||
            <outputDirectory/>
 | 
			
		||||
            <destName>${pkg.name}.exe</destName>
 | 
			
		||||
        </file>
 | 
			
		||||
        <file>
 | 
			
		||||
            <source>${pkg.win.dist}/service.xml</source>
 | 
			
		||||
            <outputDirectory/>
 | 
			
		||||
            <destName>${pkg.name}.xml</destName>
 | 
			
		||||
            <lineEnding>windows</lineEnding>
 | 
			
		||||
        </file>
 | 
			
		||||
        <file>
 | 
			
		||||
            <source>${pkg.win.dist}/install.bat</source>
 | 
			
		||||
            <outputDirectory/>
 | 
			
		||||
            <lineEnding>windows</lineEnding>
 | 
			
		||||
        </file>
 | 
			
		||||
        <file>
 | 
			
		||||
            <source>${pkg.win.dist}/uninstall.bat</source>
 | 
			
		||||
            <outputDirectory/>
 | 
			
		||||
            <lineEnding>windows</lineEnding>
 | 
			
		||||
        </file>
 | 
			
		||||
    </files>
 | 
			
		||||
</assembly>
 | 
			
		||||
							
								
								
									
										43
									
								
								transport/mqtt/src/main/conf/logback.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								transport/mqtt/src/main/conf/logback.xml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,43 @@
 | 
			
		||||
<?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>
 | 
			
		||||
 | 
			
		||||
    <appender name="fileLogAppender"
 | 
			
		||||
              class="ch.qos.logback.core.rolling.RollingFileAppender">
 | 
			
		||||
        <file>${pkg.logFolder}/${pkg.name}.log</file>
 | 
			
		||||
        <rollingPolicy
 | 
			
		||||
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
 | 
			
		||||
            <fileNamePattern>${pkg.logFolder}/${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>
 | 
			
		||||
 | 
			
		||||
    <logger name="org.thingsboard.server" level="INFO" />
 | 
			
		||||
 | 
			
		||||
    <root level="INFO">
 | 
			
		||||
        <appender-ref ref="fileLogAppender"/>
 | 
			
		||||
    </root>
 | 
			
		||||
 | 
			
		||||
</configuration>
 | 
			
		||||
							
								
								
									
										23
									
								
								transport/mqtt/src/main/conf/tb-mqtt-transport.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								transport/mqtt/src/main/conf/tb-mqtt-transport.conf
									
									
									
									
									
										Normal file
									
								
							@ -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"
 | 
			
		||||
export LOG_FILENAME=${pkg.name}.out
 | 
			
		||||
export LOADER_PATH=${pkg.installFolder}/conf
 | 
			
		||||
							
								
								
									
										1
									
								
								transport/mqtt/src/main/filters/unix.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								transport/mqtt/src/main/filters/unix.properties
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
pkg.logFolder=${pkg.unixLogFolder}
 | 
			
		||||
							
								
								
									
										2
									
								
								transport/mqtt/src/main/filters/windows.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								transport/mqtt/src/main/filters/windows.properties
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
pkg.logFolder=${BASE}\\logs
 | 
			
		||||
pkg.winWrapperLogFolder=%BASE%\\logs
 | 
			
		||||
							
								
								
									
										6
									
								
								transport/mqtt/src/main/scripts/control/deb/postinst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								transport/mqtt/src/main/scripts/control/deb/postinst
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
chown -R ${pkg.name}: ${pkg.logFolder}
 | 
			
		||||
chown -R ${pkg.name}: ${pkg.installFolder}
 | 
			
		||||
update-rc.d ${pkg.name} defaults
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								transport/mqtt/src/main/scripts/control/deb/postrm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								transport/mqtt/src/main/scripts/control/deb/postrm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
update-rc.d -f ${pkg.name} remove
 | 
			
		||||
							
								
								
									
										18
									
								
								transport/mqtt/src/main/scripts/control/deb/preinst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								transport/mqtt/src/main/scripts/control/deb/preinst
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,18 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
if ! getent group ${pkg.name} >/dev/null; then
 | 
			
		||||
    addgroup --system ${pkg.name}
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if ! getent passwd ${pkg.name} >/dev/null; then
 | 
			
		||||
    adduser --quiet \
 | 
			
		||||
            --system \
 | 
			
		||||
            --ingroup ${pkg.name} \
 | 
			
		||||
            --quiet \
 | 
			
		||||
            --disabled-login \
 | 
			
		||||
            --disabled-password \
 | 
			
		||||
            --home ${pkg.installFolder} \
 | 
			
		||||
            --no-create-home \
 | 
			
		||||
            -gecos "Thingsboard application" \
 | 
			
		||||
            ${pkg.name}
 | 
			
		||||
fi
 | 
			
		||||
							
								
								
									
										5
									
								
								transport/mqtt/src/main/scripts/control/deb/prerm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								transport/mqtt/src/main/scripts/control/deb/prerm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
if [ -e /var/run/${pkg.name}/${pkg.name}.pid ]; then
 | 
			
		||||
    service ${pkg.name} stop
 | 
			
		||||
fi
 | 
			
		||||
							
								
								
									
										9
									
								
								transport/mqtt/src/main/scripts/control/rpm/postinst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								transport/mqtt/src/main/scripts/control/rpm/postinst
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
chown -R ${pkg.name}: ${pkg.logFolder}
 | 
			
		||||
chown -R ${pkg.name}: ${pkg.installFolder}
 | 
			
		||||
 | 
			
		||||
if [ $1 -eq 1 ] ; then
 | 
			
		||||
        # Initial installation
 | 
			
		||||
        systemctl --no-reload enable ${pkg.name}.service >/dev/null 2>&1 || :
 | 
			
		||||
fi
 | 
			
		||||
							
								
								
									
										6
									
								
								transport/mqtt/src/main/scripts/control/rpm/postrm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								transport/mqtt/src/main/scripts/control/rpm/postrm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
if [ $1 -ge 1 ] ; then
 | 
			
		||||
        # Package upgrade, not uninstall
 | 
			
		||||
        systemctl try-restart ${pkg.name}.service >/dev/null 2>&1 || :
 | 
			
		||||
fi
 | 
			
		||||
							
								
								
									
										6
									
								
								transport/mqtt/src/main/scripts/control/rpm/preinst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								transport/mqtt/src/main/scripts/control/rpm/preinst
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
getent group ${pkg.name} >/dev/null || groupadd -r ${pkg.name}
 | 
			
		||||
getent passwd ${pkg.name} >/dev/null || \
 | 
			
		||||
useradd -d ${pkg.installFolder} -g ${pkg.name} -M -r ${pkg.name} -s /sbin/nologin \
 | 
			
		||||
-c "Thingsboard application"
 | 
			
		||||
							
								
								
									
										6
									
								
								transport/mqtt/src/main/scripts/control/rpm/prerm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								transport/mqtt/src/main/scripts/control/rpm/prerm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
if [ $1 -eq 0 ] ; then
 | 
			
		||||
        # Package removal, not upgrade
 | 
			
		||||
        systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || :
 | 
			
		||||
fi
 | 
			
		||||
@ -0,0 +1,11 @@
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=${pkg.name}
 | 
			
		||||
After=syslog.target
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
User=${pkg.name}
 | 
			
		||||
ExecStart=${pkg.installFolder}/bin/${pkg.name}.jar
 | 
			
		||||
SuccessExitStatus=143
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
							
								
								
									
										87
									
								
								transport/mqtt/src/main/scripts/windows/install.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								transport/mqtt/src/main/scripts/windows/install.bat
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,87 @@
 | 
			
		||||
@ECHO OFF
 | 
			
		||||
 | 
			
		||||
setlocal ENABLEEXTENSIONS
 | 
			
		||||
 | 
			
		||||
@ECHO Detecting Java version installed.
 | 
			
		||||
:CHECK_JAVA_64
 | 
			
		||||
@ECHO Detecting if it is 64 bit machine
 | 
			
		||||
set KEY_NAME="HKEY_LOCAL_MACHINE\Software\Wow6432Node\JavaSoft\Java Runtime Environment"
 | 
			
		||||
set VALUE_NAME=CurrentVersion
 | 
			
		||||
 | 
			
		||||
FOR /F "usebackq skip=2 tokens=1-3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO (
 | 
			
		||||
    set ValueName=%%A
 | 
			
		||||
    set ValueType=%%B
 | 
			
		||||
    set ValueValue=%%C
 | 
			
		||||
)
 | 
			
		||||
@ECHO CurrentVersion %ValueValue%
 | 
			
		||||
 | 
			
		||||
SET KEY_NAME="%KEY_NAME:~1,-1%\%ValueValue%"
 | 
			
		||||
SET VALUE_NAME=JavaHome
 | 
			
		||||
 | 
			
		||||
if defined ValueName (
 | 
			
		||||
    FOR /F "usebackq skip=2 tokens=1,2*" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO (
 | 
			
		||||
        set ValueName2=%%A
 | 
			
		||||
        set ValueType2=%%B
 | 
			
		||||
        set JRE_PATH2=%%C
 | 
			
		||||
 | 
			
		||||
        if defined ValueName2 (
 | 
			
		||||
            set ValueName = %ValueName2%
 | 
			
		||||
            set ValueType = %ValueType2%
 | 
			
		||||
            set ValueValue =  %JRE_PATH2%
 | 
			
		||||
        )
 | 
			
		||||
    )
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
IF NOT "%JRE_PATH2%" == "" GOTO JAVA_INSTALLED
 | 
			
		||||
 | 
			
		||||
:CHECK_JAVA_32
 | 
			
		||||
@ECHO Detecting if it is 32 bit machine
 | 
			
		||||
set KEY_NAME="HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment"
 | 
			
		||||
set VALUE_NAME=CurrentVersion
 | 
			
		||||
 | 
			
		||||
FOR /F "usebackq skip=2 tokens=1-3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO (
 | 
			
		||||
    set ValueName=%%A
 | 
			
		||||
    set ValueType=%%B
 | 
			
		||||
    set ValueValue=%%C
 | 
			
		||||
)
 | 
			
		||||
@ECHO CurrentVersion %ValueValue%
 | 
			
		||||
 | 
			
		||||
SET KEY_NAME="%KEY_NAME:~1,-1%\%ValueValue%"
 | 
			
		||||
SET VALUE_NAME=JavaHome
 | 
			
		||||
 | 
			
		||||
if defined ValueName (
 | 
			
		||||
    FOR /F "usebackq skip=2 tokens=1,2*" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO (
 | 
			
		||||
        set ValueName2=%%A
 | 
			
		||||
        set ValueType2=%%B
 | 
			
		||||
        set JRE_PATH2=%%C
 | 
			
		||||
 | 
			
		||||
        if defined ValueName2 (
 | 
			
		||||
            set ValueName = %ValueName2%
 | 
			
		||||
            set ValueType = %ValueType2%
 | 
			
		||||
            set ValueValue =  %JRE_PATH2%
 | 
			
		||||
        )
 | 
			
		||||
    )
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
IF "%JRE_PATH2%" == ""  GOTO JAVA_NOT_INSTALLED
 | 
			
		||||
 | 
			
		||||
:JAVA_INSTALLED
 | 
			
		||||
 | 
			
		||||
@ECHO Java 1.8 found!
 | 
			
		||||
@ECHO Installing ${pkg.name} ...
 | 
			
		||||
 | 
			
		||||
%BASE%${pkg.name}.exe install
 | 
			
		||||
 | 
			
		||||
@ECHO ${pkg.name} installed successfully!
 | 
			
		||||
 | 
			
		||||
GOTO END
 | 
			
		||||
 | 
			
		||||
:JAVA_NOT_INSTALLED
 | 
			
		||||
@ECHO Java 1.8 or above is not installed
 | 
			
		||||
@ECHO Please go to https://java.com/ and install Java. Then retry installation.
 | 
			
		||||
PAUSE
 | 
			
		||||
GOTO END
 | 
			
		||||
 | 
			
		||||
:END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										36
									
								
								transport/mqtt/src/main/scripts/windows/service.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								transport/mqtt/src/main/scripts/windows/service.xml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,36 @@
 | 
			
		||||
<service>
 | 
			
		||||
    <id>${pkg.name}</id>
 | 
			
		||||
    <name>${project.name}</name>
 | 
			
		||||
    <description>${project.description}</description>
 | 
			
		||||
    <workingdirectory>%BASE%\conf</workingdirectory>
 | 
			
		||||
    <logpath>${pkg.winWrapperLogFolder}</logpath>
 | 
			
		||||
    <logmode>rotate</logmode>
 | 
			
		||||
    <env name="LOADER_PATH" value="%BASE%\conf" />
 | 
			
		||||
    <executable>java</executable>
 | 
			
		||||
    <startargument>-Xloggc:%BASE%\logs\gc.log</startargument>
 | 
			
		||||
    <startargument>-XX:+HeapDumpOnOutOfMemoryError</startargument>
 | 
			
		||||
    <startargument>-XX:+PrintGCDetails</startargument>
 | 
			
		||||
    <startargument>-XX:+PrintGCDateStamps</startargument>
 | 
			
		||||
    <startargument>-XX:+PrintHeapAtGC</startargument>
 | 
			
		||||
    <startargument>-XX:+PrintTenuringDistribution</startargument>
 | 
			
		||||
    <startargument>-XX:+PrintGCApplicationStoppedTime</startargument>
 | 
			
		||||
    <startargument>-XX:+UseGCLogFileRotation</startargument>
 | 
			
		||||
    <startargument>-XX:NumberOfGCLogFiles=10</startargument>
 | 
			
		||||
    <startargument>-XX:GCLogFileSize=10M</startargument>
 | 
			
		||||
    <startargument>-XX:-UseBiasedLocking</startargument>
 | 
			
		||||
    <startargument>-XX:+UseTLAB</startargument>
 | 
			
		||||
    <startargument>-XX:+ResizeTLAB</startargument>
 | 
			
		||||
    <startargument>-XX:+PerfDisableSharedMem</startargument>
 | 
			
		||||
    <startargument>-XX:+UseCondCardMark</startargument>
 | 
			
		||||
    <startargument>-XX:CMSWaitDuration=10000</startargument>
 | 
			
		||||
    <startargument>-XX:+UseParNewGC</startargument>
 | 
			
		||||
    <startargument>-XX:+UseConcMarkSweepGC</startargument>
 | 
			
		||||
    <startargument>-XX:+CMSParallelRemarkEnabled</startargument>
 | 
			
		||||
    <startargument>-XX:+CMSParallelInitialMarkEnabled</startargument>
 | 
			
		||||
    <startargument>-XX:+CMSEdenChunksRecordAlways</startargument>
 | 
			
		||||
    <startargument>-XX:CMSInitiatingOccupancyFraction=75</startargument>
 | 
			
		||||
    <startargument>-XX:+UseCMSInitiatingOccupancyOnly</startargument>
 | 
			
		||||
    <startargument>-jar</startargument>
 | 
			
		||||
    <startargument>%BASE%\lib\${pkg.name}.jar</startargument>
 | 
			
		||||
 | 
			
		||||
</service>
 | 
			
		||||
							
								
								
									
										9
									
								
								transport/mqtt/src/main/scripts/windows/uninstall.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								transport/mqtt/src/main/scripts/windows/uninstall.bat
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
			
		||||
@ECHO OFF
 | 
			
		||||
 | 
			
		||||
@ECHO Stopping ${pkg.name} ...
 | 
			
		||||
net stop ${pkg.name}
 | 
			
		||||
 | 
			
		||||
@ECHO Uninstalling ${pkg.name} ...
 | 
			
		||||
%~dp0${pkg.name}.exe uninstall
 | 
			
		||||
 | 
			
		||||
@ECHO DONE.
 | 
			
		||||
@ -34,9 +34,9 @@
 | 
			
		||||
    </properties>
 | 
			
		||||
 | 
			
		||||
    <modules>
 | 
			
		||||
        <module>http</module>
 | 
			
		||||
        <!--module>http</module-->
 | 
			
		||||
        <!--<module>coap</module>-->
 | 
			
		||||
        <module>mqtt-transport</module>
 | 
			
		||||
        <module>mqtt</module>
 | 
			
		||||
    </modules>
 | 
			
		||||
 | 
			
		||||
    <dependencies>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user