OF-3239: Add MariaDB as a first-class supported database#3243
OF-3239: Add MariaDB as a first-class supported database#3243guusdk wants to merge 1 commit intoigniterealtime:mainfrom
Conversation
68dde13 to
9bcb2cb
Compare
There was a problem hiding this comment.
Pull request overview
This PR promotes MariaDB from being implicitly treated as MySQL to a first-class database type across Openfire, including dedicated schema scripts, JDBC driver inclusion, CI validation, and documentation updates.
Changes:
- Introduces a distinct
DatabaseType.mariadband MariaDB detection inDbConnectionManager. - Adds bundled MariaDB JDBC driver dependencies and MariaDB-specific install/upgrade SQL scripts.
- Expands CI to validate MariaDB install/upgrade paths and updates docs to include MariaDB configuration guidance.
Reviewed changes
Copilot reviewed 46 out of 46 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| xmppserver/src/main/java/org/jivesoftware/database/DbConnectionManager.java | Detect MariaDB distinctly and add DatabaseType.mariadb. |
| xmppserver/pom.xml | Add MariaDB JDBC driver dependency. |
| build/ci/updater/pom.xml | Add MariaDB JDBC driver dependency for the schema updater runner. |
| .github/workflows/continuous-integration-workflow.yml | Add MariaDB install/upgrade CI jobs; include MariaDB in upgrade-script presence checks; wire into publish job dependencies. |
| build/ci/compose/mariadb.yml | New MariaDB Docker Compose definition used by CI jobs. |
| distribution/src/database/openfire_mariadb.sql | New MariaDB install script (mirrors MySQL schema). |
| distribution/src/database/upgrade/1/openfire_mariadb.sql | MariaDB upgrade script v1 (mirrors MySQL). |
| distribution/src/database/upgrade/2/openfire_mariadb.sql | MariaDB upgrade script v2 (mirrors MySQL). |
| distribution/src/database/upgrade/4/openfire_mariadb.sql | MariaDB upgrade script v4 (mirrors MySQL). |
| distribution/src/database/upgrade/5/openfire_mariadb.sql | MariaDB upgrade script v5 (mirrors MySQL). |
| distribution/src/database/upgrade/6/openfire_mariadb.sql | MariaDB upgrade script v6 (mirrors MySQL). |
| distribution/src/database/upgrade/7/openfire_mariadb.sql | MariaDB upgrade script v7 (mirrors MySQL). |
| distribution/src/database/upgrade/8/openfire_mariadb.sql | MariaDB upgrade script v8 (mirrors MySQL). |
| distribution/src/database/upgrade/9/openfire_mariadb.sql | MariaDB upgrade script v9 (mirrors MySQL). |
| distribution/src/database/upgrade/10/openfire_mariadb.sql | MariaDB upgrade script v10 (mirrors MySQL). |
| distribution/src/database/upgrade/11/openfire_mariadb.sql | MariaDB upgrade script v11 (mirrors MySQL). |
| distribution/src/database/upgrade/12/openfire_mariadb.sql | MariaDB upgrade script v12 (mirrors MySQL). |
| distribution/src/database/upgrade/13/openfire_mariadb.sql | MariaDB upgrade script v13 (mirrors MySQL). |
| distribution/src/database/upgrade/14/openfire_mariadb.sql | MariaDB upgrade script v14 (mirrors MySQL). |
| distribution/src/database/upgrade/15/openfire_mariadb.sql | MariaDB upgrade script v15 (mirrors MySQL). |
| distribution/src/database/upgrade/16/openfire_mariadb.sql | MariaDB upgrade script v16 (mirrors MySQL). |
| distribution/src/database/upgrade/17/openfire_mariadb.sql | MariaDB upgrade script v17 (mirrors MySQL). |
| distribution/src/database/upgrade/18/openfire_mariadb.sql | MariaDB upgrade script v18 (mirrors MySQL). |
| distribution/src/database/upgrade/19/openfire_mariadb.sql | MariaDB upgrade script v19 (mirrors MySQL). |
| distribution/src/database/upgrade/20/openfire_mariadb.sql | MariaDB upgrade script v20 (mirrors MySQL). |
| distribution/src/database/upgrade/21/openfire_mariadb.sql | MariaDB upgrade script v21 (mirrors MySQL). |
| distribution/src/database/upgrade/22/openfire_mariadb.sql | MariaDB upgrade script v22 (mirrors MySQL). |
| distribution/src/database/upgrade/23/openfire_mariadb.sql | MariaDB upgrade script v23 (mirrors MySQL). |
| distribution/src/database/upgrade/24/openfire_mariadb.sql | MariaDB upgrade script v24 (mirrors MySQL). |
| distribution/src/database/upgrade/25/openfire_mariadb.sql | MariaDB upgrade script v25 (mirrors MySQL). |
| distribution/src/database/upgrade/26/openfire_mariadb.sql | MariaDB upgrade script v26 (mirrors MySQL). |
| distribution/src/database/upgrade/27/openfire_mariadb.sql | MariaDB upgrade script v27 (mirrors MySQL). |
| distribution/src/database/upgrade/28/openfire_mariadb.sql | MariaDB upgrade script v28 (mirrors MySQL). |
| distribution/src/database/upgrade/29/openfire_mariadb.sql | MariaDB upgrade script v29 (mirrors MySQL). |
| distribution/src/database/upgrade/30/openfire_mariadb.sql | MariaDB upgrade script v30 (mirrors MySQL). |
| distribution/src/database/upgrade/31/openfire_mariadb.sql | MariaDB upgrade script v31 (mirrors MySQL). |
| distribution/src/database/upgrade/32/openfire_mariadb.sql | MariaDB upgrade script v32 (mirrors MySQL). |
| distribution/src/database/upgrade/33/openfire_mariadb.sql | MariaDB upgrade script v33 (mirrors MySQL). |
| distribution/src/database/upgrade/34/openfire_mariadb.sql | MariaDB upgrade script v34 (mirrors MySQL). |
| distribution/src/database/upgrade/35/openfire_mariadb.sql | MariaDB upgrade script v35 (mirrors MySQL). |
| distribution/src/database/upgrade/36/openfire_mariadb.sql | MariaDB upgrade script v36 (mirrors MySQL). |
| distribution/src/database/upgrade/37/openfire_mariadb.sql | MariaDB upgrade script v37 (mirrors MySQL). |
| distribution/src/database/upgrade/38/openfire_mariadb.sql | MariaDB upgrade script v38 (mirrors MySQL). |
| documentation/database.html | Add MariaDB documentation section (driver, setup, encoding notes) and navigation entry. |
| documentation/db-clustering-guide.html | Add MariaDB JDBC URL examples and vendor docs link. |
| documentation/migration-blowfish-pbkdf2.html | Add MariaDB backup/restore command examples. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
9bcb2cb to
93484e4
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 46 out of 46 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
MariaDB was previously handled implicitly by mapping it to DatabaseType.mysql in DbConnectionManager.setMetaData() and sharing all MySQL SQL scripts. This commit gives MariaDB its own identity throughout the codebase. This adds a copy of the Mysql install and upgrade script under the 'mariadb' name, ensuring that any existing MariaDB installation that was previously running under the Mysql type can continue to upgrade through any path. Introduces two new CI jobs (mariadb-install and mariadb-upgrade) that mirror the structure of the existing mysql-install and mysql-upgrade jobs, giving MariaDB the same level of automated testing as other supported databases. Update documentation to reflect MariaDB as a first-class database.
93484e4 to
3f8be18
Compare
Fishbowler
left a comment
There was a problem hiding this comment.
This looks sensible and healthy, and very low risk. Needs a conflict resolution.
MariaDB was previously handled implicitly by mapping it to DatabaseType.mysql in DbConnectionManager.setMetaData() and sharing all MySQL SQL scripts. This commit gives MariaDB its own identity throughout the codebase.
This adds a copy of the Mysql install and upgrade script under the 'mariadb' name, ensuring that any existing MariaDB installation that was previously running under the Mysql type can continue to upgrade through any path.
Introduces two new CI jobs (mariadb-install and mariadb-upgrade) that mirror the structure of the existing mysql-install and mysql-upgrade jobs, giving MariaDB the same level of automated testing as other supported databases.
Update documentation to reflect MariaDB as a first-class database.