diff --git a/Dockerfile b/Dockerfile index cdf29c1..d35e080 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:20.6.1 AS frontend +FROM node:23 AS frontend WORKDIR /frontend @@ -25,12 +25,13 @@ RUN ./gradlew --no-daemon dependencies COPY lombok.config . COPY src src +COPY config config COPY --from=frontend /frontend/dist /backend/src/main/resources/static RUN ./gradlew --no-daemon build -ENV JAVA_OPTS "-Xmx512M -Xms512M" +ENV JAVA_OPTS="-Xmx512M -Xms512M" EXPOSE 8080 -CMD java -jar build/libs/HexletSpringBlog-1.0-SNAPSHOT.jar +CMD ["java", "-jar", "build/libs/HexletSpringBlog-1.0-SNAPSHOT.jar"] diff --git a/build.gradle.kts b/build.gradle.kts index 6fc33c2..b30202c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,11 +3,11 @@ import org.gradle.api.tasks.testing.logging.TestLogEvent plugins { application - // "checkstyle" - id("io.freefair.lombok") version "8.6" - id("org.springframework.boot") version "3.2.4" + checkstyle + id("io.freefair.lombok") version "8.13.1" + id("org.springframework.boot") version "3.4.4" id("io.spring.dependency-management") version "1.1.4" - id("com.github.ben-manes.versions") version "0.50.0" + id("com.github.ben-manes.versions") version "0.52.0" } group = "io.hexlet.blog" @@ -27,23 +27,24 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-security") implementation("org.springframework.boot:spring-boot-starter-oauth2-resource-server") - implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0") + implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.6") implementation("org.openapitools:jackson-databind-nullable:0.2.6") - implementation("org.mapstruct:mapstruct:1.6.0.Beta1") - annotationProcessor("org.mapstruct:mapstruct-processor:1.6.0.Beta1") + implementation("org.mapstruct:mapstruct:1.6.3") + annotationProcessor("org.mapstruct:mapstruct-processor:1.6.3") // implementation("io.github.wimdeblauwe:error-handling-spring-boot-starter:4.2.0") - implementation("org.instancio:instancio-junit:3.6.0") - implementation("net.javacrumbs.json-unit:json-unit-assertj:3.2.2") - implementation("net.datafaker:datafaker:2.0.2") + implementation("org.instancio:instancio-junit:5.4.1") + implementation("net.javacrumbs.json-unit:json-unit-assertj:4.1.0") + implementation("net.datafaker:datafaker:2.4.3") - runtimeOnly("com.h2database:h2:2.2.224") + runtimeOnly("com.h2database:h2:2.3.232") testImplementation("org.springframework.security:spring-security-test") testImplementation("org.springframework.boot:spring-boot-starter-test") - testImplementation(platform("org.junit:junit-bom:5.10.1")) - testImplementation("org.junit.jupiter:junit-jupiter:5.10.1") + testImplementation(platform("org.junit:junit-bom:5.12.2")) + testImplementation("org.junit.jupiter:junit-jupiter") + testRuntimeOnly("org.junit.platform:junit-platform-launcher") } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b82aa23..37f853b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/src/main/java/io/hexlet/blog/repository/PostCommentRepository.java b/src/main/java/io/hexlet/blog/repository/PostCommentRepository.java index 8329b5d..3a63d3f 100644 --- a/src/main/java/io/hexlet/blog/repository/PostCommentRepository.java +++ b/src/main/java/io/hexlet/blog/repository/PostCommentRepository.java @@ -1,17 +1,12 @@ package io.hexlet.blog.repository; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; -import io.hexlet.blog.model.Post; import io.hexlet.blog.model.PostComment; @Repository -public interface PostCommentRepository extends JpaRepository, JpaSpecificationExecutor { - // Page findAll(Specification spec, Pageable pageable); -} +public interface PostCommentRepository + extends JpaRepository, JpaSpecificationExecutor { } diff --git a/src/test/java/io/hexlet/blog/controller/api/HelloControllerTest.java b/src/test/java/io/hexlet/blog/controller/api/HelloControllerTest.java deleted file mode 100644 index df69003..0000000 --- a/src/test/java/io/hexlet/blog/controller/api/HelloControllerTest.java +++ /dev/null @@ -1,24 +0,0 @@ -package io.hexlet.blog.controller.api; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.web.servlet.MockMvc; -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import org.springframework.test.web.servlet.result.MockMvcResultMatchers; - -@SpringBootTest -@AutoConfigureMockMvc -public class HelloControllerTest { - - @Autowired - private MockMvc mockMvc; - - // @Test - // public void testIndex() throws Exception { - // mockMvc.perform(MockMvcRequestBuilders.get("/")) - // .andExpect(MockMvcResultMatchers.status().isOk()); - // } -} - diff --git a/src/test/java/io/hexlet/blog/controller/api/PostsCommentsControllerTest.java b/src/test/java/io/hexlet/blog/controller/api/PostsCommentsControllerTest.java index 8d116b3..3998dd2 100644 --- a/src/test/java/io/hexlet/blog/controller/api/PostsCommentsControllerTest.java +++ b/src/test/java/io/hexlet/blog/controller/api/PostsCommentsControllerTest.java @@ -111,10 +111,10 @@ public void testIndex() throws Exception { .andReturn(); var body = result.getResponse().getContentAsString(); - Map content = om.readValue(body, new TypeReference<>() {}); + Map content = om.readValue(body, new TypeReference<>() { }); var postComments = content.get("content"); - List postCommentDTOS = om.convertValue(postComments, new TypeReference<>() {}); + List postCommentDTOS = om.convertValue(postComments, new TypeReference<>() { }); var actual = postCommentDTOS.stream().map(postCommentMapper::map).toList(); var expected = postCommentRepository.findAll(); diff --git a/src/test/java/io/hexlet/blog/controller/api/PostsControllerTest.java b/src/test/java/io/hexlet/blog/controller/api/PostsControllerTest.java index e5917c9..cd0436b 100644 --- a/src/test/java/io/hexlet/blog/controller/api/PostsControllerTest.java +++ b/src/test/java/io/hexlet/blog/controller/api/PostsControllerTest.java @@ -105,7 +105,7 @@ public void testIndex() throws Exception { .getResponse(); var body = response.getContentAsString(); - List postDTOS = om.readValue(body, new TypeReference<>() {}); + List postDTOS = om.readValue(body, new TypeReference<>() { }); var actual = postDTOS.stream().map(postMapper::map).toList(); var expected = postRepository.findAll(); diff --git a/src/test/java/io/hexlet/blog/controller/api/UsersControllerTest.java b/src/test/java/io/hexlet/blog/controller/api/UsersControllerTest.java index 0005b3a..fa1e198 100644 --- a/src/test/java/io/hexlet/blog/controller/api/UsersControllerTest.java +++ b/src/test/java/io/hexlet/blog/controller/api/UsersControllerTest.java @@ -88,7 +88,7 @@ public void testIndex() throws Exception { .getResponse(); var body = response.getContentAsString(); - List userDTOS = om.readValue(body, new TypeReference<>() {}); + List userDTOS = om.readValue(body, new TypeReference<>() { }); var actual = userDTOS.stream().map(userMapper::map).toList(); var expected = userRepository.findAll();