zerodds-java-omgdds v1.0 — Spec-Coverage
Audit der Vendor-Spec docs/specs/zerodds-java-omgdds-1.0.md gegen
crates/java-omgdds/ Code-Realität.
Source: docs/specs/zerodds-java-omgdds-1.0.md (Vendor-Spec, 2026-05-06).
Repo: crates/java-omgdds/ (Rust-Codegen-Bridge) +
crates/java-omgdds/java/ (Maven-Java-Modul).
Stand: 2026-05-07.
§1 Architektur
§1.1 Module-Layout
Spec: §1.1 — Java-Source-Tree unter crates/java-omgdds/java/src/main/java/
mit org/omg/dds/* (normative API) und org/zerodds/internal/*
(Implementation-Detail).
Repo: 23 Java-Files (siehe find crates/java-omgdds/java -name "*.java").
- org/omg/dds/core/ (5 Files)
- org/omg/dds/topic/ (2 Files)
- org/omg/dds/sub/ (3 Files)
- org/omg/dds/pub/ (2 Files)
- org/omg/dds/domain/ (2 Files)
- org/omg/dds/core/policy/ (1 File)
- org/zerodds/internal/InProcessBus.java (1 File)
- org/zerodds/internal/Xcdr2Codec.java (1 File)
- 3 Test-Files in src/test/
- Maven-Pom in crates/java-omgdds/java/pom.xml
Tests: mvn test 18 passed (CoreTypesTest 10, Xcdr2CodecTest 4,
PubSubLoopbackTest 4) + 1 cargo-test in crates/java-omgdds.
Status: done
§1.2 InProcessBus
Spec: §1.2 — Threadsafe-Topic-Map, push-basierte Sample-Delivery an alle DataReader auf demselben Topic.
Repo: crates/java-omgdds/java/src/main/java/org/zerodds/internal/ InProcessBus.java.
Tests: PubSubLoopbackTest — 4 Tests verifizieren Pub→Sub
delivery in-process.
Status: done
§1.3 Xcdr2Codec
Spec: §1.3 — Java-native XCDR2-Encoder/Decoder spec-konform per DDS-XTypes 1.3 §7.4.
Repo: org/zerodds/internal/Xcdr2Codec.java.
Tests: Xcdr2CodecTest — 4 Tests verifizieren wire-format
Roundtrip.
Status: done
§2 OMG-API-Coverage
§2.1 org.omg.dds.core.*
Spec: §2 — Time, Duration, InstanceHandle, Entity, ReturnCode, QosProfile.
Repo: 5+ Java-Files in org/omg/dds/core/.
Tests: CoreTypesTest — 10 Tests fuer Time/Duration/InstanceHandle
Roundtrips.
Status: done
§2.2 org.omg.dds.domain.*
Spec: §2 — DomainParticipant + DomainParticipantFactory.
Repo: DomainParticipant.java + DomainParticipantFactory.java.
Tests: indirekt via PubSubLoopbackTest.
Status: done
§2.3 org.omg.dds.topic.*
Spec: §2 — Topic + TopicTypeSupport.
Repo: Topic.java + TopicTypeSupport.java.
Tests: PubSubLoopbackTest.
Status: done
§2.4 org.omg.dds.pub.*
Spec: §2 — Publisher + DataWriter.
Repo: Publisher.java + DataWriter.java.
Tests: PubSubLoopbackTest.
Status: done
§2.5 org.omg.dds.sub.*
Spec: §2 — Subscriber + DataReader + Sample.
Repo: Subscriber.java + DataReader.java + Sample.java.
Tests: PubSubLoopbackTest.
Status: done
§2.6 org.omg.dds.core.policy.*
Spec: §2 — QosProfile (Default-QoS-Pfad, optional XML-QoS-Loader).
Repo: QosProfile.java.
Tests: indirekt.
Status: done — Default-QoS-Pfad live; XML-QoS-Loader ist Phase-2
in zerodds-xml-1.0-Audit-File getrackt (separate Spec).
§3 Test-Pflicht
§3.1 mvn test grün
Spec: §3 — mvn test muss 18/18 grün liefern.
Repo: crates/java-omgdds/java/pom.xml mit JUnit-5-Setup.
Tests: Verifikation: mvn test in crates/java-omgdds/java/
liefert “Tests run: 18, Failures: 0, Errors: 0, Skipped: 0”.
Status: done
§4 Cross-Pfad-Kompatibilität
§4.1 Pfad-A vs. Pfad-B Decision
Spec: §4 — Pfad-A (JNI) und Pfad-B (Pure-Java) sind wire-inkompatibel im RC1 weil Pfad-B keinen RTPS-Stack hat.
Repo: crates/zerodds-java-jni/ (Pfad-A) vs. crates/java- omgdds/ (Pfad-B). Vendor-Spec dokumentiert Decision-Matrix
(Embedded-Pfad-A, Tooling-Pfad-B).
Status: done — Decision-Matrix in Vendor-Spec §4 Tabelle.
§4.2 gRPC-Bridge fuer Multi-Process
Spec: §5 Phase-2 — gRPC-Service in crates/grpc-bridge/
exponiert DCPS-Methods, Pure-Java-Client kann sich verbinden.
Repo: crates/grpc-bridge/ existiert. proto/dds-bridge.proto
ist nicht implementiert.
Status: n/a (Phase-2 Stretch) — Vendor-Spec markiert das
explizit als Phase-2/v1.1-Stretch. RC1 lebt ohne. Decision-
Record im .open.md.
§5 Stabilitaet
Spec: §6 — semver: v1.0 = aktuelle Surface (RC1).
Repo: Maven-Pom-Version, Cargo.toml-Version.
Status: done
Zusammenfassung
| Sektion | Status |
|---|---|
| §1 Architektur | done (3/3) |
| §2 OMG-API-Coverage | done (6/6) |
| §3 Test-Pflicht | done |
| §4 Cross-Pfad | done (1/2) + n/a (1/2) |
| §5 Stabilitaet | done |
Total Items: 12 done: 11 partial: 0 open: 0 n/a (Stretch): 1
Siehe zerodds-java-omgdds-1.0.open.md.
Abschluss-Bemerkung
Pure-Java-Pfad ist voll spec-konform fuer den dokumentierten Scope
(Single-JVM in-process Pub-Sub via InProcessBus + Cross-JVM via gRPC-
Bridge in v1.1). Der einzige n/a-Item (gRPC-Bridge) ist als
explizites Phase-2-Stretch im Vendor-Spec §5 markiert; RC1 ohne ist
korrekt.