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 2021/04/28 07:35:48 UTC
[sling-slingfeature-maven-plugin] branch master updated:
SLING-10337 : Toggles not respected when checking generated api jars
This is an automated email from the ASF dual-hosted git repository.
cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-slingfeature-maven-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new 9069049 SLING-10337 : Toggles not respected when checking generated api jars
9069049 is described below
commit 9069049660b79620663c0f7a2cd6ef6e39546fa9
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Apr 28 09:35:32 2021 +0200
SLING-10337 : Toggles not respected when checking generated api jars
---
.../sling/feature/maven/mojos/ApisJarMojo.java | 11 ++++---
.../feature/maven/mojos/apis/RegionSupport.java | 36 ++++++++++++++++------
2 files changed, 32 insertions(+), 15 deletions(-)
diff --git a/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java b/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java
index aca4921..c461f30 100644
--- a/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java
+++ b/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java
@@ -539,7 +539,7 @@ public class ApisJarMojo extends AbstractIncludingFeatureMojo {
final Collection<ArtifactInfo> infos = ctx.getArtifactInfos(regionName, ctx.getConfig().isUseApiDependencies());
this.runProcessor(ctx, apiRegion, ArtifactType.APIS, this.apiResources, infos);
final File apiJar = createArchive(ctx, apiRegion, ArtifactType.APIS, this.apiResources, infos, report);
- report(ctx, apiJar, ArtifactType.APIS, apiRegion, ctx.getConfig().isUseApiDependencies(), report, null);
+ report(ctx, apiJar, ArtifactType.APIS, regionSupport, apiRegion, ctx.getConfig().isUseApiDependencies(), report, null);
}
// run processor on sources
@@ -554,7 +554,7 @@ public class ApisJarMojo extends AbstractIncludingFeatureMojo {
if (generateSourceJar) {
final Collection<ArtifactInfo> infos = ctx.getArtifactInfos(regionName, ctx.getConfig().isUseApiDependencies());
final File sourceJar = createArchive(ctx, apiRegion, ArtifactType.SOURCES, this.apiSourceResources, infos, report);
- report(ctx, sourceJar, ArtifactType.SOURCES, apiRegion, ctx.getConfig().isUseApiDependencies(), report, null);
+ report(ctx, sourceJar, ArtifactType.SOURCES, regionSupport, apiRegion, ctx.getConfig().isUseApiDependencies(), report, null);
}
if (ctx.getConfig().isUseApiDependencies() && (this.generateApiJar || this.generateSourceJar)) {
@@ -574,7 +574,7 @@ public class ApisJarMojo extends AbstractIncludingFeatureMojo {
ctx.setJavadocDir(javadocsDir);
final File javadocJar = createArchive(ctx, apiRegion, ArtifactType.JAVADOC,
this.apiJavadocResources, infos, report);
- report(ctx, javadocJar, ArtifactType.JAVADOC, apiRegion, ctx.getConfig().isUseApiDependenciesForJavadoc(), report, links);
+ report(ctx, javadocJar, ArtifactType.JAVADOC, regionSupport, apiRegion, ctx.getConfig().isUseApiDependenciesForJavadoc(), report, links);
} else {
getLog().warn("Javadoc JAR will NOT be generated - sources directory " + ctx.getDeflatedSourcesDir()
+ " was empty or contained no Java files!");
@@ -587,7 +587,7 @@ public class ApisJarMojo extends AbstractIncludingFeatureMojo {
ctx.setJavadocDir(javadocsAllDir);
final File javadocJar = createArchive(ctx, apiRegion, ArtifactType.JAVADOC_ALL,
this.apiJavadocResources, infosForAll, report);
- report(ctx, javadocJar, ArtifactType.JAVADOC, apiRegion, false, report, links);
+ report(ctx, javadocJar, ArtifactType.JAVADOC, regionSupport, apiRegion, false, report, links);
} else {
getLog().warn("Javadoc JAR will NOT be generated - sources directory " + ctx.getDeflatedSourcesDir()
+ " was empty or contained no Java files!");
@@ -653,6 +653,7 @@ public class ApisJarMojo extends AbstractIncludingFeatureMojo {
private void report(final ApisJarContext ctx,
final File jarFile,
final ArtifactType artifactType,
+ final RegionSupport regionSupport,
final ApiRegion apiRegion,
final boolean omitDependencyArtifacts,
final List<String> report,
@@ -682,7 +683,7 @@ public class ApisJarMojo extends AbstractIncludingFeatureMojo {
}
final List<ApiExport> missing = new ArrayList<>();
- for (final ApiExport exp : apiRegion.listExports()) {
+ for (final ApiExport exp : regionSupport.getAllExports(apiRegion, ctx.getConfig().getEnabledToggles())) {
final String packageName = exp.getName();
if (!apiPackages.remove(packageName) && !otherPackages.remove(packageName)) {
missing.add(exp);
diff --git a/src/main/java/org/apache/sling/feature/maven/mojos/apis/RegionSupport.java b/src/main/java/org/apache/sling/feature/maven/mojos/apis/RegionSupport.java
index bffe86c..11e9213 100644
--- a/src/main/java/org/apache/sling/feature/maven/mojos/apis/RegionSupport.java
+++ b/src/main/java/org/apache/sling/feature/maven/mojos/apis/RegionSupport.java
@@ -19,8 +19,10 @@ package org.apache.sling.feature.maven.mojos.apis;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashSet;
+import java.util.List;
import java.util.Set;
import java.util.jar.JarInputStream;
import java.util.jar.Manifest;
@@ -144,6 +146,29 @@ public class RegionSupport {
return included;
}
+ public List<ApiExport> getAllExports(final ApiRegion region, final Set<String> enabledToggles) {
+ final List<ApiExport> result = new ArrayList<>();
+ for (final ApiExport exp : region.listExports()) {
+ if ( this.include(exp, enabledToggles) ) {
+ result.add(exp);
+ }
+ }
+ return result;
+ }
+
+ private boolean include(final ApiExport exp, final Set<String> enabledToggles) {
+ boolean include = !toggleApiOnly;
+ if ( toggleApiOnly ) {
+ include = exp.getToggle() != null && enabledToggles.contains(exp.getToggle());
+ } else {
+ // if the package is behind a toggle, only include if toggle is enabled or if previous artifact is set
+ if (exp.getToggle() != null && !enabledToggles.contains(exp.getToggle()) && exp.getPrevious() == null) {
+ include = false;
+ }
+ }
+ return include;
+ }
+
/**
* Compute exports based on all regions
*
@@ -162,16 +187,7 @@ public class RegionSupport {
for (ApiRegion apiRegion : apiRegions.listRegions()) {
final ApiExport exp = apiRegion.getExportByName(packageName);
if (exp != null) {
- boolean include = !toggleApiOnly;
- if ( toggleApiOnly ) {
- include = exp.getToggle() != null && enabledToggles.contains(exp.getToggle());
- } else {
- // if the package is behind a toggle, only include if toggle is enabled or if previous artifact is set
- if (exp.getToggle() != null && !enabledToggles.contains(exp.getToggle()) && exp.getPrevious() == null) {
- include = false;
- }
- }
- if (include) {
+ if ( this.include(exp, enabledToggles) ) {
result.add(exportedPackage.getName());
}
}