You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2026/05/26 19:00:33 UTC

(sling-feature-converter-maven-plugin) 01/01: SLING-13216 bump bundled cpconverter to 1.3.10

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

royteeuwen pushed a commit to branch feature/upgrade-cpconverter-1.3.10
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit e5b3a448fb8db1e2fb4d3a7af3310326b7e8711d
Author: Roy Teeuwen <ro...@apache.org>
AuthorDate: Tue May 26 21:00:17 2026 +0200

    SLING-13216 bump bundled cpconverter to 1.3.10
---
 pom.xml                                            | 22 +++++++++++---
 .../ui.apps/pom.xml                                |  3 ++
 .../cpconverter/maven/mojos/ConvertCPMojo.java     | 34 ++++++++++++++++++----
 3 files changed, 50 insertions(+), 9 deletions(-)

diff --git a/pom.xml b/pom.xml
index 50355f5..3169441 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,8 +39,8 @@
     <properties>
         <sling.java.version>11</sling.java.version>
         <plexus-component-metadata.version>2.2.0</plexus-component-metadata.version>
-        <javax.json.version>1.0.4</javax.json.version>
-        <org.apache.jackrabbit.vault.version>3.2.8</org.apache.jackrabbit.vault.version>
+        <javax.json.version>1.1.4</javax.json.version>
+        <org.apache.jackrabbit.vault.version>3.6.8</org.apache.jackrabbit.vault.version>
         <maven.version>3.8.1</maven.version>
         <maven.scm.version>1.11.1</maven.scm.version>
         <maven-artifact-transfer.version>0.11.0</maven-artifact-transfer.version>
@@ -77,8 +77,22 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.cpconverter</artifactId>
-            <version>1.0.24</version>
+            <version>1.3.10</version>
             <scope>compile</scope>
+            <exclusions>
+                <!--
+                    cpconverter 1.3.10 pulls in jackrabbit-api transitively via
+                    org.apache.sling.jcr.contentparser:1.2.6. The project parent's
+                    ban-plugins-and-dependencies enforcer rule rejects jackrabbit-api
+                    (OAK-8339: superseded by org.apache.jackrabbit:oak-jackrabbit-api).
+                    cpconverter itself does not USE jackrabbit-api classes, so we can
+                    safely drop the transitive without functional impact.
+                -->
+                <exclusion>
+                    <groupId>org.apache.jackrabbit</groupId>
+                    <artifactId>jackrabbit-api</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
@@ -89,7 +103,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature</artifactId>
-            <version>1.2.18</version>
+            <version>2.0.4</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml b/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml
index 5f4806c..cfa2441 100644
--- a/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml
@@ -83,6 +83,9 @@
                             <!-- On some systems the trick with the zero-width (&#8203;) space does not work so we do test it w/o place holders -->
                             <artifactIdOverride>${project.groupId}:${project.artifactId}:slingosgifeature:@project.artifactId@:${project.version}</artifactIdOverride>
                             <installConvertedPackage>true</installConvertedPackage>
+                            <!-- Exercise the slingInitialContentPolicy parameter. KEEP matches the default,
+                                 so this asserts the parameter is at least accepted and recognised. -->
+                            <slingInitialContentPolicy>KEEP</slingInitialContentPolicy>
                         </configuration>
                     </execution>
                 </executions>
diff --git a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
index 8182c89..eee55f8 100644
--- a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
+++ b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
@@ -40,8 +40,10 @@ import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.shared.transfer.artifact.install.ArtifactInstallerException;
 import org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter;
+import org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter.SlingInitialContentPolicy;
+import org.apache.sling.feature.cpconverter.accesscontrol.AclManager;
 import org.apache.sling.feature.cpconverter.accesscontrol.DefaultAclManager;
-import org.apache.sling.feature.cpconverter.artifacts.DefaultArtifactsDeployer;
+import org.apache.sling.feature.cpconverter.artifacts.LocalMavenRepositoryArtifactsDeployer;
 import org.apache.sling.feature.cpconverter.features.DefaultFeaturesManager;
 import org.apache.sling.feature.cpconverter.filtering.RegexBasedResourceFilter;
 import org.apache.sling.feature.cpconverter.filtering.ResourceFilter;
@@ -89,6 +91,8 @@ public class ConvertCPMojo extends AbstractBaseMojo {
 
     public static final String CFG_FILTER_PATTERNS = "filterPatterns";
 
+    public static final String CFG_SLING_INITIAL_CONTENT_POLICY = "slingInitialContentPolicy";
+
     public static final boolean DEFAULT_STRING_VALIDATION = false;
 
     public static final boolean DEFAULT_MERGE_CONFIGURATIONS = false;
@@ -189,6 +193,18 @@ public class ConvertCPMojo extends AbstractBaseMojo {
     @Parameter(property = CFG_FILTER_PATTERNS)
     private List<String> filterPatterns;
 
+    /**
+     * Controls how cpconverter handles a bundle's {@code Sling-Initial-Content} header:
+     * {@link SlingInitialContentPolicy#KEEP} (default) keeps the initial content inside
+     * the bundle and does not extract it, matching the pre-1.1.x behaviour;
+     * {@link SlingInitialContentPolicy#EXTRACT_AND_REMOVE} extracts the initial content
+     * into content-packages and the feature model and removes it from the bundle;
+     * {@link SlingInitialContentPolicy#EXTRACT_AND_KEEP} does the same but additionally
+     * keeps the original content inside the bundle.
+     */
+    @Parameter(property = CFG_SLING_INITIAL_CONTENT_POLICY, defaultValue = "KEEP")
+    private SlingInitialContentPolicy slingInitialContentPolicy;
+
     @Parameter(defaultValue = "${repositorySystemSession}")
     private RepositorySystemSession repoSession;
 
@@ -223,17 +239,25 @@ public class ConvertCPMojo extends AbstractBaseMojo {
             }
         }
         try {
+            AclManager aclManager = new DefaultAclManager();
             DefaultFeaturesManager featuresManager = new DefaultFeaturesManager(
-                    mergeConfigurations, bundleStartOrder, fmOutput, artifactIdOverride, fmPrefix, properties);
+                    mergeConfigurations,
+                    bundleStartOrder,
+                    fmOutput,
+                    artifactIdOverride,
+                    fmPrefix,
+                    properties,
+                    aclManager);
             if (!apiRegions.isEmpty()) featuresManager.setAPIRegions(apiRegions);
 
             if (exportToApiRegion != null) featuresManager.setExportToAPIRegion(exportToApiRegion);
 
-            ContentPackage2FeatureModelConverter converter = new ContentPackage2FeatureModelConverter(strictValidation)
+            ContentPackage2FeatureModelConverter converter = new ContentPackage2FeatureModelConverter(
+                            strictValidation, slingInitialContentPolicy)
                     .setFeaturesManager(featuresManager)
-                    .setBundlesDeployer(new DefaultArtifactsDeployer(convertedCPOutput))
+                    .setBundlesDeployer(new LocalMavenRepositoryArtifactsDeployer(convertedCPOutput))
                     .setEntryHandlersManager(new DefaultEntryHandlersManager())
-                    .setAclManager(new DefaultAclManager())
+                    .setAclManager(aclManager)
                     .setEmitter(DefaultPackagesEventsEmitter.open(fmOutput))
                     .setResourceFilter(getResourceFilter());