From 0c49e826a765abeef3e2c9f4d25fbbab5af1b18b Mon Sep 17 00:00:00 2001 From: jcardus Date: Mon, 20 Jan 2020 19:29:54 +0000 Subject: here geocoder url config parameter --- src/main/java/org/traccar/MainModule.java | 2 +- src/main/java/org/traccar/geocoder/HereGeocoder.java | 7 +++---- src/test/java/org/traccar/geocoder/GeocoderTest.java | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/traccar/MainModule.java b/src/main/java/org/traccar/MainModule.java index 9adea61b0..0957d9fe3 100644 --- a/src/main/java/org/traccar/MainModule.java +++ b/src/main/java/org/traccar/MainModule.java @@ -170,7 +170,7 @@ public class MainModule extends AbstractModule { case "ban": return new BanGeocoder(cacheSize, addressFormat); case "here": - return new HereGeocoder(id, key, language, cacheSize, addressFormat); + return new HereGeocoder(url, id, key, language, cacheSize, addressFormat); case "mapmyindia": return new MapmyIndiaGeocoder(url, key, cacheSize, addressFormat); default: diff --git a/src/main/java/org/traccar/geocoder/HereGeocoder.java b/src/main/java/org/traccar/geocoder/HereGeocoder.java index 756260b52..7f0598765 100644 --- a/src/main/java/org/traccar/geocoder/HereGeocoder.java +++ b/src/main/java/org/traccar/geocoder/HereGeocoder.java @@ -19,8 +19,7 @@ import javax.json.JsonObject; public class HereGeocoder extends JsonGeocoder { - private static String formatUrl(String id, String key, String language) { - String url = "https://reverse.geocoder.api.here.com/6.2/reversegeocode.json"; + private static String formatUrl(String url, String id, String key, String language) { url += "?mode=retrieveAddresses&maxresults=1"; url += "&prox=%f,%f,0"; url += "&app_id=" + id; @@ -31,8 +30,8 @@ public class HereGeocoder extends JsonGeocoder { return url; } - public HereGeocoder(String id, String key, String language, int cacheSize, AddressFormat addressFormat) { - super(formatUrl(id, key, language), cacheSize, addressFormat); + public HereGeocoder(String url, String id, String key, String language, int cacheSize, AddressFormat addressFormat) { + super(formatUrl(url, id, key, language), cacheSize, addressFormat); } @Override diff --git a/src/test/java/org/traccar/geocoder/GeocoderTest.java b/src/test/java/org/traccar/geocoder/GeocoderTest.java index 85d9bf62f..407779be8 100644 --- a/src/test/java/org/traccar/geocoder/GeocoderTest.java +++ b/src/test/java/org/traccar/geocoder/GeocoderTest.java @@ -73,7 +73,7 @@ public class GeocoderTest { @Ignore @Test public void testHere() { - Geocoder geocoder = new HereGeocoder("", "", null, 0, new AddressFormat()); + Geocoder geocoder = new HereGeocoder("https://reverse.geocoder.ls.hereapi.com/6.2/reversegeocode.json", "", "", null, 0, new AddressFormat()); String address = geocoder.getAddress(48.8575, 2.2944, null); assertEquals("6 Avenue Gustave Eiffel, Paris, Île-de-France, FRA", address); } -- cgit v1.2.3 From 287500912a9909b67017704da487eb33106ff9e9 Mon Sep 17 00:00:00 2001 From: jcardus Date: Mon, 20 Jan 2020 19:39:38 +0000 Subject: here geocoder url config parameter --- src/main/java/org/traccar/geocoder/HereGeocoder.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/traccar/geocoder/HereGeocoder.java b/src/main/java/org/traccar/geocoder/HereGeocoder.java index 7f0598765..2010d360c 100644 --- a/src/main/java/org/traccar/geocoder/HereGeocoder.java +++ b/src/main/java/org/traccar/geocoder/HereGeocoder.java @@ -30,7 +30,8 @@ public class HereGeocoder extends JsonGeocoder { return url; } - public HereGeocoder(String url, String id, String key, String language, int cacheSize, AddressFormat addressFormat) { + public HereGeocoder(String url, String id, String key, String language, + int cacheSize, AddressFormat addressFormat) { super(formatUrl(url, id, key, language), cacheSize, addressFormat); } -- cgit v1.2.3 From 3cb539716714b08056a8751493e8a82bcdcf2764 Mon Sep 17 00:00:00 2001 From: jcardus Date: Tue, 21 Jan 2020 16:50:59 +0000 Subject: added new parameter apiKey and kept app_code for retro compatibility added default url for here --- src/main/java/org/traccar/geocoder/HereGeocoder.java | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/traccar/geocoder/HereGeocoder.java b/src/main/java/org/traccar/geocoder/HereGeocoder.java index 2010d360c..a204ddfab 100644 --- a/src/main/java/org/traccar/geocoder/HereGeocoder.java +++ b/src/main/java/org/traccar/geocoder/HereGeocoder.java @@ -20,14 +20,18 @@ import javax.json.JsonObject; public class HereGeocoder extends JsonGeocoder { private static String formatUrl(String url, String id, String key, String language) { - url += "?mode=retrieveAddresses&maxresults=1"; - url += "&prox=%f,%f,0"; - url += "&app_id=" + id; - url += "&app_code=" + key; - if (language != null) { - url += "&language=" + language; - } - return url; + if (url == null) { + url = "https://reverse.geocoder.ls.hereapi.com/6.2/reversegeocode.json"; + } + url += "?mode=retrieveAddresses&maxresults=1"; + url += "&prox=%f,%f,0"; + url += "&app_id=" + id; + url += "&app_code=" + key; + url += "&apiKey=" + key; + if (language != null) { + url += "&language=" + language; + } + return url; } public HereGeocoder(String url, String id, String key, String language, -- cgit v1.2.3 From 940e493110a59e9dcfbef35c805702a21545033c Mon Sep 17 00:00:00 2001 From: jcardus Date: Tue, 21 Jan 2020 17:59:20 +0000 Subject: fixed ident removed url from here geocode test --- src/main/java/org/traccar/geocoder/HereGeocoder.java | 8 ++++---- src/test/java/org/traccar/geocoder/GeocoderTest.java | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/traccar/geocoder/HereGeocoder.java b/src/main/java/org/traccar/geocoder/HereGeocoder.java index a204ddfab..0f67a1930 100644 --- a/src/main/java/org/traccar/geocoder/HereGeocoder.java +++ b/src/main/java/org/traccar/geocoder/HereGeocoder.java @@ -29,14 +29,14 @@ public class HereGeocoder extends JsonGeocoder { url += "&app_code=" + key; url += "&apiKey=" + key; if (language != null) { - url += "&language=" + language; + url += "&language=" + language; } return url; } - public HereGeocoder(String url, String id, String key, String language, - int cacheSize, AddressFormat addressFormat) { - super(formatUrl(url, id, key, language), cacheSize, addressFormat); + public HereGeocoder( + String url, String id, String key, String language, int cacheSize, AddressFormat addressFormat) { + super(formatUrl(url, id, key, language), cacheSize, addressFormat); } @Override diff --git a/src/test/java/org/traccar/geocoder/GeocoderTest.java b/src/test/java/org/traccar/geocoder/GeocoderTest.java index 407779be8..3fb6d6162 100644 --- a/src/test/java/org/traccar/geocoder/GeocoderTest.java +++ b/src/test/java/org/traccar/geocoder/GeocoderTest.java @@ -73,7 +73,7 @@ public class GeocoderTest { @Ignore @Test public void testHere() { - Geocoder geocoder = new HereGeocoder("https://reverse.geocoder.ls.hereapi.com/6.2/reversegeocode.json", "", "", null, 0, new AddressFormat()); + Geocoder geocoder = new HereGeocoder("", "", "", null, 0, new AddressFormat()); String address = geocoder.getAddress(48.8575, 2.2944, null); assertEquals("6 Avenue Gustave Eiffel, Paris, Île-de-France, FRA", address); } -- cgit v1.2.3 From 19840bea407c505147181805c4f036f224f2f90c Mon Sep 17 00:00:00 2001 From: jcardus Date: Tue, 21 Jan 2020 18:07:36 +0000 Subject: fixed ident intellij uses 2 spaces, this project uses 4. --- .../java/org/traccar/geocoder/HereGeocoder.java | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/traccar/geocoder/HereGeocoder.java b/src/main/java/org/traccar/geocoder/HereGeocoder.java index 0f67a1930..95dc75796 100644 --- a/src/main/java/org/traccar/geocoder/HereGeocoder.java +++ b/src/main/java/org/traccar/geocoder/HereGeocoder.java @@ -20,23 +20,23 @@ import javax.json.JsonObject; public class HereGeocoder extends JsonGeocoder { private static String formatUrl(String url, String id, String key, String language) { - if (url == null) { - url = "https://reverse.geocoder.ls.hereapi.com/6.2/reversegeocode.json"; - } - url += "?mode=retrieveAddresses&maxresults=1"; - url += "&prox=%f,%f,0"; - url += "&app_id=" + id; - url += "&app_code=" + key; - url += "&apiKey=" + key; - if (language != null) { - url += "&language=" + language; - } - return url; + if (url == null) { + url = "https://reverse.geocoder.ls.hereapi.com/6.2/reversegeocode.json"; + } + url += "?mode=retrieveAddresses&maxresults=1"; + url += "&prox=%f,%f,0"; + url += "&app_id=" + id; + url += "&app_code=" + key; + url += "&apiKey=" + key; + if (language != null) { + url += "&language=" + language; + } + return url; } public HereGeocoder( - String url, String id, String key, String language, int cacheSize, AddressFormat addressFormat) { - super(formatUrl(url, id, key, language), cacheSize, addressFormat); + String url, String id, String key, String language, int cacheSize, AddressFormat addressFormat) { + super(formatUrl(url, id, key, language), cacheSize, addressFormat); } @Override -- cgit v1.2.3 From 6a29b82370b02a811d4285c20eacb106ebed66d3 Mon Sep 17 00:00:00 2001 From: jcardus Date: Tue, 21 Jan 2020 18:09:53 +0000 Subject: fixed ident intellij uses 2 spaces, this project uses 4. --- src/main/java/org/traccar/geocoder/HereGeocoder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/traccar/geocoder/HereGeocoder.java b/src/main/java/org/traccar/geocoder/HereGeocoder.java index 95dc75796..aaf11d74d 100644 --- a/src/main/java/org/traccar/geocoder/HereGeocoder.java +++ b/src/main/java/org/traccar/geocoder/HereGeocoder.java @@ -29,7 +29,7 @@ public class HereGeocoder extends JsonGeocoder { url += "&app_code=" + key; url += "&apiKey=" + key; if (language != null) { - url += "&language=" + language; + url += "&language=" + language; } return url; } -- cgit v1.2.3 From d9dd6e004c14211a51f508028d4cc7a7253febd1 Mon Sep 17 00:00:00 2001 From: jcardus Date: Tue, 21 Jan 2020 18:14:20 +0000 Subject: url should be null not "" --- .../java/org/traccar/geocoder/GeocoderTest.java | 2 +- tools/default.xml | 288 +++++++++++++++++++++ 2 files changed, 289 insertions(+), 1 deletion(-) create mode 100644 tools/default.xml diff --git a/src/test/java/org/traccar/geocoder/GeocoderTest.java b/src/test/java/org/traccar/geocoder/GeocoderTest.java index 3fb6d6162..9f59d0b23 100644 --- a/src/test/java/org/traccar/geocoder/GeocoderTest.java +++ b/src/test/java/org/traccar/geocoder/GeocoderTest.java @@ -73,7 +73,7 @@ public class GeocoderTest { @Ignore @Test public void testHere() { - Geocoder geocoder = new HereGeocoder("", "", "", null, 0, new AddressFormat()); + Geocoder geocoder = new HereGeocoder(null, "", "", null, 0, new AddressFormat()); String address = geocoder.getAddress(48.8575, 2.2944, null); assertEquals("6 Avenue Gustave Eiffel, Paris, Île-de-France, FRA", address); } diff --git a/tools/default.xml b/tools/default.xml new file mode 100644 index 000000000..3851287c3 --- /dev/null +++ b/tools/default.xml @@ -0,0 +1,288 @@ + + + + + + + + + false + 8082 + ./web + max-age=3600,public + + true + google + + true + info + ./logs/tracker-server.log + true + + true + 86400 + + false + true + true + true + + ./media + + web,mail + + https://www.traccar.org/analytics/ + + true + + true + false + ./schema/changelog-master.xml + + + SELECT * FROM tc_users + WHERE email = :email OR login = :email + + + + SELECT * FROM tc_positions WHERE deviceId = :deviceId AND fixTime BETWEEN :from AND :to ORDER BY fixTime + + + + SELECT tc_positions.* FROM tc_positions INNER JOIN tc_devices ON tc_positions.id = tc_devices.positionid; + + + + UPDATE tc_devices SET positionId = :id WHERE id = :deviceId + + + + SELECT * FROM tc_events WHERE deviceId = :deviceId AND serverTime BETWEEN :from AND :to ORDER BY serverTime + + + + DELETE FROM tc_positions WHERE serverTime < :serverTime AND id NOT IN (SELECT positionId FROM tc_devices WHERE positionId IS NOT NULL) + + + + DELETE FROM tc_events WHERE serverTime < :serverTime + + + + SELECT * FROM tc_statistics WHERE captureTime BETWEEN :from AND :to ORDER BY captureTime + + + 5001 + 5002 + 5003 + 5004 + 5005 + 5006 + false + 5007 + 5008 + 5009 + 5010 + 5011 + 5012 + 5013 + 5014 + 5015 + 5016 + 5017 + 5018 + 5019 + 5020 + 5021 + 5022 + 5023 + 5024 + 5025 + 5026 + 5027 + 5028 + 5029 + 5030 + 5031 + 5032 + 5033 + 5034 + 5035 + 5036 + 5037 + 5038 + 5039 + 5040 + 5041 + 5042 + 5043 + 5044 + 5045 + 5046 + 5047 + 5048 + 5049 + 5050 + 5051 + 5052 + 5053 + 5054 + 5055 + 5056 + 5057 + 5058 + 5059 + 5060 + 5061 + 5062 + 5063 + 5064 + 5065 + 5066 + 5067 + 5068 + 5069 + 5070 + 5071 + 5072 + 5073 + 5074 + 5075 + 5076 + 5077 + 5078 + 5079 + 5080 + 5081 + 5082 + 5083 + 5084 + 5085 + 5086 + 5087 + 5088 + 5089 + 5090 + 5091 + 5092 + 5093 + 5094 + 5095 + 5096 + 5097 + 5098 + 5099 + 5100 + 5101 + 5102 + 5103 + 5104 + 5105 + 5106 + 5107 + 5108 + 5109 + 5110 + 5111 + 5112 + 5113 + 5114 + 5115 + 5116 + 5117 + 5118 + 5119 + 5120 + 5121 + 5122 + 5123 + 5124 + 5125 + 5126 + 5127 + 5128 + 5129 + 5130 + 5131 + 5132 + 5133 + 5134 + 5135 + 5136 + 5137 + 5138 + 5139 + 5140 + 5141 + 5142 + 5143 + 5144 + 5145 + 5146 + 5147 + 5148 + 5149 + 5150 + 5151 + 5152 + 5153 + 5154 + 5155 + 5156 + 5157 + 5158 + 5159 + 5160 + 5161 + 5162 + 5163 + 5164 + 5165 + 5166 + 5167 + 5168 + 5169 + 5170 + 5171 + 5172 + 5173 + 5174 + 5175 + 5176 + 5177 + 5178 + 5179 + 5180 + 5181 + 5182 + 5183 + 5184 + 5185 + 5186 + 5187 + 5188 + 5189 + 5190 + 5191 + 5192 + 5193 + 5194 + 5195 + 5196 + 5197 + 5198 + 5199 + 5200 + 5201 + 5202 + 5203 + 5204 + 5205 + 5206 + 5207 + + -- cgit v1.2.3 From 7b669e3181f637f06b31b55bd930584c7b08e897 Mon Sep 17 00:00:00 2001 From: jcardus Date: Tue, 21 Jan 2020 18:19:23 +0000 Subject: wrong file --- tools/default.xml | 288 ------------------------------------------------------ 1 file changed, 288 deletions(-) delete mode 100644 tools/default.xml diff --git a/tools/default.xml b/tools/default.xml deleted file mode 100644 index 3851287c3..000000000 --- a/tools/default.xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - false - 8082 - ./web - max-age=3600,public - - true - google - - true - info - ./logs/tracker-server.log - true - - true - 86400 - - false - true - true - true - - ./media - - web,mail - - https://www.traccar.org/analytics/ - - true - - true - false - ./schema/changelog-master.xml - - - SELECT * FROM tc_users - WHERE email = :email OR login = :email - - - - SELECT * FROM tc_positions WHERE deviceId = :deviceId AND fixTime BETWEEN :from AND :to ORDER BY fixTime - - - - SELECT tc_positions.* FROM tc_positions INNER JOIN tc_devices ON tc_positions.id = tc_devices.positionid; - - - - UPDATE tc_devices SET positionId = :id WHERE id = :deviceId - - - - SELECT * FROM tc_events WHERE deviceId = :deviceId AND serverTime BETWEEN :from AND :to ORDER BY serverTime - - - - DELETE FROM tc_positions WHERE serverTime < :serverTime AND id NOT IN (SELECT positionId FROM tc_devices WHERE positionId IS NOT NULL) - - - - DELETE FROM tc_events WHERE serverTime < :serverTime - - - - SELECT * FROM tc_statistics WHERE captureTime BETWEEN :from AND :to ORDER BY captureTime - - - 5001 - 5002 - 5003 - 5004 - 5005 - 5006 - false - 5007 - 5008 - 5009 - 5010 - 5011 - 5012 - 5013 - 5014 - 5015 - 5016 - 5017 - 5018 - 5019 - 5020 - 5021 - 5022 - 5023 - 5024 - 5025 - 5026 - 5027 - 5028 - 5029 - 5030 - 5031 - 5032 - 5033 - 5034 - 5035 - 5036 - 5037 - 5038 - 5039 - 5040 - 5041 - 5042 - 5043 - 5044 - 5045 - 5046 - 5047 - 5048 - 5049 - 5050 - 5051 - 5052 - 5053 - 5054 - 5055 - 5056 - 5057 - 5058 - 5059 - 5060 - 5061 - 5062 - 5063 - 5064 - 5065 - 5066 - 5067 - 5068 - 5069 - 5070 - 5071 - 5072 - 5073 - 5074 - 5075 - 5076 - 5077 - 5078 - 5079 - 5080 - 5081 - 5082 - 5083 - 5084 - 5085 - 5086 - 5087 - 5088 - 5089 - 5090 - 5091 - 5092 - 5093 - 5094 - 5095 - 5096 - 5097 - 5098 - 5099 - 5100 - 5101 - 5102 - 5103 - 5104 - 5105 - 5106 - 5107 - 5108 - 5109 - 5110 - 5111 - 5112 - 5113 - 5114 - 5115 - 5116 - 5117 - 5118 - 5119 - 5120 - 5121 - 5122 - 5123 - 5124 - 5125 - 5126 - 5127 - 5128 - 5129 - 5130 - 5131 - 5132 - 5133 - 5134 - 5135 - 5136 - 5137 - 5138 - 5139 - 5140 - 5141 - 5142 - 5143 - 5144 - 5145 - 5146 - 5147 - 5148 - 5149 - 5150 - 5151 - 5152 - 5153 - 5154 - 5155 - 5156 - 5157 - 5158 - 5159 - 5160 - 5161 - 5162 - 5163 - 5164 - 5165 - 5166 - 5167 - 5168 - 5169 - 5170 - 5171 - 5172 - 5173 - 5174 - 5175 - 5176 - 5177 - 5178 - 5179 - 5180 - 5181 - 5182 - 5183 - 5184 - 5185 - 5186 - 5187 - 5188 - 5189 - 5190 - 5191 - 5192 - 5193 - 5194 - 5195 - 5196 - 5197 - 5198 - 5199 - 5200 - 5201 - 5202 - 5203 - 5204 - 5205 - 5206 - 5207 - - -- cgit v1.2.3 From 37810b5062a4b5ea7e1b92800186c03a5817471f Mon Sep 17 00:00:00 2001 From: jcardus Date: Wed, 25 Mar 2020 19:09:42 +0000 Subject: compression on jetty --- src/main/java/org/traccar/web/WebServer.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/traccar/web/WebServer.java b/src/main/java/org/traccar/web/WebServer.java index 70fef4ed3..daa46b926 100644 --- a/src/main/java/org/traccar/web/WebServer.java +++ b/src/main/java/org/traccar/web/WebServer.java @@ -22,6 +22,7 @@ import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.ErrorHandler; import org.eclipse.jetty.server.handler.HandlerList; +import org.eclipse.jetty.server.handler.gzip.GzipHandler; import org.eclipse.jetty.servlet.DefaultServlet; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; @@ -97,7 +98,9 @@ public class WebServer { HandlerList handlers = new HandlerList(); initClientProxy(config, handlers); handlers.addHandler(servletHandler); - server.setHandler(handlers); + GzipHandler gzipHandler = new GzipHandler(); + gzipHandler.setHandler(handlers); + server.setHandler(gzipHandler); } private void initClientProxy(Config config, HandlerList handlers) { -- cgit v1.2.3 From 2ee38015efa72f384be1a0d66f46b3cbe08d6c88 Mon Sep 17 00:00:00 2001 From: jcardus Date: Wed, 25 Mar 2020 19:19:42 +0000 Subject: falcom protocol --- .../java/org/traccar/protocol/FalcomProtocol.java | 47 +++++++++ .../traccar/protocol/FalcomProtocolDecoder.java | 114 +++++++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 src/main/java/org/traccar/protocol/FalcomProtocol.java create mode 100644 src/main/java/org/traccar/protocol/FalcomProtocolDecoder.java diff --git a/src/main/java/org/traccar/protocol/FalcomProtocol.java b/src/main/java/org/traccar/protocol/FalcomProtocol.java new file mode 100644 index 000000000..f8ec31dbf --- /dev/null +++ b/src/main/java/org/traccar/protocol/FalcomProtocol.java @@ -0,0 +1,47 @@ +/* + * Copyright 2015 - 2018 Anton Tananaev (anton@traccar.org) + * + * 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. + */ +package org.traccar.protocol; + +import io.netty.handler.codec.LineBasedFrameDecoder; +import io.netty.handler.codec.string.StringDecoder; +import io.netty.handler.codec.string.StringEncoder; +import org.traccar.BaseProtocol; +import org.traccar.PipelineBuilder; +import org.traccar.TrackerServer; + +public class FalcomProtocol extends BaseProtocol { + + public FalcomProtocol() { + addServer(new TrackerServer(false, getName()) { + @Override + protected void addProtocolHandlers(PipelineBuilder pipeline) { + pipeline.addLast(new LineBasedFrameDecoder(1024)); + pipeline.addLast(new StringDecoder()); + pipeline.addLast(new StringEncoder()); + pipeline.addLast(new FalcomProtocolDecoder(FalcomProtocol.this)); + } + }); + addServer(new TrackerServer(true, getName()) { + @Override + protected void addProtocolHandlers(PipelineBuilder pipeline) { + pipeline.addLast(new StringDecoder()); + pipeline.addLast(new StringEncoder()); + pipeline.addLast(new FalcomProtocolDecoder(FalcomProtocol.this)); + } + }); + } + +} diff --git a/src/main/java/org/traccar/protocol/FalcomProtocolDecoder.java b/src/main/java/org/traccar/protocol/FalcomProtocolDecoder.java new file mode 100644 index 000000000..2dc2b09f3 --- /dev/null +++ b/src/main/java/org/traccar/protocol/FalcomProtocolDecoder.java @@ -0,0 +1,114 @@ +/* + * Copyright 2012 - 2018 Anton Tananaev (anton@traccar.org) + * + * 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. + */ +package org.traccar.protocol; + +import io.netty.channel.Channel; +import org.traccar.BaseProtocolDecoder; +import org.traccar.DeviceSession; +import org.traccar.Protocol; +import org.traccar.helper.DateBuilder; +import org.traccar.helper.Parser; +import org.traccar.helper.PatternBuilder; +import org.traccar.model.Position; + +import java.net.SocketAddress; +import java.util.regex.Pattern; + +public class FalcomProtocolDecoder extends BaseProtocolDecoder { + + public FalcomProtocolDecoder(Protocol protocol) { + super(protocol); + } + + private static final Pattern PATTERN = new PatternBuilder() + .text("$T0001,") + .number("(d+),") // event (int) + .number("(dd).(dd).(dddd),") // date (31.12.2019) + .number("(dd):(dd):(dd),") // time (11:22:33) + .number("(-?d+.d+),") // latitude (d.d) + .number("(-?d+.d+),") // longitude (d.d) + .number("(d+),") // speed (int) + .number("(d+.d+),") // course (double) + .number("(d+),") // fix (int) + .number("(d+),") // satellites (int) + .number("(d+.d+),") // power (double) + .number("(d+),") // ignition (int) + .number("(x+)*") // ignition (int) + //.expression("([0-9a-fA-F]{8})*") // driverkey + .any() + .compile(); + + private Position decodeT0001(DeviceSession deviceSession, String sentence) { + + Parser parser = new Parser(PATTERN, sentence); + + if (!parser.matches()) { + return null; + } + + Position position = new Position(getProtocolName()); + + position.setDeviceId(deviceSession.getDeviceId()); + position.set(Position.KEY_EVENT, parser.nextInt(0)); + DateBuilder dateBuilder = new DateBuilder() + .setDateReverse(parser.nextInt(0), parser.nextInt(0), parser.nextInt(0)) + .setTime(parser.nextInt(0), parser.nextInt(0), parser.nextInt(0)); + position.setTime(dateBuilder.getDate()); + position.setLatitude(parser.nextDouble()); + position.setLongitude(parser.nextDouble()); + position.setSpeed(parser.nextInt(0) * 1.94384449); //m/s to knot + position.setCourse(Math.round(parser.nextDouble())); + position.setValid(parser.nextInt() > 0); + position.set(Position.KEY_SATELLITES, Math.round(parser.nextInt())); + position.set(Position.KEY_POWER, parser.nextDouble()); + position.set(Position.KEY_IGNITION, parser.nextInt() == 1); + position.set(Position.KEY_DRIVER_UNIQUE_ID, parser.next()); + + return position; + } + + @Override + protected Object decode( + Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { + + String sentence = (String) msg; + + DeviceSession deviceSession; + + if (!sentence.startsWith("$") && sentence.contains("$")) { + int index = sentence.indexOf("$"); + String id = sentence.substring(0, index); + if (id.endsWith(",")) { + id = id.substring(0, id.length() - 1); + } else if (id.endsWith("/")) { + id = id.substring(id.indexOf('/') + 1, id.length() - 1); + } + deviceSession = getDeviceSession(channel, remoteAddress, id); + sentence = sentence.substring(index); + } else { + deviceSession = getDeviceSession(channel, remoteAddress); + } + + if (sentence.startsWith("$IMEI")) { + getDeviceSession(channel, remoteAddress, sentence.substring(6)); + } else if (sentence.startsWith("$T0001")) { + return decodeT0001(deviceSession, sentence); + } + + return null; + } + +} -- cgit v1.2.3 From bf77eadf252b999d36e6546cf5ccd7852ffaefe0 Mon Sep 17 00:00:00 2001 From: jcardus Date: Wed, 25 Mar 2020 21:14:42 +0000 Subject: compression on jetty --- .../java/org/traccar/protocol/FalcomProtocol.java | 47 --------- .../traccar/protocol/FalcomProtocolDecoder.java | 114 --------------------- 2 files changed, 161 deletions(-) delete mode 100644 src/main/java/org/traccar/protocol/FalcomProtocol.java delete mode 100644 src/main/java/org/traccar/protocol/FalcomProtocolDecoder.java diff --git a/src/main/java/org/traccar/protocol/FalcomProtocol.java b/src/main/java/org/traccar/protocol/FalcomProtocol.java deleted file mode 100644 index f8ec31dbf..000000000 --- a/src/main/java/org/traccar/protocol/FalcomProtocol.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2015 - 2018 Anton Tananaev (anton@traccar.org) - * - * 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. - */ -package org.traccar.protocol; - -import io.netty.handler.codec.LineBasedFrameDecoder; -import io.netty.handler.codec.string.StringDecoder; -import io.netty.handler.codec.string.StringEncoder; -import org.traccar.BaseProtocol; -import org.traccar.PipelineBuilder; -import org.traccar.TrackerServer; - -public class FalcomProtocol extends BaseProtocol { - - public FalcomProtocol() { - addServer(new TrackerServer(false, getName()) { - @Override - protected void addProtocolHandlers(PipelineBuilder pipeline) { - pipeline.addLast(new LineBasedFrameDecoder(1024)); - pipeline.addLast(new StringDecoder()); - pipeline.addLast(new StringEncoder()); - pipeline.addLast(new FalcomProtocolDecoder(FalcomProtocol.this)); - } - }); - addServer(new TrackerServer(true, getName()) { - @Override - protected void addProtocolHandlers(PipelineBuilder pipeline) { - pipeline.addLast(new StringDecoder()); - pipeline.addLast(new StringEncoder()); - pipeline.addLast(new FalcomProtocolDecoder(FalcomProtocol.this)); - } - }); - } - -} diff --git a/src/main/java/org/traccar/protocol/FalcomProtocolDecoder.java b/src/main/java/org/traccar/protocol/FalcomProtocolDecoder.java deleted file mode 100644 index 2dc2b09f3..000000000 --- a/src/main/java/org/traccar/protocol/FalcomProtocolDecoder.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright 2012 - 2018 Anton Tananaev (anton@traccar.org) - * - * 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. - */ -package org.traccar.protocol; - -import io.netty.channel.Channel; -import org.traccar.BaseProtocolDecoder; -import org.traccar.DeviceSession; -import org.traccar.Protocol; -import org.traccar.helper.DateBuilder; -import org.traccar.helper.Parser; -import org.traccar.helper.PatternBuilder; -import org.traccar.model.Position; - -import java.net.SocketAddress; -import java.util.regex.Pattern; - -public class FalcomProtocolDecoder extends BaseProtocolDecoder { - - public FalcomProtocolDecoder(Protocol protocol) { - super(protocol); - } - - private static final Pattern PATTERN = new PatternBuilder() - .text("$T0001,") - .number("(d+),") // event (int) - .number("(dd).(dd).(dddd),") // date (31.12.2019) - .number("(dd):(dd):(dd),") // time (11:22:33) - .number("(-?d+.d+),") // latitude (d.d) - .number("(-?d+.d+),") // longitude (d.d) - .number("(d+),") // speed (int) - .number("(d+.d+),") // course (double) - .number("(d+),") // fix (int) - .number("(d+),") // satellites (int) - .number("(d+.d+),") // power (double) - .number("(d+),") // ignition (int) - .number("(x+)*") // ignition (int) - //.expression("([0-9a-fA-F]{8})*") // driverkey - .any() - .compile(); - - private Position decodeT0001(DeviceSession deviceSession, String sentence) { - - Parser parser = new Parser(PATTERN, sentence); - - if (!parser.matches()) { - return null; - } - - Position position = new Position(getProtocolName()); - - position.setDeviceId(deviceSession.getDeviceId()); - position.set(Position.KEY_EVENT, parser.nextInt(0)); - DateBuilder dateBuilder = new DateBuilder() - .setDateReverse(parser.nextInt(0), parser.nextInt(0), parser.nextInt(0)) - .setTime(parser.nextInt(0), parser.nextInt(0), parser.nextInt(0)); - position.setTime(dateBuilder.getDate()); - position.setLatitude(parser.nextDouble()); - position.setLongitude(parser.nextDouble()); - position.setSpeed(parser.nextInt(0) * 1.94384449); //m/s to knot - position.setCourse(Math.round(parser.nextDouble())); - position.setValid(parser.nextInt() > 0); - position.set(Position.KEY_SATELLITES, Math.round(parser.nextInt())); - position.set(Position.KEY_POWER, parser.nextDouble()); - position.set(Position.KEY_IGNITION, parser.nextInt() == 1); - position.set(Position.KEY_DRIVER_UNIQUE_ID, parser.next()); - - return position; - } - - @Override - protected Object decode( - Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { - - String sentence = (String) msg; - - DeviceSession deviceSession; - - if (!sentence.startsWith("$") && sentence.contains("$")) { - int index = sentence.indexOf("$"); - String id = sentence.substring(0, index); - if (id.endsWith(",")) { - id = id.substring(0, id.length() - 1); - } else if (id.endsWith("/")) { - id = id.substring(id.indexOf('/') + 1, id.length() - 1); - } - deviceSession = getDeviceSession(channel, remoteAddress, id); - sentence = sentence.substring(index); - } else { - deviceSession = getDeviceSession(channel, remoteAddress); - } - - if (sentence.startsWith("$IMEI")) { - getDeviceSession(channel, remoteAddress, sentence.substring(6)); - } else if (sentence.startsWith("$T0001")) { - return decodeT0001(deviceSession, sentence); - } - - return null; - } - -} -- cgit v1.2.3 From faa35f608eff1225d35794d0a38398897940d802 Mon Sep 17 00:00:00 2001 From: jcardus Date: Wed, 25 Mar 2020 21:33:35 +0000 Subject: compression on jetty --- src/main/java/org/traccar/web/WebServer.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/traccar/web/WebServer.java b/src/main/java/org/traccar/web/WebServer.java index daa46b926..92548d218 100644 --- a/src/main/java/org/traccar/web/WebServer.java +++ b/src/main/java/org/traccar/web/WebServer.java @@ -95,12 +95,13 @@ public class WebServer { } }); + GzipHandler gzipHandler = new GzipHandler(); + HandlerList handlers = new HandlerList(); initClientProxy(config, handlers); handlers.addHandler(servletHandler); - GzipHandler gzipHandler = new GzipHandler(); - gzipHandler.setHandler(handlers); - server.setHandler(gzipHandler); + handlers.addHandler(gzipHandler); + server.setHandler(handlers); } private void initClientProxy(Config config, HandlerList handlers) { -- cgit v1.2.3 From 02b79df2316d2b463a74edc7a1dc08231b0121f7 Mon Sep 17 00:00:00 2001 From: jcardus Date: Wed, 25 Mar 2020 21:38:53 +0000 Subject: compression on jetty --- src/main/java/org/traccar/web/WebServer.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/org/traccar/web/WebServer.java b/src/main/java/org/traccar/web/WebServer.java index 92548d218..d5c4cf71b 100644 --- a/src/main/java/org/traccar/web/WebServer.java +++ b/src/main/java/org/traccar/web/WebServer.java @@ -95,12 +95,10 @@ public class WebServer { } }); - GzipHandler gzipHandler = new GzipHandler(); - HandlerList handlers = new HandlerList(); initClientProxy(config, handlers); handlers.addHandler(servletHandler); - handlers.addHandler(gzipHandler); + handlers.addHandler(new GzipHandler()); server.setHandler(handlers); } -- cgit v1.2.3