Feature Request
For English only, other languages will not accept.
Please pay attention on issues you submitted, because we maybe need more details.
If no response anymore and we cannot make decision by current information, we will close it.
Please answer these questions before submitting your issue. Thanks!
Is your feature request related to a problem?
Describe the feature you would like.
Feature Request
For English only, other languages will not accept.
Please pay attention on issues you submitted, because we maybe need more details.
If no response anymore and we cannot make decision by current information, we will close it.
Please answer these questions before submitting your issue. Thanks!
Is your feature request related to a problem?
Describe the feature you would like.
There is currently a nightly build of ShardingSphere Proxy at https://github.com/orgs/apache/packages/container/package/shardingsphere-proxy-native. But it didn't reach usable status because it wasn't ready yet. For some related error logs, please refer to the logs of https://github.com/apache/shardingsphere/actions/runs/3185102779/jobs/5194279014 .
This issue aims to do the following to bring the nightly build to a usable state.
Add nightly builds of GitHub Action Job and corresponding documentation.
Introduces
JUnit PlatformandJUnit Vintageto replaceJUnit 4to provide the ability to unit test insideGraalVM Native Image. Reference Support JUnit 4 via the VintageTestEngine graalvm/native-build-tools#53 . This issue may need to wait for Migrate certain aspects of JUnit support to the JUnit 5 project graalvm/native-build-tools#313 to be closed before it is actually resolved.Update most of the dependencies to match the metadata provided by https://github.com/oracle/graalvm-reachability-metadata , including but not limited to
com.zaxxer:HikariCP:3.4.2. This also involves submitting metadata for new third-party dependencies to https://github.com/oracle/graalvm-reachability-metadata . Of course, this problem may also be alleviated by Introduce adefault-forattribute oracle/graalvm-reachability-metadata#62 .Introduce GraalVM
AgentinGraalVM Native Build Tools. I hope to wait for Add agent modes to Maven plugin graalvm/native-build-tools#260 to be resolved. But if the problem mentioned in Maven agent modes support work graalvm/native-build-tools#315 is still not solved, I will follow what I mentioned in https://twitter.com/linghengqian/status/1575865141198934016?s=20&t=iVsRyWdOhmXeAMt_bnXRyg operation to introduce it.Update the GraalVM CE version used by GitHub Actions to
22.3.0or higher to resolve an issue involvingserver.yamlinShardingSphere Proxynot being scanned from the classpath. Refer to Cannot resolve FileSystem root resource in Native Image oracle/graal#5020 and Native Image FileSystem is trailing slash sensitive oracle/graal#5080 .Works with Groovy 4 specific issues. Its GraalVM Reachability Metadata seems very special that we shouldn't commit metadata to Oracle's Git repository. It's metadata looks like what is mentioned in Update Groovy version to fix the problem about IndyInterface #18175 and Can't build Groovy Application graalvm/native-build-tools#324 (comment) dynamically.
Working on a fix for Apache Calcite, due to [CALCITE-4882] Introduce new Lambda-based Metadata framework calcite#2603 being closed, may need to be introduced in a unique way https://twitter.com/intjesus/status/1567276748257259520?s=20&t=nUlN7LI8e9_2KO9lPwCqaw, Implement Calcite native library that parses sql and returns a binary substrait representation substrait-io/substrait#21 and a component of https://github.com/substrait-io/substrait-java/tree/main/isthmus . This allowed us to finally get rid of https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/util/javac/JaninoCompiler.java like this, Janino related classes .
The PRs involved in this issue are as follows:
distribution/proxy-native#21657com.github.luben:zstd-jni:1.5.2-5oracle/graalvm-reachability-metadata#121java.sql.Datein IntervalShardingAlgorithm #22495com.google.protobuf:protobuf-java-util:3.21.12oracle/graalvm-reachability-metadata#167org.opengauss:opengauss-jdbc:3.1.0-ogoracle/graalvm-reachability-metadata#168com.hazelcast:hazelcast:5.2.1oracle/graalvm-reachability-metadata#169io.etcd:jetcd-core:0.7.5oracle/graalvm-reachability-metadata#170user-code-filter.jsonfor unit tests oforg.opengauss:opengauss-jdbcoracle/graalvm-reachability-metadata#174javax.cache:cache-api:1.1.1oracle/graalvm-reachability-metadata#176com.github.ben-manes.caffeine:caffeine:3.1.2oracle/graalvm-reachability-metadata#193OutOfMemoryErrorunique to building GraalVM Native Image on Github Actions devices #28213shardingsphere-infra-exprto expose the use of Row Value Expressions SPI #28340org.apache.commons:commons-dbcp2:2.9.0oracle/graalvm-reachability-metadata#380com.github.ben-manes.caffeine:caffeine:2.9.3oracle/graalvm-reachability-metadata#388org.junit.jupiter.api.condition.EnabledOnOsin NativeTest graalvm/native-build-tools#504org.apache.shardingsphere.elasticjob:elasticjob-lite-core:3.0.3oracle/graalvm-reachability-metadata#390infra-expr-espressomodule related GraalVM CE version to 23.1.1 #28609infra-expr-espressomodule #28610plexus-xmlandplexus-utilsgraalvm/native-build-tools#484org.junit.jupiter.api.condition.EnabledOnOsin NativeTest graalvm/native-build-tools#504resource:/related FileSystem for JDBCRepositorySQLLoader in the GraalVM Native Image environment #29009com.sun.xml.bind:jaxb-impltoorg.glassfish.jaxb:jaxb-runtime#29013Path#toFilein GraalVM Native Image #29014