Author: cziegeler Date: Fri Aug 4 14:20:45 2017 New Revision: 1804127 URL: http://svn.apache.org/viewvc?rev=1804127&view=rev Log: Support container descriptor from extension scanner
Modified: sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/analyser/Scanner.java Modified: sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/analyser/Scanner.java URL: http://svn.apache.org/viewvc/sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/analyser/Scanner.java?rev=1804127&r1=1804126&r2=1804127&view=diff ============================================================================== --- sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/analyser/Scanner.java (original) +++ sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/analyser/Scanner.java Fri Aug 4 14:20:45 2017 @@ -16,6 +16,13 @@ */ package org.apache.sling.feature.analyser; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.ServiceLoader; + import org.apache.sling.feature.Application; import org.apache.sling.feature.Artifact; import org.apache.sling.feature.Bundles; @@ -33,13 +40,6 @@ import org.apache.sling.feature.scanner. import org.apache.sling.feature.support.ArtifactManager; import org.apache.sling.feature.support.ArtifactManagerConfig; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.ServiceLoader; - /** * The scanner is a service that scans items and provides descriptions for these. * The following items can be scanned individually @@ -77,9 +77,9 @@ public class Scanner { final List<FrameworkScanner> frameworkScanners) throws IOException { this.artifactManager = ArtifactManager.getArtifactManager(amConfig); - this.artifactScanners = artifactScanners; - this.extensionScanners = extensionScanners; - this.frameworkScanners = frameworkScanners; + this.artifactScanners = artifactScanners == null ? getServices(ArtifactScanner.class) : artifactScanners; + this.extensionScanners = extensionScanners == null ? getServices(ExtensionScanner.class) : extensionScanners; + this.frameworkScanners = frameworkScanners == null ? getServices(FrameworkScanner.class) : frameworkScanners; } /** @@ -90,9 +90,7 @@ public class Scanner { */ public Scanner(final ArtifactManagerConfig amConfig) throws IOException { - this(amConfig, getServices(ArtifactScanner.class), - getServices(ExtensionScanner.class), - getServices(FrameworkScanner.class)); + this(amConfig, null, null, null); } /** @@ -212,6 +210,12 @@ public class Scanner { desc.getExportedPackages().addAll(extDesc.getExportedPackages()); desc.getImportedPackages().addAll(extDesc.getImportedPackages()); desc.getDynamicImportedPackages().addAll(extDesc.getDynamicImportedPackages()); + + if ( extDesc instanceof ContainerDescriptor ) { + final ContainerDescriptor cd = (ContainerDescriptor)extDesc; + desc.getArtifactDescriptors().addAll(cd.getArtifactDescriptors()); + desc.getBundleDescriptors().addAll(cd.getBundleDescriptors()); + } } }