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]

Reply via email to