aboutsummaryrefslogtreecommitdiff
path: root/setup
diff options
context:
space:
mode:
Diffstat (limited to 'setup')
-rwxr-xr-xsetup/package.sh167
-rwxr-xr-xsetup/unix/linux-arm-setup.sh22
-rwxr-xr-xsetup/unix/setup.sh19
-rw-r--r--setup/unix/traccar.xml6
-rw-r--r--setup/windows/traccar.iss55
-rw-r--r--setup/windows/traccar.xml403
6 files changed, 80 insertions, 592 deletions
diff --git a/setup/package.sh b/setup/package.sh
index 928a6e5b1..41393fa6b 100755
--- a/setup/package.sh
+++ b/setup/package.sh
@@ -23,8 +23,7 @@ check_requirement () {
}
check_requirement "ls ../../ext-6.0.1" "Missing ../../ext-6.0.1 (https://www.sencha.com/legal/GPL/)"
-check_requirement "ls wrapper-delta-pack-*.tar.gz" "Missing wrapper-delta-pack-*.tar.gz (http://wrapper.tanukisoftware.com/doc/english/download.jsp)"
-check_requirement "ls wrapper-windows-x86-64-*.zip" "Missing wrapper-windows-x86-64-*.zip (http://www.krenger.ch/blog/tag/java-service-wrapper/)"
+check_requirement "ls yajsw-*.zip" "Missing yajsw-*.zip (http://yajsw.sourceforge.net/)"
check_requirement "ls innosetup-*.exe" "Missing isetup-*.exe (http://www.jrsoftware.org/isdl.php)"
check_requirement "which sencha" "Missing sencha cmd package (https://www.sencha.com/products/extjs/cmd-download/)"
check_requirement "which wine" "Missing wine package"
@@ -32,131 +31,117 @@ check_requirement "which innoextract" "Missing innoextract package"
check_requirement "which makeself" "Missing makeself package"
prepare () {
-
- tar -xzf wrapper-delta-pack-*.tar.gz
- mv wrapper-delta-pack-*/ wrapper/
+ unzip yajsw-*.zip
+ mv yajsw-*/ yajsw/
../tools/minify.sh
innoextract innosetup-*.exe
- echo "If you got any errors here try isetup version 5.5.5 (or check what versions are supported by 'innoextract -v')"
+ echo "If you got any errors here try isetup version 5.5.5 (or check supported versions using 'innoextract -v')"
}
cleanup () {
-
- rm -rf wrapper/
+ rm -r yajsw/
rm ../web/app.min.js
- rm -rf app/
+ rm -r app/
}
-prepare_windows_64 () {
- unzip wrapper-windows-x86-64-*.zip
- cp wrapper-windows-*/bin/wrapper.exe wrapper/bin/wrapper-windows-x86-32.exe
- cp wrapper-windows-*/lib/wrapper.dll wrapper/lib/wrapper-windows-x86-32.dll
- cp wrapper-windows-*/lib/wrapper.jar wrapper/lib/wrapper.jar
- rm -rf wrapper-windows-*/
-}
+copy_wrapper () {
+ cp yajsw/$1/setenv* out/bin
+ cp yajsw/$1/wrapper* out/bin
+ cp yajsw/$1/install* out/bin
+ cp yajsw/$1/start* out/bin
+ cp yajsw/$1/stop* out/bin
+ cp yajsw/$1/uninstall* out/bin
-prepare_linux_32 () {
- cp unix/setup.sh out
- cp wrapper/bin/wrapper-linux-x86-32 out/bin/wrapper
- cp wrapper/lib/libwrapper-linux-x86-32.so out/lib/libwrapper.so
-}
+ chmod +x out/bin/*
-prepare_linux_64 () {
- cp unix/setup.sh out
- cp wrapper/bin/wrapper-linux-x86-64 out/bin/wrapper
- cp wrapper/lib/libwrapper-linux-x86-64.so out/lib/libwrapper.so
-}
+ cp yajsw/conf/wrapper.conf.default out/conf
-prepare_linux_arm () {
- cp unix/linux-arm-setup.sh out/setup.sh
- cp wrapper/bin/wrapper-linux-armel-32 out/bin
- cp wrapper/bin/wrapper-linux-armhf-32 out/bin
- cp wrapper/lib/libwrapper-linux-armel-32.so out/lib
- cp wrapper/lib/libwrapper-linux-armhf-32.so out/lib
-}
+ touch out/conf/wrapper.conf
+ echo "wrapper.java.app.jar=tracker-server.jar" >> out/conf/wrapper.conf
+ echo "wrapper.app.parameter.1=./conf/traccar.xml" >> out/conf/wrapper.conf
+ echo "wrapper.java.additional.1=-Dfile.encoding=UTF-8" >> out/conf/wrapper.conf
+ echo "wrapper.logfile=logs/wrapper.log.YYYYMMDD" >> out/conf/wrapper.conf
+ echo "wrapper.logfile.rollmode=DATE" >> out/conf/wrapper.conf
+ echo "wrapper.ntservice.name=traccar" >> out/conf/wrapper.conf
+ echo "wrapper.ntservice.displayname=traccar" >> out/conf/wrapper.conf
+ echo "wrapper.ntservice.description=traccar" >> out/conf/wrapper.conf
-prepare_macosx_64 () {
- cp unix/setup.sh out
- cp wrapper/bin/wrapper-macosx-universal-64 out/bin/wrapper
- cp wrapper/lib/libwrapper-macosx-universal-64.jnilib out/lib/libwrapper.jnilib
-}
+ cp -r yajsw/lib/core out/lib
+ rm out/lib/core/ReadMe.txt
-package_windows () {
+ cp -r yajsw/lib/extended out/lib
+ rm out/lib/extended/ReadMe.txt
- if [ "$#" -gt 1 ]
- then
- eval $2
- fi
-
- wine app/ISCC.exe windows/traccar.iss
-
- zip -j traccar-$1-$VERSION.zip windows/Output/traccar-setup.exe README.txt
+ cp yajsw/templates/* out/templates
- rm -rf windows/Output/
- rm -rf tmp/
+ cp yajsw/wrapper*.jar out
}
-package_unix () {
-
- mkdir -p out/{bin,conf,data,lib,logs,web,schema}
-
- cp wrapper/src/bin/sh.script.in out/bin/traccar
- cp wrapper/lib/wrapper.jar out/lib
- cp wrapper/src/conf/wrapper.conf.in out/conf/wrapper.conf
-
- sed -i.bak 's/tail -1/tail -n 1/g' out/bin/traccar
- chmod +x out/bin/traccar
-
+copy_files () {
cp ../target/tracker-server.jar out
cp ../target/lib/* out/lib
cp ../schema/* out/schema
cp -r ../web/* out/web
cp unix/traccar.xml out/conf
+}
+
+package_windows () {
+ mkdir -p out/{bin,conf,data,lib,logs,web,schema,templates}
- sed -i.bak 's/@app.name@/traccar/g' out/bin/traccar
- sed -i.bak 's/@app.long.name@/traccar/g' out/bin/traccar
+ copy_wrapper "bat"
+ copy_files
- sed -i.bak '/wrapper.java.classpath.1/a\
-wrapper.java.classpath.2=../tracker-server.jar' out/conf/wrapper.conf
- sed -i.bak '/wrapper.app.parameter.1/a\
-wrapper.app.parameter.2=../conf/traccar.xml' out/conf/wrapper.conf
- sed -i.bak 's/wrapper.java.additional.1=/wrapper.java.additional.1=-Dfile.encoding=UTF-8/g' out/conf/wrapper.conf
- sed -i.bak 's/<YourMainClass>/org.traccar.Main/g' out/conf/wrapper.conf
- sed -i.bak 's/@app.name@/traccar/g' out/conf/wrapper.conf
- sed -i.bak 's/@app.long.name@/traccar/g' out/conf/wrapper.conf
- sed -i.bak 's/@app.description@/traccar/g' out/conf/wrapper.conf
- sed -i.bak 's/wrapper.logfile=..\/logs\/wrapper.log/wrapper.logfile=..\/logs\/wrapper.log.YYYYMMDD\
-wrapper.logfile.rollmode=DATE/g' out/conf/wrapper.conf
+ wine app/ISCC.exe windows/traccar.iss
- rm out/bin/traccar.bak
- rm out/conf/wrapper.conf.bak
+ zip -j traccar-windows-$VERSION.zip windows/Output/traccar-setup.exe README.txt
- eval $2
+ rm -r windows/Output
+ rm -r tmp
+ rm -r out
+}
- makeself out traccar.run "traccar" "chmod +x setup.sh ; ./setup.sh"
- zip -j traccar-$1-$VERSION.zip traccar.run README.txt
+package_unix () {
+ mkdir -p out/{bin,conf,data,lib,logs,web,schema,templates}
+
+ copy_wrapper "bin"
+ copy_files
+
+ makeself out traccar.run "traccar" "\
+if which java &>/dev/null ; \
+then \
+if [ $(java -version 2>&1 | grep -i version | sed 's/.*version "\(.*\)\.\(.*\)\..*"/\1\2/; 1q') -lt 17 ] ; \
+then \
+echo "Java 7 or higher required" ; \
+else \
+mkdir -p /opt/traccar ; \
+cp -r * /opt/traccar ; \
+chmod -R go+rX /opt/traccar ; \
+/opt/traccar/bin/installDaemon.sh ; \
+fi ; \
+else \
+echo "Java runtime is required" ; \
+fi"
+
+ zip -j traccar-linux-$VERSION.zip traccar.run README.txt
+ cp traccar-linux-$VERSION.zip traccar-macos-$VERSION.zip
rm traccar.run
- rm -rf out/
+ rm -r out
}
package_universal () {
-
mkdir -p out/{conf,data,lib,logs,web,schema}
- cp ../target/tracker-server.jar out
- cp ../target/lib/* out/lib
- cp ../schema/* out/schema
- cp -r ../web/* out/web
- cp windows/traccar.xml out/conf
+ copy_files
+
cp README.txt out
cd out
- zip -r ../traccar-$1-$VERSION.zip * README.txt
+ zip -r ../traccar-other-$VERSION.zip *
cd ..
rm -rf out/
@@ -164,12 +149,8 @@ package_universal () {
prepare
-package_windows "windows-32"
-package_windows "windows-64" "prepare_windows_64"
-package_unix "linux-32" "prepare_linux_32"
-package_unix "linux-64" "prepare_linux_64"
-package_unix "linux-arm" "prepare_linux_arm"
-package_unix "macosx-64" "prepare_macosx_64"
-package_universal "other"
+package_windows
+package_unix
+package_universal
cleanup
diff --git a/setup/unix/linux-arm-setup.sh b/setup/unix/linux-arm-setup.sh
deleted file mode 100755
index 8128e9396..000000000
--- a/setup/unix/linux-arm-setup.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-UNIX_PATH="/opt/traccar"
-
-if [ $(java -version 2>&1 | grep -i version | sed 's/.*version "\(.*\)\.\(.*\)\..*"/\1\2/; 1q') -lt 17 ]
-then
- echo "Please install Java version 7 or higher"
-else
- mkdir -p $UNIX_PATH
- cp -rf * $UNIX_PATH
- chmod -R go+rX $UNIX_PATH
- if [ -z "`readelf -A /proc/self/exe | grep Tag_ABI_VFP_args`" ]
- then
- mv $UNIX_PATH/bin/wrapper-linux-armel-32 $UNIX_PATH/bin/wrapper
- mv $UNIX_PATH/lib/libwrapper-linux-armel-32.so $UNIX_PATH/lib/libwrapper.so
- else
- mv $UNIX_PATH/bin/wrapper-linux-armhf-32 $UNIX_PATH/bin/wrapper
- mv $UNIX_PATH/lib/libwrapper-linux-armhf-32.so $UNIX_PATH/lib/libwrapper.so
- fi
- $UNIX_PATH/bin/traccar install
- rm $UNIX_PATH/setup.sh
-fi
diff --git a/setup/unix/setup.sh b/setup/unix/setup.sh
deleted file mode 100755
index 478966ea0..000000000
--- a/setup/unix/setup.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-UNIX_PATH="/opt/traccar"
-
-if which java &>/dev/null
-then
- if [ $(java -version 2>&1 | grep -i version | sed 's/.*version "\(.*\)\.\(.*\)\..*"/\1\2/; 1q') -lt 17 ]
- then
- echo "Java 7 or higher required"
- else
- mkdir -p $UNIX_PATH
- cp -rf * $UNIX_PATH
- chmod -R go+rX $UNIX_PATH
- $UNIX_PATH/bin/traccar install
- rm $UNIX_PATH/setup.sh
- fi
-else
- echo "Java runtime is required"
-fi
diff --git a/setup/unix/traccar.xml b/setup/unix/traccar.xml
index 50847dcdf..a7ead50e5 100644
--- a/setup/unix/traccar.xml
+++ b/setup/unix/traccar.xml
@@ -15,7 +15,7 @@
<entry key='logger.enable'>true</entry>
<entry key='logger.level'>all</entry>
- <entry key='logger.file'>/opt/traccar/logs/tracker-server.log</entry>
+ <entry key='logger.file'>./logs/tracker-server.log</entry>
<entry key='event.enable'>true</entry>
<entry key='event.overspeedHandler'>true</entry>
@@ -28,13 +28,13 @@
<!-- DATABASE CONFIG -->
<entry key='database.driver'>org.h2.Driver</entry>
- <entry key='database.url'>jdbc:h2:/opt/traccar/data/database</entry>
+ <entry key='database.url'>jdbc:h2:./data/database</entry>
<entry key='database.user'>sa</entry>
<entry key='database.password'></entry>
<entry key='database.ignoreUnknown'>true</entry>
- <entry key='database.changelog'>/opt/traccar/schema/changelog-master.xml</entry>
+ <entry key='database.changelog'>./schema/changelog-master.xml</entry>
<entry key='database.selectServers'>
SELECT * FROM server;
diff --git a/setup/windows/traccar.iss b/setup/windows/traccar.iss
index d4af5a808..76b176f71 100644
--- a/setup/windows/traccar.iss
+++ b/setup/windows/traccar.iss
@@ -5,35 +5,14 @@ DefaultDirName={pf}\Traccar
AlwaysRestart=yes
OutputBaseFilename=traccar-setup
-[Dirs]
-Name: "{app}\bin"
-Name: "{app}\conf"
-Name: "{app}\data"
-Name: "{app}\lib"
-Name: "{app}\logs"
-Name: "{app}\web"
-Name: "{app}\schema"
-
[Files]
-Source: "..\wrapper\bin\wrapper-windows-x86-32.exe"; DestDir: "{app}\bin"; DestName: "wrapper.exe"
-Source: "..\wrapper\src\bin\App.bat.in"; DestDir: "{app}\bin"; DestName: "Traccar.bat"
-Source: "..\wrapper\src\bin\InstallApp-NT.bat.in"; DestDir: "{app}\bin"; DestName: "InstallTraccar-NT.bat"
-Source: "..\wrapper\src\bin\UninstallApp-NT.bat.in"; DestDir: "{app}\bin"; DestName: "UninstallTraccar-NT.bat"
-Source: "..\wrapper\lib\wrapper-windows-x86-32.dll"; DestDir: "{app}\lib"; DestName: "wrapper.dll"
-Source: "..\wrapper\lib\wrapper.jar"; DestDir: "{app}\lib";
-Source: "..\wrapper\src\conf\wrapper.conf.in"; DestDir: "{app}\conf"; DestName: "wrapper.conf"; AfterInstall: ConfigureWrapper
-
-Source: "..\..\target\tracker-server.jar"; DestDir: "{app}"
-Source: "..\..\target\lib\*"; DestDir: "{app}\lib"
-Source: "..\..\schema\*"; DestDir: "{app}\schema"
-Source: "..\..\web\*"; DestDir: "{app}\web"; Flags: recursesubdirs
-Source: "traccar.xml"; DestDir: "{app}\conf"; AfterInstall: ConfigureApplication
+Source: "..\out\*"; DestDir: "{app}"; Flags: recursesubdirs
[Run]
-Filename: "{app}\bin\InstallTraccar-NT.bat"
+Filename: "{app}\bin\installService.bat"
[UninstallRun]
-Filename: "{app}\bin\UninstallTraccar-NT.bat"
+Filename: "{app}\bin\uninstallService.bat"
[Code]
function GetLocalMachine(): Integer;
@@ -60,31 +39,3 @@ begin
MsgBox('This application requires Java Runtime Environment version 7 or later. Please download and install the JRE and run this setup again. If you have Java installed and still get this error, you need to re-install it from offline installer (for more info see https://www.traccar.org/windows/).', mbCriticalError, MB_OK);
end;
end;
-
-procedure ConfigureWrapper();
-var
- S: String;
-begin
- LoadStringFromFile(ExpandConstant(CurrentFileName), S);
- Insert('wrapper.java.classpath.2=../tracker-server.jar' + #13#10, S, Pos('wrapper.java.classpath.1', S));
- Insert(ExpandConstant('wrapper.app.parameter.2="{app}\conf\traccar.xml"') + #13#10, S, Pos('wrapper.app.parameter.1', S));
- StringChangeEx(S, 'wrapper.java.additional.1=', 'wrapper.java.additional.1=-Dfile.encoding=UTF-8', true);
- StringChangeEx(S, '<YourMainClass>', 'org.traccar.Main', true);
- StringChangeEx(S, '@app.name@', 'Traccar', true);
- StringChangeEx(S, '@app.long.name@', 'Traccar', true);
- StringChangeEx(S, '@app.description@', 'Traccar', true);
- StringChangeEx(S, 'wrapper.logfile=../logs/wrapper.log', 'wrapper.logfile=../logs/wrapper.log.YYYYMMDD' + #13#10 + 'wrapper.logfile.rollmode=DATE', true);
- SaveStringToFile(ExpandConstant(CurrentFileName), S, false);
-end;
-
-procedure ConfigureApplication();
-var
- S: String;
-begin
- LoadStringFromFile(ExpandConstant(CurrentFileName), S);
- StringChangeEx(S, '[WEB]', ExpandConstant('{app}\web'), true);
- StringChangeEx(S, '[LOG]', ExpandConstant('{app}\logs\tracker-server.log'), true);
- StringChangeEx(S, '[DATABASE]', ExpandConstant('{app}\data\database'), true);
- StringChangeEx(S, '[CHANGELOG]', ExpandConstant('{app}\schema\changelog-master.xml'), true);
- SaveStringToFile(ExpandConstant(CurrentFileName), S, false);
-end;
diff --git a/setup/windows/traccar.xml b/setup/windows/traccar.xml
deleted file mode 100644
index 3144f6352..000000000
--- a/setup/windows/traccar.xml
+++ /dev/null
@@ -1,403 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-
-<!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>
-
-<properties>
-
- <!-- SERVER CONFIG -->
-
- <entry key='web.enable'>true</entry>
- <entry key='web.port'>8082</entry>
- <entry key='web.path'>[WEB]</entry>
-
- <entry key='geocoder.enable'>true</entry>
- <entry key='geocoder.type'>google</entry>
-
- <entry key='logger.enable'>true</entry>
- <entry key='logger.level'>all</entry>
- <entry key='logger.file'>[LOG]</entry>
-
- <entry key='event.enable'>true</entry>
- <entry key='event.overspeedHandler'>true</entry>
- <entry key='event.overspeed.notRepeat'>true</entry>
- <entry key='event.motionHandler'>true</entry>
- <entry key='event.geofenceHandler'>true</entry>
- <entry key='event.alertHandler'>true</entry>
- <entry key='event.ignitionHandler'>true</entry>
-
- <!-- DATABASE CONFIG -->
-
- <entry key='database.driver'>org.h2.Driver</entry>
- <entry key='database.url'>jdbc:h2:[DATABASE]</entry>
- <entry key='database.user'>sa</entry>
- <entry key='database.password'></entry>
-
- <entry key='database.ignoreUnknown'>true</entry>
-
- <entry key='database.changelog'>[CHANGELOG]</entry>
-
- <entry key='database.selectServers'>
- SELECT * FROM server;
- </entry>
-
- <entry key='database.updateServer'>
- UPDATE server SET
- registration = :registration,
- readonly = :readonly,
- map = :map,
- bingKey = :bingKey,
- mapUrl = :mapUrl,
- distanceUnit = :distanceUnit,
- speedUnit = :speedUnit,
- latitude = :latitude,
- longitude = :longitude,
- zoom = :zoom,
- twelveHourFormat = :twelveHourFormat,
- attributes = :attributes
- WHERE id = :id;
- </entry>
-
- <entry key='database.loginUser'>
- SELECT * FROM users
- WHERE email = :email;
- </entry>
-
- <entry key='database.selectUser'>
- SELECT * FROM users
- WHERE id = :id;
- </entry>
-
- <entry key='database.selectUsersAll'>
- SELECT * FROM users;
- </entry>
-
- <entry key='database.insertUser'>
- INSERT INTO users (name, email, hashedPassword, salt, admin, map, distanceUnit, speedUnit, latitude, longitude, zoom, twelveHourFormat, attributes)
- VALUES (:name, :email, :hashedPassword, :salt, :admin, :map, :distanceUnit, :speedUnit, :latitude, :longitude, :zoom, :twelveHourFormat, :attributes);
- </entry>
-
- <entry key='database.updateUser'>
- UPDATE users SET
- name = :name,
- email = :email,
- admin = :admin,
- map = :map,
- distanceUnit = :distanceUnit,
- speedUnit = :speedUnit,
- latitude = :latitude,
- longitude = :longitude,
- zoom = :zoom,
- twelveHourFormat = :twelveHourFormat,
- attributes = :attributes
- WHERE id = :id;
- </entry>
-
- <entry key='database.updateUserPassword'>
- UPDATE users SET hashedPassword = :hashedPassword, salt = :salt WHERE id = :id;
- </entry>
-
- <entry key='database.deleteUser'>
- DELETE FROM users WHERE id = :id;
- </entry>
-
- <entry key='database.selectDevicePermissions'>
- SELECT userId, deviceId FROM user_device;
- </entry>
-
- <entry key='database.selectGroupPermissions'>
- SELECT userId, groupId FROM user_group;
- </entry>
-
- <entry key='database.selectDevicesAll'>
- SELECT * FROM devices;
- </entry>
-
- <entry key='database.insertDevice'>
- INSERT INTO devices (name, uniqueId, groupId, attributes) VALUES (:name, :uniqueId, :groupId, :attributes);
- </entry>
-
- <entry key='database.updateDevice'>
- UPDATE devices SET name = :name, uniqueId = :uniqueId, groupId = :groupId, attributes = :attributes WHERE id = :id;
- </entry>
-
- <entry key='database.updateDeviceStatus'>
- UPDATE devices SET lastUpdate = :lastUpdate WHERE id = :id;
- </entry>
-
- <entry key='database.deleteDevice'>
- DELETE FROM devices WHERE id = :id;
- </entry>
-
- <entry key='database.linkDevice'>
- INSERT INTO user_device (userId, deviceId) VALUES (:userId, :deviceId);
- </entry>
-
- <entry key='database.unlinkDevice'>
- DELETE FROM user_device WHERE userId = :userId AND deviceId = :deviceId;
- </entry>
-
- <entry key='database.selectGroupsAll'>
- SELECT * FROM groups;
- </entry>
-
- <entry key='database.insertGroup'>
- INSERT INTO groups (name, groupId, attributes) VALUES (:name, :groupId, :attributes);
- </entry>
-
- <entry key='database.updateGroup'>
- UPDATE groups SET name = :name, groupId = :groupId, attributes = :attributes WHERE id = :id;
- </entry>
-
- <entry key='database.deleteGroup'>
- DELETE FROM groups WHERE id = :id;
- </entry>
-
- <entry key='database.linkGroup'>
- INSERT INTO user_group (userId, groupId) VALUES (:userId, :groupId);
- </entry>
-
- <entry key='database.unlinkGroup'>
- DELETE FROM user_group WHERE userId = :userId AND groupId = :groupId;
- </entry>
-
- <entry key='database.selectPositions'>
- SELECT * FROM positions WHERE deviceId = :deviceId AND fixTime BETWEEN :from AND :to ORDER BY fixTime;
- </entry>
-
- <entry key='database.insertPosition'>
- INSERT INTO positions (deviceId, protocol, serverTime, deviceTime, fixTime, valid, latitude, longitude, altitude, speed, course, address, attributes)
- VALUES (:deviceId, :protocol, :now, :deviceTime, :fixTime, :valid, :latitude, :longitude, :altitude, :speed, :course, :address, :attributes);
- </entry>
-
- <entry key='database.selectLatestPositions'>
- SELECT * FROM positions WHERE id IN (SELECT positionId FROM devices);
- </entry>
-
- <entry key='database.updateLatestPosition'>
- UPDATE devices SET positionId = :id WHERE id = :deviceId;
- </entry>
-
- <entry key='database.selectEvent'>
- SELECT * FROM events WHERE id = :id;
- </entry>
-
- <entry key='database.insertEvent'>
- INSERT INTO events (type, serverTime, deviceId, positionId, geofenceId, attributes)
- VALUES (:type, :serverTime, :deviceId, :positionId, :geofenceId, :attributes);
- </entry>
-
- <entry key='database.selectEvents'>
- SELECT * FROM events WHERE deviceId = :deviceId AND type LIKE :type AND serverTime BETWEEN :from AND :to ORDER BY serverTime DESC;
- </entry>
-
- <entry key='database.selectGeofence'>
- SELECT * FROM geofences
- WHERE id = :id;
- </entry>
-
- <entry key='database.selectGeofencesAll'>
- SELECT * FROM geofences;
- </entry>
-
- <entry key='database.insertGeofence'>
- INSERT INTO geofences (name, description, area, attributes)
- VALUES (:name, :description, :area, :attributes);
- </entry>
-
- <entry key='database.updateGeofence'>
- UPDATE geofences SET
- name = :name,
- description = :description,
- area = :area,
- attributes = :attributes
- WHERE id = :id;
- </entry>
-
- <entry key='database.deleteGeofence'>
- DELETE FROM geofences WHERE id = :id;
- </entry>
-
- <entry key='database.selectGeofencePermissions'>
- SELECT userId, geofenceId FROM user_geofence;
- </entry>
-
- <entry key='database.linkGeofence'>
- INSERT INTO user_geofence (userId, geofenceId) VALUES (:userId, :geofenceId);
- </entry>
-
- <entry key='database.unlinkGeofence'>
- DELETE FROM user_geofence WHERE userId = :userId AND geofenceId = :geofenceId;
- </entry>
-
- <entry key='database.selectGroupGeofences'>
- SELECT groupId, geofenceId FROM group_geofence;
- </entry>
-
- <entry key='database.linkGroupGeofence'>
- INSERT INTO group_geofence (groupId, geofenceId) VALUES (:groupId, :geofenceId);
- </entry>
-
- <entry key='database.unlinkGroupGeofence'>
- DELETE FROM group_geofence WHERE groupId = :groupId AND geofenceId = :geofenceId;
- </entry>
-
- <entry key='database.selectDeviceGeofences'>
- SELECT deviceId, geofenceId FROM device_geofence;
- </entry>
-
- <entry key='database.linkDeviceGeofence'>
- INSERT INTO device_geofence (deviceId, geofenceId) VALUES (:deviceId, :geofenceId);
- </entry>
-
- <entry key='database.unlinkDeviceGeofence'>
- DELETE FROM device_geofence WHERE deviceId = :deviceId AND geofenceId = :geofenceId;
- </entry>
-
- <entry key='database.selectNotifications'>
- SELECT * FROM notifications;
- </entry>
-
- <entry key='database.insertNotification'>
- INSERT INTO notifications (userId, type, attributes)
- VALUES (:userId, :type, :attributes);
- </entry>
-
- <entry key='database.updateNotification'>
- UPDATE notifications SET
- userId = :userId,
- type = :type,
- attributes = :attributes
- WHERE id = :id;
- </entry>
-
- <entry key='database.deleteNotification'>
- DELETE FROM notifications WHERE id = :id;
- </entry>
-
- <entry key='database.deletePositions'>
- DELETE FROM positions WHERE serverTime &lt; :serverTime AND id NOT IN (SELECT positionId FROM devices);
- </entry>
-
- <!-- PROTOCOL CONFIG -->
-
- <entry key='gps103.port'>5001</entry>
- <entry key='tk103.port'>5002</entry>
- <entry key='gl100.port'>5003</entry>
- <entry key='gl200.port'>5004</entry>
- <entry key='t55.port'>5005</entry>
- <entry key='xexun.port'>5006</entry>
- <entry key='xexun.extended'>false</entry>
- <entry key='totem.port'>5007</entry>
- <entry key='enfora.port'>5008</entry>
- <entry key='meiligao.port'>5009</entry>
- <entry key='trv.port'>5010</entry>
- <entry key='suntech.port'>5011</entry>
- <entry key='progress.port'>5012</entry>
- <entry key='h02.port'>5013</entry>
- <entry key='jt600.port'>5014</entry>
- <entry key='huabao.port'>5015</entry>
- <entry key='v680.port'>5016</entry>
- <entry key='pt502.port'>5017</entry>
- <entry key='tr20.port'>5018</entry>
- <entry key='navis.port'>5019</entry>
- <entry key='meitrack.port'>5020</entry>
- <entry key='skypatrol.port'>5021</entry>
- <entry key='gt02.port'>5022</entry>
- <entry key='gt06.port'>5023</entry>
- <entry key='megastek.port'>5024</entry>
- <entry key='navigil.port'>5025</entry>
- <entry key='gpsgate.port'>5026</entry>
- <entry key='teltonika.port'>5027</entry>
- <entry key='mta6.port'>5028</entry>
- <entry key='tzone.port'>5029</entry>
- <entry key='tlt2h.port'>5030</entry>
- <entry key='taip.port'>5031</entry>
- <entry key='wondex.port'>5032</entry>
- <entry key='cellocator.port'>5033</entry>
- <entry key='galileo.port'>5034</entry>
- <entry key='ywt.port'>5035</entry>
- <entry key='tk102.port'>5036</entry>
- <entry key='intellitrac.port'>5037</entry>
- <entry key='gpsmta.port'>5038</entry>
- <entry key='wialon.port'>5039</entry>
- <entry key='carscop.port'>5040</entry>
- <entry key='apel.port'>5041</entry>
- <entry key='manpower.port'>5042</entry>
- <entry key='globalsat.port'>5043</entry>
- <entry key='atrack.port'>5044</entry>
- <entry key='pt3000.port'>5045</entry>
- <entry key='ruptela.port'>5046</entry>
- <entry key='topflytech.port'>5047</entry>
- <entry key='laipac.port'>5048</entry>
- <entry key='aplicom.port'>5049</entry>
- <entry key='gotop.port'>5050</entry>
- <entry key='sanav.port'>5051</entry>
- <entry key='gator.port'>5052</entry>
- <entry key='noran.port'>5053</entry>
- <entry key='m2m.port'>5054</entry>
- <entry key='osmand.port'>5055</entry>
- <entry key='easytrack.port'>5056</entry>
- <entry key='gpsmarker.port'>5057</entry>
- <entry key='khd.port'>5058</entry>
- <entry key='piligrim.port'>5059</entry>
- <entry key='stl060.port'>5060</entry>
- <entry key='cartrack.port'>5061</entry>
- <entry key='minifinder.port'>5062</entry>
- <entry key='haicom.port'>5063</entry>
- <entry key='eelink.port'>5064</entry>
- <entry key='box.port'>5065</entry>
- <entry key='freedom.port'>5066</entry>
- <entry key='telic.port'>5067</entry>
- <entry key='trackbox.port'>5068</entry>
- <entry key='visiontek.port'>5069</entry>
- <entry key='orion.port'>5070</entry>
- <entry key='riti.port'>5071</entry>
- <entry key='ulbotech.port'>5072</entry>
- <entry key='tramigo.port'>5073</entry>
- <entry key='tr900.port'>5074</entry>
- <entry key='ardi01.port'>5075</entry>
- <entry key='xt013.port'>5076</entry>
- <entry key='autofon.port'>5077</entry>
- <entry key='gosafe.port'>5078</entry>
- <entry key='tt8850.port'>5079</entry>
- <entry key='bce.port'>5080</entry>
- <entry key='xirgo.port'>5081</entry>
- <entry key='calamp.port'>5082</entry>
- <entry key='mtx.port'>5083</entry>
- <entry key='tytan.port'>5084</entry>
- <entry key='avl301.port'>5085</entry>
- <entry key='castel.port'>5086</entry>
- <entry key='mxt.port'>5087</entry>
- <entry key='cityeasy.port'>5088</entry>
- <entry key='aquila.port'>5089</entry>
- <entry key='flextrack.port'>5090</entry>
- <entry key='blackkite.port'>5091</entry>
- <entry key='adm.port'>5092</entry>
- <entry key='watch.port'>5093</entry>
- <entry key='t800x.port'>5094</entry>
- <entry key='upro.port'>5095</entry>
- <entry key='auro.port'>5096</entry>
- <entry key='disha.port'>5097</entry>
- <entry key='thinkrace.port'>5098</entry>
- <entry key='pathaway.port'>5099</entry>
- <entry key='arnavi.port'>5100</entry>
- <entry key='nvs.port'>5101</entry>
- <entry key='kenji.port'>5102</entry>
- <entry key='astra.port'>5103</entry>
- <entry key='homtecs.port'>5104</entry>
- <entry key='fox.port'>5105</entry>
- <entry key='gnx.port'>5106</entry>
- <entry key='arknav.port'>5107</entry>
- <entry key='supermate.port'>5108</entry>
- <entry key='appello.port'>5109</entry>
- <entry key='idpl.port'>5110</entry>
- <entry key='huasheng.port'>5111</entry>
- <entry key='l100.port'>5112</entry>
- <entry key='granit.port'>5113</entry>
- <entry key='carcell.port'>5114</entry>
- <entry key='obddongle.port'>5115</entry>
- <entry key='hunterpro.port'>5116</entry>
- <entry key='raveon.port'>5117</entry>
- <entry key='cradlepoint.port'>5118</entry>
-
-</properties>