Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OdeTimJson POJO Processing Rework #119

Merged
merged 37 commits into from
Dec 11, 2024
Merged

OdeTimJson POJO Processing Rework #119

merged 37 commits into from
Dec 11, 2024

Conversation

drewjj
Copy link
Collaborator

@drewjj drewjj commented Nov 25, 2024

PR Details

Description

Addresses a number of inconsistencies between the ODE created and decoded TIM messages by creating a new standard OdeTimJson POJO (OdeTimData). This new POJO has a set of builder classes to ensure that all TIM XML is processed into the POJO correctly and consistently. These builder classes were created in the same fashion as the older ODE builders but improvements have been made to reduce the number of redundant wrapper objects around arrays. This has caused some small changes around other message types that utilize NodeXY, specifically Map.

Summary of changes:

  • New TIM POJO OdeTimData
  • New OdeTimData builder class and helper
  • Modifications to the Asn1DecodedDataRouter and TimDepositController to utilize the new POJO when writing to the topic.OdeTimJson topic
  • OdeTimJson output no longer includes redundant array wrapper classes for TravelerDataFrame, GeographicalPath, NodeXY, and NodeLL
  • Map is affected by the removal of the redundant wrapper class NodeXY and no longer includes it
  • TIM and Map schemas have been updated accordingly
  • Unit tests have been added and updated

Related Issue

No related jpo-ode issue.

Motivation and Context

The purpose of this change is to resolve an inconsistency between the output of the decoded TIM messages and the jpo-ode TIM endpoint created TIM messages. There is no prior TIM POJO to guarantee a consistent, standard output for the topic.OdeTimJson data. This also allows for other projects to easily deserialize the TIM output of the jpo-ode.

The changes to the redundant object wrappers is to make the TIM output more closely resemble the J2735 standard.

How Has This Been Tested?

Unit tests, approval tests, and local testing with real TIM and Map data.

Types of changes

  • Defect fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that cause existing functionality to change)

Checklist:

  • I have added any new packages to the sonar-scanner.properties file
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
    ODE Contributing Guide
  • I have added tests to cover my changes.
  • All new and existing tests passed.

Copy link

@mcook42 mcook42 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the work here! The changes here are a big improvement and much appreciated. A special thanks to you for adding more tests. There are some requested changes and some general suggestions/chores as you'll see below.

But first, overall, I'm unsure why we aren't leveraging Jackson and the annotations to enable de/serialization. It would make classes/code like we have in ComputedLaneBuilder unnecessary by allowing Jackson to de/serialize the objects correctly. I understand the work to make that change is outside of the scope of this PR, but I don't want it to go unmentioned. If we migrate to the standard practice of using Jackson for POJO de/serialization, we could avoid the needing to perform these bug fixes and avoid hidden issues we haven't encountered yet. Do you know if there's there a reason why we don't use Jackson annotations?

If we don't want to annotate the POJOs themselves (not sure why we'd avoid that since we own and maintain the POJOs) we could use MixIns.

General Suggestions:

  • wherever we have something like private static final long serialVersionUID = 1L; we should consider adding the @Serial annotation to allow the java compiler to check for correctness (see java doc)
  • Whenever we are creating or updating POJOs, we should consider using the Lombok annotations @Getter and @Setter or the more comprehensive @Data. This will reduce boilerplate code and the risk of typo-related bugs (and it saves the writer and reviewer time because we don't need to review the getters and setters)
  • Run a quick reformat on all changed files so that the formatting is consistent within and across the files
  • We don't need to explicitly catch and fail in tests. We can just add a throws to the test method signature and JUnit will handle that for us
  • Unit test methods and classes don't need access modifiers unless we're doing something special, so you can (and probably should) leave out the public modifiers when writing the tests It is generally recommended to omit the public modifier for test classes, test methods, and lifecycle methods unless there is a technical reason for doing so (ref)

General chores:

  • Whenever we are modifying/creating an enum class, we should be following the standard naming convention of UPPER_SNAKE_CASE: all uppercase letters, with each word separated from the next by a single underscore. If we need to serialize (stringify) the values to a lowercase non-snack-case string, we can define an overridden toString method to do this for us or use an internal string property like String value that lets us define the stringified value on enum initialization. I've provided some examples of both throughout the PR (ref

public class J2735GeometricProjection extends Asn1Object {
private static final long serialVersionUID = 1L;

private J2735HeadingSlice direction;
Copy link

@iyourshaw iyourshaw Nov 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be a J2735BitString here, because HeadingSlice is a BitString. Need to be able to represent more than one value being set at the same time.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

checkstyle

jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/OdeTimDataCreatorHelperTest.java|37 col 1| Line contains a tab character.
jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/OdeTimDataCreatorHelperTest.java|37 col 17| 'try rcurly' has incorrect indentation level 16, expected level should be 4.
jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/OdeTimDataCreatorHelperTest.java|38 col 1| Line contains a tab character.
jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/OdeTimDataCreatorHelperTest.java|38 col 25| 'catch' child has incorrect indentation level 24, expected level should be 6.
jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/OdeTimDataCreatorHelperTest.java|39 col 1| Line contains a tab character.
jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/OdeTimDataCreatorHelperTest.java|39 col 17| 'catch rcurly' has incorrect indentation level 16, expected level should be 4.
jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/OdeTimDataCreatorHelperTest.java|41 col 1| Line contains a tab character.
jpo-ode-svcs/src/test/java/us/dot/its/jpo/ode/coder/OdeTimDataCreatorHelperTest.java|41 col 9| 'method def rcurly' has incorrect indentation level 8, expected level should be 2.
jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/OdeTimJsonTopology.java|62 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/services/asn1/Asn1DecodedDataRouter.java|89 col 17| 'case' child has incorrect indentation level 16, expected level should be 8.
jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/services/asn1/Asn1DecodedDataRouter.java|146| Line is longer than 100 characters (found 105).
jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/services/asn1/Asn1DecodedDataRouter.java|146 col 5| 'method def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/services/asn1/Asn1DecodedDataRouter.java|147| Line is longer than 100 characters (found 105).
jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/services/asn1/Asn1DecodedDataRouter.java|147 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/services/asn1/Asn1EncodedDataRouter.java|273 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-svcs/src/main/java/us/dot/its/jpo/ode/services/asn1/Asn1EncodedDataRouter.java|314 col 13| 'if' child has incorrect indentation level 12, expected level should be 6.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|8 col 1| Import statement for 'org.junit.jupiter.api.Assertions.' is in the wrong order. Should be in the 'STATIC' group, expecting not assigned imports on this line.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|8 col 47| Using the '.
' form of import should be avoided - org.junit.jupiter.api.Assertions..
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|10| First sentence of Javadoc is missing an ending period.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|15 col 5| 'member def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|15 col 19| 'static' modifier out of order with the JLS suggestions.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|17 col 5| 'method def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|19| Line is longer than 100 characters (found 113).
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|19 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|20 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|21 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|22 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|23 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|24 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|25 col 5| 'method def rcurly' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|27 col 5| 'method def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|29 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|30 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|31 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|32 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|33 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|34 col 5| 'method def rcurly' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|36 col 5| 'member def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/travelerinformation/NodeAttributeSetLLTest.java|36 col 19| 'static' modifier out of order with the JLS suggestions.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|7 col 1| Import statement for 'org.junit.jupiter.api.Assertions.
' is in the wrong order. Should be in the 'STATIC' group, expecting not assigned imports on this line.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|7 col 47| Using the '.' form of import should be avoided - org.junit.jupiter.api.Assertions..
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|14 col 5| 'member def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|14 col 19| 'static' modifier out of order with the JLS suggestions.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|16 col 5| 'method def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|18 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|19 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|20 col 9| 'for' has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|21 col 13| 'for' child has incorrect indentation level 12, expected level should be 6.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|22 col 9| 'for rcurly' has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|23 col 5| 'method def rcurly' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|25 col 5| 'method def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|27 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|28 col 9| 'for' has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|29 col 13| 'for' child has incorrect indentation level 12, expected level should be 6.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|30 col 9| 'for rcurly' has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|31 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|32 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|33 col 5| 'method def rcurly' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|35 col 5| 'member def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|35 col 19| 'static' modifier out of order with the JLS suggestions.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/common/HeadingSliceTest.java|36| Line is longer than 100 characters (found 513).
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java|15 col 5| 'method def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java|18 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java|19 col 9| 'try' has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java|20 col 13| 'try' child has incorrect indentation level 12, expected level should be 6.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java|21| Line is longer than 100 characters (found 1,673).
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java|22 col 9| 'try rcurly' has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java|23 col 13| 'catch' child has incorrect indentation level 12, expected level should be 6.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java|24 col 9| 'catch rcurly' has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java|25 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java|26| Line is longer than 100 characters (found 1,133).
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java|26 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java|27 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/test/java/us/dot/its/jpo/ode/plugin/j2735/builders/MAPBuilderTest.java|28 col 5| 'method def rcurly' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|13| Javadoc tag '@author' should be preceded with an empty line.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|19| Summary javadoc is missing.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|22 col 5| 'annotation field def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|24| Summary javadoc is missing.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|27 col 5| 'annotation field def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|29| Summary javadoc is missing.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|31| Line continuation have incorrect indentation level, expected level should be 4.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|33 col 5| 'annotation field def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|35| Summary javadoc is missing.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|38 col 5| 'annotation field def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|40 col 5| Missing a Javadoc comment.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|40 col 10| 'enum def ident' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|43 col 5| 'enum def rcurly' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|49| Summary javadoc is missing.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|52 col 9| 'annotation field def modifier' has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|54| Summary javadoc is missing.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|57 col 9| 'annotation field def modifier' has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|59| Summary javadoc is missing.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|62 col 9| 'annotation field def modifier' has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1ParameterizedTypes.java|63 col 5| 'annotation def rcurly' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|9| Line is longer than 100 characters (found 113).
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|10| Javadoc tag '@author' should be preceded with an empty line.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|15| Summary javadoc is missing.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|18 col 5| 'annotation field def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|20| Summary javadoc is missing.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|21| Line is longer than 100 characters (found 115).
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|22| Line continuation have incorrect indentation level, expected level should be 4.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|24 col 5| 'annotation field def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|26| Summary javadoc is missing.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|29 col 5| 'annotation field def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|31| Summary javadoc is missing.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|34 col 5| 'annotation field def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|36| Summary javadoc is missing.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|37| Line is longer than 100 characters (found 121).
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|39 col 5| 'annotation field def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|41| Summary javadoc is missing.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|42| Line is longer than 100 characters (found 115).
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|43| Line continuation have incorrect indentation level, expected level should be 4.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/annotations/Asn1Property.java|45 col 5| 'annotation field def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/utils/BitUtils.java|4 col 1| Missing a Javadoc comment.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/utils/BitUtils.java|7 col 5| 'method def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/utils/BitUtils.java|8 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/utils/BitUtils.java|8 col 47| 'typecast' is not followed by whitespace.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/utils/BitUtils.java|9 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/utils/BitUtils.java|9 col 21| 'typecast' is not followed by whitespace.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/utils/BitUtils.java|10 col 5| 'method def rcurly' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/utils/BitUtils.java|12 col 5| 'method def modifier' has incorrect indentation level 4, expected level should be 2.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/utils/BitUtils.java|12 col 5| Missing a Javadoc comment.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/utils/BitUtils.java|13 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/utils/BitUtils.java|14 col 9| 'for' has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/utils/BitUtils.java|15 col 13| 'for' child has incorrect indentation level 12, expected level should be 6.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/utils/BitUtils.java|16 col 9| 'for rcurly' has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/utils/BitUtils.java|17 col 9| 'method def' child has incorrect indentation level 8, expected level should be 4.
jpo-ode-plugins/src/main/java/us/dot/its/jpo/ode/plugin/utils/BitUtils.java|18 col 5| 'method def rcurly' has incorrect indentation level 4, expected level should be 2.
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|29 col 3| Missing a Javadoc comment.
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|53 col 3| Missing a Javadoc comment.
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|77 col 3| Missing a Javadoc comment.
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|96| Javadoc comment at column 20 has parse error. Details: mismatched input ':' expecting while parsing JAVADOC
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|96| Javadoc comment at column 20 has parse error. Details: mismatched input ':' expecting while parsing JAVADOC
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|96| Javadoc comment at column 20 has parse error. Details: mismatched input ':' expecting while parsing JAVADOC
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|96| Javadoc comment at column 20 has parse error. Details: mismatched input ':' expecting while parsing JAVADOC
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|96| Javadoc comment at column 20 has parse error. Details: mismatched input ':' expecting while parsing JAVADOC
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|96| Javadoc comment at column 20 has parse error. Details: mismatched input ':' expecting while parsing JAVADOC
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|96| Javadoc comment at column 20 has parse error. Details: mismatched input ':' expecting while parsing JAVADOC
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|96 col 6| Unused @param tag for 'childKey:'.
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|97 col 6| Unused @param tag for 'arrayNode:'.
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|101| Line is longer than 100 characters (found 105).
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|107 col 3| Missing a Javadoc comment.
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|132 col 3| Missing a Javadoc comment.
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|142 col 3| Missing a Javadoc comment.
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|150 col 3| Missing a Javadoc comment.
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|169 col 3| Missing a Javadoc comment.
jpo-ode-common/src/main/java/us/dot/its/jpo/ode/util/XmlUtils.java|177 col 3| Missing a Javadoc comment.

@drewjj
Copy link
Collaborator Author

drewjj commented Dec 6, 2024

I addressed all of the checkstyle issues. I did tell it to ignore the generated J2735 files, though. This is a pretty normal thing to do with generated code since it will just get overwritten if we ever need to generate a new standard.

Just need to update the schema, revert the changes to Map, and then those unit tests should be good.

@drewjj
Copy link
Collaborator Author

drewjj commented Dec 6, 2024

It is complaining about the diff being too large and the checkstyle can't run due to it. The checkstyle worked in the previous commit so I would like to assume everything is fine there so this shouldn't be a blocker.

Copy link

@mcook42 mcook42 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question(non-blocking): Is there a reason we put the new models under the jpo-ode-plugins package instead of jpo-ode-common or jpo-ode-core?

@drewjj
Copy link
Collaborator Author

drewjj commented Dec 9, 2024

Question(non-blocking): Is there a reason we put the new models under the jpo-ode-plugins package instead of jpo-ode-common or jpo-ode-core?

The idea was to put it in the same place as the other non-generated J2735 POJOs. We could move this somewhere else down the road but I think it makes sense for the present moment.

@drewjj drewjj requested review from mwodahl and Michael7371 December 9, 2024 21:17
Copy link

@Michael7371 Michael7371 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really like the output schema on this TIM refactor! Nice work.

public void setPayload(OdeMsgPayload payload) {
super.setPayload(payload);
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added these overrides to the OdeTimData.java class to allow for serialization using this class as the parent.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds great, thanks!

@dmccoystephenson dmccoystephenson self-requested a review December 11, 2024 15:34
Copy link

@mwodahl mwodahl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me! Unit tests all look good and everything worked correctly when running locally.

@drewjj drewjj merged commit cd232b6 into dev Dec 11, 2024
4 of 5 checks passed
@drewjj drewjj deleted the tim-pojo-rework branch December 11, 2024 18:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants