✨ Add hashes
This commit is contained in:
parent
818011fc28
commit
40919f532f
@ -23,6 +23,8 @@ import jakarta.ws.rs.BadRequestException;
|
|||||||
import jakarta.ws.rs.core.MediaType;
|
import jakarta.ws.rs.core.MediaType;
|
||||||
import jakarta.ws.rs.core.Response;
|
import jakarta.ws.rs.core.Response;
|
||||||
import org.apache.commons.lang3.NotImplementedException;
|
import org.apache.commons.lang3.NotImplementedException;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@ -30,6 +32,8 @@ import java.util.Objects;
|
|||||||
@ApplicationScoped
|
@ApplicationScoped
|
||||||
public class MavenService
|
public class MavenService
|
||||||
{
|
{
|
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(MavenService.class);
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
ReleaseService releaseService;
|
ReleaseService releaseService;
|
||||||
|
|
||||||
@ -55,12 +59,12 @@ public class MavenService
|
|||||||
}
|
}
|
||||||
if (Objects.equals(FileExt.XML, context.extensions().ext()))
|
if (Objects.equals(FileExt.XML, context.extensions().ext()))
|
||||||
{
|
{
|
||||||
throw new NotImplementedException(); // Hand over to XML metadata service
|
LOG.debug("Ignoring metadata upload for {}. Metadata files are generated by the registry.", path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (context.getClass() == ArtifactContext.class)
|
if (context.getClass() == ArtifactContext.class)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException(); // Hand over to XML Snapshot artifact metadata service
|
LOG.debug("Ignoring metadata upload for {}. Metadata files are generated by the registry.", path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,6 +74,8 @@ public class MavenService
|
|||||||
if (context.getClass() == VersionContext.class)
|
if (context.getClass() == VersionContext.class)
|
||||||
{
|
{
|
||||||
VersionContext versionContext = (VersionContext) context;
|
VersionContext versionContext = (VersionContext) context;
|
||||||
|
if (List.of(FileExt.JAR, FileExt.POM).contains(context.extensions().ext()))
|
||||||
|
{
|
||||||
if (versionContext.isSnapshot())
|
if (versionContext.isSnapshot())
|
||||||
{
|
{
|
||||||
return snapshotService.serve(toSnapshotContext(versionContext));
|
return snapshotService.serve(toSnapshotContext(versionContext));
|
||||||
@ -79,6 +85,15 @@ public class MavenService
|
|||||||
return releaseService.serve(toReleaseContext(versionContext));
|
return releaseService.serve(toReleaseContext(versionContext));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (Objects.equals(FileExt.XML, context.extensions().ext()))
|
||||||
|
{
|
||||||
|
return Response.status(204).build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (context.getClass() == ArtifactContext.class)
|
||||||
|
{
|
||||||
|
return Response.status(204).build();
|
||||||
|
}
|
||||||
throw new BadRequestException();
|
throw new BadRequestException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -46,13 +46,27 @@ public class ReleaseService
|
|||||||
switch (releaseContext.extensions().ext())
|
switch (releaseContext.extensions().ext())
|
||||||
{
|
{
|
||||||
case JAR ->
|
case JAR ->
|
||||||
|
{
|
||||||
|
if (releaseContext.extensions().hashExt().isEmpty())
|
||||||
{
|
{
|
||||||
return Response.status(200).type(MediaType.APPLICATION_OCTET_STREAM).entity(releaseJarService.find(releaseContext)).build();
|
return Response.status(200).type(MediaType.APPLICATION_OCTET_STREAM).entity(releaseJarService.find(releaseContext)).build();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return Response.status(200).type(MediaType.TEXT_PLAIN).entity(releaseJarService.findHash(releaseContext)).build();
|
||||||
|
}
|
||||||
|
}
|
||||||
case POM ->
|
case POM ->
|
||||||
|
{
|
||||||
|
if (releaseContext.extensions().hashExt().isEmpty())
|
||||||
{
|
{
|
||||||
return Response.status(200).type(MediaType.APPLICATION_XML).entity(releasePomService.find(releaseContext)).build();
|
return Response.status(200).type(MediaType.APPLICATION_XML).entity(releasePomService.find(releaseContext)).build();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return Response.status(200).type(MediaType.TEXT_PLAIN).entity(releasePomService.findHash(releaseContext)).build();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
throw new BadRequestException();
|
throw new BadRequestException();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,13 +39,27 @@ public class SnapshotService
|
|||||||
switch (snapshotContext.extensions().ext())
|
switch (snapshotContext.extensions().ext())
|
||||||
{
|
{
|
||||||
case JAR ->
|
case JAR ->
|
||||||
|
{
|
||||||
|
if (snapshotContext.extensions().hashExt().isEmpty())
|
||||||
{
|
{
|
||||||
return Response.status(200).type(MediaType.APPLICATION_OCTET_STREAM).entity(snapshotJarService.find(snapshotContext)).build();
|
return Response.status(200).type(MediaType.APPLICATION_OCTET_STREAM).entity(snapshotJarService.find(snapshotContext)).build();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return Response.status(200).type(MediaType.TEXT_PLAIN).entity(snapshotJarService.findHash(snapshotContext)).build();
|
||||||
|
}
|
||||||
|
}
|
||||||
case POM ->
|
case POM ->
|
||||||
|
{
|
||||||
|
if (snapshotContext.extensions().hashExt().isEmpty())
|
||||||
{
|
{
|
||||||
return Response.status(200).type(MediaType.APPLICATION_XML).entity(snapshotPomService.find(snapshotContext)).build();
|
return Response.status(200).type(MediaType.APPLICATION_XML).entity(snapshotPomService.find(snapshotContext)).build();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return Response.status(200).type(MediaType.TEXT_PLAIN).entity(snapshotPomService.findHash(snapshotContext)).build();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
throw new BadRequestException();
|
throw new BadRequestException();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import org.flywaydb.core.Flyway;
|
|||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.platform.commons.util.StringUtils;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@ -39,6 +40,12 @@ public class ResourceTest
|
|||||||
String pom = RestAssured.given().get("/maven2/org/postgresql/postgresql/42.7.9-SNAPSHOT/postgresql-42.7.9-20250419.123456-1.pom").body().asString();
|
String pom = RestAssured.given().get("/maven2/org/postgresql/postgresql/42.7.9-SNAPSHOT/postgresql-42.7.9-20250419.123456-1.pom").body().asString();
|
||||||
byte[] jar = RestAssured.given().get("/maven2/org/postgresql/postgresql/42.7.9-SNAPSHOT/postgresql-42.7.9-20250419.123456-1.jar").body().asByteArray();
|
byte[] jar = RestAssured.given().get("/maven2/org/postgresql/postgresql/42.7.9-SNAPSHOT/postgresql-42.7.9-20250419.123456-1.jar").body().asByteArray();
|
||||||
|
|
||||||
|
String jarMd5 = RestAssured.given().get("/maven2/org/postgresql/postgresql/42.7.9-SNAPSHOT/postgresql-42.7.9-20250419.123456-1.jar.md5").body().asString();
|
||||||
|
String pomMd5 = RestAssured.given().get("/maven2/org/postgresql/postgresql/42.7.9-SNAPSHOT/postgresql-42.7.9-20250419.123456-1.pom.md5").body().asString();
|
||||||
|
|
||||||
|
Assertions.assertFalse(StringUtils.isBlank(jarMd5));
|
||||||
|
Assertions.assertFalse(StringUtils.isBlank(pomMd5));
|
||||||
|
|
||||||
Assertions.assertArrayEquals(uploadJar, jar);
|
Assertions.assertArrayEquals(uploadJar, jar);
|
||||||
Assertions.assertEquals(uploadPom, pom);
|
Assertions.assertEquals(uploadPom, pom);
|
||||||
}
|
}
|
||||||
@ -56,6 +63,12 @@ public class ResourceTest
|
|||||||
String pom = RestAssured.given().get("/maven2/org/postgresql/postgresql/42.7.9/postgresql-42.7.9.pom").body().asString();
|
String pom = RestAssured.given().get("/maven2/org/postgresql/postgresql/42.7.9/postgresql-42.7.9.pom").body().asString();
|
||||||
byte[] jar = RestAssured.given().get("/maven2/org/postgresql/postgresql/42.7.9/postgresql-42.7.9.jar").body().asByteArray();
|
byte[] jar = RestAssured.given().get("/maven2/org/postgresql/postgresql/42.7.9/postgresql-42.7.9.jar").body().asByteArray();
|
||||||
|
|
||||||
|
String jarMd5 = RestAssured.given().get("/maven2/org/postgresql/postgresql/42.7.9/postgresql-42.7.9.jar.md5").body().asString();
|
||||||
|
String pomMd5 = RestAssured.given().get("/maven2/org/postgresql/postgresql/42.7.9/postgresql-42.7.9.pom.md5").body().asString();
|
||||||
|
|
||||||
|
Assertions.assertFalse(StringUtils.isBlank(jarMd5));
|
||||||
|
Assertions.assertFalse(StringUtils.isBlank(pomMd5));
|
||||||
|
|
||||||
Assertions.assertArrayEquals(uploadJar, jar);
|
Assertions.assertArrayEquals(uploadJar, jar);
|
||||||
Assertions.assertEquals(uploadPom, pom);
|
Assertions.assertEquals(uploadPom, pom);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user