65 lines
2 KiB
Java
65 lines
2 KiB
Java
|
package biz.nellemann.hmci;
|
||
|
|
||
|
import biz.nellemann.hmci.dto.json.ProcessedMetrics;
|
||
|
import biz.nellemann.hmci.dto.json.SystemUtil;
|
||
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||
|
import org.slf4j.Logger;
|
||
|
import org.slf4j.LoggerFactory;
|
||
|
|
||
|
import java.time.Instant;
|
||
|
import java.time.format.DateTimeFormatter;
|
||
|
import java.time.format.DateTimeParseException;
|
||
|
|
||
|
public class Resource {
|
||
|
|
||
|
private final static Logger log = LoggerFactory.getLogger(Resource.class);
|
||
|
|
||
|
private final ObjectMapper objectMapper = new ObjectMapper();
|
||
|
|
||
|
protected SystemUtil metric;
|
||
|
|
||
|
|
||
|
Resource() {
|
||
|
objectMapper.enable(DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS);
|
||
|
objectMapper.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
|
||
|
objectMapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
|
||
|
}
|
||
|
|
||
|
|
||
|
void deserialize(String json) {
|
||
|
if(json == null || json.length() < 1) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
try {
|
||
|
ProcessedMetrics processedMetrics = objectMapper.readValue(json, ProcessedMetrics.class);
|
||
|
metric = processedMetrics.systemUtil;
|
||
|
} catch (Exception e) {
|
||
|
log.error("deserialize() - error: {}", e.getMessage());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
Instant getTimestamp() {
|
||
|
Instant instant = Instant.now();
|
||
|
|
||
|
if (metric == null) {
|
||
|
return instant;
|
||
|
}
|
||
|
|
||
|
String timestamp = metric.getSample().sampleInfo.timestamp;
|
||
|
try {
|
||
|
log.trace("getTimeStamp() - PMC Timestamp: {}", timestamp);
|
||
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss[XXX][X]");
|
||
|
instant = Instant.from(dateTimeFormatter.parse(timestamp));
|
||
|
log.trace("getTimestamp() - Instant: {}", instant.toString());
|
||
|
} catch(DateTimeParseException e) {
|
||
|
log.warn("getTimestamp() - parse error: {}", timestamp);
|
||
|
}
|
||
|
|
||
|
return instant;
|
||
|
}
|
||
|
|
||
|
}
|