From 9183488957e626c1bf028a447a85b21aec1be470 Mon Sep 17 00:00:00 2001 From: swthewhite Date: Tue, 23 Dec 2025 17:11:09 +0900 Subject: [PATCH 1/4] =?UTF-8?q?chore/#49:=20=EB=94=94=EB=A0=89=ED=86=A0?= =?UTF-8?q?=EB=A6=AC=20depth=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- slackjudge/.gitattributes => .gitattributes | 0 slackjudge/.gitignore => .gitignore | 0 slackjudge/Dockerfile => Dockerfile | 0 slackjudge/build.gradle => build.gradle | 0 .../docker-compose.yml => docker-compose.yml | 0 .../wrapper/gradle-wrapper.jar | Bin .../wrapper/gradle-wrapper.properties | 0 slackjudge/gradlew => gradlew | 0 slackjudge/gradlew.bat => gradlew.bat | 0 slackjudge/settings.gradle => settings.gradle | 0 slackjudge/logs/batch.log | 184 ------------------ .../batch/SlackJudgeBatchRunner.java | 0 .../batch/SlackjudgeApplication.java | 0 .../batch/common/CalculateSnapShotDate.java | 0 .../slackjudge/batch/config/BatchConfig.java | 0 .../batch/config/BatchJobListener.java | 0 .../slackjudge/batch/config/BatchLogger.java | 0 .../slackjudge/batch/config/MongoConfig.java | 0 .../slackjudge/batch/config/RetryConfig.java | 0 .../slackjudge/batch/config/TimeConfig.java | 0 .../batch/config/WebClientConfig.java | 0 .../DateToLocalDateTimeKstConverter.java | 0 .../LocalDateTimeToDateKstConverter.java | 0 .../store/slackjudge/batch/dto/UserInfo.java | 0 .../infra/mongo/document/SnapShotId.java | 0 .../document/UserSolvedSnapShotDocument.java | 0 .../batch/infra/mongo/dto/SaveSnapshot.java | 0 .../UserSolvedSnapShotRepository.java | 0 .../mongo/service/UserSnapShotService.java | 0 .../infra/slack/SlackNotificationService.java | 0 .../slack/logging/LogEventMessageSpec.java | 0 .../infra/slack/logging/SlackLogAppender.java | 0 .../slack/logging/SlackLogFormatter.java | 0 .../logging/SlackLoggingWebhookSender.java | 0 .../slack/message/BatchEndMessageSpec.java | 0 .../slack/message/BatchStartMessageSpec.java | 0 .../slack/message/SlackMessageFactory.java | 0 .../infra/slack/message/SlackTextLayout.java | 0 .../batch/infra/slack/sender/SlackSender.java | 0 .../slack/sender/SlackWebhookSender.java | 0 .../infra/solvedac/SolvedAcProperties.java | 0 .../client/AbstractSolvedAcApiClient.java | 0 .../client/SolvedAcProblemInfoClient.java | 0 .../client/SolvedAcUserInfoClient.java | 0 .../solvedac/dto/ProblemInfoResponse.java | 0 .../solvedac/dto/ProblemSearchResponse.java | 0 .../infra/solvedac/dto/UserInfoResponse.java | 0 .../batch/infra/solvedac/util/UrlBuilder.java | 0 .../repository/ProblemJdbcRepository.java | 0 .../batch/repository/UserJdbcRepository.java | 0 .../batch/service/DetectionContext.java | 0 .../batch/service/ProblemChangeDetector.java | 0 .../batch/service/SnapshotDetectStrategy.java | 0 .../batch/service/TierChangeDetector.java | 0 ...ectAndUpdateUserTierAndProblemTasklet.java | 0 .../tasklet/FetchSolvedAcUserInfoTasklet.java | 0 .../batch/tasklet/LoadAllUsersTasklet.java | 0 .../batch/tasklet/LoadSnapshotTasklet.java | 0 .../batch/tasklet/SaveSnapshotTasklet.java | 0 .../main/resources/application.yml | 0 .../src => src}/main/resources/batch.yml | 0 .../main/resources/logback-spring.xml | 0 .../src => src}/main/resources/mongo.yml | 0 .../src => src}/main/resources/postgres.yml | 0 .../sql/create_problem_problem_type_table.sql | 0 .../test/java/sql/create_problem_table.sql | 0 .../java/sql/create_problem_type_table.sql | 0 .../java/sql/create_user_problem_table.sql | 0 .../test/java/sql/create_user_table.sql | 0 .../slackjudge/batch/EnablePostgresTest.java | 0 .../batch/PostgresTestContainer.java | 0 .../batch/SlackjudgeApplicationTests.java | 0 .../store/slackjudge/batch/TestContainer.java | 0 .../common/CalculateSnapShotDateTest.java | 0 .../infra/mongo/document/SnapShotIdTest.java | 0 .../UserSolvedSnapShotRepositoryTest.java | 0 .../service/UserSnapShotServiceTest.java | 0 .../detector/ProblemChangeDetectorTest.java | 0 .../detector/TierChangeDetectorTest.java | 0 .../message/SlackMessageFactoryTest.java | 0 .../slack/message/SlackTextLayoutTest.java | 0 .../client/AbstractSolvedAcApiClientTest.java | 0 .../client/SolvedAcProblemInfoClientTest.java | 0 .../client/SolvedAcUserInfoClientTest.java | 0 .../infra/solvedac/util/UrlBuilderTest.java | 0 .../repository/ProblemJdbcRepositoryTest.java | 0 .../repository/UserJdbcRepositoryTest.java | 0 ...ndUpdateUserTierAndProblemTaskletTest.java | 0 .../FetchSolvedAcUserInfoTaskletTest.java | 0 .../tasklet/LoadAllUsersTaskletTest.java | 0 .../tasklet/LoadSnapshotTaskletTest.java | 0 .../tasklet/SaveSnapshotTaskletTest.java | 0 .../test/resources/application-test.yml | 0 .../test/resources/init_schema.sql | 0 .../test/resources/valid_problem.json | 0 .../test/resources/valid_user.json | 0 96 files changed, 184 deletions(-) rename slackjudge/.gitattributes => .gitattributes (100%) rename slackjudge/.gitignore => .gitignore (100%) rename slackjudge/Dockerfile => Dockerfile (100%) rename slackjudge/build.gradle => build.gradle (100%) rename slackjudge/docker-compose.yml => docker-compose.yml (100%) rename {slackjudge/gradle => gradle}/wrapper/gradle-wrapper.jar (100%) rename {slackjudge/gradle => gradle}/wrapper/gradle-wrapper.properties (100%) rename slackjudge/gradlew => gradlew (100%) mode change 100755 => 100644 rename slackjudge/gradlew.bat => gradlew.bat (100%) rename slackjudge/settings.gradle => settings.gradle (100%) delete mode 100644 slackjudge/logs/batch.log rename {slackjudge/src => src}/main/java/store/slackjudge/batch/SlackJudgeBatchRunner.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/SlackjudgeApplication.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/common/CalculateSnapShotDate.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/config/BatchConfig.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/config/BatchJobListener.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/config/BatchLogger.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/config/MongoConfig.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/config/RetryConfig.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/config/TimeConfig.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/config/WebClientConfig.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/config/converter/DateToLocalDateTimeKstConverter.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/config/converter/LocalDateTimeToDateKstConverter.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/dto/UserInfo.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/mongo/document/SnapShotId.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/mongo/document/UserSolvedSnapShotDocument.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/mongo/dto/SaveSnapshot.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/mongo/repository/UserSolvedSnapShotRepository.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/mongo/service/UserSnapShotService.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/slack/SlackNotificationService.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/slack/logging/LogEventMessageSpec.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/slack/logging/SlackLogAppender.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/slack/logging/SlackLogFormatter.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/slack/logging/SlackLoggingWebhookSender.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/slack/message/BatchEndMessageSpec.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/slack/message/BatchStartMessageSpec.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/slack/message/SlackMessageFactory.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/slack/message/SlackTextLayout.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/slack/sender/SlackSender.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/slack/sender/SlackWebhookSender.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/solvedac/SolvedAcProperties.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/solvedac/client/AbstractSolvedAcApiClient.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcProblemInfoClient.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcUserInfoClient.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/solvedac/dto/ProblemInfoResponse.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/solvedac/dto/ProblemSearchResponse.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/solvedac/dto/UserInfoResponse.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/infra/solvedac/util/UrlBuilder.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/repository/ProblemJdbcRepository.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/repository/UserJdbcRepository.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/service/DetectionContext.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/service/ProblemChangeDetector.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/service/SnapshotDetectStrategy.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/service/TierChangeDetector.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/tasklet/DetectAndUpdateUserTierAndProblemTasklet.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/tasklet/FetchSolvedAcUserInfoTasklet.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/tasklet/LoadAllUsersTasklet.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/tasklet/LoadSnapshotTasklet.java (100%) rename {slackjudge/src => src}/main/java/store/slackjudge/batch/tasklet/SaveSnapshotTasklet.java (100%) rename {slackjudge/src => src}/main/resources/application.yml (100%) rename {slackjudge/src => src}/main/resources/batch.yml (100%) rename {slackjudge/src => src}/main/resources/logback-spring.xml (100%) rename {slackjudge/src => src}/main/resources/mongo.yml (100%) rename {slackjudge/src => src}/main/resources/postgres.yml (100%) rename {slackjudge/src => src}/test/java/sql/create_problem_problem_type_table.sql (100%) rename {slackjudge/src => src}/test/java/sql/create_problem_table.sql (100%) rename {slackjudge/src => src}/test/java/sql/create_problem_type_table.sql (100%) rename {slackjudge/src => src}/test/java/sql/create_user_problem_table.sql (100%) rename {slackjudge/src => src}/test/java/sql/create_user_table.sql (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/EnablePostgresTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/PostgresTestContainer.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/SlackjudgeApplicationTests.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/TestContainer.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/common/CalculateSnapShotDateTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/infra/mongo/document/SnapShotIdTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/infra/mongo/repository/UserSolvedSnapShotRepositoryTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/infra/mongo/service/UserSnapShotServiceTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/infra/mongo/service/detector/ProblemChangeDetectorTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/infra/mongo/service/detector/TierChangeDetectorTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/infra/slack/message/SlackMessageFactoryTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/infra/slack/message/SlackTextLayoutTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/infra/solvedac/client/AbstractSolvedAcApiClientTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcProblemInfoClientTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcUserInfoClientTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/infra/solvedac/util/UrlBuilderTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/repository/ProblemJdbcRepositoryTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/repository/UserJdbcRepositoryTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/tasklet/DetectAndUpdateUserTierAndProblemTaskletTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/tasklet/FetchSolvedAcUserInfoTaskletTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/tasklet/LoadAllUsersTaskletTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/tasklet/LoadSnapshotTaskletTest.java (100%) rename {slackjudge/src => src}/test/java/store/slackjudge/batch/tasklet/SaveSnapshotTaskletTest.java (100%) rename {slackjudge/src => src}/test/resources/application-test.yml (100%) rename {slackjudge/src => src}/test/resources/init_schema.sql (100%) rename {slackjudge/src => src}/test/resources/valid_problem.json (100%) rename {slackjudge/src => src}/test/resources/valid_user.json (100%) diff --git a/slackjudge/.gitattributes b/.gitattributes similarity index 100% rename from slackjudge/.gitattributes rename to .gitattributes diff --git a/slackjudge/.gitignore b/.gitignore similarity index 100% rename from slackjudge/.gitignore rename to .gitignore diff --git a/slackjudge/Dockerfile b/Dockerfile similarity index 100% rename from slackjudge/Dockerfile rename to Dockerfile diff --git a/slackjudge/build.gradle b/build.gradle similarity index 100% rename from slackjudge/build.gradle rename to build.gradle diff --git a/slackjudge/docker-compose.yml b/docker-compose.yml similarity index 100% rename from slackjudge/docker-compose.yml rename to docker-compose.yml diff --git a/slackjudge/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from slackjudge/gradle/wrapper/gradle-wrapper.jar rename to gradle/wrapper/gradle-wrapper.jar diff --git a/slackjudge/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from slackjudge/gradle/wrapper/gradle-wrapper.properties rename to gradle/wrapper/gradle-wrapper.properties diff --git a/slackjudge/gradlew b/gradlew old mode 100755 new mode 100644 similarity index 100% rename from slackjudge/gradlew rename to gradlew diff --git a/slackjudge/gradlew.bat b/gradlew.bat similarity index 100% rename from slackjudge/gradlew.bat rename to gradlew.bat diff --git a/slackjudge/settings.gradle b/settings.gradle similarity index 100% rename from slackjudge/settings.gradle rename to settings.gradle diff --git a/slackjudge/logs/batch.log b/slackjudge/logs/batch.log deleted file mode 100644 index 2c60a1a..0000000 --- a/slackjudge/logs/batch.log +++ /dev/null @@ -1,184 +0,0 @@ -2025-12-15 17:10:44 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-15 17:10:44 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. -2025-12-15 17:10:44 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data JDBC - Could not safely identify store assignment for repository candidate interface store.slackjudge.batch.infra.mongo.repository.UserSolvedSnapShotRepository; If you want this repository to be a JDBC repository, consider annotating your entities with one of these annotations: org.springframework.data.relational.core.mapping.Table. -2025-12-15 17:10:44 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 24 ms. Found 0 JDBC repository interfaces. -2025-12-15 17:10:44 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-15 17:10:44 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-12-15 17:10:44 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data JPA - Could not safely identify store assignment for repository candidate interface store.slackjudge.batch.infra.mongo.repository.UserSolvedSnapShotRepository; If you want this repository to be a JPA repository, consider annotating your entities with one of these annotations: jakarta.persistence.Entity, jakarta.persistence.MappedSuperclass (preferred), or consider extending one of the following types with your repository: org.springframework.data.jpa.repository.JpaRepository -2025-12-15 17:10:44 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 4 ms. Found 0 JPA repository interfaces. -2025-12-15 17:10:44 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-15 17:10:44 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data MongoDB repositories in DEFAULT mode. -2025-12-15 17:10:44 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 88 ms. Found 1 MongoDB repository interface. -2025-12-15 17:10:45 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-12-15 17:10:49 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2025-12-15 17:10:49 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-12-15 17:10:50 [Test worker] DEBUG org.mongodb.driver.connection - Connection pool created for localhost:27017 using options maxIdleTimeMS=0, minPoolSize=0, maxPoolSize=100, maxConnecting=2, waitQueueTimeoutMS=120000 -2025-12-15 17:10:50 [cluster-ClusterId{value='693fc28a58416b7585e8b001', description='null'}-localhost:27017] DEBUG org.mongodb.driver.connection - Connection pool ready for localhost:27017 -2025-12-15 17:10:50 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2025-12-15 17:10:51 [Test worker] INFO o.s.b.c.l.s.TaskExecutorJobLauncher - Job: [SimpleJob: [name=slackJudge]] launched with the following parameters: [{'batchTime':'{value=2025-12-15T17:10:51.309046, type=class java.time.LocalDateTime, identifying=true}'}] -2025-12-15 17:10:51 [Test worker] INFO o.s.batch.core.job.SimpleStepHandler - Executing step: [LoadAllUsersStep] -2025-12-15 17:10:51 [Test worker] INFO o.s.batch.core.step.AbstractStep - Step: [LoadAllUsersStep] executed in 15ms -2025-12-15 17:10:51 [Test worker] INFO o.s.batch.core.job.SimpleStepHandler - Executing step: [LoadSnapshotStep] -2025-12-15 17:10:51 [Test worker] INFO o.s.batch.core.step.AbstractStep - Step: [LoadSnapshotStep] executed in 38ms -2025-12-15 17:10:51 [Test worker] INFO o.s.batch.core.job.SimpleStepHandler - Executing step: [FetchSolvedAcUserInfoStep] -2025-12-15 17:10:51 [Test worker] INFO o.s.batch.core.step.AbstractStep - Step: [FetchSolvedAcUserInfoStep] executed in 4ms -2025-12-15 17:10:51 [Test worker] INFO o.s.batch.core.job.SimpleStepHandler - Executing step: [detectAndUpdateUserTierAndProblemStep] -2025-12-15 17:10:51 [Test worker] INFO o.s.batch.core.step.AbstractStep - Step: [detectAndUpdateUserTierAndProblemStep] executed in 5ms -2025-12-15 17:10:51 [Test worker] INFO o.s.batch.core.job.SimpleStepHandler - Executing step: [saveSnapshotStep] -2025-12-15 17:10:51 [Test worker] INFO o.s.batch.core.step.AbstractStep - Step: [saveSnapshotStep] executed in 4ms -2025-12-15 17:10:51 [Test worker] INFO o.s.b.c.l.s.TaskExecutorJobLauncher - Job: [SimpleJob: [name=slackJudge]] completed with the following parameters: [{'batchTime':'{value=2025-12-15T17:10:51.309046, type=class java.time.LocalDateTime, identifying=true}'}] and the following status: [COMPLETED] in 250ms -2025-12-15 17:10:51 [SpringApplicationShutdownHook] DEBUG org.mongodb.driver.connection - Connection pool closed for localhost:27017 -2025-12-15 17:10:51 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-12-15 17:11:15 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-15 17:11:15 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data MongoDB repositories in DEFAULT mode. -2025-12-15 17:11:15 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 146 ms. Found 1 MongoDB repository interface. -2025-12-15 17:11:16 [Test worker] DEBUG org.mongodb.driver.connection - Connection pool created for localhost:27017 using options maxIdleTimeMS=0, minPoolSize=0, maxPoolSize=100, maxConnecting=2, waitQueueTimeoutMS=120000 -2025-12-15 17:11:16 [cluster-ClusterId{value='693fc2a4db724850dd768ec9', description='null'}-localhost:27017] DEBUG org.mongodb.driver.connection - Connection pool ready for localhost:27017 -2025-12-15 17:11:17 [Test worker] DEBUG o.s.data.mongodb.core.MongoTemplate - Saving Document containing fields: [_id, problems_ids, solved_count, tier, rating, user_id, _class] -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.connection - Checkout started for connection to localhost:27017 -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.connection - Connection created: address=localhost:27017, driver-generated ID=3 -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.connection - Connection ready: address=localhost:27017, driver-generated ID=3, established in=1 ms -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.connection - Connection checked out: address=localhost:27017, driver-generated ID=3, duration=4 ms -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.protocol.command - Command "update" started on database "snapshot" using a connection with driver-generated ID 3 and server-generated ID 159 to localhost:27017. The request ID is 5 and the operation ID is 5. Command: {"update": "snapshot", "ordered": true, "$db": "snapshot", "lsid": {"id": {"$binary": {"base64": "FKdgpw/bQQC+LDgGU/zB9w==", "subType": "04"}}}, "updates": [{"q": {"_id": {"bojId": "test", "snapShotAt": {"$date": "2025-12-15T08:00:00Z"}}}, "u": {"_id": {"bojId": "test", "snapShotAt": {"$date": "2025-12-15T08:00:00Z"}}, "problems_ids": [], "solved_count": 33, "tier": 23, "rating": 100, "user_id": 123, "_class": "store.slackjudge.batch.infra.mongo.document.UserSolvedSnapShotDocument"}, "upsert": true}]} -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.protocol.command - Command "update" succeeded on database "snapshot" in 36.284458 ms using a connection with driver-generated ID 3 and server-generated ID 159 to localhost:27017. The request ID is 5 and the operation ID is 5. Command reply: {"n": 1, "upserted": [{"index": 0, "_id": {"bojId": "test", "snapShotAt": {"$date": "2025-12-15T08:00:00Z"}}}], "nModified": 0, "ok": 1.0} -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.connection - Connection checked in: address=localhost:27017, driver-generated ID=3 -2025-12-15 17:11:17 [Test worker] DEBUG o.s.data.mongodb.core.MongoTemplate - find using query: { "_id.bojId" : "test", "_id.snapShotAt" : { "$date" : "2025-12-15T08:00:00Z"}} fields: Document{{}} sort: { "_id.bojId" : "test", "_id.snapShotAt" : { "$java" : 2025-12-15T17:00 } } for class: class store.slackjudge.batch.infra.mongo.document.UserSolvedSnapShotDocument in collection: snapshot -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.connection - Checkout started for connection to localhost:27017 -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.connection - Connection checked out: address=localhost:27017, driver-generated ID=3, duration=0 ms -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.protocol.command - Command "find" started on database "snapshot" using a connection with driver-generated ID 3 and server-generated ID 159 to localhost:27017. The request ID is 6 and the operation ID is 6. Command: {"find": "snapshot", "filter": {"_id.bojId": "test", "_id.snapShotAt": {"$date": "2025-12-15T08:00:00Z"}}, "limit": 2, "$db": "snapshot", "lsid": {"id": {"$binary": {"base64": "FKdgpw/bQQC+LDgGU/zB9w==", "subType": "04"}}}} -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.protocol.command - Command "find" succeeded on database "snapshot" in 8.679292 ms using a connection with driver-generated ID 3 and server-generated ID 159 to localhost:27017. The request ID is 6 and the operation ID is 6. Command reply: {"cursor": {"firstBatch": [{"_id": {"bojId": "test", "snapShotAt": {"$date": "2025-12-15T08:00:00Z"}}, "problems_ids": [], "solved_count": 33, "tier": 23, "rating": 100, "user_id": 123, "_class": "store.slackjudge.batch.infra.mongo.document.UserSolvedSnapShotDocument"}], "id": 0, "ns": "snapshot.snapshot"}, "ok": 1.0} -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.connection - Connection checked in: address=localhost:27017, driver-generated ID=3 -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.connection - Checkout started for connection to localhost:27017 -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.connection - Connection checked out: address=localhost:27017, driver-generated ID=3, duration=0 ms -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.protocol.command - Command "endSessions" started on database "admin" using a connection with driver-generated ID 3 and server-generated ID 159 to localhost:27017. The request ID is 7 and the operation ID is 1. Command: {"endSessions": [{"id": {"$binary": {"base64": "FKdgpw/bQQC+LDgGU/zB9w==", "subType": "04"}}}], "$db": "admin", "$readPreference": {"mode": "primaryPreferred"}} -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.protocol.command - Command "endSessions" succeeded on database "admin" in 1.354458 ms using a connection with driver-generated ID 3 and server-generated ID 159 to localhost:27017. The request ID is 7 and the operation ID is 1. Command reply: {"ok": 1.0} -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.connection - Connection checked in: address=localhost:27017, driver-generated ID=3 -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.connection - Connection closed: address=localhost:27017, driver-generated ID=3. Reason: Connection pool was closed. -2025-12-15 17:11:17 [Test worker] DEBUG org.mongodb.driver.connection - Connection pool closed for localhost:27017 -2025-12-15 17:11:17 [Test worker] WARN s.s.b.i.s.c.AbstractSolvedAcApiClient - [calling solved.ac API] request failed attempt = 1/3 -2025-12-15 17:11:17 [Test worker] WARN s.s.b.i.s.c.AbstractSolvedAcApiClient - [calling solved.ac API] request failed attempt = 2/3 -2025-12-15 17:11:17 [Test worker] ERROR s.s.b.i.s.c.AbstractSolvedAcApiClient - [calling solved.ac API] retry all failed -2025-12-15 17:11:17 [Test worker] WARN s.s.b.i.s.c.AbstractSolvedAcApiClient - [calling solved.ac API] request failed attempt = 1/3 -2025-12-15 17:11:17 [Test worker] WARN s.s.b.i.s.c.AbstractSolvedAcApiClient - [calling solved.ac API] request failed attempt = 2/3 -2025-12-15 17:11:18 [Test worker] ERROR s.s.b.i.s.c.SolvedAcProblemInfoClient - [calling solved.ac API] fetch problemInfo api json parsing error : Unexpected character (',' (code 44)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false') - at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 2, column: 13] -2025-12-15 17:11:18 [Test worker] ERROR s.s.b.i.s.c.SolvedAcProblemInfoClient - [calling solved.ac API] fetch problemInfo api json parsing error : Cannot deserialize value of type `java.util.ArrayList` from Integer value (token `JsonToken.VALUE_NUMBER_INT`) - at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 2, column: 13] (through reference chain: store.slackjudge.batch.infra.solvedac.dto.ProblemSearchResponse["items"]) -2025-12-15 17:11:18 [Test worker] WARN s.s.b.i.s.c.SolvedAcProblemInfoClient - [invalid page value] max page value : 689 min page value : 1 now page value : -1 -2025-12-15 17:11:18 [Test worker] WARN s.s.b.i.s.c.SolvedAcProblemInfoClient - [invalid page value] max page value : 689 min page value : 1 now page value : 700 -2025-12-15 17:11:18 [Test worker] ERROR s.s.b.i.s.c.SolvedAcUserInfoClient - [calling solved.ac API] fetch userInfo api json parsing error : Unexpected character (',' (code 44)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false') - at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 2, column: 13] -2025-12-15 17:11:18 [Test worker] ERROR s.s.b.i.s.c.SolvedAcUserInfoClient - [calling solved.ac API] fetch userInfo api json parsing error : Unexpected end-of-input within/between Object entries - at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 4, column: 1] -2025-12-15 17:11:26 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-15 17:11:26 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-12-15 17:11:26 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data JPA - Could not safely identify store assignment for repository candidate interface store.slackjudge.batch.infra.mongo.repository.UserSolvedSnapShotRepository; If you want this repository to be a JPA repository, consider annotating your entities with one of these annotations: jakarta.persistence.Entity, jakarta.persistence.MappedSuperclass (preferred), or consider extending one of the following types with your repository: org.springframework.data.jpa.repository.JpaRepository -2025-12-15 17:11:26 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 28 ms. Found 0 JPA repository interfaces. -2025-12-15 17:11:27 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-12-15 17:11:30 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2025-12-15 17:11:31 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-12-15 17:11:32 [Test worker] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [store.slackjudge.batch.repository.UserJdbcRepositoryTest]: UserJdbcRepositoryTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. -2025-12-15 17:11:32 [Test worker] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration store.slackjudge.batch.SlackjudgeApplication for test class store.slackjudge.batch.repository.UserJdbcRepositoryTest -2025-12-15 17:11:32 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-15 17:11:32 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-12-15 17:11:32 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data JPA - Could not safely identify store assignment for repository candidate interface store.slackjudge.batch.infra.mongo.repository.UserSolvedSnapShotRepository; If you want this repository to be a JPA repository, consider annotating your entities with one of these annotations: jakarta.persistence.Entity, jakarta.persistence.MappedSuperclass (preferred), or consider extending one of the following types with your repository: org.springframework.data.jpa.repository.JpaRepository -2025-12-15 17:11:32 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 5 ms. Found 0 JPA repository interfaces. -2025-12-15 17:11:32 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-12-15 17:11:33 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2025-12-15 17:11:33 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-12-15 17:11:33 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-12-15 17:11:33 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-12-15 17:11:39 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-15 17:11:39 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. -2025-12-15 17:11:39 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data JDBC - Could not safely identify store assignment for repository candidate interface store.slackjudge.batch.infra.mongo.repository.UserSolvedSnapShotRepository; If you want this repository to be a JDBC repository, consider annotating your entities with one of these annotations: org.springframework.data.relational.core.mapping.Table. -2025-12-15 17:11:39 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 14 ms. Found 0 JDBC repository interfaces. -2025-12-15 17:11:39 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-15 17:11:39 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-12-15 17:11:39 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data JPA - Could not safely identify store assignment for repository candidate interface store.slackjudge.batch.infra.mongo.repository.UserSolvedSnapShotRepository; If you want this repository to be a JPA repository, consider annotating your entities with one of these annotations: jakarta.persistence.Entity, jakarta.persistence.MappedSuperclass (preferred), or consider extending one of the following types with your repository: org.springframework.data.jpa.repository.JpaRepository -2025-12-15 17:11:39 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 5 ms. Found 0 JPA repository interfaces. -2025-12-15 17:11:39 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-15 17:11:39 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data MongoDB repositories in DEFAULT mode. -2025-12-15 17:11:39 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 56 ms. Found 1 MongoDB repository interface. -2025-12-15 17:11:39 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-12-15 17:11:41 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2025-12-15 17:11:41 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-12-15 17:11:41 [Test worker] DEBUG org.mongodb.driver.connection - Connection pool created for localhost:27017 using options maxIdleTimeMS=0, minPoolSize=0, maxPoolSize=100, maxConnecting=2, waitQueueTimeoutMS=120000 -2025-12-15 17:11:41 [cluster-ClusterId{value='693fc2bd400f052caa60fa20', description='null'}-localhost:27017] DEBUG org.mongodb.driver.connection - Connection pool ready for localhost:27017 -2025-12-15 17:11:42 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2025-12-15 17:11:42 [Test worker] INFO o.s.b.c.l.s.TaskExecutorJobLauncher - Job: [SimpleJob: [name=slackJudge]] launched with the following parameters: [{'batchTime':'{value=2025-12-15T17:11:42.653289, type=class java.time.LocalDateTime, identifying=true}'}] -2025-12-15 17:11:42 [Test worker] INFO o.s.batch.core.job.SimpleStepHandler - Executing step: [LoadAllUsersStep] -2025-12-15 17:11:42 [Test worker] INFO o.s.batch.core.step.AbstractStep - Step: [LoadAllUsersStep] executed in 9ms -2025-12-15 17:11:42 [Test worker] INFO o.s.batch.core.job.SimpleStepHandler - Executing step: [LoadSnapshotStep] -2025-12-15 17:11:42 [Test worker] INFO o.s.batch.core.step.AbstractStep - Step: [LoadSnapshotStep] executed in 19ms -2025-12-15 17:11:42 [Test worker] INFO o.s.batch.core.job.SimpleStepHandler - Executing step: [FetchSolvedAcUserInfoStep] -2025-12-15 17:11:42 [Test worker] INFO o.s.batch.core.step.AbstractStep - Step: [FetchSolvedAcUserInfoStep] executed in 4ms -2025-12-15 17:11:42 [Test worker] INFO o.s.batch.core.job.SimpleStepHandler - Executing step: [detectAndUpdateUserTierAndProblemStep] -2025-12-15 17:11:42 [Test worker] INFO o.s.batch.core.step.AbstractStep - Step: [detectAndUpdateUserTierAndProblemStep] executed in 5ms -2025-12-15 17:11:42 [Test worker] INFO o.s.batch.core.job.SimpleStepHandler - Executing step: [saveSnapshotStep] -2025-12-15 17:11:42 [Test worker] INFO o.s.batch.core.step.AbstractStep - Step: [saveSnapshotStep] executed in 3ms -2025-12-15 17:11:42 [Test worker] INFO o.s.b.c.l.s.TaskExecutorJobLauncher - Job: [SimpleJob: [name=slackJudge]] completed with the following parameters: [{'batchTime':'{value=2025-12-15T17:11:42.653289, type=class java.time.LocalDateTime, identifying=true}'}] and the following status: [COMPLETED] in 150ms -2025-12-15 17:11:42 [SpringApplicationShutdownHook] DEBUG org.mongodb.driver.connection - Connection pool closed for localhost:27017 -2025-12-15 17:11:42 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-12-15 17:11:57 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-15 17:11:57 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JDBC repositories in DEFAULT mode. -2025-12-15 17:11:57 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data JDBC - Could not safely identify store assignment for repository candidate interface store.slackjudge.batch.infra.mongo.repository.UserSolvedSnapShotRepository; If you want this repository to be a JDBC repository, consider annotating your entities with one of these annotations: org.springframework.data.relational.core.mapping.Table. -2025-12-15 17:11:57 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 13 ms. Found 0 JDBC repository interfaces. -2025-12-15 17:11:57 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-15 17:11:57 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-12-15 17:11:57 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data JPA - Could not safely identify store assignment for repository candidate interface store.slackjudge.batch.infra.mongo.repository.UserSolvedSnapShotRepository; If you want this repository to be a JPA repository, consider annotating your entities with one of these annotations: jakarta.persistence.Entity, jakarta.persistence.MappedSuperclass (preferred), or consider extending one of the following types with your repository: org.springframework.data.jpa.repository.JpaRepository -2025-12-15 17:11:57 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 4 ms. Found 0 JPA repository interfaces. -2025-12-15 17:11:57 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-15 17:11:57 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data MongoDB repositories in DEFAULT mode. -2025-12-15 17:11:57 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 53 ms. Found 1 MongoDB repository interface. -2025-12-15 17:11:57 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-12-15 17:11:59 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2025-12-15 17:11:59 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-12-15 17:12:00 [Test worker] DEBUG org.mongodb.driver.connection - Connection pool created for localhost:27017 using options maxIdleTimeMS=0, minPoolSize=0, maxPoolSize=100, maxConnecting=2, waitQueueTimeoutMS=120000 -2025-12-15 17:12:00 [cluster-ClusterId{value='693fc2d0052b6b3b4c6bc452', description='null'}-localhost:27017] DEBUG org.mongodb.driver.connection - Connection pool ready for localhost:27017 -2025-12-15 17:12:00 [Test worker] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2025-12-15 17:12:00 [Test worker] INFO o.s.b.c.l.s.TaskExecutorJobLauncher - Job: [SimpleJob: [name=slackJudge]] launched with the following parameters: [{'batchTime':'{value=2025-12-15T17:12:00.542972, type=class java.time.LocalDateTime, identifying=true}'}] -2025-12-15 17:12:00 [Test worker] INFO o.s.batch.core.job.SimpleStepHandler - Executing step: [LoadAllUsersStep] -2025-12-15 17:12:00 [Test worker] INFO o.s.batch.core.step.AbstractStep - Step: [LoadAllUsersStep] executed in 9ms -2025-12-15 17:12:00 [Test worker] INFO o.s.batch.core.job.SimpleStepHandler - Executing step: [LoadSnapshotStep] -2025-12-15 17:12:00 [Test worker] INFO o.s.batch.core.step.AbstractStep - Step: [LoadSnapshotStep] executed in 16ms -2025-12-15 17:12:00 [Test worker] INFO o.s.batch.core.job.SimpleStepHandler - Executing step: [FetchSolvedAcUserInfoStep] -2025-12-15 17:12:00 [Test worker] INFO o.s.batch.core.step.AbstractStep - Step: [FetchSolvedAcUserInfoStep] executed in 3ms -2025-12-15 17:12:00 [Test worker] INFO o.s.batch.core.job.SimpleStepHandler - Executing step: [detectAndUpdateUserTierAndProblemStep] -2025-12-15 17:12:00 [Test worker] INFO o.s.batch.core.step.AbstractStep - Step: [detectAndUpdateUserTierAndProblemStep] executed in 4ms -2025-12-15 17:12:00 [Test worker] INFO o.s.batch.core.job.SimpleStepHandler - Executing step: [saveSnapshotStep] -2025-12-15 17:12:00 [Test worker] INFO o.s.batch.core.step.AbstractStep - Step: [saveSnapshotStep] executed in 2ms -2025-12-15 17:12:00 [Test worker] INFO o.s.b.c.l.s.TaskExecutorJobLauncher - Job: [SimpleJob: [name=slackJudge]] completed with the following parameters: [{'batchTime':'{value=2025-12-15T17:12:00.542972, type=class java.time.LocalDateTime, identifying=true}'}] and the following status: [COMPLETED] in 127ms -2025-12-15 17:12:00 [SpringApplicationShutdownHook] DEBUG org.mongodb.driver.connection - Connection pool closed for localhost:27017 -2025-12-15 17:12:00 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-12-16 16:03:17 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-16 16:03:17 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-12-16 16:03:17 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data JPA - Could not safely identify store assignment for repository candidate interface store.slackjudge.batch.infra.mongo.repository.UserSolvedSnapShotRepository; If you want this repository to be a JPA repository, consider annotating your entities with one of these annotations: jakarta.persistence.Entity, jakarta.persistence.MappedSuperclass (preferred), or consider extending one of the following types with your repository: org.springframework.data.jpa.repository.JpaRepository -2025-12-16 16:03:17 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 58 ms. Found 0 JPA repository interfaces. -2025-12-16 16:03:18 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-12-16 16:03:24 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2025-12-16 16:03:25 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-12-16 16:03:26 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-12-16 16:03:57 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-16 16:03:57 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-12-16 16:03:57 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data JPA - Could not safely identify store assignment for repository candidate interface store.slackjudge.batch.infra.mongo.repository.UserSolvedSnapShotRepository; If you want this repository to be a JPA repository, consider annotating your entities with one of these annotations: jakarta.persistence.Entity, jakarta.persistence.MappedSuperclass (preferred), or consider extending one of the following types with your repository: org.springframework.data.jpa.repository.JpaRepository -2025-12-16 16:03:57 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 22 ms. Found 0 JPA repository interfaces. -2025-12-16 16:03:57 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-12-16 16:03:59 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2025-12-16 16:04:00 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-12-16 16:04:01 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-12-16 16:04:25 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-16 16:04:25 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-12-16 16:04:25 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data JPA - Could not safely identify store assignment for repository candidate interface store.slackjudge.batch.infra.mongo.repository.UserSolvedSnapShotRepository; If you want this repository to be a JPA repository, consider annotating your entities with one of these annotations: jakarta.persistence.Entity, jakarta.persistence.MappedSuperclass (preferred), or consider extending one of the following types with your repository: org.springframework.data.jpa.repository.JpaRepository -2025-12-16 16:04:25 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 23 ms. Found 0 JPA repository interfaces. -2025-12-16 16:04:26 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-12-16 16:04:28 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2025-12-16 16:04:28 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-12-16 16:04:30 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-12-16 16:05:22 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-12-16 16:05:22 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-12-16 16:05:22 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data JPA - Could not safely identify store assignment for repository candidate interface store.slackjudge.batch.infra.mongo.repository.UserSolvedSnapShotRepository; If you want this repository to be a JPA repository, consider annotating your entities with one of these annotations: jakarta.persistence.Entity, jakarta.persistence.MappedSuperclass (preferred), or consider extending one of the following types with your repository: org.springframework.data.jpa.repository.JpaRepository -2025-12-16 16:05:22 [Test worker] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 25 ms. Found 0 JPA repository interfaces. -2025-12-16 16:05:22 [Test worker] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-12-16 16:05:25 [Test worker] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2025-12-16 16:05:25 [Test worker] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-12-16 16:05:27 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' diff --git a/slackjudge/src/main/java/store/slackjudge/batch/SlackJudgeBatchRunner.java b/src/main/java/store/slackjudge/batch/SlackJudgeBatchRunner.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/SlackJudgeBatchRunner.java rename to src/main/java/store/slackjudge/batch/SlackJudgeBatchRunner.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/SlackjudgeApplication.java b/src/main/java/store/slackjudge/batch/SlackjudgeApplication.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/SlackjudgeApplication.java rename to src/main/java/store/slackjudge/batch/SlackjudgeApplication.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/common/CalculateSnapShotDate.java b/src/main/java/store/slackjudge/batch/common/CalculateSnapShotDate.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/common/CalculateSnapShotDate.java rename to src/main/java/store/slackjudge/batch/common/CalculateSnapShotDate.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/config/BatchConfig.java b/src/main/java/store/slackjudge/batch/config/BatchConfig.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/config/BatchConfig.java rename to src/main/java/store/slackjudge/batch/config/BatchConfig.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/config/BatchJobListener.java b/src/main/java/store/slackjudge/batch/config/BatchJobListener.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/config/BatchJobListener.java rename to src/main/java/store/slackjudge/batch/config/BatchJobListener.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/config/BatchLogger.java b/src/main/java/store/slackjudge/batch/config/BatchLogger.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/config/BatchLogger.java rename to src/main/java/store/slackjudge/batch/config/BatchLogger.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/config/MongoConfig.java b/src/main/java/store/slackjudge/batch/config/MongoConfig.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/config/MongoConfig.java rename to src/main/java/store/slackjudge/batch/config/MongoConfig.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/config/RetryConfig.java b/src/main/java/store/slackjudge/batch/config/RetryConfig.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/config/RetryConfig.java rename to src/main/java/store/slackjudge/batch/config/RetryConfig.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/config/TimeConfig.java b/src/main/java/store/slackjudge/batch/config/TimeConfig.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/config/TimeConfig.java rename to src/main/java/store/slackjudge/batch/config/TimeConfig.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/config/WebClientConfig.java b/src/main/java/store/slackjudge/batch/config/WebClientConfig.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/config/WebClientConfig.java rename to src/main/java/store/slackjudge/batch/config/WebClientConfig.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/config/converter/DateToLocalDateTimeKstConverter.java b/src/main/java/store/slackjudge/batch/config/converter/DateToLocalDateTimeKstConverter.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/config/converter/DateToLocalDateTimeKstConverter.java rename to src/main/java/store/slackjudge/batch/config/converter/DateToLocalDateTimeKstConverter.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/config/converter/LocalDateTimeToDateKstConverter.java b/src/main/java/store/slackjudge/batch/config/converter/LocalDateTimeToDateKstConverter.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/config/converter/LocalDateTimeToDateKstConverter.java rename to src/main/java/store/slackjudge/batch/config/converter/LocalDateTimeToDateKstConverter.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/dto/UserInfo.java b/src/main/java/store/slackjudge/batch/dto/UserInfo.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/dto/UserInfo.java rename to src/main/java/store/slackjudge/batch/dto/UserInfo.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/mongo/document/SnapShotId.java b/src/main/java/store/slackjudge/batch/infra/mongo/document/SnapShotId.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/mongo/document/SnapShotId.java rename to src/main/java/store/slackjudge/batch/infra/mongo/document/SnapShotId.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/mongo/document/UserSolvedSnapShotDocument.java b/src/main/java/store/slackjudge/batch/infra/mongo/document/UserSolvedSnapShotDocument.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/mongo/document/UserSolvedSnapShotDocument.java rename to src/main/java/store/slackjudge/batch/infra/mongo/document/UserSolvedSnapShotDocument.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/mongo/dto/SaveSnapshot.java b/src/main/java/store/slackjudge/batch/infra/mongo/dto/SaveSnapshot.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/mongo/dto/SaveSnapshot.java rename to src/main/java/store/slackjudge/batch/infra/mongo/dto/SaveSnapshot.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/mongo/repository/UserSolvedSnapShotRepository.java b/src/main/java/store/slackjudge/batch/infra/mongo/repository/UserSolvedSnapShotRepository.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/mongo/repository/UserSolvedSnapShotRepository.java rename to src/main/java/store/slackjudge/batch/infra/mongo/repository/UserSolvedSnapShotRepository.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/mongo/service/UserSnapShotService.java b/src/main/java/store/slackjudge/batch/infra/mongo/service/UserSnapShotService.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/mongo/service/UserSnapShotService.java rename to src/main/java/store/slackjudge/batch/infra/mongo/service/UserSnapShotService.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/slack/SlackNotificationService.java b/src/main/java/store/slackjudge/batch/infra/slack/SlackNotificationService.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/slack/SlackNotificationService.java rename to src/main/java/store/slackjudge/batch/infra/slack/SlackNotificationService.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/slack/logging/LogEventMessageSpec.java b/src/main/java/store/slackjudge/batch/infra/slack/logging/LogEventMessageSpec.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/slack/logging/LogEventMessageSpec.java rename to src/main/java/store/slackjudge/batch/infra/slack/logging/LogEventMessageSpec.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/slack/logging/SlackLogAppender.java b/src/main/java/store/slackjudge/batch/infra/slack/logging/SlackLogAppender.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/slack/logging/SlackLogAppender.java rename to src/main/java/store/slackjudge/batch/infra/slack/logging/SlackLogAppender.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/slack/logging/SlackLogFormatter.java b/src/main/java/store/slackjudge/batch/infra/slack/logging/SlackLogFormatter.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/slack/logging/SlackLogFormatter.java rename to src/main/java/store/slackjudge/batch/infra/slack/logging/SlackLogFormatter.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/slack/logging/SlackLoggingWebhookSender.java b/src/main/java/store/slackjudge/batch/infra/slack/logging/SlackLoggingWebhookSender.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/slack/logging/SlackLoggingWebhookSender.java rename to src/main/java/store/slackjudge/batch/infra/slack/logging/SlackLoggingWebhookSender.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/slack/message/BatchEndMessageSpec.java b/src/main/java/store/slackjudge/batch/infra/slack/message/BatchEndMessageSpec.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/slack/message/BatchEndMessageSpec.java rename to src/main/java/store/slackjudge/batch/infra/slack/message/BatchEndMessageSpec.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/slack/message/BatchStartMessageSpec.java b/src/main/java/store/slackjudge/batch/infra/slack/message/BatchStartMessageSpec.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/slack/message/BatchStartMessageSpec.java rename to src/main/java/store/slackjudge/batch/infra/slack/message/BatchStartMessageSpec.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/slack/message/SlackMessageFactory.java b/src/main/java/store/slackjudge/batch/infra/slack/message/SlackMessageFactory.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/slack/message/SlackMessageFactory.java rename to src/main/java/store/slackjudge/batch/infra/slack/message/SlackMessageFactory.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/slack/message/SlackTextLayout.java b/src/main/java/store/slackjudge/batch/infra/slack/message/SlackTextLayout.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/slack/message/SlackTextLayout.java rename to src/main/java/store/slackjudge/batch/infra/slack/message/SlackTextLayout.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/slack/sender/SlackSender.java b/src/main/java/store/slackjudge/batch/infra/slack/sender/SlackSender.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/slack/sender/SlackSender.java rename to src/main/java/store/slackjudge/batch/infra/slack/sender/SlackSender.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/slack/sender/SlackWebhookSender.java b/src/main/java/store/slackjudge/batch/infra/slack/sender/SlackWebhookSender.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/slack/sender/SlackWebhookSender.java rename to src/main/java/store/slackjudge/batch/infra/slack/sender/SlackWebhookSender.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/SolvedAcProperties.java b/src/main/java/store/slackjudge/batch/infra/solvedac/SolvedAcProperties.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/SolvedAcProperties.java rename to src/main/java/store/slackjudge/batch/infra/solvedac/SolvedAcProperties.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/client/AbstractSolvedAcApiClient.java b/src/main/java/store/slackjudge/batch/infra/solvedac/client/AbstractSolvedAcApiClient.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/client/AbstractSolvedAcApiClient.java rename to src/main/java/store/slackjudge/batch/infra/solvedac/client/AbstractSolvedAcApiClient.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcProblemInfoClient.java b/src/main/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcProblemInfoClient.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcProblemInfoClient.java rename to src/main/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcProblemInfoClient.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcUserInfoClient.java b/src/main/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcUserInfoClient.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcUserInfoClient.java rename to src/main/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcUserInfoClient.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/dto/ProblemInfoResponse.java b/src/main/java/store/slackjudge/batch/infra/solvedac/dto/ProblemInfoResponse.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/dto/ProblemInfoResponse.java rename to src/main/java/store/slackjudge/batch/infra/solvedac/dto/ProblemInfoResponse.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/dto/ProblemSearchResponse.java b/src/main/java/store/slackjudge/batch/infra/solvedac/dto/ProblemSearchResponse.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/dto/ProblemSearchResponse.java rename to src/main/java/store/slackjudge/batch/infra/solvedac/dto/ProblemSearchResponse.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/dto/UserInfoResponse.java b/src/main/java/store/slackjudge/batch/infra/solvedac/dto/UserInfoResponse.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/dto/UserInfoResponse.java rename to src/main/java/store/slackjudge/batch/infra/solvedac/dto/UserInfoResponse.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/util/UrlBuilder.java b/src/main/java/store/slackjudge/batch/infra/solvedac/util/UrlBuilder.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/infra/solvedac/util/UrlBuilder.java rename to src/main/java/store/slackjudge/batch/infra/solvedac/util/UrlBuilder.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/repository/ProblemJdbcRepository.java b/src/main/java/store/slackjudge/batch/repository/ProblemJdbcRepository.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/repository/ProblemJdbcRepository.java rename to src/main/java/store/slackjudge/batch/repository/ProblemJdbcRepository.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/repository/UserJdbcRepository.java b/src/main/java/store/slackjudge/batch/repository/UserJdbcRepository.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/repository/UserJdbcRepository.java rename to src/main/java/store/slackjudge/batch/repository/UserJdbcRepository.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/service/DetectionContext.java b/src/main/java/store/slackjudge/batch/service/DetectionContext.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/service/DetectionContext.java rename to src/main/java/store/slackjudge/batch/service/DetectionContext.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/service/ProblemChangeDetector.java b/src/main/java/store/slackjudge/batch/service/ProblemChangeDetector.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/service/ProblemChangeDetector.java rename to src/main/java/store/slackjudge/batch/service/ProblemChangeDetector.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/service/SnapshotDetectStrategy.java b/src/main/java/store/slackjudge/batch/service/SnapshotDetectStrategy.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/service/SnapshotDetectStrategy.java rename to src/main/java/store/slackjudge/batch/service/SnapshotDetectStrategy.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/service/TierChangeDetector.java b/src/main/java/store/slackjudge/batch/service/TierChangeDetector.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/service/TierChangeDetector.java rename to src/main/java/store/slackjudge/batch/service/TierChangeDetector.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/tasklet/DetectAndUpdateUserTierAndProblemTasklet.java b/src/main/java/store/slackjudge/batch/tasklet/DetectAndUpdateUserTierAndProblemTasklet.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/tasklet/DetectAndUpdateUserTierAndProblemTasklet.java rename to src/main/java/store/slackjudge/batch/tasklet/DetectAndUpdateUserTierAndProblemTasklet.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/tasklet/FetchSolvedAcUserInfoTasklet.java b/src/main/java/store/slackjudge/batch/tasklet/FetchSolvedAcUserInfoTasklet.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/tasklet/FetchSolvedAcUserInfoTasklet.java rename to src/main/java/store/slackjudge/batch/tasklet/FetchSolvedAcUserInfoTasklet.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/tasklet/LoadAllUsersTasklet.java b/src/main/java/store/slackjudge/batch/tasklet/LoadAllUsersTasklet.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/tasklet/LoadAllUsersTasklet.java rename to src/main/java/store/slackjudge/batch/tasklet/LoadAllUsersTasklet.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/tasklet/LoadSnapshotTasklet.java b/src/main/java/store/slackjudge/batch/tasklet/LoadSnapshotTasklet.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/tasklet/LoadSnapshotTasklet.java rename to src/main/java/store/slackjudge/batch/tasklet/LoadSnapshotTasklet.java diff --git a/slackjudge/src/main/java/store/slackjudge/batch/tasklet/SaveSnapshotTasklet.java b/src/main/java/store/slackjudge/batch/tasklet/SaveSnapshotTasklet.java similarity index 100% rename from slackjudge/src/main/java/store/slackjudge/batch/tasklet/SaveSnapshotTasklet.java rename to src/main/java/store/slackjudge/batch/tasklet/SaveSnapshotTasklet.java diff --git a/slackjudge/src/main/resources/application.yml b/src/main/resources/application.yml similarity index 100% rename from slackjudge/src/main/resources/application.yml rename to src/main/resources/application.yml diff --git a/slackjudge/src/main/resources/batch.yml b/src/main/resources/batch.yml similarity index 100% rename from slackjudge/src/main/resources/batch.yml rename to src/main/resources/batch.yml diff --git a/slackjudge/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml similarity index 100% rename from slackjudge/src/main/resources/logback-spring.xml rename to src/main/resources/logback-spring.xml diff --git a/slackjudge/src/main/resources/mongo.yml b/src/main/resources/mongo.yml similarity index 100% rename from slackjudge/src/main/resources/mongo.yml rename to src/main/resources/mongo.yml diff --git a/slackjudge/src/main/resources/postgres.yml b/src/main/resources/postgres.yml similarity index 100% rename from slackjudge/src/main/resources/postgres.yml rename to src/main/resources/postgres.yml diff --git a/slackjudge/src/test/java/sql/create_problem_problem_type_table.sql b/src/test/java/sql/create_problem_problem_type_table.sql similarity index 100% rename from slackjudge/src/test/java/sql/create_problem_problem_type_table.sql rename to src/test/java/sql/create_problem_problem_type_table.sql diff --git a/slackjudge/src/test/java/sql/create_problem_table.sql b/src/test/java/sql/create_problem_table.sql similarity index 100% rename from slackjudge/src/test/java/sql/create_problem_table.sql rename to src/test/java/sql/create_problem_table.sql diff --git a/slackjudge/src/test/java/sql/create_problem_type_table.sql b/src/test/java/sql/create_problem_type_table.sql similarity index 100% rename from slackjudge/src/test/java/sql/create_problem_type_table.sql rename to src/test/java/sql/create_problem_type_table.sql diff --git a/slackjudge/src/test/java/sql/create_user_problem_table.sql b/src/test/java/sql/create_user_problem_table.sql similarity index 100% rename from slackjudge/src/test/java/sql/create_user_problem_table.sql rename to src/test/java/sql/create_user_problem_table.sql diff --git a/slackjudge/src/test/java/sql/create_user_table.sql b/src/test/java/sql/create_user_table.sql similarity index 100% rename from slackjudge/src/test/java/sql/create_user_table.sql rename to src/test/java/sql/create_user_table.sql diff --git a/slackjudge/src/test/java/store/slackjudge/batch/EnablePostgresTest.java b/src/test/java/store/slackjudge/batch/EnablePostgresTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/EnablePostgresTest.java rename to src/test/java/store/slackjudge/batch/EnablePostgresTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/PostgresTestContainer.java b/src/test/java/store/slackjudge/batch/PostgresTestContainer.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/PostgresTestContainer.java rename to src/test/java/store/slackjudge/batch/PostgresTestContainer.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/SlackjudgeApplicationTests.java b/src/test/java/store/slackjudge/batch/SlackjudgeApplicationTests.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/SlackjudgeApplicationTests.java rename to src/test/java/store/slackjudge/batch/SlackjudgeApplicationTests.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/TestContainer.java b/src/test/java/store/slackjudge/batch/TestContainer.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/TestContainer.java rename to src/test/java/store/slackjudge/batch/TestContainer.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/common/CalculateSnapShotDateTest.java b/src/test/java/store/slackjudge/batch/common/CalculateSnapShotDateTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/common/CalculateSnapShotDateTest.java rename to src/test/java/store/slackjudge/batch/common/CalculateSnapShotDateTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/infra/mongo/document/SnapShotIdTest.java b/src/test/java/store/slackjudge/batch/infra/mongo/document/SnapShotIdTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/infra/mongo/document/SnapShotIdTest.java rename to src/test/java/store/slackjudge/batch/infra/mongo/document/SnapShotIdTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/infra/mongo/repository/UserSolvedSnapShotRepositoryTest.java b/src/test/java/store/slackjudge/batch/infra/mongo/repository/UserSolvedSnapShotRepositoryTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/infra/mongo/repository/UserSolvedSnapShotRepositoryTest.java rename to src/test/java/store/slackjudge/batch/infra/mongo/repository/UserSolvedSnapShotRepositoryTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/infra/mongo/service/UserSnapShotServiceTest.java b/src/test/java/store/slackjudge/batch/infra/mongo/service/UserSnapShotServiceTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/infra/mongo/service/UserSnapShotServiceTest.java rename to src/test/java/store/slackjudge/batch/infra/mongo/service/UserSnapShotServiceTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/infra/mongo/service/detector/ProblemChangeDetectorTest.java b/src/test/java/store/slackjudge/batch/infra/mongo/service/detector/ProblemChangeDetectorTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/infra/mongo/service/detector/ProblemChangeDetectorTest.java rename to src/test/java/store/slackjudge/batch/infra/mongo/service/detector/ProblemChangeDetectorTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/infra/mongo/service/detector/TierChangeDetectorTest.java b/src/test/java/store/slackjudge/batch/infra/mongo/service/detector/TierChangeDetectorTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/infra/mongo/service/detector/TierChangeDetectorTest.java rename to src/test/java/store/slackjudge/batch/infra/mongo/service/detector/TierChangeDetectorTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/infra/slack/message/SlackMessageFactoryTest.java b/src/test/java/store/slackjudge/batch/infra/slack/message/SlackMessageFactoryTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/infra/slack/message/SlackMessageFactoryTest.java rename to src/test/java/store/slackjudge/batch/infra/slack/message/SlackMessageFactoryTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/infra/slack/message/SlackTextLayoutTest.java b/src/test/java/store/slackjudge/batch/infra/slack/message/SlackTextLayoutTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/infra/slack/message/SlackTextLayoutTest.java rename to src/test/java/store/slackjudge/batch/infra/slack/message/SlackTextLayoutTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/infra/solvedac/client/AbstractSolvedAcApiClientTest.java b/src/test/java/store/slackjudge/batch/infra/solvedac/client/AbstractSolvedAcApiClientTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/infra/solvedac/client/AbstractSolvedAcApiClientTest.java rename to src/test/java/store/slackjudge/batch/infra/solvedac/client/AbstractSolvedAcApiClientTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcProblemInfoClientTest.java b/src/test/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcProblemInfoClientTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcProblemInfoClientTest.java rename to src/test/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcProblemInfoClientTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcUserInfoClientTest.java b/src/test/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcUserInfoClientTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcUserInfoClientTest.java rename to src/test/java/store/slackjudge/batch/infra/solvedac/client/SolvedAcUserInfoClientTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/infra/solvedac/util/UrlBuilderTest.java b/src/test/java/store/slackjudge/batch/infra/solvedac/util/UrlBuilderTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/infra/solvedac/util/UrlBuilderTest.java rename to src/test/java/store/slackjudge/batch/infra/solvedac/util/UrlBuilderTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/repository/ProblemJdbcRepositoryTest.java b/src/test/java/store/slackjudge/batch/repository/ProblemJdbcRepositoryTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/repository/ProblemJdbcRepositoryTest.java rename to src/test/java/store/slackjudge/batch/repository/ProblemJdbcRepositoryTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/repository/UserJdbcRepositoryTest.java b/src/test/java/store/slackjudge/batch/repository/UserJdbcRepositoryTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/repository/UserJdbcRepositoryTest.java rename to src/test/java/store/slackjudge/batch/repository/UserJdbcRepositoryTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/tasklet/DetectAndUpdateUserTierAndProblemTaskletTest.java b/src/test/java/store/slackjudge/batch/tasklet/DetectAndUpdateUserTierAndProblemTaskletTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/tasklet/DetectAndUpdateUserTierAndProblemTaskletTest.java rename to src/test/java/store/slackjudge/batch/tasklet/DetectAndUpdateUserTierAndProblemTaskletTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/tasklet/FetchSolvedAcUserInfoTaskletTest.java b/src/test/java/store/slackjudge/batch/tasklet/FetchSolvedAcUserInfoTaskletTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/tasklet/FetchSolvedAcUserInfoTaskletTest.java rename to src/test/java/store/slackjudge/batch/tasklet/FetchSolvedAcUserInfoTaskletTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/tasklet/LoadAllUsersTaskletTest.java b/src/test/java/store/slackjudge/batch/tasklet/LoadAllUsersTaskletTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/tasklet/LoadAllUsersTaskletTest.java rename to src/test/java/store/slackjudge/batch/tasklet/LoadAllUsersTaskletTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/tasklet/LoadSnapshotTaskletTest.java b/src/test/java/store/slackjudge/batch/tasklet/LoadSnapshotTaskletTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/tasklet/LoadSnapshotTaskletTest.java rename to src/test/java/store/slackjudge/batch/tasklet/LoadSnapshotTaskletTest.java diff --git a/slackjudge/src/test/java/store/slackjudge/batch/tasklet/SaveSnapshotTaskletTest.java b/src/test/java/store/slackjudge/batch/tasklet/SaveSnapshotTaskletTest.java similarity index 100% rename from slackjudge/src/test/java/store/slackjudge/batch/tasklet/SaveSnapshotTaskletTest.java rename to src/test/java/store/slackjudge/batch/tasklet/SaveSnapshotTaskletTest.java diff --git a/slackjudge/src/test/resources/application-test.yml b/src/test/resources/application-test.yml similarity index 100% rename from slackjudge/src/test/resources/application-test.yml rename to src/test/resources/application-test.yml diff --git a/slackjudge/src/test/resources/init_schema.sql b/src/test/resources/init_schema.sql similarity index 100% rename from slackjudge/src/test/resources/init_schema.sql rename to src/test/resources/init_schema.sql diff --git a/slackjudge/src/test/resources/valid_problem.json b/src/test/resources/valid_problem.json similarity index 100% rename from slackjudge/src/test/resources/valid_problem.json rename to src/test/resources/valid_problem.json diff --git a/slackjudge/src/test/resources/valid_user.json b/src/test/resources/valid_user.json similarity index 100% rename from slackjudge/src/test/resources/valid_user.json rename to src/test/resources/valid_user.json From 48f407b8c8c7c9058cafed15262093cc5f2c3c5b Mon Sep 17 00:00:00 2001 From: swthewhite Date: Tue, 23 Dec 2025 17:12:04 +0900 Subject: [PATCH 2/4] =?UTF-8?q?chore/#49:=20=EB=B3=80=EA=B2=BD=EB=90=9C=20?= =?UTF-8?q?=EB=94=94=EB=A0=89=ED=86=A0=EB=A6=AC=20=EA=B5=AC=EC=A1=B0?= =?UTF-8?q?=EC=97=90=20=EB=A7=9E=EC=B6=B0=20github=20actions=20=EA=B0=9C?= =?UTF-8?q?=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 4 +--- .github/workflows/integrate.yml | 8 ++------ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index bc3d52f..03625bc 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -43,11 +43,9 @@ jobs: distribution: 'temurin' - name: Grant execute permission for gradlew - working-directory: ./slackjudge run: chmod +x gradlew - name: Build with Gradle - working-directory: ./slackjudge run: ./gradlew build -x test - name: Configure AWS credentials @@ -67,7 +65,7 @@ jobs: - name: Build and push Docker image uses: docker/build-push-action@v5 with: - context: ./slackjudge + context: . push: true tags: | ${{ steps.login-ecr.outputs.registry }}/${{ vars.ECR_REPOSITORY }}:${{ github.sha }} diff --git a/.github/workflows/integrate.yml b/.github/workflows/integrate.yml index 1682871..a347d2d 100644 --- a/.github/workflows/integrate.yml +++ b/.github/workflows/integrate.yml @@ -38,10 +38,6 @@ jobs: checks: write pull-requests: write - defaults: - run: - working-directory: slackjudge - steps: - name: Checkout source uses: actions/checkout@v4 @@ -54,7 +50,7 @@ jobs: java-version: ${{ env.JAVA_VERSION }} distribution: temurin cache: gradle - cache-dependency-path: slackjudge/*.gradle* + cache-dependency-path: '*.gradle*' - name: Grant execution to Gradle wrapper run: chmod +x gradlew @@ -83,7 +79,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: worker-app - path: slackjudge/build/libs/*.jar + path: build/libs/*.jar - name: Integration Summary run: | From e37bba63af41b568034b5b5732c940af28ea3614 Mon Sep 17 00:00:00 2001 From: swthewhite Date: Tue, 23 Dec 2025 17:13:05 +0900 Subject: [PATCH 3/4] =?UTF-8?q?chore/#49:=20=EB=B3=80=EA=B2=BD=EB=90=9C=20?= =?UTF-8?q?=EA=B5=AC=EC=A1=B0=EC=97=90=20=EB=A7=9E=EC=B6=B0=20gradle.xml?= =?UTF-8?q?=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/gradle.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.idea/gradle.xml b/.idea/gradle.xml index d3607b6..ce1c62c 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -4,10 +4,10 @@