Skip to content

Commit 470f2c7

Browse files
authored
Distinguish core Spark artifacts from each other (#1586) (#1588)
1 parent b2a4ac6 commit 470f2c7

File tree

3 files changed

+44
-12
lines changed

3 files changed

+44
-12
lines changed

buildSrc/src/main/groovy/org/elasticsearch/hadoop/gradle/BuildPlugin.groovy

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -729,10 +729,13 @@ class BuildPlugin implements Plugin<Project> {
729729
}
730730

731731
private static void updateVariantPomLocationAndArtifactId(Project project, MavenPublication publication, SparkVariant variant) {
732+
// Add variant classifier to the pom file name if required
733+
String classifier = variant.shouldClassifySparkVersion() && variant.isDefaultVariant() == false ? "-${variant.getName()}" : ''
734+
String filename = "${project.archivesBaseName}_${variant.scalaMajorVersion}-${project.getVersion()}${classifier}"
732735
// Fix the pom name
733736
project.tasks.withType(GenerateMavenPom).all { GenerateMavenPom pom ->
734737
if (pom.name == "generatePomFileFor${publication.name.capitalize()}Publication") {
735-
pom.destination = project.provider({"${project.buildDir}/distributions/${project.archivesBaseName}_${variant.scalaMajorVersion}-${project.getVersion()}.pom"})
738+
pom.destination = project.provider({"${project.buildDir}/distributions/${filename}.pom"})
736739
}
737740
}
738741
// Fix the artifactId. Note: The publishing task does not like this happening. Hence it is disabled.

buildSrc/src/main/java/org/elasticsearch/hadoop/gradle/scala/SparkVariantPlugin.java

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,19 +81,21 @@ public static class SparkVariant {
8181
private final String scalaVersion;
8282
private final String scalaMajorVersion;
8383
private final String capability;
84+
private final boolean classifySparkVersion;
8485

8586
public SparkVariant(String name) {
8687
throw new GradleException("Cannot create variant named [" + name + "]. Do not instantiate objects directly. " +
8788
"You must configure this via the SparkVariantPluginExtension.");
8889
}
8990

90-
public SparkVariant(CharSequence name, boolean isDefaultVariant, String sparkVersion, String scalaVersion, String capability) {
91+
public SparkVariant(CharSequence name, boolean isDefaultVariant, String sparkVersion, String scalaVersion, String capability, boolean classifySparkVersion) {
9192
this.name = name;
9293
this.isDefaultVariant = isDefaultVariant;
9394
this.sparkVersion = sparkVersion;
9495
this.scalaVersion = scalaVersion;
9596
this.scalaMajorVersion = scalaVersion.substring(0, scalaVersion.lastIndexOf('.'));
9697
this.capability = capability;
98+
this.classifySparkVersion = classifySparkVersion;
9799
}
98100

99101
public String getName() {
@@ -124,6 +126,10 @@ public String getCapability() {
124126
return capability;
125127
}
126128

129+
public boolean shouldClassifySparkVersion() {
130+
return classifySparkVersion;
131+
}
132+
127133
public String getSourceSetName(String sourceSetName) {
128134
String result;
129135
if (isDefaultVariant) {
@@ -184,22 +190,38 @@ public void capabilityGroup(String capability) {
184190
}
185191

186192
public SparkVariant setDefaultVariant(String variantName, String sparkVersion, String scalaVersion) {
193+
return setDefaultVariant(variantName, sparkVersion, scalaVersion, false);
194+
}
195+
196+
public SparkVariant setCoreDefaultVariant(String variantName, String sparkVersion, String scalaVersion) {
197+
return setDefaultVariant(variantName, sparkVersion, scalaVersion, true);
198+
}
199+
200+
public SparkVariant setDefaultVariant(String variantName, String sparkVersion, String scalaVersion, boolean classifySparkVersion) {
187201
if (defaultVariant != null) {
188202
throw new GradleException("Cannot set default variant multiple times");
189203
}
190204
if (capability == null) {
191205
throw new GradleException("Must set capability group before adding variant definitions");
192206
}
193-
defaultVariant = new SparkVariant(variantName, true, sparkVersion, scalaVersion, capability);
207+
defaultVariant = new SparkVariant(variantName, true, sparkVersion, scalaVersion, capability, classifySparkVersion);
194208
variants.add(defaultVariant);
195209
return defaultVariant;
196210
}
197211

198212
public SparkVariant addFeatureVariant(String variantName, String sparkVersion, String scalaVersion) {
213+
return addFeatureVariant(variantName, sparkVersion, scalaVersion, false);
214+
}
215+
216+
public SparkVariant addCoreFeatureVariant(String variantName, String sparkVersion, String scalaVersion) {
217+
return addFeatureVariant(variantName, sparkVersion, scalaVersion, true);
218+
}
219+
220+
public SparkVariant addFeatureVariant(String variantName, String sparkVersion, String scalaVersion, boolean classifySparkVersion) {
199221
if (capability == null) {
200222
throw new GradleException("Must set capability group before adding variant definitions");
201223
}
202-
SparkVariant variant = new SparkVariant(variantName, false, sparkVersion, scalaVersion, capability);
224+
SparkVariant variant = new SparkVariant(variantName, false, sparkVersion, scalaVersion, capability, classifySparkVersion);
203225
variants.add(variant);
204226
return variant;
205227
}
@@ -437,7 +459,8 @@ private static void registerVariantScaladoc(Project project, TaskContainer tasks
437459
});
438460
}
439461

440-
private static void correctScalaJarClassifiers(Jar jar, SparkVariant sparkVariant) {
462+
private static void removeVariantNameFromClassifier(Jar jar, SparkVariant sparkVariant) {
463+
// the default variant doesn't have classifiers on it to remove
441464
if (sparkVariant.isDefaultVariant() == false) {
442465
String classifier = jar.getArchiveClassifier().get();
443466
classifier = classifier.replace(sparkVariant.name, "");
@@ -446,15 +469,21 @@ private static void correctScalaJarClassifiers(Jar jar, SparkVariant sparkVarian
446469
}
447470
jar.getArchiveClassifier().set(classifier);
448471
}
472+
}
473+
474+
private static void correctScalaJarClassifiers(Jar jar, SparkVariant sparkVariant) {
475+
if (sparkVariant.shouldClassifySparkVersion() == false) {
476+
removeVariantNameFromClassifier(jar, sparkVariant);
477+
}
449478
String baseName = jar.getArchiveBaseName().get();
450479
baseName = baseName + "_" + sparkVariant.scalaMajorVersion;
451480
jar.getArchiveBaseName().set(baseName);
452481
}
453482

454483
private static void configureScalaJarClassifiers(Project project, final SparkVariant sparkVariant) {
455484
TaskCollection<Jar> jars = project.getTasks().withType(Jar.class);
456-
correctScalaJarClassifiers(jars.getByName(sparkVariant.taskName("jar")), sparkVariant);
457-
correctScalaJarClassifiers(jars.getByName(sparkVariant.taskName("javadocJar")), sparkVariant);
458-
correctScalaJarClassifiers(jars.getByName(sparkVariant.taskName("sourcesJar")), sparkVariant);
485+
jars.named(sparkVariant.taskName("jar"), (Jar jar) -> correctScalaJarClassifiers(jar, sparkVariant));
486+
jars.named(sparkVariant.taskName("javadocJar"), (Jar jar) -> correctScalaJarClassifiers(jar, sparkVariant));
487+
jars.named(sparkVariant.taskName("sourcesJar"), (Jar jar) -> correctScalaJarClassifiers(jar, sparkVariant));
459488
}
460489
}

spark/core/build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ apply plugin: 'spark.variants'
99

1010
sparkVariants {
1111
capabilityGroup 'org.elasticsearch.spark.variant'
12-
setDefaultVariant "spark20scala211", spark24Version, scala211Version
13-
addFeatureVariant "spark20scala210", spark22Version, scala210Version
14-
addFeatureVariant "spark13scala211", spark13Version, scala211Version
15-
addFeatureVariant "spark13scala210", spark13Version, scala210Version
12+
setCoreDefaultVariant "spark20scala211", spark24Version, scala211Version
13+
addCoreFeatureVariant "spark20scala210", spark22Version, scala210Version
14+
addCoreFeatureVariant "spark13scala211", spark13Version, scala211Version
15+
addCoreFeatureVariant "spark13scala210", spark13Version, scala210Version
1616

1717
all { SparkVariantPlugin.SparkVariant variant ->
1818

0 commit comments

Comments
 (0)