mirror of https://github.com/apache/archiva.git
finally use a relocation for MRM-1761
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1549548 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4b7ba850f4
commit
3f90ad3744
|
@ -154,7 +154,6 @@ public class MockBeanServices
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getFilePathWithVersion( String requestPath, ManagedRepositoryContent managedRepositoryContent )
|
public String getFilePathWithVersion( String requestPath, ManagedRepositoryContent managedRepositoryContent )
|
||||||
throws LayoutException, XMLException
|
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,7 @@ import org.apache.archiva.indexer.merger.IndexMergerRequest;
|
||||||
import org.apache.archiva.indexer.merger.TemporaryGroupIndex;
|
import org.apache.archiva.indexer.merger.TemporaryGroupIndex;
|
||||||
import org.apache.archiva.indexer.search.RepositorySearch;
|
import org.apache.archiva.indexer.search.RepositorySearch;
|
||||||
import org.apache.archiva.maven2.metadata.MavenMetadataReader;
|
import org.apache.archiva.maven2.metadata.MavenMetadataReader;
|
||||||
|
import org.apache.archiva.metadata.repository.storage.RelocationException;
|
||||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorage;
|
import org.apache.archiva.metadata.repository.storage.RepositoryStorage;
|
||||||
import org.apache.archiva.model.ArchivaRepositoryMetadata;
|
import org.apache.archiva.model.ArchivaRepositoryMetadata;
|
||||||
import org.apache.archiva.model.ArtifactReference;
|
import org.apache.archiva.model.ArtifactReference;
|
||||||
|
@ -537,10 +538,10 @@ public class ArchivaDavResourceFactory
|
||||||
{
|
{
|
||||||
return repositoryStorage.getFilePathWithVersion( archivaLocator.getResourcePath(), managedRepositoryContent );
|
return repositoryStorage.getFilePathWithVersion( archivaLocator.getResourcePath(), managedRepositoryContent );
|
||||||
}
|
}
|
||||||
catch ( LayoutException e )
|
catch ( RelocationException e )
|
||||||
{
|
{
|
||||||
log.error( e.getMessage(), e );
|
log.error( e.getMessage(), e );
|
||||||
throw new DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e );
|
throw new BrowserRedirectException( e.getPath() );
|
||||||
}
|
}
|
||||||
catch ( XMLException e )
|
catch ( XMLException e )
|
||||||
{
|
{
|
||||||
|
|
|
@ -74,7 +74,7 @@ public interface RepositoryStorage
|
||||||
String getFilePath( String requestPath, ManagedRepository managedRepository );
|
String getFilePath( String requestPath, ManagedRepository managedRepository );
|
||||||
|
|
||||||
String getFilePathWithVersion( final String requestPath, ManagedRepositoryContent managedRepositoryContent )
|
String getFilePathWithVersion( final String requestPath, ManagedRepositoryContent managedRepositoryContent )
|
||||||
throws LayoutException, XMLException;
|
throws RelocationException, XMLException;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,7 @@ import org.apache.archiva.metadata.model.ProjectVersionMetadata;
|
||||||
import org.apache.archiva.metadata.repository.RepositorySessionFactory;
|
import org.apache.archiva.metadata.repository.RepositorySessionFactory;
|
||||||
import org.apache.archiva.metadata.repository.filter.Filter;
|
import org.apache.archiva.metadata.repository.filter.Filter;
|
||||||
import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
|
import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
|
||||||
|
import org.apache.archiva.metadata.repository.storage.RelocationException;
|
||||||
import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator;
|
import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator;
|
||||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorage;
|
import org.apache.archiva.metadata.repository.storage.RepositoryStorage;
|
||||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
|
import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
|
||||||
|
@ -765,10 +766,10 @@ public class Maven2RepositoryStorage
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getFilePathWithVersion( final String requestPath, ManagedRepositoryContent managedRepositoryContent )
|
public String getFilePathWithVersion( final String requestPath, ManagedRepositoryContent managedRepositoryContent )
|
||||||
throws XMLException
|
throws XMLException, RelocationException
|
||||||
{
|
{
|
||||||
|
|
||||||
if (StringUtils.endsWith( requestPath, METADATA_FILENAME ))
|
if ( StringUtils.endsWith( requestPath, METADATA_FILENAME ) )
|
||||||
{
|
{
|
||||||
return getFilePath( requestPath, managedRepositoryContent.getRepository() );
|
return getFilePath( requestPath, managedRepositoryContent.getRepository() );
|
||||||
}
|
}
|
||||||
|
@ -811,6 +812,10 @@ public class Maven2RepositoryStorage
|
||||||
artifactReference.getVersion(), "-SNAPSHOT" ) + "-" + timestamp + "-"
|
artifactReference.getVersion(), "-SNAPSHOT" ) + "-" + timestamp + "-"
|
||||||
+ buildNumber );
|
+ buildNumber );
|
||||||
|
|
||||||
|
throw new RelocationException(
|
||||||
|
"/repository/" + managedRepositoryContent.getRepository().getId() +
|
||||||
|
( StringUtils.startsWith( filePath, "/" ) ? "" : "/" ) + filePath, RelocationException.RelocationType.TEMPORARY );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return filePath;
|
return filePath;
|
||||||
|
|
Loading…
Reference in New Issue