You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by "jaikiran pai (JIRA)" <ji...@apache.org> on 2017/08/08 16:21:00 UTC

[jira] [Commented] (IVY-1565) Enable XmlModuleDescriptorParser to skip the ivy-module version check

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

jaikiran pai commented on IVY-1565:
-----------------------------------

IMO, the check for allowed versions is present to make sure the parser understands the schema/semantics of the ivy xml it's parsing. Removing that check or even letting the values be overridden probably will get you past this specific error but it still has the potential of running into issues when the parser being used is of an older version (like in this case where it is 2.2) and the ivy xml version is a higher version it doesn't know/support (like 2.4).


> Enable XmlModuleDescriptorParser to skip the ivy-module version check
> ---------------------------------------------------------------------
>
>                 Key: IVY-1565
>                 URL: https://issues.apache.org/jira/browse/IVY-1565
>             Project: Ivy
>          Issue Type: Improvement
>            Reporter: Arnaud Jeansen
>            Priority: Minor
>
> I have a very specific use case where I rewrite ivy files to pom files on the fly on a binary repository manager (artifactory).
> Basically, when an ivy-$version.xml file is published, I launch the equivalent of the Ant makePom task and save a pom file in the same directory as the ivy file.
> I am relying on an interesting feature from Artifactory called "user plugins", where groovy scripts are executed on some specific events (e.g. upload of a file)
> A sample implementation even exists at https://github.com/JFrogDev/artifactory-user-plugins/tree/master/descriptors/ivy2pom
> However, my problem is that the binary repository manager has ivy-2.2 as its library. So any attempt to transform later ivy module descriptors (versions 2.3 and 2.4) fail with:
> {noformat}
> java.text.ParseException: [invalid version 2.4 in file:/tmp/foo-5.15.9-2436013575810429206.ivy]
> {noformat}
> Is there any interest in providing a way to skip the version check in XmlModuleDescriptorParser$Parser#ivyModuleStarted or enable callers to modify ALLOWED_VERSIONS and authorize later versions?
> I have looked for a workaround for quite some time but:
> * ALLOWED_VERSIONS is final, so there is no way to switch to a new List with the versions I want
> * ALLOWED_VERSIONS is an AbstractList, so _add_ and _addAll_ are unimplemented
> * Subclassing and overriding ivyModuleStarted fails because it works with a lot of private fields directly



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)