Bumped up version and polished

This commit is contained in:
Marcin Grzejszczak
2016-12-06 23:06:39 +01:00
committed by Marcin Grzejszczak
parent 96525b2ad5
commit d69670db68
22 changed files with 310 additions and 71 deletions

View File

@@ -70,7 +70,7 @@ class ContractVerifierExtension {
File generatedTestSourcesDir
/**
* Dir where the generated WireMock stubs from Groovy DSL should be placed.
* Dir where the generated stubs from Groovy DSL should be placed.
* You can then mention them in your packaging task to create jar with stubs
*/
File stubsOutputDir

View File

@@ -26,7 +26,8 @@ import org.springframework.cloud.contract.verifier.wiremock.RecursiveFilesConver
import static org.springframework.cloud.contract.verifier.plugin.SpringCloudContractVerifierGradlePlugin.COPY_CONTRACTS_TASK_NAME
//TODO: Implement as an incremental task: https://gradle.org/docs/current/userguide/custom_tasks.html#incremental_tasks ?
/**
* Generates WireMock stubs from the contracts
* Generates stubs from the contracts. The name is WireMock related but the implementation
* can differ
*
* @since 1.0.0
*/
@@ -45,7 +46,7 @@ class GenerateWireMockClientStubsFromDslTask extends ConventionTask {
Task copyContractsTask = project.getTasksByName(COPY_CONTRACTS_TASK_NAME, false).first()
ContractVerifierConfigProperties props = props(copyContractsTask)
File contractsDslDir = contractsDslDir(copyContractsTask, props)
logger.info("Spring Cloud Contract Verifier Plugin: Invoking DSL to WireMock client stubs conversion")
logger.info("Spring Cloud Contract Verifier Plugin: Invoking DSL to client stubs conversion")
props.contractsDslDir = contractsDslDir
props.includedContracts = ".*"
File outMappingsDir = getStubsOutputDir() != null ? new File(getStubsOutputDir(), DEFAULT_MAPPINGS_FOLDER)
@@ -71,7 +72,7 @@ class GenerateWireMockClientStubsFromDslTask extends ConventionTask {
try {
return task.ext.contractsDslDir
} catch (Exception e) {
project.logger.error("Couldn't retrieve the contractdsl property set by the copy contracts task", e)
project.logger.error("Couldn't retrieve the contract dsl property set by the copy contracts task", e)
return props.contractsDslDir
}
}

View File

@@ -47,7 +47,8 @@ import org.gradle.jvm.tasks.Jar
class SpringCloudContractVerifierGradlePlugin implements Plugin<Project> {
private static final String GENERATE_SERVER_TESTS_TASK_NAME = 'generateContractTests'
private static final String DSL_TO_WIREMOCK_CLIENT_TASK_NAME = 'generateWireMockClientStubs'
private static final String DEPRECATED_DSL_TO_WIREMOCK_CLIENT_TASK_NAME = 'generateWireMockClientStubs'
private static final String DSL_TO_CLIENT_TASK_NAME = 'generateClientStubs'
@PackageScope static final String COPY_CONTRACTS_TASK_NAME = 'copyContracts'
private static final String VERIFIER_STUBS_JAR_TASK_NAME = 'verifierStubsJar'
@@ -69,7 +70,8 @@ class SpringCloudContractVerifierGradlePlugin implements Plugin<Project> {
Task copyContracts = createAndConfigureCopyContractsTask(stubsJar, downloader, extension)
createAndConfigureMavenPublishPlugin(stubsJar)
createGenerateTestsTask(extension, copyContracts)
createAndConfigureGenerateWireMockClientStubsFromDslTask(extension, copyContracts)
Task clientTask = createAndConfigureGenerateClientStubsFromDslTask(extension, copyContracts)
createAndConfigureGenerateWireMockClientStubsFromDslTask(extension, clientTask)
addProjectDependencies(project)
addIdeaTestSources(project, extension)
}
@@ -89,6 +91,7 @@ class SpringCloudContractVerifierGradlePlugin implements Plugin<Project> {
}
private void addProjectDependencies(Project project) {
//TODO: Consider removing this at some point
project.dependencies.add("testCompile", "com.github.tomakehurst:wiremock:2.1.7")
project.dependencies.add("testCompile", "com.toomuchcoding.jsonassert:jsonassert:0.4.7")
project.dependencies.add("testCompile", "org.assertj:assertj-core:2.3.0")
@@ -119,10 +122,19 @@ class SpringCloudContractVerifierGradlePlugin implements Plugin<Project> {
task.dependsOn copyContracts
}
// TODO: Remove this task at some point
private void createAndConfigureGenerateWireMockClientStubsFromDslTask(ContractVerifierExtension extension,
Task mainTask) {
Task task = project.tasks.create(DEPRECATED_DSL_TO_WIREMOCK_CLIENT_TASK_NAME)
task.description = "DEPRECATED: Generate WireMock client stubs from the contracts. Use ${DSL_TO_CLIENT_TASK_NAME} task."
task.group = GROUP_NAME
task.dependsOn mainTask
}
private Task createAndConfigureGenerateClientStubsFromDslTask(ContractVerifierExtension extension,
Task copyContracts) {
Task task = project.tasks.create(DSL_TO_WIREMOCK_CLIENT_TASK_NAME, GenerateWireMockClientStubsFromDslTask)
task.description = "Generate WireMock client stubs from the contracts"
Task task = project.tasks.create(DSL_TO_CLIENT_TASK_NAME, GenerateWireMockClientStubsFromDslTask)
task.description = "Generate client stubs from the contracts"
task.group = GROUP_NAME
task.conventionMapping.with {
downloader = { gradleContractsDownloader }
@@ -130,6 +142,7 @@ class SpringCloudContractVerifierGradlePlugin implements Plugin<Project> {
configProperties = { extension }
}
task.dependsOn copyContracts
return task
}
private Task createAndConfigureStubsJarTasks(ContractVerifierExtension extension) {
@@ -139,7 +152,7 @@ class SpringCloudContractVerifierGradlePlugin implements Plugin<Project> {
return task
} else {
task = project.tasks.create(type: Jar, name: VERIFIER_STUBS_JAR_TASK_NAME,
dependsOn: DSL_TO_WIREMOCK_CLIENT_TASK_NAME) {
dependsOn: DSL_TO_CLIENT_TASK_NAME) {
baseName = project.name
classifier = extension.stubsSuffix
from { extension.stubsOutputDir ?: project.file("${project.buildDir}/stubs") }

View File

@@ -43,6 +43,7 @@ class BasicFunctionalSpec extends ContractVerifierIntegrationSpec {
BuildResult result = run(checkAndPublishToMavenLocal())
then:
result.task(":generateWireMockClientStubs").outcome == SUCCESS
result.task(":generateClientStubs").outcome == SUCCESS
result.task(":generateContractTests").outcome == SUCCESS
and: "tests generated"

View File

@@ -55,7 +55,7 @@ class ContractVerifierSpec extends Specification {
project.plugins.apply(SpringCloudContractVerifierGradlePlugin)
expect:
project.tasks.findByName("generateWireMockClientStubs") != null
project.tasks.findByName("generateClientStubs") != null
}
def "should create verifierStubsJar task"() {
@@ -71,7 +71,7 @@ class ContractVerifierSpec extends Specification {
project.plugins.apply(SpringCloudContractVerifierGradlePlugin)
expect:
project.tasks.verifierStubsJar.getDependsOn().contains("generateWireMockClientStubs")
project.tasks.verifierStubsJar.getDependsOn().contains("generateClientStubs")
}
def "should create copyContracts task"() {