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

2017-08-08 Thread Arnaud Jeansen (JIRA)
Arnaud Jeansen created IVY-1565:
---

 Summary: 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)


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

2017-08-08 Thread jaikiran pai (JIRA)

[ 
https://issues.apache.org/jira/browse/IVY-1565?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)