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"); + } + + + } }
