You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Yuriy Sidelnikov (Commented) (JIRA)" <ji...@apache.org> on 2012/03/06 09:51:04 UTC

[jira] [Commented] (SM-2145) jbi-maven-plugin: Artifact unexpectedly filtered

    [ 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