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

rombert pushed a commit to annotated tag org.apache.sling.fsresource-1.4.0
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-fsresource.git

commit cb0c2b355b619a9b7b33c85a1516ac742238a0e2
Author: Stefan Seifert <[email protected]>
AuthorDate: Thu May 4 17:05:14 2017 +0000

    SLING-6829 make sour FileResource for directories is only overlayed in 
FILES_FOLDERS mode
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/branches/fsresource-1.x@1793834 
13f79535-47bb-0310-9956-ffa450edef68
---
 .../apache/sling/fsprovider/internal/FsResourceProvider.java |  2 +-
 .../sling/fsprovider/internal/mapper/FileResource.java       | 12 ++++++++----
 .../sling/fsprovider/internal/mapper/FileResourceMapper.java | 11 +++++++----
 .../fsprovider/internal/mapper/FileVaultResourceMapper.java  |  5 +++--
 4 files changed, 19 insertions(+), 11 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/fsprovider/internal/FsResourceProvider.java 
b/src/main/java/org/apache/sling/fsprovider/internal/FsResourceProvider.java
index e09e8ec..14a7dec 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/FsResourceProvider.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/FsResourceProvider.java
@@ -288,7 +288,7 @@ public final class FsResourceProvider implements 
ResourceProvider {
             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);
         }
diff --git 
a/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResource.java 
b/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResource.java
index e5e4d2f..4ee4a20 100644
--- 
a/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResource.java
+++ 
b/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResource.java
@@ -39,6 +39,7 @@ import org.apache.sling.api.resource.ResourceMetadata;
 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 AbstractResource {
 
     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 AbstractResource {
      * @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 AbstractResource {
             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);
             }
         }
diff --git 
a/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResourceMapper.java
 
b/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResourceMapper.java
index ec9b650..47404f8 100644
--- 
a/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResourceMapper.java
+++ 
b/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileResourceMapper.java
@@ -28,6 +28,7 @@ import org.apache.commons.lang3.StringUtils;
 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 implements 
FsResourceMapper {
     
     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 implements 
FsResourceMapper {
                     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 implements 
FsResourceMapper {
             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);
             }
         });
     }
diff --git 
a/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileVaultResourceMapper.java
 
b/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileVaultResourceMapper.java
index 14f6146..c772e40 100644
--- 
a/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileVaultResourceMapper.java
+++ 
b/src/main/java/org/apache/sling/fsprovider/internal/mapper/FileVaultResourceMapper.java
@@ -37,6 +37,7 @@ import org.apache.jackrabbit.vault.util.PlatformNameFormat;
 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 FileVaultResourceMapper implements 
FsResourceMapper {
         // 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 FileVaultResourceMapper implements 
FsResourceMapper {
         
         // 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;

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to