From e72940e503c05e79faf6bb922d6aec463690511c Mon Sep 17 00:00:00 2001 From: Valentin Delaye Date: Tue, 25 Aug 2026 08:50:26 +0200 Subject: [PATCH] Shorten FQDN types and enforce it with spotless 'shortenFullyQualifiedTypes' --- pom.xml | 1 + src/main/java/land/oras/Registry.java | 3 ++- src/main/java/land/oras/auth/HttpClient.java | 9 ++++++--- src/main/java/land/oras/policy/SigstoreVerifier.java | 3 ++- src/test/java/land/oras/RegistryMirrorTest.java | 4 ++-- src/test/java/land/oras/RegistryWireMockTest.java | 4 ++-- src/test/java/land/oras/auth/RegistryConfTest.java | 3 ++- .../java/land/oras/policy/SigstoreVerifierTest.java | 4 ++-- src/test/java/land/oras/utils/ArchiveUtilsTest.java | 10 ++++++---- 9 files changed, 25 insertions(+), 16 deletions(-) diff --git a/pom.xml b/pom.xml index 46e4cbc7..ed0fa2ea 100644 --- a/pom.xml +++ b/pom.xml @@ -610,6 +610,7 @@ ${palantir.java.format.version} + diff --git a/src/main/java/land/oras/Registry.java b/src/main/java/land/oras/Registry.java index 376b617c..3b97c637 100644 --- a/src/main/java/land/oras/Registry.java +++ b/src/main/java/land/oras/Registry.java @@ -22,6 +22,7 @@ import io.micrometer.core.instrument.MeterRegistry; import io.micrometer.core.instrument.simple.SimpleMeterRegistry; +import java.io.ByteArrayInputStream; import java.io.FilterInputStream; import java.io.IOException; import java.io.InputStream; @@ -1176,7 +1177,7 @@ private String uploadChunks(ContainerRef ref, InputStream stream, long totalSize Const.APPLICATION_OCTET_STREAM_HEADER_VALUE, Const.CONTENT_RANGE_HEADER, contentRange), - () -> new java.io.ByteArrayInputStream(chunk), + () -> new ByteArrayInputStream(chunk), Scopes.of(ref), authProvider); logResponse(patchResponse); diff --git a/src/main/java/land/oras/auth/HttpClient.java b/src/main/java/land/oras/auth/HttpClient.java index b3f10cab..278b0bb8 100644 --- a/src/main/java/land/oras/auth/HttpClient.java +++ b/src/main/java/land/oras/auth/HttpClient.java @@ -26,8 +26,11 @@ import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.FileNotFoundException; +import java.io.IOException; import java.io.InputStream; import java.net.*; +import java.net.http.HttpClient; +import java.net.http.HttpClient.Builder; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.http.HttpTimeoutException; @@ -87,12 +90,12 @@ public final class HttpClient { /** * The HTTP client builder */ - private final java.net.http.HttpClient.Builder builder; + private final Builder builder; /** * The HTTP client */ - private java.net.http.HttpClient client; + private HttpClient client; /** * Skip TLS verification @@ -834,7 +837,7 @@ private static boolean isRetryableStatus(int statusCode) { } private static boolean isRetryableException(Exception e) { - return e instanceof HttpTimeoutException || e instanceof java.io.IOException; + return e instanceof HttpTimeoutException || e instanceof IOException; } private long computeRetryDelay(@Nullable HttpResponse response, int attempt) { diff --git a/src/main/java/land/oras/policy/SigstoreVerifier.java b/src/main/java/land/oras/policy/SigstoreVerifier.java index a38b6017..18fd47a4 100644 --- a/src/main/java/land/oras/policy/SigstoreVerifier.java +++ b/src/main/java/land/oras/policy/SigstoreVerifier.java @@ -30,6 +30,7 @@ import java.security.PublicKey; import java.security.Signature; import java.security.spec.X509EncodedKeySpec; +import java.util.ArrayList; import java.util.Base64; import java.util.List; import java.util.Map; @@ -287,7 +288,7 @@ static byte[] preAuthEncoding(String payloadType, byte[] payload) { * @return a non-null (possibly empty) list of successfully loaded public keys. */ static List loadKeys(PolicyRequirement.SigstoreSigned requirement) { - java.util.List keys = new java.util.ArrayList<>(); + List keys = new ArrayList<>(); // Single-key fields PublicKey single = loadKey(requirement); diff --git a/src/test/java/land/oras/RegistryMirrorTest.java b/src/test/java/land/oras/RegistryMirrorTest.java index 2d1f8e55..41e84eb4 100644 --- a/src/test/java/land/oras/RegistryMirrorTest.java +++ b/src/test/java/land/oras/RegistryMirrorTest.java @@ -385,7 +385,7 @@ void shouldSkipDigestOnlyMirrorWhenPullingByTag(@TempDir Path blobDir) throws Ex // Pull by tag: digest-only mirror is skipped; fallback to "original" (also down) → must fail ContainerRef ref = ContainerRef.parse("localhost:59998/test/digest-only-mirror:v1"); assertThrows( - land.oras.exception.OrasException.class, + OrasException.class, () -> registry.getManifest(ref), "digest-only mirror must be skipped for a tag-based pull"); }); @@ -468,7 +468,7 @@ void shouldApplyMirrorByDigestOnly(@TempDir Path blobDir) throws Exception { // Tag pull, mirror-by-digest-only skips all mirrors. Fail with original down ContainerRef tagRef = ContainerRef.parse("localhost:59998/test/mbd-mirror:v1"); assertThrows( - land.oras.exception.OrasException.class, + OrasException.class, () -> registry.getManifest(tagRef), "mirror-by-digest-only must skip mirrors for tag-based pulls"); diff --git a/src/test/java/land/oras/RegistryWireMockTest.java b/src/test/java/land/oras/RegistryWireMockTest.java index f114a47d..6d380cf1 100644 --- a/src/test/java/land/oras/RegistryWireMockTest.java +++ b/src/test/java/land/oras/RegistryWireMockTest.java @@ -39,6 +39,7 @@ import io.micrometer.core.instrument.Counter; import io.micrometer.core.instrument.Metrics; import io.micrometer.core.instrument.simple.SimpleMeterRegistry; +import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URI; @@ -1517,8 +1518,7 @@ void shouldFailChunkedUploadWhenInitiationReturnsNon202(WireMockRuntimeInfo wmRu OrasException exStream = assertThrows( OrasException.class, - () -> registry.pushBlobChunked( - refStream, new java.io.ByteArrayInputStream(content), content.length, 4L)); + () -> registry.pushBlobChunked(refStream, new ByteArrayInputStream(content), content.length, 4L)); assertEquals( "Failed to initiate chunked blob upload: status 500", exStream.getMessage(), diff --git a/src/test/java/land/oras/auth/RegistryConfTest.java b/src/test/java/land/oras/auth/RegistryConfTest.java index 12997250..de64bfb0 100644 --- a/src/test/java/land/oras/auth/RegistryConfTest.java +++ b/src/test/java/land/oras/auth/RegistryConfTest.java @@ -26,6 +26,7 @@ import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; @@ -520,7 +521,7 @@ private Path writeTempToml(String content) { temp.toFile().deleteOnExit(); Files.writeString(temp, content); return temp; - } catch (java.io.IOException e) { + } catch (IOException e) { throw new RuntimeException(e); } } diff --git a/src/test/java/land/oras/policy/SigstoreVerifierTest.java b/src/test/java/land/oras/policy/SigstoreVerifierTest.java index 21cb200b..5f93c85f 100644 --- a/src/test/java/land/oras/policy/SigstoreVerifierTest.java +++ b/src/test/java/land/oras/policy/SigstoreVerifierTest.java @@ -142,13 +142,13 @@ void loadsKeysFromKeyPathsAndKeyDatas(@TempDir Path dir) throws Exception { // keyPaths list PolicyRequirement.SigstoreSigned fromPaths = new PolicyRequirement.SigstoreSigned( null, null, List.of(keyFile1.toString(), keyFile2.toString()), null); - List loadedFromPaths = SigstoreVerifier.loadKeys(fromPaths); + List loadedFromPaths = SigstoreVerifier.loadKeys(fromPaths); assertEquals(2, loadedFromPaths.size()); // keyDatas list PolicyRequirement.SigstoreSigned fromDatas = new PolicyRequirement.SigstoreSigned(null, null, null, List.of(keyData1, keyData2)); - List loadedFromDatas = SigstoreVerifier.loadKeys(fromDatas); + List loadedFromDatas = SigstoreVerifier.loadKeys(fromDatas); assertEquals(2, loadedFromDatas.size()); } diff --git a/src/test/java/land/oras/utils/ArchiveUtilsTest.java b/src/test/java/land/oras/utils/ArchiveUtilsTest.java index d128a524..ed08b718 100644 --- a/src/test/java/land/oras/utils/ArchiveUtilsTest.java +++ b/src/test/java/land/oras/utils/ArchiveUtilsTest.java @@ -30,6 +30,8 @@ import java.nio.file.Paths; import java.nio.file.attribute.PosixFilePermission; import java.util.Set; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; import land.oras.LocalPath; import land.oras.exception.OrasException; import org.apache.commons.compress.archivers.tar.TarArchiveEntry; @@ -410,8 +412,8 @@ void shouldUnzipOverwriteExistingFiles(@TempDir Path tmp) throws IOException { byte[] secondContent = "second-overwritten".getBytes(); Path zip1 = tmp.resolve("first.zip"); - try (java.util.zip.ZipOutputStream zout = new java.util.zip.ZipOutputStream(Files.newOutputStream(zip1))) { - zout.putNextEntry(new java.util.zip.ZipEntry("file.txt")); + try (ZipOutputStream zout = new ZipOutputStream(Files.newOutputStream(zip1))) { + zout.putNextEntry(new ZipEntry("file.txt")); zout.write(firstContent); zout.closeEntry(); } @@ -419,8 +421,8 @@ void shouldUnzipOverwriteExistingFiles(@TempDir Path tmp) throws IOException { assertEquals("first", Files.readString(target.resolve("file.txt"))); Path zip2 = tmp.resolve("second.zip"); - try (java.util.zip.ZipOutputStream zout = new java.util.zip.ZipOutputStream(Files.newOutputStream(zip2))) { - zout.putNextEntry(new java.util.zip.ZipEntry("file.txt")); + try (ZipOutputStream zout = new ZipOutputStream(Files.newOutputStream(zip2))) { + zout.putNextEntry(new ZipEntry("file.txt")); zout.write(secondContent); zout.closeEntry(); }