diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ConvertMojo.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ConvertMojo.java index a097f94605..10d33c0c26 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ConvertMojo.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/ConvertMojo.java @@ -134,7 +134,7 @@ public class ConvertMojo extends AbstractMojo { this.aetherStubDownloaderFactory, this.repoSession).downloadAndUnpackContractsIfRequired(config, this.contractsDirectory); getLog().info("Directory with contract is present at [" + contractsDirectory + "]"); - new CopyContracts(this.project, this.mavenSession, this.mavenResourcesFiltering) + new CopyContracts(this.project, this.mavenSession, this.mavenResourcesFiltering, config) .copy(contractsDirectory, this.stubsDirectory); config.setContractsDslDir(isInsideProject() ? contractsDirectory : this.source); diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/CopyContracts.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/CopyContracts.java index 6b8e0bafdb..bbbd64c6de 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/CopyContracts.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/main/java/org/springframework/cloud/contract/maven/verifier/CopyContracts.java @@ -28,6 +28,7 @@ import org.apache.maven.shared.filtering.MavenResourcesExecution; import org.apache.maven.shared.filtering.MavenResourcesFiltering; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.cloud.contract.verifier.config.ContractVerifierConfigProperties; class CopyContracts { private static final Logger log = LoggerFactory @@ -35,17 +36,22 @@ class CopyContracts { private final MavenProject project; private final MavenSession mavenSession; private final MavenResourcesFiltering mavenResourcesFiltering; + private final ContractVerifierConfigProperties config; public CopyContracts(MavenProject project, MavenSession mavenSession, - MavenResourcesFiltering mavenResourcesFiltering) { + MavenResourcesFiltering mavenResourcesFiltering, + ContractVerifierConfigProperties config) { this.project = project; this.mavenSession = mavenSession; this.mavenResourcesFiltering = mavenResourcesFiltering; + this.config = config; } public void copy(File contractsDirectory, File outputDirectory) throws MojoExecutionException { - log.info("Copying Spring Cloud Contract Verifier contracts"); + log.info("Copying Spring Cloud Contract Verifier contracts. Only files matching " + + "[" + this.config.getIncludedContracts() + "] pattern will end up in " + + "the final JAR with stubs."); Resource resource = new Resource(); resource.setDirectory(contractsDirectory.getAbsolutePath()); MavenResourcesExecution execution = new MavenResourcesExecution(); diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/PluginUnitTest.java b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/PluginUnitTest.java index 31a9b2f906..19eb0d49e5 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/PluginUnitTest.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/java/org/springframework/cloud/contract/maven/verifier/PluginUnitTest.java @@ -19,8 +19,6 @@ package org.springframework.cloud.contract.maven.verifier; import java.io.File; import org.apache.commons.io.FileUtils; -import org.junit.Assume; -import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -148,6 +146,7 @@ public class PluginUnitTest { File basedir = this.resources.getBasedir("complex-remote-contracts"); this.maven.executeMojo(basedir, "convert", newParameter("contractsRepositoryUrl", "file://" + PluginUnitTest.class.getClassLoader().getResource("m2repo/repository").getFile().replace("/", File.separator))); assertFilesPresent(basedir, "target/stubs/mappings/com/example/server/client1/contracts/shouldMarkClientAsFraud.json"); + assertFilesNotPresent(basedir, "target/stubs/mappings/com/foo/bar/baz/shouldBeIgnoredByPlugin.json"); } @Test @@ -162,6 +161,7 @@ public class PluginUnitTest { File basedir = this.resources.getBasedir("complex-remote-contracts"); this.maven.executeMojo(basedir, "generateTests", newParameter("contractsRepositoryUrl", "file://" + PluginUnitTest.class.getClassLoader().getResource("m2repo/repository").getFile().replace("/", File.separator))); assertFilesPresent(basedir, "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/com/example/server/client1/ContractsTest.java"); + assertFilesNotPresent(basedir, "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/com/foo/bar/BazTest.java"); } @Test diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/complex-remote-contracts/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/complex-remote-contracts/pom.xml index c730b383ef..f38a4fe825 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/complex-remote-contracts/pom.xml +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/complex-remote-contracts/pom.xml @@ -21,7 +21,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.example + com.example.foo.bar.baz someartifact 0.1.BUILD-SNAPSHOT diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/resources/m2repo/repository/com/example/contracts/0.0.1-SNAPSHOT/contracts-0.0.1-SNAPSHOT.jar b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/resources/m2repo/repository/com/example/contracts/0.0.1-SNAPSHOT/contracts-0.0.1-SNAPSHOT.jar index 4e3d44862b..623f11fff4 100644 Binary files a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/resources/m2repo/repository/com/example/contracts/0.0.1-SNAPSHOT/contracts-0.0.1-SNAPSHOT.jar and b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/resources/m2repo/repository/com/example/contracts/0.0.1-SNAPSHOT/contracts-0.0.1-SNAPSHOT.jar differ diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/TestGenerator.groovy b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/TestGenerator.groovy index c81afc29e8..60ad94a94a 100755 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/TestGenerator.groovy +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/TestGenerator.groovy @@ -58,7 +58,8 @@ class TestGenerator { this.saver = saver contractFileScanner = new ContractFileScanner(configProperties.contractsDslDir, configProperties.excludedFiles as Set, - configProperties.ignoredFiles as Set) + configProperties.ignoredFiles as Set, + this.configProperties.includedContracts) } int generate() {