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

Configurable TIM Signing for RSUs/SDX, Code Refactoring & UDP/Log Ingestion Updates #547

Merged
merged 155 commits into from
Jun 13, 2024

Conversation

dmccoystephenson
Copy link
Collaborator

@dmccoystephenson dmccoystephenson commented May 21, 2024

PR Details

Description

The project has undergone a number of significant updates. Overall, these changes collectively aim to improve functionality, documentation clarity, and system performance.

Changes

Dependencies Updates

  • Kafka updated to version 3.6.1
  • Zookeeper removed from all setup scripts and documentation
  • Several Maven plugins upgraded
  • Kafka init container introduced

Documentation Revisions

  • Extensive accuracy improvements across multiple guides
  • Added Submodule Compatibility Guide
  • Updated data flow diagrams

Feature Enhancements

  • Configurable signing capabilities for RSUs and SDX introduced
  • Support for configurable default SNMP protocol
  • Modified SnmpSession class to handle msgRepeatOptions based on signing context
  • Improved reporting of failures to retrieve authoritative engine IDs
  • Added ability to set up a MongoDB database with Kafka connect instance to sink specified topics
  • Updated abstract UDP receiver class to include more functionality
  • Log ingestion now supports more than MAP/TIM message types
  • Added UperUtil class containing message type start flags and 1609.2/1609.3 trim functionality

Code Refactoring and Improvements

  • Enhanced Asn1EncodedDataRouter class to strip 1609.2 headers
  • Corrected handling of timestamps and datetime values for precision
  • Improved log file handling
  • Enhanced payload parsing
  • Refactored receiver classes for robustness and maintainability

Related Issue

No related GitHub issue.

Motivation and Context

Updating dependencies such as Kafka and Maven plugins ensures compatibility with the latest features and security patches, while removing Zookeeper simplifies the development environment. Introducing configurable signing for RSUs and the SDX, along with a configurable default SNMP protocol, adds flexibility and improves security. Enhancements to the SNMP protocol further strengthen system reliability.

Extensive documentation revisions, including the addition of a Submodule Compatibility Guide and updated data flow diagrams, improve clarity and accuracy for developers and users. Code refactoring efforts, such as improving timestamp handling and restructuring receiver classes, streamline the codebase, enhancing readability and maintainability.

How Has This Been Tested?

Unit tests have been verified to pass with these changes. These changes have also been tested in CDOT's GCP environment.

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.

dmccoystephenson and others added 30 commits January 29, 2024 15:08
…t2/strip-1609dot2-header-from-unsigned-messages
Trim Nanoseconds from snmpTimestampFromIso
…ines merged. Currently only support BSM for both
@dmccoystephenson dmccoystephenson changed the title Dependency Upgrades, Configurable Signing, SNMP Improvements, Documentation Revisions, Code Refactoring, Kafka Connect MongoDB Support & UDP/Log Ingestion Updates Configurable Signing, Code Refactoring & UDP/Log Ingestion Updates Jun 5, 2024
@dmccoystephenson dmccoystephenson changed the title Configurable Signing, Code Refactoring & UDP/Log Ingestion Updates Configurable TIM Signing for RSUs/SDX, Code Refactoring & UDP/Log Ingestion Updates Jun 5, 2024
@dmccoystephenson dmccoystephenson marked this pull request as ready for review June 6, 2024 13:52
docs/contributing_guide.md Outdated Show resolved Hide resolved
docs/contributing_guide.md Show resolved Hide resolved
- zookeeper
volumes:
- ${DOCKER_SHARED_VOLUME_WINDOWS}/var/run/docker.sock:/var/run/docker.sock
KAFKA_CREATE_TOPICS: "topic.OdeBsmPojo:1:1,topic.OdeSpatTxPojo:1:1,topic.OdeSpatPojo:1:1,topic.OdeSpatJson:1:1,topic.FilteredOdeSpatJson:1:1,topic.OdeSpatRxJson:1:1,topic.OdeSpatRxPojo:1:1,topic.OdeBsmJson:1:1,topic.FilteredOdeBsmJson:1:1,topic.OdeTimJson:1:1,topic.OdeTimBroadcastJson:1:1,topic.J2735TimBroadcastJson:1:1,topic.OdeDriverAlertJson:1:1,topic.Asn1DecoderInput:1:1,topic.Asn1DecoderOutput:1:1,topic.Asn1EncoderInput:1:1,topic.Asn1EncoderOutput:1:1,topic.SDWDepositorInput:1:1,topic.OdeTIMCertExpirationTimeJson:1:1,topic.OdeRawEncodedBSMJson:1:1,topic.OdeRawEncodedSPATJson:1:1,topic.OdeRawEncodedTIMJson:1:1,topic.OdeRawEncodedMAPJson:1:1,topic.OdeMapTxPojo:1:1,topic.OdeMapJson:1:1,topic.OdeRawEncodedSSMJson:1:1,topic.OdeSsmPojo:1:1,topic.OdeSsmJson:1:1,topic.OdeRawEncodedSRMJson:1:1,topic.OdeSrmTxPojo:1:1,topic.OdeSrmJson:1:1,topic.OdeRawEncodedPSMJson:1:1,topic.OdePsmTxPojo:1:1,topic.OdePsmJson:1:1"
Copy link
Contributor

Choose a reason for hiding this comment

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

Isn't this created with kafka_init.sh script?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yes! This is out of date. I've updated the example docker-compose.yml file provided in the dockerhub.md file. Thank you for catching that.

jpo-ode-consumer-example/README.md Outdated Show resolved Hide resolved
@@ -19,18 +19,9 @@ spring.http.multipart.max-request-size=1MB
#ode.uploadLocationBsm = bsm
#ode.uploadLocationMessageFrame = messageframe

#USDOT Situation Data Clearinghouse (SDC)/ Situation Data Warehouse (SDW), a.k.a Data Distribution System (DDS) Properties
#USDOT Situation Data Clearinghouse (SDC)/ Situation Data Warehouse (SDW) Properties
Copy link
Contributor

Choose a reason for hiding this comment

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

SDW or SDX?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

SDX! I have updated non-code references (documentation & comments) from 'SDW' to 'SDX'

quickstart-compose.yml Outdated Show resolved Hide resolved
@dmccoystephenson dmccoystephenson marked this pull request as draft June 13, 2024 12:33
@dmccoystephenson
Copy link
Collaborator Author

Marking this as a draft for now until comments are addressed.

@dmccoystephenson dmccoystephenson marked this pull request as ready for review June 13, 2024 16:25
@dmccoystephenson
Copy link
Collaborator Author

This PR is ready for re-review @dan-du-car

@dan-du-car dan-du-car merged commit 23ffeee into usdot-jpo-ode:develop Jun 13, 2024
2 checks passed
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.

7 participants