From 449941043a8303e1cca7c63b28e84b6b53c6871c Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Tue, 29 Dec 2020 22:38:33 -0800 Subject: Migrate more keys --- src/main/java/org/traccar/BasePipelineFactory.java | 32 ++++++++-------------- src/main/java/org/traccar/BaseProtocolDecoder.java | 2 +- src/main/java/org/traccar/Context.java | 2 +- src/main/java/org/traccar/config/Keys.java | 15 ++++++++++ 4 files changed, 28 insertions(+), 23 deletions(-) diff --git a/src/main/java/org/traccar/BasePipelineFactory.java b/src/main/java/org/traccar/BasePipelineFactory.java index ab781fd7a..642c75ea9 100644 --- a/src/main/java/org/traccar/BasePipelineFactory.java +++ b/src/main/java/org/traccar/BasePipelineFactory.java @@ -55,13 +55,11 @@ public abstract class BasePipelineFactory extends ChannelInitializer { private final TrackerServer server; private final String protocol; - private final boolean eventsEnabled; private int timeout; public BasePipelineFactory(TrackerServer server, String protocol) { this.server = server; this.protocol = protocol; - eventsEnabled = Context.getConfig().getBoolean(Keys.EVENT_ENABLE); timeout = Context.getConfig().getInteger(Keys.PROTOCOL_TIMEOUT.withPrefix(protocol)); if (timeout == 0) { timeout = Context.getConfig().getInteger(Keys.SERVER_TIMEOUT); @@ -122,10 +120,7 @@ public abstract class BasePipelineFactory extends ChannelInitializer { GeolocationHandler.class, HemisphereHandler.class, DistanceHandler.class, - RemoteAddressHandler.class); - - addHandlers( - pipeline, + RemoteAddressHandler.class, FilterHandler.class, GeocoderHandler.class, SpeedLimitHandler.class, @@ -134,21 +129,16 @@ public abstract class BasePipelineFactory extends ChannelInitializer { EngineHoursHandler.class, ComputedAttributesHandler.class, WebDataHandler.class, - DefaultDataHandler.class); - - if (eventsEnabled) { - addHandlers( - pipeline, - CommandResultEventHandler.class, - OverspeedEventHandler.class, - FuelDropEventHandler.class, - MotionEventHandler.class, - GeofenceEventHandler.class, - AlertEventHandler.class, - IgnitionEventHandler.class, - MaintenanceEventHandler.class, - DriverEventHandler.class); - } + DefaultDataHandler.class, + CommandResultEventHandler.class, + OverspeedEventHandler.class, + FuelDropEventHandler.class, + MotionEventHandler.class, + GeofenceEventHandler.class, + AlertEventHandler.class, + IgnitionEventHandler.class, + MaintenanceEventHandler.class, + DriverEventHandler.class); pipeline.addLast(new MainEventHandler()); } diff --git a/src/main/java/org/traccar/BaseProtocolDecoder.java b/src/main/java/org/traccar/BaseProtocolDecoder.java index 78282b4a5..71e43df5c 100644 --- a/src/main/java/org/traccar/BaseProtocolDecoder.java +++ b/src/main/java/org/traccar/BaseProtocolDecoder.java @@ -256,7 +256,7 @@ public abstract class BaseProtocolDecoder extends ExtendedObjectDecoder { @Override protected Object handleEmptyMessage(Channel channel, SocketAddress remoteAddress, Object msg) { DeviceSession deviceSession = getDeviceSession(channel, remoteAddress); - if (config.getBoolean("database.saveEmpty") && deviceSession != null) { + if (config.getBoolean(Keys.DATABASE_SAVE_EMPTY) && deviceSession != null) { Position position = new Position(getProtocolName()); position.setDeviceId(deviceSession.getDeviceId()); getLastLocation(position, null); diff --git a/src/main/java/org/traccar/Context.java b/src/main/java/org/traccar/Context.java index a870edb4b..488dd9a15 100644 --- a/src/main/java/org/traccar/Context.java +++ b/src/main/java/org/traccar/Context.java @@ -332,7 +332,7 @@ public final class Context { driversManager = new DriversManager(dataManager); - commandsManager = new CommandsManager(dataManager, config.getBoolean("commands.queueing")); + commandsManager = new CommandsManager(dataManager, config.getBoolean(Keys.COMMANDS_QUEUEING)); } diff --git a/src/main/java/org/traccar/config/Keys.java b/src/main/java/org/traccar/config/Keys.java index da6c46ee9..d443509e5 100644 --- a/src/main/java/org/traccar/config/Keys.java +++ b/src/main/java/org/traccar/config/Keys.java @@ -314,6 +314,13 @@ public final class Keys { Collections.singletonList(KeyType.GLOBAL), 300L); + /** + * Store empty messages as positions. For example, heartbeats. + */ + public static final ConfigKey DATABASE_SAVE_EMPTY = new ConfigKey<>( + "database.saveEmpty", + Collections.singletonList(KeyType.GLOBAL)); + /** * Device limit for self registered users. Default value is -1, which indicates no limit. */ @@ -552,6 +559,14 @@ public final class Keys { "event.forward.header", Collections.singletonList(KeyType.GLOBAL)); + /** + * Enable commands queuing when devices are offline. Commands are buffered in memory only, so restarting service + * will clear the buffer. + */ + public static final ConfigKey COMMANDS_QUEUEING = new ConfigKey<>( + "commands.queueing", + Collections.singletonList(KeyType.GLOBAL)); + /** * SMS API service full URL. Enables SMS commands and notifications. */ -- cgit v1.2.3