[
https://issues.apache.org/jira/browse/SLING-11499?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stefan Seifert updated SLING-11499:
-----------------------------------
Affects Version/s: File System Resource Provider 2.2.0
this question relates to the [File System Resource
Provider|https://sling.apache.org/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html]
by definition, the FS resource provider creates only a read-only view of the
file systems. so all resources that are obtained in a path mounted via this
provider are read-only. it does not implement any write-back facility. for
that, you have to use JCR or other resource providers.
> ContentFileResource - Unable to adapt to ModifiableValueMap
> -----------------------------------------------------------
>
> Key: SLING-11499
> URL: https://issues.apache.org/jira/browse/SLING-11499
> Project: Sling
> Issue Type: Bug
> Affects Versions: File System Resource Provider 2.2.0
> Reporter: Mahidhar Chaluvadi
> Priority: Major
>
> When trying to load Sling Mocks using File Vault (Content XML files instead
> of Json files), the src code that relies on adapting to ModifiableValueMap is
> returning null. Please advise on what's the right way to handle this or
> advise us with the fix details if this is a valid bug. Additionally feel free
> to reach out to me for testing the fixes or to include me in any development
> efforts.
>
> Here is the sample code for reproducing the issue.
>
> Assumptions:
> # Sample content is available as a content package module as part of the
> project structure
> # Content does contain a valid page with any component below responsive grid
>
> {code:java}
> package com.junit.sling.mocks;
> import org.apache.jackrabbit.vault.util.PathUtil;
> import org.apache.sling.api.resource.ModifiableValueMap;
> import org.apache.sling.api.resource.Resource;
> import org.apache.sling.api.resource.ResourceResolver;
> import org.apache.sling.api.resource.ValueMap;
> import org.apache.sling.testing.mock.sling.ResourceResolverType;
> import org.apache.sling.testing.mock.sling.junit5.SlingContext;
> import org.apache.sling.testing.mock.sling.junit5.SlingContextExtension;
> import org.apache.sling.testing.mock.sling.loader.ContentLoader;
> import org.junit.jupiter.api.Assertions;
> import org.junit.jupiter.api.BeforeEach;
> import org.junit.jupiter.api.Test;
> import org.junit.jupiter.api.extension.ExtendWith;
> import java.io.File;
> @ExtendWith({SlingContextExtension.class})
> public class AEMMocksJUnit5ModifiableValueMap {
> public final SlingContext slingContext = new
> SlingContext(ResourceResolverType.RESOURCERESOLVER_MOCK);
> private static final String TEST_RESOURCE =
> "/content/junit-core-mock-data/somepage/jcr:content/root/responsivegrid/somecomponent";
> private static final String VAULT_FS_HOME =
> "/ui.content.sample/src/main/content/jcr_root";
> private final ResourceResolver resourceResolver =
> slingContext.resourceResolver();
> private Resource finalJsonResource;
> @BeforeEach
> public void setUpDefaultMockContent() {
> ContentLoader contentLoader = slingContext.load();
> File bundleDirectory = new
> File(System.getProperty("user.dir")).getParentFile();
> final String VAULT_FS_HOME_ABS_PATH =
> PathUtil.append(bundleDirectory.getPath(),VAULT_FS_HOME);
> contentLoader.folderFileVaultXml(VAULT_FS_HOME_ABS_PATH,"/conf");
>
> contentLoader.folderFileVaultXml(VAULT_FS_HOME_ABS_PATH,"/content");
> slingContext.runMode("author");
> }
> @Test
> public void testModifiableValueMap() {
> finalJsonResource = resourceResolver.getResource(TEST_RESOURCE);
> if (finalJsonResource != null)
>
> Assertions.assertNotNull(finalJsonResource.adaptTo(ValueMap.class));
> // Code below is not meant to return null
>
> Assertions.assertNull(finalJsonResource.adaptTo(ModifiableValueMap.class));
> }
> } {code}
>
> Thanks
--
This message was sent by Atlassian Jira
(v8.20.10#820010)