1 package org.apache.maven.artifact.installer; 2 3 18 19 import org.apache.maven.artifact.Artifact; 20 import org.apache.maven.artifact.metadata.ArtifactMetadata; 21 import org.apache.maven.artifact.repository.ArtifactRepository; 22 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataInstallationException; 23 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager; 24 import org.apache.maven.artifact.transform.ArtifactTransformationManager; 25 import org.codehaus.plexus.logging.AbstractLogEnabled; 26 import org.codehaus.plexus.util.FileUtils; 27 28 import java.io.File ; 29 import java.io.IOException ; 30 import java.util.Iterator ; 31 32 public class DefaultArtifactInstaller 33 extends AbstractLogEnabled 34 implements ArtifactInstaller 35 { 36 private ArtifactTransformationManager transformationManager; 37 38 private RepositoryMetadataManager repositoryMetadataManager; 39 40 43 public void install( String basedir, String finalName, Artifact artifact, ArtifactRepository localRepository ) 44 throws ArtifactInstallationException 45 { 46 String extension = artifact.getArtifactHandler().getExtension(); 47 File source = new File ( basedir, finalName + "." + extension ); 48 49 install( source, artifact, localRepository ); 50 } 51 52 public void install( File source, Artifact artifact, ArtifactRepository localRepository ) 53 throws ArtifactInstallationException 54 { 55 try 56 { 57 transformationManager.transformForInstall( artifact, localRepository ); 58 59 String localPath = localRepository.pathOf( artifact ); 60 61 File destination = new File ( localRepository.getBasedir(), localPath ); 63 if ( !destination.getParentFile().exists() ) 64 { 65 destination.getParentFile().mkdirs(); 66 } 67 68 getLogger().info( "Installing " + source.getPath() + " to " + destination ); 69 70 FileUtils.copyFile( source, destination ); 71 72 for ( Iterator i = artifact.getMetadataList().iterator(); i.hasNext(); ) 74 { 75 ArtifactMetadata metadata = (ArtifactMetadata) i.next(); 76 repositoryMetadataManager.install( metadata, localRepository ); 77 } 78 } 82 catch ( IOException e ) 83 { 84 throw new ArtifactInstallationException( "Error installing artifact: " + e.getMessage(), e ); 85 } 86 catch ( RepositoryMetadataInstallationException e ) 87 { 88 throw new ArtifactInstallationException( "Error installing artifact's metadata: " + e.getMessage(), e ); 89 } 90 } 91 } | Popular Tags |