EDG-788: Nevsky v2 — file-v2 and http-v2 production adapter modules#1606
Merged
caoccao merged 4 commits intoJul 14, 2026
Conversation
c0b924f to
3311471
Compare
Coverage Report
|
094db0e to
b1e80b8
Compare
3311471 to
277a947
Compare
Port the File and HTTP protocol adapters to SDK v2 as new, parallel, production-listable modules, running side by side with the untouched v1 modules (distinct protocol-ids file-v2 / http-v2 and packages). - hivemq-edge-module-file-v2: a stateless northbound poll-only reader on AbstractProtocolAdapter; the five content types and the 64 KB size cap are ported verbatim; empty capabilities(). - hivemq-edge-module-http-v2: owns the JDK HttpClient across connect/disconnect (with optional trust-all TLS); doPoll fires sendAsync and reports through the thread-safe output facade, preserving v1's per-cycle parallelism; JSON/Base64 response decoding and success-status filtering carried over. - Build/distribution wiring: settings.gradle.kts includeBuild, build.gradle.kts edgeModule and edgeProjectsToUpdate entries, so both modules ship in the distribution and are module-loader discovered as listable v2 types. Parity deltas are documented per-module: no auto-removal after repeated poll errors, the MQTT envelope belongs to the framework's northbound mappings, and the poll interval is per-tag.
0ee3034 to
682327b
Compare
marregui
requested changes
Jul 14, 2026
marregui
left a comment
Contributor
There was a problem hiding this comment.
I found a few nits worth addressing
Member
Author
|
All inline review feedback has been addressed or clarified in e41ba25. The File v2 and HTTP v2 module tests plus Spotless checks pass. Each inline thread now has a dedicated response and is resolved. |
5061042
into
initiative/nevsky-protocol-adapter-v2
8 checks passed
caoccao
added a commit
that referenced
this pull request
Jul 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ports the File and HTTP protocol adapters to SDK v2 (Project Nevsky) as new, parallel, production-listable modules, running side by side with the untouched v1 modules. Distinct protocol-ids (
file-v2/http-v2) and Java packages (…adapters.file.v2/…adapters.http.v2); disjoint config sections, factory registries, and REST surfaces — the two never interact.hivemq-edge-module-file-v2AbstractProtocolAdapter(File has no connection, sodoConnectacknowledges immediately).BINARY,TEXT_PLAIN,TEXT_JSON,TEXT_XML,TEXT_CSV) and the 64 KB size cap are ported verbatim.capabilities()— no write, browse, or subscription.hivemq-edge-module-http-v2java.net.http.HttpClientacrossdoConnect/doDisconnect(optional trust-all TLS gated behindallowUntrustedCertificates, default off) — no third-party HTTP dependency.doPollfiressendAsyncand reports through the thread-safeoutputfaçade from the client's completion thread, preserving v1's per-cycle parallelism; the per-request timeout bounds every in-flight poll.HiveMQ-Edge; <version>User-Agent, JSON/Base64 response decoding, and success-status filtering carried over.Build / distribution wiring
settings.gradle.ktsincludeBuildfor both modules.build.gradle.ktsedgeModule(...)+edgeProjectsToUpdateentries so both ship in the distribution and are module-loader discovered as listable v2 types.hivemqEdgeZip/hivemqEdgeFullZip.Parity deltas (documented per-module README)
TagEntity.pollIntervalMillis).Tests
checkgreen for both (file-v2: 7 test files;http-v2: 8, including an in-process JDKHttpServer+ Awaitility for the async/concurrency/timeout paths). ErrorProne/NullAway clean, Spotless clean.hivemq-edge-testPR.Related PRs
hivemq-edge-test: wired e2e suites + module-loader binary wiring.hivemq-edge-composite: composite distribution wiring.