René Zanner created MINDEXER-49:
-----------------------------------

             Summary: M2GavCalculator does not parse GAV correctly for 
classifiers with dots
                 Key: MINDEXER-49
                 URL: https://jira.codehaus.org/browse/MINDEXER-49
             Project: Maven Indexer
          Issue Type: Bug
    Affects Versions: 4.1.2, 4.1.1
         Environment: all
            Reporter: René Zanner
            Priority: Critical


When having a classifier with dots (classifier.with.dots) and an extension with 
or without dots (e.g. tar.gz), the calculation of Gav changes classifier and 
type/extension to something clearly not intended:

|| ||Attached artifact definition||M2GavCalculator result||
||classifier|classifier.with.dots|classifier|
||extension/type|tar.gz|with.dots.tar.gz|

The problem seems to be located in lines 136ff, 175ff *and* 216ff (do you have 
a code duplication issue as well? ;-) ): 

{code}
int nExtPos = tail.indexOf( '.' );
...
ext = tail.substring( nExtPos + 1 );
classifier = tail.charAt( 0 ) == '-' ? tail.substring( 1, nExtPos ) : null;
{code}

This code assumes that the classifier ends at the first dot in the "tail" 
(which is everything after the version number).

Since Maven allows dots in classifiers _as well as in extensions_, the parsing 
has to be made more intelligent. So, it is not enough to just turn the parsing 
around and use the part after the last dot as extension and before it as 
classifier (that's why I used the 'tar.gz' extension in my example above).

I do not have a solution for this except checking for well-known extensions 
(tar.gz, xml, jar, zip, a.s.o.) and build the classifier/extension parsing 
around it.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to