This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a commit to branch feature/storage_refactoring
in repository https://gitbox.apache.org/repos/asf/archiva.git

commit 3b1d213a5b77e381dbf144ee36750043e4ae9281
Author: Martin Stockhammer <[email protected]>
AuthorDate: Sun May 19 17:36:31 2019 +0200

    Using new storage API for DAV implementation
---
 .../archiva/webdav/ArchivaDavResourceFactory.java  | 48 +++++-----------------
 1 file changed, 10 insertions(+), 38 deletions(-)

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 3cdf4c6..e9c8eb1 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
@@ -206,10 +206,14 @@ public class ArchivaDavResourceFactory
                                        final DavServletResponse response )
         throws DavException
     {
-        ArchivaDavResourceLocator archivaLocator = 
checkLocatorIsInstanceOfRepositoryLocator( locator );
+        final ArchivaDavResourceLocator archivaLocator = 
checkLocatorIsInstanceOfRepositoryLocator( locator );
+
+        final String sRepoId = archivaLocator.getRepositoryId();
 
         RepositoryGroupConfiguration repoGroupConfig =
-            
archivaConfiguration.getConfiguration().getRepositoryGroupsAsMap().get( 
archivaLocator.getRepositoryId() );
+            
archivaConfiguration.getConfiguration().getRepositoryGroupsAsMap().get( sRepoId 
);
+
+        final boolean isGroupRepo = repoGroupConfig != null;
 
         String activePrincipal = getActivePrincipal( request );
 
@@ -218,7 +222,7 @@ public class ArchivaDavResourceFactory
         boolean readMethod = WebdavMethodUtil.isReadMethod( 
request.getMethod() );
         RepositoryRequestInfo repositoryRequestInfo = null;
         DavResource resource;
-        if ( repoGroupConfig != null )
+        if ( isGroupRepo )
         {
             if ( !readMethod )
             {
@@ -260,42 +264,10 @@ public class ArchivaDavResourceFactory
         else
         {
 
-            try
-            {
-                RemoteRepository remoteRepository =
-                    remoteRepositoryAdmin.getRemoteRepository( 
archivaLocator.getRepositoryId() );
-
-                if ( remoteRepository != null )
-                {
-                    String logicalResource = getLogicalResource( 
archivaLocator, null, false );
-                    IndexingContext indexingContext = 
remoteRepositoryAdmin.createIndexContext( remoteRepository );
-                    Path resourceFile = StringUtils.equals( logicalResource, 
"/" )
-                        ? Paths.get( 
indexingContext.getIndexDirectoryFile().getParent() )
-                        : Paths.get( 
indexingContext.getIndexDirectoryFile().getParent(), logicalResource );
-                    resource = new ArchivaDavResource( 
resourceFile.toAbsolutePath().toString(), //
-                                                       
locator.getResourcePath(), //
-                                                       null, //
-                                                       
request.getRemoteAddr(), //
-                                                       activePrincipal, //
-                                                       
request.getDavSession(), //
-                                                       archivaLocator, //
-                                                       this, //
-                                                       mimeTypes, //
-                                                       auditListeners, //
-                                                       scheduler, //
-                                                       fileLockManager );
-                    setHeaders( response, locator, resource, false );
-                    return resource;
-                }
-            }
-            catch ( RepositoryAdminException e )
-            {
-                log.debug( "RepositoryException remote repository with d'{}' 
not found, msg: {}",
-                           archivaLocator.getRepositoryId(), e.getMessage() );
-            }
+            // We do not provide folders for remote repositories
 
 
-            ManagedRepository repo = repositoryRegistry.getManagedRepository( 
archivaLocator.getRepositoryId() );
+            ManagedRepository repo = repositoryRegistry.getManagedRepository( 
sRepoId );
             if (repo==null) {
                 throw new DavException( HttpServletResponse.SC_NOT_FOUND,
                     "Invalid repository: " + archivaLocator.getRepositoryId() 
);
@@ -323,7 +295,7 @@ public class ArchivaDavResourceFactory
         // MRM-872 : merge all available metadata
         // merge metadata only when requested via the repo group
         if ( ( repositoryRequestInfo.isMetadata( requestedResource ) || 
repositoryRequestInfo.isMetadataSupportFile(
-            requestedResource ) ) && repoGroupConfig != null )
+            requestedResource ) ) && isGroupRepo )
         {
             // this should only be at the project level not version level!
             if ( isProjectReference( requestedResource ) )

Reply via email to