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:
Marcin Grzejszczak
2016-12-20 19:12:06 +01:00
parent 40f335da21
commit 8951ea554f
3 changed files with 6 additions and 10 deletions

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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) {