You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2017/05/04 17:05:14 UTC

svn commit: r1793834 - in /sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal: FsResourceProvider.java mapper/FileResource.java mapper/FileResourceMapper.java mapper/FileVaultResourceMapper.java

Author: sseifert
Date: Thu May  4 17:05:14 2017
New Revision: 1793834

URL: http://svn.apache.org/viewvc?rev=1793834&view=rev
Log:
SLING-6829 make sour FileResource for directories is only overlayed in FILES_FOLDERS mode

Modified:
    sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/FsResourceProvider.java
    sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResource.java
    sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResourceMapper.java
    sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileVaultResourceMapper.java

Modified: sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/FsResourceProvider.java
URL: http://svn.apache.org/viewvc/sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/FsResourceProvider.java?rev=1793834&r1=1793833&r2=1793834&view=diff
==============================================================================
--- sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/FsResourceProvider.java (original)
+++ sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/FsResourceProvider.java Thu May  4 17:05:14 2017
@@ -288,7 +288,7 @@ public final class FsResourceProvider im
             this.fileVaultMapper = new FileVaultResourceMapper(this.providerFile, filterXmlFile, this.contentFileCache);
         }
         else {
-            this.fileMapper = new FileResourceMapper(this.providerRoot, this.providerFile, contentFileExtensions, this.contentFileCache);
+            this.fileMapper = new FileResourceMapper(this.providerRoot, this.providerFile, contentFileExtensions, this.contentFileCache, this.fsMode);
             this.contentFileMapper = new ContentFileResourceMapper(this.providerRoot, this.providerFile,
                     contentFileExtensions, this.contentFileCache);
         }

Modified: sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResource.java
URL: http://svn.apache.org/viewvc/sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResource.java?rev=1793834&r1=1793833&r2=1793834&view=diff
==============================================================================
--- sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResource.java (original)
+++ sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResource.java Thu May  4 17:05:14 2017
@@ -39,6 +39,7 @@ import org.apache.sling.api.resource.Res
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.fsprovider.internal.ContentFileExtensions;
+import org.apache.sling.fsprovider.internal.FsMode;
 import org.apache.sling.fsprovider.internal.mapper.valuemap.ValueMapDecorator;
 import org.apache.sling.fsprovider.internal.parser.ContentElement;
 import org.apache.sling.fsprovider.internal.parser.ContentFileCache;
@@ -89,6 +90,7 @@ public final class FileResource extends
 
     private final ContentFileExtensions contentFileExtensions;
     private final ContentFileCache contentFileCache;
+    private final FsMode fsMode;
 
     private static final Logger log = LoggerFactory.getLogger(FileResource.class);
     
@@ -99,17 +101,19 @@ public final class FileResource extends
      * @param resourcePath The resource path in the resource tree
      * @param file The wrapped file
      */
-    FileResource(ResourceResolver resolver, String resourcePath, File file) {
-        this(resolver, resourcePath, file, null, null);
+    FileResource(ResourceResolver resolver, String resourcePath, File file, FsMode fsMode) {
+        this(resolver, resourcePath, file, null, null, fsMode);
     }
     
     FileResource(ResourceResolver resolver, String resourcePath, File file,
-            ContentFileExtensions contentFileExtensions, ContentFileCache contentFileCache) {
+            ContentFileExtensions contentFileExtensions, ContentFileCache contentFileCache,
+            FsMode fsMode) {
         this.resolver = resolver;
         this.resourcePath = resourcePath;
         this.file = file;
         this.contentFileExtensions = contentFileExtensions;
         this.contentFileCache = contentFileCache;
+        this.fsMode = fsMode;
     }
 
     /**
@@ -130,7 +134,7 @@ public final class FileResource extends
             metaData.setContentLength(file.length());
             metaData.setModificationTime(file.lastModified());
             metaData.setResolutionPath(resourcePath);
-            if ( this.file.isDirectory() ) {
+            if (fsMode == FsMode.FILES_FOLDERS && this.file.isDirectory()) {
                 metaData.put(ResourceMetadata.INTERNAL_CONTINUE_RESOLVING, Boolean.TRUE);
             }
         }

Modified: sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResourceMapper.java
URL: http://svn.apache.org/viewvc/sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResourceMapper.java?rev=1793834&r1=1793833&r2=1793834&view=diff
==============================================================================
--- sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResourceMapper.java (original)
+++ sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResourceMapper.java Thu May  4 17:05:14 2017
@@ -28,6 +28,7 @@ import org.apache.commons.lang3.StringUt
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.fsprovider.internal.ContentFileExtensions;
+import org.apache.sling.fsprovider.internal.FsMode;
 import org.apache.sling.fsprovider.internal.FsResourceMapper;
 import org.apache.sling.fsprovider.internal.parser.ContentFileCache;
 
@@ -44,21 +45,23 @@ public final class FileResourceMapper im
     
     private final ContentFileExtensions contentFileExtensions;
     private final ContentFileCache contentFileCache;
+    private final FsMode fsMode;
     
     public FileResourceMapper(String providerRoot, File providerFile,
-            ContentFileExtensions contentFileExtensions, ContentFileCache contentFileCache) {
+            ContentFileExtensions contentFileExtensions, ContentFileCache contentFileCache, FsMode fsMode) {
         this.providerRoot = providerRoot;
         this.providerRootPrefix = providerRoot.concat("/");
         this.providerFile = providerFile;
         this.contentFileExtensions = contentFileExtensions;
         this.contentFileCache = contentFileCache;
+        this.fsMode = fsMode;
     }
     
     @Override
     public Resource getResource(final ResourceResolver resolver, final String resourcePath) {
         File file = getFile(resourcePath);
         if (file != null) {
-            return new FileResource(resolver, resourcePath, file, contentFileExtensions, contentFileCache);
+            return new FileResource(resolver, resourcePath, file, contentFileExtensions, contentFileCache, fsMode);
         }
         else {
             return null;
@@ -88,7 +91,7 @@ public final class FileResourceMapper im
                     if (providerRoot.startsWith(parentPathPrefix)) {
                         String relPath = providerRoot.substring(parentPathPrefix.length());
                         if (relPath.indexOf('/') < 0) {
-                            Resource res = new FileResource(resolver, providerRoot, providerFile, contentFileExtensions, contentFileCache);
+                            Resource res = new FileResource(resolver, providerRoot, providerFile, contentFileExtensions, contentFileCache, fsMode);
                             return IteratorUtils.singletonIterator(res);
                         }
                     }
@@ -119,7 +122,7 @@ public final class FileResourceMapper im
             public Object transform(Object input) {
                 File file = (File)input;
                 String path = parentPath + "/" + file.getName();
-                return new FileResource(resolver, path, file, contentFileExtensions, contentFileCache);
+                return new FileResource(resolver, path, file, contentFileExtensions, contentFileCache, fsMode);
             }
         });
     }

Modified: sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileVaultResourceMapper.java
URL: http://svn.apache.org/viewvc/sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileVaultResourceMapper.java?rev=1793834&r1=1793833&r2=1793834&view=diff
==============================================================================
--- sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileVaultResourceMapper.java (original)
+++ sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileVaultResourceMapper.java Thu May  4 17:05:14 2017
@@ -37,6 +37,7 @@ import org.apache.jackrabbit.vault.util.
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceUtil;
+import org.apache.sling.fsprovider.internal.FsMode;
 import org.apache.sling.fsprovider.internal.FsResourceMapper;
 import org.apache.sling.fsprovider.internal.parser.ContentElement;
 import org.apache.sling.fsprovider.internal.parser.ContentFileCache;
@@ -68,7 +69,7 @@ public final class FileVaultResourceMapp
         // direct file
         File file = getFile(resourcePath);
         if (file != null && file.isFile()) {
-            return new FileResource(resolver, resourcePath, file);
+            return new FileResource(resolver, resourcePath, file, FsMode.FILEVAULT_XML);
         }
         
         // content file
@@ -79,7 +80,7 @@ public final class FileVaultResourceMapp
         
         // fallback to directory resource if folder was found but nothing else
         if (file != null && file.isDirectory()) {
-            return new FileResource(resolver, resourcePath, file);
+            return new FileResource(resolver, resourcePath, file, FsMode.FILEVAULT_XML);
         }
         
         return null;