Uploaded image for project: 'Ivy'
  1. Ivy
  2. IVY-1565

Enable XmlModuleDescriptorParser to skip the ivy-module version check

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Won't Do
    • None
    • None
    • None
    • None

    Description

      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:

      java.text.ParseException: [invalid version 2.4 in file:/tmp/foo-5.15.9-2436013575810429206.ivy]
      

      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

      Attachments

        Activity

          People

            Unassigned Unassigned
            ajeans Arnaud Jeansen
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: