aboutsummaryrefslogtreecommitdiffstats
path: root/archiva-modules/metadata
diff options
context:
space:
mode:
Diffstat (limited to 'archiva-modules/metadata')
-rw-r--r--archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/storage/RepositoryStorage.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/storage/RepositoryStorage.java b/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/storage/RepositoryStorage.java
index 664103dea..1c300b020 100644
--- a/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/storage/RepositoryStorage.java
+++ b/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/storage/RepositoryStorage.java
@@ -58,7 +58,18 @@ public interface RepositoryStorage
// FIXME: reconsider this API, do we want to expose storage format in the form of a path?
ArtifactMetadata readArtifactMetadataFromPath( String repoId, String path )
throws RepositoryStorageRuntimeException;
-
+
+ /**
+ * A relocation capable client will request the POM prior to the artifact, and will then read meta-data and do
+ * client side relocation. A simplier client (like maven 1) will only request the artifact and not use the
+ * metadatas.
+ * <p>
+ * For such clients, archiva does server-side relocation by reading itself the &lt;relocation&gt; element in
+ * metadatas and serving the expected artifact.
+ * @param managedRepository the used managed repository
+ * @param artifact the artifact reference
+ * @throws org.apache.archiva.policies.ProxyDownloadException
+ */
void applyServerSideRelocation( ManagedRepositoryContent managedRepository, ArtifactReference artifact )
throws ProxyDownloadException;