diff --git a/src/BytecodeVersionJarValidatorJP.java b/src/BytecodeVersionJarValidatorJP.java index 89da1d8..7bdb509 100644 --- a/src/BytecodeVersionJarValidatorJP.java +++ b/src/BytecodeVersionJarValidatorJP.java @@ -4,9 +4,11 @@ import java.nio.file.Path; import java.util.Map; import java.util.Set; -import org.fedoraproject.javadeptools.rpm.RpmFile; -import org.fedoraproject.javapackages.validator.Decorated; -import org.fedoraproject.javapackages.validator.helpers.BytecodeVersionJarValidator; +import org.fedoraproject.javapackages.validator.spi.Decorated; +import org.fedoraproject.javapackages.validator.util.BytecodeVersionJarValidator; +import org.fedoraproject.javapackages.validator.util.Common; + +import io.kojan.javadeptools.rpm.RpmPackage; public class BytecodeVersionJarValidatorJP extends BytecodeVersionJarValidator { @Override @@ -60,7 +62,7 @@ public class BytecodeVersionJarValidatorJP extends BytecodeVersionJarValidator { }); @Override - public void validate(RpmFile rpm, Path jarPath, Map classVersions) { + public void validate(RpmPackage rpm, Path jarPath, Map classVersions) { for (var entry : classVersions.entrySet()) { Path classPath = entry.getKey(); int version = entry.getValue().major(); @@ -84,7 +86,7 @@ public class BytecodeVersionJarValidatorJP extends BytecodeVersionJarValidator { } else { // pass } - } else if (packagesReqVersion8.contains(rpm.getInfo().getPackageName()) && version > 44 + 8) { + } else if (packagesReqVersion8.contains(Common.getPackageName(rpm.getInfo())) && version > 44 + 8) { fail("{0}: {1}: {2}: class bytecode version is {3} which is larger than {4} (package is required to have a bytecode version compatible with JVM 8)", Decorated.rpm(rpm), Decorated.custom(jarPath, DECORATION_JAR), diff --git a/src/DuplicateFileValidatorJP.java b/src/DuplicateFileValidatorJP.java index 06bbc32..c50be84 100644 --- a/src/DuplicateFileValidatorJP.java +++ b/src/DuplicateFileValidatorJP.java @@ -3,8 +3,10 @@ package org.fedoraproject.javapackages.validator.validators.jp; import java.nio.file.Path; import java.util.Collection; -import org.fedoraproject.javadeptools.rpm.RpmInfo; -import org.fedoraproject.javapackages.validator.helpers.DuplicateFileValidator.DefaultDuplicateFileValidator; +import org.fedoraproject.javapackages.validator.util.Common; +import org.fedoraproject.javapackages.validator.util.DuplicateFileValidator.DefaultDuplicateFileValidator; + +import io.kojan.javadeptools.rpm.RpmInfo; public class DuplicateFileValidatorJP extends DefaultDuplicateFileValidator { @Override @@ -15,7 +17,7 @@ public class DuplicateFileValidatorJP extends DefaultDuplicateFileValidator { @Override public boolean allowedDuplicateFile(Path path, Collection providerRpms) throws Exception { if (path.toString().startsWith("/usr/share/licenses/")) { - return providerRpms.stream().map(RpmInfo::getPackageName).distinct().count() == 1; + return providerRpms.stream().map(Common::getPackageName).distinct().count() == 1; } if (providerRpms.stream().allMatch(rpm -> rpm.getName().startsWith("maven-openjdk"))) { diff --git a/src/FilesValidatorJP.java b/src/FilesValidatorJP.java index 351f77b..087ad35 100644 --- a/src/FilesValidatorJP.java +++ b/src/FilesValidatorJP.java @@ -8,8 +8,10 @@ import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.fedoraproject.javadeptools.rpm.RpmInfo; -import org.fedoraproject.javapackages.validator.helpers.FilesValidator; +import org.fedoraproject.javapackages.validator.util.Common; +import org.fedoraproject.javapackages.validator.util.FilesValidator; + +import io.kojan.javadeptools.rpm.RpmInfo; public class FilesValidatorJP extends FilesValidator { @Override @@ -21,7 +23,7 @@ public class FilesValidatorJP extends FilesValidator { private static String substitute(RpmInfo rpm, String text) { return text - .replace("${package}", rpm.getPackageName()) + .replace("${package}", Common.getPackageName(rpm)) .replace("${rpm.name}", rpm.getName()) ; } @@ -112,13 +114,13 @@ public class FilesValidatorJP extends FilesValidator { private static final Pattern DOC_LICENSE_PATTERN = Pattern.compile("/usr/share/(doc|licenses)/([^/]*)(.*)"); private boolean allowedAnyFile(RpmInfo rpm, String filename) { - for (String prefix : prefixes.getOrDefault(rpm.getPackageName(), Collections.emptyList())) { + for (String prefix : prefixes.getOrDefault(Common.getPackageName(rpm), Collections.emptyList())) { if (filename.startsWith(substitute(rpm, prefix))) { return true; } } - for (String filepath : exceptionalFiles.getOrDefault(rpm.getPackageName(), Collections.emptyList())) { + for (String filepath : exceptionalFiles.getOrDefault(Common.getPackageName(rpm), Collections.emptyList())) { if (filename.equals(filepath)) { return true; } @@ -152,8 +154,8 @@ public class FilesValidatorJP extends FilesValidator { return true; } - if (patternsCache.computeIfAbsent(rpm.getPackageName() + "/javadoc", - p -> Pattern.compile("/usr/share/javadoc/" + rpm.getPackageName() + "(:?/.*)?")) + if (patternsCache.computeIfAbsent(Common.getPackageName(rpm) + "/javadoc", + p -> Pattern.compile("/usr/share/javadoc/" + Common.getPackageName(rpm) + "(:?/.*)?")) .matcher(filename).matches()) { return true; } @@ -228,7 +230,7 @@ public class FilesValidatorJP extends FilesValidator { } if (namesRelated(rpm.getName(), rpmEntryPrefix) - || namesRelated(rpm.getPackageName(), rpmEntryPrefix) + || namesRelated(Common.getPackageName(rpm), rpmEntryPrefix) || isAlias(rpm.getName(), rpmEntryPrefix)) { return true; } @@ -247,7 +249,7 @@ public class FilesValidatorJP extends FilesValidator { } if (namesRelated(rpm.getName(), rpmEntryPrefix) - || namesRelated(rpm.getPackageName(), rpmEntryPrefix) + || namesRelated(Common.getPackageName(rpm), rpmEntryPrefix) || isAlias(rpm.getName(), rpmEntryPrefix)) { return true; } @@ -265,7 +267,7 @@ public class FilesValidatorJP extends FilesValidator { return true; } - if (filename.startsWith("/usr/bin/" + rpm.getPackageName() + "/")) { + if (filename.startsWith("/usr/bin/" + Common.getPackageName(rpm) + "/")) { return true; } @@ -322,18 +324,18 @@ public class FilesValidatorJP extends FilesValidator { return true; } - // if (rpm.getPackageName().equals("javapackages-bootstrap")) { + // if (Common.getPackageName(rpm).equals("javapackages-bootstrap")) { // // TODO // return true; // } String filename = path.toString(); - if (rpm.getName().equals(rpm.getPackageName() + "-javadoc") || rpm.getName().equals(rpm.getPackageName() + "-javadocs")) { + if (rpm.getName().equals(Common.getPackageName(rpm) + "-javadoc") || rpm.getName().equals(Common.getPackageName(rpm) + "-javadocs")) { return allowedJavadocFile(rpm, filename); - } else if (rpm.getName().equals(rpm.getPackageName() + "-debuginfo")) { + } else if (rpm.getName().equals(Common.getPackageName(rpm) + "-debuginfo")) { return allowedDebuginfoFile(rpm, filename); - } else if (rpm.getName().equals(rpm.getPackageName() + "-debugsource")) { + } else if (rpm.getName().equals(Common.getPackageName(rpm) + "-debugsource")) { return allowedDebugsourceFile(rpm, filename); } else if (rpm.getName().startsWith("python3-javapackages")) { return allowedPythonLibraryFile(rpm, filename); diff --git a/src/RpmFilesizeValidatorJP.java b/src/RpmFilesizeValidatorJP.java index 7d2e5e7..ef9dca7 100644 --- a/src/RpmFilesizeValidatorJP.java +++ b/src/RpmFilesizeValidatorJP.java @@ -1,7 +1,9 @@ package org.fedoraproject.javapackages.validator.validators.jp; -import org.fedoraproject.javadeptools.rpm.RpmInfo; -import org.fedoraproject.javapackages.validator.helpers.RpmFilesizeValidator; +import org.fedoraproject.javapackages.validator.util.Common; +import org.fedoraproject.javapackages.validator.util.RpmFilesizeValidator; + +import io.kojan.javadeptools.rpm.RpmInfo; public class RpmFilesizeValidatorJP extends RpmFilesizeValidator { @Override @@ -15,12 +17,12 @@ public class RpmFilesizeValidatorJP extends RpmFilesizeValidator { return sizeBytes <= 1_000_000_000; } - if (rpm.getPackageName().equals("javapackages-bootstrap")) { + if (Common.getPackageName(rpm).equals("javapackages-bootstrap")) { return sizeBytes <= 40_000_000; } // javadoc rpms - if (rpm.getName().equals(rpm.getPackageName() + "-javadoc")) { + if (rpm.getName().equals(Common.getPackageName(rpm) + "-javadoc")) { return sizeBytes <= 4_000_000; } diff --git a/src/ValidatorFactoryJP.java b/src/ValidatorFactoryJP.java index bee3ef1..e1bcbe9 100644 --- a/src/ValidatorFactoryJP.java +++ b/src/ValidatorFactoryJP.java @@ -2,8 +2,8 @@ package org.fedoraproject.javapackages.validator.validators.jp; import java.util.List; -import org.fedoraproject.javapackages.validator.Validator; -import org.fedoraproject.javapackages.validator.ValidatorFactory; +import org.fedoraproject.javapackages.validator.spi.Validator; +import org.fedoraproject.javapackages.validator.spi.ValidatorFactory; import org.fedoraproject.javapackages.validator.validators.NoBootstrapValidator; public class ValidatorFactoryJP implements ValidatorFactory { diff --git a/src/org.fedoraproject.javapackages.validator.ValidatorFactory b/src/org.fedoraproject.javapackages.validator.spi.ValidatorFactory similarity index 100% rename from src/org.fedoraproject.javapackages.validator.ValidatorFactory rename to src/org.fedoraproject.javapackages.validator.spi.ValidatorFactory