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]>.
