Search in sources :

Example 1 with MetadataBridge

use of org.apache.maven.artifact.repository.metadata.MetadataBridge in project maven by apache.

the class DefaultArtifactDeployer method deploy.

public void deploy(File source, Artifact artifact, ArtifactRepository deploymentRepository, ArtifactRepository localRepository) throws ArtifactDeploymentException {
    RepositorySystemSession session = LegacyLocalRepositoryManager.overlay(localRepository, legacySupport.getRepositorySession(), repoSystem);
    DeployRequest request = new DeployRequest();
    request.setTrace(RequestTrace.newChild(null, legacySupport.getSession().getCurrentProject()));
    org.eclipse.aether.artifact.Artifact mainArtifact = RepositoryUtils.toArtifact(artifact);
    mainArtifact = mainArtifact.setFile(source);
    request.addArtifact(mainArtifact);
    String versionKey = artifact.getGroupId() + ':' + artifact.getArtifactId();
    String snapshotKey = null;
    if (artifact.isSnapshot()) {
        snapshotKey = versionKey + ':' + artifact.getBaseVersion();
        request.addMetadata(relatedMetadata.get(snapshotKey));
    }
    request.addMetadata(relatedMetadata.get(versionKey));
    for (ArtifactMetadata metadata : artifact.getMetadataList()) {
        if (metadata instanceof ProjectArtifactMetadata) {
            org.eclipse.aether.artifact.Artifact pomArtifact = new SubArtifact(mainArtifact, "", "pom");
            pomArtifact = pomArtifact.setFile(((ProjectArtifactMetadata) metadata).getFile());
            request.addArtifact(pomArtifact);
        } else if (metadata instanceof SnapshotArtifactRepositoryMetadata || metadata instanceof ArtifactRepositoryMetadata) {
        // eaten, handled by repo system
        } else {
            request.addMetadata(new MetadataBridge(metadata));
        }
    }
    RemoteRepository remoteRepo = RepositoryUtils.toRepo(deploymentRepository);
    /*
         * NOTE: This provides backward-compat with maven-deploy-plugin:2.4 which bypasses the repository factory when
         * using an alternative deployment location.
         */
    if (deploymentRepository instanceof DefaultArtifactRepository && deploymentRepository.getAuthentication() == null) {
        RemoteRepository.Builder builder = new RemoteRepository.Builder(remoteRepo);
        builder.setAuthentication(session.getAuthenticationSelector().getAuthentication(remoteRepo));
        builder.setProxy(session.getProxySelector().getProxy(remoteRepo));
        remoteRepo = builder.build();
    }
    request.setRepository(remoteRepo);
    DeployResult result;
    try {
        result = repoSystem.deploy(session, request);
    } catch (DeploymentException e) {
        throw new ArtifactDeploymentException(e.getMessage(), e);
    }
    for (Object metadata : result.getMetadata()) {
        if (metadata.getClass().getName().endsWith(".internal.VersionsMetadata")) {
            relatedMetadata.put(versionKey, (MergeableMetadata) metadata);
        }
        if (snapshotKey != null && metadata.getClass().getName().endsWith(".internal.RemoteSnapshotMetadata")) {
            relatedMetadata.put(snapshotKey, (MergeableMetadata) metadata);
        }
    }
    artifact.setResolvedVersion(result.getArtifacts().iterator().next().getVersion());
}
Also used : ProjectArtifactMetadata(org.apache.maven.project.artifact.ProjectArtifactMetadata) RepositorySystemSession(org.eclipse.aether.RepositorySystemSession) DeployRequest(org.eclipse.aether.deployment.DeployRequest) DefaultArtifactRepository(org.apache.maven.artifact.repository.DefaultArtifactRepository) RemoteRepository(org.eclipse.aether.repository.RemoteRepository) MetadataBridge(org.apache.maven.artifact.repository.metadata.MetadataBridge) DeployResult(org.eclipse.aether.deployment.DeployResult) SubArtifact(org.eclipse.aether.util.artifact.SubArtifact) SnapshotArtifactRepositoryMetadata(org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata) DeploymentException(org.eclipse.aether.deployment.DeploymentException) ArtifactMetadata(org.apache.maven.artifact.metadata.ArtifactMetadata) ProjectArtifactMetadata(org.apache.maven.project.artifact.ProjectArtifactMetadata) ArtifactRepositoryMetadata(org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata) SnapshotArtifactRepositoryMetadata(org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata)

Example 2 with MetadataBridge

use of org.apache.maven.artifact.repository.metadata.MetadataBridge in project maven by apache.

the class DefaultArtifactInstaller method install.

public void install(File source, Artifact artifact, ArtifactRepository localRepository) throws ArtifactInstallationException {
    RepositorySystemSession session = LegacyLocalRepositoryManager.overlay(localRepository, legacySupport.getRepositorySession(), repoSystem);
    InstallRequest request = new InstallRequest();
    request.setTrace(RequestTrace.newChild(null, legacySupport.getSession().getCurrentProject()));
    org.eclipse.aether.artifact.Artifact mainArtifact = RepositoryUtils.toArtifact(artifact);
    mainArtifact = mainArtifact.setFile(source);
    request.addArtifact(mainArtifact);
    for (ArtifactMetadata metadata : artifact.getMetadataList()) {
        if (metadata instanceof ProjectArtifactMetadata) {
            org.eclipse.aether.artifact.Artifact pomArtifact = new SubArtifact(mainArtifact, "", "pom");
            pomArtifact = pomArtifact.setFile(((ProjectArtifactMetadata) metadata).getFile());
            request.addArtifact(pomArtifact);
        } else if (metadata instanceof SnapshotArtifactRepositoryMetadata || metadata instanceof ArtifactRepositoryMetadata) {
        // eaten, handled by repo system
        } else {
            request.addMetadata(new MetadataBridge(metadata));
        }
    }
    try {
        repoSystem.install(session, request);
    } catch (InstallationException e) {
        throw new ArtifactInstallationException(e.getMessage(), e);
    }
    if (artifact.isSnapshot()) {
        Snapshot snapshot = new Snapshot();
        snapshot.setLocalCopy(true);
        artifact.addMetadata(new SnapshotArtifactRepositoryMetadata(artifact, snapshot));
    }
    Versioning versioning = new Versioning();
    // TODO Should this be changed for MNG-6754 too?
    versioning.updateTimestamp();
    versioning.addVersion(artifact.getBaseVersion());
    if (artifact.isRelease()) {
        versioning.setRelease(artifact.getBaseVersion());
    }
    artifact.addMetadata(new ArtifactRepositoryMetadata(artifact, versioning));
}
Also used : ProjectArtifactMetadata(org.apache.maven.project.artifact.ProjectArtifactMetadata) RepositorySystemSession(org.eclipse.aether.RepositorySystemSession) InstallRequest(org.eclipse.aether.installation.InstallRequest) MetadataBridge(org.apache.maven.artifact.repository.metadata.MetadataBridge) Snapshot(org.apache.maven.artifact.repository.metadata.Snapshot) Versioning(org.apache.maven.artifact.repository.metadata.Versioning) InstallationException(org.eclipse.aether.installation.InstallationException) SubArtifact(org.eclipse.aether.util.artifact.SubArtifact) SnapshotArtifactRepositoryMetadata(org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata) ProjectArtifactMetadata(org.apache.maven.project.artifact.ProjectArtifactMetadata) ArtifactMetadata(org.apache.maven.artifact.metadata.ArtifactMetadata) ArtifactRepositoryMetadata(org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata) SnapshotArtifactRepositoryMetadata(org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata)

Aggregations

ArtifactMetadata (org.apache.maven.artifact.metadata.ArtifactMetadata)2 ArtifactRepositoryMetadata (org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata)2 MetadataBridge (org.apache.maven.artifact.repository.metadata.MetadataBridge)2 SnapshotArtifactRepositoryMetadata (org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata)2 ProjectArtifactMetadata (org.apache.maven.project.artifact.ProjectArtifactMetadata)2 RepositorySystemSession (org.eclipse.aether.RepositorySystemSession)2 SubArtifact (org.eclipse.aether.util.artifact.SubArtifact)2 DefaultArtifactRepository (org.apache.maven.artifact.repository.DefaultArtifactRepository)1 Snapshot (org.apache.maven.artifact.repository.metadata.Snapshot)1 Versioning (org.apache.maven.artifact.repository.metadata.Versioning)1 DeployRequest (org.eclipse.aether.deployment.DeployRequest)1 DeployResult (org.eclipse.aether.deployment.DeployResult)1 DeploymentException (org.eclipse.aether.deployment.DeploymentException)1 InstallRequest (org.eclipse.aether.installation.InstallRequest)1 InstallationException (org.eclipse.aether.installation.InstallationException)1 RemoteRepository (org.eclipse.aether.repository.RemoteRepository)1