aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/traccar')
-rw-r--r--src/org/traccar/BaseEventHandler.java6
-rw-r--r--src/org/traccar/BasePipelineFactory.java16
-rw-r--r--src/org/traccar/Context.java8
-rw-r--r--src/org/traccar/database/ConnectionManager.java4
-rw-r--r--src/org/traccar/database/NotificationManager.java4
5 files changed, 21 insertions, 17 deletions
diff --git a/src/org/traccar/BaseEventHandler.java b/src/org/traccar/BaseEventHandler.java
index 1ae9d2c6d..82e78c6b3 100644
--- a/src/org/traccar/BaseEventHandler.java
+++ b/src/org/traccar/BaseEventHandler.java
@@ -26,10 +26,8 @@ public abstract class BaseEventHandler extends BaseDataHandler {
protected Position handlePosition(Position position) {
Collection<Event> events = analyzePosition(position);
- if (events != null) {
- for (Event event : events) {
- Context.getNotificationManager().updateEvent(event, position);
- }
+ if (events != null && Context.getNotificationManager() != null) {
+ Context.getNotificationManager().updateEvents(events, position);
}
return position;
}
diff --git a/src/org/traccar/BasePipelineFactory.java b/src/org/traccar/BasePipelineFactory.java
index b61d95171..44f1b0657 100644
--- a/src/org/traccar/BasePipelineFactory.java
+++ b/src/org/traccar/BasePipelineFactory.java
@@ -132,20 +132,20 @@ public abstract class BasePipelineFactory implements ChannelPipelineFactory {
hemisphereHandler = new HemisphereHandler();
}
- commandResultEventHandler = new CommandResultEventHandler();
+ if (Context.getConfig().getBoolean("event.enable")) {
+ commandResultEventHandler = new CommandResultEventHandler();
- if (Context.getConfig().getBoolean("event.overspeedHandler")) {
- overspeedEventHandler = new OverspeedEventHandler();
- }
+ if (Context.getConfig().getBoolean("event.overspeedHandler")) {
+ overspeedEventHandler = new OverspeedEventHandler();
+ }
- if (Context.getConfig().getBoolean("event.motionHandler")) {
- motionEventHandler = new MotionEventHandler();
+ if (Context.getConfig().getBoolean("event.motionHandler")) {
+ motionEventHandler = new MotionEventHandler();
+ }
}
-
if (Context.getConfig().getBoolean("event.geofenceHandler")) {
geofenceEventHandler = new GeofenceEventHandler();
}
-
}
protected abstract void addSpecificHandlers(ChannelPipeline pipeline);
diff --git a/src/org/traccar/Context.java b/src/org/traccar/Context.java
index f40db72e5..b37e87331 100644
--- a/src/org/traccar/Context.java
+++ b/src/org/traccar/Context.java
@@ -193,9 +193,13 @@ public final class Context {
connectionManager = new ConnectionManager(dataManager);
- geofenceManager = new GeofenceManager(dataManager);
+ if (config.getBoolean("event.geofenceHandler")) {
+ geofenceManager = new GeofenceManager(dataManager);
+ }
- notificationManager = new NotificationManager(dataManager);
+ if (config.getBoolean("event.enable")) {
+ notificationManager = new NotificationManager(dataManager);
+ }
serverManager = new ServerManager();
diff --git a/src/org/traccar/database/ConnectionManager.java b/src/org/traccar/database/ConnectionManager.java
index 8a1debdfa..8796673b1 100644
--- a/src/org/traccar/database/ConnectionManager.java
+++ b/src/org/traccar/database/ConnectionManager.java
@@ -94,7 +94,9 @@ public class ConnectionManager {
if (status.equals(Device.STATUS_ONLINE)) {
event.setType(Event.TYPE_DEVICE_ONLINE);
}
- Context.getNotificationManager().updateEvent(event, null);
+ if (Context.getNotificationManager() != null) {
+ Context.getNotificationManager().updateEvent(event, null);
+ }
}
device.setStatus(status);
diff --git a/src/org/traccar/database/NotificationManager.java b/src/org/traccar/database/NotificationManager.java
index 7593367a3..ab6b2230a 100644
--- a/src/org/traccar/database/NotificationManager.java
+++ b/src/org/traccar/database/NotificationManager.java
@@ -41,8 +41,8 @@ public class NotificationManager {
Set<Long> users = Context.getPermissionsManager().getDeviceUsers(event.getDeviceId());
for (Long userId : users) {
- if (event.getGeofenceId() == 0
- || Context.getGeofenceManager().checkGeofence(userId, event.getGeofenceId())) {
+ if (event.getGeofenceId() == 0 || Context.getGeofenceManager() != null
+ && Context.getGeofenceManager().checkGeofence(userId, event.getGeofenceId())) {
Context.getConnectionManager().updateEvent(userId, event, position);
}
}