Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 84 additions & 3 deletions .github/workflows/continuous-integration-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,87 @@ jobs:
./mvnw -B clean package exec:java -Dexec.args="$GITHUB_WORKSPACE"


db2-install:
name: Test DB2 install script
needs: [build, should-do-database-tests, check_branch]
runs-on: ubuntu-latest
if: ${{ needs.should-do-database-tests.outputs.check == 'true' || needs.check_branch.outputs.is_publishable_branch == 'true'}}
steps:
- name: Checkout Openfire
uses: actions/checkout@v4
- name: Set up JDK 17 Zulu
uses: actions/setup-java@v4
with:
java-version: 17
distribution: zulu
cache: maven
- name: Restore mvn repo artifacts from build job
uses: actions/download-artifact@v4
with:
name: mvn-repo
path: ~/.m2/repository/org/igniterealtime/openfire/
- name: Set environment variables
run: |
echo "CONNECTION_STRING=jdbc:db2://localhost:50000/openfire" >> $GITHUB_ENV
echo "CONNECTION_DRIVER=com.ibm.db2.jcc.DB2Driver" >> $GITHUB_ENV
echo "CONNECTION_USERNAME=sa" >> $GITHUB_ENV
echo "CONNECTION_PASSWORD=SecurePa55w0rd" >> $GITHUB_ENV
OPENFIREVSN=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
echo "OPENFIREVSN=$OPENFIREVSN" >> $GITHUB_ENV
echo "JAVA_HOME=$(echo $JAVA_HOME_17_X64)" >> $GITHUB_ENV
- name: Start database server with an empty database
run: |
mkdir olddb
echo 'CREATE TABLE imready AS (SELECT 1);' > $GITHUB_WORKSPACE/olddb/ZZZ-signal-ready.sql
docker compose -f ./build/ci/compose/db2.yml up --detach
- name: Execute Openfire's database install script
run: |
pushd ./build/ci/updater
./mvnw -B clean package exec:java -Dexec.args="$GITHUB_WORKSPACE"


db2-upgrade:
name: Test DB2 upgrade scripts
needs: [build, should-do-database-tests, check_branch]
runs-on: ubuntu-latest
if: ${{ needs.should-do-database-tests.outputs.check == 'true' || needs.check_branch.outputs.is_publishable_branch == 'true'}}
steps:
- name: Checkout Openfire
uses: actions/checkout@v4
- name: Set up JDK 17 Zulu
uses: actions/setup-java@v4
with:
java-version: 17
distribution: zulu
cache: maven
- name: Restore mvn repo artifacts from build job
uses: actions/download-artifact@v4
with:
name: mvn-repo
path: ~/.m2/repository/org/igniterealtime/openfire/
- name: Set environment variables
run: |
echo "CONNECTION_STRING=jdbc:db2://localhost:50000/openfire" >> $GITHUB_ENV
echo "CONNECTION_DRIVER=com.ibm.db2.jcc.DB2Driver" >> $GITHUB_ENV
echo "CONNECTION_USERNAME=sa" >> $GITHUB_ENV
echo "CONNECTION_PASSWORD=SecurePa55w0rd" >> $GITHUB_ENV
OPENFIREVSN=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
echo "OPENFIREVSN=$OPENFIREVSN" >> $GITHUB_ENV
echo "JAVA_HOME=$(echo $JAVA_HOME_17_X64)" >> $GITHUB_ENV
- name: Download an old Openfire database installation script
run: |
mkdir olddb
curl https://raw.githubusercontent.com/igniterealtime/Openfire/v4.3.0/distribution/src/database/openfire_db2.sql > $GITHUB_WORKSPACE/olddb/openfire_db2.sql
echo 'CREATE TABLE imready AS (SELECT 1);' > $GITHUB_WORKSPACE/olddb/ZZZ-signal-ready.sql
- name: Start database server, install old version of the Openfire database
run: |
docker compose -f ./build/ci/compose/db2.yml up --detach
- name: Execute Openfire's database upgrade scripts
run: |
pushd ./build/ci/updater
./mvnw -B clean package exec:java -Dexec.args="$GITHUB_WORKSPACE"


postgres-install:
name: Test Postgres install script
needs: [build, should-do-database-tests, check_branch]
Expand Down Expand Up @@ -560,7 +641,7 @@ jobs:
mkdir olddb
echo 'CREATE TABLE imready AS (SELECT 1);' > $GITHUB_WORKSPACE/olddb/ZZZ-signal-ready.sql
docker compose -f ./build/ci/compose/mysql.yml up --detach --wait
- name: Build & run database tester
- name: Execute Openfire's database install script
run: |
pushd ./build/ci/updater
./mvnw -B clean package exec:java -Dexec.args="$GITHUB_WORKSPACE"
Expand Down Expand Up @@ -692,7 +773,7 @@ jobs:
publish-maven:
name: Publish to Maven
runs-on: ubuntu-latest
needs: [aioxmpp, connectivity, smack, check_branch, hsqldb-install, hsqldb-upgrade, sqlserver-install, sqlserver-upgrade, postgres-install, postgres-upgrade, mysql-install, mysql-upgrade, oracle-install, oracle-upgrade]
needs: [aioxmpp, connectivity, smack, check_branch, hsqldb-install, hsqldb-upgrade, sqlserver-install, sqlserver-upgrade, db2-install, db2-upgrade, postgres-install, postgres-upgrade, mysql-install, mysql-upgrade, oracle-install, oracle-upgrade]
if: ${{github.repository == 'igniterealtime/Openfire' && github.event_name == 'push' && needs.check_branch.outputs.is_publishable_branch == 'true'}}

steps:
Expand All @@ -719,7 +800,7 @@ jobs:
build-and-push-docker:
name: Publish to GitHub's Docker registry
runs-on: ubuntu-latest
needs: [aioxmpp, connectivity, smack, check_branch, hsqldb-install, hsqldb-upgrade, sqlserver-install, sqlserver-upgrade, postgres-install, postgres-upgrade, mysql-install, mysql-upgrade, oracle-install, oracle-upgrade]
needs: [aioxmpp, connectivity, smack, check_branch, hsqldb-install, hsqldb-upgrade, sqlserver-install, sqlserver-upgrade, db2-install, db2-upgrade, postgres-install, postgres-upgrade, mysql-install, mysql-upgrade, oracle-install, oracle-upgrade]
if: |
github.event_name == 'push' &&
(contains(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main')
Expand Down
30 changes: 30 additions & 0 deletions build/ci/compose/db2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
version: '3.7'

services:
db:
image: icr.io/db2_community/db2
ports:
- "50000:50000"
environment:
- LICENSE=accept
- DB2INSTANCE=db2inst1
- DB2INST1_PASSWORD=${CONNECTION_PASSWORD}
- DBNAME=openfire
- BLU=false
- ENABLE_ORACLE_COMPATIBILITY=false
- UPDATEAVAIL=NO
- TO_CREATE_SAMPLEDB=false
- REPODB=false
- IS_OSXFS=false
- PERSISTENT_HOME=true
- HADR_ENABLED=false
- ETCD_ENDPOINT=
- ETCD_USERNAME=
- ETCD_PASSWORD=
healthcheck:
test: [ "CMD-SHELL", "exit | /opt/ibm/db2/V12.1/bin/db2 'select * from imready'" ]
interval: 5s
timeout: 20s
retries: 80
volumes:
- ${GITHUB_WORKSPACE}/olddb:/database
5 changes: 5 additions & 0 deletions build/ci/updater/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,11 @@
<artifactId>mssql-jdbc</artifactId>
<version>9.4.1.jre11</version>
</dependency>
<dependency>
<groupId>com.ibm.db2</groupId>
<artifactId>jcc</artifactId>
<version>12.1.0.0</version>
</dependency>
<dependency> <!-- OF-2960: Including dependencies of ojdbc11-production rather than ojdbc11-production itself. -->
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc11</artifactId>
Expand Down
8 changes: 4 additions & 4 deletions documentation/database.html
Original file line number Diff line number Diff line change
Expand Up @@ -335,20 +335,20 @@ <h3>Further Help</h3>

<section id="db2">

<h2>IBM DB2 7</h2>
<h2>IBM DB2</h2>

<section id="db2-jdbc-drivers">

<h3>JDBC Drivers</h3>
<p>
Use the JDBC 1.2 compliant driver, db2java.zip (1293KB), located in the <nobr>"%DB2PATH%\java2"</nobr>
directory. Copy the JDBC driver to the <code>lib/</code> directory of your Openfire installation.
The JDBC driver for DB2 is bundled with Openfire, so you do not need to download and install a
separate driver.
</p>
<p>
Values for the config file are:
</p>
<ul style="list-style: none">
<li><span class="short-tab">driver:</span> <code>COM.ibm.db2.jdbc.app.DB2Driver</code></li>
<li><span class="short-tab">driver:</span> <code>com.ibm.db2.jcc.DB2Driver</code></li>
<li><span class="short-tab">server:</span> <code>jdbc:db2:[DB NAME, e.g. OPENFIRE]</code></li>
</ul>

Expand Down
5 changes: 5 additions & 0 deletions xmppserver/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -504,6 +504,11 @@
<artifactId>mssql-jdbc</artifactId>
<version>9.4.1.jre11</version>
</dependency>
<dependency>
<groupId>com.ibm.db2</groupId>
<artifactId>jcc</artifactId>
<version>12.1.0.0</version>
</dependency>
<dependency> <!-- OF-2960: Including dependencies of ojdbc11-production rather than ojdbc11-production itself. -->
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc11</artifactId>
Expand Down
Loading