Bumped up version and polished
This commit is contained in:
committed by
Marcin Grzejszczak
parent
96525b2ad5
commit
d69670db68
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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") }
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"() {
|
||||
|
||||
@@ -1 +1 @@
|
||||
server.port=8085
|
||||
server.port=0
|
||||
@@ -1 +1 @@
|
||||
server.port=8094
|
||||
server.port=0
|
||||
@@ -1 +1 @@
|
||||
server.port=8085
|
||||
server.port=0
|
||||
@@ -1 +1 @@
|
||||
server.port=8091
|
||||
server.port=0
|
||||
@@ -1 +1 @@
|
||||
server.port=8085
|
||||
server.port=0
|
||||
@@ -1 +1 @@
|
||||
server.port=8092
|
||||
server.port=0
|
||||
Reference in New Issue
Block a user