diff --git a/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo b/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
index 55ffc242a..43b383819 100644
--- a/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
+++ b/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
@@ -840,6 +840,14 @@
true
The id of the repository group.
+
+ mergedIndexPath
+ 1.2.0+
+ String
+ false
+ /.indexer
+ The path of the merged index.
+
repositories
1.2.0+
diff --git a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
index 25fac26ad..bc72bccce 100644
--- a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
+++ b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
@@ -262,8 +262,8 @@ public class ArchivaDavResourceFactory
// handle browse requests for virtual repos
if ( RepositoryPathUtil.getLogicalResource( archivaLocator.getOrigResourcePath() ).endsWith( "/" ) )
{
- return getResource( request, repoGroupConfig.getRepositories(), archivaLocator,
- archivaLocator.getRepositoryId() );
+ return getResourceFromGroup( request, repoGroupConfig.getRepositories(), archivaLocator,
+ repoGroupConfig );
}
else
{
@@ -904,8 +904,9 @@ public class ArchivaDavResourceFactory
}
}
- private DavResource getResource( DavServletRequest request, List repositories,
- ArchivaDavResourceLocator locator, String groupId )
+ private DavResource getResourceFromGroup( DavServletRequest request, List repositories,
+ ArchivaDavResourceLocator locator,
+ RepositoryGroupConfiguration repositoryGroupConfiguration )
throws DavException
{
List mergedRepositoryContents = new ArrayList();
@@ -930,9 +931,11 @@ public class ArchivaDavResourceFactory
// remove last /
String pathInfo = StringUtils.removeEnd( request.getPathInfo(), "/" );
- if ( StringUtils.endsWith( pathInfo, "/.indexer" ) )
+ if ( StringUtils.endsWith( pathInfo, "/" + repositoryGroupConfiguration.getMergedIndexPath() )
+ || StringUtils.endsWith( pathInfo, "/" + repositoryGroupConfiguration.getMergedIndexPath() + "/" ) )
{
- File mergedRepoDir = buildMergedIndexDirectory( repositories, activePrincipal, request, groupId );
+ File mergedRepoDir = buildMergedIndexDirectory( repositories, activePrincipal, request,
+ repositoryGroupConfiguration.getId() );
mergedRepositoryContents.add( mergedRepoDir );
}
else