[ 
https://issues.apache.org/jira/browse/MNG-8106?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tamas Cservenak updated MNG-8106:
---------------------------------
    Description: 
In case certain directory role in repository is manifold (which IS against best 
practices), data loss occurs. Metadata will contain this or that, but not both 
data.

Example: consider project producing these artifacts
 * org.foo:bar:1.0
 * org.foo.bar:baz:1.0

In this case, the local (and remote) repository path {{org/foo/bar}} that is a 
directory, will overlap in a way, it is G level for one artifact, and A level 
for another. Now, if org.foo.bar:baz is a Maven Plugin, the G level should 
contain plugin related (G level) metadata. At the same time, due org.foo:bar 
this directory should contain A level metadata (list of versions). Affected 
maven versions will simply drop "the other" metadata (so if last deployed using 
this directory as G, the A data will be missing, and other way around).

Have to note that doing this kind of naming is against "best practices", but 
still, can occur, for example in case of some refactoring/renaming of long 
running project modules.

  was:
In case certain directory role in repository is manifold (which IS against best 
practices), data loss occurs. Metadata will contain this or that, but not both 
data.

Example: consider project producing these artifacts
 * org.foo:bar:1.0
 * org.foo.bar:baz:1.0

In this case, the local (and remote) repository path {{org/foo/bar}} that is a 
directory, will overlap in a way, it is G level for one artifact, and A level 
for another. Now, if org.foo.bar:baz is a Maven Plugin, the G level should 
contain plugin related (G level) metadata. At the same time, due org.foo:bar 
this directory should contain A level metadata (list of versions). Affected 
maven versions will simply drop "the other" metadata (so if last deployed using 
this directory as G, the A data will be missing, and other way around).


> Maven Metadata corruption if repository directory role overlaps
> ---------------------------------------------------------------
>
>                 Key: MNG-8106
>                 URL: https://issues.apache.org/jira/browse/MNG-8106
>             Project: Maven
>          Issue Type: Bug
>          Components: Artifacts and Repositories
>    Affects Versions: 3.9.0, 3.9.1, 3.9.2, 3.9.3, 3.9.4, 3.9.5, 3.9.6, 
> 4.0.0-alpha-2, 4.0.0-alpha-3, 4.0.0-alpha-4, 4.0.0-alpha-5, 4.0.0-alpha-7, 
> 4.0.0-alpha-8, 4.0.0-alpha-9, 4.0.0-alpha-10, 4.0.0-alpha-12, 4.0.0-alpha-13
>            Reporter: Tamas Cservenak
>            Assignee: Tamas Cservenak
>            Priority: Major
>             Fix For: 3.9.7, 4.0.0-beta-1
>
>
> In case certain directory role in repository is manifold (which IS against 
> best practices), data loss occurs. Metadata will contain this or that, but 
> not both data.
> Example: consider project producing these artifacts
>  * org.foo:bar:1.0
>  * org.foo.bar:baz:1.0
> In this case, the local (and remote) repository path {{org/foo/bar}} that is 
> a directory, will overlap in a way, it is G level for one artifact, and A 
> level for another. Now, if org.foo.bar:baz is a Maven Plugin, the G level 
> should contain plugin related (G level) metadata. At the same time, due 
> org.foo:bar this directory should contain A level metadata (list of 
> versions). Affected maven versions will simply drop "the other" metadata (so 
> if last deployed using this directory as G, the A data will be missing, and 
> other way around).
> Have to note that doing this kind of naming is against "best practices", but 
> still, can occur, for example in case of some refactoring/renaming of long 
> running project modules.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to