diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/org/traccar/Context.java | 11 | ||||
-rw-r--r-- | src/org/traccar/database/NotificationManager.java | 8 | ||||
-rw-r--r-- | src/org/traccar/notification/EventForwarder.java | 16 |
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) { |