From 1593a9dee20ee7355f9f5feb6d121a5ad69a283f Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Wed, 13 Jul 2016 19:04:38 +0500 Subject: Renamed to EventForwarder and moved to Context --- src/org/traccar/notification/EventForwarder.java | 71 ++++++++++++++++++++++ .../traccar/notification/NotificationForward.java | 71 ---------------------- 2 files changed, 71 insertions(+), 71 deletions(-) create mode 100644 src/org/traccar/notification/EventForwarder.java delete mode 100644 src/org/traccar/notification/NotificationForward.java (limited to 'src') diff --git a/src/org/traccar/notification/EventForwarder.java b/src/org/traccar/notification/EventForwarder.java new file mode 100644 index 000000000..32f8a1ffc --- /dev/null +++ b/src/org/traccar/notification/EventForwarder.java @@ -0,0 +1,71 @@ +package org.traccar.notification; + +import java.nio.charset.StandardCharsets; + +import javax.json.Json; +import javax.json.JsonObjectBuilder; + +import org.traccar.Context; +import org.traccar.model.Device; +import org.traccar.model.Event; +import org.traccar.model.Geofence; +import org.traccar.model.Position; +import org.traccar.web.JsonConverter; + +import com.ning.http.client.AsyncHttpClient.BoundRequestBuilder; + +public final class NotificationForward { + + private NotificationForward() { + } + + private static final String USER_AGENT = "Traccar Server"; + + private static final String KEY_POSITION = "position"; + private static final String KEY_EVENT = "event"; + 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", ""); + + BoundRequestBuilder requestBuilder = Context.getAsyncHttpClient().preparePost(url); + + requestBuilder.addHeader("Content-Type", "application/json; charset=utf-8"); + requestBuilder.addHeader("User-Agent", USER_AGENT); + if (!header.equals("")) { + String[] headerLines = header.split("\\r?\\n"); + for (String headerLine: headerLines) { + String[] splitedLine = headerLine.split(":", 2); + if (splitedLine.length == 2) { + requestBuilder.addHeader(splitedLine[0].trim(), splitedLine[1].trim()); + } + } + } + + requestBuilder.setBody(preparePayload(event, position)); + requestBuilder.execute(); + } + + private static byte[] preparePayload(Event event, Position position) { + JsonObjectBuilder json = Json.createObjectBuilder(); + json.add(KEY_EVENT, JsonConverter.objectToJson(event)); + if (position != null) { + json.add(KEY_POSITION, JsonConverter.objectToJson(position)); + } + if (event.getDeviceId() != 0) { + Device device = Context.getIdentityManager().getDeviceById(event.getDeviceId()); + if (device != null) { + json.add(KEY_DEVICE, JsonConverter.objectToJson(device)); + } + } + if (event.getGeofenceId() != 0) { + Geofence geofence = Context.getGeofenceManager().getGeofence(event.getGeofenceId()); + if (geofence != null) { + json.add(KEY_GEOFENCE, JsonConverter.objectToJson(geofence)); + } + } + return json.build().toString().getBytes(StandardCharsets.UTF_8); + } +} diff --git a/src/org/traccar/notification/NotificationForward.java b/src/org/traccar/notification/NotificationForward.java deleted file mode 100644 index 32f8a1ffc..000000000 --- a/src/org/traccar/notification/NotificationForward.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.traccar.notification; - -import java.nio.charset.StandardCharsets; - -import javax.json.Json; -import javax.json.JsonObjectBuilder; - -import org.traccar.Context; -import org.traccar.model.Device; -import org.traccar.model.Event; -import org.traccar.model.Geofence; -import org.traccar.model.Position; -import org.traccar.web.JsonConverter; - -import com.ning.http.client.AsyncHttpClient.BoundRequestBuilder; - -public final class NotificationForward { - - private NotificationForward() { - } - - private static final String USER_AGENT = "Traccar Server"; - - private static final String KEY_POSITION = "position"; - private static final String KEY_EVENT = "event"; - 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", ""); - - BoundRequestBuilder requestBuilder = Context.getAsyncHttpClient().preparePost(url); - - requestBuilder.addHeader("Content-Type", "application/json; charset=utf-8"); - requestBuilder.addHeader("User-Agent", USER_AGENT); - if (!header.equals("")) { - String[] headerLines = header.split("\\r?\\n"); - for (String headerLine: headerLines) { - String[] splitedLine = headerLine.split(":", 2); - if (splitedLine.length == 2) { - requestBuilder.addHeader(splitedLine[0].trim(), splitedLine[1].trim()); - } - } - } - - requestBuilder.setBody(preparePayload(event, position)); - requestBuilder.execute(); - } - - private static byte[] preparePayload(Event event, Position position) { - JsonObjectBuilder json = Json.createObjectBuilder(); - json.add(KEY_EVENT, JsonConverter.objectToJson(event)); - if (position != null) { - json.add(KEY_POSITION, JsonConverter.objectToJson(position)); - } - if (event.getDeviceId() != 0) { - Device device = Context.getIdentityManager().getDeviceById(event.getDeviceId()); - if (device != null) { - json.add(KEY_DEVICE, JsonConverter.objectToJson(device)); - } - } - if (event.getGeofenceId() != 0) { - Geofence geofence = Context.getGeofenceManager().getGeofence(event.getGeofenceId()); - if (geofence != null) { - json.add(KEY_GEOFENCE, JsonConverter.objectToJson(geofence)); - } - } - return json.build().toString().getBytes(StandardCharsets.UTF_8); - } -} -- cgit v1.2.3