fix(1500): CMS matrix smoke green for H2, PostgreSQL, MySQL, SQL Server - #1507
Merged
Conversation
PSSchedulerBean only mapped derby/mysql/mssql/oracle/db2, so H2 installs failed webapp start with Unrecognized database driver "h2:file". Map h2 and postgresql to StdJDBCDelegate, normalize h2:file|mem|tcp forms, and register h2 subprotocols in PSJdbcUtils.getDriverFromUrl. Co-Authored by Grok Build Grok 4.5 using grok-4.5 with agent main.
Silent install ran with user.dir under the extract temp tree, so relative jdbc:h2:file:../../Repository/CMDB wrote schema under /tmp and Jetty opened an empty install-root DB. Resolve H2 file: fragments against installRoot/jetty/base via PSJdbcUtils + InstallUtil. Do not encrypt empty datasource passwords in Jetty perc-ds.properties (ciphertext decrypt mismatch caused Wrong user name or password). Remove undefined emsAPIService ref from siteimprove JAX-RS server so Spring context can finish starting. Matrix CMS H2 smoke: RESULT:OK HTTP 200. Co-Authored by Grok Build Grok 4.5 using grok-4.5 with agent main.
Erlang pre-PR gate required behavioral coverage for empty password saving as pwd= + pwd.encrypted=N (H2 default sa/). Extend JettyDatasourceConfigurationAdapterTest; re-review approve. Co-Authored by Grok Build Grok 4.5 using grok-4.5 with agent main.
Silent --db.type=postgresql never rewrote rxrepository (missing Ant branch) and configure_jetty ran before setupDB, so matrix "postgresql" cells still installed H2. Add postgresql propertyfile branch, run setupDB before configure_jetty, map Quartz to PostgreSQLDelegate, add DAYSFROMDATE for postgresql, publish compose Postgres on host 5433, harden matrix start_db when DB already running. perc-qa-automation: -Pmatrix-smoke runs docker/scripts/matrix-install-smoke.py (documented; opt-in only). Note: CMS+PostgreSQL login probe still fails server init (Quartz VARCHAR flags vs boolean binds, relationship config mapping, remaining function defs / content-type columns). H2 matrix remains green. Co-Authored by Grok Build Grok 4.5 using grok-4.5 with agent main.
Complete dialect and harness gaps so Layer-1 install matrix login probe passes on compose external DBs (and keeps H2 green): - Quartz job-store flag columns use JDBC BIT (BOOLEAN/BIT per backend) - PostgreSQL CHAR_TO_INT function body; PSConfig LONGVARCHAR not @lob OID - PSTableMetaData folds identifiers for storesLowerCase/Upper drivers - Matrix cell disables DB SSL against plain compose DBs - MySQL connectionCollation + UNION view CAST COLLATE for utf8mb4 Evidence: cms-postgresql/mysql/sqlserver matrix RESULT:OK HTTP 200. Erlang: docs/ai-generated/code-reviews/1500-matrix-dialect-erlang.md (approve). Co-Authored by Grok Build using grok-4.5 with agent Grok.
Collaborator
Author
|
Follow-up backlog: Oracle Layer-1 matrix cell tracked as #1508 (installer already accepts Does not block this PR. |
natechadwick-intsof
enabled auto-merge (squash)
July 26, 2026 15:34
natechadwick-intsof
disabled auto-merge
July 26, 2026 15:35
6 tasks
6 tasks
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
Closes remaining Layer-1 install-matrix gaps for CMS external databases under GitHub #1500 / H2 #548 follow-up:
file:repository path, empty Jetty DS password, Quartz H2 delegate, dead EMS bean removal.--db.type=postgresqlwiring; Quartz BIT/BOOLEAN flags;CHAR_TO_INTdialect;PSTableMetaDataidentifier folding;PSConfigLONGVARCHAR (not@LobOID);DAYSFROMDATE(prior).connectionCollation=utf8mb4_unicode_ci; UNION view CAST COLLATE.-Pmatrix-smokeonperc-qa-automation(prior commit on this branch).Matrix evidence (Layer 1 login probe)
Logs under
docker/logs/matrix-results-*.json/matrix-cms-*-*.log.Pre-PR Maven (standalone)
Changed modules exercised with
mvn-env.sh(JDK 21):modules/utils— install + MYSQL_CONN_PARAMS testsystem— install + dialect unit tests (11)modules/TableFactory— BIT map testsWebUI— install (embeds perc-system)modules/perc-distribution-tree— clean install packagingFull matrix uses the packaged
perc-distribution-tree.jar(customer artifact).Erlang
docs/ai-generated/code-reviews/1500-matrix-dialect-erlang.md— approveOut of scope / follow-ups
--db.type=oracle).unhealthywithoutsqlcmd -C(smoke still green).Test plan
python3 -m pytest docker/scripts/test_matrix_install_smoke.pymatrix-install-smoke.py --product cms --db postgresql|mysql|sqlserverHTTP 200