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);


Reply via email to