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

rombert pushed a commit to branch issue/SLING-12774
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-extension-content.git

commit f1b75f6147385e2c1e16800b3c853a414f8b225c
Author: Robert Munteanu <[email protected]>
AuthorDate: Fri May 2 22:40:56 2025 +0200

    SLING-12774 - Content feature launcher extension should reinstall SNAPSHOT 
content packages
---
 .../feature/extension/content/ContentHandler.java    | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/feature/extension/content/ContentHandler.java 
b/src/main/java/org/apache/sling/feature/extension/content/ContentHandler.java
index 3575272..a20aabe 100644
--- 
a/src/main/java/org/apache/sling/feature/extension/content/ContentHandler.java
+++ 
b/src/main/java/org/apache/sling/feature/extension/content/ContentHandler.java
@@ -57,13 +57,13 @@ public class ContentHandler implements ExtensionHandler {
 
     private static ExecutionPlanBuilder 
buildExecutionPlan(Collection<Artifact> artifacts, Set<PackageId> 
satisfiedPackages, LauncherPrepareContext prepareContext, File registryHome, 
boolean useStrictMode) throws Exception {
 
-        List<File> packageReferences = new ArrayList<>();
+        List<PackageReference> packageReferences = new ArrayList<>();
 
         for (final Artifact a : artifacts) {
             final URL file = prepareContext.getArtifactFile(a.getId());
             File tmp = IOUtils.getFileFromURL(file, true, null);
             if (tmp != null && tmp.length() > 0) {
-                packageReferences.add(tmp);
+                packageReferences.add(new PackageReference(tmp, a));
             }
         }
 
@@ -76,9 +76,9 @@ public class ContentHandler implements ExtensionHandler {
         ExecutionPlanBuilder builder = registry.createExecutionPlan();
         builder.with(satisfiedPackages);
 
-        for (File pkgFile : packageReferences) {
+        for (PackageReference pkgRef : packageReferences) {
             try {
-                PackageId pid = registry.registerExternal(pkgFile, false);
+                PackageId pid = registry.registerExternal(pkgRef.file, 
pkgRef.isSnapshot);
                 ImportOptions importOptions = new ImportOptions();
                 importOptions.setStrict(useStrictMode);
                 PackageTaskOptions options = new 
ImportOptionsPackageTaskOption(importOptions);
@@ -158,4 +158,16 @@ public class ContentHandler implements ExtensionHandler {
         }
         return registryHome;
     }
+    
+    static class PackageReference {
+        private File file;
+        private boolean isSnapshot;
+        
+        public PackageReference(File file, Artifact artifact) {
+            this.file = file;
+            this.isSnapshot = 
artifact.getId().getVersion().endsWith("-SNAPSHOT");
+        }
+        
+        
+    }
 }

Reply via email to