diff --git a/pom.xml b/pom.xml index 0f1eb53..4801683 100644 --- a/pom.xml +++ b/pom.xml @@ -74,7 +74,12 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/x org.fedoraproject.xmvn xmvn-api - 4.3.0 + 5.0.0 + + + io.kojan + kojan-xml + 1.0.1 org.yaml diff --git a/src/main/java/org/fedoraproject/javapackages/validator/validators/MavenMetadataValidator.java b/src/main/java/org/fedoraproject/javapackages/validator/validators/MavenMetadataValidator.java index 839c8d5..358a76f 100644 --- a/src/main/java/org/fedoraproject/javapackages/validator/validators/MavenMetadataValidator.java +++ b/src/main/java/org/fedoraproject/javapackages/validator/validators/MavenMetadataValidator.java @@ -1,6 +1,6 @@ package org.fedoraproject.javapackages.validator.validators; -import java.io.ByteArrayInputStream; +import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.ArrayList; import java.util.Map; @@ -8,19 +8,17 @@ import java.util.function.Predicate; import java.util.stream.Collectors; -import javax.xml.stream.XMLStreamException; - import org.apache.commons.compress.archivers.cpio.CpioArchiveEntry; import org.apache.commons.io.IOUtils; import org.fedoraproject.javapackages.validator.spi.Decorated; import org.fedoraproject.javapackages.validator.util.Common; import org.fedoraproject.javapackages.validator.util.ElementwiseValidator; import org.fedoraproject.xmvn.metadata.PackageMetadata; -import org.fedoraproject.xmvn.metadata.io.stax.MetadataStaxReader; import io.kojan.javadeptools.rpm.RpmArchiveInputStream; import io.kojan.javadeptools.rpm.RpmInfo; import io.kojan.javadeptools.rpm.RpmPackage; +import io.kojan.xml.XMLException; /// Validator which checks that Maven metadata XML stored in /// `/usr/share/maven-metadata/`. @@ -75,9 +73,10 @@ public void validate(RpmPackage rpm) throws Exception { for (var entry : metadataXmls) { PackageMetadata packageMetadata = null; - try (var is = new ByteArrayInputStream(entry.getValue())) { - packageMetadata = new MetadataStaxReader().read(is, true); - } catch (XMLStreamException ex) { + try { + String xml = new String(entry.getValue(), StandardCharsets.UTF_8); + packageMetadata = PackageMetadata.fromXML(xml); + } catch (XMLException ex) { fail("{0}: metadata validation failed: {1}", Decorated.rpm(rpm), Decorated.plain(ex.getMessage())); continue; }