Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 31 additions & 38 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,66 +8,53 @@ plugins {

val appGroup: String by project
val appVersion: String by project
val appDescription: String by project

group = appGroup
version = appVersion
description = appDescription

java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}

configurations {
compileOnly {
extendsFrom(configurations.annotationProcessor.get())
}

configureEach {
exclude(group = "commons-logging", module = "commons-logging")
}
}

repositories {
mavenCentral()
}

springBoot {
buildInfo()
}

val springCloud: String by project

dependencyManagement {
imports {
mavenBom("org.springframework.cloud:spring-cloud-dependencies:$springCloud")
}
}

val jjwt: String by project
val mockito: String by project
val oci: String by project
val pioneer: String by project
val queryDSL: String by project
val pdfbox: String by project
val redisson: String by project
val scrimage: String by project
val springdoc: String by project
val tsid: String by project
val mockitoAgent: Configuration? = configurations.create("mockitoAgent")

val mockitoAgent = configurations.create("mockitoAgent")
repositories {
mavenCentral()
}

dependencyManagement {
imports {
mavenBom("org.springframework.cloud:spring-cloud-dependencies:$springCloud")
}
}

dependencies {
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.springframework.boot:spring-boot-starter-aop")
implementation("org.springframework.boot:spring-boot-starter-aspectj")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-data-redis")
implementation("org.springframework.boot:spring-boot-starter-flyway")
implementation("org.springframework.boot:spring-boot-starter-mail")
implementation("org.springframework.boot:spring-boot-starter-security")
implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
implementation("org.springframework.boot:spring-boot-starter-validation")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-webmvc")
implementation("org.springframework.cloud:spring-cloud-starter-openfeign")
implementation("org.flywaydb:flyway-mysql")
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:$springdoc") {
exclude(group = "org.webjars", module = "swagger-ui")
}
Expand All @@ -82,8 +69,6 @@ dependencies {
implementation("com.oracle.oci.sdk:oci-java-sdk-common:$oci")
implementation("com.oracle.oci.sdk:oci-java-sdk-objectstorage:$oci")
implementation("com.oracle.oci.sdk:oci-java-sdk-common-httpclient-jersey3:$oci")
implementation("org.flywaydb:flyway-core")
implementation("org.flywaydb:flyway-mysql")

compileOnly("org.projectlombok:lombok")

Expand All @@ -97,13 +82,17 @@ dependencies {
annotationProcessor("jakarta.annotation:jakarta.annotation-api")
annotationProcessor("jakarta.persistence:jakarta.persistence-api")

testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.boot:spring-boot-testcontainers")
testImplementation("org.testcontainers:junit-jupiter")
testImplementation("org.junit-pioneer:junit-pioneer:$pioneer")
testImplementation("org.testcontainers:mysql")
testImplementation("org.springframework.boot:spring-boot-starter-actuator-test")
testImplementation("org.springframework.boot:spring-boot-starter-data-jpa-test")
testImplementation("org.springframework.boot:spring-boot-starter-data-redis-test")
testImplementation("org.springframework.boot:spring-boot-starter-flyway-test")
testImplementation("org.springframework.boot:spring-boot-starter-mail-test")
testImplementation("org.springframework.boot:spring-boot-starter-security-test")
testImplementation("org.springframework.boot:spring-boot-starter-thymeleaf-test")
testImplementation("org.springframework.boot:spring-boot-starter-validation-test")
testImplementation("org.springframework.boot:spring-boot-starter-webmvc-test")
testImplementation("org.mockito:mockito-core:$mockito")
mockitoAgent("org.mockito:mockito-core:$mockito") { isTransitive = false }
mockitoAgent?.let { it("org.mockito:mockito-core:$mockito") { isTransitive = false } }

testCompileOnly("org.projectlombok:lombok")
testAnnotationProcessor("org.projectlombok:lombok")
Expand All @@ -112,9 +101,13 @@ dependencies {

tasks.withType<Test> {
useJUnitPlatform()
jvmArgs("-javaagent:${mockitoAgent.asPath}", "-Xshare:off")
mockitoAgent?.let { jvmArgs("-javaagent:${it.asPath}", "-Xshare:off") }
}

spotbugs {
excludeFilter.set(file("${projectDir}/spotbugs-exclude.xml"))
}

springBoot {
buildInfo()
}
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ services:
everyonewaiter-api:
container_name: everyonewaiter-api
build: .
image: everyonewaiter-api:1.0.7
image: everyonewaiter-api:1.0.8
ports:
- "8081:8081"
volumes:
Expand Down
28 changes: 14 additions & 14 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# Artifact
appGroup=com.everyonewaiter
appVersion=1.0.7
appVersion=1.0.8
appDescription=๋ชจ๋‘์˜ ์›จ์ดํ„ฐ API

# Plugin
springBoot=3.5.4
springCloud=2025.0.0
springBoot=4.0.1
springCloud=2025.1.0
springDependencyManagement=1.1.7
gitProperties=2.5.2
spotBugs=6.2.4
gitProperties=2.5.4
spotBugs=6.4.8

# Dependencies
jjwt=0.12.6
mockito=5.18.0
oci=3.70.0
pioneer=2.3.0
queryDSL=7.0
pdfbox=3.0.5
redisson=3.50.0
scrimage=4.3.3
springdoc=2.8.9
jjwt=0.13.0
mockito=5.21.0
oci=3.77.2
queryDSL=7.1
pdfbox=3.0.6
redisson=4.0.0
scrimage=4.3.5
springdoc=3.0.0
tsid=5.2.6
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
Expand Down Expand Up @@ -46,8 +45,8 @@ public RedissonClient redissonClient() {
+ redisProperties.getHost()
+ ":"
+ redisProperties.getPort()
)
.setPassword(redisProperties.getPassword());
);
config.setPassword(redisProperties.getPassword());

return Redisson.create(config);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.everyonewaiter.adapter.persistence;

import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;

@Getter
@ConfigurationProperties(prefix = "spring.data.redis")
@RequiredArgsConstructor
class RedisProperties {

private final String host;
private final int port;
private final String password;

}
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public CorsConfigurationSource corsConfigurationSource() {
}

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
public SecurityFilterChain securityFilterChain(HttpSecurity http) {
return http.cors(cors -> cors.configurationSource(corsConfigurationSource()))
.csrf(AbstractHttpConfigurer::disable)
.formLogin(AbstractHttpConfigurer::disable)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
import java.time.Instant;
import org.springframework.boot.jackson.JsonComponent;
import org.springframework.boot.jackson.JacksonComponent;

@JsonComponent
@JacksonComponent
class InstantJsonSerializer extends JsonSerializer<Instant> {

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,36 +5,36 @@
import static com.everyonewaiter.adapter.web.HttpRequestParser.parseRequestUri;
import static com.everyonewaiter.adapter.web.HttpRequestParser.parseXRequestId;

import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import lombok.RequiredArgsConstructor;
import org.jspecify.annotations.NonNull;
import org.slf4j.MDC;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;
import tools.jackson.databind.json.JsonMapper;

@Component
@RequiredArgsConstructor
class MDCLoggingFilter extends OncePerRequestFilter {

private final ObjectMapper objectMapper;
private final JsonMapper jsonMapper;

@Override
protected void doFilterInternal(
@NonNull HttpServletRequest request,
@NonNull HttpServletResponse response,
@NonNull FilterChain filterChain
FilterChain filterChain
) throws ServletException, IOException {
MDC.put("requestId", parseXRequestId(request));
MDC.put("requestMethod", request.getMethod());
MDC.put("requestUri", parseRequestUri(request));
MDC.put("requestParameters", parseParameters(request));
MDC.put("requestHeaders", parseHeaders(request));
MDC.put("requestCookies", objectMapper.writeValueAsString(request.getCookies()));
MDC.put("requestCookies", jsonMapper.writeValueAsString(request.getCookies()));

try {
filterChain.doFilter(request, response);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.everyonewaiter.adapter.web.config;

import lombok.NonNull;
import org.jspecify.annotations.Nullable;
import org.springframework.core.ResolvableType;
import org.springframework.http.MediaType;
import org.springframework.http.converter.AbstractJacksonHttpMessageConverter;
import org.springframework.stereotype.Component;
import tools.jackson.databind.json.JsonMapper;

@Component
class MultipartHttpMessageConverter extends AbstractJacksonHttpMessageConverter<JsonMapper> {

protected MultipartHttpMessageConverter(JsonMapper jsonMapper) {
super(jsonMapper, MediaType.APPLICATION_OCTET_STREAM);
}

@Override
protected boolean canWrite(MediaType mediaType) {
return false;
}

@Override
public boolean canWrite(@NonNull Class<?> clazz, MediaType mediaType) {
return false;
}

@Override
public boolean canWrite(
@NonNull ResolvableType type,
@NonNull Class<?> valueClass,
@Nullable MediaType mediaType
) {
return false;
}

}
Loading