Fixed checking projects from root
without this change contracts are taken from a wrong directory and they tend to be always up to date in a multi module project with this change we check the contract sources from the current project. also we've removed the up to date check fixes #159
This commit is contained in:
@@ -19,14 +19,12 @@ package org.springframework.cloud.contract.verifier.plugin
|
||||
import org.gradle.api.GradleException
|
||||
import org.gradle.api.Task
|
||||
import org.gradle.api.internal.ConventionTask
|
||||
import org.gradle.api.tasks.OutputDirectory
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import org.springframework.cloud.contract.spec.ContractVerifierException
|
||||
import org.springframework.cloud.contract.verifier.TestGenerator
|
||||
import org.springframework.cloud.contract.verifier.config.ContractVerifierConfigProperties
|
||||
|
||||
import static org.springframework.cloud.contract.verifier.plugin.SpringCloudContractVerifierGradlePlugin.COPY_CONTRACTS_TASK_NAME
|
||||
|
||||
/**
|
||||
* Task used to generate server side tests
|
||||
*
|
||||
@@ -34,7 +32,6 @@ import static org.springframework.cloud.contract.verifier.plugin.SpringCloudCont
|
||||
*/
|
||||
class GenerateServerTestsTask extends ConventionTask {
|
||||
|
||||
@OutputDirectory
|
||||
File generatedTestSourcesDir
|
||||
|
||||
//TODO: How to deal with @Input*, @Output* and that domain object?
|
||||
@@ -43,6 +40,7 @@ class GenerateServerTestsTask extends ConventionTask {
|
||||
|
||||
@TaskAction
|
||||
void generate() {
|
||||
logger.info("Generated test sources dir [${getGeneratedTestSourcesDir()}]")
|
||||
Task copyContractsTask = project.getTasksByName(COPY_CONTRACTS_TASK_NAME, false).first()
|
||||
ContractVerifierConfigProperties props = props(copyContractsTask)
|
||||
File contractsDslDir = contractsDslDir(copyContractsTask, props)
|
||||
@@ -82,7 +80,7 @@ class GenerateServerTestsTask 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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,14 +18,12 @@ package org.springframework.cloud.contract.verifier.plugin
|
||||
|
||||
import org.gradle.api.Task
|
||||
import org.gradle.api.internal.ConventionTask
|
||||
import org.gradle.api.tasks.OutputDirectory
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import org.springframework.cloud.contract.verifier.config.ContractVerifierConfigProperties
|
||||
import org.springframework.cloud.contract.verifier.wiremock.DslToWireMockClientConverter
|
||||
import org.springframework.cloud.contract.verifier.wiremock.RecursiveFilesConverter
|
||||
|
||||
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
|
||||
@@ -36,7 +34,6 @@ class GenerateWireMockClientStubsFromDslTask extends ConventionTask {
|
||||
|
||||
private static final String DEFAULT_MAPPINGS_FOLDER = 'mappings'
|
||||
|
||||
@OutputDirectory
|
||||
File stubsOutputDir
|
||||
|
||||
ContractVerifierExtension configProperties
|
||||
@@ -44,6 +41,7 @@ class GenerateWireMockClientStubsFromDslTask extends ConventionTask {
|
||||
|
||||
@TaskAction
|
||||
void generate() {
|
||||
logger.info("Stubs output dir [${getStubsOutputDir()}")
|
||||
Task copyContractsTask = project.getTasksByName(COPY_CONTRACTS_TASK_NAME, false).first()
|
||||
ContractVerifierConfigProperties props = props(copyContractsTask)
|
||||
File contractsDslDir = contractsDslDir(copyContractsTask, props)
|
||||
@@ -74,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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,12 +99,12 @@ class SpringCloudContractVerifierGradlePlugin implements Plugin<Project> {
|
||||
generatedTestSourcesDir = generatedTestSourcesDir ?: project.file("${project.buildDir}/generated-test-sources/contracts")
|
||||
contractsDslDir = contractsDslDir ?: defaultContractsDir() //TODO: Use sourceset
|
||||
basePackageForTests = basePackageForTests ?: 'org.springframework.cloud.contract.verifier.tests'
|
||||
stubsOutputDir = stubsOutputDir ?: project.file("${project.buildDir}/stubs")
|
||||
stubsOutputDir = stubsOutputDir ?: project.file("${project.buildDir}/stubs/")
|
||||
}
|
||||
}
|
||||
|
||||
private File defaultContractsDir() {
|
||||
return project.file("${project.rootDir}/src/test/resources/contracts")
|
||||
return project.file("${project.projectDir}/src/test/resources/contracts")
|
||||
}
|
||||
|
||||
private void createGenerateTestsTask(ContractVerifierExtension extension, Task copyContracts) {
|
||||
|
||||
Reference in New Issue
Block a user