🚧 Bugfixes

This commit is contained in:
Andreas Dinauer 2026-04-19 17:59:23 +02:00
parent d604ca1601
commit c9af6f75be
13 changed files with 40 additions and 38 deletions

View File

@ -23,8 +23,7 @@ public class Jar
private String url; private String url;
@Column(name = "file_base") private String filename;
private String fileBase;
@ManyToOne @ManyToOne
@JoinColumn(name = "version_id") @JoinColumn(name = "version_id")
@ -97,14 +96,14 @@ public class Jar
return this; return this;
} }
public String getFileBase() public String getFilename()
{ {
return fileBase; return filename;
} }
public Jar setFileBase(String filename) public Jar setFilename(String filename)
{ {
this.fileBase = filename; this.filename = filename;
return this; return this;
} }
} }

View File

@ -23,8 +23,7 @@ public class Pom
private String url; private String url;
@Column(name = "file_base") private String filename;
private String fileBase;
@OneToOne @OneToOne
@JoinColumn(name = "version_id") @JoinColumn(name = "version_id")
@ -97,14 +96,14 @@ public class Pom
return this; return this;
} }
public String getFileBase() public String getFilename()
{ {
return fileBase; return filename;
} }
public Pom setFileBase(String fileBase) public Pom setFilename(String filename)
{ {
this.fileBase = fileBase; this.filename = filename;
return this; return this;
} }
} }

View File

@ -177,11 +177,11 @@ public class Version
pullCount = pullCount + 1; pullCount = pullCount + 1;
} }
public Optional<Jar> getJarByFileBase(String fileBase) public Optional<Jar> getJarByFilename(String filename)
{ {
for (Jar jar : jars) for (Jar jar : jars)
{ {
if (jar.getFileBase().equals(fileBase)) if (jar.getFilename().equals(filename))
{ {
return Optional.of(jar); return Optional.of(jar);
} }

View File

@ -25,7 +25,7 @@ public class JarService
Version version = versionService.findOrCreate(mavenContext.groupId(), mavenContext.artifactId(), mavenContext.version().getRaw()); Version version = versionService.findOrCreate(mavenContext.groupId(), mavenContext.artifactId(), mavenContext.version().getRaw());
if (!existsJar(version.getJars(), mavenContext.file().getBase())) if (!existsJar(version.getJars(), mavenContext.file().getBase()))
{ {
version.getJars().add(new Jar().setJar(body).setMd5(md5).setSha1(sha1).setVersion(version).setUrl(mavenContext.path()).setFileBase(mavenContext.file().getBase())); version.getJars().add(new Jar().setJar(body).setMd5(md5).setSha1(sha1).setVersion(version).setUrl(mavenContext.path()).setFilename(mavenContext.file().getFilename()));
versionService.persist(version); versionService.persist(version);
return Response.status(Response.Status.CREATED).build(); return Response.status(Response.Status.CREATED).build();
} }
@ -55,14 +55,14 @@ public class JarService
private Jar findJar(MavenContext context) private Jar findJar(MavenContext context)
{ {
return versionService.findOptional(context.groupId(), context.artifactId(), context.version().getRaw()).orElseThrow().getJarByFileBase(context.file().getBase()).orElseThrow(); return versionService.findOptional(context.groupId(), context.artifactId(), context.version().getRaw()).orElseThrow().getJarByFilename(context.file().getBase()).orElseThrow();
} }
private boolean existsJar(List<Jar> jars, String fileBase) private boolean existsJar(List<Jar> jars, String fileBase)
{ {
for (Jar jar : jars) for (Jar jar : jars)
{ {
if (fileBase.equals(jar.getFileBase())) if (fileBase.equals(jar.getFilename()))
{ {
return true; return true;
} }

View File

@ -31,7 +31,7 @@ public class PomService
version.setUploadedBy(securityIdentity.getPrincipal().getName()); version.setUploadedBy(securityIdentity.getPrincipal().getName());
if (version.getPom() == null) if (version.getPom() == null)
{ {
version.setPom(new Pom().setPom(new String(body)).setMd5(md5).setSha1(sha1).setVersion(version).setUrl(mavenContext.path()).setFileBase(mavenContext.file().getBase())); version.setPom(new Pom().setPom(new String(body)).setMd5(md5).setSha1(sha1).setVersion(version).setUrl(mavenContext.path()).setFilename(mavenContext.file().getFilename()));
versionService.persist(version); versionService.persist(version);
return Response.status(Response.Status.CREATED).build(); return Response.status(Response.Status.CREATED).build();
} }

View File

@ -59,6 +59,10 @@ public class Service
} }
case POM -> case POM ->
{ {
if (mavenContext.version().getSnapshot())
{
throw new WebApplicationException(501);
}
if (FileHash.NONE.equals(mavenContext.file().getHash())) if (FileHash.NONE.equals(mavenContext.file().getHash()))
{ {
return pomService.store(mavenContext, body); return pomService.store(mavenContext, body);

View File

@ -16,7 +16,7 @@ public class ExtensionParser
String firstLevelBase = Strings.CI.removeEnd(raw, String.format(".%s", firstLevelExtension)); String firstLevelBase = Strings.CI.removeEnd(raw, String.format(".%s", firstLevelExtension));
if (FILE_TYPES.contains(firstLevelExtension)) if (FILE_TYPES.contains(firstLevelExtension))
{ {
return new Result(firstLevelBase, FileType.valueOf(firstLevelExtension.toUpperCase()), null); return new Result(firstLevelBase, FileExt.valueOf(firstLevelExtension.toUpperCase()), null);
} }
if (FILE_HASHES.contains(firstLevelExtension)) if (FILE_HASHES.contains(firstLevelExtension))
{ {
@ -24,13 +24,13 @@ public class ExtensionParser
if (FILE_TYPES.contains(secondLevelExtension)) if (FILE_TYPES.contains(secondLevelExtension))
{ {
String secondLevelBase = Strings.CI.removeEnd(firstLevelBase, String.format(".%s", secondLevelExtension)); String secondLevelBase = Strings.CI.removeEnd(firstLevelBase, String.format(".%s", secondLevelExtension));
return new Result(secondLevelBase, FileType.valueOf(secondLevelExtension.toUpperCase()), FileHash.valueOf(firstLevelExtension.toUpperCase())); return new Result(secondLevelBase, FileExt.valueOf(secondLevelExtension.toUpperCase()), FileHash.valueOf(firstLevelExtension.toUpperCase()));
} }
} }
throw new RuntimeException(); throw new RuntimeException();
} }
public record Result(String base, FileType ext, FileHash hashExt) public record Result(String base, FileExt ext, FileHash hashExt)
{ {
} }
} }

View File

@ -1,17 +1,12 @@
package dev.dinauer.maven.maven.core.model; package dev.dinauer.maven.maven.core.model;
import jakarta.ws.rs.BadRequestException;
import org.apache.commons.io.FilenameUtils;
import java.util.List;
public class File public class File
{ {
private String artifactId; private String artifactId;
private String version; private String version;
private String raw; private String raw;
private String base; private String base;
private FileType type; private FileExt type;
private FileHash hash; private FileHash hash;
public String getRaw() public String getRaw()
@ -36,12 +31,12 @@ public class File
return this; return this;
} }
public FileType getType() public FileExt getType()
{ {
return type; return type;
} }
public File setType(FileType type) public File setType(FileExt type)
{ {
this.type = type; this.type = type;
return this; return this;
@ -79,4 +74,9 @@ public class File
this.version = version; this.version = version;
return this; return this;
} }
public String getFilename()
{
return base + "." + type.toString().toLowerCase();
}
} }

View File

@ -1,6 +1,6 @@
package dev.dinauer.maven.maven.core.model; package dev.dinauer.maven.maven.core.model;
public enum FileType public enum FileExt
{ {
JAR, POM, XML JAR, POM, XML
} }

View File

@ -17,7 +17,7 @@ public class FileParser
String base = FilenameUtils.getBaseName(raw); String base = FilenameUtils.getBaseName(raw);
if (FILE_TYPES.contains(extension.toLowerCase())) if (FILE_TYPES.contains(extension.toLowerCase()))
{ {
file.setType(FileType.valueOf(extension.toUpperCase())); file.setType(FileExt.valueOf(extension.toUpperCase()));
file.setBase(base); file.setBase(base);
file.setHash(FileHash.NONE); file.setHash(FileHash.NONE);
return file; return file;
@ -29,7 +29,7 @@ public class FileParser
String secondaryBase = FilenameUtils.getBaseName(base); String secondaryBase = FilenameUtils.getBaseName(base);
if (FILE_TYPES.contains(secondaryExtension.toLowerCase())) if (FILE_TYPES.contains(secondaryExtension.toLowerCase()))
{ {
file.setType(FileType.valueOf(secondaryExtension.toUpperCase())); file.setType(FileExt.valueOf(secondaryExtension.toUpperCase()));
file.setBase(secondaryBase); file.setBase(secondaryBase);
return file; return file;
} }

View File

@ -72,7 +72,7 @@ create table version
create table jar create table jar
( (
file_base varchar(255), filename varchar(255),
id varchar(255) not null id varchar(255) not null
primary key, primary key,
md5 varchar(255), md5 varchar(255),
@ -86,7 +86,7 @@ create table jar
create table pom create table pom
( (
file_base varchar(255), filename varchar(255),
id varchar(255) not null id varchar(255) not null
primary key, primary key,
md5 varchar(255), md5 varchar(255),

View File

@ -13,7 +13,7 @@ public class ExtensionParserTest
ExtensionParser.Result result = ExtensionParser.parse(filename); ExtensionParser.Result result = ExtensionParser.parse(filename);
Assertions.assertEquals("test", result.base()); Assertions.assertEquals("test", result.base());
Assertions.assertEquals(FileType.JAR, result.ext()); Assertions.assertEquals(FileExt.JAR, result.ext());
Assertions.assertEquals(FileHash.MD5, result.hashExt()); Assertions.assertEquals(FileHash.MD5, result.hashExt());
} }
@ -25,7 +25,7 @@ public class ExtensionParserTest
ExtensionParser.Result result = ExtensionParser.parse(filename); ExtensionParser.Result result = ExtensionParser.parse(filename);
Assertions.assertEquals("test", result.base()); Assertions.assertEquals("test", result.base());
Assertions.assertEquals(FileType.POM, result.ext()); Assertions.assertEquals(FileExt.POM, result.ext());
Assertions.assertEquals(FileHash.SHA1, result.hashExt()); Assertions.assertEquals(FileHash.SHA1, result.hashExt());
} }
@ -37,7 +37,7 @@ public class ExtensionParserTest
ExtensionParser.Result result = ExtensionParser.parse(filename); ExtensionParser.Result result = ExtensionParser.parse(filename);
Assertions.assertEquals("test", result.base()); Assertions.assertEquals("test", result.base());
Assertions.assertEquals(FileType.JAR, result.ext()); Assertions.assertEquals(FileExt.JAR, result.ext());
Assertions.assertNull(result.hashExt()); Assertions.assertNull(result.hashExt());
} }
} }

View File

@ -15,7 +15,7 @@ public class SnapshotFileParserTest
Assertions.assertEquals("20240315", file.getDate()); Assertions.assertEquals("20240315", file.getDate());
Assertions.assertEquals("142307", file.getTime()); Assertions.assertEquals("142307", file.getTime());
Assertions.assertEquals(3, file.getBuildNumber()); Assertions.assertEquals(3, file.getBuildNumber());
Assertions.assertEquals(FileType.JAR, file.getType()); Assertions.assertEquals(FileExt.JAR, file.getType());
Assertions.assertEquals(FileHash.MD5, file.getHash()); Assertions.assertEquals(FileHash.MD5, file.getHash());
} }
} }