You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by "Pavel Sher (JIRA)" <ji...@apache.org> on 2008/09/29 23:02:44 UTC

[jira] Commented: (IVY-881) Ivy incorrectly searches for an artifact if it contains / in the name

    [ https://issues.apache.org/jira/browse/IVY-881?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12635527#action_12635527 ] 

Pavel Sher commented on IVY-881:
--------------------------------

The bug still exists in Ivy-2.0 RC1. I have the following ivy.xml on server:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="1.4">
  <info .../>
  <publications>
   ...
    <artifact name="javadoc/index" type="html" ext="html" />
   ...
  </publications>
</ivy-module>

Then I am trying to download it with help of the following ivy.xml on the client side:
<ivy-module version="2.0">
<info ...>
<dependencies>
<dependency ...>
<include name="javadoc/*" type="html" ext="html" matcher="glob" />
</dependency>
</dependencies>
</ivy-module>

And Ivy fails to do that because it tries to match pattern javadoc/* to name javadoc\index.html (note the difference in slash and back slash). I had to debug through Ivy sources to understand why it happens. 

These dependencies work just fine in Ivy-1.4.1 



> Ivy incorrectly searches for an artifact if it contains / in the name
> ---------------------------------------------------------------------
>
>                 Key: IVY-881
>                 URL: https://issues.apache.org/jira/browse/IVY-881
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>            Reporter: Pavel Sher
>            Assignee: Xavier Hanin
>
> Yesterday (2008-Aug-11) I've build Ivy from the sources and found that Ivy cannot download artifact with / in its name. It seems the bug can be reproduced on windows only.  
> I have the following ivy.xml:
> <?xml version="1.0" encoding="UTF-8"?>
> <ivy-module version="2.0">
>   <info organisation="org" module="module" />
>   <dependencies>
>     <dependency org="org" name="dep" rev="rev" changing="true">
>       <include name="dir/path-to-artifact" type="zip" ext="zip" matcher="glob" />
>     </dependency>
>   </dependencies>
> </ivy-module>
> I tried to debug Ivy source code, and it looks like the problem is somewhere near this code (IvyNode.java):
> 789:     Map allArtifacts = new HashMap();
>                 for (int i = 0; i < confs.length; i++) {
>                     Artifact[] arts = md.getArtifacts(confs[i]);
>                     for (int j = 0; j < arts.length; j++) {
>                         allArtifacts.put(arts[j].getId().getArtifactId(), arts[j]);
>                     }
>                 }
> The produced Map of all artifacts contains dir\path-to-artifact instead of dir/path-to-artifact. And because of this matcher cannot find the required artifact. In Ivy-2.0-beta2 such artifacts were downloaded without problem.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.