[ 
https://jira.codehaus.org/browse/MNG-5591?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=341958#comment-341958
 ] 

Mikolaj Izdebski edited comment on MNG-5591 at 2/24/14 6:21 PM:
----------------------------------------------------------------

The dummy workspace reader I provided is supposed simulate an empty workspace, 
which doesn't contain any artifacts.  I expect Maven behaviour to remain 
unchanged after adding empty workspace, but Maven 3.2.1 changes behaviour and 
that's what this bug report is about.  (Behaviour changes no matter if 
workspace is empty or not, but empty workspace is the simplest reproducer.  The 
actual workspace reader is avaiable at Github, but it shouldn't be needed to 
reproduce the problem. The code is at 
https://github.com/mizdebsk/xmvn/blob/master/xmvn-connector-aether/src/main/java/org/fedoraproject/xmvn/connector/aether/XMvnWorkspaceReader.java)

I think the problem is in incorrect {{@Named}} annotation in {{ReactorReader}} 
class.  In this case {{@Named}} with no argument is equivalent to {{@Named( 
"org.apache.maven.ReactorReader" )}}, however code in {{DefaultMaven}} is 
calling {{PlexusContainer.lookup()}} with no hint argument which is equivalent 
to hint {{default}}.  Sisu uses implicit role hint {{default}} only for 
components which class names are prefixed with {{Default}}.  Since 
{{ReactorReader}} is not, role hint {{default}} needs to be explicitly added as 
argument to {{@Named}}.


was (Author: mizdebsk):
The dummy workspace reader I provided is supposed simulate an empty workspace, 
which doesn't contain any artifacts.  I expect Maven behaviour to remain 
unchanged after adding empty workspace, but Maven 3.2.1 changes behaviour and 
that's what this bug report is about.  (Behaviour changes no matter if 
workspace is empty or not, but empty workspace is the simplest reproducer.  The 
actual workspace reader is avaiable at Github, but it shouldn't be needed to 
reproduce the problem. The code is at 
https://github.com/mizdebsk/xmvn/blob/master/xmvn-connector-aether/src/main/java/org/fedoraproject/xmvn/connector/aether/XMvnWorkspaceReader.java)

I think the problem is in incorrect {{@Named}} annotation in {{ReactorReader}} 
class.  In this case {{@Named}} with no argument is equivalent to {{@Named( 
"org.apache.maven.ReactorReader" )}}, however code in {{DefaultMaven}} is 
calling {{PlexusContainer.lookup()}} with no hint argument which is equivalent 
to hint {{default}}.  Sisu uses implicit role hint {{default}} only for 
components which class names are prefixed with {{Default}}.  Since 
{{ReactorReader}} is not, hole hint {{default}} needs to be explicitly added as 
argument to {{@Named}}.

> Installing workspace reader triggers MNG-5503
> ---------------------------------------------
>
>                 Key: MNG-5591
>                 URL: https://jira.codehaus.org/browse/MNG-5591
>             Project: Maven 2 & 3
>          Issue Type: Bug
>          Components: Artifacts and Repositories
>    Affects Versions: 3.2.1
>            Reporter: Mikolaj Izdebski
>         Attachments: 
> 0001-MNG-5591-Set-role-hint-for-ReactorReader-to-default.patch, 
> dummy-extension.tar.gz
>
>
> It looks like Maven 3.2.1 introduced a regression.  Installing
> extension which provides workspace reader triggers MNG-5503.
> Maven resolves artifacts from reactor, workspace, repositories (in
> that order).  In standard Maven distribution there is no workspace,
> but Maven provides an extension point which allows extensions to
> install workspace reader by providing a component with role
> {{org.eclipse.aether.repository.WorkspaceReader}} and role hint {{ide}}.
> Installing workspace reader extension in Maven 3.2.1 triggers a
> regression - Maven fails to resolve artifacts produced by reactor
> build (MNG-5503).  Even though artifact is present in reactor Maven
> queries workspace about it and if artifact is not found there it
> continues with repositories.  Expected behaviour is resolving artifact
> from reactor.
> Steps to reproduce this:
> 1) download and extract {{apache-maven-3.2.1-bin.tar.gz}}
> 2) download dummy-extension.tar.gz and build it with {{mvn package}}
> 3) download reproducer for MNG-5503 from: 
> https://bugzilla.redhat.com/attachment.cgi?id=784786
> 4) try to build reproducer project, it succeeds
> 5) copy {{dummy-extension-1.0.0.jar}} to Maven {{lib/ext}}
> 6) try to build reproducer project, it fails
> When repeating the same steps for Maven 3.1.1 failure is not reproducible.



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)

Reply via email to