From: Olivier Lamy Date: Sun, 21 Apr 2013 23:36:06 +0000 (+0000) Subject: add mergedIndexPath in repo group view X-Git-Tag: archiva-1.4-M4~76 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=c44809424f93da315de913feb7645d9ad253c292;p=archiva.git add mergedIndexPath in repo group view git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1470364 13f79535-47bb-0310-9956-ffa450edef68 --- 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 3d99333d0..79e2d4195 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 @@ -73,6 +73,7 @@ import org.apache.archiva.xml.XMLException; import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.SystemUtils; import org.apache.jackrabbit.webdav.DavException; import org.apache.jackrabbit.webdav.DavResource; import org.apache.jackrabbit.webdav.DavResourceFactory; @@ -445,7 +446,7 @@ public class ArchivaDavResourceFactory String rootPath = StringUtils.substringBeforeLast( pathInfo, "/" ); - if ( StringUtils.endsWith( rootPath, "/.indexer" ) ) + if ( StringUtils.endsWith( rootPath, "/" + repoGroupConfig.getMergedIndexPath() ) ) { // we are in the case of index file request String requestedFileName = StringUtils.substringAfterLast( pathInfo, "/" ); @@ -926,11 +927,12 @@ public class ArchivaDavResourceFactory boolean allow = isAllowedToContinue( request, repositories, activePrincipal ); + // remove last / + String pathInfo = StringUtils.removeEnd( request.getPathInfo(), "/" ); + if ( allow ) { - // remove last / - String pathInfo = StringUtils.removeEnd( request.getPathInfo(), "/" ); if ( StringUtils.endsWith( pathInfo, repositoryGroupConfiguration.getMergedIndexPath() ) ) { File mergedRepoDir = @@ -939,6 +941,23 @@ public class ArchivaDavResourceFactory } else { + if ( StringUtils.equalsIgnoreCase( pathInfo, "/" + repositoryGroupConfiguration.getId() ) ) + { + File tmpDirectory = new File( SystemUtils.getJavaIoTmpDir(), + repositoryGroupConfiguration.getId() + "/" + + repositoryGroupConfiguration.getMergedIndexPath() ); + if ( !tmpDirectory.exists() ) + { + synchronized ( tmpDirectory.getAbsolutePath() ) + { + if ( !tmpDirectory.exists() ) + { + tmpDirectory.mkdirs(); + } + } + } + mergedRepositoryContents.add( tmpDirectory.getParentFile() ); + } for ( String repository : repositories ) { ManagedRepositoryContent managedRepository = null;