diff options
author | Anton Tananaev <anton@traccar.org> | 2022-11-13 11:48:43 -0800 |
---|---|---|
committer | Anton Tananaev <anton@traccar.org> | 2022-11-13 11:48:43 -0800 |
commit | 5877cb1b3f1fa7331c4310b9754a3ec442586497 (patch) | |
tree | 6cc3e7193412aa152c1b593bf0ad7e4119687a1e /src/main/java/org/traccar/forward/EventForwarderJson.java | |
parent | ff793b2e2872f8ba076e748fab41d944f92b64d4 (diff) | |
download | trackermap-server-5877cb1b3f1fa7331c4310b9754a3ec442586497.tar.gz trackermap-server-5877cb1b3f1fa7331c4310b9754a3ec442586497.tar.bz2 trackermap-server-5877cb1b3f1fa7331c4310b9754a3ec442586497.zip |
Refactor position forwarding
Diffstat (limited to 'src/main/java/org/traccar/forward/EventForwarderJson.java')
-rw-r--r-- | src/main/java/org/traccar/forward/EventForwarderJson.java | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/main/java/org/traccar/forward/EventForwarderJson.java b/src/main/java/org/traccar/forward/EventForwarderJson.java index c136fd4e2..7527d568a 100644 --- a/src/main/java/org/traccar/forward/EventForwarderJson.java +++ b/src/main/java/org/traccar/forward/EventForwarderJson.java @@ -15,33 +15,29 @@ */ package org.traccar.forward; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.traccar.config.Config; import org.traccar.config.Keys; -import javax.inject.Inject; import javax.ws.rs.client.Client; import javax.ws.rs.client.Entity; import javax.ws.rs.client.InvocationCallback; +import javax.ws.rs.core.Response; public class EventForwarderJson implements EventForwarder { - private static final Logger LOGGER = LoggerFactory.getLogger(EventForwarderJson.class); - private final String url; private final String header; private final Client client; - @Inject public EventForwarderJson(Config config, Client client) { this.client = client; url = config.getString(Keys.EVENT_FORWARD_URL); header = config.getString(Keys.EVENT_FORWARD_HEADERS); } - public void forward(EventData eventData) { + @Override + public void forward(EventData eventData, ResultHandler resultHandler) { var requestBuilder = client.target(url).request(); if (header != null && !header.isEmpty()) { @@ -51,14 +47,20 @@ public class EventForwarderJson implements EventForwarder { } } - requestBuilder.async().post(Entity.json(eventData), new InvocationCallback<>() { + requestBuilder.async().post(Entity.json(eventData), new InvocationCallback<Response>() { @Override - public void completed(Object o) { + public void completed(Response response) { + if (response.getStatusInfo().getFamily() == Response.Status.Family.SUCCESSFUL) { + resultHandler.onResult(true, null); + } else { + int code = response.getStatusInfo().getStatusCode(); + resultHandler.onResult(false, new RuntimeException("HTTP code " + code)); + } } @Override public void failed(Throwable throwable) { - LOGGER.warn("Event forwarding failed", throwable); + resultHandler.onResult(false, throwable); } }); } |