You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2017/08/04 14:20:45 UTC

svn commit: r1804127 - /sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/analyser/Scanner.java

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