maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From René Zanner (JIRA) <>
Subject [jira] (MINDEXER-49) M2GavCalculator does not parse GAV correctly for classifiers with dots
Date Sat, 28 Jun 2014 11:44:10 GMT


René Zanner commented on MINDEXER-49:

Whether or not it's a good idea to have dots in the classifier - it's supported by Maven and
therefore should be supported by the Indexer as well.

> M2GavCalculator does not parse GAV correctly for classifiers with dots
> ----------------------------------------------------------------------
>                 Key: MINDEXER-49
>                 URL:
>             Project: Maven Indexer
>          Issue Type: Bug
>    Affects Versions: 4.1.1, 4.1.2
>         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 was sent by Atlassian JIRA

View raw message