diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index e1fa4a5b9..8656be2f4 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -30,10 +30,9 @@ RUN apt-get update \
# Verify git, needed tools installed
&& apt-get -y install git openssh-client less iproute2 procps curl lsb-release zip unzip sed kafkacat telnet
-#-------------------Install SDKMan and Java 8----------------------------------
+#-------------------Install SDKMan----------------------------------
RUN curl -s https://get.sdkman.io | bash
RUN chmod a+x "$HOME/.sdkman/bin/sdkman-init.sh"
-RUN /bin/bash -c "source $HOME/.sdkman/bin/sdkman-init.sh && sdk install java 8.0.275.hs-adpt;"
#-------------------------------------------------------------------------------------------------------------
#-------------------Install Maven CLI Tools----------------------------------
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index b65a3d691..7c7277dd3 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -1,26 +1,27 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.154.0/containers/java-8
{
- "name": "Java 8",
+ "name": "Java 11",
"dockerFile": "Dockerfile",
"overrideCommand": false,
"shutdownAction": "stopContainer",
"settings": {
- "terminal.integrated.shell.linux": "/bin/bash",
- "java.configuration.runtimes": [
- {
- "default": true,
- "name": "JavaSE-1.8",
- "path": "/root/.sdkman/candidates/java/current"
- }
- ]
+ "terminal.integrated.shell.linux": "/bin/bash"
},
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"vscjava.vscode-java-pack",
+ "vscjava.vscode-java-debug",
+ "vscjava.vscode-maven",
+ "vscjava.vscode-java-dependency",
+ "vscjava.vscode-java-test",
+ "hbenl.vscode-test-explorer",
+ "ms-vscode.test-adapter-converter",
"esbenp.prettier-vscode",
"mhutchie.git-graph",
- "tabnine.tabnine-vscode"
+ "tabnine.tabnine-vscode",
+ "redhat.java",
+ "redhat.vscode-commons"
],
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [8080, 9090, 46753, 46800, 5555, 6666, 8090, 2181, 9092],
@@ -28,5 +29,7 @@
"postCreateCommand": "bash .devcontainer/post-create.sh",
// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
// "remoteUser": "vscode"
- "runArgs": ["--network=host"]
+ "runArgs": [
+ "--network=host"
+ ]
}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 000000000..9545c8368
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,8 @@
+{
+ "java.configuration.updateBuildConfiguration": "automatic",
+ "java.test.config": {
+ "name": "testConfig",
+ "vmArgs": ["-javaagent:/root/.m2/repository/org/jmockit/jmockit/1.49/jmockit-1.49.jar"]
+ },
+ "java.test.defaultConfig": "testConfig"
+}
\ No newline at end of file
diff --git a/jpo-ode-common/pom.xml b/jpo-ode-common/pom.xml
index ec2fcfe0e..52fc79ebd 100644
--- a/jpo-ode-common/pom.xml
+++ b/jpo-ode-common/pom.xml
@@ -28,10 +28,6 @@
json
20210307
-
- com.google.code.gson
- gson
-
com.fasterxml.jackson.core
jackson-databind
diff --git a/jpo-ode-common/src/main/java/us/dot/its/jpo/ode/inet/InetPacketSender.java b/jpo-ode-common/src/main/java/us/dot/its/jpo/ode/inet/InetPacketSender.java
index ced6cc3b5..e084a7b61 100644
--- a/jpo-ode-common/src/main/java/us/dot/its/jpo/ode/inet/InetPacketSender.java
+++ b/jpo-ode-common/src/main/java/us/dot/its/jpo/ode/inet/InetPacketSender.java
@@ -20,128 +20,141 @@
import java.net.DatagramSocket;
import java.net.SocketException;
-import org.apache.log4j.Logger;
+import us.dot.its.jpo.ode.eventlog.EventLogger;
/**
- * Sender/Forwarder helper class for use by Forwarder, Transport, and Data Sink that need to send packets around
+ * Sender/Forwarder helper class for use by Forwarder, Transport, and Data Sink
+ * that need to send packets around
*/
public class InetPacketSender {
-
- private static final String INVALID_PARAMETERS_MSG = "Invalid Parameters. Parameters destination point and payload can not be null";
- private static final Logger log = Logger.getLogger(InetPacketSender.class);
+ private static final String INVALID_PARAMETERS_MSG = "Invalid Parameters. Parameters destination point and payload can not be null";
/**
* Inet address and port to forward packets to
*/
private InetPoint frwdPoint;
-
+
/**
- * Specifies whether outbound IPv4 messages should be send directly or forwarded. Default is send directly.
+ * Specifies whether outbound IPv4 messages should be send directly or
+ * forwarded. Default is send directly.
* To force forwarding IPv4 messages, set this variable to true.
*/
private boolean forwardAll;
- public InetPacketSender() {}
-
+ public InetPacketSender() {
+ }
+
/**
* Creates an instance of the forwarder/sender helper class.
+ *
* @param frwdPoint is the destination to use for forwarding
*/
public InetPacketSender(InetPoint frwdPoint) {
this.frwdPoint = frwdPoint;
}
-
+
/**
* Forward packet. Intended client is the forwarder that received a packet
+ *
* @param inbound UDP packet
- * @throws InetPacketException
+ * @throws InetPacketException
*/
public void forward(DatagramPacket packet) throws InetPacketException {
- if ( packet == null ) {
- log.warn("Ignoring forward request for null packet");
+ if (packet == null) {
+ EventLogger.logger.warn("Ignoring forward request for null packet");
return;
}
- if ( frwdPoint == null )
+ if (frwdPoint == null)
throw new InetPacketException("Couldn't forward packet. Reason: Forwarding destination is not defined.");
send(frwdPoint, new InetPacket(packet).getBundle());
}
-
+
/**
* Send packet. Intended client is the forwarder that sends outbound packet
+ *
* @param packet outbound packet that contains destination+payload bundle
- * @throws InetPacketException
+ * @throws InetPacketException
*/
public void send(DatagramPacket packet) throws InetPacketException {
- if ( packet == null ) {
- log.warn("Ignoring send request for null packet");
+ if (packet == null) {
+ EventLogger.logger.warn("Ignoring send request for null packet");
return;
}
InetPacket p = new InetPacket(packet);
InetPoint point = p.getPoint();
- if ( point == null )
- throw new InetPacketException("Couldn't send packet. Reason: Destination is not defined in the packet (not a bundle?)");
+ if (point == null)
+ throw new InetPacketException(
+ "Couldn't send packet. Reason: Destination is not defined in the packet (not a bundle?)");
send(point, p.getPayload());
}
-
+
/**
- * Forward payload to be sent to dstPoint. Intended clients are Transport or Data Sink sending via forwarder
+ * Forward payload to be sent to dstPoint. Intended clients are Transport or
+ * Data Sink sending via forwarder
+ *
* @param dstPoint destination address and port for forwarder to forward to
- * @param payload data to forward
+ * @param payload data to forward
* @throws InetPacketException
*/
public void forward(InetPoint dstPoint, byte[] payload) throws InetPacketException {
- if ( dstPoint == null || payload == null )
+ if (dstPoint == null || payload == null)
throw new InetPacketException(INVALID_PARAMETERS_MSG);
- if ( frwdPoint == null )
- log.warn("Couldn't forward packet. Reason: Forwarding destination is not defined.");
- if ( frwdPoint != null && (dstPoint.isIPv6Address() || isForwardAll()) ) {
+ if (frwdPoint == null)
+ EventLogger.logger.warn("Couldn't forward packet. Reason: Forwarding destination is not defined.");
+ if (frwdPoint != null && (dstPoint.isIPv6Address() || isForwardAll())) {
send(frwdPoint, new InetPacket(dstPoint, payload).getBundle());
} else {
- log.debug("Using direct send instead of forwarding");
+ EventLogger.logger.debug("Using direct send instead of forwarding");
send(dstPoint, payload);
}
}
-
+
/**
- * Forward payload to be sent to dstPoint. Intended clients are Transport or Data Sink sending via forwarder or direct
- * @param dstPoint destination address and port of the final destination
- * @param payload data to forward or send
+ * Forward payload to be sent to dstPoint. Intended clients are Transport or
+ * Data Sink sending via forwarder or direct
+ *
+ * @param dstPoint destination address and port of the final destination
+ * @param payload data to forward or send
* @param fromForwarder whether the original request came through a forwarder
* @throws InetPacketException
*/
public void forward(InetPoint dstPoint, byte[] payload, boolean fromForwarder) throws InetPacketException {
- if ( dstPoint == null || payload == null )
+ if (dstPoint == null || payload == null)
throw new InetPacketException(INVALID_PARAMETERS_MSG);
- if ( frwdPoint != null && (dstPoint.isIPv6Address() || isForwardAll() || fromForwarder) ) {
+ if (frwdPoint != null && (dstPoint.isIPv6Address() || isForwardAll() || fromForwarder)) {
send(frwdPoint, new InetPacket(dstPoint, payload).getBundle());
} else {
- log.debug("Using direct send instead of forwarding");
+ EventLogger.logger.debug("Using direct send instead of forwarding");
send(dstPoint, payload);
}
}
-
+
/**
- * Send payload to the destination specified. Intended clients are Transport or Data Sink sending directly to the client
+ * Send payload to the destination specified. Intended clients are Transport or
+ * Data Sink sending directly to the client
+ *
* @param dstPoint destination address and port to send to
- * @param payload data to send
+ * @param payload data to send
* @throws InetPacketException
*/
public void send(InetPoint dstPoint, byte[] payload) throws InetPacketException {
- if ( dstPoint == null || payload == null )
+ if (dstPoint == null || payload == null)
throw new InetPacketException(INVALID_PARAMETERS_MSG);
- try(DatagramSocket sock = new DatagramSocket()) {
- DatagramPacket packet = new DatagramPacket(payload, payload.length, dstPoint.getInetAddress(), dstPoint.port);
- sock.send(packet);
- } catch (SocketException ex) {
- throw new InetPacketException("Couldn't send packet because socket closed.", ex);
- } catch (IOException ex) {
- throw new InetPacketException("Couldn't send packet due to IO exception.", ex);
- }
+ try (DatagramSocket sock = new DatagramSocket()) {
+ DatagramPacket packet = new DatagramPacket(payload, payload.length, dstPoint.getInetAddress(),
+ dstPoint.port);
+ sock.send(packet);
+ } catch (SocketException ex) {
+ throw new InetPacketException("Couldn't send packet because socket closed.", ex);
+ } catch (IOException ex) {
+ throw new InetPacketException("Couldn't send packet due to IO exception.", ex);
+ }
}
-
+
/**
- * Reports whether outbound IPv4 messages should be send directly or forwarded.
+ * Reports whether outbound IPv4 messages should be send directly or forwarded.
+ *
* @return true if IPv4 packets are forwarded in addition to IPv6 packets
*/
public boolean isForwardAll() {
@@ -150,11 +163,12 @@ public boolean isForwardAll() {
/**
*
- * @param forwardAll Directs how to handle IPv4 messages.
- * Specify true to force forwarding IPv4 messages, and false to always send them directly.
+ * @param forwardAll Directs how to handle IPv4 messages.
+ * Specify true to force forwarding IPv4 messages, and false
+ * to always send them directly.
*/
public void setForwardAll(boolean forwardAll) {
this.forwardAll = forwardAll;
}
-
+
}
diff --git a/jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/JsonUtils.java b/jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/JsonUtils.java
index 1b77fa493..7979f7dc8 100644
--- a/jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/JsonUtils.java
+++ b/jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/JsonUtils.java
@@ -25,16 +25,20 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.cfg.CoercionAction;
+import com.fasterxml.jackson.databind.cfg.CoercionInputShape;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
+import com.fasterxml.jackson.databind.type.LogicalType;
public class JsonUtils {
-
+
public static class JsonUtilsException extends Exception {
private static final long serialVersionUID = 1L;
@@ -45,9 +49,8 @@ public JsonUtilsException(String string, Exception e) {
}
- private static Gson gsonCompact;
- private static Gson gsonVerbose;
private static ObjectMapper mapper;
+ private static ObjectMapper mapper_noNulls;
private static Logger logger;
private JsonUtils() {
@@ -55,22 +58,36 @@ private JsonUtils() {
}
static {
- gsonCompact = new GsonBuilder().create();
- gsonVerbose = new GsonBuilder().serializeNulls().create();
mapper = new ObjectMapper();
+ mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
+ mapper.coercionConfigFor(LogicalType.Enum)
+ .setCoercion(CoercionInputShape.EmptyString, CoercionAction.AsNull);
+
+ mapper_noNulls = new ObjectMapper();
+ mapper_noNulls.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
+ mapper_noNulls.setSerializationInclusion(Include.NON_NULL);
}
public static String toJson(Object o, boolean verbose) {
-
// convert java object to JSON format,
// and returned as JSON formatted string
- return verbose ? gsonVerbose.toJson(o) : gsonCompact.toJson(o);
+ try {
+ return verbose ? mapper.writeValueAsString(o) : mapper_noNulls.writeValueAsString(o);
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ return "";
+ }
}
public static Object fromJson(String s, Class> clazz) {
- return gsonCompact.fromJson(s, clazz);
+ try {
+ return jacksonFromJson(s, clazz);
+ } catch (JsonUtilsException e) {
+ e.printStackTrace();
+ return null;
+ }
}
-
+
public static Object jacksonFromJson(String s, Class> clazz) throws JsonUtilsException {
try {
return mapper.readValue(s, clazz);
@@ -86,7 +103,7 @@ public static String newJson(String key, Object value) {
public static ObjectNode cloneObjectNode(ObjectNode src) {
return src.deepCopy();
}
-
+
public static ObjectNode newObjectNode(String key, Object value) {
ObjectNode json = mapper.createObjectNode();
json.putPOJO(key, value);
@@ -155,7 +172,7 @@ public static HashMap jsonNodeToHashMap(JsonNode jsonNode) {
}
return nodeProps;
}
-
+
/**
* Takes in a key, value pair and returns a valid JSON string such as
* {"error":"message"}
@@ -167,14 +184,14 @@ public static HashMap jsonNodeToHashMap(JsonNode jsonNode) {
public static String jsonKeyValue(String key, String value) {
return "{\"" + key + "\":\"" + value + "\"}";
}
-
+
public static BigDecimal decimalValue(JsonNode v) {
- BigDecimal result;
- if (v.isTextual()) {
- result = new BigDecimal(v.textValue());
- } else {
- result = v.decimalValue();
- }
- return result;
+ BigDecimal result;
+ if (v.isTextual()) {
+ result = new BigDecimal(v.textValue());
+ } else {
+ result = v.decimalValue();
+ }
+ return result;
}
}
diff --git a/jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java b/jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java
index 75cf27ad7..ca1a469ac 100644
--- a/jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java
+++ b/jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java
@@ -23,6 +23,7 @@
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
+import com.fasterxml.jackson.dataformat.xml.XmlMapper.Builder;
public class XmlUtils {
public static class XmlUtilsException extends Exception {
@@ -39,21 +40,22 @@ public XmlUtilsException(String string, Exception e) {
}
- private XmlMapper xmlMapper = new XmlMapper();
- private static XmlMapper staticXmlMapper;
-
+ private XmlMapper xmlMapper = new XmlMapper();
+ private static XmlMapper staticXmlMapper = new XmlMapper();
+
static {
- staticXmlMapper = new XmlMapper();
- staticXmlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- staticXmlMapper.setDefaultUseWrapper(true);
+ var builder = new Builder(staticXmlMapper);
+ builder.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ builder.defaultUseWrapper(true);
+ staticXmlMapper = builder.build();
}
-
-
+
public XmlUtils() {
super();
- xmlMapper = new XmlMapper();
- xmlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- xmlMapper.setDefaultUseWrapper(true);
+ var builder = new Builder(xmlMapper);
+ builder.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ builder.defaultUseWrapper(true);
+ xmlMapper = builder.build();
}
public String toXml(Object o) throws JsonProcessingException {
@@ -61,103 +63,98 @@ public String toXml(Object o) throws JsonProcessingException {
return xml;
}
-// public static String toXml(Object o) throws XmlUtilsException {
-// try {
-// JSONObject root = new JSONObject();
-// JSONObject object = new JSONObject(o);
-// root.put(o.getClass().getSimpleName(), object);
-// return XML.toString(root);
-// } catch (JSONException e) {
-// throw new XmlUtilsException("Error encoding object to XML", e);
-// }
-// }
+ // public static String toXml(Object o) throws XmlUtilsException {
+ // try {
+ // JSONObject root = new JSONObject();
+ // JSONObject object = new JSONObject(o);
+ // root.put(o.getClass().getSimpleName(), object);
+ // return XML.toString(root);
+ // } catch (JSONException e) {
+ // throw new XmlUtilsException("Error encoding object to XML", e);
+ // }
+ // }
public Object fromXml(String xml, Class> clazz) throws XmlUtilsException {
try {
return xmlMapper.readValue(xml, clazz);
} catch (Exception e) {
- throw new XmlUtilsException("Error decoding "
- + xml + " to "
- + clazz.getName(), e);
+ throw new XmlUtilsException("Error decoding " + xml + " to " + clazz.getName(), e);
}
}
/**
- * Embeds the arrayNode into an ObjectNode with the given childKey. By default a JSON array
- * such as {"parent":[1, 2, 3,]} will be converted to:
- * 123.
- * This is not often desired as there is no paren object to encompass the array. By calling
- * this method given childKey = "child" and arrayNode = [1, 2, 3,], method will return
- * {"parent":{"child":[1, 2, 3,]}} which as a result will be encoded to
- * 123.
+ * Embeds the arrayNode into an ObjectNode with the given childKey. By default a
+ * JSON array such as {"parent":[1, 2, 3,]} will be converted to:
+ * 123.
+ * This is not often desired as there is no paren object to encompass the array.
+ * By calling this method given childKey = "child" and arrayNode = [1, 2, 3,],
+ * method will return {"parent":{"child":[1, 2, 3,]}} which as a result will be
+ * encoded to
+ * 123.
* Which is a more representative of the JSON ObjectNode.
- *
- * @param childKey: The key to be given to the child array object
+ *
+ * @param childKey: The key to be given to the child array object
* @param arrayNode: The array node to be embedded in a ObjectNode
- * @return OBjectNode representation of the given arrayNode redy to be converted to XML
+ * @return OBjectNode representation of the given arrayNode redy to be converted
+ * to XML
*/
public static ObjectNode createEmbeddedJsonArrayForXmlConversion(String childKey, JsonNode arrayNode) {
- ObjectNode childNode = staticXmlMapper.createObjectNode();
- childNode.set(childKey, arrayNode);
- return childNode;
+ ObjectNode childNode = staticXmlMapper.createObjectNode();
+ childNode.set(childKey, arrayNode);
+ return childNode;
}
public static String toXmlStatic(Object o) throws XmlUtilsException {
- String xml;
- try {
- xml = staticXmlMapper.writeValueAsString(o);
- } catch (Exception e) {
- throw new XmlUtilsException("Error encoding object to XML", e);
- }
- return xml;
+ String xml;
+ try {
+ xml = staticXmlMapper.writeValueAsString(o);
+ } catch (Exception e) {
+ throw new XmlUtilsException("Error encoding object to XML", e);
+ }
+ return xml;
}
public static Object fromXmlS(String xml, Class> clazz) throws XmlUtilsException {
try {
return staticXmlMapper.readValue(xml, clazz);
} catch (Exception e) {
- throw new XmlUtilsException("Error decoding "
- + xml + " to "
- + clazz.getName(), e);
+ throw new XmlUtilsException("Error decoding " + xml + " to " + clazz.getName(), e);
}
}
public static ObjectNode toObjectNode(String xml) throws XmlUtilsException {
try {
- JSONObject jsonObject = XML.toJSONObject(xml);
+ JSONObject jsonObject = XML.toJSONObject(xml, true);
String jsonString = jsonObject.toString();
return JsonUtils.toObjectNode(jsonString);
-
+
/*
- * Due to issues with XmlMapper converting "xml arrays" to a valid DOM collection
- * we could not use it in this context. Hence the above workaround was adopted.
- * See: https://github.com/FasterXML/jackson-dataformat-xml/issues/187
- * https://github.com/FasterXML/jackson-dataformat-xml/issues/205
+ * Due to issues with XmlMapper converting "xml arrays" to a valid DOM
+ * collection we could not use it in this context. Hence the above workaround
+ * was adopted. See:
+ * https://github.com/FasterXML/jackson-dataformat-xml/issues/187
+ * https://github.com/FasterXML/jackson-dataformat-xml/issues/205
*/
- //return (ObjectNode) staticXmlMapper.readTree(xml);
+ // return (ObjectNode) staticXmlMapper.readTree(xml);
} catch (Exception e) {
throw new XmlUtilsException("Error decoding " + xml + "to ObjectNode", e);
}
}
-
public static JSONObject toJSONObject(String xml) throws XmlUtilsException {
try {
- return XML.toJSONObject(xml);
+ return XML.toJSONObject(xml, true);
} catch (Exception e) {
throw new XmlUtilsException("Error decoding " + xml + "to JSONObject", e);
}
}
-
public static JsonNode getJsonNode(String tree, String fieldName) throws XmlUtilsException {
JsonNode jsonNode;
try {
jsonNode = staticXmlMapper.readTree(tree);
} catch (Exception e) {
- throw new XmlUtilsException("Error getting field name "
- + fieldName + " from "
- + tree, e);
+ throw new XmlUtilsException("Error getting field name " + fieldName + " from " + tree, e);
}
return jsonNode.get(fieldName);
}
@@ -171,4 +168,3 @@ public static XmlMapper getStaticXmlMapper() {
}
}
-
diff --git a/jpo-ode-common/src/test/java/us/dot/its/jpo/ode/inet/InetPacketSenderTest.java b/jpo-ode-common/src/test/java/us/dot/its/jpo/ode/inet/InetPacketSenderTest.java
index 15ea4bdce..6960eae9e 100644
--- a/jpo-ode-common/src/test/java/us/dot/its/jpo/ode/inet/InetPacketSenderTest.java
+++ b/jpo-ode-common/src/test/java/us/dot/its/jpo/ode/inet/InetPacketSenderTest.java
@@ -31,7 +31,7 @@
import java.net.UnknownHostException;
import java.util.Arrays;
-import org.apache.log4j.Logger;
+import us.dot.its.jpo.ode.eventlog.EventLogger;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
@@ -44,8 +44,6 @@ public class InetPacketSenderTest {
static final private boolean isDebugOutput = false;
- private static Logger log = Logger.getLogger(InetPacketSenderTest.class);
-
private static final int DEFAULT_MAX_PACKET_SIZE = 65535;
private static final String TRANSPORT_HOST = "localhost";
@@ -192,15 +190,15 @@ public void run() {
socket.receive(datagramPacket);
validatePacket(datagramPacket);
} catch (SocketTimeoutException ex) {
- log.error(
+ EventLogger.logger.error(
String.format("Caught socket timeout exception while recieving message on port %d. Max size is %d",
listenPort, DEFAULT_MAX_PACKET_SIZE),
ex);
} catch (SocketException ex) {
- log.error(String.format("Caught socket exception while recieving message on port %d. Max size is %d",
+ EventLogger.logger.error(String.format("Caught socket exception while recieving message on port %d. Max size is %d",
listenPort, DEFAULT_MAX_PACKET_SIZE), ex);
} catch (IOException ex) {
- log.error(
+ EventLogger.logger.error(
String.format("Caught IO exception exception while recieving message on port %d. Max size is %d",
listenPort, DEFAULT_MAX_PACKET_SIZE),
ex);
diff --git a/jpo-ode-common/src/test/java/us/dot/its/jpo/ode/inet/InetPacketTest.java b/jpo-ode-common/src/test/java/us/dot/its/jpo/ode/inet/InetPacketTest.java
index e555d05ce..0ff31a480 100644
--- a/jpo-ode-common/src/test/java/us/dot/its/jpo/ode/inet/InetPacketTest.java
+++ b/jpo-ode-common/src/test/java/us/dot/its/jpo/ode/inet/InetPacketTest.java
@@ -16,18 +16,15 @@
package us.dot.its.jpo.ode.inet;
import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.net.DatagramPacket;
-import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.junit.Before;
import org.junit.Test;
-import mockit.Capturing;
import mockit.Expectations;
import mockit.Mock;
import mockit.MockUp;
@@ -41,14 +38,13 @@ public class InetPacketTest {
DatagramPacket mockDatagramPacket;
byte[] mockPayload;
- @Mocked InetAddress address;
+ @Mocked InetAddress mockAddress;
@Before
public void setup() {
new MockUp() {
- @Mock
- public InetAddress getByName(String host) {
- return address;
+ @Mock InetAddress getByName(String host) {
+ return mockAddress;
}
};
}
@@ -87,7 +83,7 @@ public void testByteConstructor() {
*/
@Test
- public void parseBundleNulll() {
+ public void parseBundleNull() {
InetPacket testPacket = new InetPacket(new byte[] { 1, 2, 3 });
byte[] bundle = null;
diff --git a/jpo-ode-common/src/test/java/us/dot/its/jpo/ode/util/JsonUtilsTest.java b/jpo-ode-common/src/test/java/us/dot/its/jpo/ode/util/JsonUtilsTest.java
index 28ad2c3db..5487aacb4 100644
--- a/jpo-ode-common/src/test/java/us/dot/its/jpo/ode/util/JsonUtilsTest.java
+++ b/jpo-ode-common/src/test/java/us/dot/its/jpo/ode/util/JsonUtilsTest.java
@@ -120,21 +120,21 @@ public void testToJson() {
@Test
public void testNewJson() {
String j = JsonUtils.newJson("key", "value");
- assertEquals("{\"key\":value}", j);
+ assertEquals("{\"key\":\"value\"}", j);
}
@Test
public void testNewObjectNode() {
ObjectNode j = JsonUtils.newObjectNode("key", "value");
- assertEquals("{\"key\":value}", j.toString());
+ assertEquals("{\"key\":\"value\"}", j.toString());
}
@Test
public void testAddNode() {
ObjectNode j = JsonUtils.newObjectNode("key", "value");
ObjectNode j2 = JsonUtils.addNode(j, "key2", "value2");
- assertEquals("{\"key\":value,\"key2\":value2}", j.toString());
- assertEquals("{\"key\":value,\"key2\":value2}", j2.toString());
+ assertEquals("{\"key\":\"value\",\"key2\":\"value2\"}", j.toString());
+ assertEquals("{\"key\":\"value\",\"key2\":\"value2\"}", j2.toString());
}
@Test
@@ -157,7 +157,7 @@ public void testToObjectNode() throws JsonUtilsException {
assertEquals(expectedOvdf, ovdf.toString());
JsonUtils.addNode(ovdf, "avgSpeed", "2.22");
assertEquals(
- "{\"className\":\"com.bah.ode.model.OdeVehicleDataFlat\",\"serialId\":\"10817812-036b-4d7b-867b-ae0bc62a2b3e.0\",\"receivedAt\":\"2015-07-22T19:21:16.413+0000\",\"groupId\":\"4130008F\",\"accelLong\":0.34,\"accelVert\":0.0,\"accellYaw\":8.42,\"heading\":65.95,\"speed\":8.12,\"sizeLength\":500,\"sizeWidth\":200,\"latitude\":42.3296667,\"longitude\":-83.044539,\"elevation\":156.9,\"tempId\":\"C4290123\",\"year\":2015,\"month\":5,\"day\":13,\"hour\":15,\"minute\":52,\"second\":45.5,\"dateTime\":\"2015-06-13T19:52:45.500+0000\",\"avgSpeed\":2.22}",
+ "{\"className\":\"com.bah.ode.model.OdeVehicleDataFlat\",\"serialId\":\"10817812-036b-4d7b-867b-ae0bc62a2b3e.0\",\"receivedAt\":\"2015-07-22T19:21:16.413+0000\",\"groupId\":\"4130008F\",\"accelLong\":0.34,\"accelVert\":0.0,\"accellYaw\":8.42,\"heading\":65.95,\"speed\":8.12,\"sizeLength\":500,\"sizeWidth\":200,\"latitude\":42.3296667,\"longitude\":-83.044539,\"elevation\":156.9,\"tempId\":\"C4290123\",\"year\":2015,\"month\":5,\"day\":13,\"hour\":15,\"minute\":52,\"second\":45.5,\"dateTime\":\"2015-06-13T19:52:45.500+0000\",\"avgSpeed\":\"2.22\"}",
ovdf.toString());
}
@@ -201,7 +201,7 @@ public void testPutObject() {
ObjectNode dm = JsonUtils.newNode();
dm.putObject("metadata");
dm.putObject("payload").setAll(JsonUtils.newObjectNode("key1", "value1"));
- assertEquals("{\"metadata\":{},\"payload\":{\"key1\":value1}}", dm.toString());
+ assertEquals("{\"metadata\":{},\"payload\":{\"key1\":\"value1\"}}", dm.toString());
}
}
diff --git a/jpo-ode-common/src/test/java/us/dot/its/jpo/ode/util/XmlUtilsTest.java b/jpo-ode-common/src/test/java/us/dot/its/jpo/ode/util/XmlUtilsTest.java
new file mode 100644
index 000000000..380d07b31
--- /dev/null
+++ b/jpo-ode-common/src/test/java/us/dot/its/jpo/ode/util/XmlUtilsTest.java
@@ -0,0 +1,19 @@
+package us.dot.its.jpo.ode.util;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+import us.dot.its.jpo.ode.util.XmlUtils.XmlUtilsException;
+
+public class XmlUtilsTest {
+
+ @Test
+ public void testToJsonObject() throws XmlUtilsException {
+ var myXml = "5651E543";
+ var json = XmlUtils.toJSONObject(myXml);
+ var parsedRecordId = json.getString("recordId");
+ // JSON shouldn't be converted to scientific notation
+ assertEquals("5651E543", parsedRecordId);
+ }
+
+}
diff --git a/jpo-ode-core/pom.xml b/jpo-ode-core/pom.xml
index d0ae7e3ee..2f7b1ca9b 100644
--- a/jpo-ode-core/pom.xml
+++ b/jpo-ode-core/pom.xml
@@ -70,6 +70,10 @@
org.slf4j
slf4j-log4j12
+
+ log4j
+ log4j
+
@@ -88,4 +92,4 @@
-
+
\ No newline at end of file
diff --git a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/dds/DdsDepRequest.java b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/dds/DdsDepRequest.java
index d47658251..8eeb712ed 100644
--- a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/dds/DdsDepRequest.java
+++ b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/dds/DdsDepRequest.java
@@ -15,11 +15,14 @@
******************************************************************************/
package us.dot.its.jpo.ode.dds;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
/**
- * "DEPOSIT: { \"systemDepositName\": \"%s\", \"encodeType\": \"%s\", \"encodedMsg\": \"%s\" }"
+ * "DEPOSIT: { \"systemDepositName\": \"%s\", \"encodeType\": \"%s\",
+ * \"encodedMsg\": \"%s\" }"
*
*/
+@JsonPropertyOrder({ "systemDepositName", "encodeType", "encodedMsg" })
public class DdsDepRequest extends DdsRequest {
private static final long serialVersionUID = 6066887685895268828L;
@@ -28,7 +31,6 @@ public class DdsDepRequest extends DdsRequest {
private String encodeType;
private String encodedMsg;
-
public String getSystemDepositName() {
return systemDepositName;
}
diff --git a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeAsdPayload.java b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeAsdPayload.java
index be6e575ac..a2b9355c3 100644
--- a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeAsdPayload.java
+++ b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeAsdPayload.java
@@ -18,24 +18,14 @@
import us.dot.its.jpo.ode.plugin.j2735.DdsAdvisorySituationData;
public class OdeAsdPayload extends OdeMsgPayload {
-
- private static final long serialVersionUID = 7061315628111448390L;
- public OdeAsdPayload() {
- this(new DdsAdvisorySituationData());
- }
+ private static final long serialVersionUID = 7061315628111448390L;
- public OdeAsdPayload(DdsAdvisorySituationData asd) {
- super(asd);
- this.setData(asd);
- }
-
- public DdsAdvisorySituationData getAsd() {
- return (DdsAdvisorySituationData) getData();
- }
-
- public void setAsd(DdsAdvisorySituationData asd) {
- setData(asd);
- }
+ public OdeAsdPayload() {
+ this(new DdsAdvisorySituationData());
+ }
+ public OdeAsdPayload(DdsAdvisorySituationData asd) {
+ super(asd);
+ }
}
diff --git a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeBsmMetadata.java b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeBsmMetadata.java
index 2fe6dec92..3c5c0f92e 100644
--- a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeBsmMetadata.java
+++ b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeBsmMetadata.java
@@ -15,43 +15,48 @@
******************************************************************************/
package us.dot.its.jpo.ode.model;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+@JsonPropertyOrder({ "bsmSource", "logFileName", "recordType", "securityResultCode", "receivedMessageDetails",
+ "encodings", "payloadType", "serialId", "odeReceivedAt", "schemaVersion", "maxDurationTime", "recordGeneratedAt",
+ "recordGeneratedBy", "sanitized" })
public class OdeBsmMetadata extends OdeLogMetadata {
- private static final long serialVersionUID = -8601265839394150140L;
+ private static final long serialVersionUID = -8601265839394150140L;
+
+ private String originIp;
+
+ public enum BsmSource {
+ EV, RV, unknown
+ }
- private String originIp;
+ private BsmSource bsmSource;
- public enum BsmSource {
- EV, RV, unknown
- }
+ public OdeBsmMetadata() {
+ super();
+ }
- private BsmSource bsmSource;
-
- public OdeBsmMetadata() {
- super();
- }
+ public OdeBsmMetadata(OdeMsgPayload payload) {
+ super(payload);
+ }
- public OdeBsmMetadata(OdeMsgPayload payload) {
- super(payload);
- }
+ public OdeBsmMetadata(OdeMsgPayload payload, SerialId serialId, String receivedAt) {
- public OdeBsmMetadata(OdeMsgPayload payload, SerialId serialId, String receivedAt) {
-
- }
+ }
- public BsmSource getBsmSource() {
- return bsmSource;
- }
+ public BsmSource getBsmSource() {
+ return bsmSource;
+ }
- public void setBsmSource(BsmSource bsmSource) {
- this.bsmSource = bsmSource;
- }
+ public void setBsmSource(BsmSource bsmSource) {
+ this.bsmSource = bsmSource;
+ }
- public String getOriginIp() {
- return originIp;
- }
+ public String getOriginIp() {
+ return originIp;
+ }
- public void setOriginIp(String originIp) {
- this.originIp = originIp;
- }
+ public void setOriginIp(String originIp) {
+ this.originIp = originIp;
+ }
}
diff --git a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeData.java b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeData.java
index 3f0732dec..a00dadcd2 100644
--- a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeData.java
+++ b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeData.java
@@ -15,6 +15,9 @@
******************************************************************************/
package us.dot.its.jpo.ode.model;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+@JsonPropertyOrder({ "metadata", "payload" })
public class OdeData extends OdeObject implements OdeFilterable {
private static final long serialVersionUID = -7711340868799607662L;
diff --git a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeLogMetadata.java b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeLogMetadata.java
index 90f93f973..ffa206a34 100644
--- a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeLogMetadata.java
+++ b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeLogMetadata.java
@@ -18,6 +18,11 @@
import java.util.ArrayList;
import java.util.List;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+@JsonPropertyOrder({ "logFileName", "recordType", "securityResultCode", "receivedMessageDetails", "longitude",
+ "elevation", "speed", "heading", "rxSource", "encodings", "payloadType", "serialId", "odeReceivedAt",
+ "schemaVersion", "maxDurationTime", "recordGeneratedAt", "recordGeneratedBy", "sanitized" })
public class OdeLogMetadata extends OdeMsgMetadata {
private static final long serialVersionUID = -8601265839394150140L;
@@ -84,33 +89,33 @@ public OdeLogMetadata(String payloadType, SerialId serialId, String receivedAt)
}
public void calculateGeneratedBy() {
- ReceivedMessageDetails receivedMessageDetails = getReceivedMessageDetails();
- if (receivedMessageDetails != null) {
- if (receivedMessageDetails.getRxSource() != null) {
- switch (receivedMessageDetails.getRxSource()) {
- case RSU:
- setRecordGeneratedBy(GeneratedBy.RSU);
- break;
- case RV:
- case NA:
- setRecordGeneratedBy(GeneratedBy.OBU);
- break;
- case SAT:
- setRecordGeneratedBy(GeneratedBy.TMC_VIA_SAT);
- break;
- case SNMP:
- setRecordGeneratedBy(GeneratedBy.TMC_VIA_SNMP);
- break;
- default:
- setRecordGeneratedBy(GeneratedBy.UNKNOWN);
- break;
+ ReceivedMessageDetails receivedMessageDetails = getReceivedMessageDetails();
+ if (receivedMessageDetails != null) {
+ if (receivedMessageDetails.getRxSource() != null) {
+ switch (receivedMessageDetails.getRxSource()) {
+ case RSU:
+ setRecordGeneratedBy(GeneratedBy.RSU);
+ break;
+ case RV:
+ case NA:
+ setRecordGeneratedBy(GeneratedBy.OBU);
+ break;
+ case SAT:
+ setRecordGeneratedBy(GeneratedBy.TMC_VIA_SAT);
+ break;
+ case SNMP:
+ setRecordGeneratedBy(GeneratedBy.TMC_VIA_SNMP);
+ break;
+ default:
+ setRecordGeneratedBy(GeneratedBy.UNKNOWN);
+ break;
+ }
}
- }
- } else {
- setRecordGeneratedBy(GeneratedBy.OBU);
- }
+ } else {
+ setRecordGeneratedBy(GeneratedBy.OBU);
+ }
}
-
+
public String getLogFileName() {
return logFileName;
}
diff --git a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeMsgMetadata.java b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeMsgMetadata.java
index 768865a57..4590491e9 100644
--- a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeMsgMetadata.java
+++ b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeMsgMetadata.java
@@ -15,8 +15,12 @@
******************************************************************************/
package us.dot.its.jpo.ode.model;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
import us.dot.its.jpo.ode.util.DateTimeUtils;
+@JsonPropertyOrder({ "logFileName", "recordType", "receivedMessageDetails", "payloadType", "serialId",
+ "odeReceivedAt", "schemaVersion", "maxDurationTime", "recordGeneratedAt", "recordGeneratedBy", "sanitized" })
public class OdeMsgMetadata extends OdeObject {
public enum GeneratedBy {
@@ -31,9 +35,9 @@ public enum GeneratedBy {
private SerialId serialId;
private String odeReceivedAt;
private int schemaVersion;
- private int maxDurationTime;
- private String odePacketID;
- private String odeTimStartDateTime;
+ private int maxDurationTime;
+ private String odePacketID;
+ private String odeTimStartDateTime;
private String recordGeneratedAt;
private GeneratedBy recordGeneratedBy;
private boolean sanitized = false;
@@ -95,33 +99,32 @@ public int getSchemaVersion() {
public void setSchemaVersion(int aSchemaVersion) {
schemaVersion = aSchemaVersion;
}
-public int getMaxDurationTime() {
- return maxDurationTime;
- }
- public void setMaxDurationTime(int maxDurationTime) {
- this.maxDurationTime = maxDurationTime;
- }
+ public int getMaxDurationTime() {
+ return maxDurationTime;
+ }
- public String getOdePacketID() {
- return odePacketID;
- }
+ public void setMaxDurationTime(int maxDurationTime) {
+ this.maxDurationTime = maxDurationTime;
+ }
- public void setOdePacketID(String odePacketID) {
- this.odePacketID = odePacketID;
- }
+ public String getOdePacketID() {
+ return odePacketID;
+ }
-
+ public void setOdePacketID(String odePacketID) {
+ this.odePacketID = odePacketID;
+ }
- public String getOdeTimStartDateTime() {
- return odeTimStartDateTime;
- }
+ public String getOdeTimStartDateTime() {
+ return odeTimStartDateTime;
+ }
- public void setOdeTimStartDateTime(String odeTimStartDateTime) {
- this.odeTimStartDateTime = odeTimStartDateTime;
- }
+ public void setOdeTimStartDateTime(String odeTimStartDateTime) {
+ this.odeTimStartDateTime = odeTimStartDateTime;
+ }
-public String getRecordGeneratedAt() {
+ public String getRecordGeneratedAt() {
return recordGeneratedAt;
}
@@ -145,7 +148,6 @@ public void setSanitized(boolean sanitized) {
this.sanitized = sanitized;
}
-
public static int getStaticSchemaVersion() {
return staticSchemaVersion;
}
diff --git a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeTimPayload.java b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeTimPayload.java
index b3ecd5565..b5e9e0e7b 100644
--- a/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeTimPayload.java
+++ b/jpo-ode-core/src/main/java/us/dot/its/jpo/ode/model/OdeTimPayload.java
@@ -18,24 +18,15 @@
import us.dot.its.jpo.ode.plugin.j2735.OdeTravelerInformationMessage;
public class OdeTimPayload extends OdeMsgPayload {
-
- private static final long serialVersionUID = 7061315628111448390L;
- public OdeTimPayload() {
- this(new OdeTravelerInformationMessage());
- }
+ private static final long serialVersionUID = 7061315628111448390L;
- public OdeTimPayload(OdeTravelerInformationMessage tim) {
- super(tim);
- this.setData(tim);
- }
-
- public OdeTravelerInformationMessage getTim() {
- return (OdeTravelerInformationMessage) getData();
- }
-
- public void setTim(OdeTravelerInformationMessage tim) {
- setData(tim);
- }
+ public OdeTimPayload() {
+ this(new OdeTravelerInformationMessage());
+ }
+ public OdeTimPayload(OdeTravelerInformationMessage tim) {
+ super(tim);
+ this.setData(tim);
+ }
}
diff --git a/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/dds/DdsDepRequestTest.java b/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/dds/DdsDepRequestTest.java
index 256225340..5989cb514 100644
--- a/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/dds/DdsDepRequestTest.java
+++ b/jpo-ode-core/src/test/java/us/dot/its/jpo/ode/dds/DdsDepRequestTest.java
@@ -57,7 +57,7 @@ public void testToString() {
ddsDepRequest.setEncodeType(encodeType);
ddsDepRequest.setSystemDepositName(depositName);
String expectedStr = "DEPOSIT:{\"systemDepositName\":\"testDepositName\",\"encodeType\":\"hex\",\"dialogID\":0}";
- assertEquals(ddsDepRequest.toString(), expectedStr);
+ assertEquals(expectedStr, ddsDepRequest.toString());
}
@Test
diff --git a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/ieee1609dot2/Ieee1609Dot2DataTag.java b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/ieee1609dot2/Ieee1609Dot2DataTag.java
index 90aad2018..a9027240b 100644
--- a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/ieee1609dot2/Ieee1609Dot2DataTag.java
+++ b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/ieee1609dot2/Ieee1609Dot2DataTag.java
@@ -15,6 +15,8 @@
******************************************************************************/
package us.dot.its.jpo.ode.plugin.ieee1609dot2;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
import us.dot.its.jpo.ode.plugin.asn1.Asn1Object;
public class Ieee1609Dot2DataTag extends Asn1Object {
@@ -23,6 +25,7 @@ public class Ieee1609Dot2DataTag extends Asn1Object {
private Ieee1609Dot2Data Ieee1609Dot2Data;
+ @JsonProperty("Ieee1609Dot2Data")
public Ieee1609Dot2Data getIeee1609Dot2Data() {
return Ieee1609Dot2Data;
}
diff --git a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/DsrcPosition3D.java b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/DsrcPosition3D.java
index ece4a60f0..2bd069564 100644
--- a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/DsrcPosition3D.java
+++ b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/DsrcPosition3D.java
@@ -15,18 +15,16 @@
******************************************************************************/
package us.dot.its.jpo.ode.plugin.j2735;
-import com.google.gson.annotations.SerializedName;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import us.dot.its.jpo.ode.plugin.asn1.Asn1Object;
+@JsonPropertyOrder({ "lat", "long", "elevation" })
public class DsrcPosition3D extends Asn1Object {
private static final long serialVersionUID = 1L;
-
- @SerializedName("lat")
- private Long lat; // in degrees
- @SerializedName("long")
- private Long _long; // in degrees
- @SerializedName("elevation")
+ private Long latitude; // in degrees
+ private Long longitude; // in degrees
private Long elevation; // in meters
public DsrcPosition3D() {
@@ -35,27 +33,30 @@ public DsrcPosition3D() {
public DsrcPosition3D(Long latitude, Long longitude, Long elevation) {
super();
- this.lat = latitude;
- this._long = longitude;
+ this.latitude = latitude;
+ this.longitude = longitude;
this.elevation = elevation;
}
+ @JsonProperty("lat")
public Long getLatitude() {
- return lat;
+ return latitude;
}
public void setLatitude(Long latitude) {
- this.lat = latitude;
+ this.latitude = latitude;
}
+ @JsonProperty("long")
public Long getLongitude() {
- return _long;
+ return longitude;
}
public void setLongitude(Long longitude) {
- this._long = longitude;
+ this.longitude = longitude;
}
+ @JsonProperty("elevation")
public Long getElevation() {
return elevation;
}
@@ -68,9 +69,9 @@ public void setElevation(Long elevation) {
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + ((_long == null) ? 0 : _long.hashCode());
+ result = prime * result + ((longitude == null) ? 0 : longitude.hashCode());
result = prime * result + ((elevation == null) ? 0 : elevation.hashCode());
- result = prime * result + ((lat == null) ? 0 : lat.hashCode());
+ result = prime * result + ((latitude == null) ? 0 : latitude.hashCode());
return result;
}
@@ -83,20 +84,20 @@ public boolean equals(Object obj) {
if (getClass() != obj.getClass())
return false;
DsrcPosition3D other = (DsrcPosition3D) obj;
- if (_long == null) {
- if (other._long != null)
+ if (longitude == null) {
+ if (other.longitude != null)
return false;
- } else if (!_long.equals(other._long))
+ } else if (!longitude.equals(other.longitude))
return false;
if (elevation == null) {
if (other.elevation != null)
return false;
} else if (!elevation.equals(other.elevation))
return false;
- if (lat == null) {
- if (other.lat != null)
+ if (latitude == null) {
+ if (other.latitude != null)
return false;
- } else if (!lat.equals(other.lat))
+ } else if (!latitude.equals(other.latitude))
return false;
return true;
}
diff --git a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735IntersectionGeometryList.java b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735IntersectionGeometryList.java
index e81e17402..21b388786 100644
--- a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735IntersectionGeometryList.java
+++ b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735IntersectionGeometryList.java
@@ -3,6 +3,8 @@
import java.util.ArrayList;
import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
import us.dot.its.jpo.ode.plugin.asn1.Asn1Object;
public class J2735IntersectionGeometryList extends Asn1Object {
@@ -12,11 +14,14 @@ public class J2735IntersectionGeometryList extends Asn1Object {
*/
private static final long serialVersionUID = 1L;
private List intersectionGeometry = new ArrayList<>();
+
+ @JsonProperty("intersectionGeometry")
public List getIntersections() {
return intersectionGeometry;
}
+
public void setIntersections(List intersectionGeometry) {
this.intersectionGeometry = intersectionGeometry;
}
-
+
}
diff --git a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735LaneList.java b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735LaneList.java
index 1e9780a86..6fc1ab2e2 100644
--- a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735LaneList.java
+++ b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735LaneList.java
@@ -3,12 +3,15 @@
import java.util.ArrayList;
import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
import us.dot.its.jpo.ode.plugin.asn1.Asn1Object;
public class J2735LaneList extends Asn1Object {
private static final long serialVersionUID = 1L;
private List GenericLane = new ArrayList<>();
+ @JsonProperty("GenericLane")
public List getLaneSet() {
return GenericLane;
}
diff --git a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735NodeListXY.java b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735NodeListXY.java
index f2c91315b..9be72df3d 100644
--- a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735NodeListXY.java
+++ b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735NodeListXY.java
@@ -1,5 +1,7 @@
package us.dot.its.jpo.ode.plugin.j2735;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
import us.dot.its.jpo.ode.plugin.asn1.Asn1Object;
public class J2735NodeListXY extends Asn1Object {
@@ -10,6 +12,7 @@ public class J2735NodeListXY extends Asn1Object {
private J2735NodeSetXY nodes;
private J2735ComputedLane computed;
+ @JsonProperty("nodes")
public J2735NodeSetXY getNodes() {
return nodes;
}
diff --git a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735NodeSetXY.java b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735NodeSetXY.java
index 8b412e5f1..536814d54 100644
--- a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735NodeSetXY.java
+++ b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735NodeSetXY.java
@@ -3,6 +3,8 @@
import java.util.ArrayList;
import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
import us.dot.its.jpo.ode.plugin.asn1.Asn1Object;
public class J2735NodeSetXY extends Asn1Object {
@@ -11,6 +13,8 @@ public class J2735NodeSetXY extends Asn1Object {
*/
private static final long serialVersionUID = 1L;
private List NodeXY = new ArrayList<>();
+
+ @JsonProperty("NodeXY")
public List getNodes() {
return NodeXY;
}
diff --git a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735SignalRequestList.java b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735SignalRequestList.java
index da0b45270..d04a54182 100644
--- a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735SignalRequestList.java
+++ b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735SignalRequestList.java
@@ -3,6 +3,8 @@
import java.util.ArrayList;
import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
import us.dot.its.jpo.ode.plugin.asn1.Asn1Object;
public class J2735SignalRequestList extends Asn1Object {
@@ -10,6 +12,7 @@ public class J2735SignalRequestList extends Asn1Object {
private static final long serialVersionUID = 1L;
private List signalRequestPackage = new ArrayList<>();
+ @JsonProperty("signalRequestPackage")
public List getRequests() {
return signalRequestPackage;
}
diff --git a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735SignalStatusList.java b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735SignalStatusList.java
index 2f3222f84..07af7772b 100644
--- a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735SignalStatusList.java
+++ b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735SignalStatusList.java
@@ -3,6 +3,8 @@
import java.util.ArrayList;
import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
import us.dot.its.jpo.ode.plugin.asn1.Asn1Object;
public class J2735SignalStatusList extends Asn1Object {
@@ -10,6 +12,7 @@ public class J2735SignalStatusList extends Asn1Object {
private static final long serialVersionUID = 1L;
private List signalStatus = new ArrayList<>();
+ @JsonProperty("signalStatus")
public List getStatus() {
return signalStatus;
}
diff --git a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735SignalStatusPackageList.java b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735SignalStatusPackageList.java
index 771742655..4c3747d4a 100644
--- a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735SignalStatusPackageList.java
+++ b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/J2735SignalStatusPackageList.java
@@ -3,6 +3,8 @@
import java.util.ArrayList;
import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
import us.dot.its.jpo.ode.plugin.asn1.Asn1Object;
public class J2735SignalStatusPackageList extends Asn1Object {
@@ -10,6 +12,7 @@ public class J2735SignalStatusPackageList extends Asn1Object {
private static final long serialVersionUID = 1L;
private List signalStatusPackage = new ArrayList<>();
+ @JsonProperty("signalStatusPackage")
public List getSigStatus() {
return signalStatusPackage;
}
diff --git a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/OdeTravelerInformationMessage.java b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/OdeTravelerInformationMessage.java
index 16ba72ad0..84e106cd5 100644
--- a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/OdeTravelerInformationMessage.java
+++ b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/OdeTravelerInformationMessage.java
@@ -18,7 +18,6 @@
import java.math.BigDecimal;
import com.fasterxml.jackson.databind.JsonNode;
-import com.google.gson.annotations.Expose;
import us.dot.its.jpo.ode.model.OdeObject;
import us.dot.its.jpo.ode.plugin.asn1.Asn1Object;
@@ -32,20 +31,14 @@
import us.dot.its.jpo.ode.plugin.j2735.timstorage.MutcdCode;
public class OdeTravelerInformationMessage extends OdeObject {
-
- private static final long serialVersionUID = -200529140190872305L;
- @Expose
+ private static final long serialVersionUID = -200529140190872305L;
+
private int msgCnt;
- @Expose
private String timeStamp;
- @Expose
private String packetID;
- @Expose
private String urlB;
- @Expose
private DataFrame[] dataframes;
- @Expose(serialize = false, deserialize = true)
private transient JsonNode asnDataFrames;
public int getMsgCnt() {
@@ -88,7 +81,7 @@ public void setUrlB(String urlB) {
this.urlB = urlB;
}
- public JsonNode getAsnDataFrames() {
+ public JsonNode getAsnDataFrames() {
return asnDataFrames;
}
@@ -97,56 +90,59 @@ public void setAsnDataFrames(JsonNode stringDataFrames) {
}
public static class NodeListXY extends OdeObject {
- private static final long serialVersionUID = 1L;
- private ComputedLane computedLane;
- private NodeXY[] nodexy;
-
- public ComputedLane getComputedLane() {
- return computedLane;
- }
- public void setComputedLane(ComputedLane computedLane) {
- this.computedLane = computedLane;
- }
- public NodeXY[] getNodexy() {
- return nodexy;
- }
- public void setNodexy(NodeXY[] nodexy) {
- this.nodexy = nodexy;
- }
+ private static final long serialVersionUID = 1L;
+ private ComputedLane computedLane;
+ private NodeXY[] nodexy;
+
+ public ComputedLane getComputedLane() {
+ return computedLane;
+ }
+
+ public void setComputedLane(ComputedLane computedLane) {
+ this.computedLane = computedLane;
+ }
+
+ public NodeXY[] getNodexy() {
+ return nodexy;
+ }
+
+ public void setNodexy(NodeXY[] nodexy) {
+ this.nodexy = nodexy;
+ }
}
- public static class Area extends OdeObject {
- private static final long serialVersionUID = 1L;
-
- private ShapePointSet shapepoint;
- private Circle circle;
- private RegionPointSet regionPoint;
+ public static class Area extends OdeObject {
+ private static final long serialVersionUID = 1L;
- public ShapePointSet getShapepoint() {
- return shapepoint;
- }
+ private ShapePointSet shapepoint;
+ private Circle circle;
+ private RegionPointSet regionPoint;
- public void setShapepoint(ShapePointSet shapepoint) {
- this.shapepoint = shapepoint;
- }
+ public ShapePointSet getShapepoint() {
+ return shapepoint;
+ }
- public Circle getCircle() {
- return circle;
- }
+ public void setShapepoint(ShapePointSet shapepoint) {
+ this.shapepoint = shapepoint;
+ }
- public void setCircle(Circle circle) {
- this.circle = circle;
- }
+ public Circle getCircle() {
+ return circle;
+ }
+
+ public void setCircle(Circle circle) {
+ this.circle = circle;
+ }
- public RegionPointSet getRegionPoint() {
- return regionPoint;
- }
+ public RegionPointSet getRegionPoint() {
+ return regionPoint;
+ }
- public void setRegionPoint(RegionPointSet regionPoint) {
- this.regionPoint = regionPoint;
- }
+ public void setRegionPoint(RegionPointSet regionPoint) {
+ this.regionPoint = regionPoint;
+ }
- }
+ }
public static class ComputedLane extends OdeObject {
@@ -157,41 +153,53 @@ public static class ComputedLane extends OdeObject {
private BigDecimal rotateXY;
private BigDecimal scaleXaxis;
private BigDecimal scaleYaxis;
+
public int getReferenceLaneId() {
- return referenceLaneId;
+ return referenceLaneId;
}
+
public void setReferenceLaneId(int referenceLaneId) {
- this.referenceLaneId = referenceLaneId;
+ this.referenceLaneId = referenceLaneId;
}
+
public BigDecimal getOffsetXaxis() {
- return offsetXaxis;
+ return offsetXaxis;
}
+
public void setOffsetXaxis(BigDecimal offsetXaxis) {
- this.offsetXaxis = offsetXaxis;
+ this.offsetXaxis = offsetXaxis;
}
+
public BigDecimal getOffsetYaxis() {
- return offsetYaxis;
+ return offsetYaxis;
}
+
public void setOffsetYaxis(BigDecimal offsetYaxis) {
- this.offsetYaxis = offsetYaxis;
+ this.offsetYaxis = offsetYaxis;
}
+
public BigDecimal getRotateXY() {
- return rotateXY;
+ return rotateXY;
}
+
public void setRotateXY(BigDecimal rotateXY) {
- this.rotateXY = rotateXY;
+ this.rotateXY = rotateXY;
}
+
public BigDecimal getScaleXaxis() {
- return scaleXaxis;
+ return scaleXaxis;
}
+
public void setScaleXaxis(BigDecimal scaleXaxis) {
- this.scaleXaxis = scaleXaxis;
+ this.scaleXaxis = scaleXaxis;
}
+
public BigDecimal getScaleYaxis() {
- return scaleYaxis;
+ return scaleYaxis;
}
+
public void setScaleYaxis(BigDecimal scaleYaxis) {
- this.scaleYaxis = scaleYaxis;
+ this.scaleYaxis = scaleYaxis;
}
}
@@ -488,41 +496,40 @@ public static class ShapePointSet extends OdeObject {
private NodeListXY nodeList;
public OdePosition3D getAnchor() {
- return anchor;
+ return anchor;
}
- public void setAnchor(OdePosition3D anchor) {
- this.anchor = anchor;
- }
-
+ public void setAnchor(OdePosition3D anchor) {
+ this.anchor = anchor;
+ }
- public BigDecimal getLaneWidth() {
+ public BigDecimal getLaneWidth() {
return laneWidth;
- }
+ }
- public void setLaneWidth(BigDecimal laneWidth) {
- this.laneWidth = laneWidth;
- }
+ public void setLaneWidth(BigDecimal laneWidth) {
+ this.laneWidth = laneWidth;
+ }
- public int getDirectionality() {
- return directionality;
- }
+ public int getDirectionality() {
+ return directionality;
+ }
- public void setDirectionality(int directionality) {
- this.directionality = directionality;
- }
+ public void setDirectionality(int directionality) {
+ this.directionality = directionality;
+ }
- public void setDirectionalityEnum(DirectionOfUseEnum directionalityEnum) {
- this.directionality = directionalityEnum.ordinal();
- }
+ public void setDirectionalityEnum(DirectionOfUseEnum directionalityEnum) {
+ this.directionality = directionalityEnum.ordinal();
+ }
- public NodeListXY getNodeList() {
- return nodeList;
- }
+ public NodeListXY getNodeList() {
+ return nodeList;
+ }
- public void setNodeList(NodeListXY nodeList) {
- this.nodeList = nodeList;
- }
+ public void setNodeList(NodeListXY nodeList) {
+ this.nodeList = nodeList;
+ }
}
@@ -591,23 +598,23 @@ public void setPosition(OdePosition3D position) {
}
public Area getArea() {
- return area;
+ return area;
}
public void setArea(Area area) {
- this.area = area;
+ this.area = area;
}
public String getExtent() {
- return extent;
+ return extent;
}
public void setExtent(String extent) {
- this.extent = extent;
+ this.extent = extent;
}
public void setExtent(ExtentEnum extent) {
- this.extent = extent.name();
+ this.extent = extent.name();
}
public String getDirection() {
@@ -669,15 +676,15 @@ public static class Circle extends OdeObject {
private String units;
public String getUnits() {
- return units;
+ return units;
}
public void setUnits(String units) {
- this.units = units;
+ this.units = units;
}
public void setUnits(DistanceUnitsEnum units) {
- this.units = units.name();
+ this.units = units.name();
}
public int getRadius() {
@@ -697,11 +704,11 @@ public void setPosition(OdePosition3D position) {
}
public OdePosition3D getCenter() {
- return center;
+ return center;
}
public void setCenter(OdePosition3D center) {
- this.center = center;
+ this.center = center;
}
}
@@ -795,16 +802,15 @@ public void setClosedPath(boolean closedPath) {
this.closedPath = closedPath;
}
+ public String getDirectionality() {
+ return directionality;
+ }
- public String getDirectionality() {
- return directionality;
- }
-
- public void setDirectionality(String directionality) {
- this.directionality = directionality;
- }
+ public void setDirectionality(String directionality) {
+ this.directionality = directionality;
+ }
- public BigDecimal getLaneWidth() {
+ public BigDecimal getLaneWidth() {
return laneWidth;
}
@@ -854,49 +860,59 @@ public static class RoadSignID extends OdeObject {
private String viewAngle;
private MutcdCode.MutcdCodeEnum mutcdCode;
private String crc;
-
+
public OdePosition3D getPosition() {
return position;
}
+
public void setPosition(OdePosition3D position) {
this.position = position;
}
+
public String getViewAngle() {
return viewAngle;
}
+
public void setViewAngle(String viewAngle) {
this.viewAngle = viewAngle;
}
+
public MutcdCode.MutcdCodeEnum getMutcdCode() {
return mutcdCode;
}
+
public void setMutcdCode(MutcdCode.MutcdCodeEnum mutcdCode) {
this.mutcdCode = mutcdCode;
}
+
public String getCrc() {
return crc;
}
+
public void setCrc(String crc) {
this.crc = crc;
}
}
-
+
public static class MsgId extends Asn1Object {
private static final long serialVersionUID = 1L;
private RoadSignID roadSignID;
private String furtherInfoID;
-
+
public RoadSignID getRoadSignID() {
return roadSignID;
}
+
public void setRoadSignID(RoadSignID roadSignID) {
this.roadSignID = roadSignID;
}
+
public String getFurtherInfoID() {
return furtherInfoID;
}
+
public void setFurtherInfoID(String furtherInfoID) {
this.furtherInfoID = furtherInfoID;
}
diff --git a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/builders/PivotPointDescriptionBuilder.java b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/builders/PivotPointDescriptionBuilder.java
index 9bd2a0238..4a01d0379 100644
--- a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/builders/PivotPointDescriptionBuilder.java
+++ b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/builders/PivotPointDescriptionBuilder.java
@@ -34,13 +34,13 @@ private PivotPointDescriptionBuilder() {
public static J2735PivotPointDescription genericPivotPointDescription(JsonNode ppd) {
J2735PivotPointDescription gppd = new J2735PivotPointDescription();
- if (ppd.get(PIVOT_OFFSET).intValue() < PIVOT_OFFSET_LOWER_BOUND
- || ppd.get(PIVOT_OFFSET).intValue() > PIVOT_OFFSET_UPPER_BOUND) {
+ if (ppd.get(PIVOT_OFFSET).asInt() < PIVOT_OFFSET_LOWER_BOUND
+ || ppd.get(PIVOT_OFFSET).asInt() > PIVOT_OFFSET_UPPER_BOUND) {
throw new IllegalArgumentException("Pivot offset value out of bounds [-1024.1023]");
- } else if (ppd.get(PIVOT_OFFSET).intValue() == -1024) {
+ } else if (ppd.get(PIVOT_OFFSET).asInt() == -1024) {
gppd.setPivotOffset(null);
} else {
- gppd.setPivotOffset(BigDecimal.valueOf(ppd.get(PIVOT_OFFSET).intValue(), 2));
+ gppd.setPivotOffset(BigDecimal.valueOf(ppd.get(PIVOT_OFFSET).asInt(), 2));
}
gppd.setPivotAngle(AngleBuilder.genericAngle(ppd.get("pivotAngle")));
diff --git a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/builders/TravelerMessageFromHumanToAsnConverter.java b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/builders/TravelerMessageFromHumanToAsnConverter.java
index a1406f0ac..03035ccef 100644
--- a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/builders/TravelerMessageFromHumanToAsnConverter.java
+++ b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/builders/TravelerMessageFromHumanToAsnConverter.java
@@ -40,90 +40,90 @@
public class TravelerMessageFromHumanToAsnConverter {
- private static final String SPEED = "speed";
- private static final String TYPE = "type";
- private static final String ATTRIBUTES = "attributes";
- public static final String TRAVELER_INFORMATION = "TravelerInformation";
- private static final String EXTENT = "extent";
- private static final String UNITS = "units";
- private static final String DIRECTIONALITY = "directionality";
- private static final String CENTER = "center";
- private static final String NODE_LAT = "nodeLat";
- private static final String NODE_LONG = "nodeLong";
- private static final String Y = "y";
- private static final String X = "x";
- private static final String NODE_LAT_LON = "node-LatLon";
- private static final String LON = "lon";
- private static final String LAT = "lat";
- private static final String NODE_XY = "node-XY";
- private static final String NODE_XY2 = "NodeXY";
- private static final String COMPUTED = "computed";
- private static final String SPEED_LIMITS = "speedLimits";
- private static final String LANE_ANGLE = "laneAngle";
- private static final String LANE_CROWN_POINT_RIGHT = "laneCrownPointRight";
- private static final String LANE_CROWN_POINT_LEFT = "laneCrownPointLeft";
- private static final String LANE_CROWN_POINT_CENTER = "laneCrownPointCenter";
- private static final String D_ELEVATION = "dElevation";
- private static final String D_WIDTH = "dWidth";
- private static final String DATA = "data";
- private static final String OFFSET_X_AXIS = "offsetXaxis";
- private static final String OFFSET_Y_AXIS = "offsetYaxis";
- private static final String ROTATE_XY = "rotateXY";
- private static final String SCALE_X_AXIS = "scaleXaxis";
- private static final String SCALE_Y_AXIS = "scaleYaxis";
- private static final String NODE_LIST = "nodeList";
- private static final String REGION_POINT_SET = "regionPointSet";
- private static final String CIRCLE = "circle";
- private static final String SHAPE_POINT_SET = "shapePointSet";
- private static final String DELTA = "delta";
- private static final String OFFSET = "offset";
- private static final String NODES = "nodes";
- private static final String XY = "xy";
- private static final String LL = "ll";
- private static final String OLD_REGION = "oldRegion";
- private static final String GEOMETRY = "geometry";
- private static final String PATH = "path";
- private static final String DESCRIPTION = "description";
- private static final String CLOSED_PATH = "closedPath";
- private static final String ANCHOR = "anchor";
- private static final String ID = "id";
- private static final String REGION = "region";
- private static final String LANE_WIDTH = "laneWidth";
- private static final String ANCHOR_POSITION = "anchorPosition";
- private static final String REGULATOR_ID = "regulatorID";
- private static final String SEGMENT_ID = "segmentID";
- private static final String POSITION = "position";
- private static final String TEXT = "text";
- private static final String ITIS = "itis";
- private static final String ITEM = "item";
- private static final String START_DATE_TIME = "startDateTime";
- private static final String DURATION_TIME = "durationTime";
- // I know, it's misspelled and it has to stay that way. J2735 spec misspelled it
- private static final String DURATON_TIME_MISSPELLED = "duratonTime";
- private static final String SSP_TIM_RIGHTS = "sspTimRights";
- private static final String SSP_MSG_TYPES = "sspMsgTypes";
- private static final String SSP_MSG_CONTENT = "sspMsgContent";
- private static final String DATAFRAMES = "dataframes";
- private static final String TIME_STAMP = "timeStamp";
- public static final String GEOGRAPHICAL_PATH_STRING = "GeographicalPath";
- public static final String REGIONS_STRING = "regions";
- public static final String TRAVELER_DATA_FRAME_STRING = "TravelerDataFrame";
- public static final String DATA_FRAMES_STRING = "dataFrames";
- public static final String SEQUENCE_STRING = "SEQUENCE";
- public static final String TCONTENT_STRING = "tcontent";
- // JSON cannot have empty fields like XML, so the XML must be modified by
- // removing all flag field values
- public static final String EMPTY_FIELD_FLAG = "EMPTY_TAG";
- public static final String BOOLEAN_OBJECT_TRUE = "BOOLEAN_OBJECT_TRUE";
- public static final String BOOLEAN_OBJECT_FALSE = "BOOLEAN_OBJECT_FALSE";
-
- private static final Logger logger = LoggerFactory.getLogger(TravelerMessageFromHumanToAsnConverter.class);
-
- private TravelerMessageFromHumanToAsnConverter() {
+ private static final String SPEED = "speed";
+ private static final String TYPE = "type";
+ private static final String ATTRIBUTES = "attributes";
+ public static final String TRAVELER_INFORMATION = "TravelerInformation";
+ private static final String EXTENT = "extent";
+ private static final String UNITS = "units";
+ private static final String DIRECTIONALITY = "directionality";
+ private static final String CENTER = "center";
+ private static final String NODE_LAT = "nodeLat";
+ private static final String NODE_LONG = "nodeLong";
+ private static final String Y = "y";
+ private static final String X = "x";
+ private static final String NODE_LAT_LON = "node-LatLon";
+ private static final String LON = "lon";
+ private static final String LAT = "lat";
+ private static final String NODE_XY = "node-XY";
+ private static final String NODE_XY2 = "NodeXY";
+ private static final String COMPUTED = "computed";
+ private static final String SPEED_LIMITS = "speedLimits";
+ private static final String LANE_ANGLE = "laneAngle";
+ private static final String LANE_CROWN_POINT_RIGHT = "laneCrownPointRight";
+ private static final String LANE_CROWN_POINT_LEFT = "laneCrownPointLeft";
+ private static final String LANE_CROWN_POINT_CENTER = "laneCrownPointCenter";
+ private static final String D_ELEVATION = "dElevation";
+ private static final String D_WIDTH = "dWidth";
+ private static final String DATA = "data";
+ private static final String OFFSET_X_AXIS = "offsetXaxis";
+ private static final String OFFSET_Y_AXIS = "offsetYaxis";
+ private static final String ROTATE_XY = "rotateXY";
+ private static final String SCALE_X_AXIS = "scaleXaxis";
+ private static final String SCALE_Y_AXIS = "scaleYaxis";
+ private static final String NODE_LIST = "nodeList";
+ private static final String REGION_POINT_SET = "regionPointSet";
+ private static final String CIRCLE = "circle";
+ private static final String SHAPE_POINT_SET = "shapePointSet";
+ private static final String DELTA = "delta";
+ private static final String OFFSET = "offset";
+ private static final String NODES = "nodes";
+ private static final String XY = "xy";
+ private static final String LL = "ll";
+ private static final String OLD_REGION = "oldRegion";
+ private static final String GEOMETRY = "geometry";
+ private static final String PATH = "path";
+ private static final String DESCRIPTION = "description";
+ private static final String CLOSED_PATH = "closedPath";
+ private static final String ANCHOR = "anchor";
+ private static final String ID = "id";
+ private static final String REGION = "region";
+ private static final String LANE_WIDTH = "laneWidth";
+ private static final String ANCHOR_POSITION = "anchorPosition";
+ private static final String REGULATOR_ID = "regulatorID";
+ private static final String SEGMENT_ID = "segmentID";
+ private static final String POSITION = "position";
+ private static final String TEXT = "text";
+ private static final String ITIS = "itis";
+ private static final String ITEM = "item";
+ private static final String START_DATE_TIME = "startDateTime";
+ private static final String DURATION_TIME = "durationTime";
+ // I know, it's misspelled and it has to stay that way. J2735 spec misspelled it
+ private static final String DURATON_TIME_MISSPELLED = "duratonTime";
+ private static final String SSP_TIM_RIGHTS = "sspTimRights";
+ private static final String SSP_MSG_TYPES = "sspMsgTypes";
+ private static final String SSP_MSG_CONTENT = "sspMsgContent";
+ private static final String DATAFRAMES = "dataframes";
+ private static final String TIME_STAMP = "timeStamp";
+ public static final String GEOGRAPHICAL_PATH_STRING = "GeographicalPath";
+ public static final String REGIONS_STRING = "regions";
+ public static final String TRAVELER_DATA_FRAME_STRING = "TravelerDataFrame";
+ public static final String DATA_FRAMES_STRING = "dataFrames";
+ public static final String SEQUENCE_STRING = "SEQUENCE";
+ public static final String TCONTENT_STRING = "tcontent";
+ // JSON cannot have empty fields like XML, so the XML must be modified by
+ // removing all flag field values
+ public static final String EMPTY_FIELD_FLAG = "EMPTY_TAG";
+ public static final String BOOLEAN_OBJECT_TRUE = "BOOLEAN_OBJECT_TRUE";
+ public static final String BOOLEAN_OBJECT_FALSE = "BOOLEAN_OBJECT_FALSE";
+
+ private static final Logger logger = LoggerFactory.getLogger(TravelerMessageFromHumanToAsnConverter.class);
+
+ private TravelerMessageFromHumanToAsnConverter() {
super();
- }
+ }
- public static void convertTravelerInputDataToEncodableTim(JsonNode tid) throws JsonUtilsException {
+ public static void convertTravelerInputDataToEncodableTim(JsonNode tid) throws JsonUtilsException {
// msgCnt MsgCount,
// timeStamp MinuteOfTheYear OPTIONAL
// packetID UniqueMSGID OPTIONAL
@@ -132,7 +132,7 @@ public static void convertTravelerInputDataToEncodableTim(JsonNode tid) throws J
// Cast to ObjectNode to allow manipulation in place
ObjectNode timDataObjectNode = (ObjectNode) tid.get("tim");
-
+
// timeStamp is optional
if (timDataObjectNode.get(TIME_STAMP) != null) {
timDataObjectNode.put(TIME_STAMP,
@@ -145,7 +145,7 @@ public static void convertTravelerInputDataToEncodableTim(JsonNode tid) throws J
timDataObjectNode.set(DATA_FRAMES_STRING, transformDataFrames(timDataObjectNode.get(DATAFRAMES)));
timDataObjectNode.remove(DATAFRAMES);
}
-
+
public static ObjectNode transformDataFrames(JsonNode dataFrames) throws JsonUtilsException {
if (dataFrames == null) {
@@ -172,7 +172,7 @@ public static void replaceDataFrame(ObjectNode dataFrame) throws JsonUtilsExcept
// INPUT
//////
// "dataframes": [
- //
+ //
// "startDateTime": "2017-08-02T22:25:00.000Z",
// "durationTime": 1,
// "frameType": "1",
@@ -196,7 +196,7 @@ public static void replaceDataFrame(ObjectNode dataFrame) throws JsonUtilsExcept
// "513"
// ],
// "url": "null"
- //
+ //
// ]
/// OUTPUT:
@@ -211,9 +211,8 @@ public static void replaceDataFrame(ObjectNode dataFrame) throws JsonUtilsExcept
// sspTimRights does not need replacement
// set frameType value
- dataFrame.set("frameType",
- JsonUtils.newNode().put(dataFrame.get("frameType").asText(), EMPTY_FIELD_FLAG));
-
+ dataFrame.set("frameType", JsonUtils.newNode().put(dataFrame.get("frameType").asText(), EMPTY_FIELD_FLAG));
+
// replace sspMsgContent with sspMsgRights2
dataFrame.put("sspMsgRights2", dataFrame.get(SSP_MSG_CONTENT).asInt());
dataFrame.remove(SSP_MSG_CONTENT);
@@ -249,7 +248,8 @@ public static long translateISOTimeStampToMinuteOfYear(String isoTime) {
try {
ZonedDateTime zDateTime = DateTimeUtils.isoDateTime(isoTime);
startYear = zDateTime.getYear();
- startMinute = (int) Duration.between(DateTimeUtils.isoDateTime(startYear, 1, 1, 0, 0, 0, 0), zDateTime).toMinutes();
+ startMinute = (int) Duration.between(DateTimeUtils.isoDateTime(startYear, 1, 1, 0, 0, 0, 0), zDateTime)
+ .toMinutes();
} catch (Exception e) { // NOSONAR
logger.warn("Failed to parse datetime {}, defaulting to unknown value {}", isoTime, startMinute);
}
@@ -274,7 +274,8 @@ public static void replaceDataFrameTimestamp(ObjectNode dataFrame) {
try {
ZonedDateTime zDateTime = DateTimeUtils.isoDateTime(startDateTime);
startYear = zDateTime.getYear();
- startMinute = (int)ChronoUnit.MINUTES.between(DateTimeUtils.isoDateTime(startYear, 1, 1, 0, 0, 0, 0), zDateTime);
+ startMinute = (int) ChronoUnit.MINUTES.between(DateTimeUtils.isoDateTime(startYear, 1, 1, 0, 0, 0, 0),
+ zDateTime);
} catch (Exception e) {
logger.warn("Failed to startDateTime {}, defaulting to unknown value {}.", startDateTime, startMinute);
}
@@ -302,7 +303,7 @@ public static void replaceContent(ObjectNode dataFrame) {
////////
// "content": "advisory",
// "items":["513", "Text you need to send", "'1234567'", "255"]},
-
+
// step 1, reformat item list
ArrayNode items = (ArrayNode) dataFrame.get("items");
ArrayNode newItems = JsonUtils.newNode().arrayNode();
@@ -325,14 +326,14 @@ public static void replaceContent(ObjectNode dataFrame) {
// step 2, set the content CHOICE
String replacedContentName = dataFrame.get("content").asText();
if (replacedContentName.equals("Advisory"))
- replacedContentName = "advisory";
-
+ replacedContentName = "advisory";
+
// The following field is called "content" but this results in a
// failed conversion to XML
// see @us.dot.its.jpo.ode.traveler.TimController.publish
dataFrame.set(TCONTENT_STRING, JsonUtils.newNode().set(replacedContentName, sequence));
dataFrame.remove("content");
-}
+ }
public static JsonNode buildItem(String itemStr) {
JsonNode item = null;
@@ -410,7 +411,7 @@ public static void replaceRegion(ObjectNode region) throws JsonUtilsException {
// "name": "Testing TIM",
// "regulatorID": "0",
// "segmentID": "33",
- // "anchorPosition":
+ // "anchorPosition":
// "latitude": "41.2500807",
// "longitude": "-111.0093847",
// "elevation": "2020.6969900289998"
@@ -421,7 +422,7 @@ public static void replaceRegion(ObjectNode region) throws JsonUtilsException {
// "description": "path",
// "path": {},
// "direction": "0000000000001010"
- //
+ //
//// EXPECTED OUTPUT:
//
@@ -461,10 +462,9 @@ public static void replaceRegion(ObjectNode region) throws JsonUtilsException {
region.set(ID, id);
}
// replace regulatorID and segmentID with id
- ObjectNode id = JsonUtils.newNode()
- .put(REGION,region.get(REGULATOR_ID).asInt())
- .put(ID, region.get(SEGMENT_ID).asInt());
-
+ ObjectNode id = JsonUtils.newNode().put(REGION, region.get(REGULATOR_ID).asInt()).put(ID,
+ region.get(SEGMENT_ID).asInt());
+
region.set(ID, id);
region.remove(REGULATOR_ID);
region.remove(SEGMENT_ID);
@@ -472,8 +472,8 @@ public static void replaceRegion(ObjectNode region) throws JsonUtilsException {
// anchorPosition --> anchor (optional)
JsonNode anchorPos = region.get(ANCHOR_POSITION);
if (anchorPos != null) {
- region.set(ANCHOR, JsonUtils.toObjectNode(Position3DBuilder.dsrcPosition3D(
- Position3DBuilder.odePosition3D(region.get(ANCHOR_POSITION))).toJson()));
+ region.set(ANCHOR, JsonUtils.toObjectNode(Position3DBuilder
+ .dsrcPosition3D(Position3DBuilder.odePosition3D(region.get(ANCHOR_POSITION))).toJson()));
region.remove(ANCHOR_POSITION);
}
@@ -485,13 +485,13 @@ public static void replaceRegion(ObjectNode region) throws JsonUtilsException {
// directionality (optional)
if (region.has(DIRECTIONALITY)) {
- JsonNode directionality = region.get(DIRECTIONALITY);
- String enumString = CommonUtils.enumToString(DirectionOfUseEnum.class, directionality.asText());
- if (enumString != null) {
- region.set(DIRECTIONALITY, JsonUtils.newNode().put(enumString, EMPTY_FIELD_FLAG));
- }
+ JsonNode directionality = region.get(DIRECTIONALITY);
+ String enumString = CommonUtils.enumToString(DirectionOfUseEnum.class, directionality.asText());
+ if (enumString != null) {
+ region.set(DIRECTIONALITY, JsonUtils.newNode().put(enumString, EMPTY_FIELD_FLAG));
+ }
}
-
+
// closed path (optional)
JsonNode closedPath = region.get(CLOSED_PATH);
if (closedPath != null) {
@@ -522,11 +522,11 @@ public static void replaceRegion(ObjectNode region) throws JsonUtilsException {
private static void replacePath(ObjectNode pathNode) {
//// EXPECTED INPUT:
- // "path":
+ // "path":
// "scale": "0",
// "type": "ll",
// "nodes": []
- //
+ //
//// EXPECTED OUTPUT:
//
@@ -585,11 +585,11 @@ private static ArrayNode transformNodeSetLL(JsonNode nodes) {
private static ObjectNode transformNodeLL(JsonNode oldNode) {
//// EXPECTED INPUT:
- //
+ //
// "nodeLong": "0.0031024",
// "nodeLat": "0.0014506",
// "delta": "node-LL3"
- //
+ //
//// EXPECTED OUTPUT:
//
@@ -628,46 +628,52 @@ private static ObjectNode transformNodeLL(JsonNode oldNode) {
return deltaNode;
}
-// -- Nodes with LL content Span at the equator when using a zoom of one:
-// node-LL1 Node-LL-24B, -- within +- 22.634554 meters of last node
-// node-LL2 Node-LL-28B, -- within +- 90.571389 meters of last node
-// node-LL3 Node-LL-32B, -- within +- 362.31873 meters of last node
-// node-LL4 Node-LL-36B, -- within +- 01.449308 Kmeters of last node
-// node-LL5 Node-LL-44B, -- within +- 23.189096 Kmeters of last node
-// node-LL6 Node-LL-48B, -- within +- 92.756481 Kmeters of last node
-// node-LatLon Node-LLmD-64b, -- node is a full 32b Lat/Lon range
+ // -- Nodes with LL content Span at the equator when using a zoom of one:
+ // node-LL1 Node-LL-24B, -- within +- 22.634554 meters of last node
+ // node-LL2 Node-LL-28B, -- within +- 90.571389 meters of last node
+ // node-LL3 Node-LL-32B, -- within +- 362.31873 meters of last node
+ // node-LL4 Node-LL-36B, -- within +- 01.449308 Kmeters of last node
+ // node-LL5 Node-LL-44B, -- within +- 23.189096 Kmeters of last node
+ // node-LL6 Node-LL-48B, -- within +- 92.756481 Kmeters of last node
+ // node-LatLon Node-LLmD-64b, -- node is a full 32b Lat/Lon range
private static String nodeOffsetPointLL(long transformedLat, long transformedLon) {
- long transformedLatabs = Math.abs(transformedLat);
- long transformedLonabs = Math.abs(transformedLon);
- if (((transformedLatabs & (-1 << 11)) == 0 || (transformedLat<0 && (transformedLatabs ^ (1 << 11)) == 0))
- && (transformedLonabs & (-1 << 11)) == 0 || (transformedLon<0 && ((transformedLonabs ^ (1 << 11)) == 0))) {
- // 11 bit value
- return "node-LL1";
- } else if (((transformedLatabs & (-1 << 13)) == 0 || (transformedLat<0 && (transformedLatabs ^ (1 << 13)) == 0))
- && (transformedLonabs & (-1 << 13)) == 0 || (transformedLon<0 && ((transformedLonabs ^ (1 << 13)) == 0))){
- // 13 bit value
- return "node-LL2";
- } else if (((transformedLatabs & (-1 << 15)) == 0 || (transformedLat<0 && (transformedLatabs ^ (1 << 15)) == 0))
- && (transformedLonabs & (-1 << 15)) == 0 || (transformedLon<0 && ((transformedLonabs ^ (1 << 15)) == 0))) {
- // 15 bit value
- return "node-LL3";
- } else if (((transformedLatabs & (-1 << 17)) == 0 || (transformedLat<0 && (transformedLatabs ^ (1 << 17)) == 0))
- && (transformedLonabs & (-1 << 17)) == 0 || (transformedLon<0 && ((transformedLonabs ^ (1 << 17)) == 0))) {
- // 17 bit value
- return "node-LL4";
- } else if (((transformedLatabs & (-1 << 21)) == 0 || (transformedLat<0 && (transformedLatabs ^ (1 << 21)) == 0))
- && (transformedLonabs & (-1 << 21)) == 0 || (transformedLon<0 && ((transformedLonabs ^ (1 << 21)) == 0))) {
- // 21 bit value
- return "node-LL5";
- } else if (((transformedLatabs & (-1 << 23)) == 0 || (transformedLat<0 && (transformedLatabs ^ (1 << 23)) == 0))
- && (transformedLonabs & (-1 << 23)) == 0 || (transformedLon<0 && ((transformedLonabs ^ (1 << 23)) == 0))){
- // 23 bit value
- return "node-LL6";
- } else {
- throw new IllegalArgumentException("Invalid node lat/long offset: " + transformedLat + "/" + transformedLon
- + ". Values must be between a range of -0.8388608/+0.8388607 degrees.");
- }
-
+ long transformedLatabs = Math.abs(transformedLat);
+ long transformedLonabs = Math.abs(transformedLon);
+ if (((transformedLatabs & (-1 << 11)) == 0 || (transformedLat < 0 && (transformedLatabs ^ (1 << 11)) == 0))
+ && (transformedLonabs & (-1 << 11)) == 0
+ || (transformedLon < 0 && ((transformedLonabs ^ (1 << 11)) == 0))) {
+ // 11 bit value
+ return "node-LL1";
+ } else if (((transformedLatabs & (-1 << 13)) == 0 || (transformedLat < 0 && (transformedLatabs ^ (1 << 13)) == 0))
+ && (transformedLonabs & (-1 << 13)) == 0
+ || (transformedLon < 0 && ((transformedLonabs ^ (1 << 13)) == 0))) {
+ // 13 bit value
+ return "node-LL2";
+ } else if (((transformedLatabs & (-1 << 15)) == 0 || (transformedLat < 0 && (transformedLatabs ^ (1 << 15)) == 0))
+ && (transformedLonabs & (-1 << 15)) == 0
+ || (transformedLon < 0 && ((transformedLonabs ^ (1 << 15)) == 0))) {
+ // 15 bit value
+ return "node-LL3";
+ } else if (((transformedLatabs & (-1 << 17)) == 0 || (transformedLat < 0 && (transformedLatabs ^ (1 << 17)) == 0))
+ && (transformedLonabs & (-1 << 17)) == 0
+ || (transformedLon < 0 && ((transformedLonabs ^ (1 << 17)) == 0))) {
+ // 17 bit value
+ return "node-LL4";
+ } else if (((transformedLatabs & (-1 << 21)) == 0 || (transformedLat < 0 && (transformedLatabs ^ (1 << 21)) == 0))
+ && (transformedLonabs & (-1 << 21)) == 0
+ || (transformedLon < 0 && ((transformedLonabs ^ (1 << 21)) == 0))) {
+ // 21 bit value
+ return "node-LL5";
+ } else if (((transformedLatabs & (-1 << 23)) == 0 || (transformedLat < 0 && (transformedLatabs ^ (1 << 23)) == 0))
+ && (transformedLonabs & (-1 << 23)) == 0
+ || (transformedLon < 0 && ((transformedLonabs ^ (1 << 23)) == 0))) {
+ // 23 bit value
+ return "node-LL6";
+ } else {
+ throw new IllegalArgumentException("Invalid node lat/long offset: " + transformedLat + "/" + transformedLon
+ + ". Values must be between a range of -0.8388608/+0.8388607 degrees.");
+ }
+
}
public static void replaceGeometry(ObjectNode geometry) {
@@ -678,7 +684,7 @@ public static void replaceGeometry(ObjectNode geometry) {
// circle Circle
// direction does not need to be replaced
-
+
// extent does not need to be replaced (optional)
// replace lane width
@@ -696,12 +702,12 @@ public static void replaceOldRegion(ObjectNode oldRegion) {
// old region == ValidRegion
// elements:
// direction - no changes
-
+
// extent - no changes
JsonNode extentNode = oldRegion.get(EXTENT);
String extent = CommonUtils.enumToString(Extent.ExtentEnum.class, extentNode.asText());
oldRegion.set(EXTENT, JsonUtils.newNode().put(extent, EMPTY_FIELD_FLAG));
-
+
// area - needs changes
replaceArea(oldRegion.get("area"));
}
@@ -735,9 +741,8 @@ private static void replaceRegionPointSet(JsonNode regionPointSet) {
// replace anchor (optional)
if (updatedNode.get(ANCHOR_POSITION) != null) {
- JsonUtils.addNode(updatedNode, ANCHOR,
- Position3DBuilder.dsrcPosition3D(
- Position3DBuilder.odePosition3D(updatedNode.get(ANCHOR_POSITION))));
+ JsonUtils.addNode(updatedNode, ANCHOR,
+ Position3DBuilder.dsrcPosition3D(Position3DBuilder.odePosition3D(updatedNode.get(ANCHOR_POSITION))));
updatedNode.remove(ANCHOR_POSITION);
}
@@ -748,37 +753,35 @@ private static void replaceRegionPointSet(JsonNode regionPointSet) {
public static void replaceCircle(JsonNode circle) {
- // Circle ::= SEQUENCE
+ // Circle ::= SEQUENCE
// center Position3D,
// radius Radius-B12,
// units DistanceUnits
- //
+ //
ObjectNode updatedNode = (ObjectNode) circle;
-
+
JsonNode centerPosition = null;
if (updatedNode.has(POSITION)) {
- centerPosition = updatedNode.get(POSITION);
- updatedNode.remove(POSITION);
+ centerPosition = updatedNode.get(POSITION);
+ updatedNode.remove(POSITION);
} else {
- centerPosition = updatedNode.get(CENTER);
+ centerPosition = updatedNode.get(CENTER);
}
-
- // replace center
- JsonUtils.addNode(updatedNode, CENTER,
- Position3DBuilder.dsrcPosition3D(
- Position3DBuilder.odePosition3D(centerPosition)));
+ // replace center
+ JsonUtils.addNode(updatedNode, CENTER,
+ Position3DBuilder.dsrcPosition3D(Position3DBuilder.odePosition3D(centerPosition)));
// radius does not need replacement
// replace units
if (updatedNode.has(UNITS)) {
- JsonNode units = updatedNode.get(UNITS);
- String enumString = CommonUtils.enumToString(DistanceUnitsEnum.class, units.asText());
- if (enumString != null) {
- updatedNode.set(UNITS, JsonUtils.newNode().put(enumString, EMPTY_FIELD_FLAG));
- }
+ JsonNode units = updatedNode.get(UNITS);
+ String enumString = CommonUtils.enumToString(DistanceUnitsEnum.class, units.asText());
+ if (enumString != null) {
+ updatedNode.set(UNITS, JsonUtils.newNode().put(enumString, EMPTY_FIELD_FLAG));
+ }
}
}
@@ -793,9 +796,8 @@ public static void replaceShapePointSet(JsonNode shapePointSet) {
// replace anchor
if (updatedNode.has(ANCHOR)) {
- JsonUtils.addNode(updatedNode, ANCHOR,
- Position3DBuilder.dsrcPosition3D(
- Position3DBuilder.odePosition3D(updatedNode.get(ANCHOR))));
+ JsonUtils.addNode(updatedNode, ANCHOR,
+ Position3DBuilder.dsrcPosition3D(Position3DBuilder.odePosition3D(updatedNode.get(ANCHOR))));
}
// replace lane width
@@ -805,74 +807,74 @@ public static void replaceShapePointSet(JsonNode shapePointSet) {
// replace directionality
if (updatedNode.has(DIRECTIONALITY)) {
- JsonNode directionality = updatedNode.get(DIRECTIONALITY);
- String enumString = CommonUtils.enumToString(DirectionOfUseEnum.class, directionality.asText());
- if (enumString != null) {
- updatedNode.set(DIRECTIONALITY, JsonUtils.newNode().put(enumString, EMPTY_FIELD_FLAG));
- }
+ JsonNode directionality = updatedNode.get(DIRECTIONALITY);
+ String enumString = CommonUtils.enumToString(DirectionOfUseEnum.class, directionality.asText());
+ if (enumString != null) {
+ updatedNode.set(DIRECTIONALITY, JsonUtils.newNode().put(enumString, EMPTY_FIELD_FLAG));
+ }
}
-
+
// replace node list
if (updatedNode.has(NODE_LIST)) {
- ObjectNode nodeList = (ObjectNode) updatedNode.get(NODE_LIST);
- if (nodeList.has(NODES)) {
- ArrayNode nodes = transformNodeSetXY(nodeList.get(NODES));
- nodeList.set(NODES, nodes);
- } else if (nodeList.has(COMPUTED)) {
- JsonNode computedLane = nodeList.get(COMPUTED);
- replaceComputedLane(computedLane);
- }
+ ObjectNode nodeList = (ObjectNode) updatedNode.get(NODE_LIST);
+ if (nodeList.has(NODES)) {
+ ArrayNode nodes = transformNodeSetXY(nodeList.get(NODES));
+ nodeList.set(NODES, nodes);
+ } else if (nodeList.has(COMPUTED)) {
+ JsonNode computedLane = nodeList.get(COMPUTED);
+ replaceComputedLane(computedLane);
+ }
}
}
public static void replaceComputedLane(JsonNode jsonNode) {
ObjectNode updatedNode = (ObjectNode) jsonNode;
-
+
// Nothing to do for referenceLaneId LaneID
-
- // offsetXaxis CHOICE
- // small DrivenLineOffsetSm,
- // large DrivenLineOffsetLg
- //
+
+ // offsetXaxis CHOICE
+ // small DrivenLineOffsetSm,
+ // large DrivenLineOffsetLg
+ //
replaceScale(updatedNode, OFFSET_X_AXIS);
-
- // offsetYaxis CHOICE
- // small DrivenLineOffsetSm,
- // large DrivenLineOffsetLg
- //
+
+ // offsetYaxis CHOICE
+ // small DrivenLineOffsetSm,
+ // large DrivenLineOffsetLg
+ //
replaceScale(updatedNode, OFFSET_Y_AXIS);
-
+
// rotateXY Angle OPTIONAL
if (updatedNode.has(ROTATE_XY)) {
updatedNode.put(ROTATE_XY, AngleBuilder.angle(JsonUtils.decimalValue(updatedNode.get(ROTATE_XY))));
}
-
+
// scaleXaxis Scale-B12 OPTIONAL
if (updatedNode.has(SCALE_X_AXIS)) {
updatedNode.put(SCALE_X_AXIS, ScaleB12Builder.scaleB12(JsonUtils.decimalValue(updatedNode.get(SCALE_X_AXIS))));
}
-
+
// scaleYaxis Scale-B12 OPTIONAL
if (updatedNode.has(SCALE_Y_AXIS)) {
updatedNode.put(SCALE_Y_AXIS, ScaleB12Builder.scaleB12(JsonUtils.decimalValue(updatedNode.get(SCALE_Y_AXIS))));
}
}
- public static void replaceScale(ObjectNode updatedNode, String scale) {
- if (updatedNode.has(scale)) {
- int scaleX = updatedNode.get(scale).asInt();
- String key = "large";
- if (-2048 <= scaleX && scaleX <= 2047) {
- key = "small";
+ public static void replaceScale(ObjectNode updatedNode, String scale) {
+ if (updatedNode.has(scale)) {
+ int scaleX = updatedNode.get(scale).asInt();
+ String key = "large";
+ if (-2048 <= scaleX && scaleX <= 2047) {
+ key = "small";
+ }
+
+ ObjectNode node = JsonUtils.newObjectNode(key, scaleX);
+ updatedNode.set(scale, node);
}
-
- ObjectNode node = JsonUtils.newObjectNode(key, scaleX);
- updatedNode.set(scale, node);
- }
- }
+ }
public static ArrayNode transformNodeSetXY(JsonNode inputNodeList) {
-
+
//// EXPECTED INPUT:
// "nodes": []
@@ -907,9 +909,9 @@ public static JsonNode transformNodeXY(JsonNode oldNode) {
ObjectNode nodexy = transformNodeOffsetPointXY(oldNode);
if (oldNode.has(ATTRIBUTES)) {
- nodexy.set(ATTRIBUTES, transformNodeAttributeSetXY(oldNode.get(ATTRIBUTES)));
+ nodexy.set(ATTRIBUTES, transformNodeAttributeSetXY(oldNode.get(ATTRIBUTES)));
}
-
+
return nodexy;
}
@@ -932,11 +934,11 @@ private static ObjectNode transformNodeAttributeSetXY(JsonNode jsonNode) {
updatedNode.set(DATA, transformLaneDataAttributeList(jsonNode.get(DATA)));
}
if (jsonNode.has(D_WIDTH)) {
- updatedNode.put(D_WIDTH, OffsetXyBuilder.offsetXy(JsonUtils.decimalValue(jsonNode.get(D_WIDTH))));
+ updatedNode.put(D_WIDTH, OffsetXyBuilder.offsetXy(JsonUtils.decimalValue(jsonNode.get(D_WIDTH))));
}
if (jsonNode.has(D_ELEVATION)) {
- updatedNode.put(D_ELEVATION, OffsetXyBuilder.offsetXy(JsonUtils.decimalValue(jsonNode.get(D_ELEVATION))));
+ updatedNode.put(D_ELEVATION, OffsetXyBuilder.offsetXy(JsonUtils.decimalValue(jsonNode.get(D_ELEVATION))));
}
return updatedNode;
}
@@ -972,14 +974,14 @@ public static void replaceLaneDataAttribute(JsonNode oldNode) {
if (oldNode.has("pathEndPointAngle")) {
// do nothing
} else if (oldNode.has(LANE_CROWN_POINT_CENTER)) {
- updatedNode.put(LANE_CROWN_POINT_CENTER,
- RoadwayCrownAngleBuilder.roadwayCrownAngle(JsonUtils.decimalValue(updatedNode.get(LANE_CROWN_POINT_CENTER))));
+ updatedNode.put(LANE_CROWN_POINT_CENTER, RoadwayCrownAngleBuilder
+ .roadwayCrownAngle(JsonUtils.decimalValue(updatedNode.get(LANE_CROWN_POINT_CENTER))));
} else if (oldNode.has(LANE_CROWN_POINT_LEFT)) {
- updatedNode.put(LANE_CROWN_POINT_LEFT,
- RoadwayCrownAngleBuilder.roadwayCrownAngle(JsonUtils.decimalValue(updatedNode.get(LANE_CROWN_POINT_LEFT))));
+ updatedNode.put(LANE_CROWN_POINT_LEFT, RoadwayCrownAngleBuilder
+ .roadwayCrownAngle(JsonUtils.decimalValue(updatedNode.get(LANE_CROWN_POINT_LEFT))));
} else if (oldNode.has(LANE_CROWN_POINT_RIGHT)) {
- updatedNode.put(LANE_CROWN_POINT_RIGHT,
- RoadwayCrownAngleBuilder.roadwayCrownAngle(JsonUtils.decimalValue(updatedNode.get(LANE_CROWN_POINT_RIGHT))));
+ updatedNode.put(LANE_CROWN_POINT_RIGHT, RoadwayCrownAngleBuilder
+ .roadwayCrownAngle(JsonUtils.decimalValue(updatedNode.get(LANE_CROWN_POINT_RIGHT))));
} else if (oldNode.has(LANE_ANGLE)) {
updatedNode.put(LANE_ANGLE,
MergeDivergeNodeAngleBuilder.mergeDivergeNodeAngle(JsonUtils.decimalValue(updatedNode.get(LANE_ANGLE))));
@@ -1006,14 +1008,14 @@ private static void replaceRegulatorySpeedLimit(JsonNode regulatorySpeedLimitNod
// speed Velocity
ObjectNode updatedNode = (ObjectNode) regulatorySpeedLimitNode;
-
+
// type
JsonNode typeNode = regulatorySpeedLimitNode.get(TYPE);
String type = CommonUtils.enumToString(SpeedLimitTypeEnum.class, typeNode.asText());
if (type != null) {
- updatedNode.set(TYPE, JsonUtils.newNode().put(type, EMPTY_FIELD_FLAG));
+ updatedNode.set(TYPE, JsonUtils.newNode().put(type, EMPTY_FIELD_FLAG));
}
-
+
// replace velocity
updatedNode.put(SPEED, VelocityBuilder.velocity(JsonUtils.decimalValue(updatedNode.get(SPEED))));
@@ -1021,11 +1023,11 @@ private static void replaceRegulatorySpeedLimit(JsonNode regulatorySpeedLimitNod
public static ObjectNode transformNodeOffsetPointXY(JsonNode oldNode) {
//// EXPECTED INPUT:
- //
- // "nodeLong": "0.0031024",
- // "nodeLat": "0.0014506",
- // "delta": "node-LL3"
- //
+ //
+ // "nodeLong": "0.0031024",
+ // "nodeLat": "0.0014506",
+ // "delta": "node-LL3"
+ //
//// EXPECTED OUTPUT:
//
@@ -1060,9 +1062,9 @@ public static ObjectNode transformNodeOffsetPointXY(JsonNode oldNode) {
Long transformedLat = LongitudeBuilder.j2735Longitude(latOffset);
ObjectNode latLong = JsonUtils.newNode().put(LON, transformedLon).put(LAT, transformedLat);
if (deltaText.equals(NODE_XY)) {
- innerNode.set(nodeOffsetPointLL(transformedLat, transformedLon), latLong);
+ innerNode.set(nodeOffsetPointLL(transformedLat, transformedLon), latLong);
} else {
- innerNode.set(deltaText, latLong);
+ innerNode.set(deltaText, latLong);
}
}
diff --git a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/timstorage/Anchor.java b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/timstorage/Anchor.java
index ab2733993..e2f56d73c 100644
--- a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/timstorage/Anchor.java
+++ b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/timstorage/Anchor.java
@@ -23,16 +23,11 @@
@JsonPropertyOrder({ "lat", "long", "elevation" })
public class Anchor extends Asn1Object {
private static final long serialVersionUID = 1L;
-
- @JsonProperty("lat")
private String lat;
-
- @JsonProperty("long")
private String llong;
-
- @JsonProperty("elevation")
private String elevation;
+ @JsonProperty("lat")
public String getLat() {
return lat;
}
@@ -41,6 +36,7 @@ public void setLat(String lat) {
this.lat = lat;
}
+ @JsonProperty("long")
public String getLlong() {
return llong;
}
@@ -49,6 +45,7 @@ public void setLlong(String llong) {
this.llong = llong;
}
+ @JsonProperty("elevation")
public String getElevation() {
return elevation;
}
diff --git a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/timstorage/MessageFrame.java b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/timstorage/MessageFrame.java
index 1b72718b5..a0e18ec03 100644
--- a/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/timstorage/MessageFrame.java
+++ b/jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/j2735/timstorage/MessageFrame.java
@@ -15,15 +15,18 @@
******************************************************************************/
package us.dot.its.jpo.ode.plugin.j2735.timstorage;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
import us.dot.its.jpo.ode.plugin.asn1.Asn1Object;
import us.dot.its.jpo.ode.plugin.j2735.J2735MessageFrame;
public class MessageFrame extends Asn1Object {
private static final long serialVersionUID = 3450586016818874906L;
-
+
private J2735MessageFrame MessageFrame;
+ @JsonProperty("MessageFrame")
public J2735MessageFrame getMessageFrame() {
return MessageFrame;
}
@@ -31,7 +34,5 @@ public J2735MessageFrame getMessageFrame() {
public void setMessageFrame(J2735MessageFrame messageFrame) {
MessageFrame = messageFrame;
}
-
-
}
diff --git a/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/BsmBuilderTest.java b/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/BsmBuilderTest.java
index ae1477828..5deaab2df 100644
--- a/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/BsmBuilderTest.java
+++ b/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/BsmBuilderTest.java
@@ -45,7 +45,6 @@ public void shouldTranslateBsm() throws BsmPart2ContentBuilderException {
assertNotNull(actualBsm);
String expected = "{\"coreData\":{\"msgCnt\":41,\"id\":\"4B3AD218\",\"secMark\":14206,\"position\":{\"latitude\":40.4740068,\"longitude\":-104.9692033,\"elevation\":1492.5},\"accelSet\":{\"accelLat\":0.00,\"accelLong\":0.23,\"accelVert\":0.00,\"accelYaw\":0.00},\"accuracy\":{\"semiMajor\":9.75,\"semiMinor\":12.70,\"orientation\":null},\"transmission\":\"NEUTRAL\",\"speed\":0.24,\"heading\":246.3125,\"angle\":null,\"brakes\":{\"wheelBrakes\":{\"leftFront\":false,\"rightFront\":false,\"unavailable\":true,\"leftRear\":false,\"rightRear\":false},\"traction\":\"unavailable\",\"abs\":\"unavailable\",\"scs\":\"unavailable\",\"brakeBoost\":\"unavailable\",\"auxBrakes\":\"unavailable\"},\"size\":{\"width\":200,\"length\":570}},\"partII\":[{\"id\":\"VehicleSafetyExtensions\",\"value\":{\"events\":null,\"pathHistory\":{\"initialPosition\":null,\"currGNSSstatus\":null,\"crumbData\":[{\"elevationOffset\":-0.3,\"heading\":null,\"latOffset\":-0.0000141,\"lonOffset\":0.0000065,\"posAccuracy\":null,\"speed\":null,\"timeOffset\":6.70},{\"elevationOffset\":4.3,\"heading\":null,\"latOffset\":-0.0000294,\"lonOffset\":0.0000297,\"posAccuracy\":null,\"speed\":null,\"timeOffset\":35.71},{\"elevationOffset\":0.7,\"heading\":null,\"latOffset\":-0.0000329,\"lonOffset\":0.0000170,\"posAccuracy\":null,\"speed\":null,\"timeOffset\":51.50},{\"elevationOffset\":-0.3,\"heading\":null,\"latOffset\":-0.0000130,\"lonOffset\":-0.0000142,\"posAccuracy\":null,\"speed\":null,\"timeOffset\":80.71},{\"elevationOffset\":-7.5,\"heading\":null,\"latOffset\":0.0000129,\"lonOffset\":-0.0000634,\"posAccuracy\":null,\"speed\":null,\"timeOffset\":101.70},{\"elevationOffset\":-6.2,\"heading\":null,\"latOffset\":0.0000173,\"lonOffset\":-0.0000588,\"posAccuracy\":null,\"speed\":null,\"timeOffset\":115.60},{\"elevationOffset\":-6.6,\"heading\":null,\"latOffset\":0.0000077,\"lonOffset\":-0.0000645,\"posAccuracy\":null,\"speed\":null,\"timeOffset\":125.70},{\"elevationOffset\":-4.2,\"heading\":null,\"latOffset\":0.0000029,\"lonOffset\":-0.0000500,\"posAccuracy\":null,\"speed\":null,\"timeOffset\":137.50},{\"elevationOffset\":-4.3,\"heading\":null,\"latOffset\":-0.0000045,\"lonOffset\":-0.0000123,\"posAccuracy\":null,\"speed\":null,\"timeOffset\":157.10},{\"elevationOffset\":-4.3,\"heading\":null,\"latOffset\":-0.0000103,\"lonOffset\":-0.0000020,\"posAccuracy\":null,\"speed\":null,\"timeOffset\":166.80},{\"elevationOffset\":-3.6,\"heading\":null,\"latOffset\":-0.0000054,\"lonOffset\":0.0000198,\"posAccuracy\":null,\"speed\":null,\"timeOffset\":191.30},{\"elevationOffset\":1.9,\"heading\":null,\"latOffset\":-0.0000193,\"lonOffset\":-0.0000294,\"posAccuracy\":null,\"speed\":null,\"timeOffset\":222.09},{\"elevationOffset\":2.8,\"heading\":null,\"latOffset\":-0.0000382,\"lonOffset\":-0.0000467,\"posAccuracy\":null,\"speed\":null,\"timeOffset\":233.00},{\"elevationOffset\":1.8,\"heading\":null,\"latOffset\":-0.0000390,\"lonOffset\":-0.0000364,\"posAccuracy\":null,\"speed\":null,\"timeOffset\":243.20},{\"elevationOffset\":-0.3,\"heading\":null,\"latOffset\":-0.0000178,\"lonOffset\":-0.0000120,\"posAccuracy\":null,\"speed\":null,\"timeOffset\":262.40}]},\"pathPrediction\":{\"confidence\":0.0,\"radiusOfCurve\":0.0},\"lights\":null}},{\"id\":\"SpecialVehicleExtensions\",\"value\":{\"vehicleAlerts\":null,\"description\":null,\"trailers\":{\"connection\":{\"pivotOffset\":1.00,\"pivotAngle\":null,\"pivots\":false},\"sspRights\":0,\"units\":[{\"isDolly\":false,\"width\":200,\"length\":600,\"height\":2.00,\"mass\":64000,\"bumperHeights\":null,\"centerOfGravity\":null,\"frontPivot\":{\"pivotOffset\":1.00,\"pivotAngle\":0.0000,\"pivots\":false},\"rearPivot\":null,\"rearWheelOffset\":null,\"positionOffset\":{\"x\":0.00,\"y\":0.00},\"elevationOffset\":null,\"crumbData\":[]}]}}},{\"id\":\"SupplementalVehicleExtensions\",\"value\":{\"vehicleAlerts\":null,\"description\":null,\"trailers\":null}}]}";
assertEquals(expected , actualBsm.toString());
-
}
}
diff --git a/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/TravelerMessageFromHumanToAsnConverterTest.java b/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/TravelerMessageFromHumanToAsnConverterTest.java
index 7c589e71b..214c832bd 100644
--- a/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/TravelerMessageFromHumanToAsnConverterTest.java
+++ b/jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/TravelerMessageFromHumanToAsnConverterTest.java
@@ -42,13 +42,13 @@
public class TravelerMessageFromHumanToAsnConverterTest {
@Mocked
private Logger logger;
-
+
@Before
public void setup() {
new MockUp() {
@Mock
public Logger getLogger(String value) {
- return logger;
+ return logger;
}
};
}
@@ -65,18 +65,18 @@ public void testAdvisoryNodeLL() throws JsonProcessingException, IOException, Js
assertEquals(expectedTID.toString(), inputTID.toString());
JSONObject timObject = new JSONObject();
try {
- timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION, JsonUtils.toJSONObject(inputTID.toString()));
- } catch (JSONException e1) {
- e1.printStackTrace();
- } catch (JsonUtilsException e1) {
- e1.printStackTrace();
- }
+ timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION,
+ JsonUtils.toJSONObject(inputTID.toString()));
+ } catch (JSONException e1) {
+ e1.printStackTrace();
+ } catch (JsonUtilsException e1) {
+ e1.printStackTrace();
+ }
try {
- assertNotNull(XML.toString(timObject));
- } catch (JSONException e) {
- e.printStackTrace();
- }
- // assertEquals("string", XML.toString(timObject));
+ assertNotNull(XML.toString(timObject));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
}
@Test
@@ -91,17 +91,18 @@ public void testWorkzoneNodeXYWithStringLatLon() throws JsonUtilsException {
assertEquals(expectedTID.toString(), inputTID.toString());
JSONObject timObject = new JSONObject();
try {
- timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION, JsonUtils.toJSONObject(inputTID.toString()));
- } catch (JSONException e) {
- e.printStackTrace();
- } catch (JsonUtilsException e) {
- e.printStackTrace();
- }
+ timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION,
+ JsonUtils.toJSONObject(inputTID.toString()));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ } catch (JsonUtilsException e) {
+ e.printStackTrace();
+ }
try {
- assertNotNull(XML.toString(timObject));
- } catch (JSONException e) {
- e.printStackTrace();
- }
+ assertNotNull(XML.toString(timObject));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
}
@Test
@@ -116,18 +117,19 @@ public void testGenericSignNodeXYWithNumericLatLon() throws JsonUtilsException {
assertEquals(expectedTID.toString(), inputTID.toString());
JSONObject timObject = new JSONObject();
try {
- timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION, JsonUtils.toJSONObject(inputTID.toString()));
- } catch (JSONException e) {
- e.printStackTrace();
- } catch (JsonUtilsException e) {
- e.printStackTrace();
- }
+ timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION,
+ JsonUtils.toJSONObject(inputTID.toString()));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ } catch (JsonUtilsException e) {
+ e.printStackTrace();
+ }
try {
- assertNotNull(XML.toString(timObject));
- } catch (JSONException e) {
-
- e.printStackTrace();
- }
+ assertNotNull(XML.toString(timObject));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ }
}
@Test
@@ -142,20 +144,21 @@ public void testGeometryUnavailable() throws JsonUtilsException {
JSONObject timObject = new JSONObject();
try {
- timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION, JsonUtils.toJSONObject(inputTID.toString()));
- } catch (JSONException e) {
-
- e.printStackTrace();
- } catch (JsonUtilsException e) {
-
- e.printStackTrace();
- }
+ timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION,
+ JsonUtils.toJSONObject(inputTID.toString()));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ } catch (JsonUtilsException e) {
+
+ e.printStackTrace();
+ }
try {
- assertNotNull(XML.toString(timObject));
- } catch (JSONException e) {
-
- e.printStackTrace();
- }
+ assertNotNull(XML.toString(timObject));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ }
}
@@ -171,20 +174,21 @@ public void testGeometryExitServiceForward() throws JsonUtilsException {
JSONObject timObject = new JSONObject();
try {
- timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION, JsonUtils.toJSONObject(inputTID.toString()));
- } catch (JSONException e) {
-
- e.printStackTrace();
- } catch (JsonUtilsException e) {
-
- e.printStackTrace();
- }
+ timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION,
+ JsonUtils.toJSONObject(inputTID.toString()));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ } catch (JsonUtilsException e) {
+
+ e.printStackTrace();
+ }
try {
- assertNotNull(XML.toString(timObject));
- } catch (JSONException e) {
-
- e.printStackTrace();
- }
+ assertNotNull(XML.toString(timObject));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ }
}
@@ -200,20 +204,21 @@ public void testGeometryAdvisoryReverse() throws JsonUtilsException {
JSONObject timObject = new JSONObject();
try {
- timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION, JsonUtils.toJSONObject(inputTID.toString()));
- } catch (JSONException e) {
-
- e.printStackTrace();
- } catch (JsonUtilsException e) {
-
- e.printStackTrace();
- }
+ timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION,
+ JsonUtils.toJSONObject(inputTID.toString()));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ } catch (JsonUtilsException e) {
+
+ e.printStackTrace();
+ }
try {
- assertNotNull(XML.toString(timObject));
- } catch (JSONException e) {
-
- e.printStackTrace();
- }
+ assertNotNull(XML.toString(timObject));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ }
}
@@ -228,20 +233,21 @@ public void testRoadSignIDWorkzone() throws JsonUtilsException {
assertEquals(expectedTID.toString(), inputTID.toString());
JSONObject timObject = new JSONObject();
try {
- timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION, JsonUtils.toJSONObject(inputTID.toString()));
- } catch (JSONException e) {
-
- e.printStackTrace();
- } catch (JsonUtilsException e) {
-
- e.printStackTrace();
- }
+ timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION,
+ JsonUtils.toJSONObject(inputTID.toString()));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ } catch (JsonUtilsException e) {
+
+ e.printStackTrace();
+ }
try {
- assertNotNull(XML.toString(timObject));
- } catch (JSONException e) {
-
- e.printStackTrace();
- }
+ assertNotNull(XML.toString(timObject));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ }
}
@Test
@@ -256,20 +262,21 @@ public void testGeometryBothGenericSign() throws JsonUtilsException {
JSONObject timObject = new JSONObject();
try {
- timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION, JsonUtils.toJSONObject(inputTID.toString()));
- } catch (JSONException e) {
-
- e.printStackTrace();
- } catch (JsonUtilsException e) {
-
- e.printStackTrace();
- }
+ timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION,
+ JsonUtils.toJSONObject(inputTID.toString()));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ } catch (JsonUtilsException e) {
+
+ e.printStackTrace();
+ }
try {
- assertNotNull(XML.toString(timObject));
- } catch (JSONException e) {
-
- e.printStackTrace();
- }
+ assertNotNull(XML.toString(timObject));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ }
}
@@ -284,20 +291,21 @@ public void testPathSpeedLimit() throws JsonUtilsException {
assertEquals(expectedTID.toString(), inputTID.toString());
JSONObject timObject = new JSONObject();
try {
- timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION, JsonUtils.toJSONObject(inputTID.toString()));
- } catch (JSONException e) {
-
- e.printStackTrace();
- } catch (JsonUtilsException e) {
-
- e.printStackTrace();
- }
+ timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION,
+ JsonUtils.toJSONObject(inputTID.toString()));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ } catch (JsonUtilsException e) {
+
+ e.printStackTrace();
+ }
try {
- assertNotNull(XML.toString(timObject));
- } catch (JSONException e) {
-
- e.printStackTrace();
- }
+ assertNotNull(XML.toString(timObject));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ }
}
@Test
@@ -338,12 +346,12 @@ public void testReplaceDataFrameTimestamp() {
@Test
public void testBuildItem() {
-
+
String itisCode = "123";
String itis = "itis";
ObjectNode expectedItisNode = JsonUtils.newNode().put(itis, Integer.parseInt(itisCode));
ObjectNode expecteditem = (ObjectNode) JsonUtils.newNode().set("item", expectedItisNode);
-
+
// build ITIS code
JsonNode actualItem = TravelerMessageFromHumanToAsnConverter.buildItem(itisCode);
assertEquals(expecteditem, actualItem);
@@ -373,20 +381,21 @@ public void testOldRegionWithShapePointSetWithNodeList() throws JsonUtilsExcepti
JSONObject timObject = new JSONObject();
try {
- timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION, JsonUtils.toJSONObject(inputTID.toString()));
- } catch (JSONException e) {
-
- e.printStackTrace();
- } catch (JsonUtilsException e) {
-
- e.printStackTrace();
- }
+ timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION,
+ JsonUtils.toJSONObject(inputTID.toString()));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ } catch (JsonUtilsException e) {
+
+ e.printStackTrace();
+ }
try {
- assertNotNull(XML.toString(timObject));
- } catch (JSONException e) {
-
- e.printStackTrace();
- }
+ assertNotNull(XML.toString(timObject));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ }
}
@@ -402,20 +411,21 @@ public void testOldRegionWithShapePointSetWithComputedLanesSmall() throws JsonUt
JSONObject timObject = new JSONObject();
try {
- timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION, JsonUtils.toJSONObject(inputTID.toString()));
- } catch (JSONException e) {
-
- e.printStackTrace();
- } catch (JsonUtilsException e) {
-
- e.printStackTrace();
- }
+ timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION,
+ JsonUtils.toJSONObject(inputTID.toString()));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ } catch (JsonUtilsException e) {
+
+ e.printStackTrace();
+ }
try {
- assertNotNull(XML.toString(timObject));
- } catch (JSONException e) {
-
- e.printStackTrace();
- }
+ assertNotNull(XML.toString(timObject));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ }
}
@@ -431,20 +441,21 @@ public void testOldRegionWithShapePointSetWithComputedLanesLarge() throws JsonUt
JSONObject timObject = new JSONObject();
try {
- timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION, JsonUtils.toJSONObject(inputTID.toString()));
- } catch (JSONException e) {
-
- e.printStackTrace();
- } catch (JsonUtilsException e) {
-
- e.printStackTrace();
- }
+ timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION,
+ JsonUtils.toJSONObject(inputTID.toString()));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ } catch (JsonUtilsException e) {
+
+ e.printStackTrace();
+ }
try {
- assertNotNull(XML.toString(timObject));
- } catch (JSONException e) {
-
- e.printStackTrace();
- }
+ assertNotNull(XML.toString(timObject));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ }
}
@@ -460,20 +471,21 @@ public void testOldRegionWithCircle() throws JsonUtilsException {
JSONObject timObject = new JSONObject();
try {
- timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION, JsonUtils.toJSONObject(inputTID.toString()));
- } catch (JSONException e) {
-
- e.printStackTrace();
- } catch (JsonUtilsException e) {
-
- e.printStackTrace();
- }
+ timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION,
+ JsonUtils.toJSONObject(inputTID.toString()));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ } catch (JsonUtilsException e) {
+
+ e.printStackTrace();
+ }
try {
- assertNotNull(XML.toString(timObject));
- } catch (JSONException e) {
-
- e.printStackTrace();
- }
+ assertNotNull(XML.toString(timObject));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ }
}
@@ -489,20 +501,21 @@ public void testOldRegionWithRegionPointSet() throws JsonUtilsException {
JSONObject timObject = new JSONObject();
try {
- timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION, JsonUtils.toJSONObject(inputTID.toString()));
- } catch (JSONException e) {
-
- e.printStackTrace();
- } catch (JsonUtilsException e) {
-
- e.printStackTrace();
- }
+ timObject.put(TravelerMessageFromHumanToAsnConverter.TRAVELER_INFORMATION,
+ JsonUtils.toJSONObject(inputTID.toString()));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ } catch (JsonUtilsException e) {
+
+ e.printStackTrace();
+ }
try {
- assertNotNull(XML.toString(timObject));
- } catch (JSONException e) {
-
- e.printStackTrace();
- }
+ assertNotNull(XML.toString(timObject));
+ } catch (JSONException e) {
+
+ e.printStackTrace();
+ }
}
}
diff --git a/jpo-ode-svcs/pom.xml b/jpo-ode-svcs/pom.xml
index 4768be3e5..8905d4ca4 100644
--- a/jpo-ode-svcs/pom.xml
+++ b/jpo-ode-svcs/pom.xml
@@ -19,6 +19,12 @@
org.springframework.boot
spring-boot-starter
+
+
+ org.apache.logging.log4j
+ log4j-to-slf4j
+
+
org.springframework.boot
diff --git a/jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/OdeSvcsApplication.java b/jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/OdeSvcsApplication.java
index 46f2b9ad0..5515f53aa 100644
--- a/jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/OdeSvcsApplication.java
+++ b/jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/OdeSvcsApplication.java
@@ -25,6 +25,9 @@
import javax.management.NotCompliantMBeanException;
import javax.management.ObjectName;
+import org.snmp4j.security.AuthMD5;
+import org.snmp4j.security.AuthSHA;
+import org.snmp4j.security.SecurityProtocols;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -45,6 +48,9 @@ public static void main(String[] args) throws MalformedObjectNameException, Inte
SystemConfig mBean = new SystemConfig(DEFAULT_NO_THREADS, DEFAULT_SCHEMA);
ObjectName name = new ObjectName("us.dot.its.jpo.ode:type=SystemConfig");
mbs.registerMBean(mBean, name);
+
+ SecurityProtocols.getInstance().addAuthenticationProtocol(new AuthSHA());
+ SecurityProtocols.getInstance().addAuthenticationProtocol(new AuthMD5());
}
@Bean
diff --git a/jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/traveler/TimDepositController.java b/jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/traveler/TimDepositController.java
index 4eac3888b..75e6a1c2c 100644
--- a/jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/traveler/TimDepositController.java
+++ b/jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/traveler/TimDepositController.java
@@ -33,7 +33,6 @@
import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.google.gson.JsonSyntaxException;
import us.dot.its.jpo.ode.OdeProperties;
import us.dot.its.jpo.ode.context.AppContext;
@@ -83,7 +82,7 @@ public static class TimDepositControllerException extends Exception {
public TimDepositControllerException(String errMsg) {
super(errMsg);
}
-
+
}
@Autowired
@@ -122,8 +121,13 @@ public synchronized ResponseEntity depositTim(String jsonString, Request
try {
// Convert JSON to POJO
odeTID = (OdeTravelerInputData) JsonUtils.fromJson(jsonString, OdeTravelerInputData.class);
- request = odeTID.getRequest();
+ if (odeTID == null) {
+ String errMsg = "Malformed or non-compliant JSON syntax.";
+ logger.error(errMsg);
+ return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(JsonUtils.jsonKeyValue(ERRSTR, errMsg));
+ }
+ request = odeTID.getRequest();
if (request == null) {
throw new TimDepositControllerException("Request element is required as of version 3.");
}
@@ -138,40 +142,36 @@ public synchronized ResponseEntity depositTim(String jsonString, Request
String errMsg = "Missing or invalid argument: " + e.getMessage();
logger.error(errMsg, e);
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(JsonUtils.jsonKeyValue(ERRSTR, errMsg));
- } catch (JsonSyntaxException e) {
- String errMsg = "Malformed or non-compliant JSON syntax.";
- logger.error(errMsg, e);
- return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(JsonUtils.jsonKeyValue(ERRSTR, errMsg));
}
// Add metadata to message and publish to kafka
OdeTravelerInformationMessage tim = odeTID.getTim();
OdeMsgPayload timDataPayload = new OdeMsgPayload(tim);
OdeRequestMsgMetadata timMetadata = new OdeRequestMsgMetadata(timDataPayload, request);
-
+
// set packetID in tim Metadata
- timMetadata.setOdePacketID(tim.getPacketID());
- // set maxDurationTime in tim Metadata and set latest startDatetime in tim
- // metadata
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
- if (null != tim.getDataframes() && tim.getDataframes().length > 0) {
- int maxDurationTime = 0;
- Date latestStartDateTime = null;
- for (DataFrame dataFrameItem : tim.getDataframes()) {
- maxDurationTime = maxDurationTime > dataFrameItem.getDurationTime() ? maxDurationTime
- : dataFrameItem.getDurationTime();
- try {
- latestStartDateTime = (latestStartDateTime == null || (latestStartDateTime != null
- && latestStartDateTime.before(dateFormat.parse(dataFrameItem.getStartDateTime())))
- ? dateFormat.parse(dataFrameItem.getStartDateTime())
- : latestStartDateTime);
- } catch (ParseException e) {
- logger.error("Invalid dateTime parse: " + e);
- }
- }
- timMetadata.setMaxDurationTime(maxDurationTime);
- timMetadata.setOdeTimStartDateTime(dateFormat.format(latestStartDateTime));
- }
+ timMetadata.setOdePacketID(tim.getPacketID());
+ // set maxDurationTime in tim Metadata and set latest startDatetime in tim
+ // metadata
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
+ if (null != tim.getDataframes() && tim.getDataframes().length > 0) {
+ int maxDurationTime = 0;
+ Date latestStartDateTime = null;
+ for (DataFrame dataFrameItem : tim.getDataframes()) {
+ maxDurationTime = maxDurationTime > dataFrameItem.getDurationTime() ? maxDurationTime
+ : dataFrameItem.getDurationTime();
+ try {
+ latestStartDateTime = (latestStartDateTime == null || (latestStartDateTime != null
+ && latestStartDateTime.before(dateFormat.parse(dataFrameItem.getStartDateTime())))
+ ? dateFormat.parse(dataFrameItem.getStartDateTime())
+ : latestStartDateTime);
+ } catch (ParseException e) {
+ logger.error("Invalid dateTime parse: " + e);
+ }
+ }
+ timMetadata.setMaxDurationTime(maxDurationTime);
+ timMetadata.setOdeTimStartDateTime(dateFormat.format(latestStartDateTime));
+ }
// Setting the SerialId to OdeBradcastTim serialId to be changed to
// J2735BroadcastTim serialId after the message has been published to
// OdeTimBrodcast topic
@@ -195,7 +195,6 @@ public synchronized ResponseEntity depositTim(String jsonString, Request
// Now that the message gas been published to OdeBradcastTim topic, it should be
// changed to J2735BroadcastTim serialId
timMetadata.setSerialId(serialIdJ2735);
-
// Short circuit
// If the TIM has no RSU/SNMP or SDW structures, we are done
diff --git a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/OdePropertiesTest.java b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/OdePropertiesTest.java
index dd1db40e9..e2fe073ce 100644
--- a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/OdePropertiesTest.java
+++ b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/OdePropertiesTest.java
@@ -26,268 +26,253 @@
import org.junit.Before;
import org.junit.Test;
+import org.springframework.boot.info.BuildProperties;
import org.springframework.core.env.Environment;
-import groovy.lang.MissingPropertyException;
import mockit.Capturing;
import mockit.Expectations;
import mockit.Injectable;
-import mockit.Mocked;
+import mockit.Mock;
+import mockit.MockUp;
import mockit.Tested;
import us.dot.its.jpo.ode.util.CommonUtils;
public class OdePropertiesTest {
- @Tested
- OdeProperties testOdeProperties;
- @Injectable
- Environment mockEnv;
+ @Tested
+ OdeProperties testOdeProperties;
+ @Injectable
+ Environment mockEnv;
+ @Injectable
+ BuildProperties mockBuildProperties;
- @Capturing
- CommonUtils capturingCommonUtils;
+ @Capturing
+ CommonUtils capturingCommonUtils;
- @Before
- public void setup() {
- new Expectations() {
- {
- CommonUtils.getEnvironmentVariable("DOCKER_HOST_IP");
- result = "testKafkaBrokers";
- }
- };
- }
-
- @Test
- public void testInit() {
- new Expectations() {
- {
- }
- };
- try {
- new OdeProperties();
- } catch (Exception e) {
- fail("Unexpected exception: " + e);
+ @Before
+ public void setup() {
+ new Expectations() {
+ {
+ CommonUtils.getEnvironmentVariable("DOCKER_HOST_IP");
+ result = "testKafkaBrokers";
+ }
+ };
}
- }
- @Test
- public void initShouldCatchUnknownHostException(@Mocked final InetAddress mockInetAddress) {
- try {
- new Expectations() {
- {
- InetAddress.getLocalHost();
- result = new UnknownHostException("testException123");
+ @Test
+ public void testInit() {
+ new Expectations() {
+ {
+ }
+ };
+ try {
+ new OdeProperties();
+ } catch (Exception e) {
+ fail("Unexpected exception: " + e);
}
- };
- } catch (Exception e) {
- fail("Unexpected exception in expectations block: " + e);
- }
-
- try {
- new OdeProperties().initialize();
- } catch (Exception e) {
- fail("Unexpected exception in init: " + e);
}
- }
+
+ @Test
+ public void initShouldCatchUnknownHostException(@Capturing InetAddress capturingInetAddress) throws Exception {
+ // from jmockit dev history (https://jmockit.github.io/changes.html)
+ // as of versiofn 1.48, partial mocking of classes through Expectations has been
+ // dropped. MockUp is recommended alternative
+ new MockUp() {
+ @Mock
+ public InetAddress getLocalHost() throws UnknownHostException {
+ throw new UnknownHostException("testException123");
+ }
+ };
- @Test
- public void missingDockerHostIpShouldThrowException(@Mocked final InetAddress mockInetAddress) {
- try {
- new Expectations() {
- {
- CommonUtils.getEnvironmentVariable("DOCKER_HOST_IP");
- result = null;
+ try {
+ testOdeProperties.initialize();
+ } catch (Exception e) {
+ fail("Unexpected exception in init: " + e);
}
- };
- } catch (Exception e) {
- fail("Unexpected exception in expectations block: " + e);
}
- try {
- new OdeProperties().initialize();
- } catch (Exception e) {
- assertTrue(e instanceof MissingPropertyException);
- }
- }
-
- @Test
- public void testSettersAndGetters() {
+ @Test
+ public void testSettersAndGetters() {
- String testDdsCasPassword = "testDdsCasPassword123456";
- String testDdsCasUrl = "testDdsCasUrl123456";
- String testDdsCasUsername = "testDdsCasUsername123456";
- String testDdsWebsocketUrl = "testDdsWebsocketUrl123456";
- String testKafkaBrokers = "testKafkaBrokers123456";
- String testKafkaProducerType = "testKafkaProducerType123456";
- String testPluginsLocations = "testpluginsLocations123456";
- String testUploadLocationObuLog = "testuploadLocationObuLog123456";
- String testUploadLocationRoot = "testUploadLocationRoot123456";
- int testMessagesUntilTrustReestablished = 17;
- String testCaCertPath = "testCaCertPath";
- String testSelfCertPath = "testSelfCertPath";
- String testSelfPrivateKeyReconstructionFilePath = "testSelfPrivateKeyReconstructionFilePath";
- String testSelfSigningPrivateKeyFilePath = "testSelfSigningPrivateKeyFilePath";
- String testKafkaTopicBsmFilteredJson = "testKafkaTopicBsmFilteredJson";
- boolean testVerboseJson = true;
- int testRsuSrmSlots = 22;
- int testTrustRetries = 23;
- String testKafkaTopicOdeBsmPojo = "testKafkaTopicOdeBsmPojo";
- String testKafkaTopicOdeBsmJson = "testKafkaTopicOdeBsmJson";
- String testVersion = "1.1.0-SNAPSHOT";
- int testImportProcessorBufferSize = 83;
+ String testDdsCasPassword = "testDdsCasPassword123456";
+ String testDdsCasUrl = "testDdsCasUrl123456";
+ String testDdsCasUsername = "testDdsCasUsername123456";
+ String testDdsWebsocketUrl = "testDdsWebsocketUrl123456";
+ String testKafkaBrokers = "testKafkaBrokers123456";
+ String testKafkaProducerType = "testKafkaProducerType123456";
+ String testPluginsLocations = "testpluginsLocations123456";
+ String testUploadLocationObuLog = "testuploadLocationObuLog123456";
+ String testUploadLocationRoot = "testUploadLocationRoot123456";
+ int testMessagesUntilTrustReestablished = 17;
+ String testCaCertPath = "testCaCertPath";
+ String testSelfCertPath = "testSelfCertPath";
+ String testSelfPrivateKeyReconstructionFilePath = "testSelfPrivateKeyReconstructionFilePath";
+ String testSelfSigningPrivateKeyFilePath = "testSelfSigningPrivateKeyFilePath";
+ String testKafkaTopicBsmFilteredJson = "testKafkaTopicBsmFilteredJson";
+ boolean testVerboseJson = true;
+ int testRsuSrmSlots = 22;
+ int testTrustRetries = 23;
+ String testKafkaTopicOdeBsmPojo = "testKafkaTopicOdeBsmPojo";
+ String testKafkaTopicOdeBsmJson = "testKafkaTopicOdeBsmJson";
+ String testVersion = "1.1.0-SNAPSHOT";
+ int testImportProcessorBufferSize = 83;
- String[] testKafkaTopicsDisabled = new String[] { "testKafkaTopicsDisabled0" };
- Set testKafkaTopicsDisabledSet = new HashSet<>();
- testKafkaTopicsDisabledSet.add("testKafkaTopicsDisabledSet0");
+ String[] testKafkaTopicsDisabled = new String[] { "testKafkaTopicsDisabled0" };
+ Set testKafkaTopicsDisabledSet = new HashSet<>();
+ testKafkaTopicsDisabledSet.add("testKafkaTopicsDisabledSet0");
- String testKafkaTopicAsn1DecoderInput = "testKafkaTopicAsn1DecoderInput";
- String testKafkaTopicAsn1DecoderOutput = "testKafkaTopicAsn1DecoderOutput";
- String testKafkaTopicAsn1EncoderInput = "testKafkaTopicAsn1EncoderInput";
- String testKafkaTopicAsn1EncoderOutput = "testKafkaTopicAsn1EncoderOutput";
- String testKafkaTopicOdeDNMsgJson = "testKafkaTopicOdeDNMsgJson";
- String testKafkaTopicOdeTimJson = "testKafkaTopicOdeTimJson";
- String testKafkaTopicOdeBsmDuringEventPojo = "testKafkaTopicOdeBsmDuringEventPojo";
- String testKafkaTopicOdeBsmRxPojo = "testKafkaTopicOdeBsmRxPojo";
- String testKafkaTopicOdeBsmTxPojo = "testKafkaTopicOdeBsmTxPojo";
- String testKafkaTopicOdeTimRxJson = "testKafkaTopicOdeTimRxJson";
- String testKafkaTopicOdeTimBroadcastPojo = "testKafkaTopicOdeTimBroadcastPojo";
- String testKafkaTopicOdeTimBroadcastJson = "testKafkaTopicOdeTimBroadcastJson";
- String testKafkaTopicJ2735TimBroadcastJson = "testKafkaTopicJ2735TimBroadcastJson";
- String testKafkaTopicFilteredOdeTimJson = "testKafkaTopicFilteredOdeTimJson";
- String testKafkaTopicDriverAlertJson = "testKafkaTopicDriverAlertJson";
+ String testKafkaTopicAsn1DecoderInput = "testKafkaTopicAsn1DecoderInput";
+ String testKafkaTopicAsn1DecoderOutput = "testKafkaTopicAsn1DecoderOutput";
+ String testKafkaTopicAsn1EncoderInput = "testKafkaTopicAsn1EncoderInput";
+ String testKafkaTopicAsn1EncoderOutput = "testKafkaTopicAsn1EncoderOutput";
+ String testKafkaTopicOdeDNMsgJson = "testKafkaTopicOdeDNMsgJson";
+ String testKafkaTopicOdeTimJson = "testKafkaTopicOdeTimJson";
+ String testKafkaTopicOdeBsmDuringEventPojo = "testKafkaTopicOdeBsmDuringEventPojo";
+ String testKafkaTopicOdeBsmRxPojo = "testKafkaTopicOdeBsmRxPojo";
+ String testKafkaTopicOdeBsmTxPojo = "testKafkaTopicOdeBsmTxPojo";
+ String testKafkaTopicOdeTimRxJson = "testKafkaTopicOdeTimRxJson";
+ String testKafkaTopicOdeTimBroadcastPojo = "testKafkaTopicOdeTimBroadcastPojo";
+ String testKafkaTopicOdeTimBroadcastJson = "testKafkaTopicOdeTimBroadcastJson";
+ String testKafkaTopicJ2735TimBroadcastJson = "testKafkaTopicJ2735TimBroadcastJson";
+ String testKafkaTopicFilteredOdeTimJson = "testKafkaTopicFilteredOdeTimJson";
+ String testKafkaTopicDriverAlertJson = "testKafkaTopicDriverAlertJson";
- Integer testFileWatcherPeriod = 5;
- String testSecuritySvcsSignatureUri = "testSecuritySvcsSignatureUri";
- String testRsuUsername = "testRsuUsername";
- String testRsuPassword = "testRsuPassword";
+ Integer testFileWatcherPeriod = 5;
+ String testSecuritySvcsSignatureUri = "testSecuritySvcsSignatureUri";
+ String testRsuUsername = "testRsuUsername";
+ String testRsuPassword = "testRsuPassword";
- testOdeProperties.setDdsCasPassword(testDdsCasPassword);
- testOdeProperties.setDdsCasUrl(testDdsCasUrl);
- testOdeProperties.setDdsCasUsername(testDdsCasUsername);
- testOdeProperties.setDdsWebsocketUrl(testDdsWebsocketUrl);
- testOdeProperties.setEnv(mockEnv);
- testOdeProperties.setEnvironment(mockEnv);
- testOdeProperties.setKafkaBrokers(testKafkaBrokers);
- testOdeProperties.setKafkaProducerType(testKafkaProducerType);
- testOdeProperties.setPluginsLocations(testPluginsLocations);
- testOdeProperties.setUploadLocationObuLog(testUploadLocationObuLog);
- testOdeProperties.setUploadLocationRoot(testUploadLocationRoot);
- testOdeProperties.setMessagesUntilTrustReestablished(testMessagesUntilTrustReestablished);
- testOdeProperties.setCaCertPath(testCaCertPath);
- testOdeProperties.setSelfCertPath(testSelfCertPath);
- testOdeProperties.setSelfPrivateKeyReconstructionFilePath(testSelfPrivateKeyReconstructionFilePath);
- testOdeProperties.setSelfSigningPrivateKeyFilePath(testSelfSigningPrivateKeyFilePath);
- testOdeProperties.setKafkaTopicFilteredOdeBsmJson(testKafkaTopicBsmFilteredJson);
- testOdeProperties.setVerboseJson(testVerboseJson);
- testOdeProperties.setRsuSrmSlots(testRsuSrmSlots);
- testOdeProperties.setTrustRetries(testTrustRetries);
- testOdeProperties.setKafkaTopicOdeBsmPojo(testKafkaTopicOdeBsmPojo);
- testOdeProperties.setKafkaTopicOdeBsmJson(testKafkaTopicOdeBsmJson);
- testOdeProperties.setVersion(testVersion);
- testOdeProperties.setImportProcessorBufferSize(testImportProcessorBufferSize);
- testOdeProperties.setKafkaTopicsDisabled(testKafkaTopicsDisabled);
- testOdeProperties.setKafkaTopicsDisabledSet(testKafkaTopicsDisabledSet);
+ testOdeProperties.setDdsCasPassword(testDdsCasPassword);
+ testOdeProperties.setDdsCasUrl(testDdsCasUrl);
+ testOdeProperties.setDdsCasUsername(testDdsCasUsername);
+ testOdeProperties.setDdsWebsocketUrl(testDdsWebsocketUrl);
+ testOdeProperties.setEnv(mockEnv);
+ testOdeProperties.setEnvironment(mockEnv);
+ testOdeProperties.setKafkaBrokers(testKafkaBrokers);
+ testOdeProperties.setKafkaProducerType(testKafkaProducerType);
+ testOdeProperties.setPluginsLocations(testPluginsLocations);
+ testOdeProperties.setUploadLocationObuLog(testUploadLocationObuLog);
+ testOdeProperties.setUploadLocationRoot(testUploadLocationRoot);
+ testOdeProperties.setMessagesUntilTrustReestablished(testMessagesUntilTrustReestablished);
+ testOdeProperties.setCaCertPath(testCaCertPath);
+ testOdeProperties.setSelfCertPath(testSelfCertPath);
+ testOdeProperties.setSelfPrivateKeyReconstructionFilePath(testSelfPrivateKeyReconstructionFilePath);
+ testOdeProperties.setSelfSigningPrivateKeyFilePath(testSelfSigningPrivateKeyFilePath);
+ testOdeProperties.setKafkaTopicFilteredOdeBsmJson(testKafkaTopicBsmFilteredJson);
+ testOdeProperties.setVerboseJson(testVerboseJson);
+ testOdeProperties.setRsuSrmSlots(testRsuSrmSlots);
+ testOdeProperties.setTrustRetries(testTrustRetries);
+ testOdeProperties.setKafkaTopicOdeBsmPojo(testKafkaTopicOdeBsmPojo);
+ testOdeProperties.setKafkaTopicOdeBsmJson(testKafkaTopicOdeBsmJson);
+ testOdeProperties.setVersion(testVersion);
+ testOdeProperties.setImportProcessorBufferSize(testImportProcessorBufferSize);
+ testOdeProperties.setKafkaTopicsDisabled(testKafkaTopicsDisabled);
+ testOdeProperties.setKafkaTopicsDisabledSet(testKafkaTopicsDisabledSet);
- testOdeProperties.setKafkaTopicAsn1DecoderInput(testKafkaTopicAsn1DecoderInput);
- testOdeProperties.setKafkaTopicAsn1DecoderOutput(testKafkaTopicAsn1DecoderOutput);
- testOdeProperties.setKafkaTopicAsn1EncoderInput(testKafkaTopicAsn1EncoderInput);
- testOdeProperties.setKafkaTopicAsn1EncoderOutput(testKafkaTopicAsn1EncoderOutput);
- testOdeProperties.setKafkaTopicOdeDNMsgJson(testKafkaTopicOdeDNMsgJson);
- testOdeProperties.setKafkaTopicOdeTimJson(testKafkaTopicOdeTimJson);
- testOdeProperties.setKafkaTopicOdeBsmDuringEventPojo(testKafkaTopicOdeBsmDuringEventPojo);
- testOdeProperties.setKafkaTopicOdeBsmRxPojo(testKafkaTopicOdeBsmRxPojo);
- testOdeProperties.setKafkaTopicOdeBsmTxPojo(testKafkaTopicOdeBsmTxPojo);
- testOdeProperties.setKafkaTopicOdeTimRxJson(testKafkaTopicOdeTimRxJson);
- testOdeProperties.setKafkaTopicOdeTimBroadcastPojo(testKafkaTopicOdeTimBroadcastPojo);
- testOdeProperties.setKafkaTopicOdeTimBroadcastJson(testKafkaTopicOdeTimBroadcastJson);
- testOdeProperties.setKafkaTopicJ2735TimBroadcastJson(testKafkaTopicJ2735TimBroadcastJson);
- testOdeProperties.setKafkaTopicFilteredOdeTimJson(testKafkaTopicFilteredOdeTimJson);
- testOdeProperties.setKafkaTopicDriverAlertJson(testKafkaTopicDriverAlertJson);
+ testOdeProperties.setKafkaTopicAsn1DecoderInput(testKafkaTopicAsn1DecoderInput);
+ testOdeProperties.setKafkaTopicAsn1DecoderOutput(testKafkaTopicAsn1DecoderOutput);
+ testOdeProperties.setKafkaTopicAsn1EncoderInput(testKafkaTopicAsn1EncoderInput);
+ testOdeProperties.setKafkaTopicAsn1EncoderOutput(testKafkaTopicAsn1EncoderOutput);
+ testOdeProperties.setKafkaTopicOdeDNMsgJson(testKafkaTopicOdeDNMsgJson);
+ testOdeProperties.setKafkaTopicOdeTimJson(testKafkaTopicOdeTimJson);
+ testOdeProperties.setKafkaTopicOdeBsmDuringEventPojo(testKafkaTopicOdeBsmDuringEventPojo);
+ testOdeProperties.setKafkaTopicOdeBsmRxPojo(testKafkaTopicOdeBsmRxPojo);
+ testOdeProperties.setKafkaTopicOdeBsmTxPojo(testKafkaTopicOdeBsmTxPojo);
+ testOdeProperties.setKafkaTopicOdeTimRxJson(testKafkaTopicOdeTimRxJson);
+ testOdeProperties.setKafkaTopicOdeTimBroadcastPojo(testKafkaTopicOdeTimBroadcastPojo);
+ testOdeProperties.setKafkaTopicOdeTimBroadcastJson(testKafkaTopicOdeTimBroadcastJson);
+ testOdeProperties.setKafkaTopicJ2735TimBroadcastJson(testKafkaTopicJ2735TimBroadcastJson);
+ testOdeProperties.setKafkaTopicFilteredOdeTimJson(testKafkaTopicFilteredOdeTimJson);
+ testOdeProperties.setKafkaTopicDriverAlertJson(testKafkaTopicDriverAlertJson);
- testOdeProperties.setFileWatcherPeriod(testFileWatcherPeriod);
- testOdeProperties.setSecuritySvcsSignatureUri(testSecuritySvcsSignatureUri);
- testOdeProperties.setRsuUsername(testRsuUsername);
- testOdeProperties.setRsuPassword(testRsuPassword);
+ testOdeProperties.setFileWatcherPeriod(testFileWatcherPeriod);
+ testOdeProperties.setSecuritySvcsSignatureUri(testSecuritySvcsSignatureUri);
+ testOdeProperties.setRsuUsername(testRsuUsername);
+ testOdeProperties.setRsuPassword(testRsuPassword);
- assertEquals("Incorrect testDdsCasPassword", testDdsCasPassword, testOdeProperties.getDdsCasPassword());
- assertEquals("Incorrect testDdsCasUrl", testDdsCasUrl, testOdeProperties.getDdsCasUrl());
- assertEquals("Incorrect testDdsCasUsername", testDdsCasUsername, testOdeProperties.getDdsCasUsername());
- assertEquals("Incorrect testDdsWebsocketUrl", testDdsWebsocketUrl, testOdeProperties.getDdsWebsocketUrl());
- assertEquals("Incorrect testEnv", mockEnv, testOdeProperties.getEnv());
- assertEquals("Incorrect testKafkaBrokers", testKafkaBrokers, testOdeProperties.getKafkaBrokers());
- assertEquals("Incorrect testKafkaProducerType", testKafkaProducerType, testOdeProperties.getKafkaProducerType());
- assertEquals("Incorrect testpluginsLocations", testPluginsLocations, testOdeProperties.getPluginsLocations());
- assertEquals("Incorrect testUploadLocationObuLog", testUploadLocationObuLog,
- testOdeProperties.getUploadLocationObuLog());
- assertEquals("Incorrect testUploadLocationRoot", testUploadLocationRoot,
- testOdeProperties.getUploadLocationRoot());
- assertEquals("Incorrect testMessagesUntilTrustReestablished", testMessagesUntilTrustReestablished,
- testOdeProperties.getMessagesUntilTrustReestablished());
- assertEquals("Incorrect testCaCertPath", testCaCertPath, testOdeProperties.getCaCertPath());
- assertEquals("Incorrect testSelfCertPath", testSelfCertPath, testOdeProperties.getSelfCertPath());
- assertEquals("Incorrect testSelfPrivateKeyReconstructionFilePath", testSelfPrivateKeyReconstructionFilePath,
- testOdeProperties.getSelfPrivateKeyReconstructionFilePath());
- assertEquals("Incorrect testSelfSigningPrivateKeyFilePath", testSelfSigningPrivateKeyFilePath,
- testOdeProperties.getSelfSigningPrivateKeyFilePath());
- assertEquals("Incorrect testKafkaTopicBsmFilteredJson", testKafkaTopicBsmFilteredJson,
- testOdeProperties.getKafkaTopicFilteredOdeBsmJson());
- assertEquals("Incorrect testVerboseJson", testVerboseJson, testOdeProperties.getVerboseJson());
- assertEquals("Incorrect testRsuSrmSlots", testRsuSrmSlots, testOdeProperties.getRsuSrmSlots());
- assertEquals("Incorrect testTrustRetries", testTrustRetries, testOdeProperties.getTrustRetries());
- assertEquals("Incorrect testKafkaTopicOdeBsmPojo", testKafkaTopicOdeBsmPojo,
- testOdeProperties.getKafkaTopicOdeBsmPojo());
- assertEquals("Incorrect testKafkaTopicOdeBsmJson", testKafkaTopicOdeBsmJson,
- testOdeProperties.getKafkaTopicOdeBsmJson());
- assertEquals("Incorrect testVersion", testVersion, testOdeProperties.getVersion());
- assertEquals("Incorrect testImportProcessorBufferSize", testImportProcessorBufferSize,
- testOdeProperties.getImportProcessorBufferSize());
- assertEquals("Incorrect testKafkaTopicsDisabled", testKafkaTopicsDisabled[0],
- testOdeProperties.getKafkaTopicsDisabled()[0]);
- assertTrue("Incorrect testKafkaTopicsDisabledSet",
- testOdeProperties.getKafkaTopicsDisabledSet().contains("testKafkaTopicsDisabledSet0"));
+ assertEquals("Incorrect testDdsCasPassword", testDdsCasPassword, testOdeProperties.getDdsCasPassword());
+ assertEquals("Incorrect testDdsCasUrl", testDdsCasUrl, testOdeProperties.getDdsCasUrl());
+ assertEquals("Incorrect testDdsCasUsername", testDdsCasUsername, testOdeProperties.getDdsCasUsername());
+ assertEquals("Incorrect testDdsWebsocketUrl", testDdsWebsocketUrl, testOdeProperties.getDdsWebsocketUrl());
+ assertEquals("Incorrect testEnv", mockEnv, testOdeProperties.getEnv());
+ assertEquals("Incorrect testKafkaBrokers", testKafkaBrokers, testOdeProperties.getKafkaBrokers());
+ assertEquals("Incorrect testKafkaProducerType", testKafkaProducerType,
+ testOdeProperties.getKafkaProducerType());
+ assertEquals("Incorrect testpluginsLocations", testPluginsLocations,
+ testOdeProperties.getPluginsLocations());
+ assertEquals("Incorrect testUploadLocationObuLog", testUploadLocationObuLog,
+ testOdeProperties.getUploadLocationObuLog());
+ assertEquals("Incorrect testUploadLocationRoot", testUploadLocationRoot,
+ testOdeProperties.getUploadLocationRoot());
+ assertEquals("Incorrect testMessagesUntilTrustReestablished", testMessagesUntilTrustReestablished,
+ testOdeProperties.getMessagesUntilTrustReestablished());
+ assertEquals("Incorrect testCaCertPath", testCaCertPath, testOdeProperties.getCaCertPath());
+ assertEquals("Incorrect testSelfCertPath", testSelfCertPath, testOdeProperties.getSelfCertPath());
+ assertEquals("Incorrect testSelfPrivateKeyReconstructionFilePath", testSelfPrivateKeyReconstructionFilePath,
+ testOdeProperties.getSelfPrivateKeyReconstructionFilePath());
+ assertEquals("Incorrect testSelfSigningPrivateKeyFilePath", testSelfSigningPrivateKeyFilePath,
+ testOdeProperties.getSelfSigningPrivateKeyFilePath());
+ assertEquals("Incorrect testKafkaTopicBsmFilteredJson", testKafkaTopicBsmFilteredJson,
+ testOdeProperties.getKafkaTopicFilteredOdeBsmJson());
+ assertEquals("Incorrect testVerboseJson", testVerboseJson, testOdeProperties.getVerboseJson());
+ assertEquals("Incorrect testRsuSrmSlots", testRsuSrmSlots, testOdeProperties.getRsuSrmSlots());
+ assertEquals("Incorrect testTrustRetries", testTrustRetries, testOdeProperties.getTrustRetries());
+ assertEquals("Incorrect testKafkaTopicOdeBsmPojo", testKafkaTopicOdeBsmPojo,
+ testOdeProperties.getKafkaTopicOdeBsmPojo());
+ assertEquals("Incorrect testKafkaTopicOdeBsmJson", testKafkaTopicOdeBsmJson,
+ testOdeProperties.getKafkaTopicOdeBsmJson());
+ assertEquals("Incorrect testVersion", testVersion, testOdeProperties.getVersion());
+ assertEquals("Incorrect testImportProcessorBufferSize", testImportProcessorBufferSize,
+ testOdeProperties.getImportProcessorBufferSize());
+ assertEquals("Incorrect testKafkaTopicsDisabled", testKafkaTopicsDisabled[0],
+ testOdeProperties.getKafkaTopicsDisabled()[0]);
+ assertTrue("Incorrect testKafkaTopicsDisabledSet",
+ testOdeProperties.getKafkaTopicsDisabledSet().contains("testKafkaTopicsDisabledSet0"));
- assertEquals("Incorrect testKafkaTopicAsn1DecoderInput", testKafkaTopicAsn1DecoderInput,
- testOdeProperties.getKafkaTopicAsn1DecoderInput());
- assertEquals("Incorrect testKafkaTopicAsn1DecoderOutput", testKafkaTopicAsn1DecoderOutput,
- testOdeProperties.getKafkaTopicAsn1DecoderOutput());
- assertEquals("Incorrect testKafkaTopicAsn1EncoderInput", testKafkaTopicAsn1EncoderInput,
- testOdeProperties.getKafkaTopicAsn1EncoderInput());
- assertEquals("Incorrect testKafkaTopicAsn1EncoderOutput", testKafkaTopicAsn1EncoderOutput,
- testOdeProperties.getKafkaTopicAsn1EncoderOutput());
- assertEquals("Incorrect testKafkaTopicOdeDNMsgJson", testKafkaTopicOdeDNMsgJson,
- testOdeProperties.getKafkaTopicOdeDNMsgJson());
- assertEquals("Incorrect testKafkaTopicOdeTimJson", testKafkaTopicOdeTimJson,
- testOdeProperties.getKafkaTopicOdeTimJson());
- assertEquals("Incorrect testKafkaTopicOdeBsmDuringEventPojo", testKafkaTopicOdeBsmDuringEventPojo,
- testOdeProperties.getKafkaTopicOdeBsmDuringEventPojo());
- assertEquals("Incorrect testKafkaTopicOdeBsmRxPojo", testKafkaTopicOdeBsmRxPojo,
- testOdeProperties.getKafkaTopicOdeBsmRxPojo());
- assertEquals("Incorrect testKafkaTopicOdeBsmTxPojo", testKafkaTopicOdeBsmTxPojo,
- testOdeProperties.getKafkaTopicOdeBsmTxPojo());
- assertEquals("Incorrect testKafkaTopicOdeTimRxJson", testKafkaTopicOdeTimRxJson,
- testOdeProperties.getKafkaTopicOdeTimRxJson());
- assertEquals("Incorrect testKafkaTopicOdeTimBroadcastPojo", testKafkaTopicOdeTimBroadcastPojo,
- testOdeProperties.getKafkaTopicOdeTimBroadcastPojo());
- assertEquals("Incorrect testKafkaTopicOdeTimBroadcastJson", testKafkaTopicOdeTimBroadcastJson,
- testOdeProperties.getKafkaTopicOdeTimBroadcastJson());
- assertEquals("Incorrect testKafkaTopicJ2735TimBroadcastJson", testKafkaTopicJ2735TimBroadcastJson,
- testOdeProperties.getKafkaTopicJ2735TimBroadcastJson());
- assertEquals("Incorrect testKafkaTopicFilteredOdeTimJson", testKafkaTopicFilteredOdeTimJson,
- testOdeProperties.getKafkaTopicFilteredOdeTimJson());
- assertEquals("Incorrect testKafkaTopicDriverAlertJson", testKafkaTopicDriverAlertJson,
- testOdeProperties.getKafkaTopicDriverAlertJson());
+ assertEquals("Incorrect testKafkaTopicAsn1DecoderInput", testKafkaTopicAsn1DecoderInput,
+ testOdeProperties.getKafkaTopicAsn1DecoderInput());
+ assertEquals("Incorrect testKafkaTopicAsn1DecoderOutput", testKafkaTopicAsn1DecoderOutput,
+ testOdeProperties.getKafkaTopicAsn1DecoderOutput());
+ assertEquals("Incorrect testKafkaTopicAsn1EncoderInput", testKafkaTopicAsn1EncoderInput,
+ testOdeProperties.getKafkaTopicAsn1EncoderInput());
+ assertEquals("Incorrect testKafkaTopicAsn1EncoderOutput", testKafkaTopicAsn1EncoderOutput,
+ testOdeProperties.getKafkaTopicAsn1EncoderOutput());
+ assertEquals("Incorrect testKafkaTopicOdeDNMsgJson", testKafkaTopicOdeDNMsgJson,
+ testOdeProperties.getKafkaTopicOdeDNMsgJson());
+ assertEquals("Incorrect testKafkaTopicOdeTimJson", testKafkaTopicOdeTimJson,
+ testOdeProperties.getKafkaTopicOdeTimJson());
+ assertEquals("Incorrect testKafkaTopicOdeBsmDuringEventPojo", testKafkaTopicOdeBsmDuringEventPojo,
+ testOdeProperties.getKafkaTopicOdeBsmDuringEventPojo());
+ assertEquals("Incorrect testKafkaTopicOdeBsmRxPojo", testKafkaTopicOdeBsmRxPojo,
+ testOdeProperties.getKafkaTopicOdeBsmRxPojo());
+ assertEquals("Incorrect testKafkaTopicOdeBsmTxPojo", testKafkaTopicOdeBsmTxPojo,
+ testOdeProperties.getKafkaTopicOdeBsmTxPojo());
+ assertEquals("Incorrect testKafkaTopicOdeTimRxJson", testKafkaTopicOdeTimRxJson,
+ testOdeProperties.getKafkaTopicOdeTimRxJson());
+ assertEquals("Incorrect testKafkaTopicOdeTimBroadcastPojo", testKafkaTopicOdeTimBroadcastPojo,
+ testOdeProperties.getKafkaTopicOdeTimBroadcastPojo());
+ assertEquals("Incorrect testKafkaTopicOdeTimBroadcastJson", testKafkaTopicOdeTimBroadcastJson,
+ testOdeProperties.getKafkaTopicOdeTimBroadcastJson());
+ assertEquals("Incorrect testKafkaTopicJ2735TimBroadcastJson", testKafkaTopicJ2735TimBroadcastJson,
+ testOdeProperties.getKafkaTopicJ2735TimBroadcastJson());
+ assertEquals("Incorrect testKafkaTopicFilteredOdeTimJson", testKafkaTopicFilteredOdeTimJson,
+ testOdeProperties.getKafkaTopicFilteredOdeTimJson());
+ assertEquals("Incorrect testKafkaTopicDriverAlertJson", testKafkaTopicDriverAlertJson,
+ testOdeProperties.getKafkaTopicDriverAlertJson());
- assertEquals("Incorrect testFileWatcherPeriod", testFileWatcherPeriod, testOdeProperties.getFileWatcherPeriod());
- assertEquals("Incorrect testSecuritySvcsSignatureUri", testSecuritySvcsSignatureUri,
- testOdeProperties.getSecuritySvcsSignatureUri());
- assertEquals("Incorrect testRsuUsername", testRsuUsername, testOdeProperties.getRsuUsername());
- assertEquals("Incorrect RsuPassword", testRsuPassword, testOdeProperties.getRsuPassword());
+ assertEquals("Incorrect testFileWatcherPeriod", testFileWatcherPeriod,
+ testOdeProperties.getFileWatcherPeriod());
+ assertEquals("Incorrect testSecuritySvcsSignatureUri", testSecuritySvcsSignatureUri,
+ testOdeProperties.getSecuritySvcsSignatureUri());
+ assertEquals("Incorrect testRsuUsername", testRsuUsername, testOdeProperties.getRsuUsername());
+ assertEquals("Incorrect RsuPassword", testRsuPassword, testOdeProperties.getRsuPassword());
- OdeProperties.getJpoOdeGroupId();
- testOdeProperties.getHostId();
- testOdeProperties.getProperty("testProperty");
- testOdeProperties.getProperty("testProperty", 5);
- testOdeProperties.getProperty("testProperty", "testDefaultValue");
- testOdeProperties.getUploadLocations();
- }
+ OdeProperties.getJpoOdeGroupId();
+ testOdeProperties.getHostId();
+ testOdeProperties.getProperty("testProperty");
+ testOdeProperties.getProperty("testProperty", 5);
+ testOdeProperties.getProperty("testProperty", "testDefaultValue");
+ testOdeProperties.getUploadLocations();
+ }
}
diff --git a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/stream/LogFileToAsn1CodecPublisherTest.java b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/stream/LogFileToAsn1CodecPublisherTest.java
index aa5dc1472..0072e2a85 100644
--- a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/stream/LogFileToAsn1CodecPublisherTest.java
+++ b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/stream/LogFileToAsn1CodecPublisherTest.java
@@ -50,12 +50,12 @@ public class LogFileToAsn1CodecPublisherTest {
@Injectable
StringPublisher injectableStringPublisher;
-
+
@BeforeClass
public static void setupClass() {
- OdeMsgMetadata.setStaticSchemaVersion(OdeProperties.OUTPUT_SCHEMA_VERSION);
+ OdeMsgMetadata.setStaticSchemaVersion(OdeProperties.OUTPUT_SCHEMA_VERSION);
}
-
+
@Test
public void testPublishInit(@Mocked LogFileParser mockLogFileParser) throws Exception {
new Expectations() {
@@ -68,12 +68,13 @@ public void testPublishInit(@Mocked LogFileParser mockLogFileParser) throws Exce
}
};
- List dataList = testLogFileToAsn1CodecPublisher.publish(new BufferedInputStream(new ByteArrayInputStream(new byte[0])),
+ List dataList = testLogFileToAsn1CodecPublisher.publish(
+ new BufferedInputStream(new ByteArrayInputStream(new byte[0])),
"fileName", ImporterFileType.LEAR_LOG_FILE);
assertTrue(dataList.isEmpty());
}
-
+
@Test
public void testPublishEOF(@Mocked LogFileParser mockLogFileParser) throws Exception {
new Expectations() {
@@ -86,31 +87,36 @@ public void testPublishEOF(@Mocked LogFileParser mockLogFileParser) throws Excep
}
};
- List dataList = testLogFileToAsn1CodecPublisher.publish(new BufferedInputStream(new ByteArrayInputStream(new byte[0])),
+ List dataList = testLogFileToAsn1CodecPublisher.publish(
+ new BufferedInputStream(new ByteArrayInputStream(new byte[0])),
"fileName", ImporterFileType.LEAR_LOG_FILE);
assertTrue(dataList.isEmpty());
}
-
+
@Test(expected = IllegalArgumentException.class)
public void testPublishThrowsIllegalArgumentException() throws Exception {
- //If the filename does not follow expected filename pattern, IllegalArgumentException should be thrown
+ // If the filename does not follow expected filename pattern,
+ // IllegalArgumentException should be thrown
testLogFileToAsn1CodecPublisher.publish(new BufferedInputStream(new ByteArrayInputStream(new byte[0])),
"fileName", ImporterFileType.LEAR_LOG_FILE);
fail("Expected an IllegalArgumentException to be thrown");
}
-
+
@Test(expected = LogFileToAsn1CodecPublisherException.class)
- public void testPublishThrowsLogFileToAsn1CodecPublisherException(@Mocked LogFileParser mockLogFileParser) throws Exception {
+ public void testPublishThrowsLogFileToAsn1CodecPublisherException(@Mocked LogFileParser mockLogFileParser)
+ throws Exception {
new Expectations() {
{
- LogFileParser.factory(anyString);
- result = mockLogFileParser;
+ LogFileParser.factory(anyString);
+ result = mockLogFileParser;
/*
- * If the embedded parser fails to parse a log file header, it may throw an exception
- * which is then caught by the parser and re-thrown as LogFileToAsn1CodecPublisherException.
- * This mocked object will simulate that eventuality.
+ * If the embedded parser fails to parse a log file header, it may throw an
+ * exception
+ * which is then caught by the parser and re-thrown as
+ * LogFileToAsn1CodecPublisherException.
+ * This mocked object will simulate that eventuality.
*/
mockLogFileParser.parseFile((BufferedInputStream) any, anyString);
result = new LogFileToAsn1CodecPublisherException(anyString, (Exception) any);
@@ -121,7 +127,7 @@ public void testPublishThrowsLogFileToAsn1CodecPublisherException(@Mocked LogFil
"fileName", ImporterFileType.LEAR_LOG_FILE);
fail("Expected an LogFileToAsn1CodecPublisherException to be thrown");
}
-
+
@Test
public void testPublishDecodeFailure(@Mocked LogFileParser mockLogFileParser) throws Exception {
new Expectations() {
@@ -134,186 +140,198 @@ public void testPublishDecodeFailure(@Mocked LogFileParser mockLogFileParser) th
}
};
- List dataList = testLogFileToAsn1CodecPublisher.publish(new BufferedInputStream(new ByteArrayInputStream(new byte[0])),
+ List dataList = testLogFileToAsn1CodecPublisher.publish(
+ new BufferedInputStream(new ByteArrayInputStream(new byte[0])),
"fileName", ImporterFileType.LEAR_LOG_FILE);
assertTrue(dataList.isEmpty());
}
-
+
@Test
public void testPublishBsmTxLogFile() throws Exception {
-
- byte[] buf = new byte[] {
- (byte)0x00, //1. direction
- (byte)0x6f, (byte)0x75, (byte)0x4d, (byte)0x19, //2.0 latitude
- (byte)0xa4, (byte)0xa1, (byte)0x5c, (byte)0xce, //2.1 longitude
- (byte)0x67, (byte)0x06, (byte)0x00, (byte)0x00, //2.3 elevation
- (byte)0x04, (byte)0x00, //2.3 speed
- (byte)0x09, (byte)0x27, //2.4 heading
- (byte)0xa9, (byte)0x2c, (byte)0xe2, (byte)0x5a, //3. utcTimeInSec
- (byte)0x8f, (byte)0x01, //4. mSec
- (byte)0x00, //5. securityResultCode
- (byte)0x06, (byte)0x00, //6.0 payloadLength
- //6.1 payload
- (byte)0x03, (byte)0x81, (byte)0x00, (byte)0x40, (byte)0x03, (byte)0x80
- };
-
- String filename = RecordType.bsmTx.name() + GZ;
-
- BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf));
-
- List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LEAR_LOG_FILE);
-
- for (OdeData data : dataList) {
- assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getOdeReceivedAt()), DateTimeUtils.nowZDT()) > 0);
- data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z");
- data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92");
- assertEquals("{\"metadata\":{\"bsmSource\":\"EV\",\"logFileName\":\"bsmTx.gz\",\"recordType\":\"bsmTx\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"NA\"},\"encodings\":[{\"elementName\":\"root\",\"elementType\":\"Ieee1609Dot2Data\",\"encodingRule\":\"COER\"},{\"elementName\":\"unsecuredData\",\"elementType\":\"MessageFrame\",\"encodingRule\":\"UPER\"}],\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":6,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"038100400380\"}}}", data.toJson());
+
+ byte[] buf = new byte[] {
+ (byte) 0x00, // 1. direction
+ (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 2.0 latitude
+ (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 2.1 longitude
+ (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 2.3 elevation
+ (byte) 0x04, (byte) 0x00, // 2.3 speed
+ (byte) 0x09, (byte) 0x27, // 2.4 heading
+ (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 3. utcTimeInSec
+ (byte) 0x8f, (byte) 0x01, // 4. mSec
+ (byte) 0x00, // 5. securityResultCode
+ (byte) 0x06, (byte) 0x00, // 6.0 payloadLength
+ // 6.1 payload
+ (byte) 0x03, (byte) 0x81, (byte) 0x00, (byte) 0x40, (byte) 0x03, (byte) 0x80
+ };
+
+ String filename = RecordType.bsmTx.name() + GZ;
+
+ BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf));
+
+ List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LEAR_LOG_FILE);
+
+ for (OdeData data : dataList) {
+ assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getOdeReceivedAt()),
+ DateTimeUtils.nowZDT()) > 0);
+ data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z");
+ data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92");
+ var expected = "{\"metadata\":{\"bsmSource\":\"EV\",\"logFileName\":\"bsmTx.gz\",\"recordType\":\"bsmTx\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"NA\"},\"encodings\":[{\"elementName\":\"root\",\"elementType\":\"Ieee1609Dot2Data\",\"encodingRule\":\"COER\"},{\"elementName\":\"unsecuredData\",\"elementType\":\"MessageFrame\",\"encodingRule\":\"UPER\"}],\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":6,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"038100400380\"}}}";
+ assertEquals(expected, data.toJson());
}
}
@Test
public void testPublishDistressNotificationLogFile() throws Exception {
-
- byte[] buf = new byte[] {
- (byte)0x6f, (byte)0x75, (byte)0x4d, (byte)0x19, //1.1 latitude
- (byte)0xa4, (byte)0xa1, (byte)0x5c, (byte)0xce, //1.2 longitude
- (byte)0x67, (byte)0x06, (byte)0x00, (byte)0x00, //1.3 elevation
- (byte)0x04, (byte)0x00, //1.4 speed
- (byte)0x09, (byte)0x27, //1.5 heading
- (byte)0xa9, (byte)0x2c, (byte)0xe2, (byte)0x5a, //2. utcTimeInSec
- (byte)0x8f, (byte)0x01, //3. mSec
- (byte)0x00, //4. securityResultCode
- (byte)0x06, (byte)0x00, //5.1 payloadLength
- //5.2 payload
- (byte)0x03, (byte)0x81, (byte)0x00, (byte)0x40, (byte)0x03, (byte)0x80
- };
-
- String filename = RecordType.dnMsg.name() + GZ;
-
- BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf));
-
- List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LEAR_LOG_FILE);
-
- for (OdeData data : dataList) {
- assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getOdeReceivedAt()), DateTimeUtils.nowZDT()) > 0);
- data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z");
- data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92");
- assertEquals("{\"metadata\":{\"logFileName\":\"dnMsg.gz\",\"recordType\":\"dnMsg\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"NA\"},\"encodings\":[{\"elementName\":\"root\",\"elementType\":\"Ieee1609Dot2Data\",\"encodingRule\":\"COER\"},{\"elementName\":\"unsecuredData\",\"elementType\":\"MessageFrame\",\"encodingRule\":\"UPER\"}],\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":6,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"038100400380\"}}}", data.toJson());
+
+ byte[] buf = new byte[] {
+ (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 1.1 latitude
+ (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 1.2 longitude
+ (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 1.3 elevation
+ (byte) 0x04, (byte) 0x00, // 1.4 speed
+ (byte) 0x09, (byte) 0x27, // 1.5 heading
+ (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 2. utcTimeInSec
+ (byte) 0x8f, (byte) 0x01, // 3. mSec
+ (byte) 0x00, // 4. securityResultCode
+ (byte) 0x06, (byte) 0x00, // 5.1 payloadLength
+ // 5.2 payload
+ (byte) 0x03, (byte) 0x81, (byte) 0x00, (byte) 0x40, (byte) 0x03, (byte) 0x80
+ };
+
+ String filename = RecordType.dnMsg.name() + GZ;
+
+ BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf));
+
+ List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LEAR_LOG_FILE);
+
+ for (OdeData data : dataList) {
+ assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getOdeReceivedAt()),
+ DateTimeUtils.nowZDT()) > 0);
+ data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z");
+ data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92");
+ var expected = "{\"metadata\":{\"logFileName\":\"dnMsg.gz\",\"recordType\":\"dnMsg\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"NA\"},\"encodings\":[{\"elementName\":\"root\",\"elementType\":\"Ieee1609Dot2Data\",\"encodingRule\":\"COER\"},{\"elementName\":\"unsecuredData\",\"elementType\":\"MessageFrame\",\"encodingRule\":\"UPER\"}],\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":6,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"038100400380\"}}}";
+ assertEquals(expected, data.toJson());
}
}
@Test
public void testPublishDriverAlertLogFile() throws Exception {
-
- byte[] buf = new byte[] {
- (byte)0x6f, (byte)0x75, (byte)0x4d, (byte)0x19, //1.0 latitude
- (byte)0xa4, (byte)0xa1, (byte)0x5c, (byte)0xce, //1.1 longitude
- (byte)0x67, (byte)0x06, (byte)0x00, (byte)0x00, //1.2 elevation
- (byte)0x04, (byte)0x00, //1.3 speed
- (byte)0x09, (byte)0x27, //1.4 heading
- (byte)0xa9, (byte)0x2c, (byte)0xe2, (byte)0x5a, //2. utcTimeInSec
- (byte)0x8f, (byte)0x01, //3. mSec
- (byte)0x11, (byte)0x00, //4.0 payloadLength
- //4.1 payload
- 'T', 'e', 's', 't', ' ', 'D', 'r', 'i', 'v', 'e', 'r', ' ', 'A', 'l', 'e', 'r', 't'
- };
-
- String filename = RecordType.driverAlert.name() + GZ;
-
- BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf));
-
- List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LEAR_LOG_FILE);
-
- for (OdeData data : dataList) {
- assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getOdeReceivedAt()), DateTimeUtils.nowZDT()) > 0);
- data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z");
- data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92");
- assertEquals("{\"metadata\":{\"logFileName\":\"driverAlert.gz\",\"recordType\":\"driverAlert\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"NA\"},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeDriverAlertPayload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":6,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false},\"payload\":{\"alert\":\"Test Driver Alert\"}}", data.toJson());
- }
+
+ byte[] buf = new byte[] {
+ (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 1.0 latitude
+ (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 1.1 longitude
+ (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 1.2 elevation
+ (byte) 0x04, (byte) 0x00, // 1.3 speed
+ (byte) 0x09, (byte) 0x27, // 1.4 heading
+ (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 2. utcTimeInSec
+ (byte) 0x8f, (byte) 0x01, // 3. mSec
+ (byte) 0x11, (byte) 0x00, // 4.0 payloadLength
+ // 4.1 payload
+ 'T', 'e', 's', 't', ' ', 'D', 'r', 'i', 'v', 'e', 'r', ' ', 'A', 'l', 'e', 'r', 't'
+ };
+
+ String filename = RecordType.driverAlert.name() + GZ;
+
+ BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf));
+
+ List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LEAR_LOG_FILE);
+
+ for (OdeData data : dataList) {
+ assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getOdeReceivedAt()),
+ DateTimeUtils.nowZDT()) > 0);
+ data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z");
+ data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92");
+ var expected = "{\"metadata\":{\"logFileName\":\"driverAlert.gz\",\"recordType\":\"driverAlert\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"NA\"},\"payloadType\":\"us.dot.its.jpo.ode.model.OdeDriverAlertPayload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":6,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false},\"payload\":{\"alert\":\"Test Driver Alert\"}}";
+ assertEquals(expected, data.toJson());
+ }
}
@Test
public void testPublishRxMsgTIMLogFile() throws Exception {
-
- byte[] buf = new byte[] {
- (byte)0x01, //1. RxSource = SAT
- (byte)0x6f, (byte)0x75, (byte)0x4d, (byte)0x19, //2.0 latitude
- (byte)0xa4, (byte)0xa1, (byte)0x5c, (byte)0xce, //2.1 longitude
- (byte)0x67, (byte)0x06, (byte)0x00, (byte)0x00, //2.3 elevation
- (byte)0x04, (byte)0x00, //2.3 speed
- (byte)0x09, (byte)0x27, //2.4 heading
- (byte)0xa9, (byte)0x2c, (byte)0xe2, (byte)0x5a, //3. utcTimeInSec
- (byte)0x8f, (byte)0x01, //4. mSec
- (byte)0x00, //5. securityResultCode
- (byte)0x06, (byte)0x00, //6.0 payloadLength
- //6.1 payload
- (byte)0x03, (byte)0x81, (byte)0x00, (byte)0x40, (byte)0x03, (byte)0x80
- };
-
- String filename = RecordType.rxMsg.name() + GZ;
-
- BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf));
-
- List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LEAR_LOG_FILE);
-
- for (OdeData data : dataList) {
- assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getOdeReceivedAt()), DateTimeUtils.nowZDT()) > 0);
- data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z");
- data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92");
- assertEquals("{\"metadata\":{\"logFileName\":\"rxMsg.gz\",\"recordType\":\"rxMsg\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"SAT\"},\"encodings\":[{\"elementName\":\"root\",\"elementType\":\"Ieee1609Dot2Data\",\"encodingRule\":\"COER\"},{\"elementName\":\"unsecuredData\",\"elementType\":\"MessageFrame\",\"encodingRule\":\"UPER\"}],\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":6,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"TMC_VIA_SAT\",\"sanitized\":false},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"038100400380\"}}}", data.toJson());
- }
+
+ byte[] buf = new byte[] {
+ (byte) 0x01, // 1. RxSource = SAT
+ (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 2.0 latitude
+ (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 2.1 longitude
+ (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 2.3 elevation
+ (byte) 0x04, (byte) 0x00, // 2.3 speed
+ (byte) 0x09, (byte) 0x27, // 2.4 heading
+ (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 3. utcTimeInSec
+ (byte) 0x8f, (byte) 0x01, // 4. mSec
+ (byte) 0x00, // 5. securityResultCode
+ (byte) 0x06, (byte) 0x00, // 6.0 payloadLength
+ // 6.1 payload
+ (byte) 0x03, (byte) 0x81, (byte) 0x00, (byte) 0x40, (byte) 0x03, (byte) 0x80
+ };
+
+ String filename = RecordType.rxMsg.name() + GZ;
+
+ BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf));
+
+ List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LEAR_LOG_FILE);
+
+ for (OdeData data : dataList) {
+ assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getOdeReceivedAt()),
+ DateTimeUtils.nowZDT()) > 0);
+ data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z");
+ data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92");
+ var expected = "{\"metadata\":{\"logFileName\":\"rxMsg.gz\",\"recordType\":\"rxMsg\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"SAT\"},\"encodings\":[{\"elementName\":\"root\",\"elementType\":\"Ieee1609Dot2Data\",\"encodingRule\":\"COER\"},{\"elementName\":\"unsecuredData\",\"elementType\":\"MessageFrame\",\"encodingRule\":\"UPER\"}],\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":6,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"TMC_VIA_SAT\",\"sanitized\":false},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"038100400380\"}}}";
+ assertEquals(expected, data.toJson());
+ }
}
@Test
public void testPublishRxMsgBSMLogFile() throws Exception {
-
- byte[] buf = new byte[] {
- (byte)0x02, //1. RxSource = RV
- (byte)0x6f, (byte)0x75, (byte)0x4d, (byte)0x19, //2.0 latitude
- (byte)0xa4, (byte)0xa1, (byte)0x5c, (byte)0xce, //2.1 longitude
- (byte)0x67, (byte)0x06, (byte)0x00, (byte)0x00, //2.3 elevation
- (byte)0x04, (byte)0x00, //2.3 speed
- (byte)0x09, (byte)0x27, //2.4 heading
- (byte)0xa9, (byte)0x2c, (byte)0xe2, (byte)0x5a, //3. utcTimeInSec
- (byte)0x8f, (byte)0x01, //4. mSec
- (byte)0x00, //5. securityResultCode
- (byte)0x06, (byte)0x00, //6.0 payloadLength
- //6.1 payload
- (byte)0x03, (byte)0x81, (byte)0x00, (byte)0x40, (byte)0x03, (byte)0x80
- };
-
- String filename = RecordType.rxMsg.name() + GZ;
-
- BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf));
-
- List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LEAR_LOG_FILE);
-
- for (OdeData data : dataList) {
- assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getOdeReceivedAt()), DateTimeUtils.nowZDT()) > 0);
- data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z");
- data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92");
- assertEquals("{\"metadata\":{\"bsmSource\":\"RV\",\"logFileName\":\"rxMsg.gz\",\"recordType\":\"rxMsg\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"RV\"},\"encodings\":[{\"elementName\":\"root\",\"elementType\":\"Ieee1609Dot2Data\",\"encodingRule\":\"COER\"},{\"elementName\":\"unsecuredData\",\"elementType\":\"MessageFrame\",\"encodingRule\":\"UPER\"}],\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":6,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"038100400380\"}}}", data.toJson());
+
+ byte[] buf = new byte[] {
+ (byte) 0x02, // 1. RxSource = RV
+ (byte) 0x6f, (byte) 0x75, (byte) 0x4d, (byte) 0x19, // 2.0 latitude
+ (byte) 0xa4, (byte) 0xa1, (byte) 0x5c, (byte) 0xce, // 2.1 longitude
+ (byte) 0x67, (byte) 0x06, (byte) 0x00, (byte) 0x00, // 2.3 elevation
+ (byte) 0x04, (byte) 0x00, // 2.3 speed
+ (byte) 0x09, (byte) 0x27, // 2.4 heading
+ (byte) 0xa9, (byte) 0x2c, (byte) 0xe2, (byte) 0x5a, // 3. utcTimeInSec
+ (byte) 0x8f, (byte) 0x01, // 4. mSec
+ (byte) 0x00, // 5. securityResultCode
+ (byte) 0x06, (byte) 0x00, // 6.0 payloadLength
+ // 6.1 payload
+ (byte) 0x03, (byte) 0x81, (byte) 0x00, (byte) 0x40, (byte) 0x03, (byte) 0x80
+ };
+
+ String filename = RecordType.rxMsg.name() + GZ;
+
+ BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf));
+
+ List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.LEAR_LOG_FILE);
+
+ for (OdeData data : dataList) {
+ assertTrue(DateTimeUtils.difference(DateTimeUtils.isoDateTime(data.getMetadata().getOdeReceivedAt()),
+ DateTimeUtils.nowZDT()) > 0);
+ data.getMetadata().setOdeReceivedAt("2019-03-05T20:31:17.579Z");
+ data.getMetadata().getSerialId().setStreamId("c7bbb42e-1e39-442d-98ac-62740ca50f92");
+ var expected = "{\"metadata\":{\"bsmSource\":\"RV\",\"logFileName\":\"rxMsg.gz\",\"recordType\":\"rxMsg\",\"securityResultCode\":\"success\",\"receivedMessageDetails\":{\"locationData\":{\"latitude\":\"42.4506735\",\"longitude\":\"-83.2790108\",\"elevation\":\"163.9\",\"speed\":\"0.08\",\"heading\":\"124.9125\"},\"rxSource\":\"RV\"},\"encodings\":[{\"elementName\":\"root\",\"elementType\":\"Ieee1609Dot2Data\",\"encodingRule\":\"COER\"},{\"elementName\":\"unsecuredData\",\"elementType\":\"MessageFrame\",\"encodingRule\":\"UPER\"}],\"payloadType\":\"us.dot.its.jpo.ode.model.OdeAsn1Payload\",\"serialId\":{\"streamId\":\"c7bbb42e-1e39-442d-98ac-62740ca50f92\",\"bundleSize\":1,\"bundleId\":1,\"recordId\":0,\"serialNumber\":1},\"odeReceivedAt\":\"2019-03-05T20:31:17.579Z\",\"schemaVersion\":6,\"maxDurationTime\":0,\"recordGeneratedAt\":\"2018-04-26T19:46:49.399Z\",\"recordGeneratedBy\":\"OBU\",\"sanitized\":false},\"payload\":{\"dataType\":\"us.dot.its.jpo.ode.model.OdeHexByteArray\",\"data\":{\"bytes\":\"038100400380\"}}}";
+ assertEquals(expected, data.toJson());
}
}
@Test
public void testPublishNonLearLogFile() throws Exception {
-
- String filename = RecordType.rxMsg.name() + GZ;
- String jsonData = "{\"fakeJsonKey\":\"fakeJsonValue\"";
- byte[] buf = jsonData.getBytes();
- BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf ));
+ String filename = RecordType.rxMsg.name() + GZ;
+
+ String jsonData = "{\"fakeJsonKey\":\"fakeJsonValue\"";
+ byte[] buf = jsonData.getBytes();
+ BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(buf));
- /*
- * This call to publish method does not actually try to parse the data. It short-circuits the parsing because
- * currently we dont' support JSON input records. We may in the future.
- */
-
- List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.JSON_FILE);
+ /*
+ * This call to publish method does not actually try to parse the data. It
+ * short-circuits the parsing because
+ * currently we dont' support JSON input records. We may in the future.
+ */
- assertTrue(dataList.isEmpty());
+ List dataList = testLogFileToAsn1CodecPublisher.publish(bis, filename, ImporterFileType.JSON_FILE);
+
+ assertTrue(dataList.isEmpty());
}
}
diff --git a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimQueryControllerTest.java b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimQueryControllerTest.java
index 882cc12aa..6be9d755d 100644
--- a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimQueryControllerTest.java
+++ b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimQueryControllerTest.java
@@ -58,6 +58,8 @@ public class TimQueryControllerTest {
@Mocked
PDU mockPDU;
+ private String defaultRSU = "{\"rsuTarget\":\"10.10.10.10\",\"rsuUsername\":\"user\",\"rsuPassword\":\"pass\",\"rsuRetries\":\"3\",\"rsuTimeout\":\"5000\"}";
+
@Test
public void nullRequestShouldReturnError() {
ResponseEntity> result = testTimQueryController.bulkQuery(null);
@@ -85,7 +87,7 @@ public void snmpSessionExceptionShouldReturnError() {
fail("Unexpected exception in expectations block: " + e);
}
- ResponseEntity actualResponse = testTimQueryController.bulkQuery("{\"request\":{},\"tim\":{}}");
+ ResponseEntity actualResponse = testTimQueryController.bulkQuery(defaultRSU);
assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, actualResponse.getStatusCode());
assertTrue(actualResponse.getBody().contains("Failed to create SNMP session."));
}
@@ -103,7 +105,7 @@ public void snmpSessionListenExceptionShouldReturnError() {
fail("Unexpected exception in expectations block: " + e);
}
- ResponseEntity actualResponse = testTimQueryController.bulkQuery("{\"request\":{},\"tim\":{}}");
+ ResponseEntity actualResponse = testTimQueryController.bulkQuery(defaultRSU);
assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, actualResponse.getStatusCode());
assertTrue(actualResponse.getBody().contains("Failed to create SNMP session."));
}
@@ -123,7 +125,7 @@ public void testNullResponseReturnsTimeout() throws IOException {
}
};
- ResponseEntity actualResponse = testTimQueryController.bulkQuery("{\"request\":{},\"tim\":{}}");
+ ResponseEntity actualResponse = testTimQueryController.bulkQuery(defaultRSU);
assertEquals(HttpStatus.BAD_REQUEST, actualResponse.getStatusCode());
assertTrue(actualResponse.getBody().contains("Timeout, no response from RSU."));
}
@@ -146,7 +148,7 @@ public void testNullResponseResponseReturnsTimeout() throws IOException {
}
};
- ResponseEntity actualResponse = testTimQueryController.bulkQuery("{\"request\":{},\"tim\":{}}");
+ ResponseEntity actualResponse = testTimQueryController.bulkQuery(defaultRSU);
assertEquals(HttpStatus.BAD_REQUEST, actualResponse.getStatusCode());
assertTrue(actualResponse.getBody().contains("Timeout, no response from RSU."));
}
@@ -172,7 +174,7 @@ public void testSuccessfulQuery() throws IOException {
}
};
- ResponseEntity actualResponse = testTimQueryController.bulkQuery("{\"request\":{},\"tim\":{}}");
+ ResponseEntity actualResponse = testTimQueryController.bulkQuery(defaultRSU);
assertEquals(HttpStatus.OK, actualResponse.getStatusCode());
assertTrue(actualResponse.getBody().contains("indicies_set"));
}
@@ -201,7 +203,7 @@ public void testSuccessfulPopulatedQuery() throws IOException {
}
};
- ResponseEntity actualResponse = testTimQueryController.bulkQuery("{\"request\":{},\"tim\":{}}");
+ ResponseEntity actualResponse = testTimQueryController.bulkQuery(defaultRSU);
assertEquals(HttpStatus.OK, actualResponse.getStatusCode());
assertTrue(actualResponse.getBody().contains("indicies_set"));
}
diff --git a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimTransmogrifierTest.java b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimTransmogrifierTest.java
index 124336079..f03260e18 100644
--- a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimTransmogrifierTest.java
+++ b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/traveler/TimTransmogrifierTest.java
@@ -19,6 +19,8 @@
import mockit.Capturing;
import mockit.Expectations;
+import mockit.Mock;
+import mockit.MockUp;
import mockit.Mocked;
import us.dot.its.jpo.ode.OdeProperties;
import us.dot.its.jpo.ode.model.OdeMsgMetadata;
@@ -28,6 +30,8 @@
import us.dot.its.jpo.ode.plugin.ServiceRequest;
import us.dot.its.jpo.ode.plugin.SituationDataWarehouse.SDW;
import us.dot.its.jpo.ode.plugin.j2735.DdsAdvisorySituationData;
+import us.dot.its.jpo.ode.plugin.j2735.DdsGeoRegion;
+import us.dot.its.jpo.ode.plugin.j2735.OdeGeoRegion;
import us.dot.its.jpo.ode.plugin.j2735.builders.GeoRegionBuilder;
import us.dot.its.jpo.ode.plugin.j2735.timstorage.TravelerInputData;
import us.dot.its.jpo.ode.traveler.TimTransmogrifier.TimTransmogrifierException;
@@ -187,6 +191,13 @@ public void testConvertToXMLASD(@Capturing DateTimeUtils capturingDateTimeUtils,
}
};
+ new MockUp() {
+ @Mock
+ public DdsGeoRegion ddsGeoRegion(OdeGeoRegion serviceRegion) {
+ return new DdsGeoRegion();
+ }
+ };
+
SDW inputSDW = new SDW();
inputSDW.setDeliverystart("2017-06-01T17:47:11-05:00");
inputSDW.setDeliverystop("2018-03-01T17:47:11-05:15");
@@ -206,15 +217,13 @@ public void testConvertToXMLASD(@Capturing DateTimeUtils capturingDateTimeUtils,
SerialId staticSerialId = new SerialId();
staticSerialId.setStreamId("6c33f802-418d-4b67-89d1-326b4fc8b1e3");
-
+
OdeMsgMetadata staticOdeMsgMetadata = new OdeMsgMetadata();
staticOdeMsgMetadata.setSchemaVersion(6);
String actualXML = TimTransmogrifier.convertToXml(actualASD, encodableTID, staticOdeMsgMetadata, staticSerialId);
-
- assertEquals(
- "us.dot.its.jpo.ode.model.OdeAsdPayload6c33f802-418d-4b67-89d1-326b4fc8b1e31000timeTime60false2017-06-01T17:47:11-05:002018-03-01T17:47:11-05:15MessageFrameMessageFrameUPERIeee1609Dot2DataIeee1609Dot2DataCOERAdvisorySituationDataAdvisorySituationDataUPERus.dot.its.jpo.ode.plugin.j2735.DdsAdvisorySituationData1565000000007876BA7F0000000017876BA7F2030000000000331",
- actualXML);
+ String expected = "us.dot.its.jpo.ode.model.OdeAsdPayload6c33f802-418d-4b67-89d1-326b4fc8b1e31000timeTime60falsethirtyminutes2017-06-01T17:47:11-05:002018-03-01T17:47:11-05:15MessageFrameMessageFrameUPERIeee1609Dot2DataIeee1609Dot2DataCOERAdvisorySituationDataAdvisorySituationDataUPERus.dot.its.jpo.ode.plugin.j2735.DdsAdvisorySituationData1565000000007876BA7F0000000017876BA7F2030000000000331";
+ assertEquals(expected, actualXML);
}
@Test
@@ -248,15 +257,14 @@ public void testConvertToXMLMessageFrame(@Capturing DateTimeUtils capturingDateT
SerialId staticSerialId = new SerialId();
staticSerialId.setStreamId("6c33f802-418d-4b67-89d1-326b4fc8b1e3");
-
+
OdeMsgMetadata staticOdeMsgMetadata = new OdeMsgMetadata();
staticOdeMsgMetadata.setSchemaVersion(6);
String actualXML = TimTransmogrifier.convertToXml(null, encodableTID, staticOdeMsgMetadata, staticSerialId);
+ var expected = "us.dot.its.jpo.ode.model.OdeTimPayload6c33f802-418d-4b67-89d1-326b4fc8b1e31000timeTime60falsethirtyminutes2017-06-01T17:47:11-05:002018-03-01T17:47:11-05:15MessageFrameMessageFrameUPERMessageFrame31";
- assertEquals(
- "us.dot.its.jpo.ode.model.OdeTimPayload6c33f802-418d-4b67-89d1-326b4fc8b1e31000timeTime60false2017-06-01T17:47:11-05:002018-03-01T17:47:11-05:15MessageFrameMessageFrameUPERMessageFrame31",
- actualXML);
+ assertEquals(expected,actualXML);
}
@Test
diff --git a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/upload/FileUploadControllerTest.java b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/upload/FileUploadControllerTest.java
index 6bc125029..14c7416b2 100644
--- a/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/upload/FileUploadControllerTest.java
+++ b/jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/upload/FileUploadControllerTest.java
@@ -18,6 +18,8 @@
import mockit.Capturing;
import mockit.Expectations;
import mockit.Injectable;
+import mockit.Mock;
+import mockit.MockUp;
import mockit.Mocked;
import org.junit.Before;
import org.junit.Test;
@@ -73,7 +75,7 @@ public void constructorShouldLaunchSevenThreads() {
result = mockExecutorService;
mockExecutorService.submit((Runnable) any);
- times = 7;
+ times = 11;
}
};
testFileUploadController = new FileUploadController(mockStorageService, mockOdeProperties,
diff --git a/pom.xml b/pom.xml
index bbd330ca7..35a8e04dd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,7 +42,7 @@
usdot-jpo-ode
https://sonarcloud.io
- 1.49
+ 1.49
@@ -50,23 +50,29 @@
org.springframework.boot
spring-boot-starter
+
+
+ org.apache.logging.log4j
+ log4j-to-slf4j
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
-
- org.springframework.boot
- spring-boot-starter-web
-
org.springframework.boot
spring-boot-starter-test
test
-
-
- org.codehaus.groovy
- groovy-all
- 3.0.8
- pom
-
+
+
+ org.codehaus.groovy
+ groovy-all
+ 3.0.8
+ pom
+
org.jmockit
jmockit
@@ -76,15 +82,9 @@
junit
junit
- 4.13.1
+ 4.13.2
test
-
-
-
- log4j
- log4j
-
@@ -96,16 +96,21 @@
pom
import
+
+ ch.qos.logback
+ logback-core
+ 1.2.8
+
-
- org.sonarsource.scanner.maven
- sonar-maven-plugin
- 3.9.0.2155
+
+ org.sonarsource.scanner.maven
+ sonar-maven-plugin
+ 3.9.0.2155
org.springframework.boot
@@ -124,21 +129,28 @@
maven-surefire-plugin
3.0.0-M5
- -javaagent:${user.home}/.m2/repository/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar
-
+ -javaagent:${user.home}/.m2/repository/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar
+
${loader.path}
${project.build.directory}
+
+
+ org.apache.maven.surefire
+ surefire-junit47
+ 3.0.0-M5
+
+
org.apache.maven.plugins
maven-release-plugin
2.5.3
-
+
-
+
\ No newline at end of file