9 Commits
Author SHA1 Message Date
pnoker 95431e097f test(e2e): lock device-access mqtt vendor neutrality
Answer the broker-selection question for the device-access plane
mechanically: MQTT is an open wire protocol and the driver talks a
standard Paho client, so any conformant broker is a drop-in selection —
EMQX, Mosquitto, HiveMQ, NanoMQ, VerneMQ — via one URL
(dc3.driver.mqtt.url), no adapter layer needed.

MqttVendorNeutralityIT proves the property: the production option
builder (MqttUtil) plus the same client code performs a
publish/subscribe round trip against HiveMQ CE and Eclipse Mosquitto,
differing only in the broker URL. The compose default (dc3-emqx) is a
deployment choice; the guide's new device-access section documents the
URL-only selection, the no-vendor-code guardrail and the MQTT 3.1.1
dialect note (MQTT 5-only features belong to the internal-plane
adapter).

Full gated E2E now 26/26.
2026-08-20 11:26:24 +08:00
Vickey 918b3d5e8e feat: update pom version to 2026.5.22 2026-05-26 00:30:11 +08:00
pnoker f0d0c7913c feat: add event alarm trigger, E2E contract tests, and docs
Add EVENT target type to AlarmTargetTypeFlagEnum, wire event report
into the alarm rule pipeline, add RabbitMQ contract E2E tests for
command call and event report, and create design documentation.
2026-05-23 19:16:01 +08:00
pnoker 7f5da1a0f8 chore: bump version to 2026.5.18 across all modules 2026-05-18 00:24:22 +08:00
pnoker 996518186a build: bump version to 2026.5.17
Update parent version and dc3.version from 2026.5.5 to 2026.5.17
across all Maven modules.
2026-05-17 19:01:44 +08:00
pnoker 019daf62ce feat: do someting test and code review 2026-05-16 00:56:04 +08:00
pnoker 9123b480f4 test(e2e): stabilize infrastructure harness 2026-05-14 21:29:08 +08:00
Vickey c49dd630e3 test(e2e): bootstrap dockerized end-to-end harness
E2eStack: singleton Testcontainers-driven stack that starts
  - timescale/timescaledb-ha:pg18 (production-pinned), aliased dc3-postgres
  - rabbitmq:3.13-management, aliased dc3-rabbitmq
on a shared docker network with reuse enabled. start() is idempotent and
exposes JDBC URL / AMQP host:port / credentials / container references for
downstream E2E tests.

BaseE2eIT: shared base class with @BeforeAll bootStack() and
  @Tag("e2e") + @EnabledIfEnvironmentVariable(DC3_E2E=true|1|yes|on)
so non-E2E builds (no Docker, e.g. unit-test CI lanes) skip the suite by
default. Subclasses opt in by setting DC3_E2E.

HarnessSmokeIT (3 tests, gated):
  - postgres is reachable and accepts simple queries
  - rabbitmq is reachable and accepts the AMQP handshake
  - start() is idempotent across repeated calls (containers stay running)

build: declare postgresql, rabbitmq testcontainers + amqp-client + postgres JDBC
driver as test scope so the harness can reach the stack without leaking E2E
deps into deployable artifacts. Replaces the .gitkeep placeholder put in by
S0 with the real harness module.

Run via DC3_E2E=true mvn -pl dc3-e2e -am verify.
2026-05-14 13:49:59 +08:00
Vickey c47e5f0a37 test(infra): add coverage and end-to-end aggregator modules
Introduce two reactor modules that exist purely to host repository-wide
test concerns:

- dc3-coverage (packaging=pom) runs jacoco:report-aggregate against all
  contributing modules and applies a tree-wide jacoco:check rule. The
  aggregator excludes generated sources, deployable Application classes,
  POJO entity packages and the third-party modbus4j sero utilities so
  the percentage stays anchored on real business logic. Coverage gates
  start at 0% and tighten in later stages as more tests land.
- dc3-e2e (packaging=jar) reserves a place for the docker-compose driven
  end-to-end suite delivered in stage S8. Unit and integration phases
  are skipped by default and only the e2e profile turns them on.

Both modules are wired into the root reactor.
2026-05-13 13:02:26 +08:00