[ 
https://issues.apache.org/jira/browse/FELIX-3070?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chetan Mehrotra updated FELIX-3070:
-----------------------------------

    Attachment: scr-bug.zip

Maven project to demonstrate the issue

> SCR Plugin and dependencies with classifier cause issue depending on the 
> order of dependency in pom.xml
> -------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-3070
>                 URL: https://issues.apache.org/jira/browse/FELIX-3070
>             Project: Felix
>          Issue Type: Bug
>          Components: Maven SCR Plugin
>    Affects Versions: maven-scr-plugin-1.7.2
>            Reporter: Chetan Mehrotra
>            Priority: Minor
>         Attachments: scr-bug-log.txt, scr-bug.zip, scr-log.txt
>
>
> Here is the scenario. I have two modules 
> - ModuleA - It generates two artifact. One the main artifact and other a 
> client artifact which has classifier set to 'client' i.e. 
> -- scr-bug:moduleA:jar:1.0.0-SNAPSHOT
> -- scr-bug:moduleA:jar:client:1.0.0-SNAPSHOT
> - Module B - Has dependency on both artifacts.
> Module A has a abstract service class which has Component 's 
> componentAbstract set to true. This class has a service reference entry i.e. 
> a variable with @Reference marked. Module B has a ExampleService which 
> extends the AbstractService and it has been marked aith Component annotation
> Now when ModuleB has dependencies defined in order 
> -- scr-bug:moduleA:jar:client:1.0.0-SNAPSHOT
> -- scr-bug:moduleA:jar:1.0.0-SNAPSHOT
> Then SCR Plugin is able to locate the abstract component configuration and 
> adds dependency on the required service (referred in AbstractService). 
> However if the order is changed (i.e. classifier entry comes later) then SCR 
> plguin ignores the config.
> I have also attached the debug log. 
> If you see scr-bug-log.txt (when dependency entry with classifier comes 
> later) then it has entries which indicates that dependency without classifier 
> has been ignored 
> [DEBUG] Checking artifact 
> org.apache.felix:org.apache.felix.scr.annotations:jar:1.6.0:provided
> [DEBUG] Resolving artifact 
> org.apache.felix:org.apache.felix.scr.annotations:jar:1.6.0:provided
> [DEBUG] Checking artifact scr-bug:moduleA:jar:client:1.0.0-SNAPSHOT:compile
> [DEBUG] Resolving artifact scr-bug:moduleA:jar:client:1.0.0-SNAPSHOT:compile
> Seeing the code of MavenJavaClassDescriptorManager then it uses 
> MavenProject.getArtifactMap() in the getDependencies method. It internally 
> uses org.apache.maven.artifact.ArtifactUtils.artifactMapByVersionlessId [1]. 
> This method only uses artifactId and groupId to create the map key and does 
> not take into account the classifier. So the getDependencies logic should use 
> some other method to obtain the depndencies

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to