mirror of https://github.com/apache/maven.git
snapshot resolution. commented out due to issues surrounding pom/artifact pairing
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163692 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
895de57874
commit
004c6cbdf3
|
@ -17,6 +17,7 @@ package org.apache.maven.artifact;
|
|||
*/
|
||||
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
@ -68,4 +69,8 @@ public interface Artifact
|
|||
void addMetadata( ArtifactMetadata metadata );
|
||||
|
||||
List getMetadataList();
|
||||
|
||||
void setRepository( ArtifactRepository remoteRepository );
|
||||
|
||||
ArtifactRepository getRepository();
|
||||
}
|
|
@ -17,6 +17,7 @@ package org.apache.maven.artifact;
|
|||
*/
|
||||
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.codehaus.plexus.util.StringUtils;
|
||||
|
||||
import java.io.File;
|
||||
|
@ -48,6 +49,8 @@ public class DefaultArtifact
|
|||
|
||||
private File file;
|
||||
|
||||
private ArtifactRepository repository;
|
||||
|
||||
/**
|
||||
* !!! WARNING !!! Never put <classifier/> in the POM. It is for mojo use
|
||||
* only. Classifier is for specifying derived artifacts, like ejb-client.
|
||||
|
@ -133,6 +136,16 @@ public class DefaultArtifact
|
|||
return file;
|
||||
}
|
||||
|
||||
public ArtifactRepository getRepository()
|
||||
{
|
||||
return repository;
|
||||
}
|
||||
|
||||
public void setRepository( ArtifactRepository repository )
|
||||
{
|
||||
this.repository = repository;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
@ -172,13 +185,49 @@ public class DefaultArtifact
|
|||
|
||||
public int hashCode()
|
||||
{
|
||||
return getId().hashCode();
|
||||
int result = 17;
|
||||
result = 37 * result + groupId.hashCode();
|
||||
result = 37 * result + artifactId.hashCode();
|
||||
result = 37 * result + type.hashCode();
|
||||
result = 37 * result + version.hashCode();
|
||||
result = 37 * result + ( classifier != null ? classifier.hashCode() : 0 );
|
||||
return result;
|
||||
}
|
||||
|
||||
public boolean equals( Object o )
|
||||
{
|
||||
Artifact other = (Artifact) o;
|
||||
if ( o == this )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return getId().equals( other.getId() );
|
||||
if ( !( o instanceof Artifact ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Artifact a = (Artifact) o;
|
||||
|
||||
if ( !a.getGroupId().equals( groupId ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if ( !a.getArtifactId().equals( artifactId ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if ( !a.getVersion().equals( version ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if ( !a.getType().equals( type ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if ( classifier == null ? a.getClassifier() != null : !a.getClassifier().equals( classifier ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -168,7 +168,7 @@ public class DefaultWagonManager
|
|||
}
|
||||
|
||||
public void getArtifact( Artifact artifact, List remoteRepositories, File destination )
|
||||
throws TransferFailedException
|
||||
throws TransferFailedException, ResourceDoesNotExistException
|
||||
{
|
||||
// TODO [BP]: The exception handling here needs some work
|
||||
boolean successful = false;
|
||||
|
@ -176,20 +176,9 @@ public class DefaultWagonManager
|
|||
{
|
||||
ArtifactRepository repository = (ArtifactRepository) iter.next();
|
||||
|
||||
String remotePath = null;
|
||||
try
|
||||
{
|
||||
remotePath = repository.pathOf( artifact );
|
||||
}
|
||||
catch ( ArtifactPathFormatException e )
|
||||
{
|
||||
// TODO may be more appropriate to propogate the APFE
|
||||
throw new TransferFailedException( "Failed to determine path for artifact", e );
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
getRemoteFile( repository, destination, remotePath );
|
||||
getArtifact( artifact, repository, destination );
|
||||
|
||||
successful = true;
|
||||
}
|
||||
|
@ -204,10 +193,27 @@ public class DefaultWagonManager
|
|||
|
||||
if ( !successful )
|
||||
{
|
||||
throw new TransferFailedException( "Unable to download the artifact from any repository" );
|
||||
throw new ResourceDoesNotExistException( "Unable to download the artifact from any repository" );
|
||||
}
|
||||
}
|
||||
|
||||
public void getArtifact( Artifact artifact, ArtifactRepository repository, File destination )
|
||||
throws TransferFailedException, ResourceDoesNotExistException
|
||||
{
|
||||
String remotePath = null;
|
||||
try
|
||||
{
|
||||
remotePath = repository.pathOf( artifact );
|
||||
}
|
||||
catch ( ArtifactPathFormatException e )
|
||||
{
|
||||
// TODO may be more appropriate to propogate the APFE
|
||||
throw new TransferFailedException( "Failed to determine path for artifact", e );
|
||||
}
|
||||
|
||||
getRemoteFile( repository, destination, remotePath );
|
||||
}
|
||||
|
||||
public void getArtifactMetadata( ArtifactMetadata metadata, ArtifactRepository remoteRepository, File destination )
|
||||
throws TransferFailedException, ResourceDoesNotExistException
|
||||
{
|
||||
|
|
|
@ -40,7 +40,10 @@ public interface WagonManager
|
|||
throws UnsupportedProtocolException;
|
||||
|
||||
void getArtifact( Artifact artifact, List remoteRepositories, File destination )
|
||||
throws TransferFailedException;
|
||||
throws TransferFailedException, ResourceDoesNotExistException;
|
||||
|
||||
public void getArtifact( Artifact artifact, ArtifactRepository repository, File destination )
|
||||
throws TransferFailedException, ResourceDoesNotExistException;
|
||||
|
||||
void putArtifact( File source, Artifact artifact, ArtifactRepository deploymentRepository )
|
||||
throws TransferFailedException;
|
||||
|
|
|
@ -40,6 +40,7 @@ import java.util.TimeZone;
|
|||
*/
|
||||
public class SnapshotArtifactMetadata
|
||||
extends AbstractArtifactMetadata
|
||||
implements Comparable
|
||||
{
|
||||
private String timestamp = null;
|
||||
|
||||
|
@ -58,6 +59,19 @@ public class SnapshotArtifactMetadata
|
|||
super( artifact, filename );
|
||||
}
|
||||
|
||||
public static SnapshotArtifactMetadata readLocalSnapshotMetadata( Artifact artifact,
|
||||
ArtifactRepository localRepository )
|
||||
throws ArtifactPathFormatException, IOException
|
||||
{
|
||||
SnapshotArtifactMetadata metadata = new SnapshotArtifactMetadata( artifact, SNAPSHOT_VERSION_LOCAL_FILE );
|
||||
File f = metadata.getLocalRepositoryLocation( localRepository );
|
||||
if ( f.exists() )
|
||||
{
|
||||
metadata.readFromFile( f );
|
||||
}
|
||||
return metadata;
|
||||
}
|
||||
|
||||
public static SnapshotArtifactMetadata createLocalSnapshotMetadata( Artifact artifact )
|
||||
{
|
||||
return new SnapshotArtifactMetadata( artifact, SNAPSHOT_VERSION_LOCAL_FILE );
|
||||
|
@ -77,7 +91,7 @@ public class SnapshotArtifactMetadata
|
|||
{
|
||||
timestamp = getUtcDateFormatter().format( new Date() );
|
||||
}
|
||||
String path = new File( localRepository.getBasedir(), localRepository.pathOfMetadata( this ) ).getPath();
|
||||
String path = getLocalRepositoryLocation( localRepository ).getPath();
|
||||
FileUtils.fileWrite( path, getVersion() );
|
||||
}
|
||||
catch ( IOException e )
|
||||
|
@ -90,6 +104,12 @@ public class SnapshotArtifactMetadata
|
|||
}
|
||||
}
|
||||
|
||||
private File getLocalRepositoryLocation( ArtifactRepository localRepository )
|
||||
throws ArtifactPathFormatException
|
||||
{
|
||||
return new File( localRepository.getBasedir(), localRepository.pathOfMetadata( this ) );
|
||||
}
|
||||
|
||||
public String getVersion()
|
||||
{
|
||||
String version = artifact.getVersion();
|
||||
|
@ -122,17 +142,7 @@ public class SnapshotArtifactMetadata
|
|||
return;
|
||||
}
|
||||
|
||||
String version = FileUtils.fileRead( destination );
|
||||
|
||||
int index = version.lastIndexOf( "-" );
|
||||
timestamp = version.substring( 0, index );
|
||||
buildNumber = Integer.valueOf( version.substring( index + 1 ) ).intValue();
|
||||
index = version.indexOf( "-" );
|
||||
if ( index >= 0 )
|
||||
{
|
||||
// ignore starting version part, will be prepended later
|
||||
timestamp = timestamp.substring( index + 1 );
|
||||
}
|
||||
readFromFile( destination );
|
||||
}
|
||||
catch ( TransferFailedException e )
|
||||
{
|
||||
|
@ -144,6 +154,22 @@ public class SnapshotArtifactMetadata
|
|||
}
|
||||
}
|
||||
|
||||
private void readFromFile( File destination )
|
||||
throws IOException
|
||||
{
|
||||
String version = FileUtils.fileRead( destination );
|
||||
|
||||
int index = version.lastIndexOf( "-" );
|
||||
timestamp = version.substring( 0, index );
|
||||
buildNumber = Integer.valueOf( version.substring( index + 1 ) ).intValue();
|
||||
index = version.indexOf( "-" );
|
||||
if ( index >= 0 )
|
||||
{
|
||||
// ignore starting version part, will be prepended later
|
||||
timestamp = timestamp.substring( index + 1 );
|
||||
}
|
||||
}
|
||||
|
||||
public String getTimestamp()
|
||||
{
|
||||
return timestamp;
|
||||
|
@ -161,4 +187,23 @@ public class SnapshotArtifactMetadata
|
|||
this.buildNumber++;
|
||||
timestamp = getUtcDateFormatter().format( new Date() );
|
||||
}
|
||||
|
||||
|
||||
public int compareTo( Object o )
|
||||
{
|
||||
SnapshotArtifactMetadata metadata = (SnapshotArtifactMetadata) o;
|
||||
|
||||
if ( buildNumber > metadata.buildNumber )
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
else if ( timestamp == null )
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return timestamp.compareTo( metadata.timestamp );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,12 +20,14 @@ import org.apache.maven.artifact.Artifact;
|
|||
import org.apache.maven.artifact.construction.ArtifactConstructionSupport;
|
||||
import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
|
||||
import org.apache.maven.artifact.manager.WagonManager;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.layout.ArtifactPathFormatException;
|
||||
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
||||
import org.apache.maven.artifact.transform.ArtifactTransformation;
|
||||
import org.apache.maven.wagon.ResourceDoesNotExistException;
|
||||
import org.apache.maven.wagon.TransferFailedException;
|
||||
import org.codehaus.plexus.logging.AbstractLogEnabled;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
|
@ -81,7 +83,14 @@ public class DefaultArtifactResolver
|
|||
for ( Iterator i = artifactTransformations.iterator(); i.hasNext(); )
|
||||
{
|
||||
ArtifactTransformation transform = (ArtifactTransformation) i.next();
|
||||
artifact = transform.transformForResolve( artifact );
|
||||
try
|
||||
{
|
||||
artifact = transform.transformForResolve( artifact, remoteRepositories, localRepository );
|
||||
}
|
||||
catch ( ArtifactMetadataRetrievalException e )
|
||||
{
|
||||
throw new ArtifactResolutionException( "Unable to transform artifact", e );
|
||||
}
|
||||
}
|
||||
|
||||
String localPath;
|
||||
|
@ -105,11 +114,34 @@ public class DefaultArtifactResolver
|
|||
|
||||
try
|
||||
{
|
||||
wagonManager.getArtifact( artifact, remoteRepositories, destination );
|
||||
if ( artifact.getRepository() != null )
|
||||
{
|
||||
// the transformations discovered the artifact - so use it exclusively
|
||||
wagonManager.getArtifact( artifact, artifact.getRepository(), destination );
|
||||
}
|
||||
else
|
||||
{
|
||||
wagonManager.getArtifact( artifact, remoteRepositories, destination );
|
||||
}
|
||||
|
||||
// must be after the artifact is downloaded
|
||||
for ( Iterator i = artifact.getMetadataList().iterator(); i.hasNext(); )
|
||||
{
|
||||
ArtifactMetadata metadata = (ArtifactMetadata) i.next();
|
||||
metadata.storeInLocalRepository( localRepository );
|
||||
}
|
||||
}
|
||||
catch ( ResourceDoesNotExistException e )
|
||||
{
|
||||
throw new ArtifactResolutionException( artifactNotFound( localPath, remoteRepositories ), e );
|
||||
}
|
||||
catch ( TransferFailedException e )
|
||||
{
|
||||
throw new ArtifactResolutionException( artifactNotFound( localPath, remoteRepositories ), e );
|
||||
throw new ArtifactResolutionException( "Error downloading artifact " + artifact, e );
|
||||
}
|
||||
catch ( ArtifactMetadataRetrievalException e )
|
||||
{
|
||||
throw new ArtifactResolutionException( "Error downloading artifact " + artifact, e );
|
||||
}
|
||||
|
||||
return artifact;
|
||||
|
|
|
@ -20,6 +20,8 @@ import org.apache.maven.artifact.Artifact;
|
|||
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
|
||||
* @version $Id: ArtifactTransformation.java,v 1.1 2005/03/03 15:37:25
|
||||
|
@ -33,10 +35,14 @@ public interface ArtifactTransformation
|
|||
* Take in a artifact and return the transformed artifact for locating in the remote repository. If no
|
||||
* transformation has occured the original artifact is returned.
|
||||
*
|
||||
* @param artifact Artifact to be transformed.
|
||||
* @param artifact Artifact to be transformed.
|
||||
* @param remoteRepositories the repositories to check
|
||||
* @param localRepository the local repository
|
||||
* @return The transformed Artifact
|
||||
*/
|
||||
Artifact transformForResolve( Artifact artifact );
|
||||
public Artifact transformForResolve( Artifact artifact, List remoteRepositories,
|
||||
ArtifactRepository localRepository )
|
||||
throws ArtifactMetadataRetrievalException;
|
||||
|
||||
/**
|
||||
* Take in a artifact and return the transformed artifact for locating in the local repository. If no
|
||||
|
|
|
@ -24,8 +24,10 @@ import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
|
|||
import org.apache.maven.artifact.metadata.SnapshotArtifactMetadata;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
|
||||
|
@ -38,165 +40,74 @@ public class SnapshotTransformation
|
|||
{
|
||||
private WagonManager wagonManager;
|
||||
|
||||
/* TODO: use and remove
|
||||
public Artifact transform( Artifact artifact, ArtifactRepository localRepository, List repositories,
|
||||
Map parameters )
|
||||
throws Exception
|
||||
/**
|
||||
* @todo very primitve. Probably we can resolvedArtifactCache artifacts themselves in a central location, as well as reset the flag over time in a long running process.
|
||||
*/
|
||||
private static Set resolvedArtifactCache = new HashSet();
|
||||
|
||||
public Artifact transformForResolve( Artifact artifact, List remoteRepositories,
|
||||
ArtifactRepository localRepository )
|
||||
throws ArtifactMetadataRetrievalException
|
||||
{
|
||||
Date localVersion = getLocalVersion( artifact, localRepository );
|
||||
|
||||
Date remoteVersion = getRemoteVersion( artifact, repositories, localRepository );
|
||||
|
||||
if ( remoteVersion != null )
|
||||
if ( isSnapshot( artifact ) && !alreadyResolved( artifact ) )
|
||||
{
|
||||
//if local version is unknown (null) it means that
|
||||
//we don't have this file locally. so we will be happy
|
||||
// to have any snapshot.
|
||||
// we wil download in two cases:
|
||||
// a) we don't have any snapot in local repo
|
||||
// b) we have found newer version in remote repository
|
||||
if ( localVersion == null || localVersion.before( remoteVersion ) )
|
||||
// TODO: this mostly works, however...
|
||||
// - poms and jars are different, so both are checked individually
|
||||
// - when a pom is downloaded, it prevents the JAR getting downloaded because of the timestamp
|
||||
// - need to gather first, group them all up by groupId/artifactId, then go after them
|
||||
/*
|
||||
SnapshotArtifactMetadata localMetadata;
|
||||
try
|
||||
{
|
||||
// here we know that we have artifact like foo-1.2-SNAPSHOT.jar
|
||||
// and the remote timestamp is something like 20010304.121212
|
||||
// so we might as well fetch foo-1.2-20010304.121212.jar
|
||||
// but we are just going to fetch foo-1.2-SNAPSHOT.jar.
|
||||
// We can change the strategy which is used here later on
|
||||
localMetadata = SnapshotArtifactMetadata.readLocalSnapshotMetadata( artifact, localRepository );
|
||||
}
|
||||
catch ( ArtifactPathFormatException e )
|
||||
{
|
||||
throw new ArtifactMetadataRetrievalException( "Error reading local metadata", e );
|
||||
}
|
||||
catch ( IOException e )
|
||||
{
|
||||
throw new ArtifactMetadataRetrievalException( "Error reading local metadata", e );
|
||||
}
|
||||
|
||||
// @todo we will delete old file first.
|
||||
//it is not really a right thing to do. Artifact Dowloader
|
||||
// should
|
||||
// fetch to temprary file and replace the old file with the new
|
||||
// one once download was finished
|
||||
boolean foundRemote = false;
|
||||
for ( Iterator i = remoteRepositories.iterator(); i.hasNext(); )
|
||||
{
|
||||
ArtifactRepository remoteRepository = (ArtifactRepository) i.next();
|
||||
|
||||
artifact.getFile().delete();
|
||||
SnapshotArtifactMetadata remoteMetadata = SnapshotArtifactMetadata.createRemoteSnapshotMetadata(
|
||||
artifact );
|
||||
remoteMetadata.retrieveFromRemoteRepository( remoteRepository, wagonManager );
|
||||
|
||||
artifactResolver.resolve( artifact, repositories, localRepository );
|
||||
|
||||
File snapshotVersionFile = getSnapshotVersionFile( artifact, localRepository );
|
||||
|
||||
String timestamp = getTimestamp( remoteVersion );
|
||||
|
||||
// delete old one
|
||||
if ( snapshotVersionFile.exists() )
|
||||
if ( remoteMetadata.compareTo( localMetadata ) > 0 )
|
||||
{
|
||||
snapshotVersionFile.delete();
|
||||
// TODO: investigate transforming this in place, in which case resolve can return void
|
||||
artifact = createArtifactCopy( artifact, remoteMetadata );
|
||||
artifact.setRepository( remoteRepository );
|
||||
|
||||
localMetadata = remoteMetadata;
|
||||
foundRemote = true;
|
||||
}
|
||||
|
||||
FileUtils.fileWrite( snapshotVersionFile.getPath(), timestamp );
|
||||
}
|
||||
}
|
||||
|
||||
if ( foundRemote )
|
||||
{
|
||||
artifact.addMetadata( localMetadata );
|
||||
}
|
||||
*/
|
||||
resolvedArtifactCache.add( getCacheKey( artifact ) );
|
||||
}
|
||||
return artifact;
|
||||
}
|
||||
|
||||
private File getSnapshotVersionFile( Artifact artifact, ArtifactRepository localRepository )
|
||||
private boolean alreadyResolved( Artifact artifact )
|
||||
{
|
||||
return null;
|
||||
//return new File( localRepository.fullArtifactPath( artifact ) );
|
||||
return resolvedArtifactCache.contains( getCacheKey( artifact ) );
|
||||
}
|
||||
|
||||
private Date getRemoteVersion( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository )
|
||||
throws Exception
|
||||
private static String getCacheKey( Artifact artifact )
|
||||
{
|
||||
Date retValue = null;
|
||||
|
||||
artifactResolver.resolve( artifact, remoteRepositories, localRepository );
|
||||
|
||||
String timestamp = FileUtils.fileRead( artifact.getPath() );
|
||||
|
||||
retValue = parseTimestamp( timestamp );
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
private Date getLocalVersion( Artifact artifact, ArtifactRepository localRepository )
|
||||
{
|
||||
//assert artifact.exists();
|
||||
|
||||
Date retValue = null;
|
||||
|
||||
try
|
||||
{
|
||||
File file = getSnapshotVersionFile( artifact, localRepository );
|
||||
|
||||
if ( file.exists() )
|
||||
{
|
||||
String timestamp = FileUtils.fileRead( file );
|
||||
|
||||
retValue = parseTimestamp( timestamp );
|
||||
|
||||
}
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
|
||||
if ( retValue == null )
|
||||
{
|
||||
//try "traditional method" used in maven1 for obtaining snapshot
|
||||
// version
|
||||
|
||||
File file = artifact.getFile();
|
||||
|
||||
if ( file.exists() )
|
||||
{
|
||||
retValue = new Date( file.lastModified() );
|
||||
|
||||
//@todo we should "normalize" the time.
|
||||
|
||||
//
|
||||
// TimeZone gmtTimeZone = TimeZone.getTimeZone( "GMT" );
|
||||
// TimeZone userTimeZone = TimeZone.getDefault(); long diff =
|
||||
//
|
||||
}
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
private final static String DATE_FORMAT = "yyyyMMdd.HHmmss";
|
||||
|
||||
private static SimpleDateFormat getFormatter()
|
||||
{
|
||||
SimpleDateFormat formatter = new SimpleDateFormat( DATE_FORMAT );
|
||||
|
||||
formatter.setTimeZone( TimeZone.getTimeZone( "GMT" ) );
|
||||
|
||||
return formatter;
|
||||
}
|
||||
|
||||
public static String getTimestamp()
|
||||
{
|
||||
Date now = new Date();
|
||||
|
||||
SimpleDateFormat formatter = getFormatter();
|
||||
|
||||
String retValue = formatter.format( now );
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
public static Date parseTimestamp( String timestamp )
|
||||
throws ParseException
|
||||
{
|
||||
Date retValue = getFormatter().parse( timestamp );
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
public static String getTimestamp( Date snapshotVersion )
|
||||
{
|
||||
String retValue = getFormatter().format( snapshotVersion );
|
||||
|
||||
return retValue;
|
||||
}
|
||||
*/
|
||||
public Artifact transformForResolve( Artifact artifact )
|
||||
{
|
||||
// TODO: implement
|
||||
return artifact;
|
||||
return artifact.getConflictId();
|
||||
}
|
||||
|
||||
public Artifact transformForInstall( Artifact artifact, ArtifactRepository localRepository )
|
||||
|
@ -221,20 +132,26 @@ public class SnapshotTransformation
|
|||
|
||||
// TODO: note, we could currently transform this in place, as it is only used through the deploy mojo,
|
||||
// which creates the artifact and then disposes of it
|
||||
List list = artifact.getMetadataList();
|
||||
artifact = new DefaultArtifact( artifact.getGroupId(), artifact.getArtifactId(), metadata.getVersion(),
|
||||
artifact.getScope(), artifact.getType(), artifact.getClassifier() );
|
||||
for ( Iterator i = list.iterator(); i.hasNext(); )
|
||||
{
|
||||
ArtifactMetadata m = (ArtifactMetadata) i.next();
|
||||
m.setArtifact( artifact );
|
||||
artifact.addMetadata( m );
|
||||
}
|
||||
artifact = createArtifactCopy( artifact, metadata );
|
||||
artifact.addMetadata( metadata );
|
||||
}
|
||||
return artifact;
|
||||
}
|
||||
|
||||
private Artifact createArtifactCopy( Artifact artifact, SnapshotArtifactMetadata metadata )
|
||||
{
|
||||
List list = artifact.getMetadataList();
|
||||
artifact = new DefaultArtifact( artifact.getGroupId(), artifact.getArtifactId(), metadata.getVersion(),
|
||||
artifact.getScope(), artifact.getType(), artifact.getClassifier() );
|
||||
for ( Iterator i = list.iterator(); i.hasNext(); )
|
||||
{
|
||||
ArtifactMetadata m = (ArtifactMetadata) i.next();
|
||||
m.setArtifact( artifact );
|
||||
artifact.addMetadata( m );
|
||||
}
|
||||
return artifact;
|
||||
}
|
||||
|
||||
private static boolean isSnapshot( Artifact artifact )
|
||||
{
|
||||
return artifact.getVersion().endsWith( "SNAPSHOT" );
|
||||
|
|
|
@ -159,10 +159,10 @@ public class DefaultPluginManager
|
|||
MojoDescriptor mojoDescriptor = mavenMojoDescriptor.getMojoDescriptor();
|
||||
|
||||
mojoDescriptors.put( mojoDescriptor.getId(), mojoDescriptor );
|
||||
|
||||
String key = constructPluginKey( pluginDescriptor.getGroupId(), pluginDescriptor.getArtifactId() );
|
||||
pluginDescriptors.put( key, pluginDescriptor );
|
||||
}
|
||||
|
||||
String key = constructPluginKey( pluginDescriptor.getGroupId(), pluginDescriptor.getArtifactId() );
|
||||
pluginDescriptors.put( key, pluginDescriptor );
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
@ -267,9 +267,8 @@ public class DefaultPluginManager
|
|||
|
||||
artifactFactory = (ArtifactFactory) container.lookup( ArtifactFactory.ROLE );
|
||||
|
||||
Artifact pluginArtifact = artifactFactory.createArtifact( AbstractPlugin.getDefaultPluginGroupId(),
|
||||
artifactId, version, null, MAVEN_PLUGIN,
|
||||
null );
|
||||
Artifact pluginArtifact = artifactFactory.createArtifact( groupId, artifactId, version, null,
|
||||
MAVEN_PLUGIN, null );
|
||||
|
||||
addPlugin( pluginArtifact, session );
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue