Example usage for org.apache.maven.artifact.repository ArtifactRepository pathOfRemoteRepositoryMetadata

List of usage examples for org.apache.maven.artifact.repository ArtifactRepository pathOfRemoteRepositoryMetadata

Introduction

In this page you can find the example usage for org.apache.maven.artifact.repository ArtifactRepository pathOfRemoteRepositoryMetadata.

Prototype

String pathOfRemoteRepositoryMetadata(ArtifactMetadata artifactMetadata);

Source Link

Usage

From source file:at.yawk.mdep.GenerateMojo.java

@Nullable
@SneakyThrows({ MalformedURLException.class, NoSuchAlgorithmException.class })
@VisibleForTesting/*w ww. j  a v a2 s.c  o  m*/
Dependency findArtifactInRepository(Artifact artifact, ArtifactRepository repository)
        throws MojoExecutionException {

    String artifactPath = getArtifactPath(artifact, artifact.getVersion());
    if (artifact.isSnapshot()) {
        ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata(artifact) {
            // maven is weird - i have yet to find a better solution.

            @Override
            public boolean storedInArtifactVersionDirectory() {
                return true;
            }

            @Override
            public String getBaseVersion() {
                return artifact.getBaseVersion();
            }
        };

        // try to load maven-metadata.xml in case we need to use a different version for snapshots
        URL metaUrl = new URL(repository.getUrl() + '/' + repository.pathOfRemoteRepositoryMetadata(metadata));

        Metadata loadedMetadata;
        try (InputStream input = openStream(metaUrl)) {
            loadedMetadata = new MetadataXpp3Reader().read(input, true);
        } catch (IOException e) {
            // could not find metadata
            loadedMetadata = null;
        } catch (XmlPullParserException e) {
            throw new MojoExecutionException("Failed to parse metadata", e);
        }

        if (loadedMetadata != null) {
            Snapshot snapshot = loadedMetadata.getVersioning().getSnapshot();

            String versionWithoutSuffix = artifact.getVersion().substring(0,
                    artifact.getBaseVersion().lastIndexOf('-'));
            artifactPath = getArtifactPath(artifact,
                    versionWithoutSuffix + '-' + snapshot.getTimestamp() + '-' + snapshot.getBuildNumber());
        }
    }

    URL url = new URL(repository.getUrl() + '/' + artifactPath);
    try (InputStream input = openStream(url)) {
        getLog().info("Getting checksum for " + artifact);

        MessageDigest digest = MessageDigest.getInstance("SHA-512");
        byte[] buf = new byte[4096];
        int len;
        while ((len = input.read(buf)) >= 0) {
            digest.update(buf, 0, len);
        }

        Dependency dependency = new Dependency();
        dependency.setUrl(url);
        dependency.setSha512sum(digest.digest());
        return dependency;
    } catch (IOException ignored) {
        // not in this repo
        return null;
    }
}

From source file:org.apache.archiva.converter.artifact.LegacyToDefaultConverter.java

License:Apache License

private boolean validateMetadata(Artifact artifact) throws ArtifactConversionException {
    ArtifactRepository repository = artifact.getRepository();

    boolean result = true;

    RepositoryMetadata repositoryMetadata = new ArtifactRepositoryMetadata(artifact);
    File file = new File(repository.getBasedir(),
            repository.pathOfRemoteRepositoryMetadata(repositoryMetadata));
    if (file.exists()) {
        Metadata metadata = readMetadata(file);
        result = validateMetadata(metadata, repositoryMetadata, artifact);
    }/*from   ww  w  .ja va 2  s . c o m*/

    repositoryMetadata = new SnapshotArtifactRepositoryMetadata(artifact);
    file = new File(repository.getBasedir(), repository.pathOfRemoteRepositoryMetadata(repositoryMetadata));
    if (file.exists()) {
        Metadata metadata = readMetadata(file);
        result = result && validateMetadata(metadata, repositoryMetadata, artifact);
    }

    return result;
}

From source file:org.apache.archiva.converter.artifact.LegacyToDefaultConverter.java

License:Apache License

private void updateMetadata(RepositoryMetadata artifactMetadata, ArtifactRepository targetRepository,
        Metadata newMetadata, FileTransaction transaction) throws ArtifactConversionException {
    File file = new File(targetRepository.getBasedir(),
            targetRepository.pathOfRemoteRepositoryMetadata(artifactMetadata));

    Metadata metadata;/*from   w w  w  .j a v a 2  s .  com*/
    boolean changed;

    if (file.exists()) {
        metadata = readMetadata(file);
        changed = metadata.merge(newMetadata);
    } else {
        changed = true;
        metadata = newMetadata;
    }

    if (changed) {

        try (StringWriter writer = new StringWriter()) {
            MetadataXpp3Writer mappingWriter = new MetadataXpp3Writer();

            mappingWriter.write(writer, metadata);

            transaction.createFile(writer.toString(), file, digesters);
        } catch (IOException e) {
            throw new ArtifactConversionException(Messages.getString("error.writing.target.metadata"), e); //$NON-NLS-1$
        }
    }
}