You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by pa...@apache.org on 2021/09/01 16:02:04 UTC

[sling-org-apache-sling-feature-cpconverter] branch master updated: SLING-10481: remove computeFilter from VaultPackageAssembler as it is not used anymore. (#105)

This is an automated email from the ASF dual-hosted git repository.

pauls pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git


The following commit(s) were added to refs/heads/master by this push:
     new 0847d91  SLING-10481: remove computeFilter from VaultPackageAssembler as it is not used anymore. (#105)
0847d91 is described below

commit 0847d913519a3d41bfb722647a2dedf724e923a5
Author: Karl Pauls <pa...@apache.org>
AuthorDate: Wed Sep 1 18:01:57 2021 +0200

    SLING-10481: remove computeFilter from VaultPackageAssembler as it is not used anymore. (#105)
---
 .../cpconverter/handlers/BundleEntryHandler.java   |  2 +-
 .../handlers/SlingInitialContentBundleHandler.java |  2 +-
 .../cpconverter/vltpkg/VaultPackageAssembler.java  | 74 ----------------------
 3 files changed, 2 insertions(+), 76 deletions(-)

diff --git a/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java b/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java
index 44a3da1..827d8dd 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java
@@ -421,7 +421,7 @@ public class BundleEntryHandler extends AbstractRegexEntryHandler {
 
     void finalizePackageAssembly(@NotNull String path, @NotNull Map<PackageType, VaultPackageAssembler> packageAssemblers, @NotNull ContentPackage2FeatureModelConverter converter, @Nullable String runMode) throws IOException, ConverterException {
         for (java.util.Map.Entry<PackageType, VaultPackageAssembler> entry : packageAssemblers.entrySet()) {
-            File packageFile = entry.getValue().createPackage(false);
+            File packageFile = entry.getValue().createPackage();
             converter.processSubPackage(path + "-" + entry.getKey(), runMode, converter.open(packageFile), true);
         }
     }
diff --git a/src/main/java/org/apache/sling/feature/cpconverter/handlers/SlingInitialContentBundleHandler.java b/src/main/java/org/apache/sling/feature/cpconverter/handlers/SlingInitialContentBundleHandler.java
index 967f561..829b89d 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/handlers/SlingInitialContentBundleHandler.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/handlers/SlingInitialContentBundleHandler.java
@@ -52,7 +52,7 @@ public class SlingInitialContentBundleHandler extends BundleEntryHandler {
     @Override
     void finalizePackageAssembly(@NotNull String path, @NotNull Map<PackageType, VaultPackageAssembler> packageAssemblers, @NotNull ContentPackage2FeatureModelConverter converter, @Nullable String runMode) throws IOException, ConverterException {
         for (java.util.Map.Entry<PackageType, VaultPackageAssembler> entry : packageAssemblers.entrySet()) {
-            File packageFile = entry.getValue().createPackage(false);
+            File packageFile = entry.getValue().createPackage();
             handler.processSubPackage(path + "-" + entry.getKey(), runMode, converter.open(packageFile), converter, true);
         }
     }
diff --git a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java b/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java
index 7f04523..e3692e2 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java
@@ -18,7 +18,6 @@ package org.apache.sling.feature.cpconverter.vltpkg;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.io.filefilter.DirectoryFileFilter;
 import org.apache.jackrabbit.vault.fs.api.PathFilterSet;
 import org.apache.jackrabbit.vault.fs.api.WorkspaceFilter;
 import org.apache.jackrabbit.vault.fs.config.DefaultWorkspaceFilter;
@@ -29,16 +28,13 @@ import org.apache.jackrabbit.vault.packaging.PackageId;
 import org.apache.jackrabbit.vault.packaging.PackageProperties;
 import org.apache.jackrabbit.vault.packaging.PackageType;
 import org.apache.jackrabbit.vault.packaging.VaultPackage;
-import org.apache.jackrabbit.vault.util.PlatformNameFormat;
 import org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter;
 import org.apache.sling.feature.cpconverter.handlers.DefaultEntryParser;
 import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
-import java.io.FileFilter;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -277,10 +273,6 @@ public class VaultPackageAssembler {
     }
 
     public @NotNull File createPackage() throws IOException {
-        return createPackage(false);
-    }
-
-    public @NotNull File createPackage(boolean generateFilters) throws IOException {
         // generate the Vault properties XML file
 
         File metaDir = new File(storingDirectory, META_DIR);
@@ -307,11 +299,6 @@ public class VaultPackageAssembler {
         try (FileOutputStream fos = new FileOutputStream(xmlProperties)) {
             properties.storeToXML(fos, null);
         }
-
-        if (generateFilters) {
-            // generate the Vault filter XML file based on new contents of the package
-            computeFilters(storingDirectory);
-        }
         
         Set<String> allRepoPaths = VaultPackageUtils.toRepositoryPaths(allPaths);
         Set<String> convertedCpRepoPaths = VaultPackageUtils.toRepositoryPaths(convertedCpPaths);
@@ -372,67 +359,6 @@ public class VaultPackageAssembler {
         }
     }
 
-    private void computeFilters(@NotNull File outputDirectory) {
-        VaultPackageUtils.forEachDirectoryBelowJcrRoot(outputDirectory, (child, base) -> {
-            TreeNode node = lowestCommonAncestor(new TreeNode(child));
-            File lowestCommonAncestor = node != null ? node.val : null;
-            if (lowestCommonAncestor != null) {
-                String root = "/" + PlatformNameFormat.getRepositoryPath(base.toURI().relativize(lowestCommonAncestor.toURI()).getPath(), true);
-                filter.add(new PathFilterSet(root));
-            }
-        });
-    }
-
-    private static @Nullable TreeNode lowestCommonAncestor(@NotNull TreeNode root) {
-        int currMaxDepth = 0;//curr tree's deepest leaf depth
-        int countMaxDepth = 0;//num of deepest leaves
-        TreeNode node = null;
-
-        for (File child : root.val.listFiles((FileFilter) DirectoryFileFilter.INSTANCE)) {
-            TreeNode temp = lowestCommonAncestor(new TreeNode(child));
-
-            if (temp == null) {
-                continue;
-            } else if (temp.maxDepth > currMaxDepth) {//if deeper leaf found,update everything to that deeper leaf
-                currMaxDepth = temp.maxDepth;
-                node = temp;//update the maxDepth leaf/LCA
-                countMaxDepth = 1;//reset count of maxDepth leaves
-            } else if (temp.maxDepth == currMaxDepth) {
-                countMaxDepth++;//more deepest leaves of curr (sub)tree found
-            }
-        }
-
-        if (countMaxDepth > 1) {
-            //if there're several leaves at the deepest level of curr tree,curr root is the LCA of them
-            //OR if there're several LCA of several deepest leaves in curr tree,curr root is also the LCA of them
-            root.maxDepth = node.maxDepth + 1;//update root's maxDepth and return it
-            return root;
-        } else if (countMaxDepth == 1) {
-            //if there's only 1 deepest leaf or only 1 LCA of curr tree,return that leaf/LCA
-            node.maxDepth++;//update node's maxDepth and return it
-            return node;
-        } else if (countMaxDepth == 0) {
-            //if curr root's children have no children(all leaves,so all return null to temp),set root's maxDepth to 2,return
-            root.maxDepth = 2;//update node's maxDepth to 2 cuz its children are leaves
-            return root;
-        }
-
-        return null;
-    }
-
-    private static final class TreeNode {
-
-        File val;
-
-        int maxDepth;//this means the maxDepth of curr treenode-rooted (sub)tree
-
-        TreeNode(@NotNull File x) {
-            val = x;
-            maxDepth = 0;
-        }
-
-    }
-
     private static final class RemoveInstallHooksPredicate implements Predicate<Map.Entry<Object, Object>> {
         @Override
         public boolean test(java.util.Map.Entry<Object, Object> entry) {