This is an automated email from the ASF dual-hosted git repository. tison pushed a commit to branch java in repository https://gitbox.apache.org/repos/asf/opendal.git
commit 9450e0abe279b86ff5b3e9a21fc0ec35a5571052 Author: tison <[email protected]> AuthorDate: Sun Feb 22 14:31:28 2026 +0800 chore: binding java's dependency Signed-off-by: tison <[email protected]> --- .github/workflows/ci_bindings_java.yml | 13 +++-- .github/workflows/release_java.yml | 1 - bindings/java/Cargo.toml | 94 ++++++---------------------------- bindings/java/pom.xml | 31 +++++------ bindings/java/src/utility.rs | 74 -------------------------- 5 files changed, 42 insertions(+), 171 deletions(-) diff --git a/.github/workflows/ci_bindings_java.yml b/.github/workflows/ci_bindings_java.yml index 682fd892e..e7bb98f70 100644 --- a/.github/workflows/ci_bindings_java.yml +++ b/.github/workflows/ci_bindings_java.yml @@ -46,17 +46,16 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - - name: Set up JDK 21 + - name: Set up JDK 25 uses: actions/setup-java@v5 with: distribution: 'zulu' - java-version: '21' + java-version: '25' cache: 'maven' - name: Build and check working-directory: bindings/java run: | ./mvnw clean compile spotless:check - - name: Check Clippy working-directory: bindings/java run: cargo clippy -- -D warnings @@ -70,13 +69,19 @@ jobs: - ubuntu-24.04-arm - macos-latest - windows-latest + java-version: + - 8 + - 11 + - 17 + - 21 + - 25 steps: - uses: actions/checkout@v6 - name: Set up JDK 8 uses: actions/setup-java@v5 with: distribution: 'zulu' - java-version: '8' + java-version: ${{ matrix.java-version }} cache: 'maven' - name: Build and test working-directory: bindings/java diff --git a/.github/workflows/release_java.yml b/.github/workflows/release_java.yml index 7f1749330..7b6b58c30 100644 --- a/.github/workflows/release_java.yml +++ b/.github/workflows/release_java.yml @@ -84,7 +84,6 @@ jobs: -DskipTests=true \ -Djni.classifier=${{ matrix.classifier }} \ -Dcargo-build.profile=release \ - -Dcargo-build.features=services-all \ -Dcargo-build.enableZigbuild=${{ env.CARGO_BUILD_ENABLE_ZIGBUILD }} \ -DaltStagingDirectory=local-staging \ -DskipRemoteStaging=true \ diff --git a/bindings/java/Cargo.toml b/bindings/java/Cargo.toml index 64b0fb877..684ba2251 100644 --- a/bindings/java/Cargo.toml +++ b/bindings/java/Cargo.toml @@ -30,8 +30,21 @@ rust-version = "1.85" crate-type = ["cdylib"] doc = false -[features] -default = [ +[dependencies] +jni = { version = "0.21.1" } +# opendal-java won't be published to crates.io, we always use the local version +opendal = { version = ">=0", path = "../../core", default-features = false, features = [ + "blocking", + "reqwest-rustls-tls", + "executors-tokio", + + # enabled layers + "layers-concurrent-limit", + "layers-logging", + "layers-retry", + "layers-timeout", + + # enabled services "services-azblob", "services-azdls", "services-cos", @@ -46,10 +59,6 @@ default = [ "services-s3", "services-webdav", "services-webhdfs", -] - -services-all = [ - "default", "services-aliyun-drive", "services-cacache", "services-dashmap", @@ -90,77 +99,8 @@ services-all = [ "services-seafile", "services-upyun", "services-yandex-disk", -] - -# Optional services provided by opendal. -services-aliyun-drive = ["opendal/services-aliyun-drive"] -services-alluxio = ["opendal/services-alluxio"] -services-azblob = ["opendal/services-azblob"] -services-azdls = ["opendal/services-azdls"] -services-azfile = ["opendal/services-azfile"] -services-b2 = ["opendal/services-b2"] -services-cacache = ["opendal/services-cacache"] -services-cloudflare-kv = ["opendal/services-cloudflare-kv"] -services-compfs = ["opendal/services-compfs"] -services-cos = ["opendal/services-cos"] -services-dashmap = ["opendal/services-dashmap"] -services-dbfs = ["opendal/services-dbfs"] -services-dropbox = ["opendal/services-dropbox"] -services-etcd = ["opendal/services-etcd"] -services-foundationdb = ["opendal/services-foundationdb"] -services-fs = ["opendal/services-fs"] -services-ftp = ["opendal/services-ftp"] -services-gcs = ["opendal/services-gcs"] -services-gdrive = ["opendal/services-gdrive"] -services-ghac = ["opendal/services-ghac"] -services-github = ["opendal/services-github"] -services-gridfs = ["opendal/services-gridfs"] -services-hdfs = ["opendal/services-hdfs"] -services-hdfs-native = ["opendal/services-hdfs-native"] -services-hf = ["opendal/services-hf"] -services-http = ["opendal/services-http"] -services-huggingface = ["services-hf"] -services-ipfs = ["opendal/services-ipfs"] -services-ipmfs = ["opendal/services-ipmfs"] -services-koofr = ["opendal/services-koofr"] -services-lakefs = ["opendal/services-lakefs"] -services-memcached = ["opendal/services-memcached"] -services-memory = ["opendal/services-memory"] -services-mini-moka = ["opendal/services-mini-moka"] -services-moka = ["opendal/services-moka"] -services-mongodb = ["opendal/services-mongodb"] -services-monoiofs = ["opendal/services-monoiofs"] -services-mysql = ["opendal/services-mysql"] -services-obs = ["opendal/services-obs"] -services-onedrive = ["opendal/services-onedrive"] -services-oss = ["opendal/services-oss"] -services-pcloud = ["opendal/services-pcloud"] -services-persy = ["opendal/services-persy"] -services-postgresql = ["opendal/services-postgresql"] -services-redb = ["opendal/services-redb"] -services-redis = ["opendal/services-redis"] -services-rocksdb = ["opendal/services-rocksdb"] -services-s3 = ["opendal/services-s3"] -services-seafile = ["opendal/services-seafile"] -services-sftp = ["opendal/services-sftp"] -services-sled = ["opendal/services-sled"] -services-sqlite = ["opendal/services-sqlite"] -services-surrealdb = ["opendal/services-surrealdb"] -services-swift = ["opendal/services-swift"] -services-tikv = ["opendal/services-tikv"] -services-upyun = ["opendal/services-upyun"] -services-vercel-artifacts = ["opendal/services-vercel-artifacts"] -services-vercel-blob = ["opendal/services-vercel-blob"] -services-webdav = ["opendal/services-webdav"] -services-webhdfs = ["opendal/services-webhdfs"] -services-yandex-disk = ["opendal/services-yandex-disk"] - -[dependencies] -anyhow = { version = "1.0.100" } -jni = { version = "0.21.1" } -# this crate won't be published, we always use the local version -opendal = { version = ">=0", path = "../../core", features = ["blocking"] } -tokio = { version = "1.28.1", features = ["full"] } +] } +tokio = { version = "1.49.0", features = ["full"] } # This is not optimal. See also the Cargo issue: # https://github.com/rust-lang/cargo/issues/1197#issuecomment-1641086954 diff --git a/bindings/java/pom.xml b/bindings/java/pom.xml index cb8b71be7..8883daf85 100644 --- a/bindings/java/pom.xml +++ b/bindings/java/pom.xml @@ -66,21 +66,22 @@ <jni.classifier>${os.detected.classifier}</jni.classifier> <!-- library dependencies --> - <assertj.version>3.23.1</assertj.version> - <commons-io.version>2.16.1</commons-io.version> - <dotenv.version>2.3.2</dotenv.version> - <lombok.version>1.18.34</lombok.version> - <slf4j.version>2.0.7</slf4j.version> - <httpclient.version>5.2</httpclient.version> + <assertj.version>3.27.7</assertj.version> + <commons-io.version>2.21.0</commons-io.version> + <dotenv.version>3.2.0</dotenv.version> + <httpclient.version>5.6</httpclient.version> + <junit.version>5.10.0</junit.version> + <lombok.version>1.18.42</lombok.version> + <slf4j.version>2.0.17</slf4j.version> <!-- plugins dependencies --> - <maven-surefire-plugin.version>3.1.2</maven-surefire-plugin.version> - <maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version> - <exec-maven-plugin.version>3.1.0</exec-maven-plugin.version> - <os-maven-plugin.version>1.7.0</os-maven-plugin.version> - <palantir-java-format.version>2.36.0</palantir-java-format.version> - <spotless.version>2.39.0</spotless.version> - <maven-javadoc-plugin.version>3.6.3</maven-javadoc-plugin.version> + <maven-surefire-plugin.version>3.5.5</maven-surefire-plugin.version> + <maven-compiler-plugin.version>3.15.0</maven-compiler-plugin.version> + <exec-maven-plugin.version>3.6.3</exec-maven-plugin.version> + <os-maven-plugin.version>1.7.1</os-maven-plugin.version> + <palantir-java-format.version>2.81.0</palantir-java-format.version> + <spotless.version>3.2.0</spotless.version> + <maven-javadoc-plugin.version>3.12.0</maven-javadoc-plugin.version> </properties> <dependencyManagement> @@ -88,7 +89,7 @@ <dependency> <groupId>org.junit</groupId> <artifactId>junit-bom</artifactId> - <version>5.9.2</version> + <version>${junit.version}</version> <type>pom</type> <scope>import</scope> </dependency> @@ -298,7 +299,7 @@ <version>${maven-javadoc-plugin.version}</version> <configuration> <bottom> - Copyright © 2022-2024, The Apache Software Foundation. Apache OpenDAL, OpenDAL, and Apache + Copyright © 2022-2026, The Apache Software Foundation. Apache OpenDAL, OpenDAL, and Apache are either registered trademarks or trademarks of the Apache Software Foundation. </bottom> </configuration> diff --git a/bindings/java/src/utility.rs b/bindings/java/src/utility.rs index c61a876ab..1388d75fa 100644 --- a/bindings/java/src/utility.rs +++ b/bindings/java/src/utility.rs @@ -42,125 +42,51 @@ pub unsafe extern "system" fn Java_org_apache_opendal_OpenDAL_loadEnabledService fn intern_load_enabled_services(env: &mut JNIEnv) -> Result<jobjectArray> { let services = HashSet::from([ - #[cfg(feature = "services-aliyun-drive")] opendal::services::ALIYUN_DRIVE_SCHEME, - #[cfg(feature = "services-alluxio")] opendal::services::ALLUXIO_SCHEME, - #[cfg(feature = "services-azblob")] opendal::services::AZBLOB_SCHEME, - #[cfg(feature = "services-azdls")] opendal::services::AZDLS_SCHEME, - #[cfg(feature = "services-azfile")] opendal::services::AZFILE_SCHEME, - #[cfg(feature = "services-b2")] opendal::services::B2_SCHEME, - #[cfg(feature = "services-cacache")] opendal::services::CACACHE_SCHEME, - #[cfg(feature = "services-cloudflare-kv")] - opendal::services::CLOUDFLARE_KV_SCHEME, - #[cfg(feature = "services-compfs")] - opendal::services::COMPFS_SCHEME, - #[cfg(feature = "services-cos")] opendal::services::COS_SCHEME, - #[cfg(feature = "services-dashmap")] opendal::services::DASHMAP_SCHEME, - #[cfg(feature = "services-dbfs")] - opendal::services::DBFS_SCHEME, - #[cfg(feature = "services-dropbox")] opendal::services::DROPBOX_SCHEME, - #[cfg(feature = "services-etcd")] opendal::services::ETCD_SCHEME, - #[cfg(feature = "services-foundationdb")] - opendal::services::FOUNDATIONDB_SCHEME, - #[cfg(feature = "services-fs")] opendal::services::FS_SCHEME, - #[cfg(feature = "services-ftp")] - opendal::services::FTP_SCHEME, - #[cfg(feature = "services-gcs")] opendal::services::GCS_SCHEME, - #[cfg(feature = "services-gdrive")] opendal::services::GDRIVE_SCHEME, - #[cfg(feature = "services-ghac")] opendal::services::GHAC_SCHEME, - #[cfg(feature = "services-github")] - opendal::services::GITHUB_SCHEME, - #[cfg(feature = "services-gridfs")] opendal::services::GRIDFS_SCHEME, - #[cfg(feature = "services-hdfs")] - opendal::services::HDFS_SCHEME, - #[cfg(feature = "services-hdfs-native")] - opendal::services::HDFS_NATIVE_SCHEME, - #[cfg(feature = "services-http")] opendal::services::HTTP_SCHEME, - #[cfg(feature = "services-hf")] opendal::services::HF_SCHEME, - #[cfg(feature = "services-ipfs")] opendal::services::IPFS_SCHEME, - #[cfg(feature = "services-ipmfs")] opendal::services::IPMFS_SCHEME, - #[cfg(feature = "services-koofr")] opendal::services::KOOFR_SCHEME, - #[cfg(feature = "services-lakefs")] - opendal::services::LAKEFS_SCHEME, - #[cfg(feature = "services-memcached")] opendal::services::MEMCACHED_SCHEME, - #[cfg(feature = "services-memory")] opendal::services::MEMORY_SCHEME, - #[cfg(feature = "services-mini-moka")] opendal::services::MINI_MOKA_SCHEME, - #[cfg(feature = "services-moka")] opendal::services::MOKA_SCHEME, - #[cfg(feature = "services-mongodb")] opendal::services::MONGODB_SCHEME, - #[cfg(feature = "services-monoiofs")] - opendal::services::MONOIOFS_SCHEME, - #[cfg(feature = "services-mysql")] opendal::services::MYSQL_SCHEME, - #[cfg(feature = "services-obs")] opendal::services::OBS_SCHEME, - #[cfg(feature = "services-onedrive")] opendal::services::ONEDRIVE_SCHEME, - #[cfg(feature = "services-oss")] opendal::services::OSS_SCHEME, - #[cfg(feature = "services-pcloud")] - opendal::services::PCLOUD_SCHEME, - #[cfg(feature = "services-persy")] opendal::services::PERSY_SCHEME, - #[cfg(feature = "services-postgresql")] opendal::services::POSTGRESQL_SCHEME, - #[cfg(feature = "services-redb")] opendal::services::REDB_SCHEME, - #[cfg(feature = "services-redis")] opendal::services::REDIS_SCHEME, - #[cfg(feature = "services-rocksdb")] - opendal::services::ROCKSDB_SCHEME, - #[cfg(feature = "services-s3")] opendal::services::S3_SCHEME, - #[cfg(feature = "services-seafile")] opendal::services::SEAFILE_SCHEME, - #[cfg(feature = "services-sftp")] opendal::services::SFTP_SCHEME, - #[cfg(feature = "services-sled")] opendal::services::SLED_SCHEME, - #[cfg(feature = "services-sqlite")] opendal::services::SQLITE_SCHEME, - #[cfg(feature = "services-surrealdb")] - opendal::services::SURREALDB_SCHEME, - #[cfg(feature = "services-swift")] opendal::services::SWIFT_SCHEME, - #[cfg(feature = "services-tikv")] opendal::services::TIKV_SCHEME, - #[cfg(feature = "services-upyun")] opendal::services::UPYUN_SCHEME, - #[cfg(feature = "services-vercel-artifacts")] opendal::services::VERCEL_ARTIFACTS_SCHEME, - #[cfg(feature = "services-vercel-blob")] - opendal::services::VERCEL_BLOB_SCHEME, - #[cfg(feature = "services-webdav")] opendal::services::WEBDAV_SCHEME, - #[cfg(feature = "services-webhdfs")] opendal::services::WEBHDFS_SCHEME, - #[cfg(feature = "services-yandex-disk")] opendal::services::YANDEX_DISK_SCHEME, ]);
