Author: mpetria
Date: Thu Jan 28 15:19:15 2016
New Revision: 1727381

URL: http://svn.apache.org/viewvc?rev=1727381&view=rev
Log:
SLING-5432: expose configuration option for binaryless distribution

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=1727381&r1=1727380&r2=1727381&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 Jan 28 15:19:15 2016
@@ -65,8 +65,9 @@ public class FileVaultDistributionPackag
     private final String[] packageRoots;
     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) {
+    public FileVaultDistributionPackageBuilder(String type, Packaging 
packaging, ImportMode importMode, AccessControlHandling aclHandling, String[] 
packageRoots, String[] filterRules, String tempFilesFolder, boolean 
useBinaryReferences) {
         super(type);
         this.packaging = packaging;
         this.importMode = importMode;
@@ -75,7 +76,7 @@ public class FileVaultDistributionPackag
 
         this.tempDirectory = VltUtils.getTempFolder(tempFilesFolder);
         this.filters = VltUtils.parseFilters(filterRules);
-
+        this.useBinaryReferences = useBinaryReferences;
 
         log.info("using temp directory {}", tempDirectory == null ? 
tempDirectory : tempDirectory.getPath());
     }
@@ -92,7 +93,7 @@ public class FileVaultDistributionPackag
             String packageName = getType() + "_" + System.currentTimeMillis() 
+ "_" + UUID.randomUUID();
 
             WorkspaceFilter filter = VltUtils.createFilter(request, filters);
-            ExportOptions opts = VltUtils.getExportOptions(filter, 
packageRoots, packageGroup, packageName, VERSION);
+            ExportOptions opts = VltUtils.getExportOptions(filter, 
packageRoots, packageGroup, packageName, VERSION, useBinaryReferences);
 
             log.debug("assembling package {}", packageGroup + '/' + 
packageName + "-" + VERSION);
 

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=1727381&r1=1727380&r2=1727381&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 Jan 28 15:19:15 2016
@@ -76,8 +76,9 @@ public class JcrVaultDistributionPackage
     private final String tempPackagesNode;
     private final File tempDirectory;
     private final TreeMap<String, List<String>> filters;
+    private final boolean useBinaryReferences;
 
-    public JcrVaultDistributionPackageBuilder(String type, Packaging 
packaging, ImportMode importMode, AccessControlHandling aclHandling, String[] 
packageRoots, String[] filterRules, String tempFilesFolder) {
+    public JcrVaultDistributionPackageBuilder(String type, Packaging 
packaging, ImportMode importMode, AccessControlHandling aclHandling, String[] 
packageRoots, String[] filterRules, String tempFilesFolder, boolean 
useBinaryReferences) {
         super(type);
 
         this.packaging = packaging;
@@ -89,6 +90,7 @@ public class JcrVaultDistributionPackage
 
         this.tempDirectory = VltUtils.getTempFolder(tempFilesFolder);
         this.filters = VltUtils.parseFilters(filterRules);
+        this.useBinaryReferences = useBinaryReferences;
     }
 
     @Override
@@ -104,7 +106,7 @@ public class JcrVaultDistributionPackage
             String packageName = getType() + "_" + System.currentTimeMillis() 
+ "_" + UUID.randomUUID();
 
             WorkspaceFilter filter = VltUtils.createFilter(request, filters);
-            ExportOptions opts = VltUtils.getExportOptions(filter, 
packageRoots, packageGroup, packageName, VERSION);
+            ExportOptions opts = VltUtils.getExportOptions(filter, 
packageRoots, packageGroup, packageName, VERSION, useBinaryReferences);
 
             log.debug("assembling package {} user {}", packageGroup + '/' + 
packageName + "-" + VERSION, resourceResolver.getUserID());
 

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=1727381&r1=1727380&r2=1727381&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 Jan 28 15:19:15 2016
@@ -109,6 +109,9 @@ public class VaultDistributionPackageBui
     @Property(label = "Temp Filesystem Folder", description = "The filesystem 
folder where the temporary files should be saved.")
     private static final String TEMP_FS_FOLDER = "tempFsFolder";
 
+    @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";
+    
     @Reference
     private Packaging packaging;
 
@@ -127,7 +130,8 @@ public class VaultDistributionPackageBui
         String[] packageFilters = 
SettingsUtils.removeEmptyEntries(PropertiesUtil.toStringArray(config.get(PACKAGE_FILTERS),
 null));
 
         String tempFsFolder = 
SettingsUtils.removeEmptyEntry(PropertiesUtil.toString(config.get(TEMP_FS_FOLDER),
 null));
-
+        boolean useBinaryReferences = 
PropertiesUtil.toBoolean(config.get(USE_BINARY_REFERENCES), false);
+        
         ImportMode importMode = null;
         if (importModeString != null) {
             importMode = ImportMode.valueOf(importModeString.trim());
@@ -139,9 +143,9 @@ public class VaultDistributionPackageBui
         }
 
         if ("filevlt".equals(type)) {
-            packageBuilder = new FileVaultDistributionPackageBuilder(name, 
packaging, importMode, aclHandling, packageRoots, packageFilters, tempFsFolder);
+            packageBuilder = new FileVaultDistributionPackageBuilder(name, 
packaging, importMode, aclHandling, packageRoots, packageFilters, tempFsFolder, 
useBinaryReferences);
         } else {
-            packageBuilder = new JcrVaultDistributionPackageBuilder(name, 
packaging, importMode, aclHandling, packageRoots, packageFilters, tempFsFolder);
+            packageBuilder = new JcrVaultDistributionPackageBuilder(name, 
packaging, importMode, aclHandling, packageRoots, packageFilters, tempFsFolder, 
useBinaryReferences);
         }
     }
 

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=1727381&r1=1727380&r2=1727381&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 Jan 28 15:19:15 2016
@@ -50,6 +50,7 @@ import org.apache.jackrabbit.vault.fs.io
 import org.apache.jackrabbit.vault.packaging.ExportOptions;
 import org.apache.jackrabbit.vault.packaging.JcrPackage;
 import org.apache.jackrabbit.vault.packaging.PackageManager;
+import org.apache.jackrabbit.vault.packaging.PackageProperties;
 import org.apache.jackrabbit.vault.packaging.VaultPackage;
 import org.apache.sling.distribution.DistributionRequest;
 import org.apache.sling.distribution.DistributionRequestType;
@@ -132,7 +133,8 @@ public class VltUtils {
     public static ExportOptions getExportOptions(WorkspaceFilter filter, 
String[] packageRoots,
                                                  String packageGroup,
                                                  String packageName,
-                                                 String packageVersion) {
+                                                 String packageVersion,
+                                                 boolean useBinaryReferences) {
         DefaultMetaInf inf = new DefaultMetaInf();
         ExportOptions opts = new ExportOptions();
         inf.setFilter(filter);
@@ -141,6 +143,7 @@ public class VltUtils {
         props.setProperty(VaultPackage.NAME_GROUP, packageGroup);
         props.setProperty(VaultPackage.NAME_NAME, packageName);
         props.setProperty(VaultPackage.NAME_VERSION, packageVersion);
+       props.setProperty(PackageProperties.NAME_USE_BINARY_REFERENCES, 
String.valueOf(useBinaryReferences));
         inf.setProperties(props);
 
         opts.setMetaInf(inf);

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=1727381&r1=1727380&r2=1727381&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 Jan 28 15:19:15 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);
+        FileVaultDistributionPackageBuilder 
fileVaultdistributionPackageBuilder = new 
FileVaultDistributionPackageBuilder("filevlt", packaging, null, null, null, 
null, null, false);
         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);
+        FileVaultDistributionPackageBuilder 
fileVaultdistributionPackageBuilder = new 
FileVaultDistributionPackageBuilder("filevlt", packaging, null, null, null, 
null, null, false);
 
         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);
+        FileVaultDistributionPackageBuilder 
fileVaultdistributionPackageBuilder = new 
FileVaultDistributionPackageBuilder("filevlt", packaging, null, null, null, 
null, null, false);
 
         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);
+        FileVaultDistributionPackageBuilder 
fileVaultdistributionPackageBuilder = new 
FileVaultDistributionPackageBuilder("filevlt", packaging, null, null, null, 
null, null, false);
 
         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);
+                ImportMode.MERGE, AccessControlHandling.MERGE, null, null, 
null, false);
 
         ResourceResolver resourceResolver = mock(ResourceResolver.class);
         Session session = mock(Session.class);


Reply via email to