You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by si...@apache.org on 2019/05/24 12:42:02 UTC

[sling-org-apache-sling-feature-cpconverter] 02/02: Merge branch 'master' of github.com:apache/sling-org-apache-sling-feature-cpconverter

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

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

commit 459e4f7ace7e7421acdc1231f2b22d5c23294f87
Merge: 6ec4ee0 fe34c7a
Author: Simo Tripodi <st...@adobe.com>
AuthorDate: Fri May 24 14:41:53 2019 +0200

    Merge branch 'master' of
    github.com:apache/sling-org-apache-sling-feature-cpconverter
    
    # Conflicts:
    #	pom.xml
    #	src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java
    #	src/test/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverterTest.java

 .../ContentPackage2FeatureModelConverter.java      | 36 ++++++++++++++++++++--
 .../cpconverter/vltpkg/VaultPackageAssembler.java  | 11 ++++---
 .../vltpkg/VaultPackageAssemblerTest.java          |  8 -----
 3 files changed, 40 insertions(+), 15 deletions(-)

diff --cc src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java
index f8c97ee,9e79404..4094db2
--- a/src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java
@@@ -25,8 -25,12 +25,13 @@@ import java.util.HashSet
  import java.util.LinkedHashMap;
  import java.util.Map;
  import java.util.Set;
 +import java.util.concurrent.ConcurrentHashMap;
  
+ import org.apache.jackrabbit.vault.fs.api.DumpContext;
+ import org.apache.jackrabbit.vault.fs.api.ImportMode;
+ import org.apache.jackrabbit.vault.fs.api.PathFilterSet;
+ import org.apache.jackrabbit.vault.fs.config.DefaultWorkspaceFilter;
+ import org.apache.jackrabbit.vault.fs.filter.DefaultPathFilter;
  import org.apache.jackrabbit.vault.fs.io.Archive;
  import org.apache.jackrabbit.vault.fs.io.Archive.Entry;
  import org.apache.jackrabbit.vault.packaging.CyclicDependencyException;
@@@ -248,28 -254,48 +253,55 @@@ public class ContentPackage2FeatureMode
          idPackageMapping.remove(pack.getId());
      }
  
 -    public void processSubPackage(String path, File contentPackage) throws Exception {
 +    public void processSubPackage(String path, VaultPackage vaultPackage) throws Exception {
          requireNonNull(path, "Impossible to process a null vault package");
 -        requireNonNull(contentPackage, "Impossible to process a null vault package");
 -
 -        try (VaultPackage vaultPackage = packageManager.open(contentPackage, isStrictValidation())) {
 -            // scan the detected package, first
 -            traverse(vaultPackage);
 -
 -            // merge filters to the main new package
 -            mainPackageAssembler.mergeFilters(vaultPackage.getMetaInf().getFilter());
 -
 -            // add the metadata-only package one to the main package with overriden filter
 -            DefaultWorkspaceFilter filter = new DefaultWorkspaceFilter();
 -            PathFilterSet pfs = new PathFilterSet();
 -            DefaultPathFilter dpf = new DefaultPathFilter() {
 -                
 -               @Override
 -               public boolean matches(String path) {
 -                   return true;
 -               }
 -
 -               @Override
 -               public void dump(DumpContext ctx, boolean isLast) {
 -                   ctx.println(isLast, "ALL");
 -               }
 -
 -               @Override
 -               public boolean isAbsolute() {
 -                   return true;
 -               }
 -               
 -               @Override
 -               public String getPattern() {
 -                   return ".*";
 -               }
 -            };
 -            pfs.addExclude(dpf);
 -            pfs.setImportMode(ImportMode.MERGE);
 -            filter.add(pfs);
 -            File clonedPackage = VaultPackageAssembler.create(vaultPackage, filter).createPackage();
 -            mainPackageAssembler.addEntry(path, clonedPackage);
 +        requireNonNull(vaultPackage, "Impossible to process a null vault package");
 +
 +        if (!isSubContentPackageIncluded(path)) {
 +            logger.info("Sub content-package {} is filtered out, so it won't be processed.", path);
 +            return;
          }
 +
 +        // scan the detected package, first
 +        traverse(vaultPackage);
 +
 +        // merge filters to the main new package
 +        mainPackageAssembler.mergeFilters(vaultPackage.getMetaInf().getFilter());
 +
-         // add the metadata-only package one to the main package
-         File clonedPackage = VaultPackageAssembler.create(vaultPackage).createPackage();
++        // add the metadata-only package one to the main package with overriden filter
++        DefaultWorkspaceFilter filter = new DefaultWorkspaceFilter();
++        PathFilterSet pfs = new PathFilterSet();
++        DefaultPathFilter dpf = new DefaultPathFilter() {
++            
++           @Override
++           public boolean matches(String path) {
++               return true;
++           }
++
++           @Override
++           public void dump(DumpContext ctx, boolean isLast) {
++               ctx.println(isLast, "ALL");
++           }
++
++           @Override
++           public boolean isAbsolute() {
++               return true;
++           }
++           
++           @Override
++           public String getPattern() {
++               return ".*";
++           }
++        };
++        pfs.addExclude(dpf);
++        pfs.setImportMode(ImportMode.MERGE);
++        filter.add(pfs);
++        File clonedPackage = VaultPackageAssembler.create(vaultPackage, filter).createPackage();
 +        mainPackageAssembler.addEntry(path, clonedPackage);
 +    }
 +
 +    protected boolean isSubContentPackageIncluded(String path) {
 +        return subContentPackages.containsValue(path);
      }
  
      @Override
diff --cc src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java
index 366b8e0,d47413e..f24f2d9
--- a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java
@@@ -56,11 -55,15 +55,15 @@@ public class VaultPackageAssembler impl
  
      private static final String[] INCLUDE_RESOURCES = { "definition/.content.xml", "config.xml", "settings.xml" };
  
 -    private static final File TMP_DIR = new File(System.getProperty("java.io.tmpdir"));
 +    private static final File TMP_DIR = new File(System.getProperty("java.io.tmpdir"), "syntethic-content-packages");
  
      private static final Pattern OSGI_BUNDLE_PATTERN = Pattern.compile("(jcr_root)?/apps/[^/]+/install(\\.([^/]+))?/.+\\.jar");
- 
+     
      public static VaultPackageAssembler create(VaultPackage vaultPackage) {
+         return create(vaultPackage, vaultPackage.getMetaInf().getFilter());
+     }
+ 
+     public static VaultPackageAssembler create(VaultPackage vaultPackage, WorkspaceFilter filter) {
          File storingDirectory = new File(TMP_DIR, vaultPackage.getFile().getName() + "-deflated");
          // avoid any possible Stream is not a content package. Missing 'jcr_root' error
          File jcrRootDirectory = new File(storingDirectory, JCR_ROOT_DIR_NAME);