slachiewicz opened a new pull request, #2290:
URL: https://github.com/apache/maven-resolver/pull/2290

   Step 1 of #2289: a new `maven-resolver-transport-s3` module on the AWS SDK 
for Java 2.x, next to the MinIO one, which is not touched. Once this has 
shipped, #2289 continues with deprecating and then dropping 
`maven-resolver-transport-minio`.
   
   The module is the MinIO transporter ported call for call (`headObject`, 
`getObject`, `putObject`, `close`), with the same object name mappers under 
`org.eclipse.aether.transport.s3`, the same `s3+http(s)` opt-in form and the 
same plaintext refusal. Three things differ because the SDK makes them possible 
or necessary:
   
   - Credentials: repository authentication (username as access key, password 
as secret key) is used when set; without it the SDK default provider chain 
applies, so environment variables, profiles, container and instance roles work 
as they do with any AWS tool. The MinIO transporter refuses to start without 
repository authentication.
   - Region: a new `aether.transport.s3.region` key; unset, the SDK default 
region chain is consulted and `us-east-1` is the fallback, which S3-compatible 
stores accept.
   - Client settings: path-style access, and `requestChecksumCalculation` and 
`responseChecksumValidation` set to `WHEN_REQUIRED`, since SDK 2.30.0 otherwise 
sends CRC32 trailers that MinIO-compatible stores reject 
(aws/aws-sdk-java-v2#5802).
   
   Only `s3` and `url-connection-client` are depended on; the SDK's Apache, 
Apache 5 and Netty HTTP engines are excluded. Runtime closure measured on a 
scratch POM: 8.9 MB in 32 jars, against 21.2 MB in 22 jars for the MinIO client 
(Bouncy Castle, Guava, snappy, Kotlin, Jackson, commons-compress). Both clients 
are Java 8 bytecode.
   
   The factory's default priority is 1.0, above the MinIO factory's 0.0, so an 
`s3+https` repository resolves to this transporter when both modules are 
present; `minio+http(s)` stays with the MinIO module. The deployment page lists 
both rows, and `maven-resolver-tools` picks up the new configuration keys for 
the generated configuration page.
   
   Verified: `mvn -pl maven-resolver-transport-s3 -am -P run-its verify` on JDK 
21 with Docker → BUILD SUCCESS; the integration test runs the same peek, get 
and put cases as the MinIO one against the same container image, plus 
get-to-file and put-from-file.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to