Mirror/Proxy functionality is broken in Archiva
-----------------------------------------------

                 Key: MRM-244
                 URL: http://jira.codehaus.org/browse/MRM-244
             Project: Archiva
          Issue Type: Bug
          Components: remote proxy
            Reporter: Aaron Digulla
            Priority: Critical


Currently, the archiva admin has to specify which sites Archiva should 
proxy/mirror and in which managed repository the downloaded artefacts should 
end up.

This approach has several drawbacks:

- Resources with a similar name but from different sites can end up in the same 
managed repository. This is deadly if there is a bug in the resource which is 
fixed on site A but archiva downloads it from B. Since the resource exists, 
Archiva will not download it again even after the problem is fixed and the 
maven mirrors re-synchronized.

- Since every POM can define their own repositories, it's very hard to maintain 
the list of proxied repositories. The situation gets worse when you download a 
new plugin which in turn wants artefacts from other sites which are not yet in 
the list. Maven will not use Archiva for these which means every developer 
downloads those resources.

This also means I have to configure maven to be able to access the internet 
directly while I would prefer to be able to force it to make all connections 
via archiva. This way, I can fix all broken POMs inhouse, for example.

- In maven's settings, I have to specify which mirrors exist. The key for the 
decision is the ID of the repository. Unfortunately, the ID is just an 
arbitrary string. Many projects use different IDs for the same repository. Some 
use "codehaus.org", some use "codehaus". I've seen POMs which think 
"codehaus.org" is for snapshots while they use "codehaus" for the releases.

In the end, there is no way to map repository "IDs" to mirrors which will work 
for all maven projects out there.

Therefore, I suggest that you change the handling of proxied repositories. 
Instead of using mirror settings, I would prefer to use the proxy settings of 
maven to integrate Archiva.

Archiva should keep a blacklist of repositories which are to be ignored but 
everything else should be downloaded into a mirror directory which contains the 
hostnames of the sites as first level. This means artefacts from 
"http://people.apache.org/maven-snapshot-repository/"; would end up in 
C:\archiva\mirror\people.apache.org\maven-snapshot-repository\..."

If the port number is != 80, you can add another level for the port.

This should allow us to force maven to download everything through Archiva. We 
would be able to control which plugins and which versions are used and we could 
fix broken POMs. We could even put patched versions of plugins into the mirror 
directory.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to