Convert ListenerDoc from Date to Java8 time.

pull/3/head
Bertrik Sikken 2017-09-16 18:52:45 +02:00
rodzic fc23c84965
commit 24f5ea7a94
8 zmienionych plików z 39 dodań i 39 usunięć

Wyświetl plik

@ -4,6 +4,7 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -103,7 +104,7 @@ public final class TtnHabBridge {
final String line = sentence.format();
// collect list of listeners
final Date now = new Date();
final Instant now = Instant.now();
final List<HabReceiver> receivers = new ArrayList<>();
for (TtnMessageGateway gw : message.getMetaData().getMqttGateways()) {
final String gwName = gw.getId();
@ -112,13 +113,13 @@ public final class TtnHabBridge {
receivers.add(receiver);
// send listener data only if it has a valid location and hasn't been sent recently
if (gwLocation.isValid() && gwCache.add(gwName, now)) {
if (gwLocation.isValid() && gwCache.add(gwName, Date.from(now))) {
habUploader.scheduleListenerDataUpload(receiver, now);
}
}
// send payload telemetry data
habUploader.schedulePayloadTelemetryUpload(line, receivers, now.toInstant());
habUploader.schedulePayloadTelemetryUpload(line, receivers, now);
} catch (IOException e) {
LOG.warn("JSON unmarshalling exception '{}' for {}", e.getMessage(), textMessage);
} catch (DecodeException e) {

Wyświetl plik

@ -6,7 +6,6 @@ import java.security.NoSuchAlgorithmException;
import java.time.Instant;
import java.util.Base64;
import java.util.Base64.Encoder;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.ExecutorService;
@ -149,19 +148,19 @@ public final class HabitatUploader {
* Schedules new listener data to be sent to habitat.
*
* @param receiver the receiver data
* @param date the current date
* @param instant the current date/time
*/
public void scheduleListenerDataUpload(HabReceiver receiver, Date date) {
executor.submit(() -> uploadListener(receiver, date));
public void scheduleListenerDataUpload(HabReceiver receiver, Instant instant) {
executor.submit(() -> uploadListener(receiver, instant));
}
/**
* Uploads listener data (information and telemetry)
*
* @param receiver the receiver/listener
* @param date the current date
* @param instant the current date/time
*/
private void uploadListener(HabReceiver receiver, Date date) {
private void uploadListener(HabReceiver receiver, Instant instant) {
LOG.info("Upload listener data for {}", receiver);
try {
// get two uuids
@ -173,13 +172,13 @@ public final class HabitatUploader {
// upload payload listener info
LOG.info("Upload listener info using UUID {}...", uuids.get(0));
final ListenerInformationDoc info = new ListenerInformationDoc(date, receiver);
final ListenerInformationDoc info = new ListenerInformationDoc(instant, receiver);
final UploadResult infoResult = restClient.uploadDocument(uuids.get(0), info.format());
LOG.info("Result listener info: {}", infoResult);
// upload payload telemetry
LOG.info("Upload listener telemetry using UUID {}...", uuids.get(1));
final ListenerTelemetryDoc telem = new ListenerTelemetryDoc(date, receiver);
final ListenerTelemetryDoc telem = new ListenerTelemetryDoc(instant, receiver);
final UploadResult telemResult = restClient.uploadDocument(uuids.get(1), telem.format());
LOG.info("Result listener telemetry: {}", telemResult);
} else {

Wyświetl plik

@ -1,9 +1,9 @@
package nl.sikken.bertrik.hab.habitat.docs;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
@ -14,20 +14,21 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
*/
public abstract class ListenerDoc {
private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.US);
// private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.US);
private final DateTimeFormatter dateFormat = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
private final JsonNodeFactory factory = new JsonNodeFactory(false);
private final Date date;
private final OffsetDateTime date;
private final String type;
/**
* Constructor.
* @param date the creation/upload date
* @param instant the creation/upload date
* @param type the document type
*/
protected ListenerDoc(Date date, String type) {
protected ListenerDoc(Instant instant, String type) {
this.type = type;
this.date = date;
this.date = OffsetDateTime.ofInstant(instant, ZoneId.systemDefault());
}
/**

Wyświetl plik

@ -1,6 +1,6 @@
package nl.sikken.bertrik.hab.habitat.docs;
import java.util.Date;
import java.time.Instant;
import java.util.Locale;
import com.fasterxml.jackson.databind.JsonNode;
@ -23,11 +23,11 @@ public final class ListenerInformationDoc extends ListenerDoc {
/**
* Constructor.
*
* @param date the creation/upload date
* @param instant the creation/upload date
* @param receiver the HAB receiver
*/
public ListenerInformationDoc(Date date, HabReceiver receiver) {
super(date, "listener_information");
public ListenerInformationDoc(Instant instant, HabReceiver receiver) {
super(instant, "listener_information");
this.receiver = receiver;
}

Wyświetl plik

@ -1,6 +1,6 @@
package nl.sikken.bertrik.hab.habitat.docs;
import java.util.Date;
import java.time.Instant;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
@ -19,11 +19,11 @@ public final class ListenerTelemetryDoc extends ListenerDoc {
/**
* Constructor.
*
* @param date the creation/upload date
* @param instant the creation/upload date
* @param receiver the receiver info
*/
public ListenerTelemetryDoc(Date date, HabReceiver receiver) {
super(date, "listener_telemetry");
public ListenerTelemetryDoc(Instant instant, HabReceiver receiver) {
super(instant, "listener_telemetry");
this.receiver = receiver;
}

Wyświetl plik

@ -2,7 +2,6 @@ package nl.sikken.bertrik.hab.habitat;
import java.time.Instant;
import java.util.Arrays;
import java.util.Date;
import org.junit.Ignore;
import org.junit.Test;
@ -61,9 +60,9 @@ public final class HabitatUploaderTest {
uploader.start();
try {
final HabReceiver receiver = new HabReceiver("BERTRIK", LOCATION);
final Date date = new Date();
final Instant instant = Instant.now();
uploader.scheduleListenerDataUpload(receiver, date);
uploader.scheduleListenerDataUpload(receiver, instant);
// expect two documents
Mockito.verify(restClient, Mockito.timeout(3000).times(2)).uploadDocument(Mockito.anyString(),
@ -106,9 +105,9 @@ public final class HabitatUploaderTest {
final IHabitatRestApi restClient = HabitatUploader.newRestClient("http://habitat.habhub.org", 3000);
final HabitatUploader uploader = new HabitatUploader(restClient);
try {
final Date date = new Date();
final Instant instant = Instant.now();
final HabReceiver receiver = new HabReceiver("BERTRIK", new Location(52.0182307, 4.695772, 15.0));
uploader.scheduleListenerDataUpload(receiver, date);
uploader.scheduleListenerDataUpload(receiver, instant);
Thread.sleep(3000);
} finally {
uploader.stop();

Wyświetl plik

@ -1,6 +1,6 @@
package nl.sikken.bertrik.hab.habitat.docs;
import java.util.Date;
import java.time.Instant;
import org.junit.Assert;
import org.junit.Test;
@ -18,9 +18,9 @@ public final class ListenerInfoDocTest {
*/
@Test
public void testFormat() {
final Date date = new Date();
final Instant instant = Instant.now();
final HabReceiver receiver = new HabReceiver("BERTRIK", new Location(52.0162, 4.4753, 0.0));
final ListenerInformationDoc doc = new ListenerInformationDoc(date, receiver);
final ListenerInformationDoc doc = new ListenerInformationDoc(instant, receiver);
final String json = doc.format();
Assert.assertNotNull(json);

Wyświetl plik

@ -1,6 +1,6 @@
package nl.sikken.bertrik.hab.habitat.docs;
import java.util.Date;
import java.time.Instant;
import org.junit.Assert;
import org.junit.Test;
@ -18,9 +18,9 @@ public final class ListenerTelemetryDocTest {
*/
@Test
public void testFormat() {
final Date date = new Date();
final Instant instant = Instant.now();
final HabReceiver receiver = new HabReceiver("BERTRIK", new Location(1.23, 4.56, 7.8));
final ListenerTelemetryDoc doc = new ListenerTelemetryDoc(date, receiver);
final ListenerTelemetryDoc doc = new ListenerTelemetryDoc(instant, receiver);
final String json = doc.format();
Assert.assertNotNull(json);