You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by an...@apache.org on 2021/08/26 08:16:51 UTC
[sling-org-apache-sling-feature-cpconverter] 01/01: SLING-10754 :
Missing entries in filter.xml (test-case illustrating the problem)
This is an automated email from the ASF dual-hosted git repository.
angela pushed a commit to branch SLING-10754
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git
commit dcefe20eb571d5438332a2d2dd22e013f9792530
Author: angela <an...@adobe.com>
AuthorDate: Thu Aug 26 10:16:34 2021 +0200
SLING-10754 : Missing entries in filter.xml (test-case illustrating the problem)
---
.../feature/cpconverter/AbstractConverterTest.java | 13 +++
.../feature/cpconverter/AdjustedFilterTest.java | 100 +++++++++++++++++++++
.../ConverterUserAndPermissionTest.java | 11 ---
.../feature/cpconverter/subtree_in_contentxml.zip | Bin 0 -> 4556 bytes
4 files changed, 113 insertions(+), 11 deletions(-)
diff --git a/src/test/java/org/apache/sling/feature/cpconverter/AbstractConverterTest.java b/src/test/java/org/apache/sling/feature/cpconverter/AbstractConverterTest.java
index 6b23576..72dd7d8 100644
--- a/src/test/java/org/apache/sling/feature/cpconverter/AbstractConverterTest.java
+++ b/src/test/java/org/apache/sling/feature/cpconverter/AbstractConverterTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.sling.feature.cpconverter;
+import org.apache.jackrabbit.vault.fs.config.DefaultWorkspaceFilter;
import org.apache.jackrabbit.vault.util.Constants;
import org.apache.sling.feature.ArtifactId;
import org.apache.sling.feature.Artifacts;
@@ -171,4 +172,16 @@ public abstract class AbstractConverterTest {
File pomFile = new File(outputDirectory, String.format("%s-%s.pom", bundleId.getArtifactId(), bundleId.getVersion()));
assertTrue("POM file " + pomFile + " does not exist", pomFile.exists());
}
+
+ @NotNull
+ static DefaultWorkspaceFilter getWorkspaceFilter(@NotNull File contentPackage) throws Exception {
+ DefaultWorkspaceFilter filter;
+ try (ZipFile zipFile = new ZipFile(contentPackage)) {
+ filter = new DefaultWorkspaceFilter();
+ ZipEntry entry = zipFile.getEntry("META-INF/vault/filter.xml");
+ assertNotNull(entry);
+ filter.load(zipFile.getInputStream(entry));
+ }
+ return filter;
+ }
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/sling/feature/cpconverter/AdjustedFilterTest.java b/src/test/java/org/apache/sling/feature/cpconverter/AdjustedFilterTest.java
new file mode 100644
index 0000000..744e76a
--- /dev/null
+++ b/src/test/java/org/apache/sling/feature/cpconverter/AdjustedFilterTest.java
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sling.feature.cpconverter;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.jackrabbit.vault.fs.api.WorkspaceFilter;
+import org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter;
+import org.apache.sling.feature.cpconverter.accesscontrol.AclManager;
+import org.apache.sling.feature.cpconverter.accesscontrol.DefaultAclManager;
+import org.apache.sling.feature.cpconverter.artifacts.LocalMavenRepositoryArtifactsDeployer;
+import org.apache.sling.feature.cpconverter.features.DefaultFeaturesManager;
+import org.apache.sling.feature.cpconverter.features.FeaturesManager;
+import org.apache.sling.feature.cpconverter.handlers.DefaultEntryHandlersManager;
+import org.apache.sling.feature.cpconverter.handlers.EntryHandlersManager;
+import org.apache.sling.feature.cpconverter.shared.ConverterConstants;
+import org.apache.sling.feature.cpconverter.vltpkg.DefaultPackagesEventsEmitter;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runners.Parameterized;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class AdjustedFilterTest extends AbstractConverterTest {
+
+ private ContentPackage2FeatureModelConverter converter;
+
+ private File outputDirectory;
+ private FeaturesManager featuresManager;
+
+ @Before
+ public void setUp() throws Exception {
+ AclManager aclManager = new DefaultAclManager();
+ EntryHandlersManager handlersManager = new DefaultEntryHandlersManager(Collections.emptyMap(), false, ContentPackage2FeatureModelConverter.SlingInitialContentPolicy.KEEP, ConverterConstants.SYSTEM_USER_REL_PATH_DEFAULT);
+
+ converter = new ContentPackage2FeatureModelConverter()
+ .setEntryHandlersManager(handlersManager)
+ .setAclManager(aclManager);
+
+ outputDirectory = new File(System.getProperty("java.io.tmpdir"), getClass().getName() + '_' + System.currentTimeMillis());
+ featuresManager = new DefaultFeaturesManager(true, 5, outputDirectory, null, null, null, aclManager);
+
+ converter.setFeaturesManager(featuresManager)
+ .setBundlesDeployer(new LocalMavenRepositoryArtifactsDeployer(outputDirectory))
+ .setEmitter(DefaultPackagesEventsEmitter.open(outputDirectory));
+ }
+
+ @After
+ public void tearDown() throws IOException {
+ deleteDirTree(outputDirectory);
+ converter.close();
+ }
+
+ @Test
+ public void testSubTreeInContentXml() throws Exception {
+ URL packageUrl = getClass().getResource("subtree_in_contentxml.zip");
+ File packageFile = FileUtils.toFile(packageUrl);
+ converter.convert(packageFile);
+
+ File converted = new File(outputDirectory, "subtree_in_contentxml/0.0.0/subtree_in_contentxml-0.0.0-cp2fm-converted.zip");
+ WorkspaceFilter filter = getWorkspaceFilter(converted);
+
+ assertFalse(filter.covers("/"));
+ assertFalse(filter.covers("/oak:index"));
+ assertFalse(filter.covers("/oak:index/uuid"));
+
+ assertTrue(filter.contains("/oak:index/custom"));
+ assertTrue(filter.covers("/oak:index/custom/indexRules"));
+ assertTrue(filter.covers("/oak:index/custom/indexRules/nt:unstructured"));
+ assertTrue(filter.covers("/oak:index/custom/indexRules/nt:unstructured/properties"));
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/org/apache/sling/feature/cpconverter/ConverterUserAndPermissionTest.java b/src/test/java/org/apache/sling/feature/cpconverter/ConverterUserAndPermissionTest.java
index 7aaac89..0f3d382 100644
--- a/src/test/java/org/apache/sling/feature/cpconverter/ConverterUserAndPermissionTest.java
+++ b/src/test/java/org/apache/sling/feature/cpconverter/ConverterUserAndPermissionTest.java
@@ -429,15 +429,4 @@ public class ConverterUserAndPermissionTest extends AbstractConverterTest {
pathFilterEntry.getFilter().matches("/home/users/demo-cp/rep:policy")).count());
return filter;
}
-
- private static DefaultWorkspaceFilter getWorkspaceFilter(@NotNull File contentPackage) throws Exception {
- DefaultWorkspaceFilter filter;
- try (ZipFile zipFile = new ZipFile(contentPackage)) {
- filter = new DefaultWorkspaceFilter();
- ZipEntry entry = zipFile.getEntry("META-INF/vault/filter.xml");
- assertNotNull(entry);
- filter.load(zipFile.getInputStream(entry));
- }
- return filter;
- }
}
diff --git a/src/test/resources/org/apache/sling/feature/cpconverter/subtree_in_contentxml.zip b/src/test/resources/org/apache/sling/feature/cpconverter/subtree_in_contentxml.zip
new file mode 100644
index 0000000..6a3a717
Binary files /dev/null and b/src/test/resources/org/apache/sling/feature/cpconverter/subtree_in_contentxml.zip differ