Add jdk25 support and install oracle tools#1546
Conversation
SummaryThis pull request extends the CloudFormation template for the WSO2 Identity Server integration test infrastructure to support newer Java runtime options and add Oracle database client tooling across multiple Linux distributions. ChangesJava Runtime Support
Oracle Database Client Installation
These changes improve the test infrastructure's flexibility by supporting more recent Java versions and enabling Oracle database connectivity capabilities across diverse Linux platforms. WalkthroughUpdated CloudFormation template to expand JDK options with ADOPT_OPEN_JDK25 variants and configured EC2 Linux user-data provisioning scripts to install Oracle SQL*Plus across multiple distributions (Ubuntu, Rocky, SUSE, RHEL). Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
♻️ Duplicate comments (2)
jobs/intg-test-resources/master-branch-releases/wso2-master-is-intg-test-cfn.yaml (2)
464-464:⚠️ Potential issue | 🔴 Critical
zypper install -y sqlplus64— package does not exist in default SUSE repos.SLES/openSUSE do not ship a
sqlplus64package. For SUSE you generally need to download the Oracle Instant Client RPM (matching SLE major) and install it withrpm -ivhorzypper --no-gpg-checks install <path-to-rpm>after satisfying thelibaio1dependency. As-is, this line will fail with "no provider of 'sqlplus64' found".Also note: this SUSE-specific block runs after the Rocky/SUSE block (line 398) has already tried
yum -y install sqlplus64on the same host (line 407). Both will fail on SUSE.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@jobs/intg-test-resources/master-branch-releases/wso2-master-is-intg-test-cfn.yaml` at line 464, Replace the invalid SUSE install step "zypper install -y sqlplus64" with logic to fetch and install the Oracle Instant Client RPM for SLE: ensure the libaio package dependency is installed, download the correct Instant Client RPM (matching the SLE major version), and install it with "rpm -ivh" or "zypper --no-gpg-checks install <path-to-rpm>" instead of zypper install of sqlplus64; also remove or guard the earlier "yum -y install sqlplus64" attempt so you don’t try both package managers on the same host (e.g., perform sqlplus/instant-client installation only in the appropriate distro-specific block).
443-443:⚠️ Potential issue | 🔴 CriticalSame issue as line 407:
sqlplus64is not available via yum on RHEL8/RHEL9.No RHEL/Rocky/EPEL repo ships a package called
sqlplus64. This install will fail (or no-op under dnf) and any downstream step that depends onsqlplusbeing on$PATHwill then fail much later with a less obvious error. Use the Oracle Instant Client RPMs fromyum.oracle.com(matching the RHEL major) or add the Oracle yum repo and installoracle-instantclient-sqlplusexplicitly.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@jobs/intg-test-resources/master-branch-releases/wso2-master-is-intg-test-cfn.yaml` at line 443, The "yum -y install sqlplus64" line will fail because no RHEL/EPEL package named sqlplus64 exists; replace it by adding the Oracle Instant Client repo or installing the Oracle Instant Client RPMs and then explicitly installing the sqlplus package (e.g., oracle-instantclient-sqlplus plus the basic instantclient package) that matches the RHEL major, and ensure the resulting sqlplus binary is on PATH (update the yum/dnf command that currently runs "yum -y install sqlplus64" to use the Oracle yum repo or direct RPMs and install oracle-instantclient-sqlplus and oracle-instantclient-basic).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@jobs/intg-test-resources/master-branch-releases/wso2-master-is-intg-test-cfn.yaml`:
- Around line 161-165: Update the CFN templates that list JDK AllowedValues by
adding the two new symbols ADOPT_OPEN_JDK25 and ADOPT_OPEN_JDK25_ARM to each JDK
options list; specifically, locate the AllowedValues arrays that currently
contain ADOPT_OPEN_JDK17, ADOPT_OPEN_JDK21, and ARM variants in the templates
mentioned and append ADOPT_OPEN_JDK25 and ADOPT_OPEN_JDK25_ARM so all JDK option
lists include the new JDK25 entries consistently (ensure the same
ordering/format as other entries and validate template YAML syntax after edits).
- Line 407: The yum/zypper install commands using the nonexistent package name
"sqlplus64" must be replaced: for Rocky/RHEL blocks remove "yum -y install
sqlplus64" and instead download the appropriate Oracle Instant Client RPMs
(e.g., oracle-instantclient-basic and oracle-instantclient-sqlplus) from
yum.oracle.com and install them with rpm -Uvh (or dnf install ./<rpm>),
referencing the existing Ubuntu block's RPM download flow but without using
alien; for SUSE replace "zypper install -y sqlplus64" with obtaining the Oracle
Instant Client ZIP distribution, extract it into /opt/oracle/instantclient (or
similar), create the necessary symlinks and LD_LIBRARY_PATH entries, and ensure
the install steps are idempotent and use the same package names
(oracle-instantclient-basic, oracle-instantclient-sqlplus) where RPMs are
available.
- Around line 382-388: The Ubuntu/Ubuntu-ARM branch installs x86_64 Oracle RPMs
and symlinks /usr/lib/x86_64-linux-gnu which will break on aarch64; fix by
detecting architecture (e.g., check uname -m) inside the OperatingSystem
conditional and: for aarch64 use the aarch64-specific installer (prefer the
oracle-instantclient-19.28 aarch64 RPM/ZIP or the 19.30 aarch64 ZIP) and avoid
alien+RPM conversion when aarch64 ZIP is available; for x86_64 keep the RPM flow
but move the Oracle version into a single variable (e.g., INSTANTCLIENT_VERSION)
and add curl retries/backoff (e.g., loop with sleep and limited attempts) for
the URLs referenced in the curl commands, adjust the symlink target to
/usr/lib/aarch64-linux-gnu for aarch64 (or create logic that chooses the correct
lib dir based on architecture), and conditionally install the correct libaio
package name (libaio1t64 vs libaio1) based on OSVersion to prevent
package-not-found failures.
---
Duplicate comments:
In
`@jobs/intg-test-resources/master-branch-releases/wso2-master-is-intg-test-cfn.yaml`:
- Line 464: Replace the invalid SUSE install step "zypper install -y sqlplus64"
with logic to fetch and install the Oracle Instant Client RPM for SLE: ensure
the libaio package dependency is installed, download the correct Instant Client
RPM (matching the SLE major version), and install it with "rpm -ivh" or "zypper
--no-gpg-checks install <path-to-rpm>" instead of zypper install of sqlplus64;
also remove or guard the earlier "yum -y install sqlplus64" attempt so you don’t
try both package managers on the same host (e.g., perform sqlplus/instant-client
installation only in the appropriate distro-specific block).
- Line 443: The "yum -y install sqlplus64" line will fail because no RHEL/EPEL
package named sqlplus64 exists; replace it by adding the Oracle Instant Client
repo or installing the Oracle Instant Client RPMs and then explicitly installing
the sqlplus package (e.g., oracle-instantclient-sqlplus plus the basic
instantclient package) that matches the RHEL major, and ensure the resulting
sqlplus binary is on PATH (update the yum/dnf command that currently runs "yum
-y install sqlplus64" to use the Oracle yum repo or direct RPMs and install
oracle-instantclient-sqlplus and oracle-instantclient-basic).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 091e11a7-32bf-44ea-b920-4d45e72710da
📒 Files selected for processing (1)
jobs/intg-test-resources/master-branch-releases/wso2-master-is-intg-test-cfn.yaml
| - ADOPT_OPEN_JDK25 | ||
| - ADOPT_OPEN_JDK11_ARM | ||
| - ADOPT_OPEN_JDK17_ARM | ||
| - ADOPT_OPEN_JDK21_ARM | ||
| - ADOPT_OPEN_JDK25_ARM |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Find all CFN templates exposing a JDK parameter and show which ones are missing JDK25.
fd -e yaml -e yml | xargs rg -l -n 'ADOPT_OPEN_JDK' 2>/dev/null | while read -r f; do
echo "=== $f ==="
rg -n 'ADOPT_OPEN_JDK25|ADOPT_OPEN_JDK21|ADOPT_OPEN_JDK17' "$f"
doneRepository: wso2/testgrid
Length of output: 1185
Update related CFN templates to include JDK25 in their AllowedValues.
The JDK25 additions to this file are correct, but at least four related templates still lack JDK25 as an option:
jobs/intg-test-resources/update2-releases/wso2-u2-intg-test-cfn.yaml(has JDK17, JDK21 only)jobs/intg-test-resources/update2-releases/wso2-u2-is-intg-test-cfn.yaml(has JDK17, JDK21 only)jobs/intg-test-resources/master-branch-releases/wso2-master-intg-test-cfn.yaml(has JDK17 only)jobs/e2e-test-resources/wso2-is-e2e-test-cfn.yaml(has JDK17, JDK21 only)
Add JDK25 and JDK25_ARM to all templates that define JDK options to maintain consistency across the test pipelines.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@jobs/intg-test-resources/master-branch-releases/wso2-master-is-intg-test-cfn.yaml`
around lines 161 - 165, Update the CFN templates that list JDK AllowedValues by
adding the two new symbols ADOPT_OPEN_JDK25 and ADOPT_OPEN_JDK25_ARM to each JDK
options list; specifically, locate the AllowedValues arrays that currently
contain ADOPT_OPEN_JDK17, ADOPT_OPEN_JDK21, and ARM variants in the templates
mentioned and append ADOPT_OPEN_JDK25 and ADOPT_OPEN_JDK25_ARM so all JDK option
lists include the new JDK25 entries consistently (ensure the same
ordering/format as other entries and validate template YAML syntax after edits).
| echo "Installing Oracle sqlplus64 tool" | ||
| curl -fSL https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.30-basic-19.30.0.0.0-1.el8.x86_64.rpm -o /tmp/oracle-instantclient-basic.rpm | ||
| curl -fSL https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.30-sqlplus-19.30.0.0.0-1.el8.x86_64.rpm -o /tmp/oracle-instantclient-sqlplus.rpm | ||
| apt-get install -y alien libaio1t64 | ||
| ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 | ||
| alien --install --scripts /tmp/oracle-instantclient-basic.rpm | ||
| alien --install --scripts /tmp/oracle-instantclient-sqlplus.rpm |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
Does Oracle publish aarch64 RPMs for oracle-instantclient 19.30 under yum.oracle.com OL8, and is the path "/repo/OracleLinux/OL8/oracle/instantclient/aarch64/getPackage" correct?
💡 Result:
No, Oracle does not publish aarch64 RPMs for oracle-instantclient 19.30 under yum.oracle.com OL8. The official repository at https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/aarch64/index.html lists versions up to 19.28 (e.g., oracle-instantclient19.28-basic-19.28.0.0.0-1.el8.aarch64.rpm as of August 2025), but no 19.30 RPMs. While Oracle offers Version 19.30 ZIP downloads for Linux ARM (aarch64) on their download page, RPMs for that specific version are not available in the yum.oracle.com OL8 repository. The path "/repo/OracleLinux/OL8/oracle/instantclient/aarch64/getPackage" is not correct; the standard repository index is at "/repo/OracleLinux/OL8/oracle/instantclient/aarch64/index.html", and individual RPMs are directly accessible (e.g., oracle-instantclient19.28-basic-19.28.0.0.0-1.el8.aarch64.rpm), but no "getPackage" endpoint is documented or listed.
Citations:
- 1: https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/aarch64/index.html
- 2: https://public-yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/aarch64/index.html
- 3: https://www.oracle.com/database/technologies/instant-client/linux-arm-aarch64-downloads.html
- 4: https://docs.oracle.com/en/database/oracle/oracle-database/19/lacli/installing-ic-arm-packages.html
Ubuntu-ARM will fail: x86_64 RPMs are hard-coded in a branch that also handles Ubuntu-ARM.
This block runs under if [[ ${OperatingSystem} == "Ubuntu" ]] || [[ ${OperatingSystem} == "Ubuntu-ARM" ]] (line 366), but:
- Lines 383–384 download
...x86_64.rpmOracle Instant Client packages. - Line 386 creates a symlink under
/usr/lib/x86_64-linux-gnu/, which does not exist on aarch64 (it is/usr/lib/aarch64-linux-gnu/). alien --installon an x86_64 RPM on an aarch64 host will fail — Oracle does not publish 19.30 aarch64 RPMs in yum.oracle.com OL8; only versions up to 19.28 are available for aarch64.
Also, curl -fSL has no retry/backoff; a transient 5xx from yum.oracle.com aborts the entire user-data and the instance never signals CFN (see line 602). The URL pins 19.30 — a future removal of that exact point release from Oracle's mirror would break all new stacks.
🛠️ Suggested fix sketch: branch on arch (using 19.28 for aarch64), add retries, and centralize the version
echo "Installing Oracle sqlplus64 tool"
+ OIC_VERSION_X86="19.30.0.0.0-1.el8"
+ OIC_VERSION_ARM="19.28.0.0.0-1.el8"
+ if [[ ${OperatingSystem} == "Ubuntu-ARM" ]]; then
+ OIC_VERSION="${OIC_VERSION_ARM}"; OIC_ARCH="aarch64"; LIB_DIR="/usr/lib/aarch64-linux-gnu"
+ else
+ OIC_VERSION="${OIC_VERSION_X86}"; OIC_ARCH="x86_64"; LIB_DIR="/usr/lib/x86_64-linux-gnu"
+ fi
+ BASE_URL="https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/${OIC_ARCH}/getPackage"
+ curl -fSL --retry 5 --retry-delay 5 \
+ "${BASE_URL}/oracle-instantclient19.$(echo ${OIC_VERSION} | cut -d. -f1,2)-basic-${OIC_VERSION}.${OIC_ARCH}.rpm" -o /tmp/oracle-instantclient-basic.rpm
+ curl -fSL --retry 5 --retry-delay 5 \
+ "${BASE_URL}/oracle-instantclient19.$(echo ${OIC_VERSION} | cut -d. -f1,2)-sqlplus-${OIC_VERSION}.${OIC_ARCH}.rpm" -o /tmp/oracle-instantclient-sqlplus.rpm
+ apt-get install -y alien libaio1t64
+ ln -sf "${LIB_DIR}/libaio.so.1t64" "${LIB_DIR}/libaio.so.1"
+ alien --install --scripts /tmp/oracle-instantclient-basic.rpm
+ alien --install --scripts /tmp/oracle-instantclient-sqlplus.rpmAlternatively, for Ubuntu-ARM, consider using ZIP-based installation (oracle-instantclient-19.30-for-linux-aarch64.zip) rather than RPM conversion, as Oracle explicitly provides aarch64 ZIP builds for 19.30.
Note: libaio1t64 only exists on Ubuntu 24.04+. If older Ubuntu versions are still selectable via OSVersion, guard that package name accordingly (use libaio1 on 22.04 and earlier).
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| echo "Installing Oracle sqlplus64 tool" | |
| curl -fSL https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.30-basic-19.30.0.0.0-1.el8.x86_64.rpm -o /tmp/oracle-instantclient-basic.rpm | |
| curl -fSL https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.30-sqlplus-19.30.0.0.0-1.el8.x86_64.rpm -o /tmp/oracle-instantclient-sqlplus.rpm | |
| apt-get install -y alien libaio1t64 | |
| ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 | |
| alien --install --scripts /tmp/oracle-instantclient-basic.rpm | |
| alien --install --scripts /tmp/oracle-instantclient-sqlplus.rpm | |
| echo "Installing Oracle sqlplus64 tool" | |
| OIC_VERSION_X86="19.30.0.0.0-1.el8" | |
| OIC_VERSION_ARM="19.28.0.0.0-1.el8" | |
| if [[ ${OperatingSystem} == "Ubuntu-ARM" ]]; then | |
| OIC_VERSION="${OIC_VERSION_ARM}"; OIC_ARCH="aarch64"; LIB_DIR="/usr/lib/aarch64-linux-gnu" | |
| else | |
| OIC_VERSION="${OIC_VERSION_X86}"; OIC_ARCH="x86_64"; LIB_DIR="/usr/lib/x86_64-linux-gnu" | |
| fi | |
| BASE_URL="https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/${OIC_ARCH}/getPackage" | |
| curl -fSL --retry 5 --retry-delay 5 \ | |
| "${BASE_URL}/oracle-instantclient19.$(echo ${OIC_VERSION} | cut -d. -f1,2)-basic-${OIC_VERSION}.${OIC_ARCH}.rpm" -o /tmp/oracle-instantclient-basic.rpm | |
| curl -fSL --retry 5 --retry-delay 5 \ | |
| "${BASE_URL}/oracle-instantclient19.$(echo ${OIC_VERSION} | cut -d. -f1,2)-sqlplus-${OIC_VERSION}.${OIC_ARCH}.rpm" -o /tmp/oracle-instantclient-sqlplus.rpm | |
| apt-get install -y alien libaio1t64 | |
| ln -sf "${LIB_DIR}/libaio.so.1t64" "${LIB_DIR}/libaio.so.1" | |
| alien --install --scripts /tmp/oracle-instantclient-basic.rpm | |
| alien --install --scripts /tmp/oracle-instantclient-sqlplus.rpm |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@jobs/intg-test-resources/master-branch-releases/wso2-master-is-intg-test-cfn.yaml`
around lines 382 - 388, The Ubuntu/Ubuntu-ARM branch installs x86_64 Oracle RPMs
and symlinks /usr/lib/x86_64-linux-gnu which will break on aarch64; fix by
detecting architecture (e.g., check uname -m) inside the OperatingSystem
conditional and: for aarch64 use the aarch64-specific installer (prefer the
oracle-instantclient-19.28 aarch64 RPM/ZIP or the 19.30 aarch64 ZIP) and avoid
alien+RPM conversion when aarch64 ZIP is available; for x86_64 keep the RPM flow
but move the Oracle version into a single variable (e.g., INSTANTCLIENT_VERSION)
and add curl retries/backoff (e.g., loop with sleep and limited attempts) for
the URLs referenced in the curl commands, adjust the symlink target to
/usr/lib/aarch64-linux-gnu for aarch64 (or create logic that chooses the correct
lib dir based on architecture), and conditionally install the correct libaio
package name (libaio1t64 vs libaio1) based on OSVersion to prevent
package-not-found failures.
| wget https://packages.microsoft.com/config/rhel/9/mssql-server-2022.repo -O /etc/yum.repos.d/mssql-server-2022.repo | ||
| wget https://packages.microsoft.com/config/rhel/9/prod.repo -O /etc/yum.repos.d/msprod.repo | ||
| ACCEPT_EULA=Y yum install -y mssql-tools unixODBC-devel | ||
| yum -y install sqlplus64 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Sanity-check: confirm "sqlplus64" isn't referenced anywhere else in the repo as a yum/zypper package target (indicating precedent).
rg -n --no-heading 'sqlplus64'Repository: wso2/testgrid
Length of output: 584
🏁 Script executed:
cat -n jobs/intg-test-resources/master-branch-releases/wso2-master-is-intg-test-cfn.yaml | sed -n '375,475p'Repository: wso2/testgrid
Length of output: 7559
🌐 Web query:
sqlplus64 yum package Rocky Linux RHEL
💡 Result:
There is no "sqlplus64" package available via yum in the standard Rocky Linux or EPEL repositories. sqlplus (the 64-bit binary is sqlplus, located in /usr/lib/oracle/VERSION/client64/bin/sqlplus after installation) is provided by Oracle Instant Client. Oracle Instant Client RPMs are officially supported only on Oracle Linux, but since Rocky Linux is RHEL-compatible, the RPMs typically work. The recommended method is to download RPMs from Oracle and install locally with dnf (Rocky 8/9 uses dnf, alias for yum). Steps for Rocky Linux 9 (adjust for version 8): 1. Install prerequisites: sudo dnf install libaio 2. Download latest Oracle Instant Client RPMs from https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html (e.g., oracle-instantclient23-basic, oracle-instantclient23-sqlplus for version 23) 3. Install: sudo dnf install oracle-instantclient23-basic-23.x.x.x.x86_64.rpm oracle-instantclient23-sqlplus-23.x.x.x.x86_64.rpm 4. Add to PATH: export PATH=/usr/lib/oracle/23/client64/bin:$PATH (add to ~/.bashrc) To use Oracle's yum repo (unofficial on Rocky): 1. Download and install oracle-release-el9 or oracle-instantclient-release-el9 RPM from yum.oracle.com/repo/OracleLinux/OL9/ 2. sudo dnf install oracle-instantclient-basic oracle-instantclient-sqlplus No native sqlplus64 package exists in Rocky/RHEL base or EPEL; Oracle provides it exclusively. ZIP installation is also possible without RPMs.
Citations:
- 1: https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
- 2: https://docs.oracle.com/en/database/oracle/oracle-database/19/lacli/install-instant-client-using-rpm.html
- 3: https://docs.oracle.com/en/database/oracle/oracle-database/21/lacli/install-instant-client-using-rpm.html
- 4: https://docs.oracle.com/en/database/oracle/oracle-database/26/lacli/install-instant-client-using-rpm.html
- 5: https://computingpost.medium.com/how-to-install-epel-on-rocky-linux-9-8-5efffda6a284
- 6: https://wiki.rockylinux.org/rocky/repo/
🌐 Web query:
sqlplus64 zypper SUSE Linux package
💡 Result:
There is no official "sqlplus64" package available in standard SUSE Linux (SLES or openSUSE) repositories via zypper. sqlplus64 refers to the 64-bit Oracle SQLPlus binary from Oracle Instant Client. SUSE Linux does not provide Oracle Instant Client in its official repositories. Oracle provides RPMs primarily for Oracle Linux (using yum/dnf), but ZIP files are available for any RPM-based distro like SUSE. Recommended installation methods: 1. Download Oracle Instant Client ZIP from official Oracle site (https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html): - instantclient-basic-linux.x64-[version].zip - instantclient-sqlplus-linux.x64-[version].zip Unzip to /opt/oracle, e.g.: sudo mkdir -p /opt/oracle cd /opt/oracle sudo unzip /path/to/instantclient-basic-linux.x64-.zip sudo unzip /path/to/instantclient-sqlplus-linux.x64-*.zip Set environment variables in ~/.bashrc: export LD_LIBRARY_PATH=/opt/oracle/instantclient_[version]:$LD_LIBRARY_PATH export PATH=/opt/oracle/instantclient_[version]:$PATH source ~/.bashrc Verify: sqlplus -v Install libaio1 prerequisite: sudo zypper install libaio1 2. Use community openSUSE Build Service repos (e.g., home:ecsos or home:davidnichols): sudo zypper addrepo https://download.opensuse.org/repositories/home:/ecsos:/monitoring/15.6/ home:ecsos sudo zypper refresh sudo zypper install oracle-instantclient12.1 oracle-instantclient12.1-sqlplus (Adjust repo/version for your SUSE/openSUSE release; these are unofficial and may be outdated.) Oracle officially supports SUSE Linux Enterprise Server 15 for full Oracle Database installs (requires specific packages like libaio1), but Instant Client is easiest via ZIP. No native sqlplus/sqlplus64 package exists; Oracle tools are proprietary.
Citations:
- 1: https://zwbetz.com/install-sqlplus-on-linux/
- 2: https://documentation.suse.com/smart/systems-management/html/reference-zypper-install/index.html
- 3: https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
- 4: https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/supported-suse-linux-enterprise-server-15-distributions-for-x86-64.html
- 5: https://build.opensuse.org/package/show/home:davidnichols/oracle-instantclient
- 6: https://software.opensuse.org/download.html?package=oracle-instantclient&project=home%3Aecsos
- 7: http://pbone.net/info_idpl_117462123_distro_opensuse_com_oracle-instantclient12.1-sqlplus-12.1.0.2.0-lp160.11.5.x86_64.rpm.html
Fix sqlplus64 package name across Rocky/RHEL/SUSE blocks; it does not exist in any yum or zypper repository.
sqlplus64 is not a valid package in Rocky/RHEL yum repositories, EPEL, or SUSE zypper. Oracle ships SQL*Plus as part of Oracle Instant Client (e.g., oracle-instantclient-sqlplus or oracle-instantclient-basic) exclusively via Oracle's own sources.
- Line 407 (Rocky/SUSE block):
yum -y install sqlplus64will fail to find the package. - Line 443 (RHEL8/RHEL9 block): Same issue.
- Line 464 (SUSE block):
zypper install -y sqlplus64will fail; SUSE does not have yum by default and does not carry Oracle Instant Client in standard repos.
The Ubuntu block (lines 382–388) demonstrates the correct approach: download .rpm files from yum.oracle.com and use alien to convert them. For Rocky/RHEL, download and install the .rpm files directly without alien. For SUSE, use the ZIP distribution from Oracle (no RPM available) and extract to a PATH location, or use zypper with community repositories if available.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@jobs/intg-test-resources/master-branch-releases/wso2-master-is-intg-test-cfn.yaml`
at line 407, The yum/zypper install commands using the nonexistent package name
"sqlplus64" must be replaced: for Rocky/RHEL blocks remove "yum -y install
sqlplus64" and instead download the appropriate Oracle Instant Client RPMs
(e.g., oracle-instantclient-basic and oracle-instantclient-sqlplus) from
yum.oracle.com and install them with rpm -Uvh (or dnf install ./<rpm>),
referencing the existing Ubuntu block's RPM download flow but without using
alien; for SUSE replace "zypper install -y sqlplus64" with obtaining the Oracle
Instant Client ZIP distribution, extract it into /opt/oracle/instantclient (or
similar), create the necessary symlinks and LD_LIBRARY_PATH entries, and ensure
the install steps are idempotent and use the same package names
(oracle-instantclient-basic, oracle-instantclient-sqlplus) where RPMs are
available.
Purpose
This pull request updates the CloudFormation template
wso2-master-is-intg-test-cfn.yamlto enhance integration test infrastructure by adding support for newer JDK versions and improving database client tooling. The main improvements are the addition of AdoptOpenJDK 25 options and the installation of the Oraclesqlplus64client across supported operating systems.Platform support enhancements:
ADOPT_OPEN_JDK25andADOPT_OPEN_JDK25_ARMto the list of supported JDK options, allowing integration tests to run against the latest Java version.Database tooling improvements:
sqlplus64client on Ubuntu-based systems using Oracle Instant Client RPMs and thealienpackage converter.sqlplus64viayumfor RHEL9 and Rocky Linux environments. [1] [2]sqlplus64viazypperfor SUSE environments.