Author: mpetria Date: Thu Mar 31 14:05:34 2016 New Revision: 1737243 URL: http://svn.apache.org/viewvc?rev=1737243&view=rev Log: SLING-5633: allow configuration of autosave threshold
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/JcrVaultDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VltUtils.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilderTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilder.java?rev=1737243&r1=1737242&r2=1737243&view=diff ============================================================================== --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilder.java Thu Mar 31 14:05:34 2016 @@ -63,16 +63,19 @@ public class FileVaultDistributionPackag private final AccessControlHandling aclHandling; private final String[] packageRoots; + private final int autosaveThreshold; private final File tempDirectory; private final TreeMap<String, List<String>> filters; private final boolean useBinaryReferences; - public FileVaultDistributionPackageBuilder(String type, Packaging packaging, ImportMode importMode, AccessControlHandling aclHandling, String[] packageRoots, String[] filterRules, String tempFilesFolder, boolean useBinaryReferences) { + public FileVaultDistributionPackageBuilder(String type, Packaging packaging, ImportMode importMode, AccessControlHandling aclHandling, + String[] packageRoots, String[] filterRules, String tempFilesFolder, boolean useBinaryReferences, int autosaveThreshold) { super(type); this.packaging = packaging; this.importMode = importMode; this.aclHandling = aclHandling; this.packageRoots = packageRoots; + this.autosaveThreshold = autosaveThreshold; this.tempDirectory = VltUtils.getTempFolder(tempFilesFolder); this.filters = VltUtils.parseFilters(filterRules); @@ -148,7 +151,7 @@ public class FileVaultDistributionPackag File file = new File(distributionPackage.getId()); if (file.exists()) { VaultPackage pkg = packaging.getPackageManager().open(file); - ImportOptions opts = VltUtils.getImportOptions(aclHandling, importMode); + ImportOptions opts = VltUtils.getImportOptions(aclHandling, importMode, autosaveThreshold); log.debug("using import mode {} and acl {}", opts.getImportMode(), opts.getAccessControlHandling()); pkg.extract(session, opts); Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/JcrVaultDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/JcrVaultDistributionPackageBuilder.java?rev=1737243&r1=1737242&r2=1737243&view=diff ============================================================================== --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/JcrVaultDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/JcrVaultDistributionPackageBuilder.java Thu Mar 31 14:05:34 2016 @@ -73,6 +73,7 @@ public class JcrVaultDistributionPackage private final ImportMode importMode; private final AccessControlHandling aclHandling; private final String[] packageRoots; + private final int autosaveThreshold; private final String tempPackagesNode; private final File tempDirectory; private final TreeMap<String, List<String>> filters; @@ -80,7 +81,8 @@ public class JcrVaultDistributionPackage private final Object repolock = new Object(); - public JcrVaultDistributionPackageBuilder(String type, Packaging packaging, ImportMode importMode, AccessControlHandling aclHandling, String[] packageRoots, String[] filterRules, String tempFilesFolder, boolean useBinaryReferences) { + public JcrVaultDistributionPackageBuilder(String type, Packaging packaging, ImportMode importMode, AccessControlHandling aclHandling, + String[] packageRoots, String[] filterRules, String tempFilesFolder, boolean useBinaryReferences, int autosaveThreshold) { super(type); this.packaging = packaging; @@ -88,6 +90,7 @@ public class JcrVaultDistributionPackage this.importMode = importMode; this.aclHandling = aclHandling; this.packageRoots = packageRoots; + this.autosaveThreshold = autosaveThreshold; this.tempPackagesNode = type + "/data"; this.tempDirectory = VltUtils.getTempFolder(tempFilesFolder); @@ -158,7 +161,7 @@ public class JcrVaultDistributionPackage InputStream stream = distributionPackage.createInputStream(); vaultPackage = VltUtils.readPackage(packaging.getPackageManager(), stream, tempDirectory); - ImportOptions importOptions = VltUtils.getImportOptions(aclHandling, importMode); + ImportOptions importOptions = VltUtils.getImportOptions(aclHandling, importMode, autosaveThreshold); vaultPackage.extract(session, importOptions); return true; Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java?rev=1737243&r1=1737242&r2=1737243&view=diff ============================================================================== --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java Thu Mar 31 14:05:34 2016 @@ -111,6 +111,9 @@ public class VaultDistributionPackageBui @Property(label="Use Binary References", description = "If activated, it avoids sending binaries in the distribution package.", boolValue = false) public static final String USE_BINARY_REFERENCES = "useBinaryReferences"; + + @Property(label="Autosave threshold", description = "The value after which autosave is triggered for intermediate changes.", intValue = -1) + public static final String AUTOSAVE_THRESHOLD = "autoSaveThreshold"; @Reference private Packaging packaging; @@ -131,7 +134,9 @@ public class VaultDistributionPackageBui String tempFsFolder = SettingsUtils.removeEmptyEntry(PropertiesUtil.toString(config.get(TEMP_FS_FOLDER), null)); boolean useBinaryReferences = PropertiesUtil.toBoolean(config.get(USE_BINARY_REFERENCES), false); - + int autosaveThreshold = PropertiesUtil.toInteger(config.get(AUTOSAVE_THRESHOLD), -1); + + ImportMode importMode = null; if (importModeString != null) { importMode = ImportMode.valueOf(importModeString.trim()); @@ -143,9 +148,9 @@ public class VaultDistributionPackageBui } if ("filevlt".equals(type)) { - packageBuilder = new FileVaultDistributionPackageBuilder(name, packaging, importMode, aclHandling, packageRoots, packageFilters, tempFsFolder, useBinaryReferences); + packageBuilder = new FileVaultDistributionPackageBuilder(name, packaging, importMode, aclHandling, packageRoots, packageFilters, tempFsFolder, useBinaryReferences, autosaveThreshold); } else { - packageBuilder = new JcrVaultDistributionPackageBuilder(name, packaging, importMode, aclHandling, packageRoots, packageFilters, tempFsFolder, useBinaryReferences); + packageBuilder = new JcrVaultDistributionPackageBuilder(name, packaging, importMode, aclHandling, packageRoots, packageFilters, tempFsFolder, useBinaryReferences, autosaveThreshold); } } Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VltUtils.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VltUtils.java?rev=1737243&r1=1737242&r2=1737243&view=diff ============================================================================== --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VltUtils.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VltUtils.java Thu Mar 31 14:05:34 2016 @@ -193,7 +193,7 @@ public class VltUtils { } - public static ImportOptions getImportOptions(AccessControlHandling aclHandling, ImportMode importMode) { + public static ImportOptions getImportOptions(AccessControlHandling aclHandling, ImportMode importMode, int autosaveThreshold) { ImportOptions opts = new ImportOptions(); if (aclHandling != null) { opts.setAccessControlHandling(aclHandling); @@ -208,6 +208,10 @@ public class VltUtils { opts.setImportMode(ImportMode.UPDATE); } + if (autosaveThreshold >= 0) { + opts.setAutoSaveThreshold(autosaveThreshold); + } + return opts; } Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilderTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilderTest.java?rev=1737243&r1=1737242&r2=1737243&view=diff ============================================================================== --- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilderTest.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilderTest.java Thu Mar 31 14:05:34 2016 @@ -75,7 +75,7 @@ public class FileVaultDistributionPackag when(resourceResolver.adaptTo(Session.class)).thenReturn(session); - FileVaultDistributionPackageBuilder fileVaultdistributionPackageBuilder = new FileVaultDistributionPackageBuilder("filevlt", packaging, null, null, null, null, null, false); + FileVaultDistributionPackageBuilder fileVaultdistributionPackageBuilder = new FileVaultDistributionPackageBuilder("filevlt", packaging, null, null, null, null, null, false, -1); DistributionRequest request = new SimpleDistributionRequest(DistributionRequestType.ADD, "/"); DistributionPackage distributionPackage = fileVaultdistributionPackageBuilder.createPackageForAdd(resourceResolver, request); assertNotNull(distributionPackage); @@ -87,7 +87,7 @@ public class FileVaultDistributionPackag PackageManager packageManager = mock(PackageManager.class); when(packaging.getPackageManager()).thenReturn(packageManager); - FileVaultDistributionPackageBuilder fileVaultdistributionPackageBuilder = new FileVaultDistributionPackageBuilder("filevlt", packaging, null, null, null, null, null, false); + FileVaultDistributionPackageBuilder fileVaultdistributionPackageBuilder = new FileVaultDistributionPackageBuilder("filevlt", packaging, null, null, null, null, null, false, -1); ResourceResolver resourceResolver = mock(ResourceResolver.class); InputStream stream = new ByteArrayInputStream("some binary".getBytes("UTF-8")); @@ -108,7 +108,7 @@ public class FileVaultDistributionPackag PackageManager packageManager = mock(PackageManager.class); when(packaging.getPackageManager()).thenReturn(packageManager); - FileVaultDistributionPackageBuilder fileVaultdistributionPackageBuilder = new FileVaultDistributionPackageBuilder("filevlt", packaging, null, null, null, null, null, false); + FileVaultDistributionPackageBuilder fileVaultdistributionPackageBuilder = new FileVaultDistributionPackageBuilder("filevlt", packaging, null, null, null, null, null, false, -1); ResourceResolver resourceResolver = mock(ResourceResolver.class); String id = "some-id"; @@ -125,7 +125,7 @@ public class FileVaultDistributionPackag when(packageManager.open(tempFile)).thenReturn(vaultPackage); when(packaging.getPackageManager()).thenReturn(packageManager); - FileVaultDistributionPackageBuilder fileVaultdistributionPackageBuilder = new FileVaultDistributionPackageBuilder("filevlt", packaging, null, null, null, null, null, false); + FileVaultDistributionPackageBuilder fileVaultdistributionPackageBuilder = new FileVaultDistributionPackageBuilder("filevlt", packaging, null, null, null, null, null, false, -1); ResourceResolver resourceResolver = mock(ResourceResolver.class); Session session = mock(Session.class); @@ -156,7 +156,7 @@ public class FileVaultDistributionPackag when(packaging.getPackageManager()).thenReturn(packageManager); FileVaultDistributionPackageBuilder fileVaultdistributionPackageBuilder = new FileVaultDistributionPackageBuilder("filevlt", packaging, - ImportMode.MERGE, AccessControlHandling.MERGE, null, null, null, false); + ImportMode.MERGE, AccessControlHandling.MERGE, null, null, null, false, -1); ResourceResolver resourceResolver = mock(ResourceResolver.class); Session session = mock(Session.class);