You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "nicolas de loof (JIRA)" <ji...@codehaus.org> on 2007/02/07 16:13:44 UTC
[jira] Reopened: (MRM-153) when used as a maven1 proxy, Archiva
should handle relocation from maven2 poms
[ http://jira.codehaus.org/browse/MRM-153?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
nicolas de loof reopened MRM-153:
---------------------------------
This feature is broken by the use of DAV repository in place of the original "/proxy" path.
in ProxiedDavServer :
if ( WebdavMethodUtil.isReadMethod( request.getRequest().getMethod() ) )
{
if ( !hasResource( request.getLogicalResource() ) )
{
fetchContentFromProxies( request );
}
}
davServer.process( request, response );
> The relocation is handled in fetchContentFromProxies( request ); but the relocated path is not reported in the request
The request can be updated, but this requires to convert the File object into a path in the managed repository. I solved this by using :
File file = proxyRequestHandler.get( request.getLogicalResource(), this.proxiedRepositories, this.managedRepository,
this.wagonProxy );
File baseDir = new File( this.managedRepository.getBasedir() );
String path = file.getAbsolutePath().substring( baseDir.getAbsolutePath().length() );
request.getRequest().setPathInfo( path );
... but those absolutePath.substring don't look very clean. Is there any other way to compute this Path from the File object and the managedRepository ? An alternative would be to return a "RepositoryEntry" in place of a File, that would contain both File and path.
> when used as a maven1 proxy, Archiva should handle relocation from maven2 poms
> ------------------------------------------------------------------------------
>
> Key: MRM-153
> URL: http://jira.codehaus.org/browse/MRM-153
> Project: Archiva
> Issue Type: Improvement
> Environment: Archiva as a repository proxy for maven1
> Reporter: nicolas de loof
> Assigned To: Brett Porter
> Priority: Minor
> Fix For: 1.0
>
> Attachments: DefaultProxyManager.java.patch, DefaultProxyManager.java.patch, MRM-153-test.patch, MRM-153.patch, MRM-155.patch, patch.patch
>
>
> When a maven1 client asks for /servletapi/jars/servletapi-2.4.jar, Archiva converts path to the maven2 location of this artifact. As maven1 has no relocation support, the jar is required in the repo.
> Archiva can be more that a proxy : download the artifact POM, read relocation infos, and return the relocated jar.
> attached Patch add a new "applyRelocation" to DefaultProxyManager.
> I've tried this code with the servletapi example, but it may be bad designed as I just discovered maven / archiva APIs.
--
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