diff --git a/boot/Dockerfile b/boot/Dockerfile index 342cf603..05f9e291 100644 --- a/boot/Dockerfile +++ b/boot/Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:17.0.17_10-jre-noble +FROM eclipse-temurin:25.0.3_9-jre-noble LABEL authors="ReaJason" diff --git a/boot/build.gradle.kts b/boot/build.gradle.kts index f7d1f537..529fd4e4 100644 --- a/boot/build.gradle.kts +++ b/boot/build.gradle.kts @@ -1,6 +1,6 @@ plugins { id("java") - id("org.springframework.boot") version "3.5.8" + id("org.springframework.boot") version "4.1.0" id("io.spring.dependency-management") version "1.1.7" } @@ -31,11 +31,8 @@ dependencies { exclude(group = "commons-logging", module = "commons-logging") } implementation("org.springframework.boot:spring-boot-starter-thymeleaf") - implementation("org.springframework.boot:spring-boot-starter-web") { - exclude(group = "org.springframework.boot", module = "spring-boot-starter-tomcat") - } + implementation("org.springframework.boot:spring-boot-starter-web") implementation(libs.commons.lang3) - implementation("org.springframework.boot:spring-boot-starter-undertow") compileOnly("org.projectlombok:lombok") developmentOnly("org.springframework.boot:spring-boot-devtools") annotationProcessor("org.springframework.boot:spring-boot-configuration-processor") diff --git a/boot/src/test/java/com/reajason/javaweb/boot/controller/ConfigControllerIntegrationTest.java b/boot/src/test/java/com/reajason/javaweb/boot/controller/ConfigControllerIntegrationTest.java index 712e9697..9fdf676a 100644 --- a/boot/src/test/java/com/reajason/javaweb/boot/controller/ConfigControllerIntegrationTest.java +++ b/boot/src/test/java/com/reajason/javaweb/boot/controller/ConfigControllerIntegrationTest.java @@ -1,11 +1,12 @@ package com.reajason.javaweb.boot.controller; import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; +import org.junit.jupiter.api.BeforeEach; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.web.client.TestRestTemplate; +import org.springframework.boot.test.web.server.LocalServerPort; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestClient; import java.util.List; import java.util.Map; @@ -21,27 +22,45 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class ConfigControllerIntegrationTest { - @Autowired - private TestRestTemplate restTemplate; + @LocalServerPort + private int port; + + private RestClient restClient; + + @BeforeEach + void setUp() { + restClient = RestClient.builder() + .baseUrl("http://localhost:" + port) + .build(); + } @Test public void testConfigEndpoint() { - ResponseEntity response = restTemplate.getForEntity("/api/config", Map.class); + ResponseEntity response = restClient.get() + .uri("/api/config") + .retrieve() + .toEntity(Map.class); assertEquals(HttpStatus.OK, response.getStatusCode()); assertNotNull(response.getBody()); } @Test public void testConfigServersEndpoint() { - ResponseEntity response = restTemplate.getForEntity("/api/config/servers", Map.class); + ResponseEntity response = restClient.get() + .uri("/api/config/servers") + .retrieve() + .toEntity(Map.class); assertEquals(HttpStatus.OK, response.getStatusCode()); assertNotNull(response.getBody()); } @Test public void testConfigPackersEndpoint() { - ResponseEntity response = restTemplate.getForEntity("/api/config/packers", List.class); + ResponseEntity response = restClient.get() + .uri("/api/config/packers") + .retrieve() + .toEntity(List.class); assertEquals(HttpStatus.OK, response.getStatusCode()); assertNotNull(response.getBody()); } -} \ No newline at end of file +} diff --git a/boot/src/test/java/com/reajason/javaweb/boot/controller/MemShellGeneratorControllerTest.java b/boot/src/test/java/com/reajason/javaweb/boot/controller/MemShellGeneratorControllerTest.java index eaac9fbd..d47eb59a 100644 --- a/boot/src/test/java/com/reajason/javaweb/boot/controller/MemShellGeneratorControllerTest.java +++ b/boot/src/test/java/com/reajason/javaweb/boot/controller/MemShellGeneratorControllerTest.java @@ -8,12 +8,13 @@ import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.config.InjectorConfig; import com.reajason.javaweb.memshell.config.ShellConfig; import com.reajason.javaweb.packer.Packers; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.web.client.TestRestTemplate; +import org.springframework.boot.test.web.server.LocalServerPort; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestClient; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -25,8 +26,17 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) class MemShellGeneratorControllerTest { - @Autowired - TestRestTemplate restTemplate; + @LocalServerPort + private int port; + + private RestClient restClient; + + @BeforeEach + void setUp() { + restClient = RestClient.builder() + .baseUrl("http://localhost:" + port) + .build(); + } @Test void generateShell() { @@ -50,9 +60,12 @@ class MemShellGeneratorControllerTest { shellToolConfigDTO.setHeaderName("User-Agent"); shellToolConfigDTO.setHeaderValue("hello"); request.setShellToolConfig(shellToolConfigDTO); - ResponseEntity response = restTemplate.postForEntity( - "/api/memshell/generate", request, MemShellGenerateResponse.class); + ResponseEntity response = restClient.post() + .uri("/api/memshell/generate") + .body(request) + .retrieve() + .toEntity(MemShellGenerateResponse.class); assertEquals(HttpStatus.OK, response.getStatusCode()); assertNotNull(response.getBody()); } -} \ No newline at end of file +}