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 2020/10/15 05:44:13 UTC
[sling-slingfeature-maven-plugin] branch master updated: SLING-9828
: Processor is not called for sources if source jar is disabled
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 90b4223 SLING-9828 : Processor is not called for sources if source jar is disabled
90b4223 is described below
commit 90b42237b1681d69d24ebf2239cd6eb4cba8c144
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Thu Oct 15 07:43:43 2020 +0200
SLING-9828 : Processor is not called for sources if source jar is disabled
---
pom.xml | 2 +-
.../sling/feature/maven/mojos/ApisJarMojo.java | 209 ++++++++++++---------
2 files changed, 125 insertions(+), 86 deletions(-)
diff --git a/pom.xml b/pom.xml
index 108ed89..f83e984 100644
--- a/pom.xml
+++ b/pom.xml
@@ -176,7 +176,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.feature.analyser</artifactId>
- <version>1.3.9-SNAPSHOT</version>
+ <version>1.3.8</version>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
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 133c5e1..a72625f 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
@@ -30,6 +30,7 @@ import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
@@ -557,15 +558,20 @@ public class ApisJarMojo extends AbstractIncludingFeatureMojo {
final File regionDir = new File(featureDir, apiRegion.getName());
if (generateApiJar) {
- final File apiJar = createArchive(ctx, apiRegion, ArtifactType.APIS, this.apiResources,
- ctx.getArtifactInfos(apiRegion, this.useApiDependencies), report);
+ final Collection<ArtifactInfo> infos = ctx.getArtifactInfos(apiRegion, this.useApiDependencies);
+ 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, this.useApiDependencies, report, null);
}
if (generateSourceJar) {
- final File sourceJar = createArchive(ctx, apiRegion, ArtifactType.SOURCES, this.apiSourceResources,
- ctx.getArtifactInfos(apiRegion, this.useApiDependencies), report);
+ final Collection<ArtifactInfo> infos = ctx.getArtifactInfos(apiRegion, this.useApiDependencies);
+ this.runProcessor(ctx, apiRegion, ArtifactType.SOURCES, this.apiResources, infos);
+ final File sourceJar = createArchive(ctx, apiRegion, ArtifactType.SOURCES, this.apiSourceResources, infos, report);
report(ctx, sourceJar, ArtifactType.SOURCES, apiRegion, this.useApiDependencies, report, null);
+ } else if ( generateJavadocJar ) {
+ final Collection<ArtifactInfo> infos = ctx.getArtifactInfos(apiRegion, false);
+ this.runProcessor(ctx, apiRegion, ArtifactType.SOURCES, this.apiResources, infos);
}
if (this.useApiDependencies && (this.generateApiJar || this.generateSourceJar)) {
@@ -1504,118 +1510,151 @@ public class ApisJarMojo extends AbstractIncludingFeatureMojo {
return sb.toString();
}
- private File createArchive(final ApisJarContext ctx, final ApiRegion apiRegion, final ArtifactType archiveType,
- final List<File> resources, final Collection<ArtifactInfo> infos, final List<String> report)
- throws MojoExecutionException {
- final JarArchiver jarArchiver = new JarArchiver();
+ private void addFileSets(final ApiRegion apiRegion,
+ final ArtifactType archiveType,
+ final Collection<ArtifactInfo> infos,
+ final JarArchiver jarArchiver,
+ final List<Source> sources) {
+ for (final ArtifactInfo info : infos) {
+ final File dir = archiveType == ArtifactType.APIS ? info.getBinDirectory() : info.getSourceDirectory();
- final List<Processor> processors;
- final List<Source> sources;
+ if (dir != null) {
+ final String[] usedExportedPackageIncludes = info.getUsedExportedPackageIncludes(apiRegion);
+ getLog().debug("Adding directory " + dir.getName() + " with "
+ + Arrays.toString(usedExportedPackageIncludes));
+ final DefaultFileSet fileSet = new DefaultFileSet(dir);
+ fileSet.setIncludingEmptyDirectories(false);
+ fileSet.setIncludes(usedExportedPackageIncludes);
- if (archiveType == ArtifactType.APIS || archiveType == ArtifactType.SOURCES) {
- processors = ApisUtil.getProcessors();
- sources = processors.isEmpty() ? null : new ArrayList<>();
- // api or source
- for (final ArtifactInfo info : infos) {
- final File dir = archiveType == ArtifactType.APIS ? info.getBinDirectory() : info.getSourceDirectory();
-
- if (dir != null) {
- final String[] usedExportedPackageIncludes = info.getUsedExportedPackageIncludes(apiRegion);
- getLog().debug("Adding directory " + dir.getName() + " with "
- + Arrays.toString(usedExportedPackageIncludes));
- final DefaultFileSet fileSet = new DefaultFileSet(dir);
- fileSet.setIncludingEmptyDirectories(false);
- fileSet.setIncludes(usedExportedPackageIncludes);
+ if ( jarArchiver != null ) {
jarArchiver.addFileSet(fileSet);
- if (sources != null) {
- sources.add(new DirectorySource(fileSet));
- }
+ }
+ if ( sources != null ) {
+ sources.add(new DirectorySource(fileSet));
}
}
- } else {
- processors = Collections.emptyList();
- sources = null;
- // javadoc
- final DefaultFileSet fileSet = new DefaultFileSet(ctx.getJavadocDir());
- jarArchiver.addFileSet(fileSet);
}
-
- // add included resources
+ }
+
+ private void addResources(final Collection<ArtifactInfo> infos,
+ final List<File> resources,
+ final JarArchiver jarArchiver,
+ final List<Source> sources) {
for (final ArtifactInfo info : infos) {
final int prefixLength = info.getBinDirectory().getAbsolutePath().length() + 1;
for (final File resource : info.getIncludedResources()) {
final String name = resource.getAbsolutePath().substring(prefixLength);
- jarArchiver.addFile(resource, name);
getLog().debug("Adding resource " + name);
- if (sources != null) {
+
+ if ( jarArchiver != null ) {
+ jarArchiver.addFile(resource, name);
+
+ }
+ if ( sources != null ) {
sources.add(new FileSource(info.getBinDirectory(), resource));
}
}
}
- // add additional resources
- if (resources != null) {
- for (final File rsrc : resources) {
- getLog().debug("Adding resource " + rsrc);
- if (rsrc.isDirectory()) {
- DirectoryScanner ds = new DirectoryScanner();
- ds.setBasedir(rsrc);
- ds.setIncludes("**/*.*");
- ds.scan();
+ // add additional resources
+ if (resources != null) {
+ for (final File rsrc : resources) {
+ getLog().debug("Adding resource " + rsrc);
+ if (rsrc.isDirectory()) {
+ DirectoryScanner ds = new DirectoryScanner();
+ ds.setBasedir(rsrc);
+ ds.setIncludes("**/*.*");
+ ds.scan();
+ if ( jarArchiver != null ) {
for (String includedFile : ds.getIncludedFiles()) {
jarArchiver.addFile(new File(rsrc, includedFile), includedFile);
- }
- if (sources != null) {
- final DefaultFileSet fileSet = new DefaultFileSet(rsrc);
- fileSet.setIncludingEmptyDirectories(false);
- fileSet.setIncludes(new String[] { "**/*.*" });
- sources.add(new DirectorySource(fileSet));
- }
- } else {
+ }
+ }
+ if (sources != null) {
+ final DefaultFileSet fileSet = new DefaultFileSet(rsrc);
+ fileSet.setIncludingEmptyDirectories(false);
+ fileSet.setIncludes(new String[] { "**/*.*" });
+ sources.add(new DirectorySource(fileSet));
+ }
+ } else {
+ if ( jarArchiver != null ) {
jarArchiver.addFile(rsrc, rsrc.getName());
- if (sources != null) {
- sources.add(new FileSource(rsrc.getParentFile(), rsrc));
- }
+ }
+ if (sources != null) {
+ sources.add(new FileSource(rsrc.getParentFile(), rsrc));
}
}
}
+ }
+}
- // run processors
- for (final Processor p : processors) {
- final ProcessorContext pc = new ProcessorContext() {
-
- @Override
- public MavenSession getSession() {
- return mavenSession;
- }
+ private void runProcessor(final ApisJarContext ctx,
+ final ApiRegion apiRegion,
+ final ArtifactType archiveType,
+ final List<File> resources,
+ final Collection<ArtifactInfo> infos) {
+ final List<Processor> processors = ApisUtil.getProcessors();
+ if ( !processors.isEmpty() ) {
+ final List<Source> sources = new ArrayList<>();
+
+ this.addFileSets(apiRegion, archiveType, infos, null, sources);
+ this.addResources(infos, resources, null, sources);
+
+ // run processors
+ for (final Processor p : processors) {
+ final ProcessorContext pc = new ProcessorContext() {
+
+ @Override
+ public MavenSession getSession() {
+ return mavenSession;
+ }
- @Override
- public MavenProject getProject() {
- return project;
- }
+ @Override
+ public MavenProject getProject() {
+ return project;
+ }
- @Override
- public Feature getFeature() {
- return ctx.getFeature();
- }
+ @Override
+ public Feature getFeature() {
+ return ctx.getFeature();
+ }
- @Override
- public ApiRegion getApiRegion() {
- return apiRegion;
- }
+ @Override
+ public ApiRegion getApiRegion() {
+ return apiRegion;
+ }
- @Override
- public Log getLog() {
- return ApisJarMojo.this.getLog();
+ @Override
+ public Log getLog() {
+ return ApisJarMojo.this.getLog();
+ }
+ };
+ if ( archiveType == ArtifactType.APIS ) {
+ p.processBinaries(pc, sources);
+ } else {
+ p.processSources(pc, sources);
}
- };
- if ( archiveType == ArtifactType.APIS ) {
- p.processBinaries(pc, sources);
- } else {
- p.processSources(pc, sources);
}
}
+ }
+
+ private File createArchive(final ApisJarContext ctx, final ApiRegion apiRegion, final ArtifactType archiveType,
+ final List<File> resources, final Collection<ArtifactInfo> infos, final List<String> report)
+ throws MojoExecutionException {
+ final JarArchiver jarArchiver = new JarArchiver();
+
+ if (archiveType == ArtifactType.APIS || archiveType == ArtifactType.SOURCES) {
+ // api or source
+ this.addFileSets(apiRegion, archiveType, infos, jarArchiver, null);
+ } else {
+ // javadoc
+ final DefaultFileSet fileSet = new DefaultFileSet(ctx.getJavadocDir());
+ jarArchiver.addFileSet(fileSet);
+ }
+
+ // add included resources
+ this.addResources(infos, resources, jarArchiver, null);
// check for license report
if ( ctx.getConfig().getLicenseReport() != null ) {