diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2016-10-27 16:42:05 +1300 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2016-10-27 16:42:05 +1300 |
commit | 0177128690d52c65d46b56411ff96da62e5388a2 (patch) | |
tree | fc1c8761d7fac7a854749e09cb8edc2bc830de88 | |
parent | b0eac0c99ea3d8e7eb6e5d95d03629460be06927 (diff) | |
download | trackermap-server-0177128690d52c65d46b56411ff96da62e5388a2.tar.gz trackermap-server-0177128690d52c65d46b56411ff96da62e5388a2.tar.bz2 trackermap-server-0177128690d52c65d46b56411ff96da62e5388a2.zip |
Implement default config (fix #2484)
-rw-r--r-- | debug.xml | 469 | ||||
-rw-r--r-- | setup/default.xml | 442 | ||||
-rw-r--r-- | setup/traccar.xml | 386 | ||||
-rw-r--r-- | src/org/traccar/Config.java | 55 |
4 files changed, 505 insertions, 847 deletions
@@ -4,19 +4,22 @@ <properties> + <entry key="config.default">./setup/default.xml</entry> + <!-- SERVER CONFIG --> <entry key='web.enable'>true</entry> - <!--<entry key='web.address'></entry>--> <entry key='web.port'>8082</entry> - <!--<entry key='web.application'>../traccar-web/traccar-web.war</entry> - <entry key='web.old'>true</entry>--> - <entry key='web.path'>traccar-web/web</entry> + <entry key='web.path'>./traccar-web/web</entry> <entry key='web.debug'>true</entry> <entry key='web.console'>true</entry> - <entry key='web.timeout'>30000</entry> - <entry key='geocoder.enable'>true</entry> + <!--<entry key='web.address'></entry> + <entry key='web.application'>../traccar-web/traccar-web.war</entry> + <entry key='web.old'>true</entry> + <entry key='web.timeout'>30000</entry>--> + + <entry key='geocoder.enable'>false</entry> <entry key='geocoder.type'>nominatim</entry> <entry key='geocoder.url'>http://nominatim.openstreetmap.org/reverse</entry> @@ -25,8 +28,6 @@ <entry key='location.mcc'>260</entry> <entry key='location.mnc'>2</entry> - <entry key='distance.enable'>true</entry> - <!--<entry key='filter.enable'>true</entry> <entry key='filter.limit'>3600</entry> <entry key='filter.invalid'>true</entry> @@ -41,465 +42,51 @@ <entry key='logger.level'>all</entry> <entry key='logger.file'>target/tracker-server.log</entry> - <entry key='deviceManager.lookupGroupsAttribute'>true</entry> + <!--<entry key='deviceManager.lookupGroupsAttribute'>true</entry>--> - <entry key='decoder.ignoreSessionCache'>false</entry> + <!--<entry key='decoder.ignoreSessionCache'>false</entry>--> - <entry key='processing.copyAttributes.enable'>false</entry> - <entry key='processing.copyAttributes'>power ignition battery</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> - <entry key='event.statusHandler'>true</entry> + <!--<entry key='processing.copyAttributes.enable'>false</entry> + <entry key='processing.copyAttributes'>power ignition battery</entry>--> <!--<entry key='event.forward.enable'>true</entry> <entry key='event.forward.url'>http://localhost/</entry> - <entry key='event.forward.header'> - Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l - </entry>--> + <entry key='event.forward.header'>Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l</entry>--> <!--<entry key='mail.smtp.host'>smtp.example.com</entry> - for STARTTLS - <entry key='mail.smtp.port'>587</entry> - <entry key='mail.smtp.starttls.enable'>true</entry> - for SSL - <entry key='mail.smtp.port'>465</entry> - <entry key='mail.smtp.ssl.enable'>true</entry> - for self-signed server sertificates - <entry key='mail.smtp.ssl.trust'>smtp.example.com</entry> - <entry key='mail.smtp.from'>traccar@example.com</entry> - <entry key='mail.smtp.auth'>true</entry> <entry key='mail.smtp.username'>traccar@example.com</entry> <entry key='mail.smtp.password'>password</entry>--> + <!--<entry key='mail.smtp.port'>587</entry> + <entry key='mail.smtp.starttls.enable'>true</entry>--> + + <!--<entry key='mail.smtp.port'>465</entry> + <entry key='mail.smtp.ssl.enable'>true</entry>--> + + <!--<entry key='mail.smtp.ssl.trust'>smtp.example.com</entry>--> + <!-- DATABASE CONFIG --> <!--<entry key='database.driverFile'>hsqldb.jar</entry>--> + <entry key='database.driver'>org.h2.Driver</entry> <entry key='database.url'>jdbc:h2:./target/database</entry> <entry key='database.user'>sa</entry> <entry key='database.password'></entry> <entry key='database.ignoreUnknown'>true</entry> - - <!-- Automatically registers unknown devices. --> - <entry key='database.registerUnknown'>false</entry> - - <entry key='database.xml'>false</entry> - <entry key='database.saveOriginal'>true</entry> <entry key='database.changelog'>./schema/changelog-master.xml</entry> - <entry key='database.positionsHistoryDays'>7</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.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, phone, model, contact, category) - VALUES (:name, :uniqueId, :groupId, :attributes, :phone, :model, :contact, :category) - </entry> - - <entry key='database.updateDevice'> - UPDATE devices SET - name = :name, - uniqueId = :uniqueId, - groupId = :groupId, - attributes = :attributes, - phone = :phone, - model = :model, - contact = :contact, - category = :category - 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 serverTime BETWEEN :from AND :to ORDER BY serverTime - </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 < :serverTime AND id NOT IN (SELECT positionId FROM devices) - </entry> - - <entry key='database.selectAttributeAliases'> - SELECT * FROM attribute_aliases - </entry> - - <entry key='database.insertAttributeAlias'> - INSERT INTO attribute_aliases (deviceId, attribute, alias) - VALUES (:deviceId, :attribute, :alias) - </entry> - - <entry key='database.updateAttributeAlias'> - UPDATE attribute_aliases SET - deviceId = :deviceId, - attribute = :attribute, - alias = :alias - WHERE id = :id - </entry> - - <entry key='database.deleteAttributeAlias'> - DELETE FROM attribute_aliases WHERE id = :id - </entry> - - <entry key='database.selectStatistics'> - SELECT * FROM statistics WHERE captureTime BETWEEN :from AND :to ORDER BY captureTime - </entry> - - <entry key='database.insertStatistics'> - INSERT INTO statistics (captureTime, activeUsers, activeDevices, requests, messagesReceived, messagesStored, attributes) - VALUES (:captureTime, :activeUsers, :activeDevices, :requests, :messagesReceived, :messagesStored, :attributes) - </entry> + <!--<entry key='database.registerUnknown'>false</entry> + <entry key='database.xml'>false</entry> + <entry key='database.saveOriginal'>true</entry> + <entry key='database.positionsHistoryDays'>7</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> - <entry key='arknavx8.port'>5119</entry> - <entry key='autograde.port'>5120</entry> - <entry key='oigo.port'>5121</entry> - <entry key='jpkorjar.port'>5122</entry> - <entry key='cguard.port'>5123</entry> - <entry key='fifotrack.port'>5124</entry> - <entry key='smokey.port'>5125</entry> - <entry key='extremtrac.port'>5126</entry> - <entry key='trakmate.port'>5127</entry> + <entry key='intellitrac.port'>6037</entry> </properties> diff --git a/setup/default.xml b/setup/default.xml new file mode 100644 index 000000000..8b1cfaeba --- /dev/null +++ b/setup/default.xml @@ -0,0 +1,442 @@ +<?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'>./logs/tracker-server.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:./data/database</entry> + <entry key='database.user'>sa</entry> + <entry key='database.password'></entry> + + <entry key='database.ignoreUnknown'>true</entry> + + <entry key='database.changelog'>./schema/changelog-master.xml</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.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, phone, model, contact, category) + VALUES (:name, :uniqueId, :groupId, :attributes, :phone, :model, :contact, :category) + </entry> + + <entry key='database.updateDevice'> + UPDATE devices SET + name = :name, + uniqueId = :uniqueId, + groupId = :groupId, + attributes = :attributes, + phone = :phone, + model = :model, + contact = :contact, + category = :category + 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 serverTime BETWEEN :from AND :to ORDER BY serverTime + </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 < :serverTime AND id NOT IN (SELECT positionId FROM devices) + </entry> + + <entry key='database.selectAttributeAliases'> + SELECT * FROM attribute_aliases + </entry> + + <entry key='database.insertAttributeAlias'> + INSERT INTO attribute_aliases (deviceId, attribute, alias) + VALUES (:deviceId, :attribute, :alias) + </entry> + + <entry key='database.updateAttributeAlias'> + UPDATE attribute_aliases SET + deviceId = :deviceId, + attribute = :attribute, + alias = :alias + WHERE id = :id + </entry> + + <entry key='database.deleteAttributeAlias'> + DELETE FROM attribute_aliases WHERE id = :id + </entry> + + <entry key='database.selectStatistics'> + SELECT * FROM statistics WHERE captureTime BETWEEN :from AND :to ORDER BY captureTime + </entry> + + <entry key='database.insertStatistics'> + INSERT INTO statistics (captureTime, activeUsers, activeDevices, requests, messagesReceived, messagesStored, attributes) + VALUES (:captureTime, :activeUsers, :activeDevices, :requests, :messagesReceived, :messagesStored, :attributes) + </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> + <entry key='arknavx8.port'>5119</entry> + <entry key='autograde.port'>5120</entry> + <entry key='oigo.port'>5121</entry> + <entry key='jpkorjar.port'>5122</entry> + <entry key='cguard.port'>5123</entry> + <entry key='fifotrack.port'>5124</entry> + <entry key='smokey.port'>5125</entry> + <entry key='extremtrac.port'>5126</entry> + <entry key='trakmate.port'>5127</entry> + +</properties> diff --git a/setup/traccar.xml b/setup/traccar.xml index c13abb3e2..e4b3e9167 100644 --- a/setup/traccar.xml +++ b/setup/traccar.xml @@ -4,390 +4,6 @@ <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'>./logs/tracker-server.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:./data/database</entry> - <entry key='database.user'>sa</entry> - <entry key='database.password'></entry> - - <entry key='database.ignoreUnknown'>true</entry> - - <entry key='database.changelog'>./schema/changelog-master.xml</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.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.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 < :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> + <entry key="config.default">./conf/default.xml</entry> </properties> diff --git a/src/org/traccar/Config.java b/src/org/traccar/Config.java index 7fd725734..e63444f1f 100644 --- a/src/org/traccar/Config.java +++ b/src/org/traccar/Config.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2015 - 2016 Anton Tananaev (anton.tananaev@gmail.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,19 +23,44 @@ import java.util.Properties; public class Config { private final Properties properties = new Properties(); + private Properties defaultProperties; public void load(String file) throws IOException { try (InputStream inputStream = new FileInputStream(file)) { properties.loadFromXML(inputStream); } + + String defaultConfigFile = properties.getProperty("config.default"); + if (defaultConfigFile != null) { + try (InputStream inputStream = new FileInputStream(defaultConfigFile)) { + defaultProperties = new Properties(); + defaultProperties.loadFromXML(inputStream); + } + } } public boolean hasKey(String key) { - return properties.containsKey(key); + return properties.containsKey(key) || (defaultProperties != null && defaultProperties.containsKey(key)); + } + + public String getString(String key) { + if (properties.containsKey(key) || defaultProperties == null) { + return properties.getProperty(key); + } else { + return defaultProperties.getProperty(key); + } + } + + public String getString(String key, String defaultValue) { + if (hasKey(key)) { + return getString(key); + } else { + return defaultValue; + } } public boolean getBoolean(String key) { - return Boolean.parseBoolean(properties.getProperty(key)); + return Boolean.parseBoolean(getString(key)); } public int getInteger(String key) { @@ -43,8 +68,8 @@ public class Config { } public int getInteger(String key, int defaultValue) { - if (properties.containsKey(key)) { - return Integer.parseInt(properties.getProperty(key)); + if (hasKey(key)) { + return Integer.parseInt(getString(key)); } else { return defaultValue; } @@ -55,20 +80,8 @@ public class Config { } public long getLong(String key, long defaultValue) { - if (properties.containsKey(key)) { - return Long.parseLong(properties.getProperty(key)); - } else { - return defaultValue; - } - } - - public String getString(String key) { - return properties.getProperty(key); - } - - public String getString(String key, String defaultValue) { - if (properties.containsKey(key)) { - return properties.getProperty(key); + if (hasKey(key)) { + return Long.parseLong(getString(key)); } else { return defaultValue; } @@ -79,8 +92,8 @@ public class Config { } public double getDouble(String key, double defaultValue) { - if (properties.containsKey(key)) { - return Double.parseDouble(properties.getProperty(key)); + if (hasKey(key)) { + return Double.parseDouble(getString(key)); } else { return defaultValue; } |