1 package org.apache.maven.artifact.transform; 2 3 18 19 import org.apache.maven.artifact.Artifact; 20 import org.apache.maven.artifact.manager.WagonManager; 21 import org.apache.maven.artifact.repository.ArtifactRepository; 22 import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata; 23 import org.apache.maven.artifact.repository.metadata.Metadata; 24 import org.apache.maven.artifact.repository.metadata.RepositoryMetadata; 25 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager; 26 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataResolutionException; 27 import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata; 28 import org.apache.maven.artifact.repository.metadata.Versioning; 29 import org.codehaus.plexus.logging.AbstractLogEnabled; 30 31 import java.util.List ; 32 33 40 public abstract class AbstractVersionTransformation 41 extends AbstractLogEnabled 42 implements ArtifactTransformation 43 { 44 protected RepositoryMetadataManager repositoryMetadataManager; 45 46 protected WagonManager wagonManager; 47 48 protected String resolveVersion( Artifact artifact, ArtifactRepository localRepository, List remoteRepositories ) 49 throws RepositoryMetadataResolutionException 50 { 51 RepositoryMetadata metadata; 52 if ( !artifact.isSnapshot() || Artifact.LATEST_VERSION.equals( artifact.getBaseVersion() ) ) 54 { 55 metadata = new ArtifactRepositoryMetadata( artifact ); 56 } 57 else 58 { 59 metadata = new SnapshotArtifactRepositoryMetadata( artifact ); 60 } 61 62 repositoryMetadataManager.resolve( metadata, remoteRepositories, localRepository ); 63 64 Metadata repoMetadata = metadata.getMetadata(); 65 String version = null; 66 if ( repoMetadata != null && repoMetadata.getVersioning() != null ) 67 { 68 version = constructVersion( repoMetadata.getVersioning(), artifact.getBaseVersion() ); 69 } 70 71 if ( version == null ) 72 { 73 version = artifact.getBaseVersion(); 75 } 76 77 if ( getLogger().isDebugEnabled() ) 80 { 81 if ( !version.equals( artifact.getBaseVersion() ) ) 82 { 83 String message = artifact.getArtifactId() + ": resolved to version " + version; 84 if ( artifact.getRepository() != null ) 85 { 86 message += " from repository " + artifact.getRepository().getId(); 87 } 88 else 89 { 90 message += " from local repository"; 91 } 92 getLogger().debug( message ); 93 } 94 else 95 { 96 getLogger().debug( artifact.getArtifactId() + ": using locally installed snapshot" ); 98 } 99 } 100 return version; 101 } 102 103 protected abstract String constructVersion( Versioning versioning, String baseVersion ); 104 } 105 | Popular Tags |