From 8951ea554f68cc5e809c63c4d7e9ab60f5682363 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Tue, 20 Dec 2016 19:12:06 +0100 Subject: [PATCH] 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 --- .../contract/verifier/plugin/GenerateServerTestsTask.groovy | 6 ++---- .../plugin/GenerateWireMockClientStubsFromDslTask.groovy | 6 ++---- .../plugin/SpringCloudContractVerifierGradlePlugin.groovy | 4 ++-- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/GenerateServerTestsTask.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/GenerateServerTestsTask.groovy index 1a8abd048b..3801570748 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/GenerateServerTestsTask.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/GenerateServerTestsTask.groovy @@ -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 } } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/GenerateWireMockClientStubsFromDslTask.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/GenerateWireMockClientStubsFromDslTask.groovy index a0cebdab0f..4dde86992a 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/GenerateWireMockClientStubsFromDslTask.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/GenerateWireMockClientStubsFromDslTask.groovy @@ -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 } } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.groovy index dc89646269..0353a4c03f 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.groovy @@ -99,12 +99,12 @@ class SpringCloudContractVerifierGradlePlugin implements Plugin { 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) {