Skip to content

Commit

Permalink
Replace the named variant methods with an allVariants one
Browse files Browse the repository at this point in the history
Because variant names are unstable.
  • Loading branch information
melix committed Dec 7, 2018
1 parent 23efbc5 commit 15339fd
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 51 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ import spock.lang.Unroll
class MavenPublishResolvedVersionsJavaIntegTest extends AbstractMavenPublishIntegTest {
MavenJavaModule javaLibrary = javaLibrary(mavenRepo.module("org.gradle.test", "publishTest", "1.9"))

@Unroll
def "can publish java-library with dependencies using default configuration"() {
@Unroll("can publish java-library with dependencies (#apiMapping, #runtimeMapping)")
def "can publish java-library with dependencies"() {
given:
javaLibrary(mavenRepo.module("org.test", "foo", "1.0")).withModuleMetadata().publish()
javaLibrary(mavenRepo.module("org.test", "bar", "1.0")).withModuleMetadata().publish()
Expand Down Expand Up @@ -91,12 +91,10 @@ class MavenPublishResolvedVersionsJavaIntegTest extends AbstractMavenPublishInte
}

where:
[apiMapping, runtimeMapping] << [
[apiUsingVariantNames(), apiUsingVariantNames("fromResolutionOf('compileClasspath')"), apiUsingVariantNames("fromResolutionOf(project.configurations.compileClasspath)"),
apiUsingUsage(), apiUsingUsage("fromResolutionOf('compileClasspath')"), apiUsingUsage("fromResolutionOf(project.configurations.compileClasspath)")],
[runtimeUsingVariantNames(), runtimeUsingVariantNames("fromResolutionOf('runtimeClasspath')"), runtimeUsingVariantNames("fromResolutionOf(project.configurations.runtimeClasspath)"),
runtimeUsingUsage(), runtimeUsingUsage("fromResolutionOf('runtimeClasspath')"), runtimeUsingUsage("fromResolutionOf(project.configurations.runtimeClasspath)")]
].combinations()
[apiMapping, runtimeMapping] << ([
[apiUsingUsage(), apiUsingUsage("fromResolutionOf('compileClasspath')"), apiUsingUsage("fromResolutionOf(project.configurations.compileClasspath)")],
[runtimeUsingUsage(), runtimeUsingUsage("fromResolutionOf('runtimeClasspath')"), runtimeUsingUsage("fromResolutionOf(project.configurations.runtimeClasspath)")]
].combinations() + [[allVariants(), noop()]])
}

/**
Expand Down Expand Up @@ -284,12 +282,10 @@ class MavenPublishResolvedVersionsJavaIntegTest extends AbstractMavenPublishInte
}

where:
[apiMapping, runtimeMapping] << [
[apiUsingVariantNames(), apiUsingVariantNames("fromResolutionOf('compileClasspath')"),
apiUsingUsage(), apiUsingUsage("fromResolutionOf('compileClasspath')")],
[runtimeUsingVariantNames(), runtimeUsingVariantNames("fromResolutionOf('runtimeClasspath')"),
runtimeUsingUsage(), runtimeUsingUsage("fromResolutionOf('runtimeClasspath')")]
].combinations()
[apiMapping, runtimeMapping] << ([
[apiUsingUsage(), apiUsingUsage("fromResolutionOf('compileClasspath')")],
[runtimeUsingUsage(), runtimeUsingUsage("fromResolutionOf('runtimeClasspath')")]
].combinations() + [[allVariants(), noop()]])
}

def "dependency constraints which are unresolved are published as is"() {
Expand Down Expand Up @@ -451,39 +447,18 @@ class MavenPublishResolvedVersionsJavaIntegTest extends AbstractMavenPublishInte
}
}

private static String apiUsingVariantNames(String config = "fromResolutionResult()") {
"""
variant("api") { // Gradle Metadata
$config
}
variant("compile") { // Maven POM
$config
}
"""
private static String allVariants() {
" allVariants { fromResolutionResult() } "
}

private static String apiUsingUsage(String config = "fromResolutionResult()") {
"""
usage("java-api") {
$config
}
"""
}
private static String noop() { "" }

private static String runtimeUsingVariantNames(String config = "fromResolutionResult()") {
"""
variant("runtime") {
$config
}
"""
private static String apiUsingUsage(String config = "fromResolutionResult()") {
""" usage("java-api") { $config } """
}

private static String runtimeUsingUsage(String config = "fromResolutionResult()") {
"""
usage("java-runtime") {
$config
}
"""
""" usage("java-runtime") { $config } """
}

private void createBuildScripts(def append) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import org.gradle.api.publish.internal.versionmapping.VariantVersionMappingStrategyInternal;
import org.gradle.api.publish.internal.versionmapping.VersionMappingStrategyInternal;
import org.gradle.api.specs.Spec;
import org.gradle.api.specs.Specs;

import java.util.List;

Expand All @@ -41,13 +42,8 @@ public DefaultVersionMappingStrategy(ObjectFactory objectFactory, ConfigurationC
}

@Override
public void variant(String name, Action<? super VariantVersionMappingStrategy> action) {
PublishedVariantVersionMapping mapping = new PublishedVariantVersionMapping(new Spec<PublishedVariant>() {
@Override
public boolean isSatisfiedBy(PublishedVariant element) {
return name.equals(element.name);
}
}, action);
public void allVariants(Action<? super VariantVersionMappingStrategy> action) {
PublishedVariantVersionMapping mapping = new PublishedVariantVersionMapping(Specs.SATISFIES_ALL, action);
mappings.add(mapping);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,10 @@
@HasInternalProtocol
public interface VersionMappingStrategy {
/**
* Configures the version mapping strategy for a named variant.
* @param name the variant name
* Configures the version mapping strategy for all variants
* @param action the configuration action
*/
void variant(String name, Action<? super VariantVersionMappingStrategy> action);
void allVariants(Action<? super VariantVersionMappingStrategy> action);

/**
* Configures the version mapping strategy for the variant which matches the provided
Expand Down

0 comments on commit 15339fd

Please sign in to comment.