aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/traccar')
-rw-r--r--src/org/traccar/Context.java11
-rw-r--r--src/org/traccar/database/NotificationManager.java8
-rw-r--r--src/org/traccar/notification/EventForwarder.java16
3 files changed, 23 insertions, 12 deletions
diff --git a/src/org/traccar/Context.java b/src/org/traccar/Context.java
index ebe700221..0bb18b675 100644
--- a/src/org/traccar/Context.java
+++ b/src/org/traccar/Context.java
@@ -35,6 +35,7 @@ import org.traccar.helper.Log;
import org.traccar.location.LocationProvider;
import org.traccar.location.MozillaLocationProvider;
import org.traccar.location.OpenCellIdLocationProvider;
+import org.traccar.notification.EventForwarder;
import org.traccar.web.WebServer;
public final class Context {
@@ -120,6 +121,12 @@ public final class Context {
return ASYNC_HTTP_CLIENT;
}
+ private static EventForwarder eventForwarder;
+
+ public static EventForwarder getEventForvarder() {
+ return eventForwarder;
+ }
+
public static void init(String[] arguments) throws Exception {
config = new Config();
@@ -210,6 +217,10 @@ public final class Context {
serverManager = new ServerManager();
+ if (config.getBoolean("event.forward.enable")) {
+ eventForwarder = new EventForwarder();
+ }
+
}
public static void init(IdentityManager testIdentityManager) {
diff --git a/src/org/traccar/database/NotificationManager.java b/src/org/traccar/database/NotificationManager.java
index 90edce43e..911c5d2dc 100644
--- a/src/org/traccar/database/NotificationManager.java
+++ b/src/org/traccar/database/NotificationManager.java
@@ -31,7 +31,6 @@ import org.traccar.helper.Log;
import org.traccar.model.Event;
import org.traccar.model.Notification;
import org.traccar.model.Position;
-import org.traccar.notification.NotificationForward;
import org.traccar.notification.NotificationMail;
public class NotificationManager {
@@ -42,11 +41,8 @@ public class NotificationManager {
private final ReadWriteLock notificationsLock = new ReentrantReadWriteLock();
- private final boolean forward;
-
public NotificationManager(DataManager dataManager) {
this.dataManager = dataManager;
- forward = Context.getConfig().getBoolean("event.forward.enable");
refresh();
}
@@ -72,8 +68,8 @@ public class NotificationManager {
}
}
}
- if (forward) {
- NotificationForward.forwardEvent(event, position);
+ if (Context.getEventForvarder() != null) {
+ Context.getEventForvarder().forwardEvent(event, position);
}
}
diff --git a/src/org/traccar/notification/EventForwarder.java b/src/org/traccar/notification/EventForwarder.java
index 32f8a1ffc..096026541 100644
--- a/src/org/traccar/notification/EventForwarder.java
+++ b/src/org/traccar/notification/EventForwarder.java
@@ -14,9 +14,14 @@ import org.traccar.web.JsonConverter;
import com.ning.http.client.AsyncHttpClient.BoundRequestBuilder;
-public final class NotificationForward {
+public final class EventForwarder {
- private NotificationForward() {
+ private String url;
+ private String header;
+
+ public EventForwarder() {
+ url = Context.getConfig().getString("event.forward.url", "http://localhost/");
+ header = Context.getConfig().getString("event.forward.header", "");
}
private static final String USER_AGENT = "Traccar Server";
@@ -26,9 +31,8 @@ public final class NotificationForward {
private static final String KEY_GEOFENCE = "geofence";
private static final String KEY_DEVICE = "device";
- public static void forwardEvent(Event event, Position position) {
- String url = Context.getConfig().getString("event.forward.url", "http://localhost/");
- String header = Context.getConfig().getString("event.forward.header", "");
+ public void forwardEvent(Event event, Position position) {
+
BoundRequestBuilder requestBuilder = Context.getAsyncHttpClient().preparePost(url);
@@ -48,7 +52,7 @@ public final class NotificationForward {
requestBuilder.execute();
}
- private static byte[] preparePayload(Event event, Position position) {
+ private byte[] preparePayload(Event event, Position position) {
JsonObjectBuilder json = Json.createObjectBuilder();
json.add(KEY_EVENT, JsonConverter.objectToJson(event));
if (position != null) {