diff --git a/pom.xml b/pom.xml index 2595c24979..deac7315fc 100644 --- a/pom.xml +++ b/pom.xml @@ -548,6 +548,7 @@ org.codehaus.mojo flatten-maven-plugin + 1.5.0 org.apache.maven.plugins @@ -615,15 +616,6 @@ - - - maven-restlet - Maven Restlet - https://maven.restlet.org - - false - - sonatype-snapshots @@ -632,16 +624,6 @@ true - - - netflix-candidates Netflix Candidates @@ -675,14 +657,6 @@ false - - spring-releases - Spring Releases - https://repo.spring.io/release - - false - - diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/WireMockHttpServerStub.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/WireMockHttpServerStub.java index 6ef55142eb..8ca2223eb1 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/WireMockHttpServerStub.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/WireMockHttpServerStub.java @@ -32,7 +32,7 @@ import java.util.concurrent.ConcurrentHashMap; import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.client.WireMock; import com.github.tomakehurst.wiremock.common.JsonException; -import com.github.tomakehurst.wiremock.common.Slf4jNotifier; +import com.github.tomakehurst.wiremock.common.Notifier; import com.github.tomakehurst.wiremock.core.WireMockConfiguration; import com.github.tomakehurst.wiremock.extension.Extension; import com.github.tomakehurst.wiremock.security.ClientAuthenticator; @@ -40,6 +40,8 @@ import com.github.tomakehurst.wiremock.security.NoClientAuthenticator; import com.github.tomakehurst.wiremock.stubbing.StubMapping; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import wiremock.com.github.jknack.handlebars.Helper; import org.springframework.cloud.contract.stubrunner.HttpServerStub; @@ -274,6 +276,35 @@ public class WireMockHttpServerStub implements HttpServerStub { WireMock.get(WireMock.urlEqualTo(url)).willReturn(WireMock.aResponse().withBody(body).withStatus(200))); } + static class Slf4jNotifier implements Notifier { + + private static final Logger log = LoggerFactory.getLogger("WireMock"); + + private final boolean verbose; + + Slf4jNotifier(boolean verbose) { + this.verbose = verbose; + } + + @Override + public void info(String message) { + if (verbose) { + log.info(message); + } + } + + @Override + public void error(String message) { + log.error(message); + } + + @Override + public void error(String message, Throwable t) { + log.error(message, t); + } + + } + } class PortAndMappings { diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockConfiguration.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockConfiguration.java index 06ee42c2a8..e2549c30aa 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockConfiguration.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/WireMockConfiguration.java @@ -24,13 +24,15 @@ import java.util.List; import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.common.Slf4jNotifier; +import com.github.tomakehurst.wiremock.common.Notifier; import com.github.tomakehurst.wiremock.core.Options; import com.github.tomakehurst.wiremock.extension.responsetemplating.ResponseTemplateTransformer; import com.github.tomakehurst.wiremock.stubbing.StubMapping; import jakarta.annotation.PostConstruct; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.annotation.Autowired; @@ -321,6 +323,35 @@ public class WireMockConfiguration implements SmartLifecycle { callback.run(); } + static class Slf4jNotifier implements Notifier { + + private static final Logger log = LoggerFactory.getLogger("WireMock"); + + private final boolean verbose; + + Slf4jNotifier(boolean verbose) { + this.verbose = verbose; + } + + @Override + public void info(String message) { + if (verbose) { + log.info(message); + } + } + + @Override + public void error(String message) { + log.error(message); + } + + @Override + public void error(String message, Throwable t) { + log.error(message, t); + } + + } + } @ConfigurationProperties("wiremock") diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockApplicationTests.java index 8aa3e0f374..d1282d6fdf 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/AutoConfigureWireMockApplicationTests.java @@ -16,12 +16,14 @@ package org.springframework.cloud.contract.wiremock; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; +import org.springframework.boot.test.system.OutputCaptureRule; import org.springframework.test.context.junit4.SpringRunner; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; @@ -36,6 +38,9 @@ import static org.assertj.core.api.Assertions.assertThat; @AutoConfigureWireMock(port = 26384) public class AutoConfigureWireMockApplicationTests { + @Rule + public OutputCaptureRule output = new OutputCaptureRule(); + @Autowired private Service service; @@ -47,6 +52,8 @@ public class AutoConfigureWireMockApplicationTests { stubFor(get(urlEqualTo("/test")) .willReturn(aResponse().withHeader("Content-Type", "text/plain").withBody("Hello World!"))); assertThat(this.service.go()).isEqualTo("Hello World!"); + assertThat(this.output.getOut()).as("Must contain debug logging for WireMock") + .contains("Matched response definition:"); } @Test