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/03/09 17:25:34 UTC
svn commit: r1786205 - in /sling/branches/fsresource-1.x/src:
main/java/org/apache/sling/fsprovider/internal/
main/java/org/apache/sling/fsprovider/internal/mapper/
test/java/org/apache/sling/fsprovider/internal/
Author: sseifert
Date: Thu Mar 9 17:25:34 2017
New Revision: 1786205
URL: http://svn.apache.org/viewvc?rev=1786205&view=rev
Log:
SLING-6537 FileVault XML support
Modified:
sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/FileMonitor.java
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/FileVaultResourceMapper.java
sling/branches/fsresource-1.x/src/test/java/org/apache/sling/fsprovider/internal/FileVaultContentTest.java
sling/branches/fsresource-1.x/src/test/java/org/apache/sling/fsprovider/internal/FileVaultFileMonitorTest.java
Modified: sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/FileMonitor.java
URL: http://svn.apache.org/viewvc/sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/FileMonitor.java?rev=1786205&r1=1786204&r2=1786205&view=diff
==============================================================================
--- sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/FileMonitor.java (original)
+++ sling/branches/fsresource-1.x/src/main/java/org/apache/sling/fsprovider/internal/FileMonitor.java Thu Mar 9 17:25:34 2017
@@ -18,7 +18,6 @@
*/
package org.apache.sling.fsprovider.internal;
-import static org.apache.jackrabbit.vault.util.Constants.ROOT_DIR;
import static org.apache.sling.api.SlingConstants.PROPERTY_PATH;
import static org.apache.sling.api.SlingConstants.PROPERTY_RESOURCE_TYPE;
import static org.apache.sling.api.SlingConstants.TOPIC_RESOURCE_ADDED;
@@ -77,7 +76,7 @@ public final class FileMonitor extends T
File rootFile = this.provider.getRootFile();
if (fsMode == FsMode.FILEVAULT_XML) {
- rootFile = new File(this.provider.getRootFile(), ROOT_DIR + PlatformNameFormat.getPlatformPath(this.provider.getProviderRoot()));
+ rootFile = new File(this.provider.getRootFile(), "." + PlatformNameFormat.getPlatformPath(this.provider.getProviderRoot()));
}
this.root = new Monitorable(this.provider.getProviderRoot(), rootFile, null);
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=1786205&r1=1786204&r2=1786205&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 Mar 9 17:25:34 2017
@@ -129,6 +129,10 @@ public final class FsResourceProvider im
description = "Import options for Sling-Initial-Content filesystem layout. Supported options: overwrite, ignoreImportProviders.")
String provider_initial_content_import_options();
+ @AttributeDefinition(name = "FileVault Filter",
+ description = "Path to META-INF/vault/filter.xml when using FileVault XML filesystem layout.")
+ String provider_filevault_filterxml_path();
+
@AttributeDefinition(name = "Cache Size",
description = "Max. number of content files cached in memory.")
int provider_cache_size() default 10000;
@@ -264,10 +268,14 @@ public final class FsResourceProvider im
this.providerFile = getProviderFile(providerFileName, bundleContext);
InitialContentImportOptions options = new InitialContentImportOptions(config.provider_initial_content_import_options());
+ File filterXmlFile = null;
List<String> contentFileSuffixes = new ArrayList<>();
if (fsMode == FsMode.FILEVAULT_XML) {
contentFileSuffixes.add("/" + DOT_CONTENT_XML);
+ if (StringUtils.isNotBlank(config.provider_filevault_filterxml_path())) {
+ filterXmlFile = new File(config.provider_filevault_filterxml_path());
+ }
}
else if (fsMode == FsMode.INITIAL_CONTENT) {
if (!options.getIgnoreImportProviders().contains("json")) {
@@ -281,7 +289,7 @@ public final class FsResourceProvider im
this.contentFileCache = new ContentFileCache(config.provider_cache_size());
if (fsMode == FsMode.FILEVAULT_XML) {
- this.fileVaultMapper = new FileVaultResourceMapper(this.providerFile, this.contentFileCache);
+ this.fileVaultMapper = new FileVaultResourceMapper(this.providerFile, filterXmlFile, this.contentFileCache);
}
else {
this.fileMapper = new FileResourceMapper(this.providerRoot, this.providerFile, contentFileExtensions);
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=1786205&r1=1786204&r2=1786205&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 Mar 9 17:25:34 2017
@@ -19,9 +19,6 @@
package org.apache.sling.fsprovider.internal.mapper;
import static org.apache.jackrabbit.vault.util.Constants.DOT_CONTENT_XML;
-import static org.apache.jackrabbit.vault.util.Constants.FILTER_XML;
-import static org.apache.jackrabbit.vault.util.Constants.META_DIR;
-import static org.apache.jackrabbit.vault.util.Constants.ROOT_DIR;
import java.io.File;
import java.io.IOException;
@@ -51,13 +48,15 @@ public final class FileVaultResourceMapp
private static final String DOT_DIR_SUFFIX = "/.dir";
private final File providerFile;
+ private final File filterXmlFile;
private final ContentFileCache contentFileCache;
private final WorkspaceFilter workspaceFilter;
private static final Logger log = LoggerFactory.getLogger(FileVaultResourceMapper.class);
- public FileVaultResourceMapper(File providerFile, ContentFileCache contentFileCache) {
+ public FileVaultResourceMapper(File providerFile, File filterXmlFile, ContentFileCache contentFileCache) {
this.providerFile = providerFile;
+ this.filterXmlFile = filterXmlFile;
this.contentFileCache = contentFileCache;
this.workspaceFilter = getWorkspaceFilter();
}
@@ -134,18 +133,17 @@ public final class FileVaultResourceMapp
* @return Workspace filter or null if none found.
*/
private WorkspaceFilter getWorkspaceFilter() {
- File filter = new File(providerFile, META_DIR + "/" + FILTER_XML);
- if (filter.exists()) {
+ if (filterXmlFile != null && filterXmlFile.exists()) {
try {
DefaultWorkspaceFilter workspaceFilter = new DefaultWorkspaceFilter();
- workspaceFilter.load(filter);
+ workspaceFilter.load(filterXmlFile);
return workspaceFilter;
} catch (IOException | ConfigurationException ex) {
- log.error("Unable to parse workspace filter: " + filter.getPath(), ex);
+ log.error("Unable to parse workspace filter: " + filterXmlFile.getPath(), ex);
}
}
else {
- log.warn("Workspace filter not found: " + filter.getPath());
+ log.debug("Workspace filter not found: " + filterXmlFile.getPath());
}
return null;
}
@@ -161,7 +159,7 @@ public final class FileVaultResourceMapp
return false;
}
if (workspaceFilter == null) {
- return false;
+ return true;
}
else {
return workspaceFilter.contains(path);
@@ -172,7 +170,7 @@ public final class FileVaultResourceMapp
if (StringUtils.endsWith(path, DOT_CONTENT_XML_SUFFIX)) {
return null;
}
- File file = new File(providerFile, ROOT_DIR + PlatformNameFormat.getPlatformPath(path));
+ File file = new File(providerFile, "." + PlatformNameFormat.getPlatformPath(path));
if (file.exists()) {
return file;
}
@@ -180,7 +178,7 @@ public final class FileVaultResourceMapp
}
private ContentFile getContentFile(String path, String subPath) {
- File file = new File(providerFile, ROOT_DIR + PlatformNameFormat.getPlatformPath(path) + DOT_CONTENT_XML_SUFFIX);
+ File file = new File(providerFile, "." + PlatformNameFormat.getPlatformPath(path) + DOT_CONTENT_XML_SUFFIX);
if (file.exists()) {
ContentFile contentFile = new ContentFile(file, path, subPath, contentFileCache);
if (contentFile.hasContent()) {
Modified: sling/branches/fsresource-1.x/src/test/java/org/apache/sling/fsprovider/internal/FileVaultContentTest.java
URL: http://svn.apache.org/viewvc/sling/branches/fsresource-1.x/src/test/java/org/apache/sling/fsprovider/internal/FileVaultContentTest.java?rev=1786205&r1=1786204&r2=1786205&view=diff
==============================================================================
--- sling/branches/fsresource-1.x/src/test/java/org/apache/sling/fsprovider/internal/FileVaultContentTest.java (original)
+++ sling/branches/fsresource-1.x/src/test/java/org/apache/sling/fsprovider/internal/FileVaultContentTest.java Thu Mar 9 17:25:34 2017
@@ -57,12 +57,14 @@ public class FileVaultContentTest {
public SlingContext context = new SlingContextBuilder(ResourceResolverType.JCR_MOCK)
.plugin(new RegisterFsResourcePlugin(
"provider.fs.mode", FsMode.FILEVAULT_XML.name(),
- "provider.file", "src/test/resources/vaultfs-test",
+ "provider.file", "src/test/resources/vaultfs-test/jcr_root",
+ "provider.filevault.filterxml.path", "src/test/resources/vaultfs-test/META-INF/vault/filter.xml",
"provider.roots", "/content/dam/talk.png"
))
.plugin(new RegisterFsResourcePlugin(
"provider.fs.mode", FsMode.FILEVAULT_XML.name(),
- "provider.file", "src/test/resources/vaultfs-test",
+ "provider.file", "src/test/resources/vaultfs-test/jcr_root",
+ "provider.filevault.filterxml.path", "src/test/resources/vaultfs-test/META-INF/vault/filter.xml",
"provider.roots", "/content/samples"
))
.build();
Modified: sling/branches/fsresource-1.x/src/test/java/org/apache/sling/fsprovider/internal/FileVaultFileMonitorTest.java
URL: http://svn.apache.org/viewvc/sling/branches/fsresource-1.x/src/test/java/org/apache/sling/fsprovider/internal/FileVaultFileMonitorTest.java?rev=1786205&r1=1786204&r2=1786205&view=diff
==============================================================================
--- sling/branches/fsresource-1.x/src/test/java/org/apache/sling/fsprovider/internal/FileVaultFileMonitorTest.java (original)
+++ sling/branches/fsresource-1.x/src/test/java/org/apache/sling/fsprovider/internal/FileVaultFileMonitorTest.java Thu Mar 9 17:25:34 2017
@@ -68,12 +68,14 @@ public class FileVaultFileMonitorTest {
// mount temp. directory
context.registerInjectActivateService(new FsResourceProvider(),
- "provider.file", tempDir.getPath(),
+ "provider.file", tempDir.getPath() + "/jcr_root",
+ "provider.filevault.filterxml.path", tempDir.getPath() + "/META-INF/vault/filter.xml",
"provider.roots", "/content/dam/talk.png",
"provider.checkinterval", CHECK_INTERVAL,
"provider.fs.mode", FsMode.FILEVAULT_XML.name());
context.registerInjectActivateService(new FsResourceProvider(),
- "provider.file", tempDir.getPath(),
+ "provider.file", tempDir.getPath() + "/jcr_root",
+ "provider.filevault.filterxml.path", tempDir.getPath() + "/META-INF/vault/filter.xml",
"provider.roots", "/content/samples",
"provider.checkinterval", CHECK_INTERVAL,
"provider.fs.mode", FsMode.FILEVAULT_XML.name());