Search in sources :

Example 6 with Plugin

use of org.apache.archiva.model.Plugin in project archiva by apache.

the class MavenMetadataReader method read.

/**
 * Read and return the {@link org.apache.archiva.model.ArchivaRepositoryMetadata} object from the provided xml file.
 *
 * @param metadataFile the maven-metadata.xml file to read.
 * @return the archiva repository metadata object that represents the provided file contents.
 * @throws XMLException
 */
public static ArchivaRepositoryMetadata read(Path metadataFile) throws XMLException {
    XMLReader xml = new XMLReader("metadata", metadataFile);
    // invoke this to remove namespaces, see MRM-1136
    xml.removeNamespaces();
    ArchivaRepositoryMetadata metadata = new ArchivaRepositoryMetadata();
    metadata.setGroupId(xml.getElementText("//metadata/groupId"));
    metadata.setArtifactId(xml.getElementText("//metadata/artifactId"));
    metadata.setVersion(xml.getElementText("//metadata/version"));
    Date modTime;
    try {
        modTime = new Date(Files.getLastModifiedTime(metadataFile).toMillis());
    } catch (IOException e) {
        modTime = new Date();
        log.error("Could not read modification time of {}", metadataFile);
    }
    metadata.setFileLastModified(modTime);
    try {
        metadata.setFileSize(Files.size(metadataFile));
    } catch (IOException e) {
        metadata.setFileSize(0);
        log.error("Could not read file size of {}", metadataFile);
    }
    metadata.setLastUpdated(xml.getElementText("//metadata/versioning/lastUpdated"));
    metadata.setLatestVersion(xml.getElementText("//metadata/versioning/latest"));
    metadata.setReleasedVersion(xml.getElementText("//metadata/versioning/release"));
    metadata.setAvailableVersions(xml.getElementListText("//metadata/versioning/versions/version"));
    Element snapshotElem = xml.getElement("//metadata/versioning/snapshot");
    if (snapshotElem != null) {
        SnapshotVersion snapshot = new SnapshotVersion();
        snapshot.setTimestamp(snapshotElem.elementTextTrim("timestamp"));
        String tmp = snapshotElem.elementTextTrim("buildNumber");
        if (NumberUtils.isNumber(tmp)) {
            snapshot.setBuildNumber(NumberUtils.toInt(tmp));
        }
        metadata.setSnapshotVersion(snapshot);
    }
    for (Element plugin : xml.getElementList("//metadata/plugins/plugin")) {
        Plugin p = new Plugin();
        p.setPrefix(plugin.elementTextTrim("prefix"));
        p.setArtifactId(plugin.elementTextTrim("artifactId"));
        p.setName(plugin.elementTextTrim("name"));
        metadata.addPlugin(p);
    }
    return metadata;
}
Also used : SnapshotVersion(org.apache.archiva.model.SnapshotVersion) Element(org.dom4j.Element) IOException(java.io.IOException) ArchivaRepositoryMetadata(org.apache.archiva.model.ArchivaRepositoryMetadata) XMLReader(org.apache.archiva.xml.XMLReader) Date(java.util.Date) Plugin(org.apache.archiva.model.Plugin)

Aggregations

Plugin (org.apache.archiva.model.Plugin)6 ArchivaRepositoryMetadata (org.apache.archiva.model.ArchivaRepositoryMetadata)4 Path (java.nio.file.Path)2 XMLException (org.apache.archiva.xml.XMLException)2 Element (org.dom4j.Element)2 IOException (java.io.IOException)1 StringWriter (java.io.StringWriter)1 ArrayList (java.util.ArrayList)1 Date (java.util.Date)1 ChecksummedFile (org.apache.archiva.checksum.ChecksummedFile)1 SnapshotVersion (org.apache.archiva.model.SnapshotVersion)1 XMLReader (org.apache.archiva.xml.XMLReader)1 Document (org.dom4j.Document)1 Test (org.junit.Test)1