62 changed files with 436 additions and 2061 deletions
@ -1,140 +0,0 @@ |
|||
/** |
|||
* Copyright © 2016-2020 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") |
|||
} |
|||
@ -1,71 +0,0 @@ |
|||
<!-- |
|||
|
|||
Copyright © 2016-2020 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> |
|||
@ -1 +0,0 @@ |
|||
pkg.logFolder=${pkg.unixLogFolder} |
|||
@ -1,2 +0,0 @@ |
|||
pkg.logFolder=${BASE}\\logs |
|||
pkg.winWrapperLogFolder=%BASE%\\logs |
|||
@ -1,6 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
chown -R ${pkg.user}: ${pkg.logFolder} |
|||
chown -R ${pkg.user}: ${pkg.installFolder} |
|||
update-rc.d ${pkg.name} defaults |
|||
|
|||
@ -1,3 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
update-rc.d -f ${pkg.name} remove |
|||
@ -1,18 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
if ! getent group ${pkg.user} >/dev/null; then |
|||
addgroup --system ${pkg.user} |
|||
fi |
|||
|
|||
if ! getent passwd ${pkg.user} >/dev/null; then |
|||
adduser --quiet \ |
|||
--system \ |
|||
--ingroup ${pkg.user} \ |
|||
--quiet \ |
|||
--disabled-login \ |
|||
--disabled-password \ |
|||
--home ${pkg.installFolder} \ |
|||
--no-create-home \ |
|||
-gecos "Thingsboard application" \ |
|||
${pkg.user} |
|||
fi |
|||
@ -1,5 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
if [ -e /var/run/${pkg.name}/${pkg.name}.pid ]; then |
|||
service ${pkg.name} stop |
|||
fi |
|||
@ -1,9 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
chown -R ${pkg.user}: ${pkg.logFolder} |
|||
chown -R ${pkg.user}: ${pkg.installFolder} |
|||
|
|||
if [ $1 -eq 1 ] ; then |
|||
# Initial installation |
|||
systemctl --no-reload enable ${pkg.name}.service >/dev/null 2>&1 || : |
|||
fi |
|||
@ -1,6 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
if [ $1 -ge 1 ] ; then |
|||
# Package upgrade, not uninstall |
|||
systemctl try-restart ${pkg.name}.service >/dev/null 2>&1 || : |
|||
fi |
|||
@ -1,6 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
getent group ${pkg.user} >/dev/null || groupadd -r ${pkg.user} |
|||
getent passwd ${pkg.user} >/dev/null || \ |
|||
useradd -d ${pkg.installFolder} -g ${pkg.user} -M -r ${pkg.user} -s /sbin/nologin \ |
|||
-c "Thingsboard application" |
|||
@ -1,6 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
if [ $1 -eq 0 ] ; then |
|||
# Package removal, not upgrade |
|||
systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || : |
|||
fi |
|||
@ -1,11 +0,0 @@ |
|||
[Unit] |
|||
Description=${pkg.name} |
|||
After=syslog.target |
|||
|
|||
[Service] |
|||
User=${pkg.user} |
|||
ExecStart=${pkg.installFolder}/bin/${pkg.name}.jar |
|||
SuccessExitStatus=143 |
|||
|
|||
[Install] |
|||
WantedBy=multi-user.target |
|||
@ -1,31 +0,0 @@ |
|||
@ECHO OFF |
|||
|
|||
setlocal ENABLEEXTENSIONS |
|||
|
|||
@ECHO Detecting Java version installed. |
|||
:CHECK_JAVA |
|||
for /f tokens^=2-5^ delims^=.-_^" %%j in ('java -fullversion 2^>^&1') do set "jver=%%j%%k" |
|||
@ECHO CurrentVersion %jver% |
|||
|
|||
if %jver% NEQ 18 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 is not installed. Only Java 1.8 is supported |
|||
@ECHO Please go to https://adoptopenjdk.net/index.html and install Java 1.8. Then retry installation. |
|||
PAUSE |
|||
GOTO END |
|||
|
|||
:END |
|||
|
|||
|
|||
@ -1,36 +0,0 @@ |
|||
<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> |
|||
@ -1,9 +0,0 @@ |
|||
@ECHO OFF |
|||
|
|||
@ECHO Stopping ${pkg.name} ... |
|||
net stop ${pkg.name} |
|||
|
|||
@ECHO Uninstalling ${pkg.name} ... |
|||
"%~dp0"${pkg.name}.exe uninstall |
|||
|
|||
@ECHO DONE. |
|||
@ -1,140 +0,0 @@ |
|||
/** |
|||
* Copyright © 2016-2020 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") |
|||
} |
|||
@ -1,71 +0,0 @@ |
|||
<!-- |
|||
|
|||
Copyright © 2016-2020 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> |
|||
@ -1 +0,0 @@ |
|||
pkg.logFolder=${pkg.unixLogFolder} |
|||
@ -1,2 +0,0 @@ |
|||
pkg.logFolder=${BASE}\\logs |
|||
pkg.winWrapperLogFolder=%BASE%\\logs |
|||
@ -1,6 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
chown -R ${pkg.user}: ${pkg.logFolder} |
|||
chown -R ${pkg.user}: ${pkg.installFolder} |
|||
update-rc.d ${pkg.name} defaults |
|||
|
|||
@ -1,3 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
update-rc.d -f ${pkg.name} remove |
|||
@ -1,18 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
if ! getent group ${pkg.user} >/dev/null; then |
|||
addgroup --system ${pkg.user} |
|||
fi |
|||
|
|||
if ! getent passwd ${pkg.user} >/dev/null; then |
|||
adduser --quiet \ |
|||
--system \ |
|||
--ingroup ${pkg.user} \ |
|||
--quiet \ |
|||
--disabled-login \ |
|||
--disabled-password \ |
|||
--home ${pkg.installFolder} \ |
|||
--no-create-home \ |
|||
-gecos "Thingsboard application" \ |
|||
${pkg.user} |
|||
fi |
|||
@ -1,5 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
if [ -e /var/run/${pkg.name}/${pkg.name}.pid ]; then |
|||
service ${pkg.name} stop |
|||
fi |
|||
@ -1,9 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
chown -R ${pkg.user}: ${pkg.logFolder} |
|||
chown -R ${pkg.user}: ${pkg.installFolder} |
|||
|
|||
if [ $1 -eq 1 ] ; then |
|||
# Initial installation |
|||
systemctl --no-reload enable ${pkg.name}.service >/dev/null 2>&1 || : |
|||
fi |
|||
@ -1,6 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
if [ $1 -ge 1 ] ; then |
|||
# Package upgrade, not uninstall |
|||
systemctl try-restart ${pkg.name}.service >/dev/null 2>&1 || : |
|||
fi |
|||
@ -1,6 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
getent group ${pkg.user} >/dev/null || groupadd -r ${pkg.user} |
|||
getent passwd ${pkg.user} >/dev/null || \ |
|||
useradd -d ${pkg.installFolder} -g ${pkg.user} -M -r ${pkg.user} -s /sbin/nologin \ |
|||
-c "Thingsboard application" |
|||
@ -1,6 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
if [ $1 -eq 0 ] ; then |
|||
# Package removal, not upgrade |
|||
systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || : |
|||
fi |
|||
@ -1,11 +0,0 @@ |
|||
[Unit] |
|||
Description=${pkg.name} |
|||
After=syslog.target |
|||
|
|||
[Service] |
|||
User=${pkg.user} |
|||
ExecStart=${pkg.installFolder}/bin/${pkg.name}.jar |
|||
SuccessExitStatus=143 |
|||
|
|||
[Install] |
|||
WantedBy=multi-user.target |
|||
@ -1,31 +0,0 @@ |
|||
@ECHO OFF |
|||
|
|||
setlocal ENABLEEXTENSIONS |
|||
|
|||
@ECHO Detecting Java version installed. |
|||
:CHECK_JAVA |
|||
for /f tokens^=2-5^ delims^=.-_^" %%j in ('java -fullversion 2^>^&1') do set "jver=%%j%%k" |
|||
@ECHO CurrentVersion %jver% |
|||
|
|||
if %jver% NEQ 18 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 is not installed. Only Java 1.8 is supported |
|||
@ECHO Please go to https://adoptopenjdk.net/index.html and install Java 1.8. Then retry installation. |
|||
PAUSE |
|||
GOTO END |
|||
|
|||
:END |
|||
|
|||
|
|||
@ -1,36 +0,0 @@ |
|||
<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> |
|||
@ -1,9 +0,0 @@ |
|||
@ECHO OFF |
|||
|
|||
@ECHO Stopping ${pkg.name} ... |
|||
net stop ${pkg.name} |
|||
|
|||
@ECHO Uninstalling ${pkg.name} ... |
|||
"%~dp0"${pkg.name}.exe uninstall |
|||
|
|||
@ECHO DONE. |
|||
@ -1,140 +0,0 @@ |
|||
/** |
|||
* Copyright © 2016-2020 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") |
|||
} |
|||
@ -1,71 +0,0 @@ |
|||
<!-- |
|||
|
|||
Copyright © 2016-2020 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> |
|||
@ -1 +0,0 @@ |
|||
pkg.logFolder=${pkg.unixLogFolder} |
|||
@ -1,2 +0,0 @@ |
|||
pkg.logFolder=${BASE}\\logs |
|||
pkg.winWrapperLogFolder=%BASE%\\logs |
|||
@ -1,6 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
chown -R ${pkg.user}: ${pkg.logFolder} |
|||
chown -R ${pkg.user}: ${pkg.installFolder} |
|||
update-rc.d ${pkg.name} defaults |
|||
|
|||
@ -1,3 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
update-rc.d -f ${pkg.name} remove |
|||
@ -1,18 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
if ! getent group ${pkg.user} >/dev/null; then |
|||
addgroup --system ${pkg.user} |
|||
fi |
|||
|
|||
if ! getent passwd ${pkg.user} >/dev/null; then |
|||
adduser --quiet \ |
|||
--system \ |
|||
--ingroup ${pkg.user} \ |
|||
--quiet \ |
|||
--disabled-login \ |
|||
--disabled-password \ |
|||
--home ${pkg.installFolder} \ |
|||
--no-create-home \ |
|||
-gecos "Thingsboard application" \ |
|||
${pkg.user} |
|||
fi |
|||
@ -1,5 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
if [ -e /var/run/${pkg.name}/${pkg.name}.pid ]; then |
|||
service ${pkg.name} stop |
|||
fi |
|||
@ -1,9 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
chown -R ${pkg.user}: ${pkg.logFolder} |
|||
chown -R ${pkg.user}: ${pkg.installFolder} |
|||
|
|||
if [ $1 -eq 1 ] ; then |
|||
# Initial installation |
|||
systemctl --no-reload enable ${pkg.name}.service >/dev/null 2>&1 || : |
|||
fi |
|||
@ -1,6 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
if [ $1 -ge 1 ] ; then |
|||
# Package upgrade, not uninstall |
|||
systemctl try-restart ${pkg.name}.service >/dev/null 2>&1 || : |
|||
fi |
|||
@ -1,6 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
getent group ${pkg.user} >/dev/null || groupadd -r ${pkg.user} |
|||
getent passwd ${pkg.user} >/dev/null || \ |
|||
useradd -d ${pkg.installFolder} -g ${pkg.user} -M -r ${pkg.user} -s /sbin/nologin \ |
|||
-c "Thingsboard application" |
|||
@ -1,6 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
if [ $1 -eq 0 ] ; then |
|||
# Package removal, not upgrade |
|||
systemctl --no-reload disable --now ${pkg.name}.service > /dev/null 2>&1 || : |
|||
fi |
|||
@ -1,11 +0,0 @@ |
|||
[Unit] |
|||
Description=${pkg.name} |
|||
After=syslog.target |
|||
|
|||
[Service] |
|||
User=${pkg.user} |
|||
ExecStart=${pkg.installFolder}/bin/${pkg.name}.jar |
|||
SuccessExitStatus=143 |
|||
|
|||
[Install] |
|||
WantedBy=multi-user.target |
|||
@ -1,31 +0,0 @@ |
|||
@ECHO OFF |
|||
|
|||
setlocal ENABLEEXTENSIONS |
|||
|
|||
@ECHO Detecting Java version installed. |
|||
:CHECK_JAVA |
|||
for /f tokens^=2-5^ delims^=.-_^" %%j in ('java -fullversion 2^>^&1') do set "jver=%%j%%k" |
|||
@ECHO CurrentVersion %jver% |
|||
|
|||
if %jver% NEQ 18 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 is not installed. Only Java 1.8 is supported |
|||
@ECHO Please go to https://adoptopenjdk.net/index.html and install Java 1.8. Then retry installation. |
|||
PAUSE |
|||
GOTO END |
|||
|
|||
:END |
|||
|
|||
|
|||
@ -1,36 +0,0 @@ |
|||
<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> |
|||
@ -1,9 +0,0 @@ |
|||
@ECHO OFF |
|||
|
|||
@ECHO Stopping ${pkg.name} ... |
|||
net stop ${pkg.name} |
|||
|
|||
@ECHO Uninstalling ${pkg.name} ... |
|||
"%~dp0"${pkg.name}.exe uninstall |
|||
|
|||
@ECHO DONE. |
|||
Loading…
Reference in new issue