[ 
https://issues.apache.org/jira/browse/SM-2145?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13223101#comment-13223101
 ] 

Yuriy Sidelnikov commented on SM-2145:
--------------------------------------

The problem can be fixed by the following patch. Patch has been created for 
version 4.4
GenerateComponentMojo.java      
@@ -184,7 +184,7 @@
         ArtifactFilter filter = new ArtifactFilter() {
             public boolean include(Artifact artifact) {
                 return !artifact.isOptional() &&
-                        (artifact.getScope() == Artifact.SCOPE_RUNTIME || 
artifact.getScope() == Artifact.SCOPE_COMPILE);
+                       (artifact.getScope().equals(Artifact.SCOPE_RUNTIME) || 
artifact.getScope().equals(Artifact.SCOPE_COMPILE));
             }
         };

+++ GenerateComponentDescriptorMojo.java
@@ -224,7 +224,7 @@
         ArtifactFilter filter = new ArtifactFilter() {
             public boolean include(Artifact artifact) {
                 return !artifact.isOptional() &&
-                        (artifact.getScope() == Artifact.SCOPE_RUNTIME || 
artifact.getScope() == Artifact.SCOPE_COMPILE);
+                        (artifact.getScope().equals(Artifact.SCOPE_RUNTIME) || 
artifact.getScope().equals(Artifact.SCOPE_COMPILE));
             }
         };

The "==" operator even for final static strings works fine only if strings were 
loaded by the same classloader. 
                
> jbi-maven-plugin: Artifact unexpectedly filtered
> ------------------------------------------------
>
>                 Key: SM-2145
>                 URL: https://issues.apache.org/jira/browse/SM-2145
>             Project: ServiceMix
>          Issue Type: Bug
>          Components: tooling
>    Affects Versions: jbi-maven-plugin-4.3, jbi-maven-plugin-4.4, 
> jbi-maven-plugin-4.5
>            Reporter: Julien Blass
>            Assignee: Jean-Baptiste Onofré
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> Some of the artifacts defined in my project's pom.xml in scope 'compile' are 
> unexpectedly filtered during the generation of a component.
> By debugging the generation process, I have found that this is due to the use 
> of '==' to compare the strings defining two artifact's scopes 
> (GenerateComponentDescriptorMojo.java, line 225). For a reason that I could 
> not establish yet, my artifact as a scope value of 'compile' but the string 
> object is not equal to Artifact.SCOPE_COMPILE. 
> I think that one solution for this bug is either to change 
> "artifact.getScope() == Artifact.SCOPE_COMPILE" by 
> "artifact.getScope().equals(Artifact.SCOPE_COMPILE)" or to find the places 
> where the scope of the artifact is set to a value that is not a constant of 
> the class org.apache.maven.artifact.Artifact.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to