You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by mp...@apache.org on 2016/03/31 16:05:35 UTC

svn commit: r1737243 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/serialization/impl/vlt/ test/java/org/apache/sling/distribution/serialization/impl/vlt/

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