1 package org.apache.maven.artifact.deployer; 2 3 18 19 import org.apache.maven.artifact.Artifact; 20 import org.apache.maven.artifact.manager.WagonManager; 21 import org.apache.maven.artifact.metadata.ArtifactMetadata; 22 import org.apache.maven.artifact.repository.ArtifactRepository; 23 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataDeploymentException; 24 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager; 25 import org.apache.maven.artifact.transform.ArtifactTransformationManager; 26 import org.apache.maven.wagon.TransferFailedException; 27 import org.codehaus.plexus.logging.AbstractLogEnabled; 28 import org.codehaus.plexus.util.FileUtils; 29 30 import java.io.File ; 31 import java.io.IOException ; 32 import java.util.Iterator ; 33 34 public class DefaultArtifactDeployer 35 extends AbstractLogEnabled 36 implements ArtifactDeployer 37 { 38 private WagonManager wagonManager; 39 40 private ArtifactTransformationManager transformationManager; 41 42 private RepositoryMetadataManager repositoryMetadataManager; 43 44 47 public void deploy( String basedir, String finalName, Artifact artifact, ArtifactRepository deploymentRepository, 48 ArtifactRepository localRepository ) 49 throws ArtifactDeploymentException 50 { 51 String extension = artifact.getArtifactHandler().getExtension(); 52 File source = new File ( basedir, finalName + "." + extension ); 53 deploy( source, artifact, deploymentRepository, localRepository ); 54 } 55 56 public void deploy( File source, Artifact artifact, ArtifactRepository deploymentRepository, 57 ArtifactRepository localRepository ) 58 throws ArtifactDeploymentException 59 { 60 if ( !wagonManager.isOnline() ) 61 { 62 throw new ArtifactDeploymentException( "System is offline. Cannot deploy artifact: " + artifact + "." ); 64 } 65 66 try 67 { 68 transformationManager.transformForDeployment( artifact, deploymentRepository, localRepository ); 69 70 File artifactFile = new File ( localRepository.getBasedir(), localRepository.pathOf( artifact ) ); 72 if ( !artifactFile.equals( source ) ) 73 { 74 FileUtils.copyFile( source, artifactFile ); 75 } 76 77 wagonManager.putArtifact( source, artifact, deploymentRepository ); 78 79 for ( Iterator i = artifact.getMetadataList().iterator(); i.hasNext(); ) 81 { 82 ArtifactMetadata metadata = (ArtifactMetadata) i.next(); 83 repositoryMetadataManager.deploy( metadata, localRepository, deploymentRepository ); 84 } 85 } 89 catch ( TransferFailedException e ) 90 { 91 throw new ArtifactDeploymentException( "Error deploying artifact: " + e.getMessage(), e ); 92 } 93 catch ( IOException e ) 94 { 95 throw new ArtifactDeploymentException( "Error deploying artifact: " + e.getMessage(), e ); 96 } 97 catch ( RepositoryMetadataDeploymentException e ) 98 { 99 throw new ArtifactDeploymentException( "Error installing artifact's metadata: " + e.getMessage(), e ); 100 } 101 } 102 } 103 | Popular Tags |