diff --git a/multi/multi__customization.html b/multi/multi__customization.html index 6e067f360c..80d3ac0313 100644 --- a/multi/multi__customization.html +++ b/multi/multi__customization.html @@ -1,6 +1,6 @@
-![]() | Important |
|---|---|
This section is valid only for Groovy DSL |
You can customize the Spring Cloud Contract Verifier by extending the DSL, as shown in +
![]() | Important |
|---|---|
This section is valid only for Groovy DSL |
You can customize the Spring Cloud Contract Verifier by extending the DSL, as shown in the remainder of this section.
You can provide your own functions to the DSL. The key requirement for this feature is to maintain the static compatibility. Later in this document, you can see examples of:
You can find the full example here.
The following examples show three classes that can be reused in the DSLs.
PatternUtils contains functions used by both the consumer and the producer.
package com.example; @@ -135,7 +135,7 @@ maintain the static compatibility. Later in this document, you can see examples } } //end::impl[]
In order for the plugins and IDE to be able to reference the common JAR classes, you need -to pass the dependency to your project.
First, add the common jar dependency as a test dependency. Because your contracts files +to pass the dependency to your project.
First, add the common jar dependency as a test dependency. Because your contracts files are available on the test resources path, the common jar classes automatically become visible in your Groovy files. The following examples show how to test the dependency:
Maven.
<dependency> @@ -146,7 +146,7 @@ visible in your Groovy files. The following examples show how to test the depend </dependency>
Gradle.
testCompile("com.example:beer-common:0.0.1-SNAPSHOT")-
Now, you must add the dependency for the plugin to reuse at runtime, as shown in the +
Now, you must add the dependency for the plugin to reuse at runtime, as shown in the following example:
Maven.
<plugin> <groupId>org.springframework.cloud</groupId> diff --git a/multi/multi__links.html b/multi/multi__links.html index b8e41fb657..fb9dc1b235 100644 --- a/multi/multi__links.html +++ b/multi/multi__links.html @@ -1,6 +1,6 @@ -13. Links The following links may be helpful when working with Spring Cloud Contract:
- Spring Cloud Contract Github +
13. Links \ No newline at end of file diff --git a/multi/multi__migrations.html b/multi/multi__migrations.html index 9d777b3c08..1151a82dcb 100644 --- a/multi/multi__migrations.html +++ b/multi/multi__migrations.html @@ -1,6 +1,6 @@ -The following links may be helpful when working with Spring Cloud Contract:
12. Migrations
Tip For up to date migration guides please visit +
12. Migrations
Tip For up to date migration guides please visit the project’s wiki page.
This section covers migrating from one version of Spring Cloud Contract Verifier to the next version. It covers the following versions upgrade paths:
This section covers upgrading from version 1.0 to version 1.1.
In
1.1.xwe have introduced a change to the structure of generated stubs. If you have been using the@AutoConfigureWireMocknotation to use the stubs from the classpath, @@ -80,7 +80,7 @@ structure presented in the previous snippet.Maven.&nbs from "${project.buildDir}/resources/main/customer-stubs/META-INF/${project.group}/${project.name}/${project.version}" into "${project.buildDir}/resources/main/customer-stubs" }
-
This section covers upgrading from version 1.1 to version 1.2.
This section covers upgrading from version 1.1 to version 1.2.
HttpServerStubincludes a method that was not in version 1.1. The method isString registeredMappings()If you have classes that implementHttpServerStub, you now have to implement theregisteredMappings()method. It should return aStringrepresenting all mappings available in a singleHttpServerStub.See issue 355 for more diff --git a/multi/multi__spring_cloud_contract.html b/multi/multi__spring_cloud_contract.html index 5bc65829c1..548bc7417a 100644 --- a/multi/multi__spring_cloud_contract.html +++ b/multi/multi__spring_cloud_contract.html @@ -1,6 +1,6 @@
-1. Spring Cloud Contract You need confidence when pushing new features to a new application or service in a +
1. Spring Cloud Contract You need confidence when pushing new features to a new application or service in a distributed system. This project provides support for Consumer Driven Contracts and service schemas in Spring applications (for both HTTP and message-based interactions), covering a range of options for writing tests, publishing them as assets, and asserting diff --git a/multi/multi__spring_cloud_contract_faq.html b/multi/multi__spring_cloud_contract_faq.html index 42f390b2e1..d1e592fc75 100644 --- a/multi/multi__spring_cloud_contract_faq.html +++ b/multi/multi__spring_cloud_contract_faq.html @@ -1,8 +1,8 @@
-3. Spring Cloud Contract FAQ For the time being Spring Cloud Contract is a JVM based tool. So it could be your first pick when you’re already creating +
3. Spring Cloud Contract FAQ For the time being Spring Cloud Contract is a JVM based tool. So it could be your first pick when you’re already creating software for the JVM. This project has a lot of really interesting features but especially quite a few of them definitely make -Spring Cloud Contract Verifier stand out on the "market" of Consumer Driven Contract (CDC) tooling. Out of many the most interesting are:
- Possibility to do CDC with messaging
- Clear and easy to use, statically typed DSL
- Possibility to copy paste your current JSON file to the contract and only edit its elements
- Automatic generation of tests from the defined Contract
- Stub Runner functionality - the stubs are automatically downloaded at runtime from Nexus / Artifactory
- Spring Cloud integration - no discovery service is needed for integration tests
- Spring Cloud Contract integrates with Pact out of the box and provides easy hooks to extend its functionality
- Via Docker adds support for any language & framework used
One of the biggest challenges related to stubs is their reusability. Only if they can be vastly used, will they serve their purpose. +Spring Cloud Contract Verifier stand out on the "market" of Consumer Driven Contract (CDC) tooling. Out of many the most interesting are:
- Possibility to do CDC with messaging
- Clear and easy to use, statically typed DSL
- Possibility to copy paste your current JSON file to the contract and only edit its elements
- Automatic generation of tests from the defined Contract
- Stub Runner functionality - the stubs are automatically downloaded at runtime from Nexus / Artifactory
- Spring Cloud integration - no discovery service is needed for integration tests
- Spring Cloud Contract integrates with Pact out of the box and provides easy hooks to extend its functionality
- Via Docker adds support for any language & framework used
One of the biggest challenges related to stubs is their reusability. Only if they can be vastly used, will they serve their purpose. What typically makes that difficult are the hard-coded values of request / response elements. For example dates or ids. Imagine the following JSON request
{ "time" : "2016-10-10 20:10:15", @@ -357,7 +357,7 @@ configurations { deleteUnwantedContracts.dependsOn("unzipContracts") build.dependsOn("deleteUnwantedContracts")
- Configure plugin by specifying the directory containing contracts using
contractsDslDirpropertycontracts { contractsDslDir = new File("${buildDir}/unpackedContracts") -}In the polyglot world, there are languages that don’t use binary storages like Artifactory or Nexus. Starting from Spring Cloud Contract version 2.0.0 we provide mechanisms to store contracts and stubs in a SCM repository. Currently the only supported SCM is Git.
The repository would have to the following setup @@ -599,7 +599,7 @@ with
pact://protocol. E.g.p @StubRunnerPort("beer-api-producer-pact") int producerPort; //... }With such a setup:
- Pact files will be downloaded from the Pact Broker
- Spring Cloud Contract will convert the Pact files into stub definitions
- The stub servers will be started and fed with stubs
For more information about Pact support you can go to -the Section 10.7, “Using the Pact Stub Downloader” section.
The generated tests all boil down to RestAssured in some form or fashion which relies on Apache HttpClient. HttpClient has a facility called wire logging which logs the entire request and response to HttpClient. Spring Boot has a logging common application property for doing this sort of thing, just add this to your application properties
logging.level.org.apache.http.wire=DEBUGStarting from version
1.2.0we turn on WireMock logging to +the Section 10.7, “Using the Pact Stub Downloader” section.The generated tests all boil down to RestAssured in some form or fashion which relies on Apache HttpClient. HttpClient has a facility called wire logging which logs the entire request and response to HttpClient. Spring Boot has a logging common application property for doing this sort of thing, just add this to your application properties
logging.level.org.apache.http.wire=DEBUGStarting from version
1.2.0we turn on WireMock logging to info and the WireMock notifier to being verbose. Now you will exactly know what request was received by WireMock server and which matching response definition was picked.To turn off this feature just bump WireMock logging to
ERRORlogging.level.com.github.tomakehurst.wiremock=ERRORYou can use the
-mappingsOutputFolderproperty on@AutoConfigureStubRunnerorStubRunnerRulediff --git a/multi/multi__spring_cloud_contract_stub_runner.html b/multi/multi__spring_cloud_contract_stub_runner.html index f821d04835..4b7720c6f5 100644 --- a/multi/multi__spring_cloud_contract_stub_runner.html +++ b/multi/multi__spring_cloud_contract_stub_runner.html @@ -1,6 +1,6 @@6. Spring Cloud Contract Stub Runner One of the issues that you might encounter while using Spring Cloud Contract Verifier is +
6. Spring Cloud Contract Stub Runner One of the issues that you might encounter while using Spring Cloud Contract Verifier is passing the generated WireMock JSON stubs from the server side to the client side (or to various clients). The same takes place in terms of client-side generation for messaging.
Copying the JSON files and setting the client side for messaging manually is out of the question. That is why we introduced Spring Cloud Contract Stub Runner. It can @@ -465,7 +465,8 @@ its methods as presented below:
@Configuration @EnableAutoConfiguration static class Config {} -}for the following configuration file:
stubrunner: +} +// end::test[]for the following configuration file:
stubrunner: repositoryRoot: classpath:m2repo/repository/ ids: - org.springframework.cloud.contract.verifier.stubs:loanIssuance @@ -496,7 +497,8 @@ orDiscoveryClientdirectly, to call those stubbed }for the following configuration file
stubrunner: idsToServiceIds: ivyNotation: someValueInsideYourCode - fraudDetectionServer: someNameThatShouldMapFraudDetectionServerdiff --git a/spring-cloud-contract-maven-plugin/plugins.html b/spring-cloud-contract-maven-plugin/plugins.html index 0b033798e5..9e1b392139 100644 --- a/spring-cloud-contract-maven-plugin/plugins.html +++ b/spring-cloud-contract-maven-plugin/plugins.html @@ -1,13 +1,13 @@ - +In your integration tests you typically don’t want to call neither a discovery service (e.g. Eureka) + fraudDetectionServer: someNameThatShouldMapFraudDetectionServer +# end::ids[]
In your integration tests you typically don’t want to call neither a discovery service (e.g. Eureka) or Config Server. That’s why you create an additional test configuration in which you want to disable these features.
Due to certain limitations of
spring-cloud-commonsto achieve this you have disable these properties via a static block like presented below (example for Eureka)//Hack to work around https://github.com/spring-cloud/spring-cloud-commons/issues/156 @@ -695,10 +697,10 @@ Or set the test as follows:foo-consumer in its name (i.e. those from thesrc/test/resources/contracts/foo-consumer/some/contracts/…folder) will be allowed to be referenced.You can check out issue 224 for more information about the reasons behind this change.
This section briefly describes common properties, including:
You can set repetitive properties by using system properties or Spring configuration -properties. Here are their names with their default values:
Property name Default value Description stubrunner.minPort
10000
Minimum value of a port for a started WireMock with stubs.
stubrunner.maxPort
15000
Maximum value of a port for a started WireMock with stubs.
stubrunner.repositoryRoot
Maven repo URL. If blank, then call the local maven repo.
stubrunner.classifier
stubs
Default classifier for the stub artifacts.
stubrunner.stubsMode
CLASSPATH
The way you want to fetch and register the stubs
stubrunner.ids
Array of Ivy notation stubs to download.
stubrunner.username
Optional username to access the tool that stores the JARs with -stubs.
stubrunner.password
Optional password to access the tool that stores the JARs with -stubs.
stubrunner.stubsPerConsumer
false
Set to
trueif you want to use different stubs for -each consumer instead of registering all stubs for every consumer.stubrunner.consumerName
If you want to use a stub for each consumer and want to +properties. Here are their names with their default values:
Property name Default value Description stubrunner.minPort
10000
Minimum value of a port for a started WireMock with stubs.
stubrunner.maxPort
15000
Maximum value of a port for a started WireMock with stubs.
stubrunner.repositoryRoot
Maven repo URL. If blank, then call the local maven repo.
stubrunner.classifier
stubs
Default classifier for the stub artifacts.
stubrunner.stubsMode
CLASSPATH
The way you want to fetch and register the stubs
stubrunner.ids
Array of Ivy notation stubs to download.
stubrunner.username
Optional username to access the tool that stores the JARs with +stubs.
stubrunner.password
Optional password to access the tool that stores the JARs with +stubs.
stubrunner.stubsPerConsumer
false
Set to
trueif you want to use different stubs for +each consumer instead of registering all stubs for every consumer.stubrunner.consumerName
If you want to use a stub for each consumer and want to override the consumer name just change this value.
You can provide the stubs to download via the
stubrunner.idssystem property. They follow this pattern:groupId:artifactId:version:classifier:portNote that
version,classifierandportare optional.
- If you do not provide the
port, a random one will be picked.- If you do not provide the
classifier, the default is used. (Note that you can pass an empty classifier this way:groupId:artifactId:version:).- If you do not provide the
version, then the+will be passed and the latest one is diff --git a/multi/multi__spring_cloud_contract_verifier_introduction.html b/multi/multi__spring_cloud_contract_verifier_introduction.html index 54af6d63f2..945b7fdded 100644 --- a/multi/multi__spring_cloud_contract_verifier_introduction.html +++ b/multi/multi__spring_cloud_contract_verifier_introduction.html @@ -1,6 +1,6 @@ -2. Spring Cloud Contract Verifier Introduction Spring Cloud Contract Verifier enables Consumer Driven Contract (CDC) development of +
2. Spring Cloud Contract Verifier Introduction Spring Cloud Contract Verifier enables Consumer Driven Contract (CDC) development of JVM-based applications. It moves TDD to the level of software architecture.
Spring Cloud Contract Verifier ships with Contract Definition Language (CDL). Contract definitions are used to produce the following resources:
- JSON stub definitions to be used by WireMock when doing integration testing on the client code (client tests). Test code must still be written by hand, and test data is diff --git a/multi/multi__spring_cloud_contract_verifier_messaging.html b/multi/multi__spring_cloud_contract_verifier_messaging.html index f3d1e8107d..ac737623be 100644 --- a/multi/multi__spring_cloud_contract_verifier_messaging.html +++ b/multi/multi__spring_cloud_contract_verifier_messaging.html @@ -1,6 +1,6 @@ -
5. Spring Cloud Contract Verifier Messaging Spring Cloud Contract Verifier lets you verify applications that use messaging as a +
5. Spring Cloud Contract Verifier Messaging Spring Cloud Contract Verifier lets you verify applications that use messaging as a means of communication. All of the integrations shown in this document work with Spring, but you can also create one of your own and use that.
You can use one of the following four integration configurations:
- Apache Camel
- Spring Integration
- Spring Cloud Stream
- Spring AMQP
Since we use Spring Boot, if you have added one of these libraries to the classpath, all the messaging configuration is automatically set up.
+
Important Remember to put
-@AutoConfigureMessageVerifieron the base class of your diff --git a/multi/multi__spring_cloud_contract_verifier_setup.html b/multi/multi__spring_cloud_contract_verifier_setup.html index 52e96eb960..ab2c443be2 100644 --- a/multi/multi__spring_cloud_contract_verifier_setup.html +++ b/multi/multi__spring_cloud_contract_verifier_setup.html @@ -1,6 +1,6 @@4. Spring Cloud Contract Verifier Setup You can set up Spring Cloud Contract Verifier in the following ways:
diff --git a/spring-cloud-contract-maven-plugin/checkstyle.rss b/spring-cloud-contract-maven-plugin/checkstyle.rss index 6713ab69b6..3a5da98b7a 100644 --- a/spring-cloud-contract-maven-plugin/checkstyle.rss +++ b/spring-cloud-contract-maven-plugin/checkstyle.rss @@ -26,7 +26,7 @@ under the License.To learn how to set up the Gradle project for Spring Cloud Contract Verifier, read the +
4. Spring Cloud Contract Verifier Setup You can set up Spring Cloud Contract Verifier in the following ways:
To learn how to set up the Gradle project for Spring Cloud Contract Verifier, read the following sections:
- Section 4.1.1, “Prerequisites”
- Section 4.1.2, “Add Gradle Plugin with Dependencies”
- Section 4.1.3, “Gradle and Rest Assured 2.0”
- Section 4.1.4, “Snapshot Versions for Gradle”
- Section 4.1.5, “Add stubs”
- Section 4.1.7, “Default Setup”
- Section 4.1.8, “Configure Plugin”
- Section 4.1.9, “Configuration Options”
- Section 4.1.10, “Single Base Class for All Tests”
- Section 4.1.11, “Different Base Classes for Contracts”
- Section 4.1.12, “Invoking Generated Tests”
- Section 4.1.13, “Pushing stubs to SCM”
- Section 4.1.14, “Spring Cloud Contract Verifier on the Consumer Side”
In order to use Spring Cloud Contract Verifier with WireMock, you muse use either a Gradle or a Maven plugin.
+
Warning + If you want to use Spock in your projects, you must add separately the
spock-coreandspock-springmodules. Check Spock @@ -580,46 +580,7 @@ verification tests with both Maven and Gradle plugin. However, whereas with Grad in Maven you will require some additional setup in order to make the tests compile and execute properly.First of all, you will have to use a plugin, such as GMavenPlus plugin, to add Groovy to your project. In GMavenPlus plugin, you will need to explicitly set test sources, including both the path where your base test classes are defined and the path were the generated contract tests are added. -Please refer to the example below:
<plugin> - <groupId>org.codehaus.gmavenplus</groupId> - <artifactId>gmavenplus-plugin</artifactId> - <version>1.6.1</version> - <executions> - <execution> - <goals> - <goal>compileTests</goal> - <goal>addTestSources</goal> - </goals> - </execution> - </executions> - <configuration> - <testSources> - <testSource> - <directory>${project.basedir}/src/test/groovy</directory> - <includes> - <include>**/*.groovy</include> - </includes> - </testSource> - <testSource> - <directory> - ${project.basedir}/target/generated-test-sources/contracts/com/example/beer - </directory> - <includes> - <include>**/*.groovy</include> - <include>**/*.gvy</include> - </includes> - </testSource> - </testSources> - </configuration> - <dependencies> - <dependency> - <groupId>org.codehaus.groovy</groupId> - <artifactId>groovy-all</artifactId> - <version>2.4.15</version> - <scope>runtime</scope> - <type>pom</type> - </dependency> - </dependencies>If you uphold to the Spock convention of ending the test class names with
Spec, you will also need to adjust your Maven +Please refer to the example below:If you uphold to the Spock convention of ending the test class names with
Spec, you will also need to adjust your Maven Surefire plugin setup, like in the following example:\ No newline at end of file diff --git a/multi/multi_pr01.html b/multi/multi_pr01.html index 50a4aac2e2..1a07ca9a53 100644 --- a/multi/multi_pr01.html +++ b/multi/multi_pr01.html @@ -1,4 +1,4 @@ -The Maven and Gradle plugin that add the tasks that create the stubs jar for you. One problem that arises is that, when reusing the stubs, you can mistakenly import all of that stub’s dependencies. When building a Maven artifact, even though you have a couple diff --git a/multi/multi__spring_cloud_contract_wiremock.html b/multi/multi__spring_cloud_contract_wiremock.html index a0a82e14d5..ab7fe3047c 100644 --- a/multi/multi__spring_cloud_contract_wiremock.html +++ b/multi/multi__spring_cloud_contract_wiremock.html @@ -1,6 +1,6 @@
-11. Spring Cloud Contract WireMock \ No newline at end of file diff --git a/multi/multi_contract-dsl.html b/multi/multi_contract-dsl.html index 15b9c76cad..97bad0c2db 100644 --- a/multi/multi_contract-dsl.html +++ b/multi/multi_contract-dsl.html @@ -1,6 +1,6 @@ -The Spring Cloud Contract WireMock modules let you use WireMock in a +
11. Spring Cloud Contract WireMock The Spring Cloud Contract WireMock modules let you use WireMock in a Spring Boot application. Check out the samples for more details.
If you have a Spring Boot application that uses Tomcat as an embedded server (which is @@ -25,7 +25,8 @@ your test. The following code shows an example:
< assertThat(this.service.go()).isEqualTo("Hello World!"); } -}To start the stub server on a different port use (for example), +} +//end::wiremock_test2[]
To start the stub server on a different port use (for example),
@AutoConfigureWireMock(port=9999). For a random port, use a value of0. The stub server port can be bound in the test application context with the "wiremock.server.port" property. Using@AutoConfigureWireMockadds a bean of typeWiremockConfigurationto @@ -85,7 +86,8 @@ instance, as shown in the following example:assertThat(this.service.go()).isEqualTo("Hello World!"); } -}The
@ClassRulemeans that the server shuts down after all the methods in this class +} +//end::wiremock_test2[]The
@ClassRulemeans that the server shuts down after all the methods in this class have been run.WireMock lets you stub a "secure" server with an "https" URL protocol. If your application wants to contact that stub server in an integration test, it will find that the SSL certificates are not valid (the usual problem with self-installed certificates). diff --git a/multi/multi__using_the_pluggable_architecture.html b/multi/multi__using_the_pluggable_architecture.html index 9319ea652b..7cbc5769a8 100644 --- a/multi/multi__using_the_pluggable_architecture.html +++ b/multi/multi__using_the_pluggable_architecture.html @@ -1,6 +1,6 @@
-10. Using the Pluggable Architecture \ No newline at end of file +propertiesYou may encounter cases where you have your contracts have been defined in other formats, +
10. Using the Pluggable Architecture You may encounter cases where you have your contracts have been defined in other formats, such as YAML, RAML or PACT. In those cases, you still want to benefit from the automatic generation of tests and stubs. You can add your own implementation for generating both tests and stubs. Also, you can customize the way tests are generated (for example, you @@ -422,36 +422,10 @@ to clone the repository and use it as a source of contracts to generate tests or stubs.
Either via environment variables, system properties, properties set inside the plugin or contracts repository configuration you can tweak the downloader’s behaviour. Below you can find the list of -properties
Table 10.1. SCM Stub Downloader properties
Type of a property
Name of the property
Description
*
git.branch(plugin prop) -*
stubrunner.properties.git.branch(system prop) -*
STUBRUNNER_PROPERTIES_GIT_BRANCH(env prop)master
Which branch to checkout
*
git.username(plugin prop) -*
stubrunner.properties.git.username(system prop) -*
STUBRUNNER_PROPERTIES_GIT_USERNAME(env prop)Git clone username
*
git.password(plugin prop) -*
stubrunner.properties.git.password(system prop) -*
STUBRUNNER_PROPERTIES_GIT_PASSWORD(env prop)Git clone password
*
git.no-of-attempts(plugin prop) -*
stubrunner.properties.git.no-of-attempts(system prop) -*
STUBRUNNER_PROPERTIES_GIT_NO_OF_ATTEMPTS(env prop)10
Number of attempts to push the commits to
origin*
git.wait-between-attempts(Plugin prop) -*
stubrunner.properties.git.wait-between-attempts(system prop) -*
STUBRUNNER_PROPERTIES_GIT_WAIT_BETWEEN_ATTEMPTS(env prop)1000
Number of millis to wait between attempts to push the commits to
originWhenever the
repositoryRootstarts with a Pact protocol +propertiesTable 10.1. SCM Stub Downloader properties
Type of a property
Name of the property
Description
*
git.branch(plugin prop)*
stubrunner.properties.git.branch(system prop)*
STUBRUNNER_PROPERTIES_GIT_BRANCH(env prop)master
Which branch to checkout
*
git.username(plugin prop)*
stubrunner.properties.git.username(system prop)*
STUBRUNNER_PROPERTIES_GIT_USERNAME(env prop)Git clone username
*
git.password(plugin prop)*
stubrunner.properties.git.password(system prop)*
STUBRUNNER_PROPERTIES_GIT_PASSWORD(env prop)Git clone password
*
git.no-of-attempts(plugin prop)*
stubrunner.properties.git.no-of-attempts(system prop)*
STUBRUNNER_PROPERTIES_GIT_NO_OF_ATTEMPTS(env prop)10
Number of attempts to push the commits to
origin*
git.wait-between-attempts(Plugin prop)*
stubrunner.properties.git.wait-between-attempts(system prop)*
STUBRUNNER_PROPERTIES_GIT_WAIT_BETWEEN_ATTEMPTS(env prop)1000
Number of millis to wait between attempts to push the commits to
originWhenever the
repositoryRootstarts with a Pact protocol (starts withpact://), the stub downloader will try to fetch the Pact contract definitions from the Pact Broker. Whatever is set afterpact://will be parsed as the Pact Broker URL.Either via environment variables, system properties, properties set inside the plugin or contracts repository configuration you can tweak the downloader’s behaviour. Below you can find the list of -properties
Table 10.2. SCM Stub Downloader properties
Name of a property
Default
Description
*
pactbroker.host(plugin prop) -*
stubrunner.properties.pactbroker.host(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_HOST(env prop)Host from URL passed to
repositoryRootWhat is the URL of Pact Broker
*
pactbroker.port(plugin prop) -*
stubrunner.properties.pactbroker.port(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_PORT(env prop)Port from URL passed to
repositoryRootWhat is the port of Pact Broker
*
pactbroker.protocol(plugin prop) -*
stubrunner.properties.pactbroker.protocol(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_PROTOCOL(env prop)Protocol from URL passed to
repositoryRootWhat is the protocol of Pact Broker
*
pactbroker.tags(plugin prop) -*
stubrunner.properties.pactbroker.tags(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_TAGS(env prop)Version of the stub, or
latestif version is+What tags should be used to fetch the stub
*
pactbroker.auth.scheme(plugin prop) -*
stubrunner.properties.pactbroker.auth.scheme(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_AUTH_SCHEME(env prop)
BasicWhat kind of authentication should be used to connect to the Pact Broker
*
pactbroker.auth.username(plugin prop) -*
stubrunner.properties.pactbroker.auth.username(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_AUTH_USERNAME(env prop)The username passed to
contractsRepositoryUsername(maven) orcontractRepository.username(gradle)Username used to connect to the Pact Broker
*
pactbroker.auth.password(plugin prop) -*
stubrunner.properties.pactbroker.auth.password(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_AUTH_PASSWORD(env prop)The password passed to
contractsRepositoryPassword(maven) orcontractRepository.password(gradle)Password used to connect to the Pact Broker
*
pactbroker.provider-name-with-group-id(plugin prop) -*
stubrunner.properties.pactbroker.provider-name-with-group-id(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_PROVIDER_NAME_WITH_GROUP_ID(env prop)false
When
true, the provider name will be a combination ofgroupId:artifactId. Iffalse, justartifactIdis usedTable 10.2. SCM Stub Downloader properties
Name of a property
Default
Description
*
pactbroker.host(plugin prop)*
stubrunner.properties.pactbroker.host(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_HOST(env prop)Host from URL passed to
repositoryRootWhat is the URL of Pact Broker
*
pactbroker.port(plugin prop)*
stubrunner.properties.pactbroker.port(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_PORT(env prop)Port from URL passed to
repositoryRootWhat is the port of Pact Broker
*
pactbroker.protocol(plugin prop)*
stubrunner.properties.pactbroker.protocol(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_PROTOCOL(env prop)Protocol from URL passed to
repositoryRootWhat is the protocol of Pact Broker
*
pactbroker.tags(plugin prop)*
stubrunner.properties.pactbroker.tags(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_TAGS(env prop)Version of the stub, or
latestif version is+What tags should be used to fetch the stub
*
pactbroker.auth.scheme(plugin prop)*
stubrunner.properties.pactbroker.auth.scheme(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_AUTH_SCHEME(env prop)
BasicWhat kind of authentication should be used to connect to the Pact Broker
*
pactbroker.auth.username(plugin prop)*
stubrunner.properties.pactbroker.auth.username(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_AUTH_USERNAME(env prop)The username passed to
contractsRepositoryUsername(maven) orcontractRepository.username(gradle)Username used to connect to the Pact Broker
*
pactbroker.auth.password(plugin prop)*
stubrunner.properties.pactbroker.auth.password(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_AUTH_PASSWORD(env prop)The password passed to
contractsRepositoryPassword(maven) orcontractRepository.password(gradle)Password used to connect to the Pact Broker
*
pactbroker.provider-name-with-group-id(plugin prop)*
stubrunner.properties.pactbroker.provider-name-with-group-id(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_PROVIDER_NAME_WITH_GROUP_ID(env prop)false
When
true, the provider name will be a combination ofgroupId:artifactId. Iffalse, justartifactIdis used8. Contract DSL \ No newline at end of file +} +// end::base_class[]Spring Cloud Contract supports out of the box 2 types of DSL. One written in +
8. Contract DSL Spring Cloud Contract supports out of the box 2 types of DSL. One written in
Groovyand one written inYAML.If you decide to write the contract in Groovy, do not be alarmed if you have not used Groovy before. Knowledge of the language is not really needed, as the Contract DSL uses only a tiny subset of it (only literals, method calls and closures). Also, the DSL is statically @@ -1957,7 +1957,8 @@ testCompile 'org protected void assertThatRejectionReasonIsNull(Object rejectionReason) { assert rejectionReason == null; } -}
In case you are using the standalone setup, you can set up RestAssuredMockMvc like this:
package com.example.fraud; +} +// end::base_class[]In case you are using the standalone setup, you can set up RestAssuredMockMvc like this:
package com.example.fraud; import io.restassured.module.mockmvc.RestAssuredMockMvc; import org.junit.Before; @@ -1985,4 +1986,5 @@ testCompile 'org .alwaysDo(document(getClass().getSimpleName() + "_" + testName.getMethodName()))); } -}
Tip You don’t need to specify the output directory for the generated snippets since version 1.2.0.RELEASE of Spring REST Docs.
Tip You don’t need to specify the output directory for the generated snippets since version 1.2.0.RELEASE of Spring REST Docs.
Documentation Authors: Adam Dudczak, Mathias Düsterhöft, Marcin Grzejszczak, Dennis Kieselhorst, Jakub Kubryński, Karol Lassak, +
\ No newline at end of file diff --git a/multi/multi_spring-cloud-contract.html b/multi/multi_spring-cloud-contract.html index 0eb6314d5c..a585bc35f7 100644 --- a/multi/multi_spring-cloud-contract.html +++ b/multi/multi_spring-cloud-contract.html @@ -1,3 +1,3 @@ -Documentation Authors: Adam Dudczak, Mathias Düsterhöft, Marcin Grzejszczak, Dennis Kieselhorst, Jakub Kubryński, Karol Lassak, Olga Maciaszek-Sharma, Mariusz Smykuła, Dave Syer, Jay Bryant
2.1.0.BUILD-SNAPSHOT
Spring Cloud Contract \ No newline at end of file +Table of Contents
- 1. Spring Cloud Contract
- 2. Spring Cloud Contract Verifier Introduction
- 3. Spring Cloud Contract FAQ
- 3.1. Why use Spring Cloud Contract Verifier and not X ?
- 3.2. I don’t want to write a contract in Groovy!
- 3.3. What is this value(consumer(), producer()) ?
- 3.4. How to do Stubs versioning?
- 3.5. Common repo with contracts
- 3.6. Do I need a Binary Storage? Can’t I use Git?
- 3.7. Can I use the Pact Broker?
- 3.8. How can I debug the request/response being sent by the generated tests client?
- 4. Spring Cloud Contract Verifier Setup
- 4.1. Gradle Project
- 4.1.1. Prerequisites
- 4.1.2. Add Gradle Plugin with Dependencies
- 4.1.3. Gradle and Rest Assured 2.0
- 4.1.4. Snapshot Versions for Gradle
- 4.1.5. Add stubs
- 4.1.6. Run the Plugin
- 4.1.7. Default Setup
- 4.1.8. Configure Plugin
- 4.1.9. Configuration Options
- 4.1.10. Single Base Class for All Tests
- 4.1.11. Different Base Classes for Contracts
- 4.1.12. Invoking Generated Tests
- 4.1.13. Pushing stubs to SCM
- 4.1.14. Spring Cloud Contract Verifier on the Consumer Side
- 4.2. Maven Project
- 4.2.1. Add maven plugin
- 4.2.2. Maven and Rest Assured 2.0
- 4.2.3. Snapshot versions for Maven
- 4.2.4. Add stubs
- 4.2.5. Run plugin
- 4.2.6. Configure plugin
- 4.2.7. Configuration Options
- 4.2.8. Single Base Class for All Tests
- 4.2.9. Different base classes for contracts
- 4.2.10. Invoking generated tests
- 4.2.11. Pushing stubs to SCM
- 4.2.12. Maven Plugin and STS
- 4.2.13. Maven Plugin with Spock Tests
- 4.3. Stubs and Transitive Dependencies
- 4.4. Scenarios
- 4.5. Docker Project
- 5. Spring Cloud Contract Verifier Messaging
- 6. Spring Cloud Contract Stub Runner
- 7. Stub Runner for Messaging
- 8. Contract DSL
- 8.1. Limitations
- 8.2. Common Top-Level elements
- 8.3. Request
- 8.4. Response
- 8.5. Dynamic properties
- 8.6. JAX-RS Support
- 8.7. Async Support
- 8.8. Working with Context Paths
- 8.9. Working with Web Flux
- 8.10. Messaging Top-Level Elements
- 8.11. Multiple Contracts in One File
- 8.12. Generating Spring REST Docs snippets from the contracts
- 9. Customization
- 10. Using the Pluggable Architecture
- 11. Spring Cloud Contract WireMock
- 11.1. Registering Stubs Automatically
- 11.2. Using Files to Specify the Stub Bodies
- 11.3. Alternative: Using JUnit Rules
- 11.4. Relaxed SSL Validation for Rest Template
- 11.5. WireMock and Spring MVC Mocks
- 11.6. Customization of WireMock configuration
- 11.7. Generating Stubs using REST Docs
- 11.8. Generating Contracts by Using REST Docs
- 12. Migrations
- 13. Links
Spring Cloud Contract \ No newline at end of file diff --git a/multi/multi_stub-runner-for-messaging.html b/multi/multi_stub-runner-for-messaging.html index cfe7ebd149..edf0586ed6 100644 --- a/multi/multi_stub-runner-for-messaging.html +++ b/multi/multi_stub-runner-for-messaging.html @@ -1,6 +1,6 @@ -Table of Contents
- 1. Spring Cloud Contract
- 2. Spring Cloud Contract Verifier Introduction
- 3. Spring Cloud Contract FAQ
- 3.1. Why use Spring Cloud Contract Verifier and not X ?
- 3.2. I don’t want to write a contract in Groovy!
- 3.3. What is this value(consumer(), producer()) ?
- 3.4. How to do Stubs versioning?
- 3.5. Common repo with contracts
- 3.6. Do I need a Binary Storage? Can’t I use Git?
- 3.7. Can I use the Pact Broker?
- 3.8. How can I debug the request/response being sent by the generated tests client?
- 4. Spring Cloud Contract Verifier Setup
- 4.1. Gradle Project
- 4.1.1. Prerequisites
- 4.1.2. Add Gradle Plugin with Dependencies
- 4.1.3. Gradle and Rest Assured 2.0
- 4.1.4. Snapshot Versions for Gradle
- 4.1.5. Add stubs
- 4.1.6. Run the Plugin
- 4.1.7. Default Setup
- 4.1.8. Configure Plugin
- 4.1.9. Configuration Options
- 4.1.10. Single Base Class for All Tests
- 4.1.11. Different Base Classes for Contracts
- 4.1.12. Invoking Generated Tests
- 4.1.13. Pushing stubs to SCM
- 4.1.14. Spring Cloud Contract Verifier on the Consumer Side
- 4.2. Maven Project
- 4.2.1. Add maven plugin
- 4.2.2. Maven and Rest Assured 2.0
- 4.2.3. Snapshot versions for Maven
- 4.2.4. Add stubs
- 4.2.5. Run plugin
- 4.2.6. Configure plugin
- 4.2.7. Configuration Options
- 4.2.8. Single Base Class for All Tests
- 4.2.9. Different base classes for contracts
- 4.2.10. Invoking generated tests
- 4.2.11. Pushing stubs to SCM
- 4.2.12. Maven Plugin and STS
- 4.2.13. Maven Plugin with Spock Tests
- 4.3. Stubs and Transitive Dependencies
- 4.4. Scenarios
- 4.5. Docker Project
- 5. Spring Cloud Contract Verifier Messaging
- 6. Spring Cloud Contract Stub Runner
- 7. Stub Runner for Messaging
- 8. Contract DSL
- 8.1. Limitations
- 8.2. Common Top-Level elements
- 8.3. Request
- 8.4. Response
- 8.5. Dynamic properties
- 8.6. JAX-RS Support
- 8.7. Async Support
- 8.8. Working with Context Paths
- 8.9. Working with Web Flux
- 8.10. Messaging Top-Level Elements
- 8.11. Multiple Contracts in One File
- 8.12. Generating Spring REST Docs snippets from the contracts
- 9. Customization
- 10. Using the Pluggable Architecture
- 11. Spring Cloud Contract WireMock
- 11.1. Registering Stubs Automatically
- 11.2. Using Files to Specify the Stub Bodies
- 11.3. Alternative: Using JUnit Rules
- 11.4. Relaxed SSL Validation for Rest Template
- 11.5. WireMock and Spring MVC Mocks
- 11.6. Customization of WireMock configuration
- 11.7. Generating Stubs using REST Docs
- 11.8. Generating Contracts by Using REST Docs
- 12. Migrations
- 13. Links
7. Stub Runner for Messaging Stub Runner can run the published stubs in memory. It can integrate with the following +
7. Stub Runner for Messaging Stub Runner can run the published stubs in memory. It can integrate with the following frameworks:
- Spring Integration
- Spring Cloud Stream
- Spring AMQP
It also provides entry points to integrate with any other solution on the market.
+
Important + If you have multiple frameworks on the classpath Stub Runner will need to define which one should be used. Let’s assume that you have both AMQP, Spring Cloud Stream and Spring Integration on the classpath. Then you need to set
-stubrunner.stream.enabled=falseandstubrunner.integration.enabled=false. diff --git a/single/spring-cloud-contract.html b/single/spring-cloud-contract.html index 5bd99a6ccf..f557e4d480 100644 --- a/single/spring-cloud-contract.html +++ b/single/spring-cloud-contract.html @@ -1,6 +1,6 @@Spring Cloud Contract Table of Contents
- 1. Spring Cloud Contract
- 2. Spring Cloud Contract Verifier Introduction
- 3. Spring Cloud Contract FAQ
- 3.1. Why use Spring Cloud Contract Verifier and not X ?
- 3.2. I don’t want to write a contract in Groovy!
- 3.3. What is this value(consumer(), producer()) ?
- 3.4. How to do Stubs versioning?
- 3.5. Common repo with contracts
- 3.6. Do I need a Binary Storage? Can’t I use Git?
- 3.7. Can I use the Pact Broker?
- 3.8. How can I debug the request/response being sent by the generated tests client?
- 4. Spring Cloud Contract Verifier Setup
- 4.1. Gradle Project
- 4.1.1. Prerequisites
- 4.1.2. Add Gradle Plugin with Dependencies
- 4.1.3. Gradle and Rest Assured 2.0
- 4.1.4. Snapshot Versions for Gradle
- 4.1.5. Add stubs
- 4.1.6. Run the Plugin
- 4.1.7. Default Setup
- 4.1.8. Configure Plugin
- 4.1.9. Configuration Options
- 4.1.10. Single Base Class for All Tests
- 4.1.11. Different Base Classes for Contracts
- 4.1.12. Invoking Generated Tests
- 4.1.13. Pushing stubs to SCM
- 4.1.14. Spring Cloud Contract Verifier on the Consumer Side
- 4.2. Maven Project
- 4.2.1. Add maven plugin
- 4.2.2. Maven and Rest Assured 2.0
- 4.2.3. Snapshot versions for Maven
- 4.2.4. Add stubs
- 4.2.5. Run plugin
- 4.2.6. Configure plugin
- 4.2.7. Configuration Options
- 4.2.8. Single Base Class for All Tests
- 4.2.9. Different base classes for contracts
- 4.2.10. Invoking generated tests
- 4.2.11. Pushing stubs to SCM
- 4.2.12. Maven Plugin and STS
- 4.2.13. Maven Plugin with Spock Tests
- 4.3. Stubs and Transitive Dependencies
- 4.4. Scenarios
- 4.5. Docker Project
- 5. Spring Cloud Contract Verifier Messaging
- 6. Spring Cloud Contract Stub Runner
- 7. Stub Runner for Messaging
- 8. Contract DSL
- 8.1. Limitations
- 8.2. Common Top-Level elements
- 8.3. Request
- 8.4. Response
- 8.5. Dynamic properties
- 8.6. JAX-RS Support
- 8.7. Async Support
- 8.8. Working with Context Paths
- 8.9. Working with Web Flux
- 8.10. Messaging Top-Level Elements
- 8.11. Multiple Contracts in One File
- 8.12. Generating Spring REST Docs snippets from the contracts
- 9. Customization
- 10. Using the Pluggable Architecture
- 11. Spring Cloud Contract WireMock
- 11.1. Registering Stubs Automatically
- 11.2. Using Files to Specify the Stub Bodies
- 11.3. Alternative: Using JUnit Rules
- 11.4. Relaxed SSL Validation for Rest Template
- 11.5. WireMock and Spring MVC Mocks
- 11.6. Customization of WireMock configuration
- 11.7. Generating Stubs using REST Docs
- 11.8. Generating Contracts by Using REST Docs
- 12. Migrations
- 13. Links
Documentation Authors: Adam Dudczak, Mathias Düsterhöft, Marcin Grzejszczak, Dennis Kieselhorst, Jakub Kubryński, Karol Lassak, +
Spring Cloud Contract Table of Contents
- 1. Spring Cloud Contract
- 2. Spring Cloud Contract Verifier Introduction
- 3. Spring Cloud Contract FAQ
- 3.1. Why use Spring Cloud Contract Verifier and not X ?
- 3.2. I don’t want to write a contract in Groovy!
- 3.3. What is this value(consumer(), producer()) ?
- 3.4. How to do Stubs versioning?
- 3.5. Common repo with contracts
- 3.6. Do I need a Binary Storage? Can’t I use Git?
- 3.7. Can I use the Pact Broker?
- 3.8. How can I debug the request/response being sent by the generated tests client?
- 4. Spring Cloud Contract Verifier Setup
- 4.1. Gradle Project
- 4.1.1. Prerequisites
- 4.1.2. Add Gradle Plugin with Dependencies
- 4.1.3. Gradle and Rest Assured 2.0
- 4.1.4. Snapshot Versions for Gradle
- 4.1.5. Add stubs
- 4.1.6. Run the Plugin
- 4.1.7. Default Setup
- 4.1.8. Configure Plugin
- 4.1.9. Configuration Options
- 4.1.10. Single Base Class for All Tests
- 4.1.11. Different Base Classes for Contracts
- 4.1.12. Invoking Generated Tests
- 4.1.13. Pushing stubs to SCM
- 4.1.14. Spring Cloud Contract Verifier on the Consumer Side
- 4.2. Maven Project
- 4.2.1. Add maven plugin
- 4.2.2. Maven and Rest Assured 2.0
- 4.2.3. Snapshot versions for Maven
- 4.2.4. Add stubs
- 4.2.5. Run plugin
- 4.2.6. Configure plugin
- 4.2.7. Configuration Options
- 4.2.8. Single Base Class for All Tests
- 4.2.9. Different base classes for contracts
- 4.2.10. Invoking generated tests
- 4.2.11. Pushing stubs to SCM
- 4.2.12. Maven Plugin and STS
- 4.2.13. Maven Plugin with Spock Tests
- 4.3. Stubs and Transitive Dependencies
- 4.4. Scenarios
- 4.5. Docker Project
- 5. Spring Cloud Contract Verifier Messaging
- 6. Spring Cloud Contract Stub Runner
- 7. Stub Runner for Messaging
- 8. Contract DSL
- 8.1. Limitations
- 8.2. Common Top-Level elements
- 8.3. Request
- 8.4. Response
- 8.5. Dynamic properties
- 8.6. JAX-RS Support
- 8.7. Async Support
- 8.8. Working with Context Paths
- 8.9. Working with Web Flux
- 8.10. Messaging Top-Level Elements
- 8.11. Multiple Contracts in One File
- 8.12. Generating Spring REST Docs snippets from the contracts
- 9. Customization
- 10. Using the Pluggable Architecture
- 11. Spring Cloud Contract WireMock
- 11.1. Registering Stubs Automatically
- 11.2. Using Files to Specify the Stub Bodies
- 11.3. Alternative: Using JUnit Rules
- 11.4. Relaxed SSL Validation for Rest Template
- 11.5. WireMock and Spring MVC Mocks
- 11.6. Customization of WireMock configuration
- 11.7. Generating Stubs using REST Docs
- 11.8. Generating Contracts by Using REST Docs
- 12. Migrations
- 13. Links
Documentation Authors: Adam Dudczak, Mathias Düsterhöft, Marcin Grzejszczak, Dennis Kieselhorst, Jakub Kubryński, Karol Lassak, Olga Maciaszek-Sharma, Mariusz Smykuła, Dave Syer, Jay Bryant
2.1.0.BUILD-SNAPSHOT
You need confidence when pushing new features to a new application or service in a distributed system. This project provides support for Consumer Driven Contracts and service schemas in Spring applications (for both HTTP and message-based interactions), @@ -779,7 +779,7 @@ that some may be outdated, because the Spring Cloud Contract Verifier project is constant development.
You can check out the video from the Warsaw JUG about Spring Cloud Contract:
You can find some samples at samples.
For the time being Spring Cloud Contract is a JVM based tool. So it could be your first pick when you’re already creating software for the JVM. This project has a lot of really interesting features but especially quite a few of them definitely make -Spring Cloud Contract Verifier stand out on the "market" of Consumer Driven Contract (CDC) tooling. Out of many the most interesting are:
- Possibility to do CDC with messaging
- Clear and easy to use, statically typed DSL
- Possibility to copy paste your current JSON file to the contract and only edit its elements
- Automatic generation of tests from the defined Contract
- Stub Runner functionality - the stubs are automatically downloaded at runtime from Nexus / Artifactory
- Spring Cloud integration - no discovery service is needed for integration tests
- Spring Cloud Contract integrates with Pact out of the box and provides easy hooks to extend its functionality
- Via Docker adds support for any language & framework used
One of the biggest challenges related to stubs is their reusability. Only if they can be vastly used, will they serve their purpose. +Spring Cloud Contract Verifier stand out on the "market" of Consumer Driven Contract (CDC) tooling. Out of many the most interesting are:
- Possibility to do CDC with messaging
- Clear and easy to use, statically typed DSL
- Possibility to copy paste your current JSON file to the contract and only edit its elements
- Automatic generation of tests from the defined Contract
- Stub Runner functionality - the stubs are automatically downloaded at runtime from Nexus / Artifactory
- Spring Cloud integration - no discovery service is needed for integration tests
- Spring Cloud Contract integrates with Pact out of the box and provides easy hooks to extend its functionality
- Via Docker adds support for any language & framework used
One of the biggest challenges related to stubs is their reusability. Only if they can be vastly used, will they serve their purpose. What typically makes that difficult are the hard-coded values of request / response elements. For example dates or ids. Imagine the following JSON request
{ "time" : "2016-10-10 20:10:15", @@ -1134,7 +1134,7 @@ configurations { deleteUnwantedContracts.dependsOn("unzipContracts") build.dependsOn("deleteUnwantedContracts")
- Configure plugin by specifying the directory containing contracts using
contractsDslDirpropertycontracts { contractsDslDir = new File("${buildDir}/unpackedContracts") -}In the polyglot world, there are languages that don’t use binary storages like Artifactory or Nexus. Starting from Spring Cloud Contract version 2.0.0 we provide mechanisms to store contracts and stubs in a SCM repository. Currently the only supported SCM is Git.
The repository would have to the following setup @@ -1376,7 +1376,7 @@ with
pact://protocol. E.g.p @StubRunnerPort("beer-api-producer-pact") int producerPort; //... }With such a setup:
- Pact files will be downloaded from the Pact Broker
- Spring Cloud Contract will convert the Pact files into stub definitions
- The stub servers will be started and fed with stubs
For more information about Pact support you can go to -the Section 10.7, “Using the Pact Stub Downloader” section.
The generated tests all boil down to RestAssured in some form or fashion which relies on Apache HttpClient. HttpClient has a facility called wire logging which logs the entire request and response to HttpClient. Spring Boot has a logging common application property for doing this sort of thing, just add this to your application properties
logging.level.org.apache.http.wire=DEBUGStarting from version
1.2.0we turn on WireMock logging to +the Section 10.7, “Using the Pact Stub Downloader” section.The generated tests all boil down to RestAssured in some form or fashion which relies on Apache HttpClient. HttpClient has a facility called wire logging which logs the entire request and response to HttpClient. Spring Boot has a logging common application property for doing this sort of thing, just add this to your application properties
logging.level.org.apache.http.wire=DEBUGStarting from version
1.2.0we turn on WireMock logging to info and the WireMock notifier to being verbose. Now you will exactly know what request was received by WireMock server and which matching response definition was picked.To turn off this feature just bump WireMock logging to
ERRORlogging.level.com.github.tomakehurst.wiremock=ERRORYou can use the
mappingsOutputFolderproperty on@AutoConfigureStubRunnerorStubRunnerRule@@ -1963,46 +1963,7 @@ verification tests with both Maven and Gradle plugin. However, whereas with Grad in Maven you will require some additional setup in order to make the tests compile and execute properly.First of all, you will have to use a plugin, such as GMavenPlus plugin, to add Groovy to your project. In GMavenPlus plugin, you will need to explicitly set test sources, including both the path where your base test classes are defined and the path were the generated contract tests are added. -Please refer to the example below:
<plugin> - <groupId>org.codehaus.gmavenplus</groupId> - <artifactId>gmavenplus-plugin</artifactId> - <version>1.6.1</version> - <executions> - <execution> - <goals> - <goal>compileTests</goal> - <goal>addTestSources</goal> - </goals> - </execution> - </executions> - <configuration> - <testSources> - <testSource> - <directory>${project.basedir}/src/test/groovy</directory> - <includes> - <include>**/*.groovy</include> - </includes> - </testSource> - <testSource> - <directory> - ${project.basedir}/target/generated-test-sources/contracts/com/example/beer - </directory> - <includes> - <include>**/*.groovy</include> - <include>**/*.gvy</include> - </includes> - </testSource> - </testSources> - </configuration> - <dependencies> - <dependency> - <groupId>org.codehaus.groovy</groupId> - <artifactId>groovy-all</artifactId> - <version>2.4.15</version> - <scope>runtime</scope> - <type>pom</type> - </dependency> - </dependencies>If you uphold to the Spock convention of ending the test class names with
Spec, you will also need to adjust your Maven +Please refer to the example below:If you uphold to the Spock convention of ending the test class names with
Spec, you will also need to adjust your Maven Surefire plugin setup, like in the following example:The Maven and Gradle plugin that add the tasks that create the stubs jar for you. One problem that arises is that, when reusing the stubs, you can mistakenly import all of that stub’s dependencies. When building a Maven artifact, even though you have a couple @@ -2829,7 +2790,8 @@ its methods as presented below:
@Configuration @EnableAutoConfiguration static class Config {} -}for the following configuration file:
stubrunner: +} +// end::test[]for the following configuration file:
stubrunner: repositoryRoot: classpath:m2repo/repository/ ids: - org.springframework.cloud.contract.verifier.stubs:loanIssuance @@ -2860,7 +2822,8 @@ orDiscoveryClientdirectly, to call those stubbed }for the following configuration file
stubrunner: idsToServiceIds: ivyNotation: someValueInsideYourCode - fraudDetectionServer: someNameThatShouldMapFraudDetectionServerIn your integration tests you typically don’t want to call neither a discovery service (e.g. Eureka) + fraudDetectionServer: someNameThatShouldMapFraudDetectionServer +# end::ids[]
In your integration tests you typically don’t want to call neither a discovery service (e.g. Eureka) or Config Server. That’s why you create an additional test configuration in which you want to disable these features.
Due to certain limitations of
spring-cloud-commonsto achieve this you have disable these properties via a static block like presented below (example for Eureka)//Hack to work around https://github.com/spring-cloud/spring-cloud-commons/issues/156 @@ -3059,10 +3022,10 @@ Or set the test as follows:foo-consumer in its name (i.e. those from thesrc/test/resources/contracts/foo-consumer/some/contracts/…folder) will be allowed to be referenced.You can check out issue 224 for more information about the reasons behind this change.
This section briefly describes common properties, including:
You can set repetitive properties by using system properties or Spring configuration -properties. Here are their names with their default values:
+
Property name Default value Description stubrunner.minPort
10000
Minimum value of a port for a started WireMock with stubs.
stubrunner.maxPort
15000
Maximum value of a port for a started WireMock with stubs.
stubrunner.repositoryRoot
Maven repo URL. If blank, then call the local maven repo.
stubrunner.classifier
stubs
Default classifier for the stub artifacts.
stubrunner.stubsMode
CLASSPATH
The way you want to fetch and register the stubs
stubrunner.ids
Array of Ivy notation stubs to download.
stubrunner.username
Optional username to access the tool that stores the JARs with -stubs.
stubrunner.password
Optional password to access the tool that stores the JARs with -stubs.
stubrunner.stubsPerConsumer
false
Set to
trueif you want to use different stubs for -each consumer instead of registering all stubs for every consumer.stubrunner.consumerName
If you want to use a stub for each consumer and want to +properties. Here are their names with their default values:
Property name Default value Description stubrunner.minPort
10000
Minimum value of a port for a started WireMock with stubs.
stubrunner.maxPort
15000
Maximum value of a port for a started WireMock with stubs.
stubrunner.repositoryRoot
Maven repo URL. If blank, then call the local maven repo.
stubrunner.classifier
stubs
Default classifier for the stub artifacts.
stubrunner.stubsMode
CLASSPATH
The way you want to fetch and register the stubs
stubrunner.ids
Array of Ivy notation stubs to download.
stubrunner.username
Optional username to access the tool that stores the JARs with +stubs.
stubrunner.password
Optional password to access the tool that stores the JARs with +stubs.
stubrunner.stubsPerConsumer
false
Set to
trueif you want to use different stubs for +each consumer instead of registering all stubs for every consumer.stubrunner.consumerName
If you want to use a stub for each consumer and want to override the consumer name just change this value.
You can provide the stubs to download via the
stubrunner.idssystem property. They follow this pattern:groupId:artifactId:version:classifier:portNote that
version,classifierandportare optional.
- If you do not provide the
port, a random one will be picked.- If you do not provide the
classifier, the default is used. (Note that you can pass an empty classifier this way:groupId:artifactId:version:).- If you do not provide the
version, then the+will be passed and the latest one is @@ -5344,7 +5307,8 @@ testCompile 'org protected void assertThatRejectionReasonIsNull(Object rejectionReason) { assert rejectionReason == null; } -}In case you are using the standalone setup, you can set up RestAssuredMockMvc like this:
package com.example.fraud; +} +// end::base_class[]In case you are using the standalone setup, you can set up RestAssuredMockMvc like this:
package com.example.fraud; import io.restassured.module.mockmvc.RestAssuredMockMvc; import org.junit.Before; @@ -5372,7 +5336,8 @@ testCompile 'org .alwaysDo(document(getClass().getSimpleName() + "_" + testName.getMethodName()))); } -}
Tip You don’t need to specify the output directory for the generated snippets since version 1.2.0.RELEASE of Spring REST Docs.
Important This section is valid only for Groovy DSL
You can customize the Spring Cloud Contract Verifier by extending the DSL, as shown in +} +// end::base_class[]
Tip You don’t need to specify the output directory for the generated snippets since version 1.2.0.RELEASE of Spring REST Docs.
Important This section is valid only for Groovy DSL
You can customize the Spring Cloud Contract Verifier by extending the DSL, as shown in the remainder of this section.
You can provide your own functions to the DSL. The key requirement for this feature is to maintain the static compatibility. Later in this document, you can see examples of:
- Creating a JAR with reusable classes.
- Referencing of these classes in the DSLs.
You can find the full example here.
The following examples show three classes that can be reused in the DSLs.
PatternUtils contains functions used by both the consumer and the producer.
package com.example; @@ -5507,7 +5472,7 @@ maintain the static compatibility. Later in this document, you can see examples } } //end::impl[]In order for the plugins and IDE to be able to reference the common JAR classes, you need -to pass the dependency to your project.
First, add the common jar dependency as a test dependency. Because your contracts files +to pass the dependency to your project.
First, add the common jar dependency as a test dependency. Because your contracts files are available on the test resources path, the common jar classes automatically become visible in your Groovy files. The following examples show how to test the dependency:
Maven.
<dependency> @@ -5518,7 +5483,7 @@ visible in your Groovy files. The following examples show how to test the depend </dependency>
Gradle.
testCompile("com.example:beer-common:0.0.1-SNAPSHOT")-
Now, you must add the dependency for the plugin to reuse at runtime, as shown in the +
Now, you must add the dependency for the plugin to reuse at runtime, as shown in the following example:
Maven.
<plugin> <groupId>org.springframework.cloud</groupId> @@ -6008,39 +5973,13 @@ to clone the repository and use it as a source of contracts to generate tests or stubs.Either via environment variables, system properties, properties set inside the plugin or contracts repository configuration you can tweak the downloader’s behaviour. Below you can find the list of -properties
Table 10.1. SCM Stub Downloader properties
Type of a property
Name of the property
Description
*
git.branch(plugin prop) -*
stubrunner.properties.git.branch(system prop) -*
STUBRUNNER_PROPERTIES_GIT_BRANCH(env prop)master
Which branch to checkout
*
git.username(plugin prop) -*
stubrunner.properties.git.username(system prop) -*
STUBRUNNER_PROPERTIES_GIT_USERNAME(env prop)Git clone username
*
git.password(plugin prop) -*
stubrunner.properties.git.password(system prop) -*
STUBRUNNER_PROPERTIES_GIT_PASSWORD(env prop)Git clone password
*
git.no-of-attempts(plugin prop) -*
stubrunner.properties.git.no-of-attempts(system prop) -*
STUBRUNNER_PROPERTIES_GIT_NO_OF_ATTEMPTS(env prop)10
Number of attempts to push the commits to
origin*
git.wait-between-attempts(Plugin prop) -*
stubrunner.properties.git.wait-between-attempts(system prop) -*
STUBRUNNER_PROPERTIES_GIT_WAIT_BETWEEN_ATTEMPTS(env prop)1000
Number of millis to wait between attempts to push the commits to
originWhenever the
repositoryRootstarts with a Pact protocol +propertiesTable 10.1. SCM Stub Downloader properties
Type of a property
Name of the property
Description
*
git.branch(plugin prop)*
stubrunner.properties.git.branch(system prop)*
STUBRUNNER_PROPERTIES_GIT_BRANCH(env prop)master
Which branch to checkout
*
git.username(plugin prop)*
stubrunner.properties.git.username(system prop)*
STUBRUNNER_PROPERTIES_GIT_USERNAME(env prop)Git clone username
*
git.password(plugin prop)*
stubrunner.properties.git.password(system prop)*
STUBRUNNER_PROPERTIES_GIT_PASSWORD(env prop)Git clone password
*
git.no-of-attempts(plugin prop)*
stubrunner.properties.git.no-of-attempts(system prop)*
STUBRUNNER_PROPERTIES_GIT_NO_OF_ATTEMPTS(env prop)10
Number of attempts to push the commits to
origin*
git.wait-between-attempts(Plugin prop)*
stubrunner.properties.git.wait-between-attempts(system prop)*
STUBRUNNER_PROPERTIES_GIT_WAIT_BETWEEN_ATTEMPTS(env prop)1000
Number of millis to wait between attempts to push the commits to
originWhenever the
repositoryRootstarts with a Pact protocol (starts withpact://), the stub downloader will try to fetch the Pact contract definitions from the Pact Broker. Whatever is set afterpact://will be parsed as the Pact Broker URL.Either via environment variables, system properties, properties set inside the plugin or contracts repository configuration you can tweak the downloader’s behaviour. Below you can find the list of -properties
Table 10.2. SCM Stub Downloader properties
Name of a property
Default
Description
*
pactbroker.host(plugin prop) -*
stubrunner.properties.pactbroker.host(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_HOST(env prop)Host from URL passed to
repositoryRootWhat is the URL of Pact Broker
*
pactbroker.port(plugin prop) -*
stubrunner.properties.pactbroker.port(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_PORT(env prop)Port from URL passed to
repositoryRootWhat is the port of Pact Broker
*
pactbroker.protocol(plugin prop) -*
stubrunner.properties.pactbroker.protocol(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_PROTOCOL(env prop)Protocol from URL passed to
repositoryRootWhat is the protocol of Pact Broker
*
pactbroker.tags(plugin prop) -*
stubrunner.properties.pactbroker.tags(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_TAGS(env prop)Version of the stub, or
latestif version is+What tags should be used to fetch the stub
*
pactbroker.auth.scheme(plugin prop) -*
stubrunner.properties.pactbroker.auth.scheme(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_AUTH_SCHEME(env prop)
BasicWhat kind of authentication should be used to connect to the Pact Broker
*
pactbroker.auth.username(plugin prop) -*
stubrunner.properties.pactbroker.auth.username(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_AUTH_USERNAME(env prop)The username passed to
contractsRepositoryUsername(maven) orcontractRepository.username(gradle)Username used to connect to the Pact Broker
*
pactbroker.auth.password(plugin prop) -*
stubrunner.properties.pactbroker.auth.password(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_AUTH_PASSWORD(env prop)The password passed to
contractsRepositoryPassword(maven) orcontractRepository.password(gradle)Password used to connect to the Pact Broker
*
pactbroker.provider-name-with-group-id(plugin prop) -*
stubrunner.properties.pactbroker.provider-name-with-group-id(system prop) -*
STUBRUNNER_PROPERTIES_PACTBROKER_PROVIDER_NAME_WITH_GROUP_ID(env prop)false
When
true, the provider name will be a combination ofgroupId:artifactId. Iffalse, justartifactIdis usedThe Spring Cloud Contract WireMock modules let you use WireMock in a +properties
Table 10.2. SCM Stub Downloader properties
Name of a property
Default
Description
*
pactbroker.host(plugin prop)*
stubrunner.properties.pactbroker.host(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_HOST(env prop)Host from URL passed to
repositoryRootWhat is the URL of Pact Broker
*
pactbroker.port(plugin prop)*
stubrunner.properties.pactbroker.port(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_PORT(env prop)Port from URL passed to
repositoryRootWhat is the port of Pact Broker
*
pactbroker.protocol(plugin prop)*
stubrunner.properties.pactbroker.protocol(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_PROTOCOL(env prop)Protocol from URL passed to
repositoryRootWhat is the protocol of Pact Broker
*
pactbroker.tags(plugin prop)*
stubrunner.properties.pactbroker.tags(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_TAGS(env prop)Version of the stub, or
latestif version is+What tags should be used to fetch the stub
*
pactbroker.auth.scheme(plugin prop)*
stubrunner.properties.pactbroker.auth.scheme(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_AUTH_SCHEME(env prop)
BasicWhat kind of authentication should be used to connect to the Pact Broker
*
pactbroker.auth.username(plugin prop)*
stubrunner.properties.pactbroker.auth.username(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_AUTH_USERNAME(env prop)The username passed to
contractsRepositoryUsername(maven) orcontractRepository.username(gradle)Username used to connect to the Pact Broker
*
pactbroker.auth.password(plugin prop)*
stubrunner.properties.pactbroker.auth.password(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_AUTH_PASSWORD(env prop)The password passed to
contractsRepositoryPassword(maven) orcontractRepository.password(gradle)Password used to connect to the Pact Broker
*
pactbroker.provider-name-with-group-id(plugin prop)*
stubrunner.properties.pactbroker.provider-name-with-group-id(system prop)*
STUBRUNNER_PROPERTIES_PACTBROKER_PROVIDER_NAME_WITH_GROUP_ID(env prop)false
When
true, the provider name will be a combination ofgroupId:artifactId. Iffalse, justartifactIdis usedThe Spring Cloud Contract WireMock modules let you use WireMock in a Spring Boot application. Check out the samples for more details.
If you have a Spring Boot application that uses Tomcat as an embedded server (which is @@ -6065,7 +6004,8 @@ your test. The following code shows an example:
< assertThat(this.service.go()).isEqualTo("Hello World!"); } -}To start the stub server on a different port use (for example), +} +//end::wiremock_test2[]
To start the stub server on a different port use (for example),
@AutoConfigureWireMock(port=9999). For a random port, use a value of0. The stub server port can be bound in the test application context with the "wiremock.server.port" property. Using@AutoConfigureWireMockadds a bean of typeWiremockConfigurationto @@ -6125,7 +6065,8 @@ instance, as shown in the following example:assertThat(this.service.go()).isEqualTo("Hello World!"); } -}The
@ClassRulemeans that the server shuts down after all the methods in this class +} +//end::wiremock_test2[]The
@ClassRulemeans that the server shuts down after all the methods in this class have been run.WireMock lets you stub a "secure" server with an "https" URL protocol. If your application wants to contact that stub server in an integration test, it will find that the SSL certificates are not valid (the usual problem with self-installed certificates). @@ -6425,7 +6366,7 @@ structure presented in the previous snippet.
Maven.&nbs from "${project.buildDir}/resources/main/customer-stubs/META-INF/${project.group}/${project.name}/${project.version}" into "${project.buildDir}/resources/main/customer-stubs" }
-
This section covers upgrading from version 1.1 to version 1.2.
This section covers upgrading from version 1.1 to version 1.2.
HttpServerStubincludes a method that was not in version 1.1. The method isString registeredMappings()If you have classes that implementHttpServerStub, you now have to implement theregisteredMappings()method. It should return aStringrepresenting all mappings available in a singleHttpServerStub.See issue 355 for more diff --git a/spring-cloud-contract-maven-plugin/checkstyle.html b/spring-cloud-contract-maven-plugin/checkstyle.html index b137209b31..7397d468a4 100644 --- a/spring-cloud-contract-maven-plugin/checkstyle.html +++ b/spring-cloud-contract-maven-plugin/checkstyle.html @@ -1,13 +1,13 @@
- +Spring Cloud Contract Maven Plugin – Checkstyle Results @@ -146,7 +146,7 @@ +545 E
+ +org/springframework/cloud/contract/maven/verifier/BaseClassMapping.java +0 +0 +37 + +org/springframework/cloud/contract/maven/verifier/ConvertMojo.java +0 +0 +83 + +org/springframework/cloud/contract/maven/verifier/CopyContracts.java +0 +0 +51 + +org/springframework/cloud/contract/maven/verifier/GenerateStubsMojo.java +0 +0 +37 + +org/springframework/cloud/contract/maven/verifier/GenerateTestsMojo.java +0 +0 +110 + +org/springframework/cloud/contract/maven/verifier/ManifestCreator.java +0 +0 +19 + +org/springframework/cloud/contract/maven/verifier/MavenContractsDownloader.java +0 +0 +84 + +org/springframework/cloud/contract/maven/verifier/PushStubsToScmMojo.java +0 +0 +29 + +org/springframework/cloud/contract/maven/verifier/RunMojo.java +0 +0 +41 + +org/springframework/cloud/contract/maven/verifier/stubrunner/AetherStubDownloaderFactory.java +0 +0 +23 + +org/springframework/cloud/contract/maven/verifier/stubrunner/LocalStubRunner.java +0 +0 +10 + org/springframework/cloud/contract/maven/verifier/stubrunner/RemoteStubRunner.java +0 +0 +21 Severity + +blocks +NeedBraces +6 +Error
+ ++ RightCurly +4 +Error
+ +coding +AvoidInlineConditionals +10 +Error
+ ++ HiddenField +34 +Error
+ ++ MagicNumber +1 +Error
+ +design +DesignForExtension +23 +Error
+ ++ HideUtilityClassConstructor +1 +Error
+ +javadoc +JavadocMethod +55 +Error
+ ++ JavadocPackage +2 +Error
+ ++ JavadocStyle +35 +Error
+ ++ JavadocType +5 +Error
+ ++ JavadocVariable +69 +Error
+ +misc +FinalParameters +55 +Error
+ +naming +ConstantName +4 +Error
+ +sizes +LineLength +216 +Error
+ ++ ParameterNumber +1 +Error
+ +whitespace +FileTabCharacter +12 +Error
+ ++ NoWhitespaceAfter +1 +Error
+ ++ OperatorWrap +10 +Error
+ + WhitespaceAround +1 +Error
Details
+++org/springframework/cloud/contract/maven/verifier/BaseClassMapping.java
++
+ +Severity +Category +Rule +Message +Line + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +3 + ++ Error
whitespace +FileTabCharacter +File contains tab characters (this is the first instance). +12 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +12 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +14 + ++ Error
design +DesignForExtension +Class 'BaseClassMapping' looks like designed for extension (can be subclassed), but the method 'getContractPackageRegex' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'BaseClassMapping' final or making the method 'getContractPackageRegex' static/final/abstract/empty, or adding allowed annotation for the method. +16 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +16 + ++ Error
design +DesignForExtension +Class 'BaseClassMapping' looks like designed for extension (can be subclassed), but the method 'setContractPackageRegex' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'BaseClassMapping' final or making the method 'setContractPackageRegex' static/final/abstract/empty, or adding allowed annotation for the method. +20 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +20 + ++ Error
misc +FinalParameters +Parameter contractPackageRegex should be final. +20 + ++ Error
coding +HiddenField +'contractPackageRegex' hides a field. +20 + ++ Error
design +DesignForExtension +Class 'BaseClassMapping' looks like designed for extension (can be subclassed), but the method 'getBaseClassFQN' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'BaseClassMapping' final or making the method 'getBaseClassFQN' static/final/abstract/empty, or adding allowed annotation for the method. +24 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +24 + ++ Error
design +DesignForExtension +Class 'BaseClassMapping' looks like designed for extension (can be subclassed), but the method 'setBaseClassFQN' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'BaseClassMapping' final or making the method 'setBaseClassFQN' static/final/abstract/empty, or adding allowed annotation for the method. +28 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +28 + ++ Error
misc +FinalParameters +Parameter baseClassFQN should be final. +28 + ++ Error
coding +HiddenField +'baseClassFQN' hides a field. +28 + ++ Error
design +DesignForExtension +Class 'BaseClassMapping' looks like designed for extension (can be subclassed), but the method 'equals' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'BaseClassMapping' final or making the method 'equals' static/final/abstract/empty, or adding allowed annotation for the method. +32 + ++ Error
misc +FinalParameters +Parameter o should be final. +32 + ++ Error
blocks +NeedBraces +'if' construct must use '{}'s. +33 + ++ Error
blocks +NeedBraces +'if' construct must use '{}'s. +35 + ++ Error
blocks +NeedBraces +'if' construct must use '{}'s. +38 + ++ Error
whitespace +OperatorWrap +'?' should be on a new line. +38 + ++ Error
coding +AvoidInlineConditionals +Avoid inline conditionals. +38 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 94). +39 + ++ Error
whitespace +OperatorWrap +':' should be on a new line. +39 + ++ Error
whitespace +OperatorWrap +'?' should be on a new line. +42 + ++ Error
coding +AvoidInlineConditionals +Avoid inline conditionals. +42 + ++ Error
whitespace +OperatorWrap +':' should be on a new line. +43 + ++ Error
design +DesignForExtension +Class 'BaseClassMapping' looks like designed for extension (can be subclassed), but the method 'hashCode' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'BaseClassMapping' final or making the method 'hashCode' static/final/abstract/empty, or adding allowed annotation for the method. +48 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 106). +49 + ++ Error
coding +AvoidInlineConditionals +Avoid inline conditionals. +49 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 102). +50 + ++ Error
coding +MagicNumber +'31' is a magic number. +50 + ++ Error
coding +AvoidInlineConditionals +Avoid inline conditionals. +50 + ++ Error
design +DesignForExtension +Class 'BaseClassMapping' looks like designed for extension (can be subclassed), but the method 'toString' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'BaseClassMapping' final or making the method 'toString' static/final/abstract/empty, or adding allowed annotation for the method. +54 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 97). +55 + + Error
sizes +LineLength +Line is longer than 80 characters (found 93). +56 ++org/springframework/cloud/contract/maven/verifier/ConvertMojo.java
++
+ +Severity +Category +Rule +Message +Line + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 81). +40 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 120). +42 + ++ Error
whitespace +FileTabCharacter +File contains tab characters (this is the first instance). +45 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 84). +48 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +48 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +49 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +51 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +54 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 100). +55 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 82). +57 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 89). +58 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 89). +62 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 84). +63 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 86). +71 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +76 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 92). +79 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +79 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +82 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 94). +85 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +85 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 99). +88 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 113). +89 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +95 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 102). +99 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 83). +100 + ++ Error
javadoc +JavadocStyle +Extra HTML tag found: </p> +101 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 125). +102 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +108 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 103). +115 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +145 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 83). +151 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +156 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +163 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 133). +164 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +169 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +172 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +174 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 85). +175 + ++ Error
misc +FinalParameters +Parameter aetherStubDownloaderFactory should be final. +175 + ++ Error
coding +HiddenField +'aetherStubDownloaderFactory' hides a field. +175 + ++ Error
design +DesignForExtension +Class 'ConvertMojo' looks like designed for extension (can be subclassed), but the method 'execute' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'ConvertMojo' final or making the method 'execute' static/final/abstract/empty, or adding allowed annotation for the method. +179 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +179 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 132). +182 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 91). +189 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 97). +191 + ++ Error
coding +HiddenField +'contractsDirectory' hides a field. +193 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 100). +194 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 84). +195 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 104). +196 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 89). +197 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 88). +202 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 94). +206 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +206 + ++ Error
misc +FinalParameters +Parameter config should be final. +206 + ++ Error
misc +FinalParameters +Parameter contractsDslDir should be final. +206 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 93). +208 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 119). +211 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 94). +213 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 87). +215 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +219 + ++ Error
misc +FinalParameters +Parameter contractsDirectory should be final. +219 + ++ Error
coding +HiddenField +'contractsDirectory' hides a field. +219 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 84). +220 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 123). +224 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 83). +231 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +231 + ++ Error
misc +FinalParameters +Parameter config should be final. +231 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 90). +232 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 118). +233 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 107). +234 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 109). +235 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 92). +236 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 111). +237 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +240 + ++ Error
misc +FinalParameters +Parameter rootPath should be final. +240 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 118). +241 + ++ Error
coding +AvoidInlineConditionals +Avoid inline conditionals. +241 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +244 + ++ Error
misc +FinalParameters +Parameter contractsDirectory should be final. +244 + ++ Error
coding +HiddenField +'contractsDirectory' hides a field. +244 + ++ Error
whitespace +OperatorWrap +'?' should be on a new line. +245 + ++ Error
coding +AvoidInlineConditionals +Avoid inline conditionals. +245 + + Error
javadoc +JavadocMethod +Missing a Javadoc comment. +249 ++org/springframework/cloud/contract/maven/verifier/CopyContracts.java
++
+ +Severity +Category +Rule +Message +Line + ++ Error
javadoc +JavadocType +Missing a Javadoc comment. +32 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 87). +33 + ++ Error
whitespace +FileTabCharacter +File contains tab characters (this is the first instance). +33 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +33 + ++ Error
naming +ConstantName +Name 'log' must match pattern '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'. +33 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +34 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +35 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +36 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +37 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +38 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +40 + ++ Error
misc +FinalParameters +Parameter project should be final. +40 + ++ Error
coding +HiddenField +'project' hides a field. +40 + ++ Error
misc +FinalParameters +Parameter mavenSession should be final. +40 + ++ Error
coding +HiddenField +'mavenSession' hides a field. +40 + ++ Error
misc +FinalParameters +Parameter mavenResourcesFiltering should be final. +41 + ++ Error
coding +HiddenField +'mavenResourcesFiltering' hides a field. +41 + ++ Error
misc +FinalParameters +Parameter config should be final. +42 + ++ Error
coding +HiddenField +'config' hides a field. +42 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 88). +49 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +49 + ++ Error
misc +FinalParameters +Parameter contractsDirectory should be final. +49 + ++ Error
misc +FinalParameters +Parameter outputDirectory should be final. +49 + ++ Error
misc +FinalParameters +Parameter rootPath should be final. +49 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 98). +51 + ++ Error
whitespace +OperatorWrap +'?' should be on a new line. +51 + ++ Error
coding +AvoidInlineConditionals +Avoid inline conditionals. +51 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 103). +52 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 113). +53 + ++ Error
whitespace +WhitespaceAround +'+' is not preceded with whitespace. +53 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 126). +54 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 108). +57 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 94). +59 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 92). +61 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 93). +64 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 82). +73 + ++ Error
blocks +RightCurly +'}' at column 3 should be on the same line as the next part of a multi-block statement (one that directly contains multiple blocks: if/else-if/else, do/while or try/catch/finally). +85 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 93). +91 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +91 + ++ Error
misc +FinalParameters +Parameter includedRootFolderAntPattern should be final. +91 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 85). +92 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 90). +94 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 116). +95 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 91). +100 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +100 + ++ Error
misc +FinalParameters +Parameter includedRootFolderAntPattern should be final. +100 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 83). +101 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 92). +103 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 116). +104 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +109 + + Error
javadoc +JavadocMethod +Missing a Javadoc comment. +113 ++org/springframework/cloud/contract/maven/verifier/GenerateStubsMojo.java
++
+ +Severity +Category +Rule +Message +Line + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 91). +36 + ++ Error
whitespace +FileTabCharacter +File contains tab characters (this is the first instance). +39 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +42 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +46 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +50 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 92). +53 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +56 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 96). +59 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +62 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +65 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +71 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +74 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +77 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 83). +80 + ++ Error
design +DesignForExtension +Class 'GenerateStubsMojo' looks like designed for extension (can be subclassed), but the method 'execute' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'GenerateStubsMojo' final or making the method 'execute' static/final/abstract/empty, or adding allowed annotation for the method. +80 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +80 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 129). +83 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 131). +84 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 102). +88 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +91 + ++ Error
misc +FinalParameters +Parameter stubsOutputDir should be final. +91 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 104). +95 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 130). +96 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 104). +99 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 90). +100 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 82). +102 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 83). +103 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 93). +105 + ++ Error
whitespace +NoWhitespaceAfter +'{' is followed by whitespace. +105 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 99). +106 + ++ Error
coding +AvoidInlineConditionals +Avoid inline conditionals. +106 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 106). +109 + ++ Error
blocks +RightCurly +'}' at column 3 should be on the same line as the next part of a multi-block statement (one that directly contains multiple blocks: if/else-if/else, do/while or try/catch/finally). +111 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 101). +114 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +119 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +129 + + Error
sizes +LineLength +Line is longer than 80 characters (found 84). +130 ++org/springframework/cloud/contract/maven/verifier/GenerateTestsMojo.java
++
+ +Severity +Category +Rule +Message +Line + ++ Error
javadoc +JavadocPackage +Missing package-info.java file. ++ ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +46 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 82). +50 + ++ Error
whitespace +FileTabCharacter +File contains tab characters (this is the first instance). +51 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +54 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 82). +57 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +57 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 89). +58 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +61 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 101). +62 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +65 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +68 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +71 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +74 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +77 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +80 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +83 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +89 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +95 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +101 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 86). +108 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +115 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 91). +116 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +121 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 92). +124 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +124 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +127 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 93). +130 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +130 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 113). +134 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +140 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 102). +144 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 83). +145 + ++ Error
javadoc +JavadocStyle +Extra HTML tag found: </p> +146 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 125). +147 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +153 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 114). +160 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 114). +161 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 107). +162 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 109). +163 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 84). +164 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 122). +170 + ++ Error
javadoc +JavadocStyle +Extra HTML tag found: </p> +172 + ++ Error
javadoc +JavadocStyle +Extra HTML tag found: </p> +174 + ++ Error
javadoc +JavadocStyle +Extra HTML tag found: </p> +176 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 113). +177 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +207 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 83). +213 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +217 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +224 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 133). +225 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +230 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +232 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 91). +233 + ++ Error
misc +FinalParameters +Parameter aetherStubDownloaderFactory should be final. +233 + ++ Error
coding +HiddenField +'aetherStubDownloaderFactory' hides a field. +233 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 83). +237 + ++ Error
design +DesignForExtension +Class 'GenerateTestsMojo' looks like designed for extension (can be subclassed), but the method 'execute' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'GenerateTestsMojo' final or making the method 'execute' static/final/abstract/empty, or adding allowed annotation for the method. +237 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +237 + ++ Error
blocks +NeedBraces +'if' construct must use '{}'s. +239 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 156). +239 + ++ Error
blocks +NeedBraces +'if' construct must use '{}'s. +240 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 154). +240 + ++ Error
blocks +NeedBraces +'if' construct must use '{}'s. +241 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 139). +241 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 128). +245 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 103). +246 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 109). +248 + ++ Error
coding +HiddenField +'contractsDirectory' hides a field. +248 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 110). +249 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 99). +250 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 101). +251 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 155). +252 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 100). +253 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 102). +255 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 114). +258 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 128). +261 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 124). +262 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 105). +263 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 90). +268 + ++ Error
blocks +RightCurly +'}' at column 3 should be on the same line as the next part of a multi-block statement (one that directly contains multiple blocks: if/else-if/else, do/while or try/catch/finally). +269 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 108). +272 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +277 + ++ Error
misc +FinalParameters +Parameter config should be final. +277 + ++ Error
misc +FinalParameters +Parameter contractsDirectory should be final. +278 + ++ Error
coding +HiddenField +'contractsDirectory' hides a field. +278 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +299 + ++ Error
misc +FinalParameters +Parameter contractsDirectory should be final. +299 + ++ Error
coding +HiddenField +'contractsDirectory' hides a field. +299 + ++ Error
design +DesignForExtension +Class 'GenerateTestsMojo' looks like designed for extension (can be subclassed), but the method 'mappingsToMap' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'GenerateTestsMojo' final or making the method 'mappingsToMap' static/final/abstract/empty, or adding allowed annotation for the method. +307 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +307 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 94). +313 + ++ Error
design +DesignForExtension +Class 'GenerateTestsMojo' looks like designed for extension (can be subclassed), but the method 'getExcludedFiles' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'GenerateTestsMojo' final or making the method 'getExcludedFiles' static/final/abstract/empty, or adding allowed annotation for the method. +318 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +318 + ++ Error
design +DesignForExtension +Class 'GenerateTestsMojo' looks like designed for extension (can be subclassed), but the method 'setExcludedFiles' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'GenerateTestsMojo' final or making the method 'setExcludedFiles' static/final/abstract/empty, or adding allowed annotation for the method. +322 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +322 + ++ Error
misc +FinalParameters +Parameter excludedFiles should be final. +322 + ++ Error
coding +HiddenField +'excludedFiles' hides a field. +322 + ++ Error
design +DesignForExtension +Class 'GenerateTestsMojo' looks like designed for extension (can be subclassed), but the method 'getIgnoredFiles' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'GenerateTestsMojo' final or making the method 'getIgnoredFiles' static/final/abstract/empty, or adding allowed annotation for the method. +326 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +326 + ++ Error
design +DesignForExtension +Class 'GenerateTestsMojo' looks like designed for extension (can be subclassed), but the method 'setIgnoredFiles' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'GenerateTestsMojo' final or making the method 'setIgnoredFiles' static/final/abstract/empty, or adding allowed annotation for the method. +330 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +330 + ++ Error
misc +FinalParameters +Parameter ignoredFiles should be final. +330 + ++ Error
coding +HiddenField +'ignoredFiles' hides a field. +330 + ++ Error
design +DesignForExtension +Class 'GenerateTestsMojo' looks like designed for extension (can be subclassed), but the method 'isAssertJsonSize' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'GenerateTestsMojo' final or making the method 'isAssertJsonSize' static/final/abstract/empty, or adding allowed annotation for the method. +334 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +334 + ++ Error
design +DesignForExtension +Class 'GenerateTestsMojo' looks like designed for extension (can be subclassed), but the method 'setAssertJsonSize' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'GenerateTestsMojo' final or making the method 'setAssertJsonSize' static/final/abstract/empty, or adding allowed annotation for the method. +338 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +338 + ++ Error
misc +FinalParameters +Parameter assertJsonSize should be final. +338 + + Error
coding +HiddenField +'assertJsonSize' hides a field. +338 ++org/springframework/cloud/contract/maven/verifier/ManifestCreator.java
++
+ +Severity +Category +Rule +Message +Line + ++ Error
javadoc +JavadocType +Missing a Javadoc comment. +26 + ++ Error
design +HideUtilityClassConstructor +Utility classes should not have a public or default constructor. +26 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 94). +27 + ++ Error
whitespace +FileTabCharacter +File contains tab characters (this is the first instance). +27 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +27 + ++ Error
misc +FinalParameters +Parameter project should be final. +27 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 88). +29 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 121). +32 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 102). +34 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 118). +35 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 89). +37 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 128). +38 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +45 + ++ Error
misc +FinalParameters +Parameter plugins should be final. +45 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 98). +47 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 81). +54 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +54 + ++ Error
misc +FinalParameters +Parameter deps should be final. +54 + + Error
sizes +LineLength +Line is longer than 80 characters (found 91). +56 ++org/springframework/cloud/contract/maven/verifier/MavenContractsDownloader.java
++
+ +Severity +Category +Rule +Message +Line + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +35 + ++ Error
whitespace +FileTabCharacter +File contains tab characters (this is the first instance). +43 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +43 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 85). +44 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +44 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +46 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +47 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +48 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +49 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +50 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +51 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 82). +52 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +52 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +53 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +54 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +55 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +56 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +57 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +58 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 85). +60 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +60 + ++ Error
sizes +ParameterNumber +More than 7 parameters (found 12). +60 + ++ Error
misc +FinalParameters +Parameter project should be final. +60 + ++ Error
coding +HiddenField +'project' hides a field. +60 + ++ Error
misc +FinalParameters +Parameter contractDependency should be final. +60 + ++ Error
coding +HiddenField +'contractDependency' hides a field. +60 + ++ Error
misc +FinalParameters +Parameter contractsPath should be final. +61 + ++ Error
coding +HiddenField +'contractsPath' hides a field. +61 + ++ Error
misc +FinalParameters +Parameter contractsRepositoryUrl should be final. +61 + ++ Error
coding +HiddenField +'contractsRepositoryUrl' hides a field. +61 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 101). +62 + ++ Error
misc +FinalParameters +Parameter stubsMode should be final. +62 + ++ Error
coding +HiddenField +'stubsMode' hides a field. +62 + ++ Error
misc +FinalParameters +Parameter log should be final. +62 + ++ Error
coding +HiddenField +'log' hides a field. +62 + ++ Error
misc +FinalParameters +Parameter repositoryUsername should be final. +62 + ++ Error
coding +HiddenField +'repositoryUsername' hides a field. +62 + ++ Error
misc +FinalParameters +Parameter repositoryPassword should be final. +63 + ++ Error
coding +HiddenField +'repositoryPassword' hides a field. +63 + ++ Error
misc +FinalParameters +Parameter repositoryProxyHost should be final. +63 + ++ Error
coding +HiddenField +'repositoryProxyHost' hides a field. +63 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 82). +64 + ++ Error
misc +FinalParameters +Parameter repositoryProxyPort should be final. +64 + ++ Error
coding +HiddenField +'repositoryProxyPort' hides a field. +64 + ++ Error
misc +FinalParameters +Parameter deleteStubsAfterTest should be final. +64 + ++ Error
coding +HiddenField +'deleteStubsAfterTest' hides a field. +64 + ++ Error
misc +FinalParameters +Parameter contractsProperties should be final. +65 + ++ Error
coding +HiddenField +'contractsProperties' hides a field. +65 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 89). +76 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 118). +81 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +81 + ++ Error
misc +FinalParameters +Parameter config should be final. +81 + ++ Error
misc +FinalParameters +Parameter defaultContractsDir should be final. +81 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 113). +82 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 89). +83 + ++ Error
whitespace +OperatorWrap +'?' should be on a new line. +83 + ++ Error
coding +AvoidInlineConditionals +Avoid inline conditionals. +83 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 88). +86 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 139). +87 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 107). +88 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 122). +91 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 108). +92 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 130). +93 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 105). +96 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +100 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 121). +101 + ++ Error
whitespace +OperatorWrap +'||' should be on a new line. +101 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 81). +102 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +105 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 84). +106 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 108). +107 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +111 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +117 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 81). +118 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 81). +119 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 84). +123 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 84). +126 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 94). +129 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +134 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 92). +137 + ++ Error
whitespace +OperatorWrap +'?' should be on a new line. +137 + ++ Error
coding +AvoidInlineConditionals +Avoid inline conditionals. +137 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 86). +138 + + Error
sizes +LineLength +Line is longer than 80 characters (found 87). +140 ++org/springframework/cloud/contract/maven/verifier/PushStubsToScmMojo.java
++
+ +Severity +Category +Rule +Message +Line + ++ Error
whitespace +FileTabCharacter +File contains tab characters (this is the first instance). +40 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +40 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +44 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +48 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 92). +51 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +54 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 113). +57 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +60 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 113). +77 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +83 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +90 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +97 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 133). +98 + ++ Error
design +DesignForExtension +Class 'PushStubsToScmMojo' looks like designed for extension (can be subclassed), but the method 'execute' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'PushStubsToScmMojo' final or making the method 'execute' static/final/abstract/empty, or adding allowed annotation for the method. +103 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +103 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 129). +106 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 149). +107 + ++ Error
whitespace +OperatorWrap +'||' should be on a new line. +110 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 108). +111 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 160). +112 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 134). +115 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 88). +116 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 125). +117 + ++ Error
design +DesignForExtension +Class 'PushStubsToScmMojo' looks like designed for extension (can be subclassed), but the method 'buildOptions' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'PushStubsToScmMojo' final or making the method 'buildOptions' static/final/abstract/empty, or adding allowed annotation for the method. +120 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +120 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 81). +121 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 81). +122 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 84). +123 + + Error
sizes +LineLength +Line is longer than 80 characters (found 84). +127 ++org/springframework/cloud/contract/maven/verifier/RunMojo.java
++
+ +Severity +Category +Rule +Message +Line + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 100). +43 + ++ Error
whitespace +FileTabCharacter +File contains tab characters (this is the first instance). +46 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +46 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +49 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +52 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +55 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 96). +58 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 92). +64 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 100). +70 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +73 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 83). +74 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +79 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 100). +82 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +85 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 100). +88 + ++ Error
javadoc +JavadocStyle +First sentence should end with a period. +91 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 88). +92 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 107). +94 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +103 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +106 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +108 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +110 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 92). +111 + ++ Error
misc +FinalParameters +Parameter localStubRunner should be final. +111 + ++ Error
coding +HiddenField +'localStubRunner' hides a field. +111 + ++ Error
misc +FinalParameters +Parameter remoteStubRunner should be final. +111 + ++ Error
coding +HiddenField +'remoteStubRunner' hides a field. +111 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 83). +116 + ++ Error
design +DesignForExtension +Class 'RunMojo' looks like designed for extension (can be subclassed), but the method 'execute' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'RunMojo' final or making the method 'execute' static/final/abstract/empty, or adding allowed annotation for the method. +116 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +116 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 119). +118 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 88). +122 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 85). +126 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 125). +128 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 97). +129 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 83). +133 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 95). +135 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 103). +142 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +147 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +155 + + Error
javadoc +JavadocMethod +Missing a Javadoc comment. +166 ++org/springframework/cloud/contract/maven/verifier/stubrunner/AetherStubDownloaderFactory.java
++
+ +Severity +Category +Rule +Message +Line + ++ Error
javadoc +JavadocType +Missing a Javadoc comment. +34 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 92). +37 + ++ Error
whitespace +FileTabCharacter +File contains tab characters (this is the first instance). +37 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +37 + ++ Error
naming +ConstantName +Name 'log' must match pattern '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'. +37 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +39 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +40 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +42 + ++ Error
misc +FinalParameters +Parameter repoSystem should be final. +43 + ++ Error
coding +HiddenField +'repoSystem' hides a field. +43 + ++ Error
misc +FinalParameters +Parameter project should be final. +44 + ++ Error
coding +HiddenField +'project' hides a field. +44 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 87). +49 + ++ Error
design +DesignForExtension +Class 'AetherStubDownloaderFactory' looks like designed for extension (can be subclassed), but the method 'build' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'AetherStubDownloaderFactory' final or making the method 'build' static/final/abstract/empty, or adding allowed annotation for the method. +49 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +49 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 100). +51 + ++ Error
misc +FinalParameters +Parameter stubRunnerOptions should be final. +51 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 113). +52 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 108). +53 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 134). +54 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 97). +58 + ++ Error
misc +FinalParameters +Parameter location should be final. +58 + + Error
misc +FinalParameters +Parameter resourceLoader should be final. +58 ++org/springframework/cloud/contract/maven/verifier/stubrunner/LocalStubRunner.java
++
+ +Severity +Category +Rule +Message +Line + ++ Error
javadoc +JavadocPackage +Missing package-info.java file. ++ ++ Error
javadoc +JavadocType +Missing a Javadoc comment. +26 + ++ Error
whitespace +FileTabCharacter +File contains tab characters (this is the first instance). +28 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +28 + ++ Error
naming +ConstantName +Name 'log' must match pattern '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'. +28 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 85). +30 + ++ Error
design +DesignForExtension +Class 'LocalStubRunner' looks like designed for extension (can be subclassed), but the method 'run' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'LocalStubRunner' final or making the method 'run' static/final/abstract/empty, or adding allowed annotation for the method. +30 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +30 + ++ Error
misc +FinalParameters +Parameter options should be final. +30 + + Error
sizes +LineLength +Line is longer than 80 characters (found 85). +31 +org/springframework/cloud/contract/maven/verifier/stubrunner/RemoteStubRunner.java
++
+ +Severity +Category +Rule +Message +Line + ++ Error
javadoc +JavadocType +Missing a Javadoc comment. +30 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 81). +32 + ++ Error
whitespace +FileTabCharacter +File contains tab characters (this is the first instance). +32 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +32 + ++ Error
naming +ConstantName +Name 'log' must match pattern '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'. +32 + ++ Error
javadoc +JavadocVariable +Missing a Javadoc comment. +34 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +36 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 90). +37 + ++ Error
misc +FinalParameters +Parameter aetherStubDownloaderFactory should be final. +37 + ++ Error
coding +HiddenField +'aetherStubDownloaderFactory' hides a field. +37 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 112). +41 + ++ Error
design +DesignForExtension +Class 'RemoteStubRunner' looks like designed for extension (can be subclassed), but the method 'run' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'RemoteStubRunner' final or making the method 'run' static/final/abstract/empty, or adding allowed annotation for the method. +41 + ++ Error
javadoc +JavadocMethod +Missing a Javadoc comment. +41 + ++ Error
misc +FinalParameters +Parameter options should be final. +41 + ++ Error
misc +FinalParameters +Parameter repositorySystemSession should be final. +41 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 127). +42 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 88). +45 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 88). +47 + ++ Error
sizes +LineLength +Line is longer than 80 characters (found 82). +49 + ++ Error
blocks +RightCurly +'}' at column 3 should be on the same line as the next part of a multi-block statement (one that directly contains multiple blocks: if/else-if/else, do/while or try/catch/finally). +52 + + Error
sizes +LineLength +Line is longer than 80 characters (found 112). +54 ©2016 - 2018 Spring File: 12, - Errors: 0, + Errors: 545, Warnings: 0, Infos: 0 @@ -55,7 +55,7 @@ under the License. 0- 0 + 110 @@ -69,7 +69,7 @@ under the License. 0 - 0 + 84 @@ -83,7 +83,7 @@ under the License. 0 - 0 + 37 @@ -97,7 +97,7 @@ under the License. 0 - 0 + 37 @@ -111,7 +111,7 @@ under the License. 0 - 0 + 29 @@ -125,7 +125,7 @@ under the License. 0 - 0 + 23 @@ -139,7 +139,7 @@ under the License. 0 - 0 + 41 @@ -153,7 +153,7 @@ under the License. 0 - 0 + 51 @@ -167,7 +167,7 @@ under the License. 0 - 0 + 21 @@ -181,7 +181,7 @@ under the License. 0 - 0 + 10 @@ -195,7 +195,7 @@ under the License. 0 - 0 + 19 @@ -209,7 +209,7 @@ under the License. 0 diff --git a/spring-cloud-contract-maven-plugin/complex.html b/spring-cloud-contract-maven-plugin/complex.html index edfc169511..18ed01d114 100644 --- a/spring-cloud-contract-maven-plugin/complex.html +++ b/spring-cloud-contract-maven-plugin/complex.html @@ -1,13 +1,13 @@ - +- 0 + 83 Spring Cloud Contract Maven Plugin – @@ -146,7 +146,7 @@2.2.4 Spring Cloud Contract Maven Plugin – Project Plugins @@ -146,7 +146,7 @@+ org.apache.maven.plugins -maven-checkstyle-plugin -2.17 maven-checkstyle-plugin +3.0.0 org.apache.maven.plugins maven-clean-plugin @@ -356,20 +356,20 @@2.4 + org.apache.maven.plugins -maven-jar-plugin -3.0.0 maven-jar-plugin +3.1.0 + org.apache.maven.plugins -maven-javadoc-plugin -2.10.4 maven-javadoc-plugin +3.0.1 org.apache.maven.plugins maven-plugin-plugin 3.5 + org.apache.maven.plugins -maven-resources-plugin -2.6 maven-resources-plugin +3.1.0 org.apache.maven.plugins maven-scm-publish-plugin @@ -380,8 +380,8 @@3.4 + org.apache.maven.plugins -maven-source-plugin -2.4 maven-source-plugin +3.0.1 org.apache.maven.plugins maven-surefire-plugin @@ -411,8 +411,8 @@Version + org.apache.maven.plugins -maven-checkstyle-plugin -2.17 maven-checkstyle-plugin +3.0.0 org.apache.maven.plugins maven-plugin-plugin diff --git a/spring-cloud-contract-maven-plugin/project-info.html b/spring-cloud-contract-maven-plugin/project-info.html index d3fa45ae6f..2f475b7299 100644 --- a/spring-cloud-contract-maven-plugin/project-info.html +++ b/spring-cloud-contract-maven-plugin/project-info.html @@ -1,13 +1,13 @@ - +Spring Cloud Contract Maven Plugin – Project Information @@ -146,7 +146,7 @@