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 2021/08/24 16:29:49 UTC
[sling-org-apache-sling-fsresource] branch master updated:
cosmetic: cleanup trailing slashes
This is an automated email from the ASF dual-hosted git repository.
sseifert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-fsresource.git
The following commit(s) were added to refs/heads/master by this push:
new 5fc6411 cosmetic: cleanup trailing slashes
5fc6411 is described below
commit 5fc6411ec3361a7e1bf44dabfd80f211548f757b
Author: Stefan Seifert <st...@users.noreply.github.com>
AuthorDate: Tue Aug 24 18:26:10 2021 +0200
cosmetic: cleanup trailing slashes
---
.../fsprovider/internal/ContentFileExtensions.java | 10 ++--
.../sling/fsprovider/internal/FileMonitor.java | 12 ++---
.../sling/fsprovider/internal/FileStatCache.java | 10 ++--
.../apache/sling/fsprovider/internal/FsMode.java | 4 +-
.../fsprovider/internal/FsResourceMapper.java | 4 +-
.../fsprovider/internal/FsResourceProvider.java | 48 ++++++++---------
.../internal/InitialContentImportOptions.java | 8 +--
.../fsprovider/internal/mapper/ContentFile.java | 20 +++----
.../internal/mapper/ContentFileResourceMapper.java | 12 ++---
.../sling/fsprovider/internal/mapper/Escape.java | 12 ++---
.../fsprovider/internal/mapper/FileResource.java | 16 +++---
.../internal/mapper/FileResourceMapper.java | 8 +--
.../internal/mapper/FileVaultResourceMapper.java | 38 ++++++-------
.../mapper/LazyModifiedDateResourceMetadata.java | 2 +-
.../fsprovider/internal/mapper/jcr/FsItem.java | 10 ++--
.../fsprovider/internal/mapper/jcr/FsNode.java | 18 +++----
.../internal/mapper/jcr/FsNodeIterator.java | 6 +--
.../fsprovider/internal/mapper/jcr/FsNodeType.java | 8 +--
.../fsprovider/internal/mapper/jcr/FsProperty.java | 14 ++---
.../internal/mapper/jcr/FsPropertyDefinition.java | 4 +-
.../internal/mapper/jcr/FsPropertyIterator.java | 8 +--
.../fsprovider/internal/mapper/jcr/FsValue.java | 6 +--
.../internal/mapper/valuemap/DateUtils.java | 4 +-
.../internal/mapper/valuemap/ObjectConverter.java | 12 ++---
.../internal/mapper/valuemap/ValueMapUtil.java | 8 +--
.../fsprovider/internal/parser/ContentElement.java | 8 +--
.../internal/parser/ContentElementHandler.java | 6 +--
.../internal/parser/ContentElementImpl.java | 4 +-
.../internal/parser/ContentFileCache.java | 10 ++--
.../internal/parser/ContentFileParserUtil.java | 16 +++---
.../internal/parser/ContentFileTypes.java | 8 +--
.../sling/fsprovider/internal/FileMonitorTest.java | 54 +++++++++----------
.../fsprovider/internal/FileVaultContentTest.java | 12 ++---
.../internal/FileVaultFileMonitorTest.java | 62 +++++++++++-----------
.../sling/fsprovider/internal/JcrMixedTest.java | 2 +-
.../fsprovider/internal/JcrXmlContentTest.java | 8 +--
.../sling/fsprovider/internal/JsonContentTest.java | 28 +++++-----
.../sling/fsprovider/internal/TestUtils.java | 16 +++---
.../internal/mapper/ContentFileTest.java | 18 +++----
.../internal/mapper/valuemap/Convert.java | 38 ++++++-------
.../mapper/valuemap/ObjectConverterTest.java | 46 ++++++++--------
.../mapper/valuemap/ValueMapDecoratorTest.java | 2 +-
.../internal/mapper/valuemap/ValueMapUtilTest.java | 2 +-
.../internal/parser/ContentFileCacheTest.java | 10 ++--
44 files changed, 326 insertions(+), 326 deletions(-)
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/ContentFileExtensions.java b/src/main/java/org/apache/sling/fsprovider/internal/ContentFileExtensions.java
index 2de233e..c93502f 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/ContentFileExtensions.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/ContentFileExtensions.java
@@ -31,13 +31,13 @@ import org.apache.commons.lang3.StringUtils;
* Matches file names for content file extensions.
*/
public final class ContentFileExtensions {
-
+
private final List<String> contentFileSuffixes;
public ContentFileExtensions(List<String> contentFileSuffixes) {
this.contentFileSuffixes = contentFileSuffixes;
}
-
+
/**
* Get suffix from file name.
* @param file File
@@ -68,19 +68,19 @@ public final class ContentFileExtensions {
public boolean matchesSuffix(File file) {
return getSuffix(file) != null;
}
-
+
/**
* @return Content file suffixes.
*/
public Collection<String> getSuffixes() {
return contentFileSuffixes;
}
-
+
/**
* @return true if not suffixes are defined.
*/
public boolean isEmpty() {
return contentFileSuffixes.isEmpty();
}
-
+
}
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/FileMonitor.java b/src/main/java/org/apache/sling/fsprovider/internal/FileMonitor.java
index 4b71865..21dccc2 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/FileMonitor.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/FileMonitor.java
@@ -80,7 +80,7 @@ public final class FileMonitor extends TimerTask {
rootFile = new File(this.provider.getRootFile(), "." + PlatformNameFormat.getPlatformPath(this.provider.getProviderRoot()));
}
this.root = new Monitorable(this.provider.getProviderRoot(), rootFile, null);
-
+
createStatus(this.root, contentFileExtensions, contentFileCache);
log.debug("Starting file monitor for {} with an interval of {}ms", this.root.file, interval);
timer.schedule(this, 0, interval);
@@ -201,7 +201,7 @@ public final class FileMonitor extends TimerTask {
}
}
}
-
+
private void checkDirStatusChildren(final Monitorable dirMonitorable, final ObservationReporter reporter) {
final DirStatus ds = (DirStatus)dirMonitorable.status;
final File[] files = dirMonitorable.file.listFiles();
@@ -253,7 +253,7 @@ public final class FileMonitor extends TimerTask {
reporter.reportChanges(changes, false);
}
}
-
+
/**
* Transform path for resource event.
* @param path Path
@@ -267,7 +267,7 @@ public final class FileMonitor extends TimerTask {
return path;
}
}
-
+
private List<ResourceChange> collectResourceChanges(final Monitorable monitorable, final ChangeType changeType) {
List<ResourceChange> changes = new ArrayList<>();
if (monitorable.status instanceof ContentFileStatus) {
@@ -344,7 +344,7 @@ public final class FileMonitor extends TimerTask {
this.lastModified = file.lastModified();
}
}
-
+
/** Status for content files */
private static class ContentFileStatus extends FileStatus {
public final ContentFile contentFile;
@@ -353,7 +353,7 @@ public final class FileMonitor extends TimerTask {
this.contentFile = contentFile;
}
}
-
+
/** Status for directories. */
private static final class DirStatus extends FileStatus {
public Monitorable[] children;
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/FileStatCache.java b/src/main/java/org/apache/sling/fsprovider/internal/FileStatCache.java
index 3b6053c..58a8911 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/FileStatCache.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/FileStatCache.java
@@ -18,16 +18,16 @@
*/
package org.apache.sling.fsprovider.internal;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.sling.api.resource.ResourceUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.io.File;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicLong;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.sling.api.resource.ResourceUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
* A cache that caches whether files exist or don't exist.
*/
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/FsMode.java b/src/main/java/org/apache/sling/fsprovider/internal/FsMode.java
index 722a4e5..a974b36 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/FsMode.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/FsMode.java
@@ -22,7 +22,7 @@ package org.apache.sling.fsprovider.internal;
* Different modes for File system provider support and file system layouts.
*/
public enum FsMode {
-
+
/**
* Support only files and folders (classic mode).
*/
@@ -32,7 +32,7 @@ public enum FsMode {
* Sling-Initial-Content file system layout, supports file and folders ant content files in JSON, xml and jcr.xml format.
*/
INITIAL_CONTENT,
-
+
/**
* FileVault XML format (expanded content package).
*/
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/FsResourceMapper.java b/src/main/java/org/apache/sling/fsprovider/internal/FsResourceMapper.java
index 4cb2c17..351c968 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/FsResourceMapper.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/FsResourceMapper.java
@@ -35,7 +35,7 @@ public interface FsResourceMapper {
* @return Resource or null if not exists
*/
Resource getResource(ResourceResolver resolver, String resourcePath);
-
+
/**
* Get children of resource.
* @param resolver Resource resolver.
@@ -43,5 +43,5 @@ public interface FsResourceMapper {
* @return Child resources or null if no children exist
*/
Iterator<Resource> getChildren(ResourceResolver resolver, Resource parent);
-
+
}
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 256e2cc..e5f898c 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/FsResourceProvider.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/FsResourceProvider.java
@@ -76,7 +76,7 @@ import org.osgi.service.metatype.annotations.Option;
})
@Designate(ocd=FsResourceProvider.Config.class, factory=true)
public final class FsResourceProvider extends ResourceProvider<Object> {
-
+
/**
* Resource metadata property set by {@link org.apache.sling.fsprovider.internal.mapper.FileResource}
* if the underlying file reference is a directory.
@@ -100,7 +100,7 @@ public final class FsResourceProvider extends ResourceProvider<Object> {
description = "Location in the virtual resource tree where the " +
"file system resources are mapped in. This property must not be an empty string.")
String provider_root();
-
+
@AttributeDefinition(name = "File system layout",
description = "File system layout mode for files, folders and content.",
options={
@@ -112,15 +112,15 @@ public final class FsResourceProvider extends ResourceProvider<Object> {
+ "FileVault XML format (expanded content package)"),
})
FsMode provider_fs_mode() default FsMode.FILES_FOLDERS;
-
+
@AttributeDefinition(name = "Init. Content Options",
description = "Import options for Sling-Initial-Content file system 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 file system layout.")
String provider_filevault_filterxml_path();
-
+
@AttributeDefinition(name = "Check Interval",
description = "If the interval has a value higher than 100, the provider will " +
@@ -144,16 +144,16 @@ public final class FsResourceProvider extends ResourceProvider<Object> {
// The monitor to detect file changes.
private FileMonitor monitor;
-
+
// maps file system to resources
private FsMode fsMode;
private FsResourceMapper fileMapper;
private FsResourceMapper contentFileMapper;
private FileVaultResourceMapper fileVaultMapper;
-
+
// if true resources from file system are only "overlayed" to JCR resources, serving JCR as fallback within the same path
private boolean overlayParentResourceProvider;
-
+
// cache for parsed content files
private ContentFileCache contentFileCache;
@@ -175,9 +175,9 @@ public final class FsResourceProvider extends ResourceProvider<Object> {
final @NotNull String path,
final @NotNull ResourceContext resourceContext,
final @Nullable Resource parent) {
-
+
ResourceResolver resolver = ctx.getResourceResolver();
-
+
boolean askParentResourceProvider;
Resource rsrc = null;
@@ -199,25 +199,25 @@ public final class FsResourceProvider extends ResourceProvider<Object> {
rsrc = contentFileMapper.getResource(resolver, path);
}
}
-
+
if (askParentResourceProvider) {
// make sure directory resources from parent resource provider have higher precedence than from this provider
// this allows properties like sling:resourceSuperType to take effect
if ( rsrc == null || rsrc.getResourceMetadata().containsKey(RESOURCE_METADATA_FILE_DIRECTORY) ) {
// get resource from shadowed provider
final ResourceProvider rp = ctx.getParentResourceProvider();
- final ResolveContext resolveContext = (ResolveContext)ctx.getParentResolveContext();
+ final ResolveContext resolveContext = ctx.getParentResolveContext();
if ( rp != null && resolveContext != null ) {
- Resource resourceFromParentResourceProvider = rp.getResource(resolveContext,
- path,
+ Resource resourceFromParentResourceProvider = rp.getResource(resolveContext,
+ path,
resourceContext, parent);
if (resourceFromParentResourceProvider != null) {
rsrc = resourceFromParentResourceProvider;
}
- }
+ }
}
}
-
+
return rsrc;
}
@@ -228,11 +228,11 @@ public final class FsResourceProvider extends ResourceProvider<Object> {
@Override
public Iterator<Resource> listChildren(final @NotNull ResolveContext<Object> ctx, final @NotNull Resource parent) {
ResourceResolver resolver = ctx.getResourceResolver();
-
+
List<Iterator<? extends Resource>> allChildren = new ArrayList<>();
Iterator<Resource> children;
boolean askParentResourceProvider;
-
+
if (fsMode == FsMode.FILEVAULT_XML) {
// filevault: always ask provider, it checks itself if children matches the filters
askParentResourceProvider = true;
@@ -253,11 +253,11 @@ public final class FsResourceProvider extends ResourceProvider<Object> {
allChildren.add(children);
}
}
-
+
// get children from from shadowed provider
if (askParentResourceProvider) {
final ResourceProvider parentResourceProvider = ctx.getParentResourceProvider();
- final ResolveContext resolveContext = (ResolveContext)ctx.getParentResolveContext();
+ final ResolveContext resolveContext = ctx.getParentResolveContext();
if (parentResourceProvider != null && resolveContext != null) {
children = parentResourceProvider.listChildren(resolveContext, parent);
if (children != null) {
@@ -314,10 +314,10 @@ public final class FsResourceProvider extends ResourceProvider<Object> {
this.providerRoot = providerRoot;
this.providerFile = getProviderFile(providerFileName, bundleContext);
this.overlayParentResourceProvider = false;
-
+
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);
@@ -342,7 +342,7 @@ public final class FsResourceProvider extends ResourceProvider<Object> {
}
}
ContentFileExtensions contentFileExtensions = new ContentFileExtensions(contentFileSuffixes);
-
+
this.contentFileCache = new ContentFileCache(config.provider_cache_size());
this.fileStatCache = new FileStatCache(this.providerFile);
@@ -354,7 +354,7 @@ public final class FsResourceProvider extends ResourceProvider<Object> {
this.contentFileMapper = new ContentFileResourceMapper(this.providerRoot, this.providerFile,
contentFileExtensions, this.contentFileCache, this.fileStatCache);
}
-
+
// start background monitor if check interval is higher than 100
if (config.provider_checkinterval() > 100) {
this.monitor = new FileMonitor(this, config.provider_checkinterval(), fsMode,
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/InitialContentImportOptions.java b/src/main/java/org/apache/sling/fsprovider/internal/InitialContentImportOptions.java
index 52de538..1ab3b1d 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/InitialContentImportOptions.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/InitialContentImportOptions.java
@@ -42,10 +42,10 @@ class InitialContentImportOptions {
*/
private static final String IGNORE_CONTENT_READERS_DIRECTIVE = "ignoreImportProviders";
-
+
private final boolean overwrite;
private final Set<String> ignoreImportProviders;
-
+
public InitialContentImportOptions(String optionsString) {
ManifestHeader header = ManifestHeader.parse("/dummy/path;" + optionsString);
Entry[] entries = header.getEntries();
@@ -59,7 +59,7 @@ class InitialContentImportOptions {
ignoreImportProviders = Collections.emptySet();
}
}
-
+
public boolean isOverwrite() {
return overwrite;
}
@@ -67,5 +67,5 @@ class InitialContentImportOptions {
public Set<String> getIgnoreImportProviders() {
return ignoreImportProviders;
}
-
+
}
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/mapper/ContentFile.java b/src/main/java/org/apache/sling/fsprovider/internal/mapper/ContentFile.java
index 853fe82..4c75a4d 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/mapper/ContentFile.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/mapper/ContentFile.java
@@ -32,7 +32,7 @@ import org.apache.sling.jcr.contentparser.ContentType;
* Reference to a file that contains a content fragment (e.g. JSON, JCR XML).
*/
public final class ContentFile {
-
+
private final File file;
private final String path;
private final String subPath;
@@ -41,7 +41,7 @@ public final class ContentFile {
private boolean contentInitialized;
private ContentElement content;
private ValueMap valueMap;
-
+
/**
* @param file File with content fragment
* @param path Root path of the content file
@@ -73,7 +73,7 @@ public final class ContentFile {
public File getFile() {
return file;
}
-
+
/**
* @return Root path of content file
*/
@@ -87,7 +87,7 @@ public final class ContentFile {
public String getSubPath() {
return subPath;
}
-
+
/**
* Content object referenced by sub path.
* @return Map if resource, property value if property.
@@ -105,14 +105,14 @@ public final class ContentFile {
}
return content;
}
-
+
/**
* @return true if any content was found.
*/
public boolean hasContent() {
return getContent() != null;
}
-
+
/**
* @return ValueMap for resource. Never null.
*/
@@ -128,14 +128,14 @@ public final class ContentFile {
}
return valueMap;
}
-
+
/**
* @return Child maps.
*/
public Iterator<Map.Entry<String,ContentElement>> getChildren() {
return getContent().getChildren().entrySet().iterator();
}
-
+
/**
* Navigate to another sub path position in content file.
* @param newSubPath New sub path related to root path of content file
@@ -144,7 +144,7 @@ public final class ContentFile {
public ContentFile navigateToAbsolute(String newSubPath) {
return new ContentFile(file, path, newSubPath, contentFileCache);
}
-
+
/**
* Navigate to another sub path position in content file.
* @param newSubPath New sub path relative to current sub path in content file
@@ -160,5 +160,5 @@ public final class ContentFile {
}
return new ContentFile(file, path, absoluteSubPath, contentFileCache);
}
-
+
}
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/mapper/ContentFileResourceMapper.java b/src/main/java/org/apache/sling/fsprovider/internal/mapper/ContentFileResourceMapper.java
index 2649ac6..2835a6f 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/mapper/ContentFileResourceMapper.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/mapper/ContentFileResourceMapper.java
@@ -36,13 +36,13 @@ import org.apache.sling.fsprovider.internal.FsResourceMapper;
import org.apache.sling.fsprovider.internal.parser.ContentFileCache;
public final class ContentFileResourceMapper implements FsResourceMapper {
-
+
// providerRoot + "/" to be used for prefix matching of paths
private final String providerRootPrefix;
// The "root" file or folder in the file system
private final File providerFile;
-
+
private final ContentFileExtensions contentFileExtensions;
private final ContentFileCache contentFileCache;
private FileStatCache fileStatCache;
@@ -56,7 +56,7 @@ public final class ContentFileResourceMapper implements FsResourceMapper {
this.contentFileCache = contentFileCache;
this.fileStatCache = fileStatCache;
}
-
+
@Override
public Resource getResource(final ResourceResolver resolver, final String resourcePath) {
if (contentFileExtensions.isEmpty()) {
@@ -70,7 +70,7 @@ public final class ContentFileResourceMapper implements FsResourceMapper {
return null;
}
}
-
+
@SuppressWarnings("unchecked")
@Override
public Iterator<Resource> getChildren(final ResourceResolver resolver, final Resource parent) {
@@ -125,7 +125,7 @@ public final class ContentFileResourceMapper implements FsResourceMapper {
}
return children;
}
-
+
private ContentFile getFile(String path, String subPath) {
if (!StringUtils.startsWith(path, providerRootPrefix)) {
return null;
@@ -146,5 +146,5 @@ public final class ContentFileResourceMapper implements FsResourceMapper {
+ (subPath != null ? "/" + subPath : "");
return getFile(parentPath, nextSubPath);
}
-
+
}
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/mapper/Escape.java b/src/main/java/org/apache/sling/fsprovider/internal/mapper/Escape.java
index ef234a9..9b059a3 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/mapper/Escape.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/mapper/Escape.java
@@ -29,10 +29,10 @@ import org.apache.commons.lang3.CharEncoding;
* Manages deescaping for platform file names to resource names.
*/
public final class Escape {
-
+
/**
* List of characters typically prohibited on unix and windows file systems.
- * "/" is not included because it is neither allowed in resource nor in file names on any system.
+ * "/" is not included because it is neither allowed in resource nor in file names on any system.
*/
private static final char[] RESERVED_CHARS = {
'<',
@@ -51,14 +51,14 @@ public final class Escape {
RESERVED_CHARS_SET.set(RESERVED_CHARS[i]);
}
}
-
+
private Escape() {
// static methods only
}
-
+
/**
* Convert file name to resource name.
- * Applies same rules as Apache Sling JCR ContentLoader.
+ * Applies same rules as Apache Sling JCR ContentLoader.
* @param path File name or path
* @return Resource name or path
*/
@@ -75,7 +75,7 @@ public final class Escape {
}
return path;
}
-
+
/**
* Converts resource name to file name.
* Allows all characters, but URL-encodes characters that are in the list of {@link #RESERVED_CHARS}.
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 58f04c0..95b6d37 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
@@ -90,7 +90,7 @@ public final class FileResource extends AbstractResource {
// the resource type, assigned on demand
private String resourceType;
private String resourceSuperType;
-
+
// valuemap is build on demand
private ValueMap valueMap;
@@ -99,7 +99,7 @@ public final class FileResource extends AbstractResource {
private final FileStatCache fileStatCache;
private static final Logger log = LoggerFactory.getLogger(FileResource.class);
-
+
/**
* Creates an instance of this File system resource.
*
@@ -110,7 +110,7 @@ public final class FileResource extends AbstractResource {
FileResource(ResourceResolver resolver, String resourcePath, File file, FileStatCache fileStatCache) {
this(resolver, resourcePath, file, null, null, fileStatCache);
}
-
+
FileResource(ResourceResolver resolver, String resourcePath, File file,
ContentFileExtensions contentFileExtensions, ContentFileCache contentFileCache,
FileStatCache fileStatCache) {
@@ -236,11 +236,11 @@ public final class FileResource extends AbstractResource {
Map<String,Object> props = new HashMap<String, Object>();
props.put("jcr:primaryType", fileStatCache.isFile(file) ? RESOURCE_TYPE_FILE : RESOURCE_TYPE_FOLDER);
props.put("jcr:createdBy", "system");
-
+
Calendar lastModifed = Calendar.getInstance();
lastModifed.setTimeInMillis(file.lastModified());
props.put("jcr:created", lastModifed);
-
+
// overlay properties with those from node descriptor content file, if it exists
ContentFile contentFile = getNodeDescriptorContentFile();
if (contentFile != null) {
@@ -253,13 +253,13 @@ public final class FileResource extends AbstractResource {
props.put(entry.getKey(), entry.getValue());
}
}
-
+
valueMap = new DeepReadValueMapDecorator(this, new ValueMapDecorator(props));
}
}
return valueMap;
}
-
+
private ContentFile getNodeDescriptorContentFile() {
if (contentFileExtensions == null || contentFileCache == null) {
return null;
@@ -272,5 +272,5 @@ public final class FileResource extends AbstractResource {
}
return null;
}
-
+
}
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 db120a0..b18a77c 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
@@ -43,7 +43,7 @@ public final class FileResourceMapper implements FsResourceMapper {
// The "root" file or folder in the file system
private final File providerFile;
-
+
private final ContentFileExtensions contentFileExtensions;
private final ContentFileCache contentFileCache;
private FileStatCache fileStatCache;
@@ -58,7 +58,7 @@ public final class FileResourceMapper implements FsResourceMapper {
this.contentFileCache = contentFileCache;
this.fileStatCache = fileStatCache;
}
-
+
@Override
public Resource getResource(final ResourceResolver resolver, final String resourcePath) {
File file = getFile(resourcePath);
@@ -69,7 +69,7 @@ public final class FileResourceMapper implements FsResourceMapper {
return null;
}
}
-
+
@SuppressWarnings("unchecked")
@Override
public Iterator<Resource> getChildren(final ResourceResolver resolver, final Resource parent) {
@@ -151,5 +151,5 @@ public final class FileResourceMapper implements FsResourceMapper {
}
return null;
}
-
+
}
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 96e246b..9aac1fd 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
@@ -48,7 +48,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public final class FileVaultResourceMapper implements FsResourceMapper {
-
+
private static final String DOT_CONTENT_XML_SUFFIX = "/" + DOT_CONTENT_XML;
private static final String DOT_DIR = ".dir";
private static final String DOT_DIR_SUFFIX = "/" + DOT_DIR;
@@ -58,9 +58,9 @@ public final class FileVaultResourceMapper implements FsResourceMapper {
private final ContentFileCache contentFileCache;
private FileStatCache fileStatCache;
private final WorkspaceFilter workspaceFilter;
-
+
private static final Logger log = LoggerFactory.getLogger(FileVaultResourceMapper.class);
-
+
public FileVaultResourceMapper(File providerFile, File filterXmlFile, ContentFileCache contentFileCache, FileStatCache fileStatCache) {
this.providerFile = providerFile;
this.filterXmlFile = filterXmlFile;
@@ -68,37 +68,37 @@ public final class FileVaultResourceMapper implements FsResourceMapper {
this.fileStatCache = fileStatCache;
this.workspaceFilter = getWorkspaceFilter();
}
-
+
@Override
public Resource getResource(final ResourceResolver resolver, final String resourcePath) {
-
+
// direct file
File file = getFile(resourcePath);
if (file != null && fileStatCache.isFile(file)) {
return new FileResource(resolver, resourcePath, file, fileStatCache);
}
-
+
// content file
ContentFile contentFile = getContentFile(resourcePath, null);
if (contentFile != null) {
return new ContentFileResource(resolver, contentFile);
}
-
+
// fallback to directory resource if folder was found but nothing else
if (file != null && fileStatCache.isDirectory(file)) {
return new FileResource(resolver, resourcePath, file, fileStatCache);
}
-
+
return null;
}
-
+
@SuppressWarnings("unchecked")
@Override
public Iterator<Resource> getChildren(final ResourceResolver resolver, final Resource parent) {
String parentPath = parent.getPath();
-
+
Set<String> childPaths = new LinkedHashSet<>();
-
+
// get children from content resource of parent
ContentFile parentContentFile = getContentFile(parentPath, null);
if (parentContentFile != null) {
@@ -111,7 +111,7 @@ public final class FileVaultResourceMapper implements FsResourceMapper {
}
}
}
-
+
// additional check for children in file system
File parentFile = getFile(parentPath);
if (parentFile != null && fileStatCache.isDirectory(parentFile)) {
@@ -135,7 +135,7 @@ public final class FileVaultResourceMapper implements FsResourceMapper {
}
}
}
-
+
if (childPaths.isEmpty()) {
return null;
}
@@ -168,7 +168,7 @@ public final class FileVaultResourceMapper implements FsResourceMapper {
}
return null;
}
-
+
/**
* Checks if the given path matches the workspace filter.
* @param path Path
@@ -186,7 +186,7 @@ public final class FileVaultResourceMapper implements FsResourceMapper {
return workspaceFilter.contains(path);
}
}
-
+
private File getFile(String path) {
if (StringUtils.endsWith(path, DOT_CONTENT_XML_SUFFIX)) {
return null;
@@ -200,7 +200,7 @@ public final class FileVaultResourceMapper implements FsResourceMapper {
}
return null;
}
-
+
private ContentFile getContentFile(String path, String subPath) {
File file = new File(providerFile, "." + PlatformNameFormat.getPlatformPath(path) + DOT_CONTENT_XML_SUFFIX);
if (fileStatCache.exists(file)) {
@@ -209,7 +209,7 @@ public final class FileVaultResourceMapper implements FsResourceMapper {
return contentFile;
}
}
-
+
file = new File(providerFile, "." + PlatformNameFormat.getPlatformPath(path) + XML_SUFFIX);
if (fileStatCache.exists(file) && !hasDotDirFile(file)) {
ContentFile contentFile = new ContentFile(file, path, subPath, contentFileCache, ContentType.JCR_XML);
@@ -217,7 +217,7 @@ public final class FileVaultResourceMapper implements FsResourceMapper {
return contentFile;
}
}
-
+
// try to find in parent path which contains content fragment
String parentPath = ResourceUtil.getParent(path);
if (parentPath == null) {
@@ -227,7 +227,7 @@ public final class FileVaultResourceMapper implements FsResourceMapper {
+ (subPath != null ? "/" + subPath : "");
return getContentFile(parentPath, nextSubPath);
}
-
+
private boolean hasDotDirFile(File file) {
File dotDir = new File(file.getPath() + DOT_DIR);
if (fileStatCache.isDirectory(dotDir)) {
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/mapper/LazyModifiedDateResourceMetadata.java b/src/main/java/org/apache/sling/fsprovider/internal/mapper/LazyModifiedDateResourceMetadata.java
index 78d0088..a3fcc3a 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/mapper/LazyModifiedDateResourceMetadata.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/mapper/LazyModifiedDateResourceMetadata.java
@@ -24,7 +24,7 @@ import org.apache.sling.api.resource.ResourceMetadata;
class LazyModifiedDateResourceMetadata extends ResourceMetadata {
private static final long serialVersionUID = 1L;
-
+
private volatile long lastModified = -1;
private File file;
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsItem.java b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsItem.java
index d5689a9..d711bf6 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsItem.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsItem.java
@@ -45,11 +45,11 @@ import org.apache.sling.fsprovider.internal.mapper.ContentFile;
* Simplified implementation of read-only content access via the JCR API.
*/
abstract class FsItem implements Item {
-
+
protected final ContentFile contentFile;
protected final ResourceResolver resolver;
protected final ValueMap props;
-
+
public FsItem(ContentFile contentFile, ResourceResolver resolver) {
this.contentFile = contentFile;
this.resolver = resolver;
@@ -124,7 +124,7 @@ abstract class FsItem implements Item {
public void accept(ItemVisitor visitor) throws RepositoryException {
// do nothing
}
-
+
@Override
public String toString() {
try {
@@ -136,8 +136,8 @@ abstract class FsItem implements Item {
throw new RuntimeException(ex);
}
}
-
-
+
+
// --- unsupported methods ---
@Override
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsNode.java b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsNode.java
index c0fb1cd..061ffdc 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsNode.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsNode.java
@@ -61,19 +61,19 @@ import org.apache.sling.fsprovider.internal.mapper.ContentFile;
* Simplified implementation of read-only content access via the JCR API.
*/
public final class FsNode extends FsItem implements Node {
-
+
public FsNode(ContentFile contentFile, ResourceResolver resolver) {
super(contentFile, resolver);
}
-
+
private String getPrimaryTypeName() {
return props.get("jcr:primaryType", String.class);
}
-
+
private String[] getMixinTypeNames() {
return props.get("jcr:mixinTypes", new String[0]);
}
-
+
@Override
public String getName() throws RepositoryException {
if (contentFile.getSubPath() == null) {
@@ -88,14 +88,14 @@ public final class FsNode extends FsItem implements Node {
public Node getParent() throws ItemNotFoundException, AccessDeniedException, RepositoryException {
return getNode(ResourceUtil.getParent(getPath()));
}
-
+
@Override
@SuppressWarnings("null")
public Node getNode(String relPath) throws PathNotFoundException, RepositoryException {
if (relPath == null) {
throw new PathNotFoundException();
}
-
+
// get absolute node path
String path = relPath;
if (!StringUtils.startsWith(path, "/")) {
@@ -116,7 +116,7 @@ public final class FsNode extends FsItem implements Node {
return new FsNode(referencedFile, resolver);
}
}
-
+
// check if node is outside content file
Node refNode = null;
Resource resource = resolver.getResource(path);
@@ -224,10 +224,10 @@ public final class FsNode extends FsItem implements Node {
}
return mixinTypes;
}
-
+
// --- unsupported methods ---
-
+
@Override
public Node addNode(String relPath) throws ItemExistsException, PathNotFoundException, VersionException,
ConstraintViolationException, LockException, RepositoryException {
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsNodeIterator.java b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsNodeIterator.java
index 7565994..3877ac6 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsNodeIterator.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsNodeIterator.java
@@ -32,7 +32,7 @@ import org.apache.sling.fsprovider.internal.parser.ContentElement;
* Simplified implementation of read-only content access via the JCR API.
*/
class FsNodeIterator implements NodeIterator {
-
+
private final ContentFile contentFile;
private final ResourceResolver resolver;
private final Iterator<Map.Entry<String,ContentElement>> children;
@@ -58,9 +58,9 @@ class FsNodeIterator implements NodeIterator {
return new FsNode(contentFile.navigateToRelative(nextEntry.getKey()), resolver);
}
-
+
// --- unsupported methods ---
-
+
public void remove() {
throw new UnsupportedOperationException();
}
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsNodeType.java b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsNodeType.java
index 8d60812..945d7e4 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsNodeType.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsNodeType.java
@@ -27,10 +27,10 @@ import javax.jcr.nodetype.PropertyDefinition;
import org.apache.commons.lang3.StringUtils;
class FsNodeType implements NodeType {
-
+
private final String name;
private final boolean mixin;
-
+
public FsNodeType(String name, boolean mixin) {
this.name = name;
this.mixin = mixin;
@@ -87,8 +87,8 @@ class FsNodeType implements NodeType {
}
- // --- unsupported methods ---
-
+ // --- unsupported methods ---
+
@Override
public PropertyDefinition[] getDeclaredPropertyDefinitions() {
throw new UnsupportedOperationException();
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsProperty.java b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsProperty.java
index bf24aa7..0ff2947 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsProperty.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsProperty.java
@@ -43,16 +43,16 @@ import org.apache.sling.fsprovider.internal.mapper.ContentFile;
* Simplified implementation of read-only content access via the JCR API.
*/
class FsProperty extends FsItem implements Property {
-
+
private final String propertyName;
private final Node node;
-
+
public FsProperty(ContentFile contentFile, ResourceResolver resolver, String propertyName, Node node) {
super(contentFile, resolver);
this.propertyName = propertyName;
this.node = node;
}
-
+
@Override
public String getName() throws RepositoryException {
return propertyName;
@@ -67,7 +67,7 @@ class FsProperty extends FsItem implements Property {
public Node getNode() throws ItemNotFoundException, ValueFormatException, RepositoryException {
return node;
}
-
+
@Override
public String getPath() throws RepositoryException {
return super.getPath() + "/" + propertyName;
@@ -143,15 +143,15 @@ class FsProperty extends FsItem implements Property {
public int getType() throws RepositoryException {
return getValue().getType();
}
-
+
@Override
public PropertyDefinition getDefinition() throws RepositoryException {
return new FsPropertyDefinition(propertyName);
}
-
+
// --- unsupported methods ---
-
+
@Override
public void setValue(Value value) throws ValueFormatException, VersionException, LockException,
ConstraintViolationException, RepositoryException {
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsPropertyDefinition.java b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsPropertyDefinition.java
index b406fd7..594e215 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsPropertyDefinition.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsPropertyDefinition.java
@@ -42,7 +42,7 @@ class FsPropertyDefinition implements PropertyDefinition {
}
private final String name;
-
+
public FsPropertyDefinition(String name) {
this.name = name;
}
@@ -110,6 +110,6 @@ class FsPropertyDefinition implements PropertyDefinition {
@Override
public boolean isQueryOrderable() {
return false;
- }
+ }
}
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsPropertyIterator.java b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsPropertyIterator.java
index 335472f..3d85e6f 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsPropertyIterator.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsPropertyIterator.java
@@ -31,12 +31,12 @@ import org.apache.sling.fsprovider.internal.mapper.ContentFile;
* Simplified implementation of read-only content access via the JCR API.
*/
class FsPropertyIterator implements PropertyIterator {
-
+
private final Iterator<String> propertyNames;
private final ContentFile contentFile;
private final ResourceResolver resolver;
private final Node node;
-
+
public FsPropertyIterator(Iterator<String> propertyNames, ContentFile contentFile, ResourceResolver resolver, Node node) {
this.propertyNames = propertyNames;
this.contentFile = contentFile;
@@ -57,9 +57,9 @@ class FsPropertyIterator implements PropertyIterator {
return new FsProperty(contentFile, resolver, propertyNames.next(), node);
}
-
+
// --- unsupported methods ---
-
+
public void remove() {
throw new UnsupportedOperationException();
}
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsValue.java b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsValue.java
index 7d53f88..4143f8f 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsValue.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/mapper/jcr/FsValue.java
@@ -35,11 +35,11 @@ import org.apache.sling.api.resource.ValueMap;
* Simplified implementation of read-only content access via the JCR API.
*/
class FsValue implements Value {
-
+
private final ValueMap props;
private final String propertyName;
private final int arrayIndex;
-
+
public FsValue(ValueMap props, String propertyName) {
this.props = props;
this.propertyName = propertyName;
@@ -172,7 +172,7 @@ class FsValue implements Value {
// --- unsupported methods ---
-
+
@Override
public InputStream getStream() throws RepositoryException {
throw new UnsupportedOperationException();
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/mapper/valuemap/DateUtils.java b/src/main/java/org/apache/sling/fsprovider/internal/mapper/valuemap/DateUtils.java
index cf985f5..7b074e9 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/mapper/valuemap/DateUtils.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/mapper/valuemap/DateUtils.java
@@ -29,7 +29,7 @@ import org.apache.jackrabbit.util.ISO8601;
* This can be removed when Sling API 2.17.0 or higher is referenced.
*/
final class DateUtils {
-
+
private DateUtils() {
// static methods only
}
@@ -57,7 +57,7 @@ final class DateUtils {
}
return input.getTime();
}
-
+
/**
* @param input Date value
* @return ISO8601 string representation or null
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ObjectConverter.java b/src/main/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ObjectConverter.java
index 5d91e06..da2d86b 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ObjectConverter.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ObjectConverter.java
@@ -31,7 +31,7 @@ import java.util.List;
* This can be removed when Sling API 2.17.0 or higher is referenced.
*/
final class ObjectConverter {
-
+
private ObjectConverter() {
// static methods only
}
@@ -47,17 +47,17 @@ final class ObjectConverter {
if (obj == null) {
return null;
}
-
+
// check if direct assignment is possible
if (type.isAssignableFrom(obj.getClass())) {
return (T)obj;
}
-
+
// convert array elements individually
if (type.isArray()) {
return (T)convertToArray(obj, type.getComponentType());
}
-
+
// convert Calendar in Date and vice versa
if (Calendar.class.isAssignableFrom(type) && obj instanceof Date) {
return (T)DateUtils.toCalendar((Date)obj);
@@ -66,7 +66,7 @@ final class ObjectConverter {
return (T)DateUtils.toDate((Calendar)obj);
}
- // no direct conversion - format to string and try to parse to target type
+ // no direct conversion - format to string and try to parse to target type
String result = getSingleValue(obj);
if (result == null) {
return null;
@@ -181,5 +181,5 @@ final class ObjectConverter {
return arrayResult;
}
}
-
+
}
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ValueMapUtil.java b/src/main/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ValueMapUtil.java
index ce69941..5ba7b04 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ValueMapUtil.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ValueMapUtil.java
@@ -25,11 +25,11 @@ import java.util.Map;
import org.apache.sling.api.resource.ValueMap;
public final class ValueMapUtil {
-
+
private ValueMapUtil() {
// static methods only
}
-
+
/**
* Convert map to value map.
* @param content Content map.
@@ -37,7 +37,7 @@ public final class ValueMapUtil {
*/
public static ValueMap toValueMap(Map<String,Object> content) {
Map<String,Object> props = new HashMap<>();
-
+
for (Map.Entry<String, Object> entry : content.entrySet()) {
if (entry.getValue() instanceof Collection) {
// convert lists to arrays
@@ -47,7 +47,7 @@ public final class ValueMapUtil {
props.put(entry.getKey(), entry.getValue());
}
}
-
+
return new ValueMapDecorator(props);
}
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentElement.java b/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentElement.java
index 85ead62..77e3cca 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentElement.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentElement.java
@@ -29,24 +29,24 @@ public interface ContentElement {
* @return Resource name. The root resource has no name (null).
*/
String getName();
-
+
/**
* Properties of this resource.
* @return Properties (keys, values)
*/
Map<String, Object> getProperties();
-
+
/**
* Get children of current resource. The Map preserves the ordering of children.
* @return Children (child names, child objects)
*/
Map<String, ContentElement> getChildren();
-
+
/**
* Get child or descendant
* @param path Relative path to address child or one of it's descendants (use "/" as hierarchy separator).
* @return Child or null if no child found with this path
*/
ContentElement getChild(String path);
-
+
}
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentElementHandler.java b/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentElementHandler.java
index e128943..760aac4 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentElementHandler.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentElementHandler.java
@@ -29,9 +29,9 @@ import org.apache.sling.jcr.contentparser.ContentHandler;
* {@link ContentHandler} implementation that produces a tree of {@link ContentElement} items.
*/
final class ContentElementHandler implements ContentHandler {
-
+
private ContentElement root;
- private Pattern PATH_PATTERN = Pattern.compile("^((/[^/]+)*)(/([^/]+))$");
+ private Pattern PATH_PATTERN = Pattern.compile("^((/[^/]+)*)(/([^/]+))$");
@Override
public void resource(String path, Map<String, Object> properties) {
@@ -61,7 +61,7 @@ final class ContentElementHandler implements ContentHandler {
parent.getChildren().put(name, new ContentElementImpl(name, properties));
}
}
-
+
public ContentElement getRoot() {
return root;
}
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentElementImpl.java b/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentElementImpl.java
index e7d6dd3..9f139bb 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentElementImpl.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentElementImpl.java
@@ -24,11 +24,11 @@ import java.util.Map;
import org.apache.commons.lang3.StringUtils;
final class ContentElementImpl implements ContentElement {
-
+
private final String name;
private final Map<String, Object> properties;
private final Map<String, ContentElement> children = new LinkedHashMap<>();
-
+
public ContentElementImpl(String name, Map<String, Object> properties) {
this.name = name;
this.properties = properties;
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileCache.java b/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileCache.java
index b4ed805..904d6c7 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileCache.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileCache.java
@@ -32,7 +32,7 @@ public final class ContentFileCache {
private final Map<String,ContentElement> contentCache;
private final ContentElement NULL_ELEMENT = new ContentElementImpl(null, Collections.<String,Object>emptyMap());
-
+
/**
* @param maxSize Cache size. 0 = caching disabled.
*/
@@ -45,7 +45,7 @@ public final class ContentFileCache {
this.contentCache = null;
}
}
-
+
/**
* Get content.
* @param path Path (used as cache key).
@@ -55,7 +55,7 @@ public final class ContentFileCache {
public ContentElement get(String path, File file) {
return get(path, file, null);
}
-
+
/**
* Get content.
* @param path Path (used as cache key).
@@ -89,7 +89,7 @@ public final class ContentFileCache {
return content;
}
}
-
+
/**
* Remove content from cache.
* @param path Path (used as cache key)
@@ -108,7 +108,7 @@ public final class ContentFileCache {
contentCache.clear();
}
}
-
+
/**
* @return Current cache size
*/
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileParserUtil.java b/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileParserUtil.java
index e0d0e0c..1bdfdf1 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileParserUtil.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileParserUtil.java
@@ -20,8 +20,8 @@ package org.apache.sling.fsprovider.internal.parser;
import static org.apache.jackrabbit.vault.util.Constants.DOT_CONTENT_XML;
import static org.apache.sling.fsprovider.internal.parser.ContentFileTypes.JCR_XML_SUFFIX;
-import static org.apache.sling.fsprovider.internal.parser.ContentFileTypes.XML_SUFFIX;
import static org.apache.sling.fsprovider.internal.parser.ContentFileTypes.JSON_SUFFIX;
+import static org.apache.sling.fsprovider.internal.parser.ContentFileTypes.XML_SUFFIX;
import java.io.BufferedInputStream;
import java.io.File;
@@ -42,16 +42,16 @@ import org.slf4j.LoggerFactory;
* Parses files that contains content fragments (e.g. JSON, JCR XML).
*/
class ContentFileParserUtil {
-
+
private static final Logger log = LoggerFactory.getLogger(ContentFileParserUtil.class);
-
+
private static final ContentParser JSON_PARSER;
static {
// workaround for JsonProvider classloader issue until https://issues.apache.org/jira/browse/GERONIMO-6560 is fixed
ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(ContentFileParserUtil.class.getClassLoader());
- // support comments and tick quotes for JSON parsing - same as in JCR content loader
+ // support comments and tick quotes for JSON parsing - same as in JCR content loader
JSON_PARSER = ContentParserFactory.create(ContentType.JSON, new ParserOptions()
.jsonParserFeatures(EnumSet.of(JsonParserFeature.COMMENTS, JsonParserFeature.QUOTE_TICK)));
}
@@ -61,11 +61,11 @@ class ContentFileParserUtil {
}
private static final ContentParser JCR_XML_PARSER = ContentParserFactory.create(ContentType.JCR_XML);
private static final ContentParser XML_PARSER = ContentParserFactory.create(ContentType.XML);
-
+
private ContentFileParserUtil() {
// static methods only
}
-
+
/**
* Parse content from file.
* @param file File. Type is detected automatically.
@@ -86,7 +86,7 @@ class ContentFileParserUtil {
}
return null;
}
-
+
/**
* Parse content from file.
* @param file File. Type is detected automatically.
@@ -114,7 +114,7 @@ class ContentFileParserUtil {
}
return null;
}
-
+
private static ContentElement parse(ContentParser contentParser, File file) throws IOException {
try (FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis)) {
diff --git a/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileTypes.java b/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileTypes.java
index 9cd9931..6912c46 100644
--- a/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileTypes.java
+++ b/src/main/java/org/apache/sling/fsprovider/internal/parser/ContentFileTypes.java
@@ -24,7 +24,7 @@ import org.apache.sling.jcr.contentparser.ContentType;
* Content file types.
*/
public final class ContentFileTypes {
-
+
/**
* JSON content files.
*/
@@ -34,14 +34,14 @@ public final class ContentFileTypes {
* XML content files.
*/
public static final String XML_SUFFIX = "." + ContentType.XML.getExtension();
-
+
/**
* JCR XML content files.
*/
public static final String JCR_XML_SUFFIX = "." + ContentType.JCR_XML.getExtension();
-
+
private ContentFileTypes() {
// static methods only
}
-
+
}
diff --git a/src/test/java/org/apache/sling/fsprovider/internal/FileMonitorTest.java b/src/test/java/org/apache/sling/fsprovider/internal/FileMonitorTest.java
index d2b1143..89f8837 100644
--- a/src/test/java/org/apache/sling/fsprovider/internal/FileMonitorTest.java
+++ b/src/test/java/org/apache/sling/fsprovider/internal/FileMonitorTest.java
@@ -45,10 +45,10 @@ public class FileMonitorTest {
private static final int CHECK_INTERVAL = 120;
private static final int WAIT_INTERVAL = 250;
-
+
private final File tempDir;
private final ResourceListener resourceListener = new ResourceListener();
-
+
public FileMonitorTest() throws Exception {
tempDir = Files.createTempDirectory(getClass().getName()).toFile();
}
@@ -62,7 +62,7 @@ public class FileMonitorTest {
tempDir.mkdirs();
File sourceDir = new File("src/test/resources/fs-test");
FileUtils.copyDirectory(sourceDir, tempDir);
-
+
// mount temp. directory
context.registerInjectActivateService(new FsResourceProvider(),
"provider.file", tempDir.getPath(),
@@ -70,7 +70,7 @@ public class FileMonitorTest {
"provider.checkinterval", CHECK_INTERVAL,
"provider.fs.mode", FsMode.INITIAL_CONTENT.name(),
"provider.initial.content.import.options", "overwrite:=true;ignoreImportProviders:=jcr.xml");
-
+
// register resource change listener
context.registerService(ResourceChangeListener.class, resourceListener,
ResourceChangeListener.PATHS, new String[] { "/fs-test" });
@@ -89,69 +89,69 @@ public class FileMonitorTest {
public void testUpdateFile() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File file1a = new File(tempDir, "folder1/file1a.txt");
FileUtils.touch(file1a);
-
+
Thread.sleep(WAIT_INTERVAL);
assertEquals(1, changes.size());
assertChange(changes, "/fs-test/folder1/file1a.txt", ChangeType.CHANGED);
}
-
+
@Test
public void testAddFile() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File file1c = new File(tempDir, "folder1/file1c.txt");
FileUtils.write(file1c, "newcontent");
-
+
Thread.sleep(WAIT_INTERVAL);
assertEquals(2, changes.size());
assertChange(changes, "/fs-test/folder1", ChangeType.CHANGED);
assertChange(changes, "/fs-test/folder1/file1c.txt", ChangeType.ADDED);
}
-
+
@Test
public void testRemoveFile() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File file1a = new File(tempDir, "folder1/file1a.txt");
file1a.delete();
-
+
Thread.sleep(WAIT_INTERVAL);
assertEquals(2, changes.size());
assertChange(changes, "/fs-test/folder1", ChangeType.CHANGED);
assertChange(changes, "/fs-test/folder1/file1a.txt", ChangeType.REMOVED);
}
-
+
@Test
public void testAddFolder() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File folder99 = new File(tempDir, "folder99");
folder99.mkdir();
-
+
Thread.sleep(WAIT_INTERVAL);
assertEquals(2, changes.size());
assertChange(changes, "/fs-test", ChangeType.CHANGED);
assertChange(changes, "/fs-test/folder99", ChangeType.ADDED);
}
-
+
@Test
public void testRemoveFolder() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File folder1 = new File(tempDir, "folder1");
FileUtils.deleteDirectory(folder1);
-
+
Thread.sleep(WAIT_INTERVAL);
assertEquals(2, changes.size());
@@ -163,25 +163,25 @@ public class FileMonitorTest {
public void testUpdateContent() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File file1a = new File(tempDir, "folder2/content.json");
FileUtils.touch(file1a);
-
+
Thread.sleep(WAIT_INTERVAL);
assertChange(changes, "/fs-test/folder2/content", ChangeType.REMOVED);
assertChange(changes, "/fs-test/folder2/content", ChangeType.ADDED);
assertChange(changes, "/fs-test/folder2/content/jcr:content", ChangeType.ADDED);
}
-
+
@Test
public void testAddContent() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File file1c = new File(tempDir, "folder1/file1c.json");
FileUtils.write(file1c, "{\"prop1\":\"value1\",\"child1\":{\"prop2\":\"value1\"}}");
-
+
Thread.sleep(WAIT_INTERVAL);
assertEquals(3, changes.size());
@@ -189,20 +189,20 @@ public class FileMonitorTest {
assertChange(changes, "/fs-test/folder1/file1c", ChangeType.ADDED);
assertChange(changes, "/fs-test/folder1/file1c/child1", ChangeType.ADDED);
}
-
+
@Test
public void testRemoveContent() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File file1a = new File(tempDir, "folder2/content.json");
file1a.delete();
-
+
Thread.sleep(WAIT_INTERVAL);
assertEquals(2, changes.size());
assertChange(changes, "/fs-test/folder2", ChangeType.CHANGED);
assertChange(changes, "/fs-test/folder2/content", ChangeType.REMOVED);
}
-
+
}
diff --git a/src/test/java/org/apache/sling/fsprovider/internal/FileVaultContentTest.java b/src/test/java/org/apache/sling/fsprovider/internal/FileVaultContentTest.java
index 40a1af8..2dcd9c1 100644
--- a/src/test/java/org/apache/sling/fsprovider/internal/FileVaultContentTest.java
+++ b/src/test/java/org/apache/sling/fsprovider/internal/FileVaultContentTest.java
@@ -80,16 +80,16 @@ public class FileVaultContentTest {
public void testDamAsset() {
assertNotNull(damAsset);
assertEquals("app:Asset", damAsset.getResourceType());
-
+
Resource content = damAsset.getChild("jcr:content");
assertNotNull(content);
assertEquals("app:AssetContent", content.getResourceType());
-
+
Resource metadata = content.getChild("metadata");
assertNotNull(metadata);
ValueMap props = metadata.getValueMap();
assertEquals((Integer)4, props.get("app:Bitsperpixel", Integer.class));
-
+
assertFolder(content, "renditions");
assertFile(content, "renditions/original", null);
assertFile(content, "renditions/web.1280.1280.png", null);
@@ -125,13 +125,13 @@ public class FileVaultContentTest {
Node conference = en.addNode("conference", "nt:folder");
conference.addNode("page2", "nt:folder");
samples.addNode("it", "nt:folder");
-
+
// pass-through because of filter
assertNotNull(context.resourceResolver().getResource("/content/samples/en/conference"));
assertNotNull(sampleContent.getChild("en/conference"));
assertNotNull(context.resourceResolver().getResource("/content/samples/en/conference/page2"));
assertNotNull(sampleContent.getChild("en/conference/page2"));
-
+
// hidden because overlayed by resource provider
assertNull(context.resourceResolver().getResource("/content/samples/it"));
assertNull(sampleContent.getChild("it"));
@@ -146,7 +146,7 @@ public class FileVaultContentTest {
Resource extraContent = sampleContent.getChild("en/extra/extracontent");
assertNotNull(extraContent);
assertEquals("apps/app1/components/comp1", extraContent.getResourceType());
-
+
Resource layout = extraContent.getChild("layout");
assertNotNull(layout);
assertEquals("apps/app1/components/comp2", layout.getResourceType());
diff --git a/src/test/java/org/apache/sling/fsprovider/internal/FileVaultFileMonitorTest.java b/src/test/java/org/apache/sling/fsprovider/internal/FileVaultFileMonitorTest.java
index 76e0525..763c64a 100644
--- a/src/test/java/org/apache/sling/fsprovider/internal/FileVaultFileMonitorTest.java
+++ b/src/test/java/org/apache/sling/fsprovider/internal/FileVaultFileMonitorTest.java
@@ -42,13 +42,13 @@ import org.junit.Test;
* Test events when changing file system content (FileVault XML).
*/
public class FileVaultFileMonitorTest {
-
+
private static final int CHECK_INTERVAL = 120;
private static final int WAIT_INTERVAL = 250;
private final File tempDir;
private final ResourceListener resourceListener = new ResourceListener();
-
+
public FileVaultFileMonitorTest() throws Exception {
tempDir = Files.createTempDirectory(getClass().getName()).toFile();
}
@@ -62,7 +62,7 @@ public class FileVaultFileMonitorTest {
tempDir.mkdirs();
File sourceDir = new File("src/test/resources/vaultfs-test");
FileUtils.copyDirectory(sourceDir, tempDir);
-
+
// mount temp. directory
context.registerInjectActivateService(new FsResourceProvider(),
"provider.file", tempDir.getPath() + "/jcr_root",
@@ -76,7 +76,7 @@ public class FileVaultFileMonitorTest {
"provider.root", "/content/samples",
"provider.checkinterval", CHECK_INTERVAL,
"provider.fs.mode", FsMode.FILEVAULT_XML.name());
-
+
// register resource change listener
context.registerService(ResourceChangeListener.class, resourceListener,
ResourceChangeListener.PATHS, new String[] { "/content/dam/talk.png", "/content/samples" });
@@ -95,69 +95,69 @@ public class FileVaultFileMonitorTest {
public void testUpdateFile() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File file = new File(tempDir, "jcr_root/content/dam/talk.png/_jcr_content/renditions/web.1280.1280.png");
FileUtils.touch(file);
-
+
Thread.sleep(WAIT_INTERVAL);
assertEquals(1, changes.size());
assertChange(changes, "/content/dam/talk.png/jcr:content/renditions/web.1280.1280.png", ChangeType.CHANGED);
}
-
+
@Test
public void testAddFile() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File file = new File(tempDir, "jcr_root/content/dam/talk.png/_jcr_content/renditions/text.txt");
FileUtils.write(file, "newcontent");
-
+
Thread.sleep(WAIT_INTERVAL);
assertEquals(2, changes.size());
assertChange(changes, "/content/dam/talk.png/jcr:content/renditions", ChangeType.CHANGED);
assertChange(changes, "/content/dam/talk.png/jcr:content/renditions/text.txt", ChangeType.ADDED);
}
-
+
@Test
public void testRemoveFile() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File file = new File(tempDir, "jcr_root/content/dam/talk.png/_jcr_content/renditions/web.1280.1280.png");
file.delete();
-
+
Thread.sleep(WAIT_INTERVAL);
assertEquals(2, changes.size());
assertChange(changes, "/content/dam/talk.png/jcr:content/renditions", ChangeType.CHANGED);
assertChange(changes, "/content/dam/talk.png/jcr:content/renditions/web.1280.1280.png", ChangeType.REMOVED);
}
-
+
@Test
public void testAddFolder() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File folder = new File(tempDir, "jcr_root/content/dam/talk.png/_jcr_content/newfolder");
folder.mkdir();
-
+
Thread.sleep(WAIT_INTERVAL);
assertEquals(2, changes.size());
assertChange(changes, "/content/dam/talk.png/jcr:content", ChangeType.CHANGED);
assertChange(changes, "/content/dam/talk.png/jcr:content/newfolder", ChangeType.ADDED);
}
-
+
@Test
public void testRemoveFolder() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File folder = new File(tempDir, "jcr_root/content/dam/talk.png/_jcr_content/renditions");
FileUtils.deleteDirectory(folder);
-
+
Thread.sleep(WAIT_INTERVAL);
assertEquals(2, changes.size());
@@ -169,22 +169,22 @@ public class FileVaultFileMonitorTest {
public void testUpdateContent() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File file = new File(tempDir, "jcr_root/content/samples/en/.content.xml");
FileUtils.touch(file);
-
+
Thread.sleep(WAIT_INTERVAL);
assertChange(changes, "/content/samples/en", ChangeType.REMOVED);
assertChange(changes, "/content/samples/en", ChangeType.ADDED);
assertChange(changes, "/content/samples/en/jcr:content", ChangeType.ADDED);
}
-
+
@Test
public void testAddContent() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File file = new File(tempDir, "jcr_root/content/samples/fr/.content.xml");
file.getParentFile().mkdir();
FileUtils.write(file, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
@@ -192,43 +192,43 @@ public class FileVaultFileMonitorTest {
+ "xmlns:sling=\"http://sling.apache.org/jcr/sling/1.0\" jcr:primaryType=\"app:Page\">\n"
+ "<jcr:content jcr:primaryType=\"app:PageContent\"/>\n"
+ "</jcr:root>");
-
+
Thread.sleep(WAIT_INTERVAL);
assertChange(changes, "/content/samples", ChangeType.CHANGED);
assertChange(changes, "/content/samples/fr", ChangeType.ADDED);
assertChange(changes, "/content/samples/fr/jcr:content", ChangeType.ADDED);
}
-
+
@Test
public void testRemoveContent() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File file = new File(tempDir, "jcr_root/content/samples/en");
FileUtils.deleteDirectory(file);
-
+
Thread.sleep(WAIT_INTERVAL);
assertEquals(2, changes.size());
assertChange(changes, "/content/samples", ChangeType.CHANGED);
assertChange(changes, "/content/samples/en", ChangeType.REMOVED);
}
-
+
@Test
public void testRemoveContentDotXmlOnly() throws Exception {
List<ResourceChange> changes = resourceListener.getChanges();
assertTrue(changes.isEmpty());
-
+
File file = new File(tempDir, "jcr_root/content/samples/en/.content.xml");
file.delete();
-
+
Thread.sleep(WAIT_INTERVAL);
assertEquals(2, changes.size());
assertChange(changes, "/content/samples/en", ChangeType.CHANGED);
- // this second event is not fully correct, but this is a quite special case, accept it for now
+ // this second event is not fully correct, but this is a quite special case, accept it for now
assertChange(changes, "/content/samples/en", ChangeType.REMOVED);
}
-
+
}
diff --git a/src/test/java/org/apache/sling/fsprovider/internal/JcrMixedTest.java b/src/test/java/org/apache/sling/fsprovider/internal/JcrMixedTest.java
index 5646c78..3c7be0d 100644
--- a/src/test/java/org/apache/sling/fsprovider/internal/JcrMixedTest.java
+++ b/src/test/java/org/apache/sling/fsprovider/internal/JcrMixedTest.java
@@ -53,7 +53,7 @@ public class JcrMixedTest {
public void setUp() throws RepositoryException {
root = context.resourceResolver().getResource("/");
fsroot = context.resourceResolver().getResource("/fs-test");
-
+
// prepare mixed JCR content
Node node = root.adaptTo(Node.class);
Node fstest = node.addNode("fs-test", "nt:folder");
diff --git a/src/test/java/org/apache/sling/fsprovider/internal/JcrXmlContentTest.java b/src/test/java/org/apache/sling/fsprovider/internal/JcrXmlContentTest.java
index 2bca0eb..c9f8c66 100644
--- a/src/test/java/org/apache/sling/fsprovider/internal/JcrXmlContentTest.java
+++ b/src/test/java/org/apache/sling/fsprovider/internal/JcrXmlContentTest.java
@@ -125,12 +125,12 @@ public class JcrXmlContentTest {
public void testContent_Datatypes() {
Resource underTest = fsroot.getChild("folder3/content/jcr:content");
ValueMap props = underTest.getValueMap();
-
+
assertEquals("en", props.get("jcr:title", String.class));
assertEquals(true, props.get("includeAside", false));
assertEquals((Long)1234567890123L, props.get("longProp", Long.class));
- assertEquals((Double)1.2345d, props.get("decimalProp", Double.class), 0.00001d);
-
+ assertEquals(1.2345d, props.get("decimalProp", Double.class), 0.00001d);
+
assertArrayEquals(new String[] { "aa", "bb", "cc" }, props.get("stringPropMulti", String[].class));
assertArrayEquals(new Long[] { 1234567890123L, 55L }, props.get("longPropMulti", Long[].class));
}
@@ -156,7 +156,7 @@ public class JcrXmlContentTest {
Resource folder3 = fsroot.getChild("folder3");
List<Resource> children = Lists.newArrayList(folder3.listChildren());
Collections.sort(children, new ResourcePathComparator());
-
+
assertEquals(2, children.size());
Resource child1 = children.get(0);
assertEquals("content", child1.getName());
diff --git a/src/test/java/org/apache/sling/fsprovider/internal/JsonContentTest.java b/src/test/java/org/apache/sling/fsprovider/internal/JsonContentTest.java
index 2daed26..84226e3 100644
--- a/src/test/java/org/apache/sling/fsprovider/internal/JsonContentTest.java
+++ b/src/test/java/org/apache/sling/fsprovider/internal/JsonContentTest.java
@@ -142,13 +142,13 @@ public class JsonContentTest {
public void testContent_Datatypes() {
Resource underTest = fsroot.getChild("folder2/content/toolbar/profiles/jcr:content");
ValueMap props = underTest.getValueMap();
-
+
assertEquals("Profiles", props.get("jcr:title", String.class));
assertEquals(true, props.get("booleanProp", false));
assertEquals((Long)1234567890123L, props.get("longProp", Long.class));
- assertEquals((Double)1.2345d, props.get("decimalProp", Double.class), 0.00001d);
+ assertEquals(1.2345d, props.get("decimalProp", Double.class), 0.00001d);
assertEquals(new BigDecimal("1.2345"), props.get("decimalProp", BigDecimal.class));
-
+
assertArrayEquals(new String[] { "aa", "bb", "cc" }, props.get("stringPropMulti", String[].class));
assertArrayEquals(new Long[] { 1234567890123L, 55L }, props.get("longPropMulti", Long[].class));
}
@@ -158,13 +158,13 @@ public class JsonContentTest {
Resource underTest = fsroot.getChild("folder2/content/toolbar/profiles/jcr:content");
ValueMap props = underTest.getValueMap();
Node node = underTest.adaptTo(Node.class);
-
+
assertEquals("/fs-test/folder2/content/toolbar/profiles/jcr:content", node.getPath());
assertEquals(6, node.getDepth());
-
+
assertTrue(node.hasProperty(JcrConstants.JCR_PRIMARYTYPE));
assertTrue(node.getProperty(JcrConstants.JCR_PRIMARYTYPE).getDefinition().isProtected());
-
+
assertTrue(node.hasProperty("jcr:title"));
assertEquals(PropertyType.STRING, node.getProperty("jcr:title").getType());
assertFalse(node.getProperty("jcr:title").isMultiple());
@@ -179,7 +179,7 @@ public class JsonContentTest {
assertEquals(PropertyType.DECIMAL, node.getProperty("decimalProp").getType());
assertEquals(1.2345d, node.getProperty("decimalProp").getDouble(), 0.00001d);
assertEquals(new BigDecimal("1.2345"), node.getProperty("decimalProp").getDecimal());
-
+
assertEquals(PropertyType.STRING, node.getProperty("stringPropMulti").getType());
assertTrue(node.getProperty("stringPropMulti").isMultiple());
Value[] stringPropMultiValues = node.getProperty("stringPropMulti").getValues();
@@ -194,7 +194,7 @@ public class JsonContentTest {
assertEquals(2, longPropMultiValues.length);
assertEquals(1234567890123L, longPropMultiValues[0].getLong());
assertEquals(55L, longPropMultiValues[1].getLong());
-
+
// assert property iterator
Set<String> propertyNames = new HashSet<>();
PropertyIterator propertyIterator = node.getProperties();
@@ -210,7 +210,7 @@ public class JsonContentTest {
nodeNames.add(nodeIterator.nextNode().getName());
}
assertEquals(ImmutableSet.of("par", "rightpar"), nodeNames);
-
+
// node hierarchy
assertTrue(node.hasNode("rightpar"));
Node rightpar = node.getNode("rightpar");
@@ -221,7 +221,7 @@ public class JsonContentTest {
assertEquals(underTest.getParent().getPath(), ancestor.getPath());
Node root = (Node)rightpar.getAncestor(0);
assertEquals("/", root.getPath());
-
+
// node types
assertTrue(node.isNodeType("app:PageContent"));
assertEquals("app:PageContent", node.getPrimaryNodeType().getName());
@@ -239,7 +239,7 @@ public class JsonContentTest {
Resource underTest = fsroot.getChild("folder2/content/jcr:content/par/title_2");
assertEquals(ParserOptions.DEFAULT_PRIMARY_TYPE, underTest.adaptTo(Node.class).getPrimaryNodeType().getName());
}
-
+
@Test
public void testContent_InvalidPath() {
Resource underTest = fsroot.getChild("folder2/content/jcr:content/xyz");
@@ -261,7 +261,7 @@ public class JsonContentTest {
Resource folder2 = fsroot.getChild("folder2");
List<Resource> children = Lists.newArrayList(folder2.listChildren());
Collections.sort(children, new ResourcePathComparator());
-
+
assertEquals(2, children.size());
Resource child1 = children.get(0);
assertEquals("content", child1.getName());
@@ -278,7 +278,7 @@ public class JsonContentTest {
Resource file21a = fsroot.getChild("folder2/folder21/file21a.txt");
assertEquals("nt:file", file21a.getResourceType());
assertEquals("/my/super/type", file21a.getResourceSuperType());
-
+
ValueMap props = file21a.getValueMap();
assertEquals("nt:file", props.get("jcr:primaryType", String.class));
assertEquals("/my/super/type", props.get("sling:resourceSuperType", String.class));
@@ -286,7 +286,7 @@ public class JsonContentTest {
assertArrayEquals(new String[] { "mix:language" }, props.get("jcr:mixinTypes", String[].class));
assertNull(fsroot.getChild("folder2/folder21/file21a.txt.xml"));
-
+
Node node = file21a.adaptTo(Node.class);
assertNotNull(node);
assertEquals("/my/super/type", node.getProperty("sling:resourceSuperType").getString());
diff --git a/src/test/java/org/apache/sling/fsprovider/internal/TestUtils.java b/src/test/java/org/apache/sling/fsprovider/internal/TestUtils.java
index 4b9e300..1211b70 100644
--- a/src/test/java/org/apache/sling/fsprovider/internal/TestUtils.java
+++ b/src/test/java/org/apache/sling/fsprovider/internal/TestUtils.java
@@ -53,7 +53,7 @@ class TestUtils {
public static class RegisterFsResourcePlugin extends AbstractContextPlugin<SlingContextImpl> {
private final Map<String,Object> props;
public RegisterFsResourcePlugin(Object... props) {
- this.props = MapUtil.toMap(props);
+ this.props = MapUtil.toMap(props);
}
@Override
public void beforeSetUp(SlingContextImpl context) throws Exception {
@@ -70,10 +70,10 @@ class TestUtils {
public static void assertFolder(Resource resource, String path) {
Resource folder = resource.getChild(path);
assertNotNull(path, folder);
-
+
assertThat(folder, ResourceMatchers.props("jcr:primaryType", "nt:folder"));
assertEquals("nt:folder", folder.getResourceType());
-
+
assertNull(folder.getResourceSuperType());
assertEquals(folder.getName(), folder.adaptTo(File.class).getName());
assertTrue(StringUtils.contains(folder.adaptTo(URL.class).toString(), folder.getName()));
@@ -82,13 +82,13 @@ class TestUtils {
public static void assertFile(Resource resource, String path, String content) {
Resource file = resource.getChild(path);
assertNotNull(path, file);
-
+
assertThat(file, ResourceMatchers.props("jcr:primaryType", "nt:file"));
assertEquals("nt:file", file.getResourceType());
-
+
assertNull(file.getResourceSuperType());
assertEquals(file.getName(), Escape.fileToResourceName(file.adaptTo(File.class).getName()));
-
+
if (content != null) {
try {
try (InputStream is = file.adaptTo(InputStream.class)) {
@@ -100,7 +100,7 @@ class TestUtils {
throw new RuntimeException(ex);
}
}
- }
+ }
public static void assertChange(List<ResourceChange> changes, String path, ChangeType changeType) {
boolean found = false;
@@ -112,7 +112,7 @@ class TestUtils {
}
assertTrue("Change with path=" + path + ", changeType=" + changeType + " expected", found);
}
-
+
public static class ResourceListener implements ResourceChangeListener {
private final List<ResourceChange> allChanges = new ArrayList<>();
@Override
diff --git a/src/test/java/org/apache/sling/fsprovider/internal/mapper/ContentFileTest.java b/src/test/java/org/apache/sling/fsprovider/internal/mapper/ContentFileTest.java
index 3a6a747..f51dcb3 100644
--- a/src/test/java/org/apache/sling/fsprovider/internal/mapper/ContentFileTest.java
+++ b/src/test/java/org/apache/sling/fsprovider/internal/mapper/ContentFileTest.java
@@ -31,17 +31,17 @@ import org.apache.sling.fsprovider.internal.parser.ContentFileCache;
import org.junit.Test;
public class ContentFileTest {
-
+
private ContentFileCache contentFileCache = new ContentFileCache(0);
@Test
public void testRootContent() {
File file = new File("src/test/resources/fs-test/folder2/content.json");
-
+
ContentFile underTest = new ContentFile(file, "/fs-test/folder2/content", null, contentFileCache);
assertEquals(file, underTest.getFile());
assertNull(underTest.getSubPath());
-
+
assertTrue(underTest.hasContent());
ContentElement content = underTest.getContent();
@@ -56,11 +56,11 @@ public class ContentFileTest {
@Test
public void testContentLevel1() {
File file = new File("src/test/resources/fs-test/folder2/content.json");
-
+
ContentFile underTest = new ContentFile(file, "/fs-test/folder2/content", "jcr:content", contentFileCache);
assertEquals(file, underTest.getFile());
assertEquals("jcr:content", underTest.getSubPath());
-
+
assertTrue(underTest.hasContent());
ContentElement content = underTest.getContent();
@@ -73,11 +73,11 @@ public class ContentFileTest {
@Test
public void testContentLevel5() {
File file = new File("src/test/resources/fs-test/folder2/content.json");
-
+
ContentFile underTest = new ContentFile(file, "/fs-test/folder2/content", "jcr:content/par/image/file/jcr:content", contentFileCache);
assertEquals(file, underTest.getFile());
assertEquals("jcr:content/par/image/file/jcr:content", underTest.getSubPath());
-
+
assertTrue(underTest.hasContent());
ContentElement content = underTest.getContent();
@@ -90,11 +90,11 @@ public class ContentFileTest {
@Test
public void testContentProperty() {
File file = new File("src/test/resources/fs-test/folder2/content.json");
-
+
ContentFile underTest = new ContentFile(file, "/fs-test/folder2/content", "jcr:content/jcr:title", contentFileCache);
assertEquals(file, underTest.getFile());
assertEquals("jcr:content/jcr:title", underTest.getSubPath());
-
+
assertFalse(underTest.hasContent());
}
diff --git a/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/Convert.java b/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/Convert.java
index 15657cc..adf49c1 100644
--- a/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/Convert.java
+++ b/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/Convert.java
@@ -32,11 +32,11 @@ import org.apache.commons.lang3.ClassUtils;
* This is copied from org.apache.sling.api.wrappers.impl.Convert
*/
final class Convert {
-
+
private Convert() {
// static methods only
}
-
+
@SuppressWarnings("unchecked")
public static class ConversionAssert<T,U> {
private final T input1;
@@ -46,7 +46,7 @@ final class Convert {
private U expected2;
private U nullValue;
private Class<U> expectedType;
-
+
private ConversionAssert(T input1, T input2, boolean inputTypePrimitive) {
this.input1 = input1;
this.input2 = input2;
@@ -55,7 +55,7 @@ final class Convert {
this.inputType = (Class<T>)ClassUtils.wrapperToPrimitive(this.inputType);
}
}
-
+
private void expected(U expected1, U expected2, boolean expectedTypePrimitive) {
this.expected1 = expected1;
this.expected2 = expected2;
@@ -64,7 +64,7 @@ final class Convert {
expectedType = (Class<U>)ClassUtils.wrapperToPrimitive(this.expectedType);
}
}
-
+
/**
* @param expected1 Singleton or first array expected result value
* @param expected2 Second array expected result value
@@ -84,7 +84,7 @@ final class Convert {
expected(expected1, expected2, true);
return this;
}
-
+
/**
* @param expected1 Singleton or first array expected result value
* @param expected2 Second array expected result value
@@ -96,7 +96,7 @@ final class Convert {
this.expectedType = expectedType;
return this;
}
-
+
/**
* @param nullValue Result value in case of null
*/
@@ -104,7 +104,7 @@ final class Convert {
this.nullValue = nullValue;
return this;
}
-
+
/**
* Do assertion
*/
@@ -132,10 +132,10 @@ final class Convert {
private static <T,U> void assertPermuations(T input1, T input2, Class<T> inputType,
U expected1, U expected2, U nullValue, Class<U> expectedType, Class<U[]> expectedArrayType) {
-
+
// single value to single value
assertConversion(expected1, input1, expectedType);
-
+
// single value to array
Object expectedSingletonArray;
if (expected1 == null && expected2 == null) {
@@ -146,7 +146,7 @@ final class Convert {
Array.set(expectedSingletonArray, 0, expected1);
}
assertConversion(expectedSingletonArray, input1, expectedArrayType);
-
+
// array to array
Object inputDoubleArray = Array.newInstance(inputType, 2);
Array.set(inputDoubleArray, 0, input1);
@@ -161,16 +161,16 @@ final class Convert {
Array.set(expectedDoubleArray, 1, expected2);
}
assertConversion(expectedDoubleArray, inputDoubleArray, expectedArrayType);
-
+
// array to single (first) value
assertConversion(expected1, inputDoubleArray, expectedType);
-
+
// null to single value
assertConversion(nullValue, null, expectedType);
-
+
// null to array
assertConversion(null, null, expectedArrayType);
-
+
// empty array to single value
Object inputEmptyArray = Array.newInstance(inputType, 0);
assertConversion(nullValue, inputEmptyArray, expectedType);
@@ -179,7 +179,7 @@ final class Convert {
Object expectedEmptyArray = Array.newInstance(expectedType, 0);
assertConversion(expectedEmptyArray, inputEmptyArray, expectedArrayType);
}
-
+
@SuppressWarnings("unchecked")
private static <T,U> void assertConversion(Object expected, Object input, Class<U> type) {
U result = ObjectConverter.convert(input, type);
@@ -194,7 +194,7 @@ final class Convert {
assertEquals(msg, toStringIfDate(expected), toStringIfDate(result));
}
}
-
+
private static String toString(Object input) {
if (input == null) {
return "null";
@@ -215,7 +215,7 @@ final class Convert {
return toStringIfDate(input).toString();
}
}
-
+
private static Object toStringIfDate(Object input) {
if (input == null) {
return null;
@@ -238,5 +238,5 @@ final class Convert {
}
return input;
}
-
+
}
diff --git a/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ObjectConverterTest.java b/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ObjectConverterTest.java
index 8c21a70..a0a46f8 100644
--- a/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ObjectConverterTest.java
+++ b/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ObjectConverterTest.java
@@ -36,7 +36,7 @@ import org.junit.Test;
* This is copied from org.apache.sling.api.wrappers.impl.ObjectConverterTest
*/
public class ObjectConverterTest {
-
+
private static final String STRING_1 = "item1";
private static final String STRING_2 = "item2";
private static final boolean BOOLEAN_1 = true;
@@ -85,24 +85,24 @@ public class ObjectConverterTest {
Convert.from(CALENDAR_1, CALENDAR_2).to(calendarToString(CALENDAR_1), calendarToString(CALENDAR_2)).test();
Convert.from(DATE_1, DATE_2).to(calendarToString(toCalendar(DATE_1)), calendarToString(toCalendar(DATE_2))).test();
}
-
+
@Test
public void testToBoolean() {
Convert.fromPrimitive(BOOLEAN_1, BOOLEAN_2).to(BOOLEAN_1, BOOLEAN_2).test();
Convert.from(BOOLEAN_1, BOOLEAN_2).to(BOOLEAN_1, BOOLEAN_2).test();
Convert.from(Boolean.toString(BOOLEAN_1), Boolean.toString(BOOLEAN_2)).to(BOOLEAN_1, BOOLEAN_2).test();
-
+
// test other types that should not be converted
Convert.<Integer,Boolean>from(INT_1, INT_2).toNull(Boolean.class).test();
Convert.<Date,Boolean>from(DATE_1, DATE_2).toNull(Boolean.class).test();
}
-
+
@Test
public void testToByte() {
Convert.fromPrimitive(BYTE_1, BYTE_2).to(BYTE_1, BYTE_2).test();
Convert.from(BYTE_1, BYTE_2).to(BYTE_1, BYTE_2).test();
Convert.from(Byte.toString(BYTE_1), Byte.toString(BYTE_2)).to(BYTE_1, BYTE_2).test();
-
+
// test conversion from other number types
Convert.from(INT_1, INT_2).to((byte)INT_1, (byte)INT_2).test();
Convert.fromPrimitive(INT_1, INT_2).to((byte)INT_1, (byte)INT_2).test();
@@ -110,13 +110,13 @@ public class ObjectConverterTest {
// test other types that should not be converted
Convert.<Date,Byte>from(DATE_1, DATE_2).toNull(Byte.class).test();
}
-
+
@Test
public void testToShort() {
Convert.fromPrimitive(SHORT_1, SHORT_2).to(SHORT_1, SHORT_2).test();
Convert.from(SHORT_1, SHORT_2).to(SHORT_1, SHORT_2).test();
Convert.from(Short.toString(SHORT_1), Short.toString(SHORT_2)).to(SHORT_1, SHORT_2).test();
-
+
// test conversion from other number types
Convert.from(INT_1, INT_2).to((short)INT_1, (short)INT_2).test();
Convert.fromPrimitive(INT_1, INT_2).to((short)INT_1, (short)INT_2).test();
@@ -124,13 +124,13 @@ public class ObjectConverterTest {
// test other types that should not be converted
Convert.<Date,Short>from(DATE_1, DATE_2).toNull(Short.class).test();
}
-
+
@Test
public void testToInteger() {
Convert.fromPrimitive(INT_1, INT_2).to(INT_1, INT_2).test();
Convert.from(INT_1, INT_2).to(INT_1, INT_2).test();
Convert.from(Integer.toString(INT_1), Integer.toString(INT_2)).to(INT_1, INT_2).test();
-
+
// test conversion from other number types
Convert.from(SHORT_1, SHORT_2).to((int)SHORT_1, (int)SHORT_2).test();
Convert.fromPrimitive(SHORT_1, SHORT_2).to((int)SHORT_1, (int)SHORT_2).test();
@@ -138,13 +138,13 @@ public class ObjectConverterTest {
// test other types that should not be converted
Convert.<Date,Integer>from(DATE_1, DATE_2).toNull(Integer.class).test();
}
-
+
@Test
public void testToLong() {
Convert.fromPrimitive(LONG_1, LONG_2).to(LONG_1, LONG_2).test();
Convert.from(LONG_1, LONG_2).to(LONG_1, LONG_2).test();
Convert.from(Long.toString(LONG_1), Long.toString(LONG_2)).to(LONG_1, LONG_2).test();
-
+
// test conversion from other number types
Convert.from(SHORT_1, SHORT_2).to((long)SHORT_1, (long)SHORT_2).test();
Convert.fromPrimitive(SHORT_1, SHORT_2).to((long)SHORT_1, (long)SHORT_2).test();
@@ -152,13 +152,13 @@ public class ObjectConverterTest {
// test other types that should not be converted
Convert.<Date,Long>from(DATE_1, DATE_2).toNull(Long.class).test();
}
-
+
@Test
public void testToFloat() {
Convert.fromPrimitive(FLOAT_1, FLOAT_2).to(FLOAT_1, FLOAT_2).test();
Convert.from(FLOAT_1, FLOAT_2).to(FLOAT_1, FLOAT_2).test();
Convert.from(Float.toString(FLOAT_1), Float.toString(FLOAT_2)).to(FLOAT_1, FLOAT_2).test();
-
+
// test conversion from other number types
Convert.from(SHORT_1, SHORT_2).to((float)SHORT_1, (float)SHORT_2).test();
Convert.fromPrimitive(SHORT_1, SHORT_2).to((float)SHORT_1, (float)SHORT_2).test();
@@ -166,13 +166,13 @@ public class ObjectConverterTest {
// test other types that should not be converted
Convert.<Date,Float>from(DATE_1, DATE_2).toNull(Float.class).test();
}
-
+
@Test
public void testToDouble() {
Convert.fromPrimitive(DOUBLE_1, DOUBLE_2).to(DOUBLE_1, DOUBLE_2).test();
Convert.from(DOUBLE_1, DOUBLE_2).to(DOUBLE_1, DOUBLE_2).test();
Convert.from(Double.toString(DOUBLE_1), Double.toString(DOUBLE_2)).to(DOUBLE_1, DOUBLE_2).test();
-
+
// test conversion from other number types
Convert.from(SHORT_1, SHORT_2).to((double)SHORT_1, (double)SHORT_2).test();
Convert.fromPrimitive(SHORT_1, SHORT_2).to((double)SHORT_1, (double)SHORT_2).test();
@@ -180,12 +180,12 @@ public class ObjectConverterTest {
// test other types that should not be converted
Convert.<Date,Double>from(DATE_1, DATE_2).toNull(Double.class).test();
}
-
+
@Test
public void testToBigDecimal() {
Convert.from(BIGDECIMAL_1, BIGDECIMAL_2).to(BIGDECIMAL_1, BIGDECIMAL_2).test();
Convert.from(BIGDECIMAL_1.toString(), BIGDECIMAL_2.toString()).to(BIGDECIMAL_1, BIGDECIMAL_2).test();
-
+
// test conversion from other number types
Convert.from(LONG_1, LONG_2).to(BigDecimal.valueOf(LONG_1), BigDecimal.valueOf(LONG_2)).test();
Convert.fromPrimitive(LONG_1, LONG_2).to(BigDecimal.valueOf(LONG_1), BigDecimal.valueOf(LONG_2)).test();
@@ -195,12 +195,12 @@ public class ObjectConverterTest {
// test other types that should not be converted
Convert.<Date,BigDecimal>from(DATE_1, DATE_2).toNull(BigDecimal.class).test();
}
-
+
@Test
public void testToCalendar() {
Convert.from(CALENDAR_1, CALENDAR_2).to(CALENDAR_1, CALENDAR_2).test();
Convert.from(DateUtils.calendarToString(CALENDAR_1), DateUtils.calendarToString(CALENDAR_2)).to(CALENDAR_1, CALENDAR_2).test();
-
+
// test conversion from other date types
Convert.from(DATE_1, DATE_2).to(toCalendar(DATE_1), toCalendar(DATE_2)).test();
@@ -208,12 +208,12 @@ public class ObjectConverterTest {
Convert.<String,Calendar>from(STRING_1, STRING_2).toNull(Calendar.class).test();
Convert.<Boolean,Calendar>from(BOOLEAN_1, BOOLEAN_2).toNull(Calendar.class).test();
}
-
+
@Test
public void testToDate() {
Convert.from(DATE_1, DATE_2).to(DATE_1, DATE_2).test();
Convert.from(DateUtils.dateToString(DATE_1), DateUtils.dateToString(DATE_2)).to(DATE_1, DATE_2).test();
-
+
// test conversion from other date types
Convert.from(CALENDAR_1, CALENDAR_2).to(toDate(CALENDAR_1), toDate(CALENDAR_2)).test();
@@ -221,7 +221,7 @@ public class ObjectConverterTest {
Convert.<String,Date>from(STRING_1, STRING_2).toNull(Date.class).test();
Convert.<Boolean,Date>from(BOOLEAN_1, BOOLEAN_2).toNull(Date.class).test();
}
-
+
@Test
public void testPrimitiveByteArray() {
byte[] array = new byte[] { 0x01, 0x02, 0x03 };
@@ -229,5 +229,5 @@ public class ObjectConverterTest {
assertArrayEquals(new byte[0], ObjectConverter.convert(new byte[0], byte[].class));
assertNull(ObjectConverter.convert(null, byte[].class));
}
-
+
}
diff --git a/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ValueMapDecoratorTest.java b/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ValueMapDecoratorTest.java
index 88827e0..f432b6f 100644
--- a/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ValueMapDecoratorTest.java
+++ b/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ValueMapDecoratorTest.java
@@ -153,5 +153,5 @@ public class ValueMapDecoratorTest {
Assert.assertFalse("Two ValueMapDecorators based on maps with different entries should not be equal",
valueMap.equals(valueMap2));
}
-
+
}
diff --git a/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ValueMapUtilTest.java b/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ValueMapUtilTest.java
index 841ef00..048927c 100644
--- a/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ValueMapUtilTest.java
+++ b/src/test/java/org/apache/sling/fsprovider/internal/mapper/valuemap/ValueMapUtilTest.java
@@ -39,7 +39,7 @@ public class ValueMapUtilTest {
content.put("stringArray", new String[] { "a", "b", "c" });
content.put("stringList", ImmutableList.of("ab", "cd"));
content.put("intList", ImmutableList.of(12, 34));
-
+
ValueMap props = ValueMapUtil.toValueMap(content);
assertEquals("abc", props.get("stringProp", String.class));
assertEquals((Integer)123, props.get("intProp", 0));
diff --git a/src/test/java/org/apache/sling/fsprovider/internal/parser/ContentFileCacheTest.java b/src/test/java/org/apache/sling/fsprovider/internal/parser/ContentFileCacheTest.java
index 236959a..07d739e 100644
--- a/src/test/java/org/apache/sling/fsprovider/internal/parser/ContentFileCacheTest.java
+++ b/src/test/java/org/apache/sling/fsprovider/internal/parser/ContentFileCacheTest.java
@@ -31,7 +31,7 @@ import org.junit.runner.RunWith;
@RunWith(Theories.class)
public class ContentFileCacheTest {
-
+
@DataPoint
public static final int NO_CACHE = 0;
@DataPoint
@@ -42,10 +42,10 @@ public class ContentFileCacheTest {
@Theory
public void testCache(int cacheSize) {
ContentFileCache underTest = new ContentFileCache(cacheSize);
-
+
ContentElement content1 = underTest.get("/fs-test/folder2/content", new File("src/test/resources/fs-test/folder2/content.json"));
assertNotNull(content1);
-
+
switch (cacheSize) {
case NO_CACHE:
assertEquals(0, underTest.size());
@@ -82,10 +82,10 @@ public class ContentFileCacheTest {
assertEquals(1, underTest.size());
break;
}
-
+
underTest.clear();
- assertEquals(0, underTest.size());
+ assertEquals(0, underTest.size());
}
}