Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add GraalVM Reachability Metadata and corresponding nativeTest for Atomikos and Narayana integration #30085

Merged
merged 1 commit into from Feb 11, 2024

Conversation

linghengqian
Copy link
Member

@linghengqian linghengqian commented Feb 10, 2024

For #29052.

Changes proposed in this pull request:

  • Add GraalVM Reachability Metadata and corresponding nativeTest for Atomikos and Narayana integration.
  • Temporarily actively hosting the GraalVM Reachability Metadata at org.jboss.narayana.jta:jta:5.12.4.Final.
  • Temporarily actively hosting the GraalVM Reachability Metadata at com.atomikos:transactions:6.0.0.
  • According to the convention of examples/shardingsphere-jdbc-example-generator/src/main/resources/config.yaml, rename org.apache.shardingsphere.test.natived.jdbc.mode.** to org.apache.shardingsphere.test.natived.jdbc.modes.**.
  • Due to https://github.blog/2024-01-17-github-hosted-runners-double-the-power-for-open-source/ , GitHub-hosted runners now have 4-vCPUs, 16 GiB of memory and 150GiB storage, double the configuration. This eliminates the need to pass the -J-Xmx7g buildArg to the native-image constructor. GraalVM CE 23.1.2 For JDK 21.0.2 will use 75% of the system's maximum memory by default to build the GraalVM Native Image.
  • Rename <arg/> tag to <buildArg/> tag following clarification from Substitute <arg> with <buildArg> in Maven plugin doc. graalvm/native-build-tools#551 .
  • Temporarily actively hosting the GraalVM Reachability Metadata at com.h2database:h2:2.2.224. This involves multiple levels of issues.
    • There are no unit tests involving the XADataSource interface for any JDBC driver in the GraalVM Reachability Metadata central repository or Spring team's smoketest. Refer to https://github.com/oracle/graalvm-reachability-metadata and https://github.com/spring-projects/spring-aot-smoke-tests .
    • Except for PostgreSQL and Oracle Database, there is no way to expect any JDBC driver to actively maintain its own GraalVM Reachability Metadata. We can expect that all JDBC drivers currently require manual addition of the GraalVM Reachability Metadata entry for the XADataSource. I'm only adding the GraalVM Reachability Metadata entry for H2Database here, simply meaning that the relevant JSON entries are needed for the unit tests. This does not mean that other JDBC drivers do not require additional JSON entries.
    • In any case, I don’t want us to waste time on third-party dependencies of GraalVM Reachability Metadata. This should be handled on the GraalVM Reachability Metadata central repository side.

Before committing this PR, I'm sure that I have checked the following options:

  • My code follows the code of conduct of this project.
  • I have self-reviewed the commit code.
  • I have (or in comment I request) added corresponding labels for the pull request.
  • I have passed maven check locally : ./mvnw clean install -B -T1C -Dmaven.javadoc.skip -Dmaven.jacoco.skip -e.
  • I have made corresponding changes to the documentation.
  • I have added corresponding unit tests for my changes.

@strongduanmu strongduanmu merged commit f6abc74 into apache:master Feb 11, 2024
140 checks passed
@strongduanmu strongduanmu added this to the 5.5.0 milestone Feb 11, 2024
@linghengqian linghengqian deleted the xa-graalvm branch February 11, 2024 08:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants