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/07/03 14:19:53 UTC
[sling-slingfeature-maven-plugin] branch master updated: SLING-9566
: Allow to specify classifier for source artifact
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 79e3cea SLING-9566 : Allow to specify classifier for source artifact
79e3cea is described below
commit 79e3cea0347924fe56a97d9ffb0bf8b09169b02e
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Fri Jul 3 16:19:38 2020 +0200
SLING-9566 : Allow to specify classifier for source artifact
---
.../sling/feature/maven/mojos/ApisJarMojo.java | 19 ++++++++--------
.../sling/feature/maven/mojos/apis/ApisUtil.java | 25 ++++++++++++++++++++++
2 files changed, 35 insertions(+), 9 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 8455d75..788cfe4 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
@@ -1281,15 +1281,12 @@ public class ApisJarMojo extends AbstractIncludingFeatureMojo {
}
private void downloadSources(final ApisJarContext ctx, final ArtifactInfo info, final Artifact artifact) throws MojoExecutionException {
- ArtifactId artifactId = artifact.getId();
- getLog().debug("Downloading sources for " + artifactId.toMvnId() + "...");
+ getLog().debug("Downloading sources for " + artifact.getId().toMvnId() + "...");
- List<ArtifactId> scmIds = ApisUtil.getSourceIds(artifact);
- String scmLocation = artifact.getMetadata().get(ApisUtil.SCM_LOCATION);
- if ( scmIds != null && scmLocation != null) {
- throw new MojoExecutionException("Both " + ApisUtil.SCM_IDS + " and " + ApisUtil.SCM_LOCATION + " are defined for " + artifactId);
- }
+ ApisUtil.validateSourceInfo(artifact);
+ final List<ArtifactId> scmIds = ApisUtil.getSourceIds(artifact);
+ final String scmLocation = artifact.getMetadata().get(ApisUtil.SCM_LOCATION);
if ( scmIds != null ) {
for(final ArtifactId sourcesArtifactId : scmIds) {
downloadSourceAndDeflate(ctx, info, sourcesArtifactId, false);
@@ -1299,8 +1296,12 @@ public class ApisJarMojo extends AbstractIncludingFeatureMojo {
final String connection = checkoutSourcesFromSCM(ctx, info, artifact);
info.addSourceInfo(connection);
} else {
- final ArtifactId sourcesArtifactId = artifactId.changeClassifier("sources").changeType("jar");
- if ( downloadSourceAndDeflate(ctx, info, sourcesArtifactId, true) ) {
+ String sourceClassifier = artifact.getMetadata().get(ApisUtil.SCM_CLASSIFIER);
+ if ( sourceClassifier == null ) {
+ sourceClassifier = "sources"; // default
+ }
+ final ArtifactId sourcesArtifactId = artifact.getId().changeClassifier(sourceClassifier).changeType("jar");
+ if ( downloadSourceAndDeflate(ctx, info, sourcesArtifactId, artifact.getMetadata().get(ApisUtil.SCM_CLASSIFIER) == null) ) {
final String connection = checkoutSourcesFromSCM(ctx, info, artifact);
info.addSourceInfo(connection);
} else {
diff --git a/src/main/java/org/apache/sling/feature/maven/mojos/apis/ApisUtil.java b/src/main/java/org/apache/sling/feature/maven/mojos/apis/ApisUtil.java
index 24f5b6d..10f5ae4 100644
--- a/src/main/java/org/apache/sling/feature/maven/mojos/apis/ApisUtil.java
+++ b/src/main/java/org/apache/sling/feature/maven/mojos/apis/ApisUtil.java
@@ -51,6 +51,10 @@ public class ApisUtil {
/** Alternative IDS to a source artifact. */
public static final String SCM_IDS = "source-ids";
+ /** Alternative classifier for the source artifact. */
+ public static final String SCM_CLASSIFIER = "source-classifier";
+
+
/** Links for javadocs. */
public static final String JAVADOC_LINKS = "javadoc-links";
@@ -142,4 +146,25 @@ public class ApisUtil {
return result;
}
+ /**
+ * Validate that only one source metadata is set
+ * @param artifact The artifact to check
+ * @throws MojoExecutionException If metadata information is invalid
+ */
+ public static void validateSourceInfo(final Artifact artifact) throws MojoExecutionException {
+ int count = 0;
+ if ( artifact.getMetadata().get(ApisUtil.SCM_LOCATION) != null ) {
+ count++;
+ }
+ if ( artifact.getMetadata().get(ApisUtil.SCM_CLASSIFIER) != null ) {
+ count++;
+ }
+ if ( artifact.getMetadata().get(ApisUtil.SCM_IDS) != null ) {
+ count++;
+ }
+ if ( count > 1 ) {
+ throw new MojoExecutionException("Only one source configuration out of " + ApisUtil.SCM_CLASSIFIER + ", " + ApisUtil.SCM_IDS + " or " + ApisUtil.SCM_LOCATION + " is allowed for " + artifact.getId().toMvnId());
+ }
+ }
+
}