Files

85 lines
3.5 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>4.1.1</version>
<relativePath/>
</parent>
<groupId>com.ankurm</groupId>
<artifactId>testing-no-containers</artifactId>
<version>1.0.0</version>
<name>testing-no-containers</name>
<description>Testing Spring Boot 4 without containers: @MockitoBean/@MockitoSpyBean, WireMock fault injection, MockWebServer for RestClient, and context-cache behavior</description>
<packaging>jar</packaging>
<properties>
<java.version>25</java.version>
<!-- org.wiremock:wiremock's 4.0.0 line is beta-only as of this writing (4.0.0-beta.1
through 4.0.0-beta.40 on Maven Central): 3.13.2 is the real latest GA; see the post. -->
<wiremock.version>3.13.2</wiremock.version>
<mockwebserver.version>5.5.0</mockwebserver.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-restclient</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- WireMock: standalone HTTP server with fault injection, not managed by
spring-boot-dependencies; pin it explicitly. The bare "wiremock" artifact no longer
bundles a server in the 3.x line (FatalStartupException: "Jetty 11 is not present and
no suitable HttpServerFactory extension was found"), and adding wiremock-jetty12 on top
of it is worse, not better: wiremock's own transitive deps still drag in real Jetty 11
modules (jetty-servlet, jetty-servlets, jetty-webapp, http2-server at 11.0.26) alongside
wiremock-jetty12's Jetty 12 ones, Maven's dependency mediation then picks one jetty-io
version for everyone, and the mismatched pair throws NoClassDefFoundError at server
startup for a class as basic as org.eclipse.jetty.io.WriteFlusher$Listener. The fix is
wiremock-standalone: a single shaded jar with its own relocated copy of Jetty
(wiremock.org.eclipse.jetty.*), so nothing on your own classpath can clash with it;
see the post. -->
<dependency>
<groupId>org.wiremock</groupId>
<artifactId>wiremock-standalone</artifactId>
<version>${wiremock.version}</version>
<scope>test</scope>
</dependency>
<!-- MockWebServer: OkHttp's own stub server, JUnit 5 extension flavor. Also not
managed by spring-boot-dependencies. -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>mockwebserver3-junit5</artifactId>
<version>${mockwebserver.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>testing-no-containers</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>