Skip to content

Commit acfe95a

Browse files
asp345Hank-Choi
andauthored
batch reflection hint 추가 (#459)
Co-authored-by: Hank-Choi <zlzlqlzl1@naver.com>
1 parent 77e71d8 commit acfe95a

File tree

10 files changed

+497
-25
lines changed

10 files changed

+497
-25
lines changed

.github/workflows/lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ jobs:
2222

2323
- name: Run Lint
2424
run: |
25-
./gradlew clean ktlintFormat -x compileKotlin -x compileTestKotlin \
25+
./gradlew clean ktlintCheck -x compileKotlin -x compileTestKotlin \
2626
-x compileTestFixturesKotlin -x compileJava -x processAot -x processTestAot

batch/Dockerfile-native

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,4 @@ RUN --mount=type=secret,id=codeartifact_token ./gradlew :batch:nativeCompile -Pc
88
FROM docker.io/debian:stable-slim
99
WORKDIR /app
1010
COPY --from=builder /app/batch/build/native/nativeCompile/batch /app/batch
11-
EXPOSE 8080
1211
ENTRYPOINT ["/app/batch", "--job.name=${JOB_NAME}"]

batch/build.gradle.kts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ dependencies {
66
implementation(project(":core"))
77

88
implementation("org.springframework.boot:spring-boot-starter-batch")
9-
implementation("com.h2database:h2")
109

1110
implementation("io.github.resilience4j:resilience4j-reactor:2.3.0")
1211
implementation("io.github.resilience4j:resilience4j-kotlin:2.3.0")
@@ -15,11 +14,19 @@ dependencies {
1514
implementation("org.jsoup:jsoup:1.21.1")
1615

1716
// excel
18-
implementation("org.apache.poi:poi-ooxml:5.4.1")
17+
implementation("org.apache.poi:poi-ooxml:5.5.1")
1918

2019
testImplementation("org.springframework.batch:spring-batch-test")
2120
}
2221

22+
graalvmNative {
23+
binaries {
24+
named("main") {
25+
buildArgs.add("-H:+AddAllCharsets")
26+
}
27+
}
28+
}
29+
2330
tasks.bootJar {
2431
archiveFileName.set("snutt-batch.jar")
2532
}
Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,12 @@
11
package com.wafflestudio.snutt.common.config
22

3+
import org.springframework.batch.infrastructure.support.transaction.ResourcelessTransactionManager
34
import org.springframework.context.annotation.Bean
45
import org.springframework.context.annotation.Configuration
5-
import org.springframework.jdbc.datasource.DataSourceTransactionManager
6-
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder
7-
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType
86
import org.springframework.transaction.PlatformTransactionManager
9-
import javax.sql.DataSource
107

118
@Configuration
129
class BatchJobConfig {
13-
@Bean("batchDataSource")
14-
fun batchDataSource(): DataSource =
15-
EmbeddedDatabaseBuilder()
16-
.setType(EmbeddedDatabaseType.H2)
17-
.addScript("/org/springframework/batch/core/schema-h2.sql")
18-
.generateUniqueName(true)
19-
.build()
20-
2110
@Bean
22-
fun transactionManager(batchDataSource: DataSource): PlatformTransactionManager = DataSourceTransactionManager(batchDataSource)
11+
fun transactionManager(): PlatformTransactionManager = ResourcelessTransactionManager()
2312
}

batch/src/main/kotlin/sugangsnu/common/SugangSnuRepository.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.wafflestudio.snutt.common.util.SugangSnuUrlUtils.convertSemesterToSug
55
import com.wafflestudio.snutt.sugangsnu.common.api.SugangSnuApi
66
import com.wafflestudio.snutt.sugangsnu.common.data.SugangSnuCoursebookCondition
77
import com.wafflestudio.snutt.sugangsnu.common.data.SugangSnuLectureInfo
8+
import org.springframework.aot.hint.annotation.RegisterReflectionForBinding
89
import org.springframework.core.io.buffer.PooledDataBuffer
910
import org.springframework.http.MediaType
1011
import org.springframework.stereotype.Component
@@ -15,6 +16,10 @@ import tools.jackson.databind.ObjectMapper
1516
import tools.jackson.module.kotlin.readValue
1617

1718
@Component
19+
@RegisterReflectionForBinding(
20+
SugangSnuCoursebookCondition::class,
21+
SugangSnuLectureInfo::class,
22+
)
1823
class SugangSnuRepository(
1924
private val sugangSnuApi: SugangSnuApi,
2025
private val objectMapper: ObjectMapper,

0 commit comments

Comments
 (0)