feat: stack BOM for qqq, qqq-esb, Next dashboard, and qBits (#3) #13

Merged
KofTwentyTwo merged 2 commits from feature/GH-3-stack-bom into develop 2026-09-26 13:13:15 +00:00
KofTwentyTwo commented 2026-09-26 07:20:08 +00:00 (Migrated from github.com)

Description

What does this PR do?
Fills in qqq-all-bom so an application can import one BOM and get a tested version set for the whole qqq-all stack. It also adds qqq-all-bom-test, a build-time module that resolves every artifact the BOM manages. That module is not deployed.

Related Issue:
Closes #3
Part of #1

What the BOM manages:

  • QQQ modules via an import of com.kingsrook.qqq:qqq-bom-pom:4.1.0-SNAPSHOT, which also brings qqq-esb (4.1.0-SNAPSHOT) and qqq-frontend-next (0.2.1).
  • The 8 qBits at their develop snapshots, all built on qbit-build-parent 2.0.0: qbit-quick-search 0.2.1-SNAPSHOT, qbit-user-role-permissions 0.33.0-SNAPSHOT, qbit-customizable-table-views 0.5.0-SNAPSHOT, qbit-standard-process-trace 0.3.0-SNAPSHOT, qbit-webhooks 0.4.0-SNAPSHOT, qbit-workflows 0.114.0-SNAPSHOT, qbit-geo-data 0.2.0-SNAPSHOT, qbit-sftp-data-integration 0.4.0-SNAPSHOT.
  • JDBC drivers: org.postgresql:postgresql 42.7.12, com.mysql:mysql-connector-j 9.5.0, org.xerial:sqlite-jdbc 3.51.1.0, com.h2database:h2 2.4.240.
  • Broker clients for qqq-esb: org.apache.artemis:artemis-jakarta-client 2.57.0 and com.rabbitmq.jms:rabbitmq-jms 3.9.0.

The import also carries the third-party entries qqq-bom-pom inherits from qqq-parent-project (Netty, Jetty, Jackson, log4j, and others), so they come along to consumers. The expanded effective POM has 264 managed entries. qqq-all-bom-test resolves the stack artifacts: everything under com.kingsrook.* plus every entry qqq-all-bom declares itself. The inherited third-party entries only align versions, so the test does not resolve them.

StackBomTest reads the module's effective POM. It checks that the BOM manages each required stack artifact, with rabbitmq-jms at 3.9.0. It also checks that the module declares a dependency on every stack artifact, which means the build resolves each one.

The qbit-geo-data snapshot now resolves because its parent was fixed in QRun-IO/qbit-geo-data#4. Snapshot 0.2.0-20260926.071340-2 names qbit-geo-data-parent:0.2.0-SNAPSHOT.

Type of Change

  • Bug Fix - Fixes an existing issue
  • New Feature - Adds new functionality
  • Breaking Change - Fix or feature that would cause existing functionality to not work as expected
  • Documentation Update - Updates documentation
  • Refactoring - Code change that neither fixes a bug nor adds a feature
  • Build / CI - Changes to the Maven build, CircleCI, compose, or image
  • Test Addition - Adding missing tests or correcting existing tests

Testing

How has this been tested?

  • Unit Tests: All unit tests pass
  • Integration Tests: Integration tests pass
  • Profiles: Checked the affected profile(s) (core, full)
  • Manual Testing: Tested manually in a development environment

Test Commands:

# Commands used for testing, and their results
git fetch origin && git merge origin/develop   # Already up to date
mvn -B -U verify
# BUILD SUCCESS: qqq-all-parent, qqq-all-bom, qqq-all-bom-test, qqq-all-app
# StackBomTest: Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
# All 8 qBits resolved from the Central snapshot repository, including qbit-geo-data 0.2.0-20260926.071340-2
## Description **What does this PR do?** Fills in `qqq-all-bom` so an application can import one BOM and get a tested version set for the whole qqq-all stack. It also adds `qqq-all-bom-test`, a build-time module that resolves every artifact the BOM manages. That module is not deployed. **Related Issue:** Closes #3 Part of #1 **What the BOM manages:** - QQQ modules via an import of `com.kingsrook.qqq:qqq-bom-pom:4.1.0-SNAPSHOT`, which also brings `qqq-esb` (4.1.0-SNAPSHOT) and `qqq-frontend-next` (0.2.1). - The 8 qBits at their develop snapshots, all built on `qbit-build-parent` 2.0.0: `qbit-quick-search` 0.2.1-SNAPSHOT, `qbit-user-role-permissions` 0.33.0-SNAPSHOT, `qbit-customizable-table-views` 0.5.0-SNAPSHOT, `qbit-standard-process-trace` 0.3.0-SNAPSHOT, `qbit-webhooks` 0.4.0-SNAPSHOT, `qbit-workflows` 0.114.0-SNAPSHOT, `qbit-geo-data` 0.2.0-SNAPSHOT, `qbit-sftp-data-integration` 0.4.0-SNAPSHOT. - JDBC drivers: `org.postgresql:postgresql` 42.7.12, `com.mysql:mysql-connector-j` 9.5.0, `org.xerial:sqlite-jdbc` 3.51.1.0, `com.h2database:h2` 2.4.240. - Broker clients for qqq-esb: `org.apache.artemis:artemis-jakarta-client` 2.57.0 and `com.rabbitmq.jms:rabbitmq-jms` 3.9.0. The import also carries the third-party entries `qqq-bom-pom` inherits from `qqq-parent-project` (Netty, Jetty, Jackson, log4j, and others), so they come along to consumers. The expanded effective POM has 264 managed entries. `qqq-all-bom-test` resolves the stack artifacts: everything under `com.kingsrook.*` plus every entry `qqq-all-bom` declares itself. The inherited third-party entries only align versions, so the test does not resolve them. `StackBomTest` reads the module's effective POM. It checks that the BOM manages each required stack artifact, with `rabbitmq-jms` at 3.9.0. It also checks that the module declares a dependency on every stack artifact, which means the build resolves each one. The `qbit-geo-data` snapshot now resolves because its parent was fixed in QRun-IO/qbit-geo-data#4. Snapshot `0.2.0-20260926.071340-2` names `qbit-geo-data-parent:0.2.0-SNAPSHOT`. ## Type of Change - [ ] **Bug Fix** - Fixes an existing issue - [x] **New Feature** - Adds new functionality - [ ] **Breaking Change** - Fix or feature that would cause existing functionality to not work as expected - [ ] **Documentation Update** - Updates documentation - [ ] **Refactoring** - Code change that neither fixes a bug nor adds a feature - [x] **Build / CI** - Changes to the Maven build, CircleCI, compose, or image - [x] **Test Addition** - Adding missing tests or correcting existing tests ## Testing **How has this been tested?** - [x] **Unit Tests**: All unit tests pass - [ ] **Integration Tests**: Integration tests pass - [ ] **Profiles**: Checked the affected profile(s) (`core`, `full`) - [ ] **Manual Testing**: Tested manually in a development environment **Test Commands:** ```bash # Commands used for testing, and their results git fetch origin && git merge origin/develop # Already up to date mvn -B -U verify # BUILD SUCCESS: qqq-all-parent, qqq-all-bom, qqq-all-bom-test, qqq-all-app # StackBomTest: Tests run: 2, Failures: 0, Errors: 0, Skipped: 0 # All 8 qBits resolved from the Central snapshot repository, including qbit-geo-data 0.2.0-20260926.071340-2 ```
Sign in to join this conversation.