SLING-9265 : Add support for optional bundles
diff --git a/.gitignore b/.gitignore
index 5b783ed..c7f991e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,7 @@
*.iws
*.bak
.vlt
+.vscode
.DS_Store
jcr.log
atlassian-ide-plugin.xml
diff --git a/pom.xml b/pom.xml
index 695d168..e65c2cb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -56,7 +56,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.feature</artifactId>
- <version>1.2.10</version>
+ <version>1.3.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/analyser/CheckApiRegionsBundleExportsImports.java b/src/main/java/org/apache/sling/feature/extension/apiregions/analyser/CheckApiRegionsBundleExportsImports.java
index e3ca7cb..072e69b 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/analyser/CheckApiRegionsBundleExportsImports.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/analyser/CheckApiRegionsBundleExportsImports.java
@@ -34,6 +34,7 @@
import javax.json.JsonArray;
import org.apache.sling.feature.ArtifactId;
+import org.apache.sling.feature.ArtifactResolution;
import org.apache.sling.feature.Extension;
import org.apache.sling.feature.Extensions;
import org.apache.sling.feature.Feature;
@@ -256,13 +257,13 @@
ctx.reportWarning(key + " is exporting package(s) " + getPackageInfo(entry.getValue().importWithoutVersion, false) + " without a version.");
}
- if ( !entry.getValue().missingExports.isEmpty() ) {
+ if ( !entry.getValue().missingExports.isEmpty() && entry.getKey().getArtifact().getResolution() == ArtifactResolution.MANDATORY ) {
ctx.reportError(key + " is importing package(s) " + getPackageInfo(entry.getValue().missingExports, false) + " in start level " +
String.valueOf(entry.getKey().getArtifact().getStartOrder())
+ " but no bundle is exporting these for that start level.");
errorReported = true;
}
- if ( !entry.getValue().missingExportsWithVersion.isEmpty() ) {
+ if ( !entry.getValue().missingExportsWithVersion.isEmpty() && entry.getKey().getArtifact().getResolution() == ArtifactResolution.MANDATORY ) {
StringBuilder message = new StringBuilder(key + " is importing package(s) " + getPackageInfo(entry.getValue().missingExportsWithVersion, true) + " in start level " +
String.valueOf(entry.getKey().getArtifact().getStartOrder())
+ " but no visible bundle is exporting these for that start level in the required version range.");