diff --git a/build.gradle b/build.gradle index 332eb03..280e903 100644 --- a/build.gradle +++ b/build.gradle @@ -41,6 +41,7 @@ dependencies { // PostgreSQL implementation 'org.postgresql:postgresql:42.6.0' + runtimeOnly 'com.h2database:h2' // Redis implementation 'org.springframework.boot:spring-boot-starter-data-redis' diff --git a/full_log.txt b/full_log.txt new file mode 100644 index 0000000..7b29092 --- /dev/null +++ b/full_log.txt @@ -0,0 +1,3154 @@ +Initialized native services in: /Users/jypc/.gradle/native +Initialized jansi services in: /Users/jypc/.gradle/native +Found daemon DaemonInfo{pid=32397, address=[aa46da5d-a88b-425d-9296-f1e1dc18e288 port:56733, addresses:[/127.0.0.1]], state=Idle, lastBusy=1764003679716, context=DefaultDaemonContext[uid=55fe95a8-b90a-445a-a148-588021245676,javaHome=/Users/jypc/Library/Java/JavaVirtualMachines/corretto-21.0.5/Contents/Home,javaVersion=21,javaVendor=Amazon.com Inc.,daemonRegistryDir=/Users/jypc/.gradle/daemon,pid=32397,idleTimeout=10800000,priority=NORMAL,applyInstrumentationAgent=true,nativeServicesMode=ENABLED,daemonOpts=-XX:MaxMetaspaceSize=384m,-XX:+HeapDumpOnOutOfMemoryError,-Xms256m,-Xmx512m,-Dfile.encoding=UTF-8,-Duser.country=KR,-Duser.language=ko,-Duser.variant]} however its context does not match the desired criteria. +JVM is incompatible. +Wanted: DaemonRequestContext{jvmCriteria=/Users/jypc/Library/Java/JavaVirtualMachines/corretto-22.0.2/Contents/Home (no JDK specified, using current Java home), daemonOpts=[-XX:MaxMetaspaceSize=384m, -XX:+HeapDumpOnOutOfMemoryError, -Xms256m, -Xmx512m, -Dfile.encoding=UTF-8, -Duser.country=KR, -Duser.language=ko, -Duser.variant], applyInstrumentationAgent=true, nativeServicesMode=ENABLED, priority=NORMAL} +Actual: DefaultDaemonContext[uid=55fe95a8-b90a-445a-a148-588021245676,javaHome=/Users/jypc/Library/Java/JavaVirtualMachines/corretto-21.0.5/Contents/Home,javaVersion=21,javaVendor=Amazon.com Inc.,daemonRegistryDir=/Users/jypc/.gradle/daemon,pid=32397,idleTimeout=10800000,priority=NORMAL,applyInstrumentationAgent=true,nativeServicesMode=ENABLED,daemonOpts=-XX:MaxMetaspaceSize=384m,-XX:+HeapDumpOnOutOfMemoryError,-Xms256m,-Xmx512m,-Dfile.encoding=UTF-8,-Duser.country=KR,-Duser.language=ko,-Duser.variant] + + Looking for a different daemon... +The client will now receive all logging from the daemon (pid: 36783). The daemon log file: /Users/jypc/.gradle/daemon/8.14.3/daemon-36783.out.log +Starting 20th build in daemon [uptime: 19 mins 32.843 secs, performance: 100%, GC rate: 0.00/s, heap usage: 1% of 512 MiB, non-heap usage: 21% of 384 MiB] +Using 11 worker leases. +Now considering [/Users/jypc/Desktop/학교/3학년/2학기/기업연계SW/project/back-end] as hierarchies to watch +Watching the file system is configured to be enabled if available +Invalidating hierarchy because watch probe hasn't been triggered /Users/jypc/Desktop/학교/3학년/2학기/기업연계SW/project/back-end +Not watching anything anymore +File system watching is active +Starting Build +Settings evaluated using settings file '/Users/jypc/Desktop/학교/3학년/2학기/기업연계SW/project/back-end/settings.gradle'. +Projects loaded. Root project using build file '/Users/jypc/Desktop/학교/3학년/2학기/기업연계SW/project/back-end/build.gradle'. +Included projects: [root project 'back-end'] + +> Configure project : +Evaluating root project 'back-end' using build file '/Users/jypc/Desktop/학교/3학년/2학기/기업연계SW/project/back-end/build.gradle'. +Resolved plugin [id: 'java'] +Resolved plugin [id: 'org.springframework.boot', version: '3.5.6'] +Resolved plugin [id: 'io.spring.dependency-management', version: '1.1.7'] +Applying dependency management to configuration 'annotationProcessor' in project 'back-end' +Applying dependency management to configuration 'apiElements' in project 'back-end' +Applying dependency management to configuration 'archives' in project 'back-end' +Applying dependency management to configuration 'bootArchives' in project 'back-end' +Applying dependency management to configuration 'compileClasspath' in project 'back-end' +Applying dependency management to configuration 'compileOnly' in project 'back-end' +Applying dependency management to configuration 'default' in project 'back-end' +Applying dependency management to configuration 'developmentOnly' in project 'back-end' +Applying dependency management to configuration 'implementation' in project 'back-end' +Applying dependency management to configuration 'mainSourceElements' in project 'back-end' +Applying dependency management to configuration 'productionRuntimeClasspath' in project 'back-end' +Applying dependency management to configuration 'runtimeClasspath' in project 'back-end' +Applying dependency management to configuration 'runtimeElements' in project 'back-end' +Applying dependency management to configuration 'runtimeOnly' in project 'back-end' +Applying dependency management to configuration 'testAndDevelopmentOnly' in project 'back-end' +Applying dependency management to configuration 'testAnnotationProcessor' in project 'back-end' +Applying dependency management to configuration 'testCompileClasspath' in project 'back-end' +Applying dependency management to configuration 'testCompileOnly' in project 'back-end' +Applying dependency management to configuration 'testImplementation' in project 'back-end' +Applying dependency management to configuration 'testResultsElementsForTest' in project 'back-end' +Applying dependency management to configuration 'testRuntimeClasspath' in project 'back-end' +Applying dependency management to configuration 'testRuntimeOnly' in project 'back-end' +All projects evaluated. +Task name matched 'test' +Selected primary task 'test' from project : +Starting process 'command '/usr/libexec/java_home''. Working directory: /Users/jypc/.gradle/daemon/8.14.3 Command: /usr/libexec/java_home -V +Successfully started process 'command '/usr/libexec/java_home'' +Resolving global dependency management for project 'back-end' +Excluding [] +Excluding [] +Excluding [] +Excluding [] +Excluding [] +Excluding [] +Tasks to be executed: [task ':compileJava', task ':processResources', task ':classes', task ':compileTestJava', task ':processTestResources', task ':testClasses', task ':test'] +Tasks that were excluded: [] +Resolve mutations for :compileJava (Thread[#3141,Execution worker,5,main]) started. +:compileJava (Thread[#3141,Execution worker,5,main]) started. + +> Task :compileJava UP-TO-DATE +Custom actions are attached to task ':compileJava'. +Caching disabled for task ':compileJava' because: + Build cache is disabled +Skipping task ':compileJava' as it is up-to-date. +Resolve mutations for :processResources (Thread[#3141,Execution worker,5,main]) started. +:processResources (Thread[#3141,Execution worker,5,main]) started. + +> Task :processResources UP-TO-DATE +Caching disabled for task ':processResources' because: + Build cache is disabled + Not worth caching +Skipping task ':processResources' as it is up-to-date. +Resolve mutations for :classes (Thread[#3141,Execution worker,5,main]) started. +:classes (Thread[#3141,Execution worker,5,main]) started. + +> Task :classes UP-TO-DATE +Skipping task ':classes' as it has no actions. +Resolve mutations for :compileTestJava (Thread[#3146,Execution worker Thread 6,5,main]) started. +:compileTestJava (Thread[#3146,Execution worker Thread 6,5,main]) started. + +> Task :compileTestJava UP-TO-DATE +Custom actions are attached to task ':compileTestJava'. +Caching disabled for task ':compileTestJava' because: + Build cache is disabled +Skipping task ':compileTestJava' as it is up-to-date. +Resolve mutations for :processTestResources (Thread[#3146,Execution worker Thread 6,5,main]) started. +:processTestResources (Thread[#3146,Execution worker Thread 6,5,main]) started. + +> Task :processTestResources NO-SOURCE +Skipping task ':processTestResources' as it has no source files and no previous output files. +Resolve mutations for :testClasses (Thread[#3146,Execution worker Thread 6,5,main]) started. +:testClasses (Thread[#3146,Execution worker Thread 6,5,main]) started. + +> Task :testClasses UP-TO-DATE +Skipping task ':testClasses' as it has no actions. +Resolve mutations for :test (Thread[#3146,Execution worker Thread 6,5,main]) started. +:test (Thread[#3146,Execution worker Thread 6,5,main]) started. +Gradle Test Executor 19 started executing tests. + +> Task :test +Caching disabled for task ':test' because: + Build cache is disabled +Task ':test' is not up-to-date because: + Task has failed previously. +Starting process 'Gradle Test Executor 19'. Working directory: /Users/jypc/Desktop/학교/3학년/2학기/기업연계SW/project/back-end Command: /Users/jypc/Library/Java/JavaVirtualMachines/corretto-21.0.5/Contents/Home/bin/java -Dorg.gradle.internal.worker.tmpdir=/Users/jypc/Desktop/학교/3학년/2학기/기업연계SW/project/back-end/build/tmp/test/work @/Users/jypc/.gradle/.tmp/gradle-worker-classpath6671030300930670189txt -Xmx512m -Dfile.encoding=UTF-8 -Duser.country=KR -Duser.language=ko -Duser.variant -ea worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Test Executor 19' +Successfully started process 'Gradle Test Executor 19' + +ApplicationTests STANDARD_OUT + 02:01:40.944 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [DiffLens.back_end.ApplicationTests]: ApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration. + 02:01:40.999 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration DiffLens.back_end.Application for test class DiffLens.back_end.ApplicationTests + + . ____ _ __ _ _ + /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ + ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ + \\/ ___)| |_)| | | | | || (_| | ) ) ) ) + ' |____| .__|_| |_|_| |_\__, | / / / / + =========|_|==============|___/=/_/_/_/ + + :: Spring Boot :: (v3.5.6) + + 2025-11-25T02:01:41.180+09:00 INFO 41081 --- [ Test worker] DiffLens.back_end.ApplicationTests : Starting ApplicationTests using Java 21.0.5 with PID 41081 (started by jypc in /Users/jypc/Desktop/학교/3학년/2학기/기업연계SW/project/back-end) + 2025-11-25T02:01:41.181+09:00 INFO 41081 --- [ Test worker] DiffLens.back_end.ApplicationTests : The following 1 profile is active: "local" + 2025-11-25T02:01:41.751+09:00 INFO 41081 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode + 2025-11-25T02:01:41.752+09:00 INFO 41081 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. + 2025-11-25T02:01:41.836+09:00 INFO 41081 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 80 ms. Found 12 JPA repository interfaces. + 2025-11-25T02:01:41.842+09:00 INFO 41081 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode + 2025-11-25T02:01:41.842+09:00 INFO 41081 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. + 2025-11-25T02:01:41.855+09:00 INFO 41081 --- [ Test worker] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface DiffLens.back_end.domain.library.repository.LibraryPanelRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository + 2025-11-25T02:01:41.857+09:00 INFO 41081 --- [ Test worker] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface DiffLens.back_end.domain.library.repository.LibraryRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository + 2025-11-25T02:01:41.857+09:00 INFO 41081 --- [ Test worker] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface DiffLens.back_end.domain.library.repository.SearchHistoryLibraryRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository + 2025-11-25T02:01:41.857+09:00 INFO 41081 --- [ Test worker] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface DiffLens.back_end.domain.members.repository.MemberRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository + 2025-11-25T02:01:41.857+09:00 INFO 41081 --- [ Test worker] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface DiffLens.back_end.domain.members.repository.OnboardingRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository + 2025-11-25T02:01:41.857+09:00 INFO 41081 --- [ Test worker] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface DiffLens.back_end.domain.members.repository.PlanRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository + 2025-11-25T02:01:41.857+09:00 INFO 41081 --- [ Test worker] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface DiffLens.back_end.domain.panel.repository.PanelRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository + 2025-11-25T02:01:41.857+09:00 INFO 41081 --- [ Test worker] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface DiffLens.back_end.domain.rawData.repository.RawDataRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository + 2025-11-25T02:01:41.857+09:00 INFO 41081 --- [ Test worker] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface DiffLens.back_end.domain.search.repository.ChartRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository + 2025-11-25T02:01:41.857+09:00 INFO 41081 --- [ Test worker] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface DiffLens.back_end.domain.search.repository.FilterRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository + 2025-11-25T02:01:41.858+09:00 INFO 41081 --- [ Test worker] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface DiffLens.back_end.domain.search.repository.SearchFilterRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository + 2025-11-25T02:01:41.858+09:00 INFO 41081 --- [ Test worker] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface DiffLens.back_end.domain.search.repository.SearchHistoryRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository + 2025-11-25T02:01:41.858+09:00 INFO 41081 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 12 ms. Found 0 Redis repository interfaces. + 2025-11-25T02:01:42.171+09:00 INFO 41081 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] + 2025-11-25T02:01:42.193+09:00 INFO 41081 --- [ Test worker] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.29.Final + 2025-11-25T02:01:42.207+09:00 INFO 41081 --- [ Test worker] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled + 2025-11-25T02:01:42.313+09:00 INFO 41081 --- [ Test worker] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer + 2025-11-25T02:01:42.324+09:00 INFO 41081 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... + 2025-11-25T02:01:42.326+09:00 WARN 41081 --- [ Test worker] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to query metadata + + java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, ${PSQL_URL} + at com.zaxxer.hikari.util.DriverDataSource.(DriverDataSource.java:116) ~[HikariCP-6.3.3.jar:na] + at com.zaxxer.hikari.pool.PoolBase.initializeDataSource(PoolBase.java:333) ~[HikariCP-6.3.3.jar:na] + at com.zaxxer.hikari.pool.PoolBase.(PoolBase.java:118) ~[HikariCP-6.3.3.jar:na] + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:90) ~[HikariCP-6.3.3.jar:na] + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) ~[HikariCP-6.3.3.jar:na] + at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:126) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:485) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:334) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:129) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:81) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.boot.model.relational.Database.(Database.java:45) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:226) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.(InFlightMetadataCollectorImpl.java:194) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1442) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1513) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66) ~[spring-orm-6.2.11.jar:6.2.11] + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.2.11.jar:6.2.11] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419) ~[spring-orm-6.2.11.jar:6.2.11] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400) ~[spring-orm-6.2.11.jar:6.2.11] + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1873) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970) ~[spring-context-6.2.11.jar:6.2.11] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.2.11.jar:6.2.11] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.5.6.jar:3.5.6] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.5.6.jar:3.5.6] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.5.6.jar:3.5.6] + at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:144) ~[spring-boot-test-3.5.6.jar:3.5.6] + at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) ~[spring-core-6.2.11.jar:6.2.11] + at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) ~[spring-core-6.2.11.jar:6.2.11] + at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1461) ~[spring-boot-3.5.6.jar:3.5.6] + at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:563) ~[spring-boot-test-3.5.6.jar:3.5.6] + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:144) ~[spring-boot-test-3.5.6.jar:3.5.6] + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:110) ~[spring-boot-test-3.5.6.jar:3.5.6] + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:200) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:139) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:159) ~[spring-test-6.2.11.jar:6.2.11] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$10(ClassBasedTestDescriptor.java:383) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:388) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$11(ClassBasedTestDescriptor.java:382) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[na:na] + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na] + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[na:na] + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na] + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na] + at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[na:na] + at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] + at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[na:na] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:382) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:293) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:292) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:281) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at java.base/java.util.Optional.orElseGet(Optional.java:364) ~[na:na] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:280) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:27) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:112) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:111) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:69) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:128) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:128) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na] + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na] + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:201) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:170) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:94) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:59) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:142) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:58) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:124) ~[na:na] + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:99) ~[na:na] + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:94) ~[na:na] + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:63) ~[na:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) ~[na:na] + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) ~[na:na] + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) ~[na:na] + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:92) ~[na:na] + at jdk.proxy1/jdk.proxy1.$Proxy4.stop(Unknown Source) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:200) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:132) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63) ~[na:na] + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) ~[na:na] + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122) ~[na:na] + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72) ~[na:na] + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) ~[gradle-worker.jar:na] + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) ~[gradle-worker.jar:na] + + 2025-11-25T02:01:42.336+09:00 WARN 41081 --- [ Test worker] 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-11-25T02:01:42.341+09:00 INFO 41081 --- [ Test worker] org.hibernate.orm.connections.pooling : HHH10001005: Database info: + Database JDBC URL [Connecting through datasource 'HikariDataSource (null)'] + Database driver: undefined/unknown + Database version: 12.0 + Autocommit mode: undefined/unknown + Isolation level: undefined/unknown + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown + 2025-11-25T02:01:42.825+09:00 INFO 41081 --- [ Test worker] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) + 2025-11-25T02:01:42.833+09:00 INFO 41081 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... + 2025-11-25T02:01:42.834+09:00 ERROR 41081 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, ${PSQL_URL} + 2025-11-25T02:01:42.834+09:00 WARN 41081 --- [ Test worker] o.s.w.c.s.GenericWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, ${PSQL_URL} + +ApplicationTests STANDARD_ERROR + + + + ============================ + CONDITIONS EVALUATION REPORT + ============================ + + + Positive matches: + ----------------- + + AopAutoConfiguration matched: + - @ConditionalOnBooleanProperty (spring.aop.auto=true) matched (OnPropertyCondition) + + AopAutoConfiguration.AspectJAutoProxyingConfiguration matched: + - @ConditionalOnClass found required class 'org.aspectj.weaver.Advice' (OnClassCondition) + + AopAutoConfiguration.AspectJAutoProxyingConfiguration.CglibAutoProxyConfiguration matched: + - @ConditionalOnBooleanProperty (spring.aop.proxy-target-class=true) matched (OnPropertyCondition) + + ApplicationAvailabilityAutoConfiguration#applicationAvailability matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.availability.ApplicationAvailability; SearchStrategy: all) did not find any beans (OnBeanCondition) + + CacheMeterBinderProvidersConfiguration matched: + - @ConditionalOnClass found required class 'io.micrometer.core.instrument.binder.MeterBinder' (OnClassCondition) + + CacheMeterBinderProvidersConfiguration.RedisCacheMeterBinderProviderConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.data.redis.cache.RedisCache' (OnClassCondition) + + org.springframework.boot.autoconfigure.http.client.reactive.ClientHttpConnectorAutoConfiguration matched: + - @ConditionalOnClass found required classes 'org.springframework.http.client.reactive.ClientHttpConnector', 'reactor.core.publisher.Mono' (OnClassCondition) + - Detected ClientHttpConnectorBuilder (ConditionalOnClientHttpConnectorBuilderDetection) + + org.springframework.boot.autoconfigure.web.reactive.function.client.ClientHttpConnectorAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.web.reactive.function.client.WebClient' (OnClassCondition) + + ClientHttpConnectorAutoConfiguration#clientHttpConnector matched: + - @ConditionalOnMissingBean (types: org.springframework.http.client.reactive.ClientHttpConnector; SearchStrategy: all) did not find any beans (OnBeanCondition) + + ClientHttpConnectorAutoConfiguration#clientHttpConnectorBuilder matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.http.client.reactive.ClientHttpConnectorBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition) + + ClientHttpConnectorAutoConfiguration#clientHttpConnectorSettings matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.http.client.reactive.ClientHttpConnectorSettings; SearchStrategy: all) did not find any beans (OnBeanCondition) + + org.springframework.boot.autoconfigure.http.client.reactive.ClientHttpConnectorAutoConfiguration$ReactorNetty matched: + - @ConditionalOnClass found required class 'reactor.netty.http.client.HttpClient' (OnClassCondition) + + org.springframework.boot.autoconfigure.web.reactive.function.client.ClientHttpConnectorAutoConfiguration$ReactorNetty matched: + - @ConditionalOnClass found required class 'reactor.netty.http.client.HttpClient' (OnClassCondition) + + CodecsAutoConfiguration matched: + - @ConditionalOnClass found required classes 'org.springframework.http.codec.CodecConfigurer', 'org.springframework.web.reactive.function.client.WebClient' (OnClassCondition) + + CodecsAutoConfiguration.JacksonCodecConfiguration matched: + - @ConditionalOnClass found required class 'com.fasterxml.jackson.databind.ObjectMapper' (OnClassCondition) + + CodecsAutoConfiguration.JacksonCodecConfiguration#jacksonCodecCustomizer matched: + - @ConditionalOnBean (types: com.fasterxml.jackson.databind.ObjectMapper; SearchStrategy: all) found bean 'jacksonObjectMapper' (OnBeanCondition) + + CompositeMeterRegistryAutoConfiguration matched: + - @ConditionalOnClass found required class 'io.micrometer.core.instrument.composite.CompositeMeterRegistry' (OnClassCondition) + + DataSourceAutoConfiguration matched: + - @ConditionalOnClass found required classes 'javax.sql.DataSource', 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition) + - @ConditionalOnMissingBean (types: ?; SearchStrategy: all) did not find any beans (OnBeanCondition) + + DataSourceAutoConfiguration.PooledDataSourceConfiguration matched: + - AnyNestedCondition 1 matched 1 did not; NestedCondition on DataSourceAutoConfiguration.PooledDataSourceCondition.PooledDataSourceAvailable PooledDataSource found supported DataSource; NestedCondition on DataSourceAutoConfiguration.PooledDataSourceCondition.ExplicitType @ConditionalOnProperty (spring.datasource.type) did not find property 'spring.datasource.type' (DataSourceAutoConfiguration.PooledDataSourceCondition) + - @ConditionalOnMissingBean (types: javax.sql.DataSource,javax.sql.XADataSource; SearchStrategy: all) did not find any beans (OnBeanCondition) + + DataSourceAutoConfiguration.PooledDataSourceConfiguration#jdbcConnectionDetails matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; SearchStrategy: all) did not find any beans (OnBeanCondition) + + DataSourceConfiguration.Hikari matched: + - @ConditionalOnClass found required class 'com.zaxxer.hikari.HikariDataSource' (OnClassCondition) + - @ConditionalOnProperty (spring.datasource.type=com.zaxxer.hikari.HikariDataSource) matched (OnPropertyCondition) + - @ConditionalOnMissingBean (types: javax.sql.DataSource; SearchStrategy: all) did not find any beans (OnBeanCondition) + + DataSourceHealthContributorAutoConfiguration matched: + - @ConditionalOnClass found required classes 'org.springframework.jdbc.core.JdbcTemplate', 'org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource' (OnClassCondition) + - @ConditionalOnEnabledHealthIndicator management.health.defaults.enabled is considered true (OnEnabledHealthIndicatorCondition) + - @ConditionalOnBean (types: javax.sql.DataSource; SearchStrategy: all) found bean 'dataSource' (OnBeanCondition) + + DataSourceHealthContributorAutoConfiguration#dbHealthContributor matched: + - @ConditionalOnMissingBean (names: dbHealthIndicator,dbHealthContributor; SearchStrategy: all) did not find any beans (OnBeanCondition) + + DataSourcePoolMetadataProvidersConfiguration.HikariPoolDataSourceMetadataProviderConfiguration matched: + - @ConditionalOnClass found required class 'com.zaxxer.hikari.HikariDataSource' (OnClassCondition) + + DataSourcePoolMetricsAutoConfiguration matched: + - @ConditionalOnClass found required classes 'javax.sql.DataSource', 'io.micrometer.core.instrument.MeterRegistry' (OnClassCondition) + - @ConditionalOnBean (types: javax.sql.DataSource,io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found beans 'prometheusMeterRegistry', 'dataSource' (OnBeanCondition) + + DataSourcePoolMetricsAutoConfiguration.DataSourcePoolMetadataMetricsConfiguration matched: + - @ConditionalOnBean (types: org.springframework.boot.jdbc.metadata.DataSourcePoolMetadataProvider; SearchStrategy: all) found bean 'hikariPoolDataSourceMetadataProvider' (OnBeanCondition) + + DataSourcePoolMetricsAutoConfiguration.HikariDataSourceMetricsConfiguration matched: + - @ConditionalOnClass found required class 'com.zaxxer.hikari.HikariDataSource' (OnClassCondition) + + DataSourceTransactionManagerAutoConfiguration matched: + - @ConditionalOnClass found required classes 'javax.sql.DataSource', 'org.springframework.jdbc.core.JdbcTemplate', 'org.springframework.transaction.TransactionManager' (OnClassCondition) + + DataSourceTransactionManagerAutoConfiguration.JdbcTransactionManagerConfiguration matched: + - @ConditionalOnSingleCandidate (types: javax.sql.DataSource; SearchStrategy: all) found a single bean 'dataSource' (OnBeanCondition) + + DiskSpaceHealthContributorAutoConfiguration matched: + - @ConditionalOnEnabledHealthIndicator management.health.defaults.enabled is considered true (OnEnabledHealthIndicatorCondition) + + DiskSpaceHealthContributorAutoConfiguration#diskSpaceHealthIndicator matched: + - @ConditionalOnMissingBean (names: diskSpaceHealthIndicator; SearchStrategy: all) did not find any beans (OnBeanCondition) + + DispatcherServletAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.web.servlet.DispatcherServlet' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + + DispatcherServletAutoConfiguration.DispatcherServletConfiguration matched: + - @ConditionalOnClass found required class 'jakarta.servlet.ServletRegistration' (OnClassCondition) + - Default DispatcherServlet did not find dispatcher servlet beans (DispatcherServletAutoConfiguration.DefaultDispatcherServletCondition) + + DispatcherServletAutoConfiguration.DispatcherServletRegistrationConfiguration matched: + - @ConditionalOnClass found required class 'jakarta.servlet.ServletRegistration' (OnClassCondition) + - DispatcherServlet Registration did not find servlet registration bean (DispatcherServletAutoConfiguration.DispatcherServletRegistrationCondition) + + DispatcherServletAutoConfiguration.DispatcherServletRegistrationConfiguration#dispatcherServletRegistration matched: + - @ConditionalOnBean (names: dispatcherServlet types: org.springframework.web.servlet.DispatcherServlet; SearchStrategy: all) found bean 'dispatcherServlet' (OnBeanCondition) + + EndpointAutoConfiguration#endpointCachingOperationInvokerAdvisor matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.endpoint.invoker.cache.CachingOperationInvokerAdvisor; SearchStrategy: all) did not find any beans (OnBeanCondition) + + EndpointAutoConfiguration#endpointOperationParameterMapper matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.endpoint.invoke.ParameterValueMapper; SearchStrategy: all) did not find any beans (OnBeanCondition) + + EndpointAutoConfiguration#propertiesEndpointAccessResolver matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.endpoint.EndpointAccessResolver; SearchStrategy: all) did not find any beans (OnBeanCondition) + + ErrorMvcAutoConfiguration matched: + - @ConditionalOnClass found required classes 'jakarta.servlet.Servlet', 'org.springframework.web.servlet.DispatcherServlet' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + + ErrorMvcAutoConfiguration#basicErrorController matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.web.servlet.error.ErrorController; SearchStrategy: current) did not find any beans (OnBeanCondition) + + ErrorMvcAutoConfiguration#errorAttributes matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.web.servlet.error.ErrorAttributes; SearchStrategy: current) did not find any beans (OnBeanCondition) + + ErrorMvcAutoConfiguration.DefaultErrorViewResolverConfiguration#conventionErrorViewResolver matched: + - @ConditionalOnBean (types: org.springframework.web.servlet.DispatcherServlet; SearchStrategy: all) found bean 'dispatcherServlet'; @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.web.servlet.error.ErrorViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition) + + ErrorMvcAutoConfiguration.WhitelabelErrorViewConfiguration matched: + - @ConditionalOnBooleanProperty (server.error.whitelabel.enabled=true) matched (OnPropertyCondition) + - ErrorTemplate Missing did not find error template view (ErrorMvcAutoConfiguration.ErrorTemplateMissingCondition) + + ErrorMvcAutoConfiguration.WhitelabelErrorViewConfiguration#beanNameViewResolver matched: + - @ConditionalOnMissingBean (types: org.springframework.web.servlet.view.BeanNameViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition) + + ErrorMvcAutoConfiguration.WhitelabelErrorViewConfiguration#defaultErrorView matched: + - @ConditionalOnMissingBean (names: error; SearchStrategy: all) did not find any beans (OnBeanCondition) + + GenericCacheConfiguration matched: + - Cache org.springframework.boot.autoconfigure.cache.GenericCacheConfiguration automatic cache type (CacheCondition) + + HealthContributorAutoConfiguration#pingHealthContributor matched: + - @ConditionalOnEnabledHealthIndicator management.health.defaults.enabled is considered true (OnEnabledHealthIndicatorCondition) + + HealthEndpointAutoConfiguration matched: + - @ConditionalOnAvailableEndpoint marked as exposed by a 'management.endpoints.web.exposure' property (OnAvailableEndpointCondition) + + HealthEndpointConfiguration#healthContributorRegistry matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.health.HealthContributorRegistry; SearchStrategy: all) did not find any beans (OnBeanCondition) + + HealthEndpointConfiguration#healthEndpoint matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.health.HealthEndpoint; SearchStrategy: all) did not find any beans (OnBeanCondition) + + HealthEndpointConfiguration#healthEndpointGroupMembershipValidator matched: + - @ConditionalOnBooleanProperty (management.endpoint.health.validate-group-membership=true) matched (OnPropertyCondition) + + HealthEndpointConfiguration#healthEndpointGroups matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.health.HealthEndpointGroups; SearchStrategy: all) did not find any beans (OnBeanCondition) + + HealthEndpointConfiguration#healthHttpCodeStatusMapper matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.health.HttpCodeStatusMapper; SearchStrategy: all) did not find any beans (OnBeanCondition) + + HealthEndpointConfiguration#healthStatusAggregator matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.health.StatusAggregator; SearchStrategy: all) did not find any beans (OnBeanCondition) + + HealthEndpointWebExtensionConfiguration matched: + - found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnAvailableEndpoint marked as exposed by a 'management.endpoints.web.exposure' property (OnAvailableEndpointCondition) + - @ConditionalOnBean (types: org.springframework.boot.actuate.health.HealthEndpoint; SearchStrategy: all) found bean 'healthEndpoint' (OnBeanCondition) + + HealthEndpointWebExtensionConfiguration#healthEndpointWebExtension matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.health.HealthEndpointWebExtension; SearchStrategy: all) did not find any beans (OnBeanCondition) + + HealthEndpointWebExtensionConfiguration.MvcAdditionalHealthEndpointPathsConfiguration matched: + - @ConditionalOnBean (types: org.springframework.web.servlet.DispatcherServlet; SearchStrategy: all) found bean 'dispatcherServlet' (OnBeanCondition) + + HibernateJpaAutoConfiguration matched: + - @ConditionalOnClass found required classes 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean', 'jakarta.persistence.EntityManager', 'org.hibernate.engine.spi.SessionImplementor' (OnClassCondition) + + HibernateJpaConfiguration matched: + - @ConditionalOnSingleCandidate (types: javax.sql.DataSource; SearchStrategy: all) found a single bean 'dataSource' (OnBeanCondition) + + HttpClientAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.http.client.ClientHttpRequestFactory' (OnClassCondition) + - NoneNestedConditions 0 matched 1 did not; NestedCondition on NotReactiveWebApplicationCondition.ReactiveWebApplication not a reactive web application (NotReactiveWebApplicationCondition) + + HttpClientAutoConfiguration#clientHttpRequestFactoryBuilder matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition) + + HttpClientAutoConfiguration#clientHttpRequestFactorySettings matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.http.client.ClientHttpRequestFactorySettings; SearchStrategy: all) did not find any beans (OnBeanCondition) + + HttpClientObservationsAutoConfiguration matched: + - @ConditionalOnClass found required class 'io.micrometer.observation.Observation' (OnClassCondition) + - @ConditionalOnBean (types: io.micrometer.observation.ObservationRegistry; SearchStrategy: all) found bean 'observationRegistry' (OnBeanCondition) + + HttpClientObservationsAutoConfiguration.MeterFilterConfiguration matched: + - @ConditionalOnClass found required class 'io.micrometer.core.instrument.MeterRegistry' (OnClassCondition) + - @ConditionalOnBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found bean 'prometheusMeterRegistry' (OnBeanCondition) + + HttpEncodingAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.web.filter.CharacterEncodingFilter' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnBooleanProperty (server.servlet.encoding.enabled=true) matched (OnPropertyCondition) + + HttpEncodingAutoConfiguration#characterEncodingFilter matched: + - @ConditionalOnMissingBean (types: org.springframework.web.filter.CharacterEncodingFilter; SearchStrategy: all) did not find any beans (OnBeanCondition) + + HttpMessageConvertersAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.http.converter.HttpMessageConverter' (OnClassCondition) + - NoneNestedConditions 0 matched 1 did not; NestedCondition on HttpMessageConvertersAutoConfiguration.NotReactiveWebApplicationCondition.ReactiveWebApplication not a reactive web application (HttpMessageConvertersAutoConfiguration.NotReactiveWebApplicationCondition) + + HttpMessageConvertersAutoConfiguration#messageConverters matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.http.HttpMessageConverters; SearchStrategy: all) did not find any beans (OnBeanCondition) + + HttpMessageConvertersAutoConfiguration.StringHttpMessageConverterConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.http.converter.StringHttpMessageConverter' (OnClassCondition) + + HttpMessageConvertersAutoConfiguration.StringHttpMessageConverterConfiguration#stringHttpMessageConverter matched: + - @ConditionalOnMissingBean (types: org.springframework.http.converter.StringHttpMessageConverter; SearchStrategy: all) did not find any beans (OnBeanCondition) + + InfoEndpointAutoConfiguration matched: + - @ConditionalOnAvailableEndpoint marked as exposed by a 'management.endpoints.web.exposure' property (OnAvailableEndpointCondition) + + InfoEndpointAutoConfiguration#infoEndpoint matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.info.InfoEndpoint; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JacksonAutoConfiguration matched: + - @ConditionalOnClass found required class 'com.fasterxml.jackson.databind.ObjectMapper' (OnClassCondition) + + JacksonAutoConfiguration.Jackson2ObjectMapperBuilderCustomizerConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.http.converter.json.Jackson2ObjectMapperBuilder' (OnClassCondition) + + JacksonAutoConfiguration.JacksonObjectMapperBuilderConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.http.converter.json.Jackson2ObjectMapperBuilder' (OnClassCondition) + + JacksonAutoConfiguration.JacksonObjectMapperBuilderConfiguration#jacksonObjectMapperBuilder matched: + - @ConditionalOnMissingBean (types: org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JacksonAutoConfiguration.JacksonObjectMapperConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.http.converter.json.Jackson2ObjectMapperBuilder' (OnClassCondition) + + JacksonAutoConfiguration.JacksonObjectMapperConfiguration#jacksonObjectMapper matched: + - @ConditionalOnMissingBean (types: com.fasterxml.jackson.databind.ObjectMapper; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JacksonAutoConfiguration.ParameterNamesModuleConfiguration matched: + - @ConditionalOnClass found required class 'com.fasterxml.jackson.module.paramnames.ParameterNamesModule' (OnClassCondition) + + JacksonAutoConfiguration.ParameterNamesModuleConfiguration#parameterNamesModule matched: + - @ConditionalOnMissingBean (types: com.fasterxml.jackson.module.paramnames.ParameterNamesModule; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JacksonEndpointAutoConfiguration#endpointObjectMapper matched: + - @ConditionalOnClass found required classes 'com.fasterxml.jackson.databind.ObjectMapper', 'org.springframework.http.converter.json.Jackson2ObjectMapperBuilder' (OnClassCondition) + - @ConditionalOnBooleanProperty (management.endpoints.jackson.isolated-object-mapper=true) matched (OnPropertyCondition) + + JacksonHttpMessageConvertersConfiguration.MappingJackson2HttpMessageConverterConfiguration matched: + - @ConditionalOnClass found required class 'com.fasterxml.jackson.databind.ObjectMapper' (OnClassCondition) + - @ConditionalOnPreferredJsonMapper JACKSON no property was configured and Jackson is the default (OnPreferredJsonMapperCondition) + - @ConditionalOnBean (types: com.fasterxml.jackson.databind.ObjectMapper; SearchStrategy: all) found bean 'jacksonObjectMapper' (OnBeanCondition) + + JacksonHttpMessageConvertersConfiguration.MappingJackson2HttpMessageConverterConfiguration#mappingJackson2HttpMessageConverter matched: + - @ConditionalOnMissingBean (types: org.springframework.http.converter.json.MappingJackson2HttpMessageConverter ignored: ?; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JdbcClientAutoConfiguration matched: + - @ConditionalOnSingleCandidate (types: org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; SearchStrategy: all) found a single bean 'namedParameterJdbcTemplate'; @ConditionalOnMissingBean (types: org.springframework.jdbc.core.simple.JdbcClient; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JdbcTemplateAutoConfiguration matched: + - @ConditionalOnClass found required classes 'javax.sql.DataSource', 'org.springframework.jdbc.core.JdbcTemplate' (OnClassCondition) + - @ConditionalOnSingleCandidate (types: javax.sql.DataSource; SearchStrategy: all) found a single bean 'dataSource' (OnBeanCondition) + + JdbcTemplateConfiguration matched: + - @ConditionalOnMissingBean (types: org.springframework.jdbc.core.JdbcOperations; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JpaBaseConfiguration#entityManagerFactory matched: + - @ConditionalOnMissingBean (types: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean,jakarta.persistence.EntityManagerFactory; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JpaBaseConfiguration#entityManagerFactoryBuilder matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JpaBaseConfiguration#jpaVendorAdapter matched: + - @ConditionalOnMissingBean (types: org.springframework.orm.jpa.JpaVendorAdapter; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JpaBaseConfiguration#transactionManager matched: + - @ConditionalOnMissingBean (types: org.springframework.transaction.TransactionManager; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JpaBaseConfiguration.JpaWebConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.web.servlet.config.annotation.WebMvcConfigurer' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnBooleanProperty (spring.jpa.open-in-view=true) matched (OnPropertyCondition) + - @ConditionalOnMissingBean (types: org.springframework.orm.jpa.support.OpenEntityManagerInViewInterceptor,org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JpaBaseConfiguration.PersistenceManagedTypesConfiguration matched: + - @ConditionalOnMissingBean (types: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean,jakarta.persistence.EntityManagerFactory; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JpaBaseConfiguration.PersistenceManagedTypesConfiguration#persistenceManagedTypes matched: + - @ConditionalOnMissingBean (types: org.springframework.orm.jpa.persistenceunit.PersistenceManagedTypes; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JpaRepositoriesAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.data.jpa.repository.JpaRepository' (OnClassCondition) + - @ConditionalOnBooleanProperty (spring.data.jpa.repositories.enabled=true) matched (OnPropertyCondition) + - @ConditionalOnBean (types: javax.sql.DataSource; SearchStrategy: all) found bean 'dataSource'; @ConditionalOnMissingBean (types: org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean,org.springframework.data.jpa.repository.config.JpaRepositoryConfigExtension; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JtaAutoConfiguration matched: + - @ConditionalOnClass found required class 'jakarta.transaction.Transaction' (OnClassCondition) + - @ConditionalOnBooleanProperty (spring.jta.enabled=true) matched (OnPropertyCondition) + + JvmMetricsAutoConfiguration matched: + - @ConditionalOnClass found required class 'io.micrometer.core.instrument.MeterRegistry' (OnClassCondition) + - @ConditionalOnBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found bean 'prometheusMeterRegistry' (OnBeanCondition) + + JvmMetricsAutoConfiguration#classLoaderMetrics matched: + - @ConditionalOnMissingBean (types: io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JvmMetricsAutoConfiguration#jvmCompilationMetrics matched: + - @ConditionalOnMissingBean (types: io.micrometer.core.instrument.binder.jvm.JvmCompilationMetrics; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JvmMetricsAutoConfiguration#jvmGcMetrics matched: + - @ConditionalOnMissingBean (types: io.micrometer.core.instrument.binder.jvm.JvmGcMetrics; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JvmMetricsAutoConfiguration#jvmHeapPressureMetrics matched: + - @ConditionalOnMissingBean (types: io.micrometer.core.instrument.binder.jvm.JvmHeapPressureMetrics; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JvmMetricsAutoConfiguration#jvmInfoMetrics matched: + - @ConditionalOnMissingBean (types: io.micrometer.core.instrument.binder.jvm.JvmInfoMetrics; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JvmMetricsAutoConfiguration#jvmMemoryMetrics matched: + - @ConditionalOnMissingBean (types: io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics; SearchStrategy: all) did not find any beans (OnBeanCondition) + + JvmMetricsAutoConfiguration#jvmThreadMetrics matched: + - @ConditionalOnMissingBean (types: io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics; SearchStrategy: all) did not find any beans (OnBeanCondition) + + LettuceConnectionConfiguration matched: + - @ConditionalOnClass found required class 'io.lettuce.core.RedisClient' (OnClassCondition) + - @ConditionalOnProperty (spring.data.redis.client-type=lettuce) matched (OnPropertyCondition) + + LettuceConnectionConfiguration#lettuceClientResources matched: + - @ConditionalOnMissingBean (types: io.lettuce.core.resource.ClientResources; SearchStrategy: all) did not find any beans (OnBeanCondition) + + LettuceConnectionConfiguration#redisConnectionFactory matched: + - @ConditionalOnMissingBean (types: org.springframework.data.redis.connection.RedisConnectionFactory; SearchStrategy: all) did not find any beans (OnBeanCondition) + - @ConditionalOnThreading found PLATFORM (OnThreadingCondition) + + LettuceMetricsAutoConfiguration matched: + - @ConditionalOnClass found required classes 'io.lettuce.core.RedisClient', 'io.lettuce.core.metrics.MicrometerCommandLatencyRecorder' (OnClassCondition) + - @ConditionalOnBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found bean 'prometheusMeterRegistry' (OnBeanCondition) + + LettuceMetricsAutoConfiguration#micrometerOptions matched: + - @ConditionalOnMissingBean (types: io.lettuce.core.metrics.MicrometerOptions; SearchStrategy: all) did not find any beans (OnBeanCondition) + + LifecycleAutoConfiguration#defaultLifecycleProcessor matched: + - @ConditionalOnMissingBean (names: lifecycleProcessor; SearchStrategy: current) did not find any beans (OnBeanCondition) + + LogbackMetricsAutoConfiguration matched: + - @ConditionalOnClass found required classes 'io.micrometer.core.instrument.MeterRegistry', 'ch.qos.logback.classic.LoggerContext', 'org.slf4j.LoggerFactory' (OnClassCondition) + - LogbackLoggingCondition ILoggerFactory is a Logback LoggerContext (LogbackMetricsAutoConfiguration.LogbackLoggingCondition) + - @ConditionalOnBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found bean 'prometheusMeterRegistry' (OnBeanCondition) + + LogbackMetricsAutoConfiguration#logbackMetrics matched: + - @ConditionalOnMissingBean (types: io.micrometer.core.instrument.binder.logging.LogbackMetrics; SearchStrategy: all) did not find any beans (OnBeanCondition) + + ManagementContextAutoConfiguration.SameManagementContextConfiguration matched: + - Management Port actual port type (SAME) matched required type (OnManagementPortCondition) + + MetricsAutoConfiguration matched: + - @ConditionalOnClass found required class 'io.micrometer.core.annotation.Timed' (OnClassCondition) + + MetricsAutoConfiguration#micrometerClock matched: + - @ConditionalOnMissingBean (types: io.micrometer.core.instrument.Clock; SearchStrategy: all) did not find any beans (OnBeanCondition) + + MultipartAutoConfiguration matched: + - @ConditionalOnClass found required classes 'jakarta.servlet.Servlet', 'org.springframework.web.multipart.support.StandardServletMultipartResolver', 'jakarta.servlet.MultipartConfigElement' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnBooleanProperty (spring.servlet.multipart.enabled=true) matched (OnPropertyCondition) + + MultipartAutoConfiguration#multipartConfigElement matched: + - @ConditionalOnMissingBean (types: jakarta.servlet.MultipartConfigElement; SearchStrategy: all) did not find any beans (OnBeanCondition) + + MultipartAutoConfiguration#multipartResolver matched: + - @ConditionalOnMissingBean (types: org.springframework.web.multipart.MultipartResolver; SearchStrategy: all) did not find any beans (OnBeanCondition) + + NamedParameterJdbcTemplateConfiguration matched: + - @ConditionalOnSingleCandidate (types: org.springframework.jdbc.core.JdbcTemplate; SearchStrategy: all) found a single bean 'jdbcTemplate'; @ConditionalOnMissingBean (types: org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations; SearchStrategy: all) did not find any beans (OnBeanCondition) + + NettyAutoConfiguration matched: + - @ConditionalOnClass found required class 'io.netty.util.NettyRuntime' (OnClassCondition) + + NoOpCacheConfiguration matched: + - Cache org.springframework.boot.autoconfigure.cache.NoOpCacheConfiguration automatic cache type (CacheCondition) + + OAuth2ClientAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.security.oauth2.client.registration.ClientRegistration' (OnClassCondition) + - NoneNestedConditions 0 matched 1 did not; NestedCondition on OAuth2ClientAutoConfiguration.NonReactiveWebApplicationCondition.ReactiveWebApplicationCondition not a reactive web application (OAuth2ClientAutoConfiguration.NonReactiveWebApplicationCondition) + + ObservationAutoConfiguration matched: + - @ConditionalOnClass found required class 'io.micrometer.observation.ObservationRegistry' (OnClassCondition) + + ObservationAutoConfiguration#observationRegistry matched: + - @ConditionalOnMissingBean (types: io.micrometer.observation.ObservationRegistry; SearchStrategy: all) did not find any beans (OnBeanCondition) + + ObservationAutoConfiguration.MeterObservationHandlerConfiguration matched: + - @ConditionalOnBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found bean 'prometheusMeterRegistry'; @ConditionalOnMissingBean (types: io.micrometer.core.instrument.observation.MeterObservationHandler; SearchStrategy: all) did not find any beans (OnBeanCondition) + + ObservationAutoConfiguration.MeterObservationHandlerConfiguration.OnlyMetricsMeterObservationHandlerConfiguration matched: + - @ConditionalOnMissingBean (types: ?; SearchStrategy: all) did not find any beans (OnBeanCondition) + + ObservationAutoConfiguration.OnlyMetricsConfiguration matched: + - @ConditionalOnClass found required class 'io.micrometer.core.instrument.MeterRegistry'; @ConditionalOnMissingClass did not find unwanted class 'io.micrometer.tracing.Tracer' (OnClassCondition) + + PersistenceExceptionTranslationAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor' (OnClassCondition) + + PersistenceExceptionTranslationAutoConfiguration#persistenceExceptionTranslationPostProcessor matched: + - @ConditionalOnBooleanProperty (spring.dao.exceptiontranslation.enabled=true) matched (OnPropertyCondition) + - @ConditionalOnMissingBean (types: org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; SearchStrategy: all) did not find any beans (OnBeanCondition) + + PrometheusMetricsExportAutoConfiguration matched: + - @ConditionalOnClass found required class 'io.micrometer.prometheusmetrics.PrometheusMeterRegistry' (OnClassCondition) + - @ConditionalOnEnabledMetricsExport management.prometheus.metrics.export.enabled is true (OnMetricsExportEnabledCondition) + - @ConditionalOnBean (types: io.micrometer.core.instrument.Clock; SearchStrategy: all) found bean 'micrometerClock' (OnBeanCondition) + + PrometheusMetricsExportAutoConfiguration#prometheusConfig matched: + - @ConditionalOnMissingBean (types: io.micrometer.prometheusmetrics.PrometheusConfig; SearchStrategy: all) did not find any beans (OnBeanCondition) + + PrometheusMetricsExportAutoConfiguration#prometheusMeterRegistry matched: + - @ConditionalOnMissingBean (types: io.micrometer.prometheusmetrics.PrometheusMeterRegistry; SearchStrategy: all) did not find any beans (OnBeanCondition) + + PrometheusMetricsExportAutoConfiguration#prometheusRegistry matched: + - @ConditionalOnMissingBean (types: io.prometheus.metrics.model.registry.PrometheusRegistry; SearchStrategy: all) did not find any beans (OnBeanCondition) + + PrometheusMetricsExportAutoConfiguration.PrometheusScrapeEndpointConfiguration matched: + - @ConditionalOnAvailableEndpoint marked as exposed by a 'management.endpoints.web.exposure' property (OnAvailableEndpointCondition) + + PrometheusMetricsExportAutoConfiguration.PrometheusScrapeEndpointConfiguration#prometheusEndpoint matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.metrics.export.prometheus.PrometheusScrapeEndpoint; SearchStrategy: all) did not find any beans (OnBeanCondition) + + PropertyPlaceholderAutoConfiguration#propertySourcesPlaceholderConfigurer matched: + - @ConditionalOnMissingBean (types: org.springframework.context.support.PropertySourcesPlaceholderConfigurer; SearchStrategy: current) did not find any beans (OnBeanCondition) + + ReactiveHealthEndpointConfiguration matched: + - @ConditionalOnClass found required class 'reactor.core.publisher.Flux' (OnClassCondition) + - @ConditionalOnBean (types: org.springframework.boot.actuate.health.HealthEndpoint; SearchStrategy: all) found bean 'healthEndpoint' (OnBeanCondition) + + ReactiveHealthEndpointConfiguration#reactiveHealthContributorRegistry matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.health.ReactiveHealthContributorRegistry; SearchStrategy: all) did not find any beans (OnBeanCondition) + + ReactiveSecurityAutoConfiguration matched: + - @ConditionalOnClass found required classes 'reactor.core.publisher.Flux', 'org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity', 'org.springframework.security.web.server.WebFilterChainProxy', 'org.springframework.web.reactive.config.WebFluxConfigurer' (OnClassCondition) + + ReactorAutoConfiguration matched: + - @ConditionalOnClass found required class 'reactor.core.publisher.Hooks' (OnClassCondition) + + ReactorNettyConfigurations.ReactorResourceFactoryConfiguration#reactorResourceFactory matched: + - @ConditionalOnMissingBean (types: org.springframework.http.client.ReactorResourceFactory; SearchStrategy: all) did not find any beans (OnBeanCondition) + + RedisAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.data.redis.core.RedisOperations' (OnClassCondition) + + RedisAutoConfiguration#redisConnectionDetails matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails; SearchStrategy: all) did not find any beans (OnBeanCondition) + + RedisCacheConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.data.redis.connection.RedisConnectionFactory' (OnClassCondition) + - Cache org.springframework.boot.autoconfigure.cache.RedisCacheConfiguration automatic cache type (CacheCondition) + + RedisHealthContributorAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.data.redis.connection.RedisConnectionFactory' (OnClassCondition) + - @ConditionalOnEnabledHealthIndicator management.health.defaults.enabled is considered true (OnEnabledHealthIndicatorCondition) + - @ConditionalOnBean (types: org.springframework.data.redis.connection.RedisConnectionFactory; SearchStrategy: all) found bean 'redisConnectionFactory' (OnBeanCondition) + + RedisReactiveAutoConfiguration matched: + - @ConditionalOnClass found required classes 'org.springframework.data.redis.connection.ReactiveRedisConnectionFactory', 'org.springframework.data.redis.core.ReactiveRedisTemplate', 'reactor.core.publisher.Flux' (OnClassCondition) + + RedisReactiveAutoConfiguration#reactiveRedisTemplate matched: + - @ConditionalOnBean (types: org.springframework.data.redis.connection.ReactiveRedisConnectionFactory; SearchStrategy: all) found bean 'redisConnectionFactory'; @ConditionalOnMissingBean (names: reactiveRedisTemplate; SearchStrategy: all) did not find any beans (OnBeanCondition) + + RedisReactiveAutoConfiguration#reactiveStringRedisTemplate matched: + - @ConditionalOnBean (types: org.springframework.data.redis.connection.ReactiveRedisConnectionFactory; SearchStrategy: all) found bean 'redisConnectionFactory'; @ConditionalOnMissingBean (names: reactiveStringRedisTemplate; SearchStrategy: all) did not find any beans (OnBeanCondition) + + RedisReactiveHealthContributorAutoConfiguration matched: + - @ConditionalOnClass found required classes 'org.springframework.data.redis.connection.ReactiveRedisConnectionFactory', 'reactor.core.publisher.Flux' (OnClassCondition) + - @ConditionalOnEnabledHealthIndicator management.health.defaults.enabled is considered true (OnEnabledHealthIndicatorCondition) + - @ConditionalOnBean (types: org.springframework.data.redis.connection.ReactiveRedisConnectionFactory; SearchStrategy: all) found bean 'redisConnectionFactory' (OnBeanCondition) + + RedisReactiveHealthContributorAutoConfiguration#redisHealthContributor matched: + - @ConditionalOnMissingBean (names: redisHealthIndicator,redisHealthContributor; SearchStrategy: all) did not find any beans (OnBeanCondition) + + RedisRepositoriesAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.data.redis.repository.configuration.EnableRedisRepositories' (OnClassCondition) + - @ConditionalOnBooleanProperty (spring.data.redis.repositories.enabled=true) matched (OnPropertyCondition) + - @ConditionalOnBean (types: org.springframework.data.redis.connection.RedisConnectionFactory; SearchStrategy: all) found bean 'redisConnectionFactory'; @ConditionalOnMissingBean (types: org.springframework.data.redis.repository.support.RedisRepositoryFactoryBean; SearchStrategy: all) did not find any beans (OnBeanCondition) + + RepositoryMetricsAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.data.repository.Repository' (OnClassCondition) + - @ConditionalOnBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found bean 'prometheusMeterRegistry' (OnBeanCondition) + + RepositoryMetricsAutoConfiguration#metricsRepositoryMethodInvocationListener matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.metrics.data.MetricsRepositoryMethodInvocationListener; SearchStrategy: all) did not find any beans (OnBeanCondition) + + RepositoryMetricsAutoConfiguration#repositoryTagsProvider matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.metrics.data.RepositoryTagsProvider; SearchStrategy: all) did not find any beans (OnBeanCondition) + + RestClientAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.web.client.RestClient' (OnClassCondition) + - AnyNestedCondition 1 matched 1 did not; NestedCondition on NotReactiveWebApplicationOrVirtualThreadsExecutorEnabledCondition.VirtualThreadsExecutorEnabled found non-matching nested conditions @ConditionalOnThreading did not find VIRTUAL; NestedCondition on NotReactiveWebApplicationOrVirtualThreadsExecutorEnabledCondition.NotReactiveWebApplication NoneNestedConditions 0 matched 1 did not; NestedCondition on NotReactiveWebApplicationCondition.ReactiveWebApplication not a reactive web application (NotReactiveWebApplicationOrVirtualThreadsExecutorEnabledCondition) + + RestClientAutoConfiguration#httpMessageConvertersRestClientCustomizer matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.web.client.HttpMessageConvertersRestClientCustomizer; SearchStrategy: all) did not find any beans (OnBeanCondition) + + RestClientAutoConfiguration#restClientBuilder matched: + - @ConditionalOnMissingBean (types: org.springframework.web.client.RestClient$Builder; SearchStrategy: all) did not find any beans (OnBeanCondition) + + RestClientAutoConfiguration#restClientBuilderConfigurer matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.web.client.RestClientBuilderConfigurer; SearchStrategy: all) did not find any beans (OnBeanCondition) + + RestClientAutoConfiguration#restClientSsl matched: + - @ConditionalOnBean (types: org.springframework.boot.ssl.SslBundles; SearchStrategy: all) found bean 'sslBundleRegistry'; @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.web.client.RestClientSsl; SearchStrategy: all) did not find any beans (OnBeanCondition) + + RestClientObservationConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.web.client.RestClient' (OnClassCondition) + - @ConditionalOnBean (types: org.springframework.web.client.RestClient$Builder; SearchStrategy: all) found bean 'restClientBuilder' (OnBeanCondition) + + RestTemplateAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.web.client.RestTemplate' (OnClassCondition) + - NoneNestedConditions 0 matched 1 did not; NestedCondition on NotReactiveWebApplicationCondition.ReactiveWebApplication not a reactive web application (NotReactiveWebApplicationCondition) + + RestTemplateAutoConfiguration#restTemplateBuilder matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.web.client.RestTemplateBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition) + + RestTemplateObservationConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.web.client.RestTemplate' (OnClassCondition) + - @ConditionalOnBean (types: org.springframework.boot.web.client.RestTemplateBuilder; SearchStrategy: all) found bean 'restTemplateBuilder' (OnBeanCondition) + + ScheduledTasksObservabilityAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler' (OnClassCondition) + - @ConditionalOnBean (types: io.micrometer.observation.ObservationRegistry; SearchStrategy: all) found bean 'observationRegistry' (OnBeanCondition) + + SecurityAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.security.authentication.DefaultAuthenticationEventPublisher' (OnClassCondition) + + SecurityAutoConfiguration#authenticationEventPublisher matched: + - @ConditionalOnMissingBean (types: org.springframework.security.authentication.AuthenticationEventPublisher; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SecurityFilterAutoConfiguration matched: + - @ConditionalOnClass found required classes 'org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer', 'org.springframework.security.config.http.SessionCreationPolicy' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + + SecurityFilterAutoConfiguration#securityFilterChainRegistration matched: + - @ConditionalOnBean (names: springSecurityFilterChain; SearchStrategy: all) found bean 'springSecurityFilterChain' (OnBeanCondition) + + SecurityRequestMatchersManagementContextConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.security.web.util.matcher.RequestMatcher' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + + SecurityRequestMatchersManagementContextConfiguration.MvcRequestMatcherConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.web.servlet.DispatcherServlet' (OnClassCondition) + - @ConditionalOnBean (types: org.springframework.boot.autoconfigure.web.servlet.DispatcherServletPath; SearchStrategy: all) found bean 'dispatcherServletRegistration' (OnBeanCondition) + + SecurityRequestMatchersManagementContextConfiguration.MvcRequestMatcherConfiguration#requestMatcherProvider matched: + - @ConditionalOnClass found required class 'org.springframework.web.servlet.DispatcherServlet' (OnClassCondition) + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.autoconfigure.security.servlet.RequestMatcherProvider; SearchStrategy: all) did not find any beans (OnBeanCondition) + + ServletEndpointManagementContextConfiguration matched: + - found 'session' scope (OnWebApplicationCondition) + + ServletEndpointManagementContextConfiguration.WebMvcServletEndpointManagementContextConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.web.servlet.DispatcherServlet' (OnClassCondition) + + ServletManagementContextAutoConfiguration matched: + - @ConditionalOnClass found required class 'jakarta.servlet.Servlet' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + + ServletWebServerFactoryAutoConfiguration matched: + - @ConditionalOnClass found required class 'jakarta.servlet.ServletRequest' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + + ServletWebServerFactoryAutoConfiguration#tomcatServletWebServerFactoryCustomizer matched: + - @ConditionalOnClass found required class 'org.apache.catalina.startup.Tomcat' (OnClassCondition) + + ServletWebServerFactoryConfiguration.EmbeddedTomcat matched: + - @ConditionalOnClass found required classes 'jakarta.servlet.Servlet', 'org.apache.catalina.startup.Tomcat', 'org.apache.coyote.UpgradeProtocol' (OnClassCondition) + - @ConditionalOnMissingBean (types: org.springframework.boot.web.servlet.server.ServletWebServerFactory; SearchStrategy: current) did not find any beans (OnBeanCondition) + + SimpleCacheConfiguration matched: + - Cache org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration automatic cache type (CacheCondition) + + SpringBootWebSecurityConfiguration matched: + - found 'session' scope (OnWebApplicationCondition) + + SpringDataWebAutoConfiguration matched: + - @ConditionalOnClass found required classes 'org.springframework.data.web.PageableHandlerMethodArgumentResolver', 'org.springframework.web.servlet.config.annotation.WebMvcConfigurer' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnMissingBean (types: org.springframework.data.web.PageableHandlerMethodArgumentResolver; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDataWebAutoConfiguration#pageableCustomizer matched: + - @ConditionalOnMissingBean (types: org.springframework.data.web.config.PageableHandlerMethodArgumentResolverCustomizer; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDataWebAutoConfiguration#sortCustomizer matched: + - @ConditionalOnMissingBean (types: org.springframework.data.web.config.SortHandlerMethodArgumentResolverCustomizer; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDataWebAutoConfiguration#springDataWebSettings matched: + - @ConditionalOnMissingBean (types: org.springframework.data.web.config.SpringDataWebSettings; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfigProperties matched: + - @ConditionalOnProperty (springdoc.api-docs.enabled) matched (OnPropertyCondition) + - @ConditionalOnBean (types: org.springdoc.core.configuration.SpringDocConfiguration; SearchStrategy: all) found bean 'org.springdoc.core.configuration.SpringDocConfiguration' (OnBeanCondition) + + SpringDocConfiguration matched: + - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnProperty (springdoc.api-docs.enabled) matched (OnPropertyCondition) + + SpringDocConfiguration#fileSupportConverter matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.converters.FileSupportConverter; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration#globalOpenApiCustomizer matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.customizers.GlobalOpenApiCustomizer; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration#openAPIBuilder matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.service.OpenAPIService; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration#operationBuilder matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.service.OperationService; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration#parameterBuilder matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.service.GenericParameterService; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration#parameterObjectNamingStrategyCustomizer matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.customizers.ParameterObjectNamingStrategyCustomizer; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration#polymorphicModelConverter matched: + - @ConditionalOnProperty (springdoc.model-converters.polymorphic-converter.enabled) matched (OnPropertyCondition) + - @ConditionalOnMissingBean (types: org.springdoc.core.converters.PolymorphicModelConverter; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration#requestBodyBuilder matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.service.RequestBodyService; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration#responseSupportConverter matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.converters.ResponseSupportConverter; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration#schemaPropertyDeprecatingConverter matched: + - @ConditionalOnProperty (springdoc.model-converters.deprecating-converter.enabled) matched (OnPropertyCondition) + - @ConditionalOnMissingBean (types: org.springdoc.core.converters.SchemaPropertyDeprecatingConverter; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration#securityParser matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.service.SecurityService; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration#springDocCustomizers matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.customizers.SpringDocCustomizers; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration#springDocProviders matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.providers.SpringDocProviders; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration#springdocObjectMapperProvider matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.providers.ObjectMapperProvider; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration.QuerydslProvider matched: + - @ConditionalOnClass found required class 'org.springframework.data.querydsl.binding.QuerydslBindingsFactory' (OnClassCondition) + + SpringDocConfiguration.QuerydslProvider#queryDslQuerydslPredicateOperationCustomizer matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.customizers.QuerydslPredicateOperationCustomizer; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration.SpringDocSpringDataWebPropertiesProvider matched: + - @ConditionalOnClass found required class 'org.springframework.boot.autoconfigure.data.web.SpringDataWebProperties' (OnClassCondition) + + SpringDocConfiguration.SpringDocSpringDataWebPropertiesProvider#springDataWebPropertiesProvider matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.providers.SpringDataWebPropertiesProvider; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration.SpringDocWebFluxSupportConfiguration matched: + - @ConditionalOnClass found required class 'reactor.core.publisher.Flux' (OnClassCondition) + + SpringDocConfiguration.SpringDocWebFluxSupportConfiguration#webFluxSupportConverter matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.converters.WebFluxSupportConverter; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocConfiguration.WebConversionServiceConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.boot.autoconfigure.web.format.WebConversionService' (OnClassCondition) + + SpringDocPageableConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.data.domain.Pageable' (OnClassCondition) + - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnProperty (springdoc.api-docs.enabled) matched (OnPropertyCondition) + - @ConditionalOnBean (types: org.springdoc.core.configuration.SpringDocConfiguration; SearchStrategy: all) found bean 'org.springdoc.core.configuration.SpringDocConfiguration' (OnBeanCondition) + + SpringDocPageableConfiguration#dataRestDelegatingMethodParameterCustomizer matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.customizers.DataRestDelegatingMethodParameterCustomizer; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocPageableConfiguration#pageOpenAPIConverter matched: + - @ConditionalOnClass found required classes 'org.springframework.data.web.PagedModel', 'org.springframework.data.web.config.SpringDataWebSettings' (OnClassCondition) + - @ConditionalOnMissingBean (types: org.springdoc.core.converters.PageOpenAPIConverter; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocPageableConfiguration#pageableOpenAPIConverter matched: + - @ConditionalOnProperty (springdoc.model-converters.pageable-converter.enabled) matched (OnPropertyCondition) + - @ConditionalOnMissingBean (types: org.springdoc.core.converters.PageableOpenAPIConverter; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocSecurityConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.security.web.SecurityFilterChain' (OnClassCondition) + - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnExpression (#{${springdoc.api-docs.enabled:true} and ${springdoc.enable-spring-security:true}}) resulted in true (OnExpressionCondition) + - @ConditionalOnBean (types: org.springdoc.core.configuration.SpringDocConfiguration; SearchStrategy: all) found bean 'org.springdoc.core.configuration.SpringDocConfiguration' (OnBeanCondition) + + SpringDocSecurityConfiguration.SpringDocSecurityOAuth2ClientConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.security.oauth2.client.annotation.RegisteredOAuth2AuthorizedClient' (OnClassCondition) + + SpringDocSecurityConfiguration.SpringSecurityLoginEndpointConfiguration matched: + - @ConditionalOnClass found required class 'jakarta.servlet.Filter' (OnClassCondition) + + SpringDocSortConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.data.domain.Sort' (OnClassCondition) + - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnProperty (springdoc.api-docs.enabled) matched (OnPropertyCondition) + - @ConditionalOnBean (types: org.springdoc.core.configuration.SpringDocConfiguration; SearchStrategy: all) found bean 'org.springdoc.core.configuration.SpringDocConfiguration' (OnBeanCondition) + + SpringDocSortConfiguration#sortOpenAPIConverter matched: + - @ConditionalOnProperty (springdoc.sort-converter.enabled) matched (OnPropertyCondition) + - @ConditionalOnMissingBean (types: org.springdoc.core.converters.SortOpenAPIConverter; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocUIConfiguration matched: + - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnBean (types: org.springdoc.core.configuration.SpringDocConfiguration; SearchStrategy: all) found bean 'org.springdoc.core.configuration.SpringDocConfiguration' (OnBeanCondition) + + SpringDocWebMvcConfiguration matched: + - found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnProperty (springdoc.api-docs.enabled) matched (OnPropertyCondition) + - @ConditionalOnBean (types: org.springdoc.core.configuration.SpringDocConfiguration; SearchStrategy: all) found bean 'org.springdoc.core.configuration.SpringDocConfiguration' (OnBeanCondition) + + SpringDocWebMvcConfiguration#openApiResource matched: + - @ConditionalOnExpression (#{(${springdoc.use-management-port:false} == false ) and ${springdoc.enable-default-api-docs:true}}) resulted in true (OnExpressionCondition) + - @ConditionalOnMissingBean (types: org.springdoc.webmvc.api.OpenApiWebMvcResource; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocWebMvcConfiguration#requestBuilder matched: + - @ConditionalOnMissingBean (types: org.springdoc.webmvc.core.service.RequestService; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocWebMvcConfiguration#responseBuilder matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.service.GenericResponseService; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocWebMvcConfiguration#springWebProvider matched: + - @ConditionalOnMissingBean (types: org.springdoc.core.providers.SpringWebProvider; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SpringDocWebMvcConfiguration.SpringDocWebMvcActuatorConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping' (OnClassCondition) + + SpringDocWebMvcConfiguration.SpringDocWebMvcRouterConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.web.servlet.function.RouterFunction' (OnClassCondition) + + SpringDocWebMvcConfiguration.SpringDocWebMvcRouterConfiguration#routerFunctionProvider matched: + - @ConditionalOnMissingBean (types: org.springdoc.webmvc.core.providers.RouterFunctionWebMvcProvider; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SslAutoConfiguration#sslBundleRegistry matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.ssl.SslBundleRegistry,org.springframework.boot.ssl.SslBundles; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SslHealthContributorAutoConfiguration matched: + - @ConditionalOnEnabledHealthIndicator management.health.defaults.enabled is considered true (OnEnabledHealthIndicatorCondition) + + SslHealthContributorAutoConfiguration#sslHealthIndicator matched: + - @ConditionalOnMissingBean (names: sslHealthIndicator; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SslHealthContributorAutoConfiguration#sslInfo matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.info.SslInfo; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SslObservabilityAutoConfiguration matched: + - @ConditionalOnClass found required class 'io.micrometer.core.instrument.MeterRegistry' (OnClassCondition) + - @ConditionalOnBean (types: io.micrometer.core.instrument.MeterRegistry,org.springframework.boot.ssl.SslBundles; SearchStrategy: all) found beans 'prometheusMeterRegistry', 'sslBundleRegistry' (OnBeanCondition) + + StartupTimeMetricsListenerAutoConfiguration matched: + - @ConditionalOnClass found required class 'io.micrometer.core.instrument.MeterRegistry' (OnClassCondition) + - @ConditionalOnBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found bean 'prometheusMeterRegistry' (OnBeanCondition) + + StartupTimeMetricsListenerAutoConfiguration#startupTimeMetrics matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.metrics.startup.StartupTimeMetricsListener; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SwaggerConfig matched: + - found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnProperty (springdoc.swagger-ui.enabled) matched (OnPropertyCondition) + - @ConditionalOnBean (types: org.springdoc.core.configuration.SpringDocConfiguration; SearchStrategy: all) found bean 'org.springdoc.core.configuration.SpringDocConfiguration' (OnBeanCondition) + + SwaggerConfig#indexPageTransformer matched: + - @ConditionalOnMissingBean (types: org.springdoc.webmvc.ui.SwaggerIndexTransformer; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SwaggerConfig#swaggerConfigResource matched: + - @ConditionalOnProperty (springdoc.use-management-port=false) matched (OnPropertyCondition) + - @ConditionalOnMissingBean (types: org.springdoc.webmvc.ui.SwaggerConfigResource; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SwaggerConfig#swaggerResourceResolver matched: + - @ConditionalOnMissingBean (types: org.springdoc.webmvc.ui.SwaggerResourceResolver; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SwaggerConfig#swaggerWebMvcConfigurer matched: + - @ConditionalOnMissingBean (types: org.springdoc.webmvc.ui.SwaggerWebMvcConfigurer; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SwaggerConfig#swaggerWelcome matched: + - @ConditionalOnProperty (springdoc.use-management-port=false) matched (OnPropertyCondition) + - @ConditionalOnMissingBean (types: org.springdoc.webmvc.ui.SwaggerWelcomeWebMvc; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SwaggerUiConfigProperties matched: + - @ConditionalOnProperty (springdoc.swagger-ui.enabled) matched (OnPropertyCondition) + - @ConditionalOnBean (types: org.springdoc.core.configuration.SpringDocConfiguration; SearchStrategy: all) found bean 'org.springdoc.core.configuration.SpringDocConfiguration' (OnBeanCondition) + + SwaggerUiOAuthProperties matched: + - @ConditionalOnProperty (springdoc.swagger-ui.enabled) matched (OnPropertyCondition) + - @ConditionalOnBean (types: org.springdoc.core.configuration.SpringDocConfiguration; SearchStrategy: all) found bean 'org.springdoc.core.configuration.SpringDocConfiguration' (OnBeanCondition) + + SystemMetricsAutoConfiguration matched: + - @ConditionalOnClass found required class 'io.micrometer.core.instrument.MeterRegistry' (OnClassCondition) + - @ConditionalOnBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found bean 'prometheusMeterRegistry' (OnBeanCondition) + + SystemMetricsAutoConfiguration#diskSpaceMetrics matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.metrics.system.DiskSpaceMetricsBinder; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SystemMetricsAutoConfiguration#fileDescriptorMetrics matched: + - @ConditionalOnMissingBean (types: io.micrometer.core.instrument.binder.system.FileDescriptorMetrics; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SystemMetricsAutoConfiguration#processorMetrics matched: + - @ConditionalOnMissingBean (types: io.micrometer.core.instrument.binder.system.ProcessorMetrics; SearchStrategy: all) did not find any beans (OnBeanCondition) + + SystemMetricsAutoConfiguration#uptimeMetrics matched: + - @ConditionalOnMissingBean (types: io.micrometer.core.instrument.binder.system.UptimeMetrics; SearchStrategy: all) did not find any beans (OnBeanCondition) + + TaskExecutionAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor' (OnClassCondition) + + TaskExecutorConfigurations.AsyncConfigurerConfiguration matched: + - @ConditionalOnMissingBean (types: org.springframework.scheduling.annotation.AsyncConfigurer; SearchStrategy: all) did not find any beans (OnBeanCondition) + + TaskExecutorConfigurations.AsyncConfigurerConfiguration#applicationTaskExecutorAsyncConfigurer matched: + - @ConditionalOnMissingBean (types: org.springframework.scheduling.annotation.AsyncConfigurer; SearchStrategy: all) did not find any beans (OnBeanCondition) + + TaskExecutorConfigurations.SimpleAsyncTaskExecutorBuilderConfiguration#simpleAsyncTaskExecutorBuilder matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.task.SimpleAsyncTaskExecutorBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition) + - @ConditionalOnThreading found PLATFORM (OnThreadingCondition) + + TaskExecutorConfigurations.TaskExecutorConfiguration matched: + - AnyNestedCondition 1 matched 1 did not; NestedCondition on TaskExecutorConfigurations.OnExecutorCondition.ModelCondition @ConditionalOnProperty (spring.task.execution.mode=force) did not find property 'spring.task.execution.mode'; NestedCondition on TaskExecutorConfigurations.OnExecutorCondition.ExecutorBeanCondition @ConditionalOnMissingBean (types: java.util.concurrent.Executor; SearchStrategy: all) did not find any beans (TaskExecutorConfigurations.OnExecutorCondition) + + TaskExecutorConfigurations.TaskExecutorConfiguration#applicationTaskExecutor matched: + - @ConditionalOnThreading found PLATFORM (OnThreadingCondition) + + TaskExecutorConfigurations.ThreadPoolTaskExecutorBuilderConfiguration#threadPoolTaskExecutorBuilder matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.task.ThreadPoolTaskExecutorBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition) + + TaskExecutorMetricsAutoConfiguration matched: + - @ConditionalOnClass found required class 'io.micrometer.core.instrument.binder.jvm.ExecutorServiceMetrics' (OnClassCondition) + - @ConditionalOnBean (types: java.util.concurrent.Executor,io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found beans 'prometheusMeterRegistry', 'applicationTaskExecutor' (OnBeanCondition) + + TaskSchedulingAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler' (OnClassCondition) + + TaskSchedulingConfigurations.SimpleAsyncTaskSchedulerBuilderConfiguration#simpleAsyncTaskSchedulerBuilder matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.task.SimpleAsyncTaskSchedulerBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition) + - @ConditionalOnThreading found PLATFORM (OnThreadingCondition) + + TaskSchedulingConfigurations.ThreadPoolTaskSchedulerBuilderConfiguration#threadPoolTaskSchedulerBuilder matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.task.ThreadPoolTaskSchedulerBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition) + + TomcatMetricsAutoConfiguration matched: + - @ConditionalOnClass found required classes 'io.micrometer.core.instrument.binder.tomcat.TomcatMetrics', 'org.apache.catalina.Manager' (OnClassCondition) + - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition) + + TomcatMetricsAutoConfiguration#tomcatMetricsBinder matched: + - @ConditionalOnBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found bean 'prometheusMeterRegistry'; @ConditionalOnMissingBean (types: io.micrometer.core.instrument.binder.tomcat.TomcatMetrics,org.springframework.boot.actuate.metrics.web.tomcat.TomcatMetricsBinder; SearchStrategy: all) did not find any beans (OnBeanCondition) + + TransactionAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.transaction.PlatformTransactionManager' (OnClassCondition) + + TransactionAutoConfiguration.EnableTransactionManagementConfiguration matched: + - @ConditionalOnBean (types: org.springframework.transaction.TransactionManager; SearchStrategy: all) found bean 'transactionManager'; @ConditionalOnMissingBean (types: org.springframework.transaction.annotation.AbstractTransactionManagementConfiguration; SearchStrategy: all) did not find any beans (OnBeanCondition) + + TransactionAutoConfiguration.EnableTransactionManagementConfiguration.CglibAutoProxyConfiguration matched: + - @ConditionalOnBooleanProperty (spring.aop.proxy-target-class=true) matched (OnPropertyCondition) + + TransactionAutoConfiguration.TransactionTemplateConfiguration matched: + - @ConditionalOnSingleCandidate (types: org.springframework.transaction.PlatformTransactionManager; SearchStrategy: all) found a single bean 'transactionManager' (OnBeanCondition) + + TransactionAutoConfiguration.TransactionTemplateConfiguration#transactionTemplate matched: + - @ConditionalOnMissingBean (types: org.springframework.transaction.support.TransactionOperations; SearchStrategy: all) did not find any beans (OnBeanCondition) + + TransactionManagerCustomizationAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.transaction.PlatformTransactionManager' (OnClassCondition) + + TransactionManagerCustomizationAutoConfiguration#platformTransactionManagerCustomizers matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.transaction.TransactionManagerCustomizers; SearchStrategy: all) did not find any beans (OnBeanCondition) + + ValidationAutoConfiguration matched: + - @ConditionalOnClass found required class 'jakarta.validation.executable.ExecutableValidator' (OnClassCondition) + - @ConditionalOnResource found location classpath:META-INF/services/jakarta.validation.spi.ValidationProvider (OnResourceCondition) + + ValidationAutoConfiguration#defaultValidator matched: + - @ConditionalOnMissingBean (types: jakarta.validation.Validator; SearchStrategy: all) did not find any beans (OnBeanCondition) + + ValidationAutoConfiguration#methodValidationPostProcessor matched: + - @ConditionalOnMissingBean (types: org.springframework.validation.beanvalidation.MethodValidationPostProcessor; SearchStrategy: current) did not find any beans (OnBeanCondition) + + WebClientAutoConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.web.reactive.function.client.WebClient' (OnClassCondition) + + WebClientAutoConfiguration#webClientBuilder matched: + - @ConditionalOnMissingBean (types: org.springframework.web.reactive.function.client.WebClient$Builder; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebClientAutoConfiguration#webClientHttpConnectorCustomizer matched: + - @ConditionalOnBean (types: org.springframework.http.client.reactive.ClientHttpConnector; SearchStrategy: all) found bean 'clientHttpConnector' (OnBeanCondition) + + WebClientAutoConfiguration#webClientSsl matched: + - @ConditionalOnBean (types: org.springframework.boot.ssl.SslBundles; SearchStrategy: all) found bean 'sslBundleRegistry'; @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientSsl; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebClientAutoConfiguration.WebClientCodecsConfiguration matched: + - @ConditionalOnBean (types: org.springframework.boot.web.codec.CodecCustomizer; SearchStrategy: all) found beans 'jacksonCodecCustomizer', 'defaultCodecCustomizer' (OnBeanCondition) + + WebClientAutoConfiguration.WebClientCodecsConfiguration#exchangeStrategiesCustomizer matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientCodecCustomizer; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebClientObservationConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.web.reactive.function.client.WebClient' (OnClassCondition) + + WebEndpointAutoConfiguration matched: + - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition) + + WebEndpointAutoConfiguration#controllerEndpointDiscoverer matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpointsSupplier; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebEndpointAutoConfiguration#endpointMediaTypes matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.endpoint.web.EndpointMediaTypes; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebEndpointAutoConfiguration#pathMappedEndpoints matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.endpoint.web.PathMappedEndpoints; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebEndpointAutoConfiguration#webEndpointDiscoverer matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.endpoint.web.WebEndpointsSupplier; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebEndpointAutoConfiguration.WebEndpointServletConfiguration matched: + - found 'session' scope (OnWebApplicationCondition) + + WebEndpointAutoConfiguration.WebEndpointServletConfiguration#servletEndpointDiscoverer matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.endpoint.web.annotation.ServletEndpointsSupplier; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebMvcAutoConfiguration matched: + - @ConditionalOnClass found required classes 'jakarta.servlet.Servlet', 'org.springframework.web.servlet.DispatcherServlet', 'org.springframework.web.servlet.config.annotation.WebMvcConfigurer' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnMissingBean (types: org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebMvcAutoConfiguration#formContentFilter matched: + - @ConditionalOnBooleanProperty (spring.mvc.formcontent.filter.enabled=true) matched (OnPropertyCondition) + - @ConditionalOnMissingBean (types: org.springframework.web.filter.FormContentFilter; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebMvcAutoConfiguration.EnableWebMvcConfiguration#flashMapManager matched: + - @ConditionalOnMissingBean (names: flashMapManager; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebMvcAutoConfiguration.EnableWebMvcConfiguration#localeResolver matched: + - @ConditionalOnMissingBean (names: localeResolver; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebMvcAutoConfiguration.EnableWebMvcConfiguration#themeResolver matched: + - @ConditionalOnMissingBean (names: themeResolver; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebMvcAutoConfiguration.EnableWebMvcConfiguration#viewNameTranslator matched: + - @ConditionalOnMissingBean (names: viewNameTranslator; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebMvcAutoConfiguration.ResourceChainCustomizerConfiguration matched: + - @ConditionalOnEnabledResourceChain found class org.webjars.WebJarVersionLocator (OnEnabledResourceChainCondition) + + WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#defaultViewResolver matched: + - @ConditionalOnMissingBean (types: org.springframework.web.servlet.view.InternalResourceViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#requestContextFilter matched: + - @ConditionalOnMissingBean (types: org.springframework.web.context.request.RequestContextListener,org.springframework.web.filter.RequestContextFilter; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#viewResolver matched: + - @ConditionalOnBean (types: org.springframework.web.servlet.ViewResolver; SearchStrategy: all) found beans 'defaultViewResolver', 'beanNameViewResolver', 'mvcViewResolver'; @ConditionalOnMissingBean (names: viewResolver types: org.springframework.web.servlet.view.ContentNegotiatingViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebMvcEndpointManagementContextConfiguration matched: + - @ConditionalOnClass found required class 'org.springframework.web.servlet.DispatcherServlet' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnBean (types: org.springframework.web.servlet.DispatcherServlet,org.springframework.boot.actuate.endpoint.web.WebEndpointsSupplier; SearchStrategy: all) found beans 'webEndpointDiscoverer', 'dispatcherServlet' (OnBeanCondition) + + WebMvcEndpointManagementContextConfiguration#controllerEndpointHandlerMapping matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.endpoint.web.servlet.ControllerEndpointHandlerMapping; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebMvcEndpointManagementContextConfiguration#endpointObjectMapperWebMvcConfigurer matched: + - @ConditionalOnBean (types: org.springframework.boot.actuate.endpoint.jackson.EndpointObjectMapper; SearchStrategy: all) found bean 'endpointObjectMapper' (OnBeanCondition) + + WebMvcEndpointManagementContextConfiguration#webEndpointServletHandlerMapping matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebMvcObservationAutoConfiguration matched: + - @ConditionalOnClass found required classes 'org.springframework.web.servlet.DispatcherServlet', 'io.micrometer.observation.Observation' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnBean (types: io.micrometer.observation.ObservationRegistry; SearchStrategy: all) found bean 'observationRegistry' (OnBeanCondition) + + WebMvcObservationAutoConfiguration#webMvcObservationFilter matched: + - @ConditionalOnMissingBean (types: org.springframework.web.filter.ServerHttpObservationFilter; SearchStrategy: all) did not find any beans (OnBeanCondition) + + WebMvcObservationAutoConfiguration.MeterFilterConfiguration matched: + - @ConditionalOnClass found required class 'io.micrometer.core.instrument.MeterRegistry' (OnClassCondition) + - @ConditionalOnBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found bean 'prometheusMeterRegistry' (OnBeanCondition) + + WebSocketServletAutoConfiguration matched: + - @ConditionalOnClass found required classes 'jakarta.servlet.Servlet', 'jakarta.websocket.server.ServerContainer' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + + WebSocketServletAutoConfiguration.TomcatWebSocketConfiguration matched: + - @ConditionalOnClass found required classes 'org.apache.catalina.startup.Tomcat', 'org.apache.tomcat.websocket.server.WsSci' (OnClassCondition) + + WebSocketServletAutoConfiguration.TomcatWebSocketConfiguration#websocketServletWebServerCustomizer matched: + - @ConditionalOnMissingBean (names: websocketServletWebServerCustomizer; SearchStrategy: all) did not find any beans (OnBeanCondition) + + + Negative matches: + ----------------- + + ActiveMQAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'jakarta.jms.ConnectionFactory' (OnClassCondition) + + AopAutoConfiguration.AspectJAutoProxyingConfiguration.JdkDynamicAutoProxyConfiguration: + Did not match: + - @ConditionalOnBooleanProperty (spring.aop.proxy-target-class=false) did not find property 'spring.aop.proxy-target-class' (OnPropertyCondition) + + AopAutoConfiguration.ClassProxyingConfiguration: + Did not match: + - @ConditionalOnMissingClass found unwanted class 'org.aspectj.weaver.Advice' (OnClassCondition) + + AppOpticsMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.appoptics.AppOpticsMeterRegistry' (OnClassCondition) + + ArtemisAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'jakarta.jms.ConnectionFactory' (OnClassCondition) + + AtlasMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.atlas.AtlasMeterRegistry' (OnClassCondition) + + AuditAutoConfiguration: + Did not match: + - @ConditionalOnBean (types: org.springframework.boot.actuate.audit.AuditEventRepository; SearchStrategy: all) did not find any beans of type org.springframework.boot.actuate.audit.AuditEventRepository (OnBeanCondition) + Matched: + - @ConditionalOnBooleanProperty (management.auditevents.enabled=true) matched (OnPropertyCondition) + + AuditEventsEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint not exposed (OnAvailableEndpointCondition) + + AvailabilityHealthContributorAutoConfiguration#livenessStateHealthIndicator: + Did not match: + - @ConditionalOnBooleanProperty (management.health.livenessstate.enabled=true) did not find property 'management.health.livenessstate.enabled' (OnPropertyCondition) + + AvailabilityHealthContributorAutoConfiguration#readinessStateHealthIndicator: + Did not match: + - @ConditionalOnBooleanProperty (management.health.readinessstate.enabled=true) did not find property 'management.health.readinessstate.enabled' (OnPropertyCondition) + + AvailabilityProbesAutoConfiguration: + Did not match: + - Probes availability not running on a supported cloud platform (AvailabilityProbesAutoConfiguration.ProbesCondition) + + BatchAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.batch.core.launch.JobLauncher' (OnClassCondition) + + BatchObservationAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.batch.core.configuration.annotation.BatchObservabilityBeanPostProcessor' (OnClassCondition) + + BeansEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint not exposed (OnAvailableEndpointCondition) + + BraveAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'brave.Tracer' (OnClassCondition) + + Cache2kCacheConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.cache2k.Cache2kBuilder' (OnClassCondition) + + CacheAutoConfiguration: + Did not match: + - @ConditionalOnBean (types: org.springframework.cache.interceptor.CacheAspectSupport; SearchStrategy: all) did not find any beans of type org.springframework.cache.interceptor.CacheAspectSupport (OnBeanCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.cache.CacheManager' (OnClassCondition) + + CacheAutoConfiguration.CacheManagerEntityManagerFactoryDependsOnPostProcessor: + Did not match: + - Ancestor org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean' (OnClassCondition) + + CacheMeterBinderProvidersConfiguration.Cache2kCacheMeterBinderProviderConfiguration: + Did not match: + - @ConditionalOnClass did not find required classes 'org.cache2k.Cache2kBuilder', 'org.cache2k.extra.spring.SpringCache2kCache', 'org.cache2k.extra.micrometer.Cache2kCacheMetrics' (OnClassCondition) + + CacheMeterBinderProvidersConfiguration.CaffeineCacheMeterBinderProviderConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.github.benmanes.caffeine.cache.Cache' (OnClassCondition) + + CacheMeterBinderProvidersConfiguration.HazelcastCacheMeterBinderProviderConfiguration: + Did not match: + - @ConditionalOnClass did not find required classes 'com.hazelcast.spring.cache.HazelcastCache', 'com.hazelcast.core.Hazelcast' (OnClassCondition) + + CacheMeterBinderProvidersConfiguration.JCacheCacheMeterBinderProviderConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'javax.cache.CacheManager' (OnClassCondition) + + CacheMetricsAutoConfiguration: + Did not match: + - @ConditionalOnBean (types: org.springframework.cache.CacheManager; SearchStrategy: all) did not find any beans of type org.springframework.cache.CacheManager (OnBeanCondition) + + CachesEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint not exposed (OnAvailableEndpointCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.cache.CacheManager' (OnClassCondition) + + CaffeineCacheConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.github.benmanes.caffeine.cache.Caffeine' (OnClassCondition) + + CassandraAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.datastax.oss.driver.api.core.CqlSession' (OnClassCondition) + + CassandraDataAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.datastax.oss.driver.api.core.CqlSession' (OnClassCondition) + + CassandraHealthContributorAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.datastax.oss.driver.api.core.CqlSession' (OnClassCondition) + + CassandraReactiveDataAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.datastax.oss.driver.api.core.CqlSession' (OnClassCondition) + + CassandraReactiveHealthContributorAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.datastax.oss.driver.api.core.CqlSession' (OnClassCondition) + + CassandraReactiveRepositoriesAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.data.cassandra.ReactiveSession' (OnClassCondition) + + CassandraRepositoriesAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.datastax.oss.driver.api.core.CqlSession' (OnClassCondition) + + CloudFoundryActuatorAutoConfiguration: + Did not match: + - @ConditionalOnCloudPlatform did not find CLOUD_FOUNDRY (OnCloudPlatformCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.web.servlet.DispatcherServlet' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnBooleanProperty (management.cloudfoundry.enabled=true) matched (OnPropertyCondition) + + CompositeMeterRegistryConfiguration: + Did not match: + - NoneNestedConditions 1 matched 1 did not; NestedCondition on CompositeMeterRegistryConfiguration.MultipleNonPrimaryMeterRegistriesCondition.SingleInjectableMeterRegistry @ConditionalOnSingleCandidate (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found a single bean 'prometheusMeterRegistry'; NestedCondition on CompositeMeterRegistryConfiguration.MultipleNonPrimaryMeterRegistriesCondition.NoMeterRegistryCondition @ConditionalOnMissingBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found beans of type 'io.micrometer.core.instrument.MeterRegistry' prometheusMeterRegistry (CompositeMeterRegistryConfiguration.MultipleNonPrimaryMeterRegistriesCondition) + + ConditionsReportEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint not exposed (OnAvailableEndpointCondition) + + ConfigurationPropertiesReportEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint not exposed (OnAvailableEndpointCondition) + + ConnectionFactoryHealthContributorAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.r2dbc.spi.ConnectionFactory' (OnClassCondition) + + ConnectionPoolMetricsAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.r2dbc.pool.ConnectionPool' (OnClassCondition) + + CouchbaseAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition) + + CouchbaseCacheConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition) + + CouchbaseDataAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Bucket' (OnClassCondition) + + CouchbaseHealthContributorAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition) + + CouchbaseReactiveDataAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition) + + CouchbaseReactiveHealthContributorAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition) + + CouchbaseReactiveRepositoriesAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition) + + CouchbaseRepositoriesAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Bucket' (OnClassCondition) + + DataSourceAutoConfiguration.EmbeddedDatabaseConfiguration: + Did not match: + - EmbeddedDataSource found supported pooled data source (DataSourceAutoConfiguration.EmbeddedDatabaseCondition) + + DataSourceCheckpointRestoreConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.crac.Resource' (OnClassCondition) + + DataSourceConfiguration.Dbcp2: + Did not match: + - @ConditionalOnClass did not find required class 'org.apache.commons.dbcp2.BasicDataSource' (OnClassCondition) + + DataSourceConfiguration.Generic: + Did not match: + - @ConditionalOnProperty (spring.datasource.type) did not find property 'spring.datasource.type' (OnPropertyCondition) + + DataSourceConfiguration.OracleUcp: + Did not match: + - @ConditionalOnClass did not find required classes 'oracle.ucp.jdbc.PoolDataSourceImpl', 'oracle.jdbc.OracleConnection' (OnClassCondition) + + DataSourceConfiguration.Tomcat: + Did not match: + - @ConditionalOnClass did not find required class 'org.apache.tomcat.jdbc.pool.DataSource' (OnClassCondition) + + DataSourceJmxConfiguration: + Did not match: + - @ConditionalOnBooleanProperty (spring.jmx.enabled=true) found different value in property 'spring.jmx.enabled' (OnPropertyCondition) + + DataSourcePoolMetadataProvidersConfiguration.CommonsDbcp2PoolDataSourceMetadataProviderConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.apache.commons.dbcp2.BasicDataSource' (OnClassCondition) + + DataSourcePoolMetadataProvidersConfiguration.OracleUcpPoolDataSourceMetadataProviderConfiguration: + Did not match: + - @ConditionalOnClass did not find required classes 'oracle.ucp.jdbc.PoolDataSource', 'oracle.jdbc.OracleConnection' (OnClassCondition) + + DataSourcePoolMetadataProvidersConfiguration.TomcatDataSourcePoolMetadataProviderConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.apache.tomcat.jdbc.pool.DataSource' (OnClassCondition) + + DataSourceTransactionManagerAutoConfiguration.JdbcTransactionManagerConfiguration#transactionManager: + Did not match: + - @ConditionalOnMissingBean (types: org.springframework.transaction.TransactionManager; SearchStrategy: all) found beans of type 'org.springframework.transaction.TransactionManager' transactionManager (OnBeanCondition) + + DatadogMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.datadog.DatadogMeterRegistry' (OnClassCondition) + + DispatcherServletAutoConfiguration.DispatcherServletConfiguration#multipartResolver: + Did not match: + - @ConditionalOnBean (types: org.springframework.web.multipart.MultipartResolver; SearchStrategy: all) did not find any beans of type org.springframework.web.multipart.MultipartResolver (OnBeanCondition) + + DynatraceMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.dynatrace.DynatraceMeterRegistry' (OnClassCondition) + + ElasticMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.elastic.ElasticMeterRegistry' (OnClassCondition) + + ElasticsearchClientAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'co.elastic.clients.elasticsearch.ElasticsearchClient' (OnClassCondition) + + ElasticsearchDataAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.data.elasticsearch.client.elc.ElasticsearchTemplate' (OnClassCondition) + + ElasticsearchReactiveHealthContributorAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.data.elasticsearch.client.elc.ReactiveElasticsearchClient' (OnClassCondition) + + ElasticsearchRepositoriesAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.data.elasticsearch.repository.ElasticsearchRepository' (OnClassCondition) + + ElasticsearchRestClientAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.elasticsearch.client.RestClientBuilder' (OnClassCondition) + + ElasticsearchRestHealthContributorAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.elasticsearch.client.RestClient' (OnClassCondition) + + EmbeddedLdapAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.unboundid.ldap.listener.InMemoryDirectoryServer' (OnClassCondition) + + EmbeddedWebServerFactoryCustomizerAutoConfiguration: + Did not match: + - Application is deployed as a WAR file. (OnWarDeploymentCondition) + Matched: + - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition) + + EnvironmentEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint not exposed (OnAvailableEndpointCondition) + + ErrorWebFluxAutoConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.web.reactive.config.WebFluxConfigurer' (OnClassCondition) + + FlywayAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.flywaydb.core.Flyway' (OnClassCondition) + + FlywayEndpointAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.flywaydb.core.Flyway' (OnClassCondition) + + FreeMarkerAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'freemarker.template.Configuration' (OnClassCondition) + + GangliaMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.ganglia.GangliaMeterRegistry' (OnClassCondition) + + GraphQlAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) + + GraphQlObservationAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) + + GraphQlQueryByExampleAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) + + GraphQlQuerydslAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.querydsl.core.Query' (OnClassCondition) + + GraphQlRSocketAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) + + GraphQlReactiveQueryByExampleAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) + + GraphQlReactiveQuerydslAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.querydsl.core.Query' (OnClassCondition) + + GraphQlWebFluxAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) + + GraphQlWebFluxSecurityAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) + + GraphQlWebMvcAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) + + GraphQlWebMvcSecurityAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) + + GraphiteMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.graphite.GraphiteMeterRegistry' (OnClassCondition) + + GroovyTemplateAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'groovy.text.markup.MarkupTemplateEngine' (OnClassCondition) + + GsonAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.google.gson.Gson' (OnClassCondition) + + GsonHttpMessageConvertersConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.google.gson.Gson' (OnClassCondition) + + H2ConsoleAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.h2.server.web.JakartaWebServlet' (OnClassCondition) + + HazelcastAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition) + + HazelcastCacheConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition) + + HazelcastHealthContributorAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition) + + HazelcastJpaDependencyAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition) + + HealthEndpointReactiveWebExtensionConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + + HealthEndpointWebExtensionConfiguration.JerseyAdditionalHealthEndpointPathsConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.glassfish.jersey.server.ResourceConfig' (OnClassCondition) + + HeapDumpWebEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint the configured access for endpoint 'heapdump' is NONE (OnAvailableEndpointCondition) + + HibernateMetricsAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.hibernate.stat.HibernateMetrics' (OnClassCondition) + + HttpExchangesAutoConfiguration: + Did not match: + - @ConditionalOnBean (types: org.springframework.boot.actuate.web.exchanges.HttpExchangeRepository; SearchStrategy: all) did not find any beans of type org.springframework.boot.actuate.web.exchanges.HttpExchangeRepository (OnBeanCondition) + Matched: + - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnBooleanProperty (management.httpexchanges.recording.enabled=true) matched (OnPropertyCondition) + + HttpExchangesAutoConfiguration.ReactiveHttpExchangesConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + - Ancestor org.springframework.boot.actuate.autoconfigure.web.exchanges.HttpExchangesAutoConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition) + + HttpExchangesAutoConfiguration.ServletHttpExchangesConfiguration: + Did not match: + - Ancestor org.springframework.boot.actuate.autoconfigure.web.exchanges.HttpExchangesAutoConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition) + Matched: + - found 'session' scope (OnWebApplicationCondition) + + HttpExchangesEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint not exposed (OnAvailableEndpointCondition) + + HttpHandlerAutoConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + Matched: + - @ConditionalOnClass found required classes 'org.springframework.web.reactive.DispatcherHandler', 'org.springframework.http.server.reactive.HttpHandler' (OnClassCondition) + + HumioMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.humio.HumioMeterRegistry' (OnClassCondition) + + HypermediaAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.hateoas.EntityModel' (OnClassCondition) + + InfinispanCacheConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.infinispan.spring.embedded.provider.SpringEmbeddedCacheManager' (OnClassCondition) + + InfluxMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.influx.InfluxMeterRegistry' (OnClassCondition) + + InfoContributorAutoConfiguration#buildInfoContributor: + Did not match: + - @ConditionalOnSingleCandidate (types: org.springframework.boot.info.BuildProperties; SearchStrategy: all) did not find any beans (OnBeanCondition) + Matched: + - @ConditionalOnEnabledInfoContributor management.info.defaults.enabled is considered true (OnEnabledInfoContributorCondition) + + InfoContributorAutoConfiguration#envInfoContributor: + Did not match: + - @ConditionalOnEnabledInfoContributor management.info.env.enabled is not true (OnEnabledInfoContributorCondition) + + InfoContributorAutoConfiguration#gitInfoContributor: + Did not match: + - @ConditionalOnSingleCandidate (types: org.springframework.boot.info.GitProperties; SearchStrategy: all) did not find any beans (OnBeanCondition) + Matched: + - @ConditionalOnEnabledInfoContributor management.info.defaults.enabled is considered true (OnEnabledInfoContributorCondition) + + InfoContributorAutoConfiguration#javaInfoContributor: + Did not match: + - @ConditionalOnEnabledInfoContributor management.info.java.enabled is not true (OnEnabledInfoContributorCondition) + + InfoContributorAutoConfiguration#osInfoContributor: + Did not match: + - @ConditionalOnEnabledInfoContributor management.info.os.enabled is not true (OnEnabledInfoContributorCondition) + + InfoContributorAutoConfiguration#processInfoContributor: + Did not match: + - @ConditionalOnEnabledInfoContributor management.info.process.enabled is not true (OnEnabledInfoContributorCondition) + + InfoContributorAutoConfiguration#sslInfo: + Did not match: + - @ConditionalOnEnabledInfoContributor management.info.ssl.enabled is not true (OnEnabledInfoContributorCondition) + Matched: + - @ConditionalOnMissingBean (types: org.springframework.boot.info.SslInfo; SearchStrategy: all) did not find any beans (OnBeanCondition) + + InfoContributorAutoConfiguration#sslInfoContributor: + Did not match: + - @ConditionalOnEnabledInfoContributor management.info.ssl.enabled is not true (OnEnabledInfoContributorCondition) + + IntegrationAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.integration.config.EnableIntegration' (OnClassCondition) + + IntegrationGraphEndpointAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.integration.graph.IntegrationGraphServer' (OnClassCondition) + + JCacheCacheConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'javax.cache.Caching' (OnClassCondition) + + JacksonHttpMessageConvertersConfiguration.MappingJackson2XmlHttpMessageConverterConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.fasterxml.jackson.dataformat.xml.XmlMapper' (OnClassCondition) + + JdbcRepositoriesAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration' (OnClassCondition) + + JedisConnectionConfiguration: + Did not match: + - @ConditionalOnClass did not find required classes 'org.apache.commons.pool2.impl.GenericObjectPool', 'redis.clients.jedis.Jedis' (OnClassCondition) + + JerseyAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.glassfish.jersey.server.spring.SpringComponentProvider' (OnClassCondition) + + JerseySameManagementContextConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.glassfish.jersey.server.ResourceConfig' (OnClassCondition) + + JerseyServerMetricsAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.glassfish.jersey.micrometer.server.ObservationApplicationEventListener' (OnClassCondition) + + JerseyWebEndpointManagementContextConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.glassfish.jersey.server.ResourceConfig' (OnClassCondition) + + JettyMetricsAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.eclipse.jetty.server.Server' (OnClassCondition) + + JmsAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'jakarta.jms.Message' (OnClassCondition) + + JmsHealthContributorAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'jakarta.jms.ConnectionFactory' (OnClassCondition) + + JmxAutoConfiguration: + Did not match: + - @ConditionalOnBooleanProperty (spring.jmx.enabled=true) found different value in property 'spring.jmx.enabled' (OnPropertyCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.jmx.export.MBeanExporter' (OnClassCondition) + + JmxEndpointAutoConfiguration: + Did not match: + - @ConditionalOnBooleanProperty (spring.jmx.enabled=true) found different value in property 'spring.jmx.enabled' (OnPropertyCondition) + + JmxMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.jmx.JmxMeterRegistry' (OnClassCondition) + + JndiConnectionFactoryAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.jms.core.JmsTemplate' (OnClassCondition) + + JndiDataSourceAutoConfiguration: + Did not match: + - @ConditionalOnProperty (spring.datasource.jndi-name) did not find property 'spring.datasource.jndi-name' (OnPropertyCondition) + Matched: + - @ConditionalOnClass found required classes 'javax.sql.DataSource', 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition) + + JndiJtaConfiguration: + Did not match: + - @ConditionalOnJndi JNDI environment is not available (OnJndiCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.transaction.jta.JtaTransactionManager' (OnClassCondition) + + JooqAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.jooq.DSLContext' (OnClassCondition) + + JpaRepositoriesAutoConfiguration#entityManagerFactoryBootstrapExecutorCustomizer: + Did not match: + - AnyNestedCondition 0 matched 2 did not; NestedCondition on JpaRepositoriesAutoConfiguration.BootstrapExecutorCondition.LazyBootstrapMode @ConditionalOnProperty (spring.data.jpa.repositories.bootstrap-mode=lazy) did not find property 'spring.data.jpa.repositories.bootstrap-mode'; NestedCondition on JpaRepositoriesAutoConfiguration.BootstrapExecutorCondition.DeferredBootstrapMode @ConditionalOnProperty (spring.data.jpa.repositories.bootstrap-mode=deferred) did not find property 'spring.data.jpa.repositories.bootstrap-mode' (JpaRepositoriesAutoConfiguration.BootstrapExecutorCondition) + + JsonbAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'jakarta.json.bind.Jsonb' (OnClassCondition) + + JsonbHttpMessageConvertersConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'jakarta.json.bind.Jsonb' (OnClassCondition) + + JvmMetricsAutoConfiguration#virtualThreadMetrics: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.java21.instrument.binder.jdk.VirtualThreadMetrics' (OnClassCondition) + + KafkaAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.kafka.core.KafkaTemplate' (OnClassCondition) + + KafkaMetricsAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.kafka.core.ProducerFactory' (OnClassCondition) + + KairosMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.kairos.KairosMeterRegistry' (OnClassCondition) + + LdapAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.ldap.core.ContextSource' (OnClassCondition) + + LdapHealthContributorAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.ldap.core.LdapOperations' (OnClassCondition) + + LdapRepositoriesAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.data.ldap.repository.LdapRepository' (OnClassCondition) + + LettuceConnectionConfiguration#redisConnectionFactoryVirtualThreads: + Did not match: + - @ConditionalOnMissingBean (types: org.springframework.data.redis.connection.RedisConnectionFactory; SearchStrategy: all) found beans of type 'org.springframework.data.redis.connection.RedisConnectionFactory' redisConnectionFactory (OnBeanCondition) + + LiquibaseAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'liquibase.change.DatabaseChange' (OnClassCondition) + + LiquibaseEndpointAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'liquibase.integration.spring.SpringLiquibase' (OnClassCondition) + + Log4J2MetricsAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.apache.logging.log4j.core.LoggerContext' (OnClassCondition) + + LogFileWebEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint not exposed (OnAvailableEndpointCondition) + + LoggersEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint not exposed (OnAvailableEndpointCondition) + + MailHealthContributorAutoConfiguration: + Did not match: + - @ConditionalOnBean (types: org.springframework.mail.javamail.JavaMailSenderImpl; SearchStrategy: all) did not find any beans of type org.springframework.mail.javamail.JavaMailSenderImpl (OnBeanCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.mail.javamail.JavaMailSenderImpl' (OnClassCondition) + - @ConditionalOnEnabledHealthIndicator management.health.defaults.enabled is considered true (OnEnabledHealthIndicatorCondition) + + MailSenderAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'jakarta.mail.internet.MimeMessage' (OnClassCondition) + + MailSenderValidatorAutoConfiguration: + Did not match: + - @ConditionalOnBooleanProperty (spring.mail.test-connection=true) did not find property 'spring.mail.test-connection' (OnPropertyCondition) + + ManagementContextAutoConfiguration.DifferentManagementContextConfiguration: + Did not match: + - Management Port actual port type (SAME) did not match required type (DIFFERENT) (OnManagementPortCondition) + + ManagementWebSecurityAutoConfiguration: + Did not match: + - AllNestedConditions 1 matched 1 did not; NestedCondition on DefaultWebSecurityCondition.Beans @ConditionalOnMissingBean (types: org.springframework.security.web.SecurityFilterChain; SearchStrategy: all) found beans of type 'org.springframework.security.web.SecurityFilterChain' securityFilterChain; NestedCondition on DefaultWebSecurityCondition.Classes @ConditionalOnClass found required classes 'org.springframework.security.web.SecurityFilterChain', 'org.springframework.security.config.annotation.web.builders.HttpSecurity' (DefaultWebSecurityCondition) + Matched: + - found 'session' scope (OnWebApplicationCondition) + + MappingsEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint not exposed (OnAvailableEndpointCondition) + + MessageSourceAutoConfiguration: + Did not match: + - ResourceBundle did not find bundle with basename messages (MessageSourceAutoConfiguration.ResourceBundleCondition) + + MetricsAspectsAutoConfiguration: + Did not match: + - @ConditionalOnBooleanProperty (management.observations.annotations.enabled=true) did not find property 'management.observations.annotations.enabled' (OnPropertyCondition) + Matched: + - @ConditionalOnClass found required classes 'io.micrometer.core.instrument.MeterRegistry', 'org.aspectj.weaver.Advice' (OnClassCondition) + + MetricsEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint not exposed (OnAvailableEndpointCondition) + Matched: + - @ConditionalOnClass found required class 'io.micrometer.core.annotation.Timed' (OnClassCondition) + + MicrometerTracingAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.tracing.Tracer' (OnClassCondition) + + MongoAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.mongodb.client.MongoClient' (OnClassCondition) + + MongoDataAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.mongodb.client.MongoClient' (OnClassCondition) + + MongoHealthContributorAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.data.mongodb.core.MongoTemplate' (OnClassCondition) + + MongoMetricsAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.mongodb.MongoClientSettings' (OnClassCondition) + + MongoReactiveAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition) + + MongoReactiveDataAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition) + + MongoReactiveHealthContributorAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.data.mongodb.core.ReactiveMongoTemplate' (OnClassCondition) + + MongoReactiveRepositoriesAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition) + + MongoRepositoriesAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.mongodb.client.MongoClient' (OnClassCondition) + + MultipleOpenApiSupportConfiguration: + Did not match: + - AnyNestedCondition 0 matched 2 did not; NestedCondition on MultipleOpenApiSupportCondition.OnActuatorDifferentPort found non-matching nested conditions Management Port actual port type (SAME) did not match required type (DIFFERENT), @ConditionalOnProperty (springdoc.show-actuator) did not find property 'springdoc.show-actuator'; NestedCondition on MultipleOpenApiSupportCondition.OnMultipleOpenApiSupportCondition AnyNestedCondition 0 matched 3 did not; NestedCondition on MultipleOpenApiGroupsCondition.OnListGroupedOpenApiBean @ConditionalOnBean (types: org.springdoc.core.models.GroupedOpenApi; SearchStrategy: all) did not find any beans of type org.springdoc.core.models.GroupedOpenApi; NestedCondition on MultipleOpenApiGroupsCondition.OnGroupConfigProperty @ConditionalOnProperty (springdoc.group-configs[0].group) did not find property 'springdoc.group-configs[0].group'; NestedCondition on MultipleOpenApiGroupsCondition.OnGroupedOpenApiBean @ConditionalOnBean (types: org.springdoc.core.models.GroupedOpenApi; SearchStrategy: all) did not find any beans of type org.springdoc.core.models.GroupedOpenApi (MultipleOpenApiSupportCondition) + Matched: + - found 'session' scope (OnWebApplicationCondition) + - @ConditionalOnProperty (springdoc.api-docs.enabled) matched (OnPropertyCondition) + + MultipleOpenApiSupportConfiguration.SpringDocWebMvcActuatorDifferentConfiguration: + Did not match: + - Management Port actual port type (SAME) did not match required type (DIFFERENT) (OnManagementPortCondition) + - Ancestor org.springdoc.webmvc.core.configuration.MultipleOpenApiSupportConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping' (OnClassCondition) + + MustacheAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.samskivert.mustache.Mustache' (OnClassCondition) + + Neo4jAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) + + Neo4jDataAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) + + Neo4jHealthContributorAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) + + Neo4jReactiveDataAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) + + Neo4jReactiveRepositoriesAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) + + Neo4jRepositoriesAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) + + NewRelicMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.newrelic.NewRelicMeterRegistry' (OnClassCondition) + + NoOpMeterRegistryConfiguration: + Did not match: + - @ConditionalOnMissingBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found beans of type 'io.micrometer.core.instrument.MeterRegistry' prometheusMeterRegistry (OnBeanCondition) + + NoopTracerAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.tracing.Tracer' (OnClassCondition) + + OAuth2AuthorizationServerAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.security.oauth2.server.authorization.OAuth2Authorization' (OnClassCondition) + + OAuth2AuthorizationServerJwtAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.security.oauth2.server.authorization.OAuth2Authorization' (OnClassCondition) + + OAuth2ClientConfigurations.ClientRegistrationRepositoryConfiguration: + Did not match: + - OAuth2 Clients Configured Condition registered clients is not available (ClientsConfiguredCondition) + + OAuth2ClientConfigurations.OAuth2AuthorizedClientServiceConfiguration: + Did not match: + - @ConditionalOnBean (types: org.springframework.security.oauth2.client.registration.ClientRegistrationRepository; SearchStrategy: all) did not find any beans of type org.springframework.security.oauth2.client.registration.ClientRegistrationRepository (OnBeanCondition) + + OAuth2ClientWebSecurityAutoConfiguration: + Did not match: + - @ConditionalOnBean (types: org.springframework.security.oauth2.client.OAuth2AuthorizedClientService; SearchStrategy: all) did not find any beans of type org.springframework.security.oauth2.client.OAuth2AuthorizedClientService (OnBeanCondition) + Matched: + - @ConditionalOnClass found required classes 'org.springframework.security.config.annotation.web.configuration.EnableWebSecurity', 'org.springframework.security.oauth2.client.web.OAuth2AuthorizedClientRepository' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + + OAuth2ResourceServerAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.security.oauth2.server.resource.authentication.BearerTokenAuthenticationToken' (OnClassCondition) + + ObservationAutoConfiguration.MeterObservationHandlerConfiguration.TracingAndMetricsObservationHandlerConfiguration: + Did not match: + - @ConditionalOnBean did not find required type 'io.micrometer.tracing.Tracer' (OnBeanCondition) + - @ConditionalOnBean (types: ?; SearchStrategy: all) did not find any beans of type ? (OnBeanCondition) + + ObservationAutoConfiguration.MetricsWithTracingConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.tracing.Tracer' (OnClassCondition) + + ObservationAutoConfiguration.ObservedAspectConfiguration: + Did not match: + - @ConditionalOnBooleanProperty (management.observations.annotations.enabled=true) did not find property 'management.observations.annotations.enabled' (OnPropertyCondition) + Matched: + - @ConditionalOnClass found required class 'org.aspectj.weaver.Advice' (OnClassCondition) + + ObservationAutoConfiguration.OnlyTracingConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.tracing.Tracer' (OnClassCondition) + + OpenTelemetryAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.opentelemetry.sdk.OpenTelemetrySdk' (OnClassCondition) + + OpenTelemetryLoggingAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.opentelemetry.api.OpenTelemetry' (OnClassCondition) + + OpenTelemetryTracingAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.tracing.otel.bridge.OtelTracer' (OnClassCondition) + + OtlpLoggingAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.opentelemetry.api.OpenTelemetry' (OnClassCondition) + + OtlpMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.registry.otlp.OtlpMeterRegistry' (OnClassCondition) + + OtlpTracingAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.tracing.otel.bridge.OtelTracer' (OnClassCondition) + + ProjectInfoAutoConfiguration#buildProperties: + Did not match: + - @ConditionalOnResource did not find resource '${spring.info.build.location:classpath:META-INF/build-info.properties}' (OnResourceCondition) + + ProjectInfoAutoConfiguration#gitProperties: + Did not match: + - GitResource did not find git info at classpath:git.properties (ProjectInfoAutoConfiguration.GitResourceAvailableCondition) + + PrometheusExemplarsAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.tracing.Tracer' (OnClassCondition) + + PrometheusMetricsExportAutoConfiguration.PrometheusPushGatewayConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.prometheus.metrics.exporter.pushgateway.PushGateway' (OnClassCondition) + + PulsarAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.apache.pulsar.client.api.PulsarClient' (OnClassCondition) + + PulsarReactiveAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.apache.pulsar.client.api.PulsarClient' (OnClassCondition) + + QuartzAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.quartz.Scheduler' (OnClassCondition) + + QuartzEndpointAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.quartz.Scheduler' (OnClassCondition) + + R2dbcAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.r2dbc.spi.ConnectionFactory' (OnClassCondition) + + R2dbcDataAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.data.r2dbc.core.R2dbcEntityTemplate' (OnClassCondition) + + R2dbcObservationAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.r2dbc.proxy.ProxyConnectionFactory' (OnClassCondition) + + R2dbcProxyAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.r2dbc.proxy.ProxyConnectionFactory' (OnClassCondition) + + R2dbcRepositoriesAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.r2dbc.spi.ConnectionFactory' (OnClassCondition) + + R2dbcTransactionManagerAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.r2dbc.connection.R2dbcTransactionManager' (OnClassCondition) + + RSocketGraphQlClientAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) + + RSocketMessagingAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.rsocket.RSocket' (OnClassCondition) + + RSocketRequesterAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.rsocket.RSocket' (OnClassCondition) + + RSocketSecurityAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.security.rsocket.core.SecuritySocketAcceptorInterceptor' (OnClassCondition) + + RSocketServerAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.rsocket.core.RSocketServer' (OnClassCondition) + + RSocketStrategiesAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.rsocket.RSocket' (OnClassCondition) + + RabbitAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.rabbitmq.client.Channel' (OnClassCondition) + + RabbitHealthContributorAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.amqp.rabbit.core.RabbitTemplate' (OnClassCondition) + + RabbitMetricsAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.rabbitmq.client.ConnectionFactory' (OnClassCondition) + + ReactiveCloudFoundryActuatorAutoConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + + ReactiveElasticsearchClientAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'co.elastic.clients.transport.ElasticsearchTransport' (OnClassCondition) + + ReactiveElasticsearchRepositoriesAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.data.elasticsearch.client.elc.ReactiveElasticsearchClient' (OnClassCondition) + + ReactiveManagementContextAutoConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + Matched: + - @ConditionalOnClass found required class 'reactor.core.publisher.Flux' (OnClassCondition) + + ReactiveManagementWebSecurityAutoConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + Matched: + - @ConditionalOnClass found required classes 'org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity', 'org.springframework.security.web.server.WebFilterChainProxy' (OnClassCondition) + + ReactiveMultipartAutoConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + Matched: + - @ConditionalOnClass found required classes 'org.springframework.http.codec.multipart.DefaultPartHttpMessageReader', 'org.springframework.web.reactive.config.WebFluxConfigurer' (OnClassCondition) + + ReactiveOAuth2ClientAutoConfiguration: + Did not match: + - NoneNestedConditions 1 matched 0 did not; NestedCondition on ReactiveOAuth2ClientAutoConfiguration.NonServletApplicationCondition.ServletApplicationCondition found 'session' scope (ReactiveOAuth2ClientAutoConfiguration.NonServletApplicationCondition) + Matched: + - @ConditionalOnClass found required classes 'reactor.core.publisher.Flux', 'org.springframework.security.oauth2.client.registration.ClientRegistration' (OnClassCondition) + + ReactiveOAuth2ClientWebSecurityAutoConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + Matched: + - @ConditionalOnClass found required classes 'reactor.core.publisher.Flux', 'org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity', 'org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizedClientRepository' (OnClassCondition) + + ReactiveOAuth2ResourceServerAutoConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity' (OnClassCondition) + + ReactiveSecurityAutoConfiguration.SpringBootWebFluxSecurityConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + + ReactiveUserDetailsServiceAutoConfiguration: + Did not match: + - AnyNestedCondition 0 matched 3 did not; NestedCondition on ReactiveUserDetailsServiceAutoConfiguration.MissingAlternativeOrUserPropertiesConfigured.PasswordConfigured @ConditionalOnProperty (spring.security.user.password) did not find property 'spring.security.user.password'; NestedCondition on ReactiveUserDetailsServiceAutoConfiguration.MissingAlternativeOrUserPropertiesConfigured.NameConfigured @ConditionalOnProperty (spring.security.user.name) did not find property 'spring.security.user.name'; NestedCondition on ReactiveUserDetailsServiceAutoConfiguration.MissingAlternativeOrUserPropertiesConfigured.MissingAlternative @ConditionalOnMissingClass found unwanted class 'org.springframework.security.oauth2.client.registration.ClientRegistrationRepository' (ReactiveUserDetailsServiceAutoConfiguration.MissingAlternativeOrUserPropertiesConfigured) + Matched: + - @ConditionalOnClass found required class 'org.springframework.security.authentication.ReactiveAuthenticationManager' (OnClassCondition) + + ReactiveWebServerFactoryAutoConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.http.ReactiveHttpInputMessage' (OnClassCondition) + + RedisAutoConfiguration#redisTemplate: + Did not match: + - @ConditionalOnMissingBean (names: redisTemplate; SearchStrategy: all) found beans named redisTemplate (OnBeanCondition) + + RedisAutoConfiguration#stringRedisTemplate: + Did not match: + - @ConditionalOnMissingBean (types: org.springframework.data.redis.core.StringRedisTemplate; SearchStrategy: all) found beans of type 'org.springframework.data.redis.core.StringRedisTemplate' stringRedisTemplate (OnBeanCondition) + + RedisHealthContributorAutoConfiguration#redisHealthContributor: + Did not match: + - @ConditionalOnMissingBean (names: redisHealthIndicator,redisHealthContributor; SearchStrategy: all) found beans named redisHealthContributor (OnBeanCondition) + + RepositoryRestMvcAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration' (OnClassCondition) + + Saml2RelyingPartyAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistrationRepository' (OnClassCondition) + + SbomEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint not exposed (OnAvailableEndpointCondition) + + ScheduledTasksEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint not exposed (OnAvailableEndpointCondition) + + SecurityDataConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.security.data.repository.query.SecurityEvaluationContextExtension' (OnClassCondition) + + SecurityRequestMatchersManagementContextConfiguration.JerseyRequestMatcherConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.glassfish.jersey.server.ResourceConfig' (OnClassCondition) + + SendGridAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.sendgrid.SendGrid' (OnClassCondition) + + ServletEndpointManagementContextConfiguration.JerseyServletEndpointManagementContextConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.glassfish.jersey.server.ResourceConfig' (OnClassCondition) + + ServletManagementContextAutoConfiguration.ApplicationContextFilterConfiguration: + Did not match: + - @ConditionalOnBooleanProperty (management.server.add-application-context-header=true) did not find property 'management.server.add-application-context-header' (OnPropertyCondition) + + ServletWebServerFactoryAutoConfiguration.ForwardedHeaderFilterConfiguration: + Did not match: + - @ConditionalOnProperty (server.forward-headers-strategy=framework) did not find property 'server.forward-headers-strategy' (OnPropertyCondition) + + ServletWebServerFactoryConfiguration.EmbeddedJetty: + Did not match: + - @ConditionalOnClass did not find required classes 'org.eclipse.jetty.server.Server', 'org.eclipse.jetty.util.Loader', 'org.eclipse.jetty.ee10.webapp.WebAppContext' (OnClassCondition) + + ServletWebServerFactoryConfiguration.EmbeddedUndertow: + Did not match: + - @ConditionalOnClass did not find required classes 'io.undertow.Undertow', 'org.xnio.SslClientAuthMode' (OnClassCondition) + + SessionAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.session.Session' (OnClassCondition) + + SessionsEndpointAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.session.Session' (OnClassCondition) + + ShutdownEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint the configured access for endpoint 'shutdown' is NONE (OnAvailableEndpointCondition) + + SignalFxMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.signalfx.SignalFxMeterRegistry' (OnClassCondition) + + SimpleMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnMissingBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found beans of type 'io.micrometer.core.instrument.MeterRegistry' prometheusMeterRegistry (OnBeanCondition) + Matched: + - @ConditionalOnEnabledMetricsExport management.simple.metrics.export.enabled is true (OnMetricsExportEnabledCondition) + + SpringApplicationAdminJmxAutoConfiguration: + Did not match: + - @ConditionalOnBooleanProperty (spring.application.admin.enabled=true) did not find property 'spring.application.admin.enabled' (OnPropertyCondition) + + SpringBootWebSecurityConfiguration.SecurityFilterChainConfiguration: + Did not match: + - AllNestedConditions 1 matched 1 did not; NestedCondition on DefaultWebSecurityCondition.Beans @ConditionalOnMissingBean (types: org.springframework.security.web.SecurityFilterChain; SearchStrategy: all) found beans of type 'org.springframework.security.web.SecurityFilterChain' securityFilterChain; NestedCondition on DefaultWebSecurityCondition.Classes @ConditionalOnClass found required classes 'org.springframework.security.web.SecurityFilterChain', 'org.springframework.security.config.annotation.web.builders.HttpSecurity' (DefaultWebSecurityCondition) + + SpringBootWebSecurityConfiguration.WebSecurityEnablerConfiguration: + Did not match: + - @ConditionalOnMissingBean (names: springSecurityFilterChain; SearchStrategy: all) found beans named springSecurityFilterChain (OnBeanCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.security.config.annotation.web.configuration.EnableWebSecurity' (OnClassCondition) + + SpringDocConfiguration#propertiesResolverForSchema: + Did not match: + - @ConditionalOnProperty (springdoc.api-docs.resolve-schema-properties) did not find property 'springdoc.api-docs.resolve-schema-properties' (OnPropertyCondition) + + SpringDocConfiguration#propertyCustomizingConverter: + Did not match: + - @ConditionalOnBean (types: org.springdoc.core.customizers.PropertyCustomizer; SearchStrategy: all) did not find any beans of type org.springdoc.core.customizers.PropertyCustomizer (OnBeanCondition) + + SpringDocConfiguration#springdocBeanFactoryPostProcessor: + Did not match: + - AnyNestedCondition 0 matched 2 did not; NestedCondition on CacheOrGroupedOpenApiCondition.OnCacheDisabled found non-matching nested conditions @ConditionalOnProperty (springdoc.cache.disabled) did not find property 'springdoc.cache.disabled'; NestedCondition on CacheOrGroupedOpenApiCondition.OnMultipleOpenApiSupportCondition AnyNestedCondition 0 matched 2 did not; NestedCondition on MultipleOpenApiSupportCondition.OnActuatorDifferentPort found non-matching nested conditions Management Port actual port type (SAME) did not match required type (DIFFERENT), @ConditionalOnProperty (springdoc.show-actuator) did not find property 'springdoc.show-actuator'; NestedCondition on MultipleOpenApiSupportCondition.OnMultipleOpenApiSupportCondition AnyNestedCondition 0 matched 3 did not; NestedCondition on MultipleOpenApiGroupsCondition.OnListGroupedOpenApiBean @ConditionalOnBean (types: org.springdoc.core.models.GroupedOpenApi; SearchStrategy: all) did not find any beans of type org.springdoc.core.models.GroupedOpenApi; NestedCondition on MultipleOpenApiGroupsCondition.OnGroupConfigProperty @ConditionalOnProperty (springdoc.group-configs[0].group) did not find property 'springdoc.group-configs[0].group'; NestedCondition on MultipleOpenApiGroupsCondition.OnGroupedOpenApiBean @ConditionalOnBean (types: org.springdoc.core.models.GroupedOpenApi; SearchStrategy: all) did not find any beans of type org.springdoc.core.models.GroupedOpenApi (CacheOrGroupedOpenApiCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.boot.context.properties.bind.BindResult' (OnClassCondition) + + SpringDocConfiguration#springdocBeanFactoryPostProcessor2: + Did not match: + - @ConditionalOnMissingClass found unwanted class 'org.springframework.boot.context.properties.bind.BindResult' (OnClassCondition) + + SpringDocConfiguration.SpringDocActuatorConfiguration: + Did not match: + - @ConditionalOnProperty (springdoc.show-actuator) did not find property 'springdoc.show-actuator' (OnPropertyCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties' (OnClassCondition) + + SpringDocConfiguration.SpringDocRepositoryRestConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.data.rest.core.config.RepositoryRestConfiguration' (OnClassCondition) + + SpringDocDataRestConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.data.rest.core.config.RepositoryRestConfiguration' (OnClassCondition) + + SpringDocFunctionCatalogConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.cloud.function.web.function.FunctionEndpointInitializer' (OnClassCondition) + + SpringDocGroovyConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'groovy.lang.MetaClass' (OnClassCondition) + + SpringDocHateoasConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.hateoas.server.LinkRelationProvider' (OnClassCondition) + + SpringDocJacksonKotlinModuleConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.fasterxml.jackson.module.kotlin.KotlinModule' (OnClassCondition) + + SpringDocJavadocConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.github.therapi.runtimejavadoc.CommentFormatter' (OnClassCondition) + + SpringDocKotlinConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'kotlin.coroutines.Continuation' (OnClassCondition) + + SpringDocKotlinxConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'kotlinx.coroutines.flow.Flow' (OnClassCondition) + + SpringDocSecurityConfiguration.SpringDocSecurityOAuth2Configuration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationService' (OnClassCondition) + + SpringDocSecurityConfiguration.SpringSecurityLoginEndpointConfiguration#springSecurityLoginEndpointCustomizer: + Did not match: + - @ConditionalOnProperty (springdoc.show-login-endpoint) did not find property 'springdoc.show-login-endpoint' (OnPropertyCondition) + + SpringDocSortConfiguration#dataRestDelegatingMethodParameterCustomizer: + Did not match: + - @ConditionalOnMissingBean (types: org.springdoc.core.customizers.DataRestDelegatingMethodParameterCustomizer; SearchStrategy: all) found beans of type 'org.springdoc.core.customizers.DataRestDelegatingMethodParameterCustomizer' dataRestDelegatingMethodParameterCustomizer (OnBeanCondition) + + SpringDocWebMvcConfiguration.SpringDocWebMvcActuatorConfiguration#actuatorProvider: + Did not match: + - @ConditionalOnExpression (#{${springdoc.show-actuator:false} or ${springdoc.use-management-port:false}}) resulted in false (OnExpressionCondition) + + SpringDocWebMvcConfiguration.SpringDocWebMvcActuatorConfiguration#openApiActuatorResource: + Did not match: + - @ConditionalOnExpression (#{${springdoc.use-management-port:false} and ${springdoc.enable-default-api-docs:true}}) resulted in false (OnExpressionCondition) + + SqlInitializationAutoConfiguration: + Did not match: + - NoneNestedConditions 1 matched 0 did not; NestedCondition on SqlInitializationAutoConfiguration.SqlInitializationModeCondition.ModeIsNever @ConditionalOnProperty (spring.sql.init.mode=never) matched (SqlInitializationAutoConfiguration.SqlInitializationModeCondition) + Matched: + - @ConditionalOnBooleanProperty (spring.sql.init.enabled=true) matched (OnPropertyCondition) + + SslObservabilityAutoConfiguration#sslInfoProvider: + Did not match: + - @ConditionalOnMissingBean (types: org.springframework.boot.info.SslInfo; SearchStrategy: all) found beans of type 'org.springframework.boot.info.SslInfo' sslInfo (OnBeanCondition) + + StackdriverMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.stackdriver.StackdriverMeterRegistry' (OnClassCondition) + + StartupEndpointAutoConfiguration: + Did not match: + - ApplicationStartup configured applicationStartup is of type class org.springframework.core.metrics.DefaultApplicationStartup, expected BufferingApplicationStartup. (StartupEndpointAutoConfiguration.ApplicationStartupCondition) + + StatsdMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.micrometer.statsd.StatsdMeterRegistry' (OnClassCondition) + + SwaggerConfig#springWebProvider: + Did not match: + - @ConditionalOnMissingBean (types: org.springdoc.core.providers.SpringWebProvider; SearchStrategy: all) found beans of type 'org.springdoc.core.providers.SpringWebProvider' springWebProvider (OnBeanCondition) + + SwaggerConfig#swaggerUiHome: + Did not match: + - @ConditionalOnProperty (springdoc.swagger-ui.use-root-path=true) did not find property 'springdoc.swagger-ui.use-root-path' (OnPropertyCondition) + + SwaggerConfig.SwaggerActuatorWelcomeConfiguration: + Did not match: + - @ConditionalOnProperty (springdoc.use-management-port) did not find property 'springdoc.use-management-port' (OnPropertyCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping' (OnClassCondition) + + TaskExecutorConfigurations.SimpleAsyncTaskExecutorBuilderConfiguration#simpleAsyncTaskExecutorBuilderVirtualThreads: + Did not match: + - @ConditionalOnMissingBean (types: org.springframework.boot.task.SimpleAsyncTaskExecutorBuilder; SearchStrategy: all) found beans of type 'org.springframework.boot.task.SimpleAsyncTaskExecutorBuilder' simpleAsyncTaskExecutorBuilder (OnBeanCondition) + + TaskExecutorConfigurations.TaskExecutorConfiguration#applicationTaskExecutorVirtualThreads: + Did not match: + - @ConditionalOnThreading did not find VIRTUAL (OnThreadingCondition) + + TaskSchedulingAutoConfiguration#scheduledBeanLazyInitializationExcludeFilter: + Did not match: + - @ConditionalOnBean (names: org.springframework.context.annotation.internalScheduledAnnotationProcessor; SearchStrategy: all) did not find any beans named org.springframework.context.annotation.internalScheduledAnnotationProcessor (OnBeanCondition) + + TaskSchedulingConfigurations.SimpleAsyncTaskSchedulerBuilderConfiguration#simpleAsyncTaskSchedulerBuilderVirtualThreads: + Did not match: + - @ConditionalOnMissingBean (types: org.springframework.boot.task.SimpleAsyncTaskSchedulerBuilder; SearchStrategy: all) found beans of type 'org.springframework.boot.task.SimpleAsyncTaskSchedulerBuilder' simpleAsyncTaskSchedulerBuilder (OnBeanCondition) + + TaskSchedulingConfigurations.TaskSchedulerConfiguration: + Did not match: + - @ConditionalOnBean (names: org.springframework.context.annotation.internalScheduledAnnotationProcessor; SearchStrategy: all) did not find any beans named org.springframework.context.annotation.internalScheduledAnnotationProcessor (OnBeanCondition) + + ThreadDumpEndpointAutoConfiguration: + Did not match: + - @ConditionalOnAvailableEndpoint not exposed (OnAvailableEndpointCondition) + + ThymeleafAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.thymeleaf.spring6.SpringTemplateEngine' (OnClassCondition) + + TransactionAutoConfiguration#transactionalOperator: + Did not match: + - @ConditionalOnSingleCandidate (types: org.springframework.transaction.ReactiveTransactionManager; SearchStrategy: all) did not find any beans (OnBeanCondition) + + TransactionAutoConfiguration.AspectJTransactionManagementConfiguration: + Did not match: + - @ConditionalOnBean (types: org.springframework.transaction.aspectj.AbstractTransactionAspect; SearchStrategy: all) did not find any beans of type org.springframework.transaction.aspectj.AbstractTransactionAspect (OnBeanCondition) + + TransactionAutoConfiguration.EnableTransactionManagementConfiguration.JdkDynamicAutoProxyConfiguration: + Did not match: + - @ConditionalOnBooleanProperty (spring.aop.proxy-target-class=false) did not find property 'spring.aop.proxy-target-class' (OnPropertyCondition) + + UserDetailsServiceAutoConfiguration: + Did not match: + - AnyNestedCondition 0 matched 3 did not; NestedCondition on UserDetailsServiceAutoConfiguration.MissingAlternativeOrUserPropertiesConfigured.PasswordConfigured @ConditionalOnProperty (spring.security.user.password) did not find property 'spring.security.user.password'; NestedCondition on UserDetailsServiceAutoConfiguration.MissingAlternativeOrUserPropertiesConfigured.NameConfigured @ConditionalOnProperty (spring.security.user.name) did not find property 'spring.security.user.name'; NestedCondition on UserDetailsServiceAutoConfiguration.MissingAlternativeOrUserPropertiesConfigured.MissingAlternative @ConditionalOnMissingClass found unwanted class 'org.springframework.security.oauth2.client.registration.ClientRegistrationRepository' (UserDetailsServiceAutoConfiguration.MissingAlternativeOrUserPropertiesConfigured) + Matched: + - @ConditionalOnClass found required class 'org.springframework.security.authentication.AuthenticationManager' (OnClassCondition) + - found 'session' scope (OnWebApplicationCondition) + + WavefrontAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.wavefront.sdk.common.application.ApplicationTags' (OnClassCondition) + + WavefrontMetricsExportAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.wavefront.sdk.common.WavefrontSender' (OnClassCondition) + + WavefrontTracingAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'com.wavefront.sdk.common.WavefrontSender' (OnClassCondition) + + WebFluxAutoConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + Matched: + - @ConditionalOnClass found required class 'org.springframework.web.reactive.config.WebFluxConfigurer' (OnClassCondition) + + WebFluxEndpointManagementContextConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + Matched: + - @ConditionalOnClass found required classes 'org.springframework.web.reactive.DispatcherHandler', 'org.springframework.http.server.reactive.HttpHandler' (OnClassCondition) + + WebFluxObservationAutoConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + Matched: + - @ConditionalOnClass found required classes 'io.micrometer.observation.Observation', 'io.micrometer.core.instrument.MeterRegistry' (OnClassCondition) + + WebMvcAutoConfiguration#hiddenHttpMethodFilter: + Did not match: + - @ConditionalOnBooleanProperty (spring.mvc.hiddenmethod.filter.enabled=true) did not find property 'spring.mvc.hiddenmethod.filter.enabled' (OnPropertyCondition) + + WebMvcAutoConfiguration.ProblemDetailsErrorHandlingConfiguration: + Did not match: + - @ConditionalOnBooleanProperty (spring.mvc.problemdetails.enabled=true) did not find property 'spring.mvc.problemdetails.enabled' (OnPropertyCondition) + + WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#beanNameViewResolver: + Did not match: + - @ConditionalOnMissingBean (types: org.springframework.web.servlet.view.BeanNameViewResolver; SearchStrategy: all) found beans of type 'org.springframework.web.servlet.view.BeanNameViewResolver' beanNameViewResolver (OnBeanCondition) + + WebMvcEndpointManagementContextConfiguration#managementHealthEndpointWebMvcHandlerMapping: + Did not match: + - Management Port actual port type (SAME) did not match required type (DIFFERENT) (OnManagementPortCondition) + + WebServiceTemplateAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.ws.client.core.WebServiceTemplate' (OnClassCondition) + + WebServicesAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.ws.transport.http.MessageDispatcherServlet' (OnClassCondition) + + WebSessionIdResolverAutoConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + Matched: + - @ConditionalOnClass found required classes 'org.springframework.web.server.session.WebSessionManager', 'reactor.core.publisher.Mono' (OnClassCondition) + + WebSocketMessagingAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer' (OnClassCondition) + + WebSocketReactiveAutoConfiguration: + Did not match: + - not a reactive web application (OnWebApplicationCondition) + Matched: + - @ConditionalOnClass found required classes 'jakarta.servlet.Servlet', 'jakarta.websocket.server.ServerContainer' (OnClassCondition) + + WebSocketServletAutoConfiguration.JettyWebSocketConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'org.eclipse.jetty.ee10.websocket.jakarta.server.config.JakartaWebSocketServletContainerInitializer' (OnClassCondition) + + WebSocketServletAutoConfiguration.UndertowWebSocketConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'io.undertow.websockets.jsr.Bootstrap' (OnClassCondition) + + XADataSourceAutoConfiguration: + Did not match: + - @ConditionalOnBean (types: org.springframework.boot.jdbc.XADataSourceWrapper; SearchStrategy: all) did not find any beans of type org.springframework.boot.jdbc.XADataSourceWrapper (OnBeanCondition) + Matched: + - @ConditionalOnClass found required classes 'javax.sql.DataSource', 'jakarta.transaction.TransactionManager', 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition) + + ZipkinAutoConfiguration: + Did not match: + - @ConditionalOnClass did not find required class 'zipkin2.reporter.Encoding' (OnClassCondition) + + + Exclusions: + ----------- + + None + + + Unconditional classes: + ---------------------- + + org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration + + org.springframework.boot.actuate.autoconfigure.availability.AvailabilityHealthContributorAutoConfiguration + + org.springframework.boot.autoconfigure.ssl.SslAutoConfiguration + + org.springframework.boot.actuate.autoconfigure.info.InfoContributorAutoConfiguration + + org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration + + org.springframework.boot.autoconfigure.context.LifecycleAutoConfiguration + + org.springframework.boot.actuate.autoconfigure.metrics.integration.IntegrationMetricsAutoConfiguration + + org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration + + org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration + + org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration + + org.springframework.boot.actuate.autoconfigure.endpoint.jackson.JacksonEndpointAutoConfiguration + + org.springdoc.core.configuration.SpringDocSpecPropertiesConfiguration + + org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration + + org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration + + + + +ApplicationTests STANDARD_OUT + 2025-11-25T02:01:42.858+09:00 INFO 41081 --- [ Test worker] .s.b.a.l.ConditionEvaluationReportLogger : + + Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. + 2025-11-25T02:01:42.866+09:00 ERROR 41081 --- [ Test worker] o.s.boot.SpringApplication : Application run failed + + org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, ${PSQL_URL} + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1826) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970) ~[spring-context-6.2.11.jar:6.2.11] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.2.11.jar:6.2.11] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.5.6.jar:3.5.6] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.5.6.jar:3.5.6] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.5.6.jar:3.5.6] + at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:144) ~[spring-boot-test-3.5.6.jar:3.5.6] + at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) ~[spring-core-6.2.11.jar:6.2.11] + at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) ~[spring-core-6.2.11.jar:6.2.11] + at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1461) ~[spring-boot-3.5.6.jar:3.5.6] + at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:563) ~[spring-boot-test-3.5.6.jar:3.5.6] + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:144) ~[spring-boot-test-3.5.6.jar:3.5.6] + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:110) ~[spring-boot-test-3.5.6.jar:3.5.6] + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:200) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:139) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:159) ~[spring-test-6.2.11.jar:6.2.11] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$10(ClassBasedTestDescriptor.java:383) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:388) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$11(ClassBasedTestDescriptor.java:382) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[na:na] + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na] + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[na:na] + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na] + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na] + at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[na:na] + at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] + at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[na:na] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:382) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:293) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:292) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:281) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at java.base/java.util.Optional.orElseGet(Optional.java:364) ~[na:na] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:280) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:27) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:112) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:111) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:69) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:128) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:128) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na] + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na] + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:201) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:170) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:94) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:59) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:142) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:58) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:124) ~[na:na] + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:99) ~[na:na] + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:94) ~[na:na] + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:63) ~[na:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) ~[na:na] + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) ~[na:na] + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) ~[na:na] + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:92) ~[na:na] + at jdk.proxy1/jdk.proxy1.$Proxy4.stop(Unknown Source) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:200) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:132) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63) ~[na:na] + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) ~[na:na] + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122) ~[na:na] + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72) ~[na:na] + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) ~[gradle-worker.jar:na] + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) ~[gradle-worker.jar:na] + Caused by: jakarta.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, ${PSQL_URL} + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:431) ~[spring-orm-6.2.11.jar:6.2.11] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400) ~[spring-orm-6.2.11.jar:6.2.11] + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1873) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822) ~[spring-beans-6.2.11.jar:6.2.11] + ... 111 common frames omitted + Caused by: java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, ${PSQL_URL} + at com.zaxxer.hikari.util.DriverDataSource.(DriverDataSource.java:116) ~[HikariCP-6.3.3.jar:na] + at com.zaxxer.hikari.pool.PoolBase.initializeDataSource(PoolBase.java:333) ~[HikariCP-6.3.3.jar:na] + at com.zaxxer.hikari.pool.PoolBase.(PoolBase.java:118) ~[HikariCP-6.3.3.jar:na] + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:90) ~[HikariCP-6.3.3.jar:na] + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) ~[HikariCP-6.3.3.jar:na] + at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:126) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:485) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl.getIsolatedConnection(DdlTransactionIsolatorNonJtaImpl.java:46) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl.getIsolatedConnection(DdlTransactionIsolatorNonJtaImpl.java:39) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.internal.exec.ImprovedExtractionContextImpl.getJdbcConnection(ImprovedExtractionContextImpl.java:63) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.extract.spi.ExtractionContext.getQueryResults(ExtractionContext.java:43) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:39) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.initializeSequences(DatabaseInformationImpl.java:66) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.(DatabaseInformationImpl.java:60) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation(Helper.java:185) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:93) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:280) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.lambda$process$5(SchemaManagementToolCoordinator.java:144) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at java.base/java.util.HashMap.forEach(HashMap.java:1429) ~[na:na] + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:141) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.boot.internal.SessionFactoryObserverForSchemaExport.sessionFactoryCreated(SessionFactoryObserverForSchemaExport.java:37) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.internal.SessionFactoryObserverChain.sessionFactoryCreated(SessionFactoryObserverChain.java:35) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:324) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:463) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1517) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66) ~[spring-orm-6.2.11.jar:6.2.11] + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.2.11.jar:6.2.11] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419) ~[spring-orm-6.2.11.jar:6.2.11] + ... 115 common frames omitted + + 2025-11-25T02:01:42.869+09:00 WARN 41081 --- [ Test worker] o.s.test.context.TestContextManager : Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener] to prepare test instance [DiffLens.back_end.ApplicationTests@5b52ce28] + + java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@808fa1 testClass = DiffLens.back_end.ApplicationTests, locations = [], classes = [DiffLens.back_end.Application], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.OnFailureConditionReportContextCustomizerFactory$OnFailureConditionReportContextCustomizer@1a45193b, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@25bc0606, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@33aeca0b, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@1ae67cad, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@5b1f29fa, org.springframework.boot.test.web.reactive.server.WebTestClientContextCustomizer@31aa3ca5, org.springframework.boot.test.web.reactor.netty.DisableReactorResourceFactoryGlobalResourcesContextCustomizerFactory$DisableReactorResourceFactoryGlobalResourcesContextCustomizerCustomizer@549949be, org.springframework.test.context.support.DynamicPropertiesContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@48be1cb1], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:180) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:200) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:139) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:159) ~[spring-test-6.2.11.jar:6.2.11] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$10(ClassBasedTestDescriptor.java:383) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:388) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$11(ClassBasedTestDescriptor.java:382) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[na:na] + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na] + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[na:na] + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na] + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na] + at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[na:na] + at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] + at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[na:na] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:382) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:293) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:292) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:281) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at java.base/java.util.Optional.orElseGet(Optional.java:364) ~[na:na] + at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:280) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:27) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:112) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:111) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:69) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:128) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:128) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na] + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na] + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) ~[junit-platform-engine-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:201) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:170) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:94) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:59) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:142) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:58) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) ~[junit-platform-launcher-1.12.2.jar:1.12.2] + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:124) ~[na:na] + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:99) ~[na:na] + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:94) ~[na:na] + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:63) ~[na:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) ~[na:na] + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) ~[na:na] + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) ~[na:na] + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:92) ~[na:na] + at jdk.proxy1/jdk.proxy1.$Proxy4.stop(Unknown Source) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:200) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:132) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63) ~[na:na] + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) ~[na:na] + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122) ~[na:na] + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72) ~[na:na] + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) ~[gradle-worker.jar:na] + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) ~[gradle-worker.jar:na] + Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, ${PSQL_URL} + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1826) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970) ~[spring-context-6.2.11.jar:6.2.11] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.2.11.jar:6.2.11] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.5.6.jar:3.5.6] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.5.6.jar:3.5.6] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.5.6.jar:3.5.6] + at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:144) ~[spring-boot-test-3.5.6.jar:3.5.6] + at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) ~[spring-core-6.2.11.jar:6.2.11] + at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) ~[spring-core-6.2.11.jar:6.2.11] + at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1461) ~[spring-boot-3.5.6.jar:3.5.6] + at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:563) ~[spring-boot-test-3.5.6.jar:3.5.6] + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:144) ~[spring-boot-test-3.5.6.jar:3.5.6] + at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:110) ~[spring-boot-test-3.5.6.jar:3.5.6] + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225) ~[spring-test-6.2.11.jar:6.2.11] + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152) ~[spring-test-6.2.11.jar:6.2.11] + ... 91 common frames omitted + Caused by: jakarta.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, ${PSQL_URL} + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:431) ~[spring-orm-6.2.11.jar:6.2.11] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400) ~[spring-orm-6.2.11.jar:6.2.11] + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1873) ~[spring-beans-6.2.11.jar:6.2.11] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822) ~[spring-beans-6.2.11.jar:6.2.11] + ... 111 common frames omitted + Caused by: java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, ${PSQL_URL} + at com.zaxxer.hikari.util.DriverDataSource.(DriverDataSource.java:116) ~[HikariCP-6.3.3.jar:na] + at com.zaxxer.hikari.pool.PoolBase.initializeDataSource(PoolBase.java:333) ~[HikariCP-6.3.3.jar:na] + at com.zaxxer.hikari.pool.PoolBase.(PoolBase.java:118) ~[HikariCP-6.3.3.jar:na] + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:90) ~[HikariCP-6.3.3.jar:na] + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) ~[HikariCP-6.3.3.jar:na] + at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:126) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:485) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl.getIsolatedConnection(DdlTransactionIsolatorNonJtaImpl.java:46) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl.getIsolatedConnection(DdlTransactionIsolatorNonJtaImpl.java:39) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.internal.exec.ImprovedExtractionContextImpl.getJdbcConnection(ImprovedExtractionContextImpl.java:63) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.extract.spi.ExtractionContext.getQueryResults(ExtractionContext.java:43) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:39) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.initializeSequences(DatabaseInformationImpl.java:66) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.(DatabaseInformationImpl.java:60) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation(Helper.java:185) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:93) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:280) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.lambda$process$5(SchemaManagementToolCoordinator.java:144) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at java.base/java.util.HashMap.forEach(HashMap.java:1429) ~[na:na] + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:141) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.boot.internal.SessionFactoryObserverForSchemaExport.sessionFactoryCreated(SessionFactoryObserverForSchemaExport.java:37) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.internal.SessionFactoryObserverChain.sessionFactoryCreated(SessionFactoryObserverChain.java:35) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:324) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:463) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1517) ~[hibernate-core-6.6.29.Final.jar:6.6.29.Final] + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66) ~[spring-orm-6.2.11.jar:6.2.11] + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.2.11.jar:6.2.11] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419) ~[spring-orm-6.2.11.jar:6.2.11] + ... 115 common frames omitted + + +Gradle Test Executor 19 finished executing tests. + +> Task :test FAILED + +ApplicationTests > contextLoads() FAILED + java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@808fa1 testClass = DiffLens.back_end.ApplicationTests, locations = [], classes = [DiffLens.back_end.Application], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.OnFailureConditionReportContextCustomizerFactory$OnFailureConditionReportContextCustomizer@1a45193b, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@25bc0606, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@33aeca0b, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@1ae67cad, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@5b1f29fa, org.springframework.boot.test.web.reactive.server.WebTestClientContextCustomizer@31aa3ca5, org.springframework.boot.test.web.reactor.netty.DisableReactorResourceFactoryGlobalResourcesContextCustomizerFactory$DisableReactorResourceFactoryGlobalResourcesContextCustomizerCustomizer@549949be, org.springframework.test.context.support.DynamicPropertiesContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@48be1cb1], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] + at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:180) + at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) + at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:200) + at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:139) + at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260) + at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:159) + at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) + at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) + at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) + at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) + at java.base/java.util.Optional.orElseGet(Optional.java:364) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + + Caused by: + org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, ${PSQL_URL} + at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1826) + at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) + at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) + at app//org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) + at app//org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) + at app//org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) + at app//org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) + at app//org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970) + at app//org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) + at app//org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) + at app//org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at app//org.springframework.boot.SpringApplication.run(SpringApplication.java:318) + at app//org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:144) + at app//org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) + at app//org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) + at app//org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1461) + at app//org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:563) + at app//org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:144) + at app//org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:110) + at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225) + at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152) + ... 19 more + + Caused by: + jakarta.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, ${PSQL_URL} + at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:431) + at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400) + at app//org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) + at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1873) + at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822) + ... 39 more + + Caused by: + java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, ${PSQL_URL} + at com.zaxxer.hikari.util.DriverDataSource.(DriverDataSource.java:116) + at com.zaxxer.hikari.pool.PoolBase.initializeDataSource(PoolBase.java:333) + at com.zaxxer.hikari.pool.PoolBase.(PoolBase.java:118) + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:90) + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) + at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:126) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:485) + at org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl.getIsolatedConnection(DdlTransactionIsolatorNonJtaImpl.java:46) + at org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl.getIsolatedConnection(DdlTransactionIsolatorNonJtaImpl.java:39) + at org.hibernate.tool.schema.internal.exec.ImprovedExtractionContextImpl.getJdbcConnection(ImprovedExtractionContextImpl.java:63) + at org.hibernate.tool.schema.extract.spi.ExtractionContext.getQueryResults(ExtractionContext.java:43) + at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:39) + at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.initializeSequences(DatabaseInformationImpl.java:66) + at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.(DatabaseInformationImpl.java:60) + at org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation(Helper.java:185) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:93) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:280) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.lambda$process$5(SchemaManagementToolCoordinator.java:144) + at java.base/java.util.HashMap.forEach(HashMap.java:1429) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:141) + at org.hibernate.boot.internal.SessionFactoryObserverForSchemaExport.sessionFactoryCreated(SessionFactoryObserverForSchemaExport.java:37) + at org.hibernate.internal.SessionFactoryObserverChain.sessionFactoryCreated(SessionFactoryObserverChain.java:35) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:324) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:463) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1517) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419) + ... 43 more + +1 test completed, 1 failed +Finished generating test XML results (0.002 secs) into: /Users/jypc/Desktop/학교/3학년/2학기/기업연계SW/project/back-end/build/test-results/test +Generating HTML test report... +Finished generating test html results (0.004 secs) into: /Users/jypc/Desktop/학교/3학년/2학기/기업연계SW/project/back-end/build/reports/tests/test + +FAILURE: Build failed with an exception. + +* What went wrong: +Execution failed for task ':test'. +> There were failing tests. See the report at: file:///Users/jypc/Desktop/%ED%95%99%EA%B5%90/3%ED%95%99%EB%85%84/2%ED%95%99%EA%B8%B0/%EA%B8%B0%EC%97%85%EC%97%B0%EA%B3%84SW/project/back-end/build/reports/tests/test/index.html + +* Try: +> Run with --scan to get full insights. + +BUILD FAILED in 2s +4 actionable tasks: 1 executed, 3 up-to-date +Watched directory hierarchies: [] diff --git a/src/main/java/DiffLens/back_end/domain/library/controller/LibraryController.java b/src/main/java/DiffLens/back_end/domain/library/controller/LibraryController.java index b6f8fdc..a451e71 100644 --- a/src/main/java/DiffLens/back_end/domain/library/controller/LibraryController.java +++ b/src/main/java/DiffLens/back_end/domain/library/controller/LibraryController.java @@ -183,145 +183,6 @@ public ApiResponse compareLibraries( return ApiResponse.onSuccess(result); } - @PostMapping("/compare/test") - @Operation(summary = "라이브러리 비교 (테스트용)", description = """ - ## 개요 - AI 서버 연동 없이 하드코딩된 테스트 데이터로 라이브러리 비교를 제공하는 API입니다. - 개발 및 테스트 목적으로 사용됩니다. - - ## Request Body - - libraryId1 : 첫 번째 라이브러리 ID (필수, 실제로는 사용하지 않음) - - libraryId2 : 두 번째 라이브러리 ID (필수, 실제로는 사용하지 않음) - - ## 응답 데이터 - - 하드코딩된 테스트 데이터 반환 - - 실제 라이브러리 데이터는 사용하지 않음 - - ## 권한 - 인증된 사용자만 접근 가능합니다. - - """) - public ApiResponse compareLibrariesTest( - @RequestBody @Valid LibraryCompareRequestDTO.Compare request) { - // Group A 정보 - LibraryCompareResponseDTO.GroupInfo group1 = LibraryCompareResponseDTO.GroupInfo.builder() - .libraryId(1L) - .libraryName("20대 남성이 타는 차 브랜드 분포") - .summary("20대 남성 소비자의 자동차 브랜드 선호도 분석") - .totalCount(100) - .filters(List.of( - LibraryCompareResponseDTO.Filter.builder() - .key("성별") - .values(List.of("남성")) - .build(), - LibraryCompareResponseDTO.Filter.builder() - .key("연령") - .values(List.of("20-29세")) - .build(), - LibraryCompareResponseDTO.Filter.builder() - .key("차량보유") - .values(List.of("있음")) - .build())) - .build(); - - // Group B 정보 - LibraryCompareResponseDTO.GroupInfo group2 = LibraryCompareResponseDTO.GroupInfo.builder() - .libraryId(2L) - .libraryName("30대 여성 화장품 구매 패턴") - .summary("30대 여성의 화장품 구매 행동 및 선호 브랜드 분석") - .totalCount(250) - .filters(List.of( - LibraryCompareResponseDTO.Filter.builder() - .key("성별") - .values(List.of("여성")) - .build(), - LibraryCompareResponseDTO.Filter.builder() - .key("연령") - .values(List.of("30-39세")) - .build())) - .build(); - - // 주요 특성 (특성 1, 2, 3) - List keyCharacteristics = List.of( - LibraryCompareResponseDTO.KeyCharacteristic.builder() - .characteristic("소비 성향") - .description("A그룹은 실용적 소비 성향이 강하고, B그룹은 프리미엄 브랜드 선호도가 높습니다.") - .group1Percentage(30) - .group2Percentage(70) - .difference(40) - .build(), - LibraryCompareResponseDTO.KeyCharacteristic.builder() - .characteristic("브랜드 충성도") - .description("A그룹은 브랜드 전환율이 높은 반면, B그룹은 특정 브랜드에 대한 충성도가 높습니다.") - .group1Percentage(30) - .group2Percentage(70) - .difference(40) - .build(), - LibraryCompareResponseDTO.KeyCharacteristic.builder() - .characteristic("온라인 구매 선호도") - .description("A그룹은 오프라인 구매를 선호하고, B그룹은 온라인 쇼핑몰과 리뷰를 적극 활용합니다.") - .group1Percentage(30) - .group2Percentage(70) - .difference(40) - .build()); - - // Group A 통계 - LibraryCompareResponseDTO.GroupMetrics group1Metrics = LibraryCompareResponseDTO.GroupMetrics.builder() - .male(100) - .female(0) - .seoul(35) - .gyeonggi(40) - .busan(15) - .regionEtc(10) - .avgAge(23.5) - .avgFamily(3.2) - .avgChildren(0.8) - .ratePossessingCar(72) - .avgPersonalIncome(420) - .avgFamilyIncome(340) - .build(); - - // Group B 통계 - LibraryCompareResponseDTO.GroupMetrics group2Metrics = LibraryCompareResponseDTO.GroupMetrics.builder() - .male(0) - .female(100) - .seoul(35) - .gyeonggi(40) - .busan(15) - .regionEtc(10) - .avgAge(32.7) - .avgFamily(4.2) - .avgChildren(3.4) - .ratePossessingCar(30) - .avgPersonalIncome(340) - .avgFamilyIncome(500) - .build(); - - // Comparisons - LibraryCompareResponseDTO.Comparisons comparisons = LibraryCompareResponseDTO.Comparisons.builder() - .group1(group1Metrics) - .group2(group2Metrics) - .build(); - - // Insights - LibraryCompareResponseDTO.Insights insights = LibraryCompareResponseDTO.Insights.builder() - .difference("A그룹(20대 남성)은 차량 구매에 있어 실용성과 가성비를 중시하며, 국산 브랜드 선호도가 높습니다. 반면 B그룹(30대 여성)은 화장품 구매 시 브랜드 이미지와 품질을 중시하며, 프리미엄 브랜드에 대한 지출이 큽니다. 또한 A그룹은 차량 보유율이 72%로 높은 반면, B그룹은 30%로 낮아 이동 수단에 대한 접근 방식이 다릅니다.") - .common("두 그룹 모두 서울과 경기 지역에 집중되어 있으며, 지역 분포가 거의 동일합니다. 또한 모두 온라인 쇼핑 플랫폼을 적극 활용하며, 소셜미디어를 통한 제품 정보 습득이 활발합니다.") - .implication("A그룹은 차량 마케팅 시 실용성과 경제성을 강조하는 전략이 효과적일 것입니다. B그룹은 화장품 마케팅 시 브랜드 스토리텔링과 프리미엄 경험 제공이 중요합니다. 두 그룹 모두 지역별 맞춤 마케팅 전략이 필요하며, 온라인 채널을 통한 타겟팅이 핵심입니다.") - .build(); - - // 최종 결과 생성 - LibraryCompareResponseDTO.CompareResult result = LibraryCompareResponseDTO.CompareResult.builder() - .group1(group1) - .group2(group2) - .keyCharacteristics(keyCharacteristics) - .comparisons(comparisons) - .insights(insights) - .build(); - - return ApiResponse.onSuccess(result); - } - @GetMapping("/{libraryId}/dashboard") @Operation(summary = "라이브러리 대시보드 조회", description = """ ## 개요 diff --git a/src/main/java/DiffLens/back_end/domain/search/controller/SearchController.java b/src/main/java/DiffLens/back_end/domain/search/controller/SearchController.java index e01140b..a2c3d0c 100644 --- a/src/main/java/DiffLens/back_end/domain/search/controller/SearchController.java +++ b/src/main/java/DiffLens/back_end/domain/search/controller/SearchController.java @@ -5,7 +5,6 @@ import DiffLens.back_end.domain.search.service.interfaces.SearchHistoryService; import DiffLens.back_end.domain.search.service.interfaces.SearchRecommendService; import DiffLens.back_end.domain.search.service.interfaces.SearchService; -import DiffLens.back_end.global.dto.ResponsePageDTO; import DiffLens.back_end.global.responses.exception.ApiResponse; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -13,9 +12,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; -import java.util.List; - @Tag(name = "검색 API") @RestController @RequestMapping("/search") @@ -113,97 +109,6 @@ public ApiResponse eachResponses(@PathVariable( return ApiResponse.onSuccess(result); } - @GetMapping("/{searchId}/each-responses/test") - @Operation(summary = "개별 응답 데이터 (테스트용)", description = """ - ## 개요 - AI 서버 연동 전 테스트용 API입니다. 실제 DB 조회 없이 하드코딩된 개별 응답 데이터를 반환합니다. - - ## 요청값 - - searchId : 검색결과 ID (실제로는 사용하지 않음) - - page : 페이지 번호입니다. 1부터 시작입니다. - - size : 한 페이지 크기입니다. - - ## 응답 - GET /search/{searchId}/each-responses API와 동일한 응답 형식입니다. - - """) - public ApiResponse eachResponsesTest( - @PathVariable("searchId") Long searchId, - @RequestParam("page") Integer page, - @RequestParam("size") Integer size) { - // keys 정의 (컬럼 헤더) - List keys = List.of( - "응답자ID-respondent_id", - "성별-gender", - "나이-age", - "거주지-residence", - "월소득-personal_income", - "일치율-concordance_rate"); - - // 하드코딩된 응답 데이터 (사진에 나온 데이터) - List values = List.of( - SearchResponseDTO.ResponseValues.builder() - .respondentId("w100010279508856") - .gender("남성") - .age("22") - .residence("서울") - .personalIncome("250만원") - .concordanceRate("98.12") - .build(), - SearchResponseDTO.ResponseValues.builder() - .respondentId("w100010279508856") - .gender("남성") - .age("22") - .residence("서울") - .personalIncome("250만원") - .concordanceRate("98.12") - .build(), - SearchResponseDTO.ResponseValues.builder() - .respondentId("w100010279508856") - .gender("남성") - .age("22") - .residence("서울") - .personalIncome("250만원") - .concordanceRate("98.12") - .build(), - SearchResponseDTO.ResponseValues.builder() - .respondentId("w100010279508856") - .gender("남성") - .age("22") - .residence("서울") - .personalIncome("250만원") - .concordanceRate("98.12") - .build(), - SearchResponseDTO.ResponseValues.builder() - .respondentId("w100010279508856") - .gender("남성") - .age("22") - .residence("서울") - .personalIncome("250만원") - .concordanceRate("98.12") - .build()); - - // 페이징 정보 생성 (첫 페이지 기준) - ResponsePageDTO.OffsetLimitPageInfo pageInfo = ResponsePageDTO.OffsetLimitPageInfo.builder() - .offset((page - 1) * size) - .currentPage(page) - .currentPageCount(values.size()) - .totalPageCount(10) // 사진에 나온 페이지네이션 "< 1 2 3 4 5 ... 10 >" 기준 - .limit(size) - .totalCount(50L) // 대략적인 총 개수 - .hasNext(page < 10) - .hasPrevious(page > 1) - .build(); - - SearchResponseDTO.EachResponses result = SearchResponseDTO.EachResponses.builder() - .keys(keys) - .values(values) - .pageInfo(pageInfo) - .build(); - - return ApiResponse.onSuccess(result); - } - @GetMapping("/recommended") @Operation(summary = "맞춤 검색 추천 ( ai 연동 완료 )", description = "유저 온보딩 정보, 검색기록을 토대로 검색어를 추천합니다.") public ApiResponse recommendation() { @@ -213,55 +118,6 @@ public ApiResponse recommendation() { /** ------ 👇 아래는 미제공 API 👇 ------ **/ - @GetMapping("/recommended/test") - @Operation(summary = "맞춤 검색 추천 (테스트용)", description = """ - ## 개요 - AI 서버 연동 전 테스트용 API입니다. 실제 DB 조회나 AI 서버 호출 없이 하드코딩된 추천 검색어를 반환합니다. - - ## 응답 - GET /search/recommended API와 동일한 응답 형식입니다. - """) - public ApiResponse recommendTest() { - // 하드코딩된 추천 검색어 목록 - List recommendations = List.of( - SearchResponseDTO.Recommend.builder() - .id(1L) - .title("20대 남성 100명") - .description("마케터 맞춤 추천") - .build(), - SearchResponseDTO.Recommend.builder() - .id(2L) - .title("서울 거주 주부 300명") - .description("마케터 맞춤 추천") - .build(), - SearchResponseDTO.Recommend.builder() - .id(3L) - .title("40대 기혼 남성 500명") - .description("마케터 맞춤 추천") - .build(), - SearchResponseDTO.Recommend.builder() - .id(4L) - .title("20대 남성 100명") - .description("마케터 맞춤 추천") - .build(), - SearchResponseDTO.Recommend.builder() - .id(5L) - .title("서울 거주 주부 300명") - .description("마케터 맞춤 추천") - .build(), - SearchResponseDTO.Recommend.builder() - .id(6L) - .title("40대 기혼 남성 500명") - .description("마케터 맞춤 추천") - .build()); - - SearchResponseDTO.Recommends result = SearchResponseDTO.Recommends.builder() - .recommendations(recommendations) - .build(); - - return ApiResponse.onSuccess(result); - } - @PostMapping("/refine") @Operation(summary = "기존 검색 결과 기반 재검색 ( 미구현 )", description = "아직 구현 전이지만 아마 자연어 검색과 같은 형태로 반환될 듯 싶습니다.", hidden = true) public ApiResponse refine( @@ -270,54 +126,4 @@ public ApiResponse refine( return ApiResponse.onSuccess(result); } - @PostMapping("/test") - @Operation(summary = "검색 테스트 API (하드코딩 데이터)", description = """ - ## 개요 - AI 서버 연동 전 테스트용 API입니다. 실제 DB 조회나 AI 서버 호출 없이 하드코딩된 데이터를 반환합니다. - - ## 응답 - POST /search API와 동일한 응답 형식입니다. - - **main_chart**: null (테스트용이므로 차트 미포함) - - **sub_charts**: null (테스트용이므로 차트 미포함) - - 실제 API에서는 서브서버로부터 차트 데이터를 받아옵니다. - """) - public ApiResponse testSearch() { - // Summary 생성 - SearchResponseDTO.SearchResult.Summary summary = SearchResponseDTO.SearchResult.Summary.builder() - .totalRespondents(100) - .averageAge(24.5) - .dataCaptureDate("2024.09.20") - .confidenceLevel(95) - .build(); - - // Applied Filters 생성 - List appliedFilters = new ArrayList<>(); - appliedFilters.add(SearchResponseDTO.SearchResult.AppliedFilter.builder() - .key("respondent_count") - .displayValue("100명") - .build()); - appliedFilters.add(SearchResponseDTO.SearchResult.AppliedFilter.builder() - .key("age") - .displayValue("20-29세") - .build()); - appliedFilters.add(SearchResponseDTO.SearchResult.AppliedFilter.builder() - .key("gender") - .displayValue("남성") - .build()); - - // 차트 데이터는 실제 API에서는 서브서버로부터 받아옵니다. - // 테스트용으로 null 처리 - - // SearchResult 생성 - SearchResponseDTO.SearchResult result = SearchResponseDTO.SearchResult.builder() - .searchId(999L) // 테스트용 ID - .summary(summary) - .appliedFiltersSummary(appliedFilters) - .mainChart(null) // 차트는 서브서버에서 받아옴 - .subCharts(null) - .build(); - - return ApiResponse.onSuccess(result); - } - } diff --git a/src/main/java/DiffLens/back_end/domain/search/converter/ChartDtoConverter.java b/src/main/java/DiffLens/back_end/domain/search/converter/ChartDtoConverter.java index 8a8f04d..f80cc5a 100644 --- a/src/main/java/DiffLens/back_end/domain/search/converter/ChartDtoConverter.java +++ b/src/main/java/DiffLens/back_end/domain/search/converter/ChartDtoConverter.java @@ -24,18 +24,6 @@ public ChartDTO.Graph requestToDto(Void response, Chart chart) { .build(); } - private ChartDTO.Graph chartToDto(Chart chart) { - return ChartDTO.Graph.builder() - .chartId(null) - .reason(chart.getReason()) - .chartType(chart.getChartType().name()) - .title(chart.getTitle()) - .xAxis(chart.getXAxis()) - .yAxis(chart.getYAxis()) - .dataPoints(getDataPoints(chart)) - .build(); - } - private List getDataPoints(Chart chart) { if (chart.getChartType() == ChartType.PIE) { return getPiePoints(chart); diff --git a/src/main/java/DiffLens/back_end/domain/search/converter/FilterDtoConverter.java b/src/main/java/DiffLens/back_end/domain/search/converter/FilterDtoConverter.java index c327f2f..dba6ef5 100644 --- a/src/main/java/DiffLens/back_end/domain/search/converter/FilterDtoConverter.java +++ b/src/main/java/DiffLens/back_end/domain/search/converter/FilterDtoConverter.java @@ -1,6 +1,5 @@ package DiffLens.back_end.domain.search.converter; -import DiffLens.back_end.global.fastapi.dto.response.FastNaturalLanguageResponseDTO; import DiffLens.back_end.domain.search.dto.SearchResponseDTO.SearchResult.AppliedFilter; import DiffLens.back_end.domain.search.entity.Filter; import DiffLens.back_end.domain.search.entity.SearchHistory; diff --git a/src/main/java/DiffLens/back_end/domain/search/converter/SummaryDtoConverter.java b/src/main/java/DiffLens/back_end/domain/search/converter/SummaryDtoConverter.java index 5dc8d8a..80d7209 100644 --- a/src/main/java/DiffLens/back_end/domain/search/converter/SummaryDtoConverter.java +++ b/src/main/java/DiffLens/back_end/domain/search/converter/SummaryDtoConverter.java @@ -2,7 +2,6 @@ import DiffLens.back_end.domain.panel.repository.projection.PanelWithRawDataDTO; -import DiffLens.back_end.global.fastapi.dto.response.FastNaturalLanguageResponseDTO; import DiffLens.back_end.domain.search.dto.SearchResponseDTO; import DiffLens.back_end.global.fastapi.dto.response.MainSearchResponse; import org.springframework.stereotype.Component; @@ -23,7 +22,6 @@ public SearchResponseDTO.SearchResult.Summary requestToDto(MainSearchResponse re .dataCaptureDate(getCurrentDate()) .confidenceLevel(null) .confidenceLevel(getConfidencePercent(response)) -// .confidenceLevel(response.getAccuracy() != null ? response.getAccuracy().intValue() : null) .build(); } diff --git a/src/main/java/DiffLens/back_end/domain/search/service/implement/ChartServiceImpl.java b/src/main/java/DiffLens/back_end/domain/search/service/implement/ChartServiceImpl.java deleted file mode 100644 index 8c0982d..0000000 --- a/src/main/java/DiffLens/back_end/domain/search/service/implement/ChartServiceImpl.java +++ /dev/null @@ -1,106 +0,0 @@ -package DiffLens.back_end.domain.search.service.implement; - -import DiffLens.back_end.domain.panel.repository.projection.PanelWithRawDataDTO; -import DiffLens.back_end.domain.rawData.dto.PanelDTO; -import DiffLens.back_end.global.fastapi.dto.response.FastNaturalLanguageResponseDTO; -import DiffLens.back_end.domain.panel.util.ReflectionUtil; -import DiffLens.back_end.domain.search.entity.Chart; -import DiffLens.back_end.domain.search.entity.SearchHistory; -import DiffLens.back_end.domain.search.enums.chart.ChartType; -import DiffLens.back_end.domain.search.service.interfaces.ChartService; -import DiffLens.back_end.global.fastapi.dto.response.FastSearchChart; -import DiffLens.back_end.global.responses.code.status.error.SearchStatus; -import DiffLens.back_end.global.responses.exception.handler.ErrorHandler; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; - -import java.util.*; - -@Service -@RequiredArgsConstructor -public class ChartServiceImpl implements ChartService { - - @Override - public List makeChart(FastNaturalLanguageResponseDTO.Data naturalSearch, SearchHistory searchHistory, List foundPanels) { - - List chartResponses = new ArrayList<>(List.of(naturalSearch.getMainChart())); - chartResponses.addAll(naturalSearch.getSubCharts()); - - // fast api 로부터 받은 응답값을 List로 변환 - List charts = chartResponses.stream() - .map(chart -> - Chart.builder() - .reason(chart.getReason()) - .chartType(ChartType.valueOf(chart.getChartType().toUpperCase())) - .panelColumn(chart.getPanelColumn()) - .title(chart.getTitle()) - .xAxis("TODO : 있어야하나??") - .yAxis("TODO : 있어야하나?? ver.2") - .labels(chart.getData().getLabels()) - .values(chart.getData().getDataSets().getFirst().getData()) // 기획에 따라 getFirst 없애고 전부 넣을수도 있음 - .build() - ).toList(); - - // 차트 데이터 생성 및 삽입 - charts.forEach(chart -> { - - Map dataSet = makeDataSet(foundPanels, chart.getPanelColumn()); - - // label 오름차순 정렬하며 label과 value 쌍 보장 - dataSet.entrySet().stream() - .sorted(Map.Entry.comparingByKey()) - .forEach(entry -> { - chart.getLabels().add(entry.getKey()); - chart.getValues().add(entry.getValue()); - }); - - - }); - - - return charts; - } - - /** - * - * @param foundPanels 조회할 패널 - * @param panelColumn 패널의 어떤 데이터를 조회할 것인지 - * @return Key : Label, Value : 수치 를 담은 Map - */ - private Map makeDataSet(List foundPanels, String panelColumn) { - Map data = new LinkedHashMap<>(); - - String fieldName = PanelDTO.columnMapping.getOrDefault(panelColumn, null); - if(fieldName == null) { - throw new ErrorHandler(SearchStatus.INVALID_COLUMN); - } - -// if (fieldName == null) { -// return data; // 매핑 안 된 컬럼이면 빈 map 반환 -// } - - for (PanelWithRawDataDTO panel : foundPanels) { - try { - Object value = ReflectionUtil.getFieldValue(panel, fieldName); - - if (value instanceof List list) { - for (Object v : list) { - if (v != null) data.merge(v.toString(), 1, Integer::sum); - } - } else if (value != null) { - data.merge(value.toString(), 1, Integer::sum); - } - - } catch (Exception e) { - // DTO 필드 없으면 rawData Map에서 시도 - if (panel.getRawData() instanceof Map rawMap) { - Object val = rawMap.get(panelColumn); - if (val != null) data.merge(val.toString(), 1, Integer::sum); - } - } - } - - return data; - } - -} diff --git a/src/main/java/DiffLens/back_end/domain/search/service/implement/NaturalSearchService.java b/src/main/java/DiffLens/back_end/domain/search/service/implement/NaturalSearchService.java index a9fc767..901e7f8 100644 --- a/src/main/java/DiffLens/back_end/domain/search/service/implement/NaturalSearchService.java +++ b/src/main/java/DiffLens/back_end/domain/search/service/implement/NaturalSearchService.java @@ -32,6 +32,7 @@ public class NaturalSearchService implements SearchService { // service & repository + private final CurrentUserService currentUserService; private final PanelRepository panelRepository; private final FilterRepository filterRepository; private final SearchHistoryService searchHistoryService; @@ -41,32 +42,18 @@ public class NaturalSearchService implements SearchService> summaryConverter; private final SearchDtoConverter, SearchHistory> filterConverter; - private final CurrentUserService currentUserService; @Override @Transactional(readOnly = false) public SearchResponseDTO.SearchResult search(SearchRequestDTO.NaturalLanguage request) { - // 현재 로그인한 유저 + // 유저 추출 Member currentUser = currentUserService.getCurrentUser(); - // fast api 호출 -// FastNaturalLanguageResponseDTO.NaturalSearch response = fastApiService.getNaturalSearch( -// FastNaturalLanguageRequestDTO.NaturalSearch.builder() -// .query(request.getQuestion()) -// .searchMode(request.getMode().getKr()) -// .filters(new FastNaturalLanguageRequestDTO.NaturalSearchFilters()) -// .build() -// ); - // fast api에 요청보낼 requestDTO 생성 MainSearchResponse response = fastApiService.getMainSearch(makeRequestDTO(request)); -// FastNaturalSearchResponseDTO.SearchResult response = new FastNaturalSearchResponseDTO.SearchResult(); -// FastNaturalLanguageResponseDTO.Data responseData = response.getData(); - - // id List 추출 -// List panelIdList = responseData.getMatchedPanelIds(); + // panelId List 생성 List panelIdList = response.getPanels().stream() .map(MainSearchResponse.PanelInfo::getPanelId) .toList(); @@ -76,18 +63,17 @@ public SearchResponseDTO.SearchResult search(SearchRequestDTO.NaturalLanguage re // SearchHistory 데이터 생성 및 저장 SearchHistory searchHistory = searchHistoryService.makeSearchHistory(request, response); -// SearchHistory searchHistory = searchHistoryRepository.findById(Long.valueOf(response.getSearchId())) -// .orElseThrow(() -> new ErrorHandler(SearchStatus.SEARCH_HISTORY_NOT_FOUND)); searchHistory.setMember(currentUser); // SearchResult.Summary 생성 SearchResponseDTO.SearchResult.Summary summary = summaryConverter.requestToDto(response, foundPanels); + // SearchResult.AppliedFilter 생성 List appliedFiltersSummary = filterConverter.requestToDto(null, searchHistory); - // 차트 추천 API 호출 - FastChartResponseDTO.ChartRecommendationsResponse chartResponse = - fastApiService.getChartRecommendations(searchHistory.getId()); + // Chart 생성 + // 차트 추천 서브서버 API 호출 + FastChartResponseDTO.ChartRecommendationsResponse chartResponse = fastApiService.getChartRecommendations(searchHistory.getId()); // ChartData 변환 SearchResponseDTO.SearchResult.ChartData mainChart = convertToChartData(chartResponse.getMainChart()); @@ -102,7 +88,6 @@ public SearchResponseDTO.SearchResult search(SearchRequestDTO.NaturalLanguage re .mainChart(mainChart) .subCharts(subCharts) .build(); - } /** diff --git a/src/main/java/DiffLens/back_end/domain/search/service/implement/SearchHistoryServiceImpl.java b/src/main/java/DiffLens/back_end/domain/search/service/implement/SearchHistoryServiceImpl.java index dda093f..31d7fdd 100644 --- a/src/main/java/DiffLens/back_end/domain/search/service/implement/SearchHistoryServiceImpl.java +++ b/src/main/java/DiffLens/back_end/domain/search/service/implement/SearchHistoryServiceImpl.java @@ -25,6 +25,7 @@ import java.time.LocalDate; import java.util.Collections; +import java.util.Comparator; import java.util.List; @Service @@ -41,30 +42,13 @@ public class SearchHistoryServiceImpl implements SearchHistoryService { @Override public SearchHistory makeSearchHistory(SearchRequestDTO.NaturalLanguage request, MainSearchResponse fastApiResponse) { - List panelIds = fastApiResponse.getPanels().stream() - .map(MainSearchResponse.PanelInfo::getPanelId) - .toList(); - - // SearchHistory 데이터 생성 및 저장 + // SearchHistory 객체 생성 SearchHistory searchHistory = historyRepository.findById(Long.valueOf(fastApiResponse.getSearchId())) .orElseThrow(() -> new ErrorHandler(SearchStatus.SEARCH_HISTORY_NOT_FOUND)); -// SearchHistory searchHistory = historyRepository.save( -// SearchHistory.builder() -// .date(LocalDate.now()) -// .content(request.getQuestion()) -//// .panelIds(fastApiResponse.getMatchedPanelIds()) -//// .panelIds(panelIds) -// .panelIds(panelIds) -//// .concordanceRate(fastApiResponse.getMatchScores()) -// .concordanceRate(new ArrayList<>()) -//// .concordanceRate(null) -// .charts(new ArrayList<>()) -// .build() -// ); - // SearchFilter 생성 SearchFilter searchFilter = filterService.makeFilter(request.getFilters(), searchHistory); + // SearchHistory의 Filter를 지정 searchHistory.setFilter(searchFilter); @@ -125,8 +109,12 @@ public SearchResponseDTO.EachResponses getEachResponses(Long searchHistoryId, In .toList()); // 유사도 기준 내림차순 정렬 - values.sort( ( a, b ) -> b.getConcordanceRate().compareTo(a.getConcordanceRate()) ); - + values.sort( + Comparator.comparing( + SearchResponseDTO.ResponseValues::getConcordanceRate, + Comparator.nullsLast(Comparator.reverseOrder()) + ) + ); //페이징 정보 생성 ResponsePageDTO.OffsetLimitPageInfo pageInfo = ResponsePageDTO.OffsetLimitPageInfo.from(panelDtoList); diff --git a/src/main/java/DiffLens/back_end/global/fastapi/FastApiClient.java b/src/main/java/DiffLens/back_end/global/fastapi/FastApiClient.java index ab70538..f5ccfa7 100644 --- a/src/main/java/DiffLens/back_end/global/fastapi/FastApiClient.java +++ b/src/main/java/DiffLens/back_end/global/fastapi/FastApiClient.java @@ -1,12 +1,18 @@ package DiffLens.back_end.global.fastapi; import DiffLens.back_end.global.aop.annotations.LogExecutionTime; +import DiffLens.back_end.global.fastapi.dto.FastApiErrorDto; import DiffLens.back_end.global.responses.code.status.error.ErrorStatus; +import DiffLens.back_end.global.responses.code.status.error.SearchStatus; +import DiffLens.back_end.global.responses.exception.GeneralException; import DiffLens.back_end.global.responses.exception.handler.ErrorHandler; import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.HttpStatusCode; import org.springframework.stereotype.Component; import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.reactive.function.client.WebClientResponseException; +import reactor.core.publisher.Mono; /** * FastAPI 서버에 실제 HTTP 요청을 보냄 @@ -60,21 +66,50 @@ public R sendRequest(FastApiRequestType type, T requestBody) { * @param response body의 클래스 */ @LogExecutionTime("서브서버 호출 소요시간") - public R sendRequestWithPathVariable(FastApiRequestType type, T requestBody, Object... pathVariables) { - R block = null; + public R sendRequestWithPathVariable( + FastApiRequestType type, + T requestBody, + Object... pathVariables + ) { try { - block = fastApiWebClient.get() + return fastApiWebClient.get() .uri(type.getUri(), pathVariables) - .retrieve() - .bodyToMono((Class) type.getResponseType()) + .exchangeToMono(response -> { + HttpStatusCode status = response.statusCode(); + + if (status.is4xxClientError() || status.is5xxServerError()) { + return response.bodyToMono(FastApiErrorDto.class) + .flatMap(errorDto -> { + String detail = errorDto.getDetail(); + + if ("해당 검색 결과에는 패널이 없습니다.".equals(detail)) { + return Mono.error(new ErrorHandler( + SearchStatus.NO_RESULT + )); + } + + // 기타 에러는 기본 서브서버 에러로 처리 + return Mono.error(new RuntimeException( + "서브 서버 요청 중 오류 발생. 문의 바람 : " + detail + )); + }); + } + + // 정상 응답 + return response.bodyToMono((Class) type.getResponseType()); + }) .block(); + + } catch (ErrorHandler e) { + throw e; } catch (Exception e) { throw new ErrorHandler(ErrorStatus.SUB_SERVER_ERROR); } - - return block; } + + + /** * Query Parameter를 사용하는 POST 요청 * diff --git a/src/main/java/DiffLens/back_end/global/fastapi/dto/FastApiErrorDto.java b/src/main/java/DiffLens/back_end/global/fastapi/dto/FastApiErrorDto.java new file mode 100644 index 0000000..6102ee9 --- /dev/null +++ b/src/main/java/DiffLens/back_end/global/fastapi/dto/FastApiErrorDto.java @@ -0,0 +1,16 @@ +package DiffLens.back_end.global.fastapi.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class FastApiErrorDto { + + private String detail; + +} diff --git a/src/main/java/DiffLens/back_end/global/responses/code/status/error/SearchStatus.java b/src/main/java/DiffLens/back_end/global/responses/code/status/error/SearchStatus.java index 665a5a1..1f4048b 100644 --- a/src/main/java/DiffLens/back_end/global/responses/code/status/error/SearchStatus.java +++ b/src/main/java/DiffLens/back_end/global/responses/code/status/error/SearchStatus.java @@ -15,9 +15,10 @@ public enum SearchStatus implements BaseErrorCode { PANEL_NOT_FOUND(HttpStatus.NOT_FOUND, "SEARCH405", "패널을 찾을 수 없습니다."), RECOMMENDED_SEARCH_NOT_FOUND(HttpStatus.NOT_FOUND, "SEARCH406", "잘못된 recommendId 입니다."), + NO_RESULT(HttpStatus.NOT_FOUND, "SEARCH407", "검색 결과가 없습니다."), RECOMMENDED_EXPIRED(HttpStatus.BAD_REQUEST, "SEARCH407", "만료된 추천 검색어입니다."), - INVALID_COLUMN(HttpStatus.INTERNAL_SERVER_ERROR, "SEARCH501", "Panel의 column을 찾을 수 없습니다."), + INVALID_COLUMN(HttpStatus.INTERNAL_SERVER_ERROR, "SEARCH501", "Panel의 column을 찾을 수 없습니다.") ; diff --git a/src/main/java/DiffLens/back_end/global/security/JwtTokenExpirationTime.java b/src/main/java/DiffLens/back_end/global/security/JwtTokenExpirationTime.java index 573d655..35efe14 100644 --- a/src/main/java/DiffLens/back_end/global/security/JwtTokenExpirationTime.java +++ b/src/main/java/DiffLens/back_end/global/security/JwtTokenExpirationTime.java @@ -7,7 +7,7 @@ @AllArgsConstructor public enum JwtTokenExpirationTime { - ACCESS_TOKEN(1000L * 60 * 60), // 60분 + ACCESS_TOKEN(1000L * 60 * 60 * 9), // 60분 (임시 9시간) REFRESH_TOKEN(1000L * 60 * 60 * 24 * 14), ; diff --git a/src/test/java/DiffLens/back_end/domain/search/service/implement/NaturalSearchServiceTest.java b/src/test/java/DiffLens/back_end/domain/search/service/implement/NaturalSearchServiceTest.java new file mode 100644 index 0000000..445db76 --- /dev/null +++ b/src/test/java/DiffLens/back_end/domain/search/service/implement/NaturalSearchServiceTest.java @@ -0,0 +1,168 @@ +package DiffLens.back_end.domain.search.service.implement; + +import DiffLens.back_end.domain.members.entity.Member; +import DiffLens.back_end.domain.members.service.auth.CurrentUserService; +import DiffLens.back_end.domain.panel.repository.PanelRepository; +import DiffLens.back_end.domain.panel.repository.projection.PanelWithRawDataDTO; +import DiffLens.back_end.domain.search.converter.SearchDtoConverter; +import DiffLens.back_end.domain.search.dto.SearchRequestDTO; +import DiffLens.back_end.domain.search.dto.SearchResponseDTO; +import DiffLens.back_end.domain.search.entity.Filter; +import DiffLens.back_end.domain.search.entity.SearchHistory; +import DiffLens.back_end.domain.search.enums.mode.QuestionMode; +import DiffLens.back_end.domain.search.repository.FilterRepository; +import DiffLens.back_end.domain.search.service.interfaces.SearchHistoryService; +import DiffLens.back_end.global.fastapi.FastApiService; +import DiffLens.back_end.global.fastapi.dto.request.MainSearchRequest; +import DiffLens.back_end.global.fastapi.dto.response.FastChartResponseDTO; +import DiffLens.back_end.global.fastapi.dto.response.MainSearchResponse; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.util.Collections; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.lenient; + +/** + * Unit Test for NaturalSearchService + * + * This test verifies that the natural language search functionality + * returns correct search results, summary, applied filters, and chart information. + * + * Dependencies (repositories, services, converters, APIs) are mocked to isolate + * the service logic from database and external API calls. + */ +@ExtendWith(MockitoExtension.class) +class NaturalSearchServiceTest { + + private NaturalSearchService naturalSearchService; + + @Mock + private CurrentUserService currentUserService; + + @Mock + private PanelRepository panelRepository; + + @Mock + private FilterRepository filterRepository; + + @Mock + private SearchHistoryService searchHistoryService; + + @Mock + private FastApiService fastApiService; + + @Mock + private SearchDtoConverter> summaryConverter; + + @Mock + private SearchDtoConverter, SearchHistory> filterConverter; + + /** + * Test case: Successful natural language search + * + * Steps: + * 1. Prepare a request DTO with question, mode, and filter IDs. + * 2. Prepare mock objects for member, panel, search history, summary, applied filters, and chart data. + * 3. Define mock behavior for service dependencies. + * 4. Call the naturalSearchService.search() method. + * 5. Verify the response content and dependency interactions. + */ + @Test + @DisplayName("자연어 검색 성공 테스트") + void search_success() { + // Initialize service with mocked dependencies + naturalSearchService = new NaturalSearchService( + currentUserService, + panelRepository, + filterRepository, + searchHistoryService, + fastApiService, + summaryConverter, + filterConverter + ); + + // --- 1. Request DTO 준비 --- + SearchRequestDTO.NaturalLanguage request = SearchRequestDTO.NaturalLanguage.builder() + .question("테스트 질문") + .mode(QuestionMode.FLEXIBLE) + .filters(List.of(101L, 102L)) + .build(); + + // --- 2. Mock 데이터 준비 --- + Member member = Member.builder().id(1L).email("test@example.com").build(); + + MainSearchResponse.PanelInfo panelInfo = new MainSearchResponse.PanelInfo(); + panelInfo.setPanelId("panel1"); + MainSearchResponse mainSearchResponse = MainSearchResponse.builder() + .panels(List.of(panelInfo)) + .build(); + + PanelWithRawDataDTO panelWithRawDataDTO = org.mockito.Mockito.mock(PanelWithRawDataDTO.class); + lenient().when(panelWithRawDataDTO.getId()).thenReturn("panel1"); // lenient: unnecessary stubbing 방지 + + SearchHistory searchHistory = SearchHistory.builder().id(100L).build(); + + SearchResponseDTO.SearchResult.Summary summary = SearchResponseDTO.SearchResult.Summary.builder() + .totalRespondents(100) + .build(); + + List appliedFilters = List.of( + SearchResponseDTO.SearchResult.AppliedFilter.builder() + .displayValue("Filter1") + .build() + ); + + FastChartResponseDTO.ChartData mainChartData = FastChartResponseDTO.ChartData.builder() + .chartType("pie") + .title("Main Chart") + .data(Collections.emptyList()) + .build(); + + FastChartResponseDTO.ChartRecommendationsResponse chartResponse = FastChartResponseDTO.ChartRecommendationsResponse.builder() + .mainChart(mainChartData) + .subCharts(Collections.emptyList()) + .build(); + + Filter filter1 = Filter.builder().type("age").rawDataValue("20s").build(); + Filter filter2 = Filter.builder().type("gender").rawDataValue("male").build(); + + // --- 3. Mocking 동작 정의 --- + given(currentUserService.getCurrentUser()).willReturn(member); + given(filterRepository.findByIds(anyList())).willReturn(List.of(filter1, filter2)); + given(fastApiService.getMainSearch(any(MainSearchRequest.class))).willReturn(mainSearchResponse); + given(panelRepository.findPanelsWithRawDataByIds(anyList())).willReturn(List.of(panelWithRawDataDTO)); + given(searchHistoryService.makeSearchHistory(any(), any())).willReturn(searchHistory); + given(summaryConverter.requestToDto(any(), anyList())).willReturn(summary); + given(filterConverter.requestToDto(isNull(), any(SearchHistory.class))).willReturn(appliedFilters); + given(fastApiService.getChartRecommendations(anyLong())).willReturn(chartResponse); + + // --- 4. 실제 서비스 호출 --- + SearchResponseDTO.SearchResult result = naturalSearchService.search(request); + System.out.println("Applied Filters: " + result.getAppliedFiltersSummary()); + + // --- 5. 결과 검증 --- + assertNotNull(result); // 결과가 null이 아닌지 확인 + assertEquals(100L, result.getSearchId()); // searchId 확인 + assertEquals(summary, result.getSummary()); // summary 확인 + assertEquals(appliedFilters, result.getAppliedFiltersSummary()); // 필터 적용 확인 + assertEquals("pie", result.getMainChart().getChartType()); // 차트 유형 확인 + assertEquals("Main Chart", result.getMainChart().getTitle()); // 차트 제목 확인 + + // --- 6. 의존성 호출 검증 --- + verify(currentUserService).getCurrentUser(); + verify(fastApiService).getMainSearch(any(MainSearchRequest.class)); + verify(panelRepository).findPanelsWithRawDataByIds(anyList()); + verify(searchHistoryService).makeSearchHistory(any(), any()); + verify(fastApiService).getChartRecommendations(100L); + } +} diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml new file mode 100644 index 0000000..9f5a5e6 --- /dev/null +++ b/src/test/resources/application.yml @@ -0,0 +1,70 @@ +spring: + profiles: + active: test + servlet: + multipart: + max-file-size: 100MB + max-request-size: 100MB + + datasource: + driver-class-name: org.h2.Driver + url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE + username: sa + password: + + jpa: + hibernate: + ddl-auto: create-drop + properties: + hibernate: + dialect: org.hibernate.dialect.H2Dialect + format_sql: true + show_sql: true + default_batch_fetch_size: 1000 + + sql: + init: + mode: never + + data: + redis: + host: localhost + port: 6381 + timeout: 2000ms + + security: + allowed-origins: + - "http://localhost:3000" + - "http://127.0.0.1:3000" + - "http://localhost:8080" + - "http://localhost:5173" + - "http://127.0.0.1:5173" + + jwt: + secret: test-jwt-secrettest-jwt-secrettest-jwt-secrettest-jwt-secrettest-jwt-secrettest-jwt-secrettest-jwt-secret + +auth: + admin_email: test_admin@example.com + admin_pw: test1234 + +management: + endpoints: + web: + exposure: + include: health,info,prometheus + prometheus: + metrics: + export: + enabled: true + +fast-api: + url: http://localhost:8000 + +security: + oauth2: + client: + registration: + google: + client-id: test-google-cli + client-secret: test-google-cli + redirect-uri: test-google-cli