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


Reply via email to