Thanks Benjamin. I'm now adding an it test for that.
2011/12/4 <[email protected]>: > Author: bentmann > Date: Sun Dec 4 21:52:04 2011 > New Revision: 1210240 > > URL: http://svn.apache.org/viewvc?rev=1210240&view=rev > Log: > o Revised fix from r1151426 which broke the appassembler-maven-plugin > > Modified: > > maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java > > Modified: > maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java > URL: > http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java?rev=1210240&r1=1210239&r2=1210240&view=diff > ============================================================================== > --- > maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java > (original) > +++ > maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java > Sun Dec 4 21:52:04 2011 > @@ -26,6 +26,7 @@ import java.util.List; > import org.apache.maven.RepositoryUtils; > import org.apache.maven.artifact.metadata.ArtifactMetadata; > import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; > +import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout; > import > org.apache.maven.artifact.repository.metadata.RepositoryMetadataStoreException; > import org.apache.maven.repository.Proxy; > import org.sonatype.aether.RepositorySystem; > @@ -58,6 +59,8 @@ public class LegacyLocalRepositoryManage > > private final LocalRepository repo; > > + private final boolean realLocalRepo; > + > public static RepositorySystemSession overlay( ArtifactRepository > repository, RepositorySystemSession session, > RepositorySystem system ) > { > @@ -103,6 +106,20 @@ public class LegacyLocalRepositoryManage > repo = > new LocalRepository( new File( delegate.getBasedir() ), > ( layout != null ) ? > layout.getClass().getSimpleName() : "legacy" ); > + > + /* > + * NOTE: "invoker:install" vs "appassembler:assemble": Both mojos > use the artifact installer to put an artifact > + * into a repository. In the first case, the result needs to be a > proper local repository that one can use for > + * local artifact resolution. In the second case, the result needs > to precisely obey the path information of the > + * repository's layout to allow pointing at artifacts within the > repository. Unfortunately, > + * DefaultRepositoryLayout does not correctly describe the layout of > a local repository which unlike a remote > + * repository never uses timestamps in the filename of a snapshot > artifact. The discrepancy gets notable when a > + * remotely resolved snapshot artifact gets passed into pathOf(). So > producing a proper local artifact path > + * using DefaultRepositoryLayout requires us to enforce usage of the > artifact's base version. This > + * transformation however contradicts the other use case of > precisely obeying the repository's layout. The below > + * flag tries to detect which use case applies to make both plugins > happy. > + */ > + realLocalRepo = ( layout instanceof DefaultRepositoryLayout ) && > "local".equals( delegate.getId() ); > } > > public LocalRepository getRepository() > @@ -112,7 +129,11 @@ public class LegacyLocalRepositoryManage > > public String getPathForLocalArtifact( Artifact artifact ) > { > - return delegate.pathOf( RepositoryUtils.toArtifact( > artifact.setVersion( artifact.getBaseVersion() ) ) ); > + if ( realLocalRepo ) > + { > + return delegate.pathOf( RepositoryUtils.toArtifact( > artifact.setVersion( artifact.getBaseVersion() ) ) ); > + } > + return delegate.pathOf( RepositoryUtils.toArtifact( artifact ) ); > } > > public String getPathForRemoteArtifact( Artifact artifact, > RemoteRepository repository, String context ) > > -- Olivier Lamy Talend: http://coders.talend.com http://twitter.com/olamy | http://linkedin.com/in/olamy --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
