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 15:18:15 UTC
svn commit: r1804135 - in
/sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature:
analyser/ContainerDescriptor.java analyser/Scanner.java
scanner/ExtensionScanner.java
Author: cziegeler
Date: Fri Aug 4 15:18:15 2017
New Revision: 1804135
URL: http://svn.apache.org/viewvc?rev=1804135&view=rev
Log:
Adjust ExtensionScanner interface
Modified:
sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/analyser/ContainerDescriptor.java
sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/analyser/Scanner.java
sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/scanner/ExtensionScanner.java
Modified: sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/analyser/ContainerDescriptor.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/analyser/ContainerDescriptor.java?rev=1804135&r1=1804134&r2=1804135&view=diff
==============================================================================
--- sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/analyser/ContainerDescriptor.java (original)
+++ sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/analyser/ContainerDescriptor.java Fri Aug 4 15:18:15 2017
@@ -24,7 +24,23 @@ import java.util.Set;
*/
public interface ContainerDescriptor extends Descriptor {
+ /**
+ * Return a set of bundle descriptors.
+ *
+ * The requirements and capabilities of the returned bundles are
+ * available as an aggregate from {@link Descriptor#getCapabilities()},
+ * {@link Descriptor#getRequirements()}, {@link Descriptor#getDynamicImportedPackages()}
+ * {@link Descriptor#getExportedPackages()} and {@link Descriptor#getImportedPackages()}
+ * @return The set of bundle descriptors (might be empty)
+ */
Set<BundleDescriptor> getBundleDescriptors();
+ /**
+ * Return a set of artifact descriptors
+ * The requirements and capabilities of the returned artifacts are
+ * available as an aggregate from {@link Descriptor#getCapabilities()},
+ * {@link Descriptor#getRequirements()}.
+ * @return The set of artifact descriptors (might be empty)
+ */
Set<ArtifactDescriptor> getArtifactDescriptors();
}
\ No newline at end of file
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=1804135&r1=1804134&r2=1804135&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 15:18:15 2017
@@ -27,7 +27,6 @@ import org.apache.sling.feature.Applicat
import org.apache.sling.feature.Artifact;
import org.apache.sling.feature.Bundles;
import org.apache.sling.feature.Extension;
-import org.apache.sling.feature.ExtensionType;
import org.apache.sling.feature.Extensions;
import org.apache.sling.feature.Feature;
import org.apache.sling.feature.analyser.impl.ApplicationDescriptorImpl;
@@ -178,26 +177,9 @@ public class Scanner {
private void scan(final Extensions extensions, final ContainerDescriptorImpl desc)
throws IOException {
for(final Extension ext : extensions) {
- final List<ArtifactDescriptor> infos;
- if ( ext.getType() == ExtensionType.ARTIFACTS ) {
- infos = new ArrayList<>();
- for(final Artifact artifact : ext.getArtifacts()) {
- final ArtifactDescriptor artifactDesc = scan(artifact);
- infos.add(artifactDesc);
- desc.getArtifactDescriptors().add(artifactDesc);
- // aggregate
- desc.getRequirements().addAll(artifactDesc.getRequirements());
- desc.getCapabilities().addAll(artifactDesc.getCapabilities());
- desc.getExportedPackages().addAll(artifactDesc.getExportedPackages());
- desc.getImportedPackages().addAll(artifactDesc.getImportedPackages());
- desc.getDynamicImportedPackages().addAll(artifactDesc.getDynamicImportedPackages());
- }
- } else {
- infos = null;
- }
- Descriptor extDesc = null;
+ ContainerDescriptor extDesc = null;
for(final ExtensionScanner scanner : this.extensionScanners) {
- extDesc = scanner.scan(ext, infos, this.artifactManager);
+ extDesc = scanner.scan(ext, this, this.artifactManager);
if ( extDesc != null ) {
break;
}
@@ -211,11 +193,8 @@ public class Scanner {
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());
- }
+ desc.getArtifactDescriptors().addAll(extDesc.getArtifactDescriptors());
+ desc.getBundleDescriptors().addAll(extDesc.getBundleDescriptors());
}
}
@@ -224,6 +203,7 @@ public class Scanner {
// same with requirements
}
+
/**
* Scan a feature
*
Modified: sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/scanner/ExtensionScanner.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/scanner/ExtensionScanner.java?rev=1804135&r1=1804134&r2=1804135&view=diff
==============================================================================
--- sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/scanner/ExtensionScanner.java (original)
+++ sling/whiteboard/cziegeler/feature-analyser/src/main/java/org/apache/sling/feature/scanner/ExtensionScanner.java Fri Aug 4 15:18:15 2017
@@ -16,14 +16,13 @@
*/
package org.apache.sling.feature.scanner;
+import java.io.IOException;
+
import org.apache.sling.feature.Extension;
-import org.apache.sling.feature.analyser.ArtifactDescriptor;
-import org.apache.sling.feature.analyser.Descriptor;
+import org.apache.sling.feature.analyser.ContainerDescriptor;
+import org.apache.sling.feature.analyser.Scanner;
import org.apache.sling.feature.support.ArtifactManager;
-import java.io.IOException;
-import java.util.List;
-
/**
* The extension scanner scans an extension.
*/
@@ -37,13 +36,14 @@ public interface ExtensionScanner {
/**
* Try to scan the extension and return a descriptor
+ *
* @param extension The extension
- * @param descs A list of scanned artifact descriptors if the extension is of type artifacts, {@code null} otherwise.
+ * @param scanner The scanner to scan included artifacts
* @param manager Artifact manager
* @return The descriptor or {@code null} if the scanner does not know the extension
* @throws IOException If an error occurs while scanning the extension or the extension is invalid
*/
- Descriptor scan(Extension extension,
- List<ArtifactDescriptor> descs,
+ ContainerDescriptor scan(Extension extension,
+ Scanner scanner,
ArtifactManager manager) throws IOException;
}
\ No newline at end of file