The following services have been removed:
- Chainsafe service has been removed (PR-5744) - The service has been sunset.
- libsql service has been removed (PR-5616) - Dead service removal.
PR-5393 removes the batch concept from OpenDAL. All batch-related operations and capabilities have been removed.
New options classes have been introduced for structured operation configuration:
ReadOptions- for read operationsWriteOptions- for write operationsListOptions- for list operationsStatOptions- for stat operations
Example usage:
// Read with options
ReadOptions options = ReadOptions.builder()
.range(0, 1024)
.ifMatch("etag")
.build();
byte[] data = operator.read("path/to/file", options);
// Write with options
WriteOptions options = WriteOptions.builder()
.contentType("text/plain")
.cacheControl("max-age=3600")
.build();
operator.write("path/to/file", data, options);PR-6169 The append method in AsyncOperator has been deprecated. Please use the write method with WriteOptions.builder().append(true).build() instead.
artifactId of the opendal-java has changed from to opendal to align with the convention of entire OpenDAL project.
<dependencies>
<dependency>
<groupId>org.apache.opendal</groupId>
- <artifactId>opendal-java</artifactId>
+ <artifactId>opendal</artifactId>
<version>${opendal.version}</version>
</dependency>
<dependency>
<groupId>org.apache.opendal</groupId>
- <artifactId>opendal-java</artifactId>
+ <artifactId>opendal</artifactId>
<version>${opendal.version}</version>
<classifier>${os.detected.classifier}</classifier>
</dependency>
</dependencies>PR-4641 renames async Operator to AsyncOperator and BlockingOperator to Operator.
Because of a TLS lib issue, we temporarily disable the services-ftp feature.
PR-3166 changes the API for constructing operators:
Previous:
new BlockingOperator(scheme, config);
new Operator(scheme, config);Current:
BlockingOperator.of(scheme, config);
Operator.of(scheme, config);Now, there is no public constructor for operators, but only factory methods. In this way, the APIs are free to do arbitrary verifications and preparations before constructing operators.