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

Reply via email to